亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線實(shí)戰(zhàn)洞察。

TensorFlow垃圾分類系統(tǒng)實(shí)戰(zhàn):CNN基線+MobileNet遷移學(xué)習(xí)與TFLite部署

TensorFlow垃圾分類系統(tǒng)實(shí)戰(zhàn):CNN基線+MobileNet遷移學(xué)習(xí)與TFLite部署 垃圾分類識(shí)別這件事聽起來不算新鮮但真正動(dòng)手把一套系統(tǒng)從數(shù)據(jù)準(zhǔn)備做到端側(cè)可部署過程中需要踩的坑遠(yuǎn)比想象中多。我這次做的是一套基于TensorFlow的垃圾分類系統(tǒng)核心思路是雙線并行一邊從零訓(xùn)練CNN模型作為基線用來理解卷積網(wǎng)絡(luò)的工作方式和參數(shù)調(diào)優(yōu)另一邊使用MobileNet做遷移學(xué)習(xí)用更少的數(shù)據(jù)拿到更高精度同時(shí)把模型量化為TFLite格式保證它可以跑在手機(jī)、嵌入式開發(fā)板這類資源受限的設(shè)備上。整個(gè)項(xiàng)目做完用攝像頭掃一下就能實(shí)時(shí)輸出垃圾類別是一個(gè)邏輯完整、可以繼續(xù)擴(kuò)展的工程實(shí)踐。這篇文章適合剛?cè)腴T深度學(xué)習(xí)、想做一個(gè)真實(shí)項(xiàng)目練手的同學(xué)也適合正在做課程設(shè)計(jì)、畢業(yè)設(shè)計(jì)或產(chǎn)品原型的開發(fā)者。我會(huì)把每一個(gè)關(guān)鍵選擇的“為什么”講清楚不只是貼代碼還會(huì)分享我在實(shí)驗(yàn)里遇到的高頻坑和解決辦法。你能從里面直接拿走一套可復(fù)現(xiàn)的方案。1. 先把垃圾分類系統(tǒng)拆清楚需求、方案與技術(shù)棧1.1 需求拆解你要做的不是一個(gè)“模型”而是一套系統(tǒng)很多人在拿到“垃圾分類”這個(gè)題目后第一反應(yīng)就是找數(shù)據(jù)集、跑分類網(wǎng)絡(luò)但真正落地時(shí)要回答的問題遠(yuǎn)不止這些。第一個(gè)問題是“輸入是什么”是單張圖片還是攝像頭視頻流手機(jī)拍照識(shí)別和實(shí)時(shí)視頻識(shí)別對(duì)模型大小和推理速度的要求完全不同。第二個(gè)問題是“輸出是什么”是輸出一個(gè)類別標(biāo)簽還是需要在界面上同時(shí)顯示置信度和對(duì)應(yīng)垃圾的投放規(guī)則第三個(gè)問題是“運(yùn)行環(huán)境”是在電腦的GPU上演示還是要部署到無GPU的移動(dòng)端我給自己定的目標(biāo)很實(shí)際輸入是普通攝像頭實(shí)時(shí)畫面或照片輸出是垃圾類別和置信度最終模型可以轉(zhuǎn)換成TFLite格式在CPU設(shè)備上流暢運(yùn)行。從這個(gè)目標(biāo)倒推模型就不能選那種追求極致精度但體積好幾GB的超大網(wǎng)絡(luò)訓(xùn)練框架則定在TensorFlow 2.x因?yàn)樗鼜挠?xùn)練到部署的鏈路最完整對(duì)新手也友好。1.2 為什么同時(shí)用自訓(xùn)練CNN和MobileNet遷移學(xué)習(xí)兩條路線如果只追求結(jié)果直接用現(xiàn)成的預(yù)訓(xùn)練模型做遷移學(xué)習(xí)就可以了不需要自己從零構(gòu)建CNN。但我還是堅(jiān)持把兩條路線都做出來原因有兩點(diǎn)。第一自訓(xùn)練CNN是理解深度學(xué)習(xí)底層原理的最佳路徑。通過自己搭建卷積層、池化層、全連接層你能直觀感受到卷積核怎么提特征、池化怎么降維、Dropout怎么抑制過擬合。這些感知在你后續(xù)調(diào)整任何模型時(shí)都非常有用。第二在實(shí)際數(shù)據(jù)量有限的情況下從零訓(xùn)練CNN很難追上遷移學(xué)習(xí)的效果因?yàn)槔诸悢?shù)據(jù)集的規(guī)模和復(fù)雜度都遠(yuǎn)不如大規(guī)模自然圖像數(shù)據(jù)集模型很難只靠少量樣本學(xué)到足夠泛化的特征。所以我的策略是把自訓(xùn)練CNN當(dāng)作基線模型用來建立“最差效果”認(rèn)知把MobileNet遷移學(xué)習(xí)作為正式方案負(fù)責(zé)最終落地精度和部署可行性。1.3 技術(shù)棧與總體流程設(shè)計(jì)整個(gè)系統(tǒng)的技術(shù)選型如下表選型邏輯是“優(yōu)先考慮完整性和可復(fù)現(xiàn)性”。模塊選型選擇理由深度學(xué)習(xí)框架TensorFlow 2.x訓(xùn)練接口成熟TFLite轉(zhuǎn)換方便部署鏈路完整基礎(chǔ)模型自訓(xùn)練CNN MobileNetV2兼顧原理學(xué)習(xí)與落地性能MobileNet在移動(dòng)端友好圖像處理OpenCV、TensorFlow數(shù)據(jù)管道攝像頭讀取、圖像預(yù)處理和增強(qiáng)都能覆蓋訓(xùn)練平臺(tái)CPU可跑GPU更好數(shù)據(jù)量不大時(shí)CPU也能完成但GPU能顯著加快迭代部署格式TFLite模型小、推理快不依賴完整TensorFlow環(huán)境整體流程分成四段數(shù)據(jù)準(zhǔn)備與預(yù)處理、自訓(xùn)練CNN做基線、MobileNet遷移學(xué)習(xí)調(diào)優(yōu)、TFLite導(dǎo)出與端側(cè)驗(yàn)證。每一段都不是孤立的數(shù)據(jù)準(zhǔn)備的質(zhì)量直接影響后面所有環(huán)節(jié)所以我建議不要在數(shù)據(jù)階段節(jié)省時(shí)間。2. 數(shù)據(jù)準(zhǔn)備與預(yù)處理實(shí)戰(zhàn)2.1 數(shù)據(jù)來源與類別設(shè)計(jì)先定類別再談效果垃圾分類系統(tǒng)的第一步不是寫模型而是確定類別體系。常見的公共垃圾分類數(shù)據(jù)集多以“可回收垃圾、廚余垃圾、有害垃圾、其他垃圾”四大類為頂層再細(xì)化到數(shù)十個(gè)子類。我建議第一次做項(xiàng)目的人不要一上來就挑戰(zhàn)上百個(gè)細(xì)分類別先做4到10類等整個(gè)訓(xùn)練部署流程跑通之后再逐步擴(kuò)充。我是從“紙板、玻璃瓶、金屬罐、塑料瓶、塑料袋、果皮、廢電池、舊衣服”這8類開始的每類收集600到1000張圖片。如果你使用公開數(shù)據(jù)集一定要先做一次人工抽檢因?yàn)檫@類數(shù)據(jù)集中最容易出現(xiàn)的問題是圖片分辨率參差不齊、存在重復(fù)圖片、少數(shù)圖片標(biāo)注明顯錯(cuò)誤比如把塑料瓶標(biāo)成玻璃瓶。如果模型學(xué)習(xí)到了錯(cuò)標(biāo)特征后面的精確率再高也是虛的。數(shù)據(jù)不足的部分可以自己拍攝補(bǔ)充注意覆蓋不同角度、不同光線和不同背景這樣模型才不至于只在某一類固定背景上表現(xiàn)好。2.2 預(yù)處理細(xì)節(jié)尺寸、歸一化與通道順序預(yù)處理看起來簡(jiǎn)單卻決定了模型能否正確接收?qǐng)D片。首先必須把所有圖片統(tǒng)一成相同尺寸否則CNN全連接層的輸入維度會(huì)不一致訓(xùn)練直接報(bào)錯(cuò)。MobileNetV2的默認(rèn)輸入尺寸是224x224自訓(xùn)練CNN則根據(jù)計(jì)算資源可以選擇96x96或128x128。其次把像素值從0到255歸一化。使用ImageDataGenerator時(shí)設(shè)置rescale1./255即可使用MobileNetV2時(shí)要注意它有自己的預(yù)處理函數(shù)不能簡(jiǎn)單除以255就算完。還要注意通道順序。TensorFlow默認(rèn)是“高度、寬度、通道”的NHWC格式一般讀圖后不做特殊處理即可。如果你習(xí)慣用OpenCV讀圖要記得OpenCV讀取的是BGR順序需要轉(zhuǎn)換為RGB否則模型看到的顏色通道是反的訓(xùn)練效果會(huì)明顯變差。2.3 數(shù)據(jù)增強(qiáng)讓模型在少量數(shù)據(jù)里“見多識(shí)廣”數(shù)據(jù)增強(qiáng)不是單純?yōu)榱嗽黾訄D片數(shù)量而是讓模型對(duì)拍攝時(shí)的真實(shí)變化不敏感。我使用的增強(qiáng)方式包括隨機(jī)旋轉(zhuǎn)、水平翻轉(zhuǎn)、寬度和高度平移、縮放、剪切變換、亮度擾動(dòng)。用TensorFlow的ImageDataGenerator實(shí)現(xiàn)只需要幾行配置。from tensorflow.keras.preprocessing.image import ImageDataGenerator train_datagen ImageDataGenerator( rescale1./255, rotation_range20, width_shift_range0.2, height_shift_range0.2, shear_range0.2, zoom_range0.2, horizontal_flipTrue, brightness_range[0.8, 1.2], fill_modenearest )這些增強(qiáng)參數(shù)也不是越大越好。比如旋轉(zhuǎn)角度超過30度很多垃圾對(duì)象的類別特征可能被破壞反而加大學(xué)習(xí)難度。我建議先用輕中度增強(qiáng)觀察驗(yàn)證集準(zhǔn)確率是否提升再逐步調(diào)整。務(wù)必記住驗(yàn)證集和測(cè)試集不能使用與訓(xùn)練集相同的數(shù)據(jù)增強(qiáng)最多只做縮放和歸一化否則驗(yàn)證結(jié)果會(huì)虛高不能反映模型真實(shí)泛化能力。2.4 數(shù)據(jù)集劃分與目錄組織數(shù)據(jù)劃分要嚴(yán)格做到分層抽樣避免某一類圖片全部集中在訓(xùn)練集而驗(yàn)證集只剩下其他類別。對(duì)多分類任務(wù)最簡(jiǎn)單有效的做法是使用train_test_split并指定stratifyy。import os import shutil from sklearn.model_selection import train_test_split all_images [] for category in categories: imgs [os.path.join(category, f) for f in os.listdir(category)] all_images.extend(imgs) labels [category] * len(imgs) train_imgs, val_imgs, train_labels, val_labels train_test_split( all_images, labels, test_size0.2, stratifylabels, random_state42 )目錄結(jié)構(gòu)建議采用規(guī)范的分類文件夾方式data/ ├── train/ │ ├── cardboard/ │ ├── metal/ │ └── ... ├── val/ └── test/直接把圖片按類別放進(jìn)對(duì)應(yīng)的文件夾后續(xù)用ImageDataGenerator的flow_from_directory加載非常方便也方便人工檢查數(shù)據(jù)。我習(xí)慣把訓(xùn)練、驗(yàn)證、測(cè)試按7:2:1或8:1:1劃分測(cè)試集留到最后才用避免在調(diào)試過程中反復(fù)看測(cè)試集結(jié)果產(chǎn)生隱性的“測(cè)試集過擬合”。3. 從零訓(xùn)練CNN網(wǎng)絡(luò)結(jié)構(gòu)、參數(shù)計(jì)算與訓(xùn)練回調(diào)3.1 CNN為什么能處理圖片從卷積核到特征圖CNN的核心假設(shè)是圖像具有局部相關(guān)性。一個(gè)像素往往與周圍的像素關(guān)系更密切而遠(yuǎn)處像素關(guān)系較弱。卷積層通過一組可學(xué)習(xí)的卷積核在圖片上滑動(dòng)每個(gè)卷積核負(fù)責(zé)檢測(cè)某一種局部特征比如邊緣、顏色塊、紋理。多個(gè)卷積核疊加后淺層網(wǎng)絡(luò)學(xué)到的是線條和角點(diǎn)深層網(wǎng)絡(luò)學(xué)到的是“瓶口”“把手”這類語(yǔ)義部件最后用全連接層把這些特征組合成類別判斷。池化層的作用是在保留主要特征的同時(shí)縮小特征圖尺寸既減少計(jì)算量也增強(qiáng)平移不變性。整個(gè)過程很像我們?nèi)搜巯瓤淳植考?xì)節(jié)再綜合判斷整體類別。理解了這一點(diǎn)你就能明白為什么那些把卷積核堆得很深卻不做歸一化的模型經(jīng)常出現(xiàn)訓(xùn)練震蕩。3.2 網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計(jì)不只是“越深越好”我設(shè)計(jì)的自訓(xùn)練CNN結(jié)構(gòu)如下適合8個(gè)分類類別輸入尺寸為224x224x3卷積層132個(gè)3x3卷積核BatchNormalizationReLU2x2最大池化卷積層264個(gè)3x3卷積核BatchNormalizationReLU2x2最大池化卷積層3128個(gè)3x3卷積核BatchNormalizationReLU全局平均池化全連接層128個(gè)神經(jīng)元ReLUDropout 0.5輸出層8個(gè)神經(jīng)元Softmax為什么第三層用全局平均池化而不是繼續(xù)展平因?yàn)槿绻苯覨latten前面特征圖的尺寸還會(huì)很大參數(shù)量會(huì)急劇增加。比如128個(gè)特征圖每個(gè)尺寸為28x28展平后就是100352個(gè)輸入節(jié)點(diǎn)全連接層參數(shù)量巨大非常容易過擬合。全局平均池化把每個(gè)特征圖變成一個(gè)值參數(shù)量大幅下降效果在大多數(shù)分類任務(wù)上不輸Flatten。實(shí)際參數(shù)量估算第一層卷積是3x3x3x32再加32個(gè)偏置一共896個(gè)參數(shù)第二層3x3x32x64再加64個(gè)偏置約18496個(gè)參數(shù)第三層3x3x64x128再加128約73856個(gè)參數(shù)。整個(gè)模型參數(shù)量不到幾十萬相比于幾百萬甚至上億參數(shù)的大模型已經(jīng)非常輕量。3.3 TensorFlow代碼實(shí)現(xiàn)import tensorflow as tf from tensorflow.keras import layers, models def build_cnn(input_shape(224, 224, 3), num_classes8): model models.Sequential([ layers.Conv2D(32, (3, 3), activationrelu, input_shapeinput_shape), layers.BatchNormalization(), layers.MaxPooling2D(pool_size(2, 2)), layers.Conv2D(64, (3, 3), activationrelu), layers.BatchNormalization(), layers.MaxPooling2D(pool_size(2, 2)), layers.Conv2D(128, (3, 3), activationrelu), layers.BatchNormalization(), layers.GlobalAveragePooling2D(), layers.Dense(128, activationrelu), layers.Dropout(0.5), layers.Dense(num_classes, activationsoftmax) ]) return model這里有兩個(gè)容易被忽略的細(xì)節(jié)。第一是BatchNormalization放在卷積和激活之間很多新手喜歡先激活再歸一化效果往往會(huì)差一點(diǎn)。第二是卷積層后面接了池化不要急著堆很多卷積層因?yàn)樾?shù)據(jù)集上的深度神經(jīng)網(wǎng)絡(luò)很容易過擬合淺一點(diǎn)反而好訓(xùn)練。3.4 訓(xùn)練配置與回調(diào)機(jī)制訓(xùn)練配置決定了模型收斂速度和最終效果不要隨便選參數(shù)。model.compile( optimizertf.keras.optimizers.Adam(learning_rate1e-3), losscategorical_crossentropy, metrics[accuracy] ) callbacks [ tf.keras.callbacks.EarlyStopping(monitorval_loss, patience10, restore_best_weightsTrue), tf.keras.callbacks.ReduceLROnPlateau(monitorval_loss, factor0.5, patience5), tf.keras.callbacks.ModelCheckpoint(cnn_best.h5, monitorval_accuracy, save_best_onlyTrue) ] history model.fit( train_generator, validation_dataval_generator, epochs50, callbackscallbacks )categorical_crossentropy要求標(biāo)簽是one-hot編碼flow_from_directory默認(rèn)會(huì)用categorical模式輸出one-hot標(biāo)簽所以這里正好匹配。EarlyStopping和ReduceLROnPlateau是好搭檔當(dāng)驗(yàn)證集loss不再下降時(shí)學(xué)習(xí)率會(huì)自動(dòng)降一半給模型一個(gè)更精細(xì)的收斂機(jī)會(huì)如果連續(xù)10個(gè)epoch仍然沒有改善就提前停止避免浪費(fèi)時(shí)間。3.5 評(píng)估模型準(zhǔn)確率不夠要看混淆矩陣訓(xùn)練結(jié)束后不要只看總準(zhǔn)確率一定要看分類報(bào)告。8個(gè)類別的垃圾中可能“塑料瓶”和“玻璃瓶”經(jīng)?;煜渌悇e都很好這時(shí)候總準(zhǔn)確率可能顯示92%看起來不錯(cuò)但特定兩類完全不可用。正確做法是在測(cè)試集上輸出混淆矩陣和逐類精確率、召回率。from sklearn.metrics import classification_report, confusion_matrix import numpy as np y_pred model.predict(test_generator) y_pred_classes np.argmax(y_pred, axis1) y_true test_generator.classes print(classification_report(y_true, y_pred_classes, target_namescategories)) print(confusion_matrix(y_true, y_pred_classes))一個(gè)真實(shí)項(xiàng)目中如果“塑料袋”因?yàn)樘该鳌⒎垂鈬?yán)重而被大量誤判為“塑料瓶”說明模型還沒有把“形狀可變形”這個(gè)特征學(xué)會(huì)。這時(shí)候優(yōu)先補(bǔ)充更多透明的、揉成一團(tuán)的塑料袋圖片比盲目加深網(wǎng)絡(luò)更有效。這也是小項(xiàng)目里“數(shù)據(jù)比模型更值錢”的典型例子。4. MobileNet遷移學(xué)習(xí)實(shí)戰(zhàn)少樣本也能拿到高精度4.1 MobileNet的核心優(yōu)勢(shì)輕量而高效MobileNet不是某一種固定結(jié)構(gòu)而是一系列為移動(dòng)端設(shè)計(jì)的輕量網(wǎng)絡(luò)。它的核心創(chuàng)新是深度可分離卷積把普通卷積拆分成“逐通道卷積”和“逐點(diǎn)卷積”。簡(jiǎn)單理解普通卷積一次性同時(shí)處理空間信息和通道信息而深度可分離卷積先對(duì)每個(gè)通道做空間卷積再用1x1卷積去融合通道信息。這樣計(jì)算量可以下降一個(gè)數(shù)量級(jí)而精度損失相對(duì)可控。對(duì)于垃圾分類這個(gè)場(chǎng)景模型是要部署到普通設(shè)備上的MobileNet的輕量特性直接決定了“可用”。我選擇MobileNetV2而不是MobileNetV1是因?yàn)閂2引入了線性瓶頸和倒殘差結(jié)構(gòu)在相同體積下精度更高很多公開部署案例都驗(yàn)證過它的穩(wěn)定性。4.2 遷移學(xué)習(xí)為什么要借大規(guī)模預(yù)訓(xùn)練模型的“眼力”垃圾分類圖片雖然有自己的特點(diǎn)但底層視覺特征比如邊緣、紋理、形狀、顏色分布與大規(guī)模自然圖像數(shù)據(jù)集中學(xué)到的特征非常相似。預(yù)訓(xùn)練模型已經(jīng)在海量圖片上學(xué)會(huì)了識(shí)別這些通用特征我們不需要從零開始教它“什么是邊緣”。遷移學(xué)習(xí)有兩種常見策略。第一種是特征提取把預(yù)訓(xùn)練模型全部?jī)鼋Y(jié)只修改最后幾層適合每類只有幾百?gòu)垐D片的小數(shù)據(jù)集。第二種是微調(diào)先凍結(jié)預(yù)訓(xùn)練模型訓(xùn)練分類頭再解凍部分高層卷積層用很低的學(xué)習(xí)率繼續(xù)訓(xùn)練適合數(shù)據(jù)量稍多且希望進(jìn)一步提升精度的場(chǎng)景。我用一張表說明區(qū)別策略訓(xùn)練時(shí)間所需數(shù)據(jù)量精度上限適合場(chǎng)景特征提取短每類200~500張中等偏高快速搭建基線、CPU訓(xùn)練微調(diào)較長(zhǎng)每類500張以上更高追求最終部署精度4.3 特征提取模式實(shí)現(xiàn)先凍結(jié)全部卷積基座下面這段代碼創(chuàng)建了MobileNetV2遷移學(xué)習(xí)模型關(guān)鍵點(diǎn)在于base_model.trainable False。from tensorflow.keras.applications import MobileNetV2 from tensorflow.keras.applications.mobilenet_v2 import preprocess_input from tensorflow.keras import layers, models base_model MobileNetV2( weightsimagenet, include_topFalse, input_shape(224, 224, 3) ) base_model.trainable False inputs tf.keras.Input(shape(224, 224, 3)) x preprocess_input(inputs) x base_model(x, trainingFalse) x layers.GlobalAveragePooling2D()(x) x layers.Dropout(0.2)(x) outputs layers.Dense(num_classes, activationsoftmax)(x) model models.Model(inputs, outputs) model.compile( optimizertf.keras.optimizers.Adam(learning_rate1e-3), losscategorical_crossentropy, metrics[accuracy] )注意這里的preprocess_input是MobileNetV2專用的預(yù)處理方式不是簡(jiǎn)單除以255。把輸入先做預(yù)處理再進(jìn)入模型才能和預(yù)訓(xùn)練時(shí)看到的數(shù)據(jù)分布保持一致。還有一個(gè)容易被忽略的細(xì)節(jié)因?yàn)閎ase_model被凍結(jié)在推理模式下trainingFalseBatchNormalization層會(huì)使用移動(dòng)平均而不是當(dāng)前批次統(tǒng)計(jì)量這樣能避免因?yàn)閮鼋Y(jié)BN層導(dǎo)致的訓(xùn)練不穩(wěn)定。4.4 微調(diào)模式實(shí)現(xiàn)小學(xué)習(xí)率解凍高層特征提取模式訓(xùn)練幾個(gè)epoch后如果驗(yàn)證準(zhǔn)確率進(jìn)入了平臺(tái)期就可以嘗試微調(diào)。微調(diào)的思路不是一次性把整個(gè)網(wǎng)絡(luò)都解凍那樣學(xué)習(xí)率稍大一點(diǎn)就會(huì)讓已經(jīng)學(xué)好的預(yù)訓(xùn)練特征被破壞。我的做法是先解凍整個(gè)MobileNetV2然后手動(dòng)把比較淺的層繼續(xù)凍結(jié)只讓最后幾十層跟著訓(xùn)練。base_model.trainable True # 具體凍結(jié)層數(shù)需要根據(jù)模型結(jié)構(gòu)調(diào)整一般保留前100層左右不動(dòng) for layer in base_model.layers[:100]: layer.trainable False model.compile( optimizertf.keras.optimizers.Adam(learning_rate1e-5), losscategorical_crossentropy, metrics[accuracy] )這個(gè)階段的學(xué)習(xí)率一定要比前面低兩個(gè)數(shù)量級(jí)以上。我用過1e-5也用過5e-6整體都很穩(wěn)定。如果學(xué)習(xí)率突然拉高到1e-4很快就看到loss沖高然后模型再也回不到原來的狀態(tài)這就是很多同學(xué)遇到的“微調(diào)直接廢掉”的原因。4.5 小樣本訓(xùn)練的幾個(gè)關(guān)鍵技巧在每類只有幾百?gòu)垐D片時(shí)有幾個(gè)技巧非常管用。第一是先用特征提取模式得到一個(gè)不錯(cuò)的初始化點(diǎn)再進(jìn)入微調(diào)不要在一開始就解凍全部層。第二是在分類頭之前加Dropout層雖然預(yù)訓(xùn)練模型已經(jīng)很強(qiáng)但在小數(shù)據(jù)集上依然很容易過擬合。第三是合理使用早停讓訓(xùn)練在驗(yàn)證集開始下降時(shí)立刻停止。第四是如果某類圖片數(shù)量特別少可以為這類圖片做更多增強(qiáng)或者用類別權(quán)重懲罰模型對(duì)少數(shù)類的“忽視”。我實(shí)測(cè)下來MobileNet遷移學(xué)習(xí)在每類500張左右圖片的情況下驗(yàn)證準(zhǔn)確率比自訓(xùn)練CNN高出8到12個(gè)百分點(diǎn)而且模型體積只有約十幾MB轉(zhuǎn)換TFLite之后還能再壓縮一半以上。這也是為什么最終方案我毫不猶豫選擇遷移學(xué)習(xí)的原因。5. 讓模型真正可用TFLite導(dǎo)出與端側(cè)推理5.1 部署目標(biāo)模型要“變小變快”而不是只追求準(zhǔn)確率很多同學(xué)訓(xùn)練完模型保存一個(gè).h5文件就認(rèn)為項(xiàng)目完成了。但對(duì)“可用”來說這遠(yuǎn)遠(yuǎn)不夠。h5或SavedModel格式需要完整的TensorFlow環(huán)境才能加載CPU設(shè)備上跑起來還特別慢。手機(jī)、嵌入式板卡根本沒有辦法直接運(yùn)行大模型。所以我的部署目標(biāo)是轉(zhuǎn)換成本低的TFLite格式。TFLite是TensorFlow為移動(dòng)端和嵌入式設(shè)備設(shè)計(jì)的推理格式它執(zhí)行時(shí)不需要完整訓(xùn)練框架模型體積更小推理速度快。轉(zhuǎn)換時(shí)還可以做量化把模型中的權(quán)重從32位浮點(diǎn)數(shù)變成16位浮點(diǎn)數(shù)甚至8位整數(shù)進(jìn)一步壓縮體積。5.2 從SavedModel到TFLite的轉(zhuǎn)換操作先訓(xùn)練并保存模型推薦保存為SavedModel格式因?yàn)樗鼘?duì)部署鏈路兼容性最好。model.save(garbage_mobilenet_savedmodel)然后使用TFLite轉(zhuǎn)換器。最簡(jiǎn)單的轉(zhuǎn)換如下import tensorflow as tf converter tf.lite.TFLiteConverter.from_saved_model(garbage_mobilenet_savedmodel) converter.optimizations [tf.lite.Optimize.DEFAULT] tflite_model converter.convert() with open(garbage_mobilenet.tflite, wb) as f: f.write(tflite_model)這里tf.lite.Optimize.DEFAULT會(huì)盡可能壓縮模型。由于訓(xùn)練時(shí)模型權(quán)重分布比較合理量化后精度損失通常很小。如果后續(xù)實(shí)測(cè)發(fā)現(xiàn)精度掉得比較多可以改用僅對(duì)權(quán)重做量化而不對(duì)激活值做量化或者干脆不量化只保留FP32模型根據(jù)自己的硬件算力做取舍。5.3 使用TFLite解釋器在Python端推理TFLite模型不能直接喂給原來的模型預(yù)測(cè)函數(shù)需要用TFLite解釋器加載。我寫了一個(gè)可復(fù)用的推理函數(shù)import numpy as np import tensorflow as tf interpreter tf.lite.Interpreter(model_pathgarbage_mobilenet.tflite) interpreter.allocate_tensors() input_details interpreter.get_input_details() output_details interpreter.get_output_details() def predict_tflite(image): image cv2.resize(image, (224, 224)) image image.astype(np.float32) image preprocess_input(image) # 和訓(xùn)練時(shí)保持一致 image np.expand_dims(image, axis0) interpreter.set_tensor(input_details[0][index], image) interpreter.invoke() output interpreter.get_tensor(output_details[0][index]) return output部署時(shí)最容易出的問題就是預(yù)處理不一致。訓(xùn)練時(shí)你用了MobileNetV2的preprocess_input推理時(shí)卻用了簡(jiǎn)單除以255模型輸出的置信度會(huì)很奇怪。如果你自己在模型里加了歸一化層那么推理時(shí)就不需要再做一遍。在寫部署代碼之前先花十分鐘核對(duì)接下來的每一步比訓(xùn)練時(shí)調(diào)參還要重要。5.4 精度與速度的取舍量化不是越高越好我實(shí)際對(duì)比過三份模型原始FP32、FP16半精度、INT8量化。模型模型體積推理速度準(zhǔn)確率變化FP32約14MB基準(zhǔn)基準(zhǔn)FP16約7MB更快基本不變INT8約3.5MB最快可能下降1%~3%INT8量化在小模型上通常不會(huì)有太大損失但如果你訓(xùn)練時(shí)的數(shù)據(jù)分布與部署現(xiàn)場(chǎng)差異較大掉點(diǎn)就會(huì)更明顯。一個(gè)穩(wěn)妥的做法是先在開發(fā)板上跑一遍量化模型如果準(zhǔn)確率下降超過預(yù)期就退回FP16。端側(cè)推理還可以設(shè)置線程數(shù)比如在雙核處理器上嘗試interpreter.set_num_threads(2)有時(shí)候速度提升比換模型更直接。6. 常見問題與高頻踩坑實(shí)錄6.1 訓(xùn)練集較小模型反復(fù)過擬合典型現(xiàn)象是訓(xùn)練準(zhǔn)確率很快升到98%驗(yàn)證準(zhǔn)確率卻停在70%。這通常意味著模型把訓(xùn)練數(shù)據(jù)死記硬背下來了沒有真正學(xué)會(huì)泛化。解決順序分三步先加強(qiáng)數(shù)據(jù)增強(qiáng)增加旋轉(zhuǎn)、翻轉(zhuǎn)、色彩抖動(dòng)的強(qiáng)度再增強(qiáng)模型正則化增大Dropout比例或減少全連接層神經(jīng)元最后如果還是不行就換遷移學(xué)習(xí)模型而不是繼續(xù)堆CNN層數(shù)。對(duì)小數(shù)據(jù)來說換網(wǎng)絡(luò)帶來的收益往往大于調(diào)參。6.2 類別不均衡導(dǎo)致模型“永遠(yuǎn)猜多數(shù)類”如果“塑料瓶”圖片有3000張“舊衣服”只有200張模型很可能為了整體準(zhǔn)確率把舊衣服全部忽略。在訓(xùn)練損失上體現(xiàn)為少數(shù)類幾乎不被預(yù)測(cè)。對(duì)策有兩個(gè)一是收集更多少數(shù)類圖片這是最根本的二是在class_weight里給少數(shù)類更大權(quán)重。TensorFlow訓(xùn)練時(shí)可以直接傳入class_weight參數(shù)不同框架語(yǔ)法略有差異核心思想是讓少數(shù)類樣本被分錯(cuò)時(shí)產(chǎn)生更大的損失。6.3 驗(yàn)證集準(zhǔn)確率高測(cè)試集卻崩了這是最隱蔽的坑。常見原因是數(shù)據(jù)泄漏同一個(gè)物體的多張不同角度照片被同時(shí)分到了訓(xùn)練集和驗(yàn)證集導(dǎo)致驗(yàn)證集“見過”訓(xùn)練數(shù)據(jù)。另外數(shù)據(jù)增強(qiáng)如果被錯(cuò)誤地應(yīng)用到了驗(yàn)證集也會(huì)讓驗(yàn)證分?jǐn)?shù)虛高。我建議劃分?jǐn)?shù)據(jù)集時(shí)按“物體實(shí)例”而不是按“單張圖片”去劃分比如同一組連續(xù)拍攝的塑料瓶圖片全部劃到同一個(gè)集合不要打散。這樣做更接近真實(shí)場(chǎng)景。6.4 遷移學(xué)習(xí)微調(diào)時(shí)loss突然沖高這是我在遷移學(xué)習(xí)里踩過最狠的坑。原因通常是解凍后學(xué)習(xí)率設(shè)置過大導(dǎo)致預(yù)訓(xùn)練權(quán)重被快速破壞也可能是模型里BatchNormalization層在trainingTrue時(shí)重新統(tǒng)計(jì)了少量樣本的均值方差而樣本量太小統(tǒng)計(jì)不穩(wěn)定。解決方法是把學(xué)習(xí)率降到1e-5以下同時(shí)確保微調(diào)階段的batch size不要太小盡量保持在32以上。如果loss還是沖高重新從特征提取階段的模型恢復(fù)再降低解凍層數(shù)。6.5 端側(cè)部署后推理速度達(dá)不到實(shí)時(shí)如果攝像頭畫面看上去有明顯的卡頓先檢查模型輸入分辨率是不是太高。比如你訓(xùn)練時(shí)用224x224部署時(shí)卻把原圖先縮放到640x640再送進(jìn)模型速度自然慢。輸入超過模型需要的大小并不會(huì)提升精度。其次檢查量化是否生效先用interpreter打印模型輸入數(shù)據(jù)類型如果還是float32就確認(rèn)轉(zhuǎn)換時(shí)是否真的加上了optimizations。兩條都排查完基本可以解決問題。7. 寫在最后一些真實(shí)體會(huì)7.1 復(fù)現(xiàn)這個(gè)項(xiàng)目的建議順序我自己跑這個(gè)項(xiàng)目時(shí)最受益的是把“自訓(xùn)練CNN”和“MobileNet遷移學(xué)習(xí)”放在同一套數(shù)據(jù)上對(duì)比。這樣你能直觀感受到數(shù)據(jù)量、模型容量和泛化能力之間的關(guān)系而不是單純迷信某個(gè)高大上的網(wǎng)絡(luò)。建議復(fù)現(xiàn)時(shí)也按這個(gè)順序來先準(zhǔn)備數(shù)據(jù)再跑一遍CNN基線然后用MobileNet遷移學(xué)習(xí)做正式方案最后再做TFLite量化部署。不要急著跳過基線直接做遷移學(xué)習(xí)少了那一步很多訓(xùn)練現(xiàn)象你很難解釋。7.2 這個(gè)項(xiàng)目后續(xù)還能往哪里擴(kuò)展完成第一版后可以做的擴(kuò)展方向很多。比如給系統(tǒng)加入目標(biāo)檢測(cè)前置模塊先用檢測(cè)模型定位畫面中的垃圾區(qū)域再裁剪送入分類模型這樣就能處理畫面里有多個(gè)垃圾對(duì)象的情況。也可以把單幀圖片分類改成視頻流分類加入時(shí)序平滑策略避免連續(xù)幀分類結(jié)果抖動(dòng)太厲害。再進(jìn)一步還可以在部署腳本里加入簡(jiǎn)單的置信度閾值邏輯置信度低時(shí)提示用戶重新拍攝或反饋人工標(biāo)注形成一個(gè)小閉環(huán)。垃圾分類系統(tǒng)并不是什么“高不可攀”的項(xiàng)目它真正考驗(yàn)的是你把數(shù)據(jù)、模型、部署串聯(lián)起來的工程能力。希望這篇記錄能幫你少走幾步彎路。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
亚洲影院小综合| 18禁精品网站在线看| 99热这里只有精品9| 日韩猛交| 超碰精品人妻狠狠干| 人妻AV 中文字幕的| japan日本高清乱xxxx| 91亚洲人| 天堂av最新电影网| 日本不卡二三区| 中文字幕黑人大片| 日本一本道A级黄色毛片试看60分钟| 在线天堂资源亚洲| 97中文字幕一区| 亚洲精品蜜桃久久久久久久| 99精品丰满人妻无码| 久久黄黄| 日本九九九九| 国产一级黄色片在线观看| 搡老熟女免费视频| 猛猛干| 台湾佬中文娱乐网久久久久久久久久com | 亚洲男人的天堂AV| 嗯……啊…嗯嗯…啊…好舒服| 亚欧性爱ab| 国内偷拍精品一区二区| 亚洲黄色| 欧美黄色手机在线观看| 自拍偷拍国产欧美日韩韩| 久久久久97| 精品高清牛人盗摄一区二区三区中文字幕A片免费在线观看 | 手机在线人成免费视频| 天天操天天干一区二区 | 动漫片子网站3黄| 乱色视频中文字幕| 亚洲成人免费在线| 久久欧美按摩999| 五月婷丁香| 久久精品三级影视| 2010男人的天堂| 天天流夜夜操| 国产黄a三级三级三级av在线看 | 欧美色图欧美| 欧美天天干| 中国熟妇| 亚洲美女av无码| 午夜精品久久久久久久久久久久久| 97欧美色| 久久日本熟妇熟色一区| 亚洲日韩人妻中文字幕一区| 日韩成人性爱电影在线播放| 国产免费永久精品无码| 欧美|91色综合| 中文字幕乱碼在线| 久久亚码| 操久久久久| 99re6在线视频播放免费精品| 91青青在线视频| 99re综合伊人| 亚洲天堂男人天堂网| 久九九九| 亚洲欧美自拍偷拍| 久久婷婷色| 人妻AV 中文字幕的| 欧美午夜色妇色鬼| 久久熟女嫩草成人片免费 | 大香蕉亚洲中文| 色色色色色色色色色色色色色色综合| 黑人中出21连凳花野真衣| 99热 按摩 日韩| 欧美综合1性辶| 人人操人人摸人人骑| 99国产精品视频尤物| 91精品国产麻豆国产自产在| 玖玖综合.com| 人人干人人操人人爱| 中文字幕亚洲永久精品| 91精品人妻一区二区-全集完整版免费正片国语-B02AV | 综合久久欧美| 青青草在线成人视频| 韩日精品福利视频一区不卡在线免| 日韩精品电影| 丁香五六月啪啪| 日亚韩精品视频二区三| 二三四区精品| 亚洲综合999| 婷婷影院入口| 国产精品久久久777| 亚洲AV不卡在线观看| 亚洲欧美在线丝袜| 亚洲国产一级精品毛一级精品看免费视频| 91天天综合| 亚洲国产婷婷在线播放| oumeisetupian| 精品日日人妻| 无码国产精品久久久久| 麻豆精品A片免费观看| 欧美综合自拍亚洲综合图| 国产综合色精品在线观看| 久久香蕉综合一本到3atv| 亚洲永久AV无码精品秋霞| 一本久久久精品| 大香蕉乱级| oumeisetu综合| 激情人妻另类| 91精品国产日韩欧美综合| 尤物av网站| 蜜臀AV午夜精品久| 婷婷综合激情| 精品天堂| 激情五月天婷婷| 大香交| 97精品视频免费| 亚州男人天堂| 亚洲春色激情小说| 老外又粗又长一晚做五次| 国产精品久久久亚洲一区| 精品国产乱码久久久久久久久久毛片 | 国产日比| 理论久久婷婷网8| 无码精品一区二区三区潘金莲| 国产白嫩精品久久| 亚洲日本激情| 在线中文AV| 中文字幕一区二区视频在线观看 | 抽插无码高清一区| 亚州春色| 亚洲天堂7777| 亚洲双插| 日日狠狠久久偷偷色综合免费| 国产免费小视频| 思思热一热婷婷热一热| 被男人吃奶很爽的毛片| 欧美一区二区传媒| 九九热久久99精品re| 青青草自拍视频在线播放| 中国熟妇| 久草热制服丝袜在线观看| 欧美呦呦性爱| 亚洲加勒比色图| 丁香五月激情综合国产| 成人小电影网站tex| 裸体美女国产免费久久久网站| 肉嘟嘟www视频在线观看高清| 操死我了嗯嗯嗯| 影音先锋视频在线| 日本亚欧爱爱| 久久超碰爱| 国产 日韩,欧美 自拍| 国产精品白虎| 曰韩精品视频一区二区| 99福利社| 99丝袜福利在线播放| 国产兽交视频在线播放| 秋霞福利网| 五月婷婷五月天| 91精品人妻偷情| 欧美 熟女 日韩| 秋霞视频一区二区| 亚洲高清视频在线免费观看| 欧美色色人| 丁香啪啪| 一级@啪啪视频| 欧美色图片欧美色图| 狠狠色丁香| 久久成年片色大黄全免费网站| 亚州精品丝袜-不卡成人免费| 99久久婷婷丁香| 午夜福利 成人 91| 综合网亚| 久操综合在线| 717影院理论午夜伦八戒| 亚洲色电影在线| 97视频620| 中文字暮97| 成人八戒网站| 欧美大香蕉同搞| 91网站18| 国产成人五月天丁香花| 秋霞福利网| 97超碰久久色| 色综合加勒比四四季| 丁香九月激情啪| 欧美亚洲国产91在线| 欧美草草高清日韩视频| 日本黄色天堂| 97超碰免费人人性爱| 久久人妻视频网| 国产精品老师| 黄色欧美性爱视频| 在线观看高清AV| 国产免费黄色一级大片| 亚洲一区二区三区婷婷| 四虎影视国产精品| 丝袜色综合| 操死我了嗯嗯嗯| 第45页一区二区| 毛片中心9视频99| 国产激情片在线观看| 超碰国产精品无码| 国产精品无码成人精品| 亚洲砖码砖专无区2023| 熟女乱伦二区| 久久丁香| 日韩啪啪啪啪啪| 大香蕉九九| 入口操逼网站| 99在线观看| 五月天婷婷久久| 91精品人妻电影| 国产a片操逼| 老子午夜伦不卡影院| 99人妻碰碰碰久久久久禁片| 亚洲精品成人动漫在线| 日韩乱伦影音先锋| 色五月婷婷中文字幕| 1769精品一区二区三区| 免费夜夜爱黄色视频毛片| 亚洲综合色婷婷| 亚洲欧美日韩夜夜| 日夜啪电影| 蜜臀亚洲中文| 1.igao73.com 加入收藏 免费专区 国产精品 中文字幕 日韩精品 欧美精品 精彩 | 五月花婷婷| 婷婷五月天av| 久久久久久久极品香蕉视频| 久久久久9999妇女| 色欧洲97| 亚洲男人天堂2017| 国产偷人伦激情在线观看| 日本人妻中文字幕精品| 极品美女福利在线观看| 日本中文字幕在线视频 | 欧美激情亚洲| TS人妖另类精品视频系列| 日本操逼视频免费| 国产亚洲中文不卡二区| 亚洲国产精品久久久久久久久久| 精品国产网站| 不卡一区视频| 亚洲在线91| 久久久久久99AV无码免费网站| 99亚洲精品| 久久久久久久国产视频| 99热久| 亚洲日韩青青草色月| 99re在线视频| 亚欧无码线免费观看视频| 超碰色男人操熟女| 亚州国产精品乱| 日本一二三高清| 国产精品97超碰| 亚洲中文字幕精品一区| 国产1769在线| 中文字幕天天天天天| AV色图| 97免费在线观看视频| 日本成人A片网站| 婷婷六月色| 蜜桃久久久久久久久久久久| 亚洲人妻久久| 免费看欧美美女黄色大片| 精品无码久久久| 国产精品久久久久久夜夜夜夜| 久久久久久久9999| 国产成人精品日本视频| 蜜桃精品视频一区| 超清中文乱码字幕| 爱做久久久久久| 啊嗯好大视频在线观看| 亚洲情色综合| 久久黄黄| 91性片| 亚洲国产欧美中日韩成人综合视频| 5252色欧美在线| 青草精品视频日本久久久久网站在线| 人人操人人摸人| 色九九九九| 久久久久97| 色啪网| 另类图片五月天| 韩国午夜理伦三级好看| 久久99精品九九久久久婷婷| 超碰在线观看av不卡| 人人手机欧洲亚洲国产人妻| 天天激清| 97 视频在线| 日韩成人无码| 在线女人91| 91精品网站| 99热精品在线播放| 大香蕉懂9| 丁香婷婷啪啪| 玖草在线视频| 国产免费大片| 中文字幕日韩人妻视频| 久草婷婷| 欧美aa一级片| 一本色道久久综合狠狠操| 亚洲高清无码在线桃色| 熟女91网| wwwss在线观看| 日韩天天综合| 日韩情色视频| 亚洲精品国语在线播放| 97 视频在线| 免费看黄视频亚洲网站| 人妻少妇无码| 日本 成 人 小说 电影 一区二区| 免费一二区| 久久99国产综合精品女同| 国产高清成人免费视频| 一区二区三区日韩欧美| 一级日本牲交大片好爽在线看| 美腿丝袜偷拍亚洲欧美| 欧美午夜一区二区三区| 中文字幕熟女人妻丝袜丝| 秋霞视频一区二区| 久久超碰网| 蜜奶av| 26uuu性| 欧美性少妇| 天天综合色| 搡老女人911熟妇老熟女| 91美女在线看| 色色色99| 日韩免费福利在线观看| 日韩不卡一二三四| 91久久精品国产| 草莓精品视频在线免费观看| 欧美亚洲首页| 躁躁日曰躁2020| 干婷婷综合网| 亚洲一区日韩精品中文字幕| 国产精品亚洲日韩骚欢乐谷最新地址发布页huanieguty性屋娱乐妖精视频 | 国产麻豆91欧美一区二区久久婷婷国产精品| 人人看人人插| 欧美黑人与女人91| 伊人97色天使| 亚洲综合色婷婷| 日本性感人妻91| 天欧美在线| 炮色五月| 97干在线看| 探花一区在线| 色官网色综合| 色网站导航大全| 黑人精品欧美一区二区蜜桃| 欧美日韩理论一区| 日韩另类色图| 国产高清无码一区二区三区四区皇冠| 大香蕉乱级| 日日夜夜骑| 午夜AV污污污| 欧美日韩大陆黑人少妇99| 狠狠穞A片一區二區三區| 国产一区二区三区白丝| 翔田千里AV无码秘 三区| 97在线青| 91九色丨国产丨爆乳| 亚洲九区| 强奸a片网| 亚洲成熟国产精品美女| 东京热视频网| 粉嫩av久久一区二区三区| 久久超碰com| 色与欲影视天天看综合网| 97爱b| 精品视频专区| 夜夜狼人妻| 国产精品交换一区二区| 国产欧美日韩在线不卡第一页| 日本操大逼| 黑人精品XXX一区一二区| 91n处女在线观看| 欧美极品色| 久久这里| 国产视频小说| 97超碰色中文字幕| 97超级色碰碰| 日本久久久精品电影| 国产亚洲日本| 国产九九九九九九| 四季av一区二区凹凸精品小说| 综合av影片| 天堂亚洲精品久久老牛| 青青草久草AV| 玖日综合网| 天天性射网| 婷婷国产精品一区二区| 嗯嗯不要视频| 成·人免费午夜在线观看| 97精品国产| 国产在线综合网| 久久精品一区二区一8| AV乱伦国产| 黑人美精品 A片| 377p欧洲日本亚洲大胆| 日本精品高清一二区一本到| 日韩午夜啪啪视频| 久久欧美按摩999| 国产精品久久久蜜臀| 天天看特黄的免费网站| 亚洲国产亚洲天堂| 啊啊啊水好多| 超碰国产精品久| 操高情无码| 乱伦熟女区| 很很干很很操| 天天影视射综合网| 黄页网站成人免费| 国产强奸乱伦欧美| 亚洲无吗在线视频| 99爱在线视频| 欧美亚洲AN| 国产精品禁久久久精品| 秋霞 色色| 亚洲最大网站av| 大香蕉97久久| 欧亚揄拍偷拍精品视频 | 色伊人91| 天天狠| 欧美熟妇亚洲版| 亚洲欧洲日韩中文字幕一区| 极品欧美一区二区三区| 92人人操人人| oumeizonghese,www| 久久伊人东京热| 亚洲国产成人精品久久久国产成人一区二区| 亚洲国产成人精品久久久国产成人一区二区 | 香蕉人人操tv| aaa淫乱视频| 78m成人视线| 激情熟女12P| 婷婷综合网| 99蜜月精品久久| 张柏芝国产一区在线观看| 国产精品视频白浆免费| 成熟熟女国产精品一区二区| 日夜伊人网| 婷婷五月天激情网| 综合天天网| 三上悠亚在线毛片91| 91成人久久| 天天天乱色综合全| 精品熟女呻吟久久91| 亚洲精品啪视频| 97超碰天天| 欧美高清第一页| 欧美啪啪女女| 91精品人妻啪啪间| ji熟女.com| 大香蕉免| 精品人妻一二三| 九九热精品视频在线观看| 欧美天堂第二区| 两女互慰AV高潮喷水在线观看| 亚洲精品男人的天堂| 亚洲AV色图一区| 淫荡熟女乱伦网| 天天综合有色网| 东京热大香蕉| 91n美女视频| 成人性交午夜免费片| 亚洲国产欧美中日韩成人综合视频| 欧洲一区二区三区免费| 草草影院最新网址| 天天爱综合网| 日本人人操人人操| 亚洲第一男人天堂| 91日本在线观看| 欧美图片色五月天| 国产精品秘 福利姬在线观看| 啊啊啊啊啊啊啊在线| 免费一级特黄特色大片在线观看看 | 锕锕好爽 死我在线观看| www.黄色在线| 久久久性少妇| 大香蕉伊人色偷偷在线| 久久久久久久人妻丝袜| 内射中出日韩在线观看视频| 日韩黄色片子| 性交一区二区在线播放| 岛国黄色大片网站| 精品国产AV一区天美传媒| 久99热| 熟妇视频一区二区三区在线| 欧美超碰96| 国产黄片精品在线| 国产综合久| 欧美AB在线观看| 五十路六十路素人熟女| 日韩精品电影| 婷婷丁香在线| 黄片免费日韩| 精品乱码在线观看| 爱我干综合| 囯产精品久久久久久久久久二区三区| 亚洲综合888| 亚洲精品影视老司机| 国产精品97超碰| 人人乐大香蕉| 99在线无码精品秘 入口黑人| 天天影视综合色| 亚洲精品久久久久久久久豆丁网| 无码外流操逼视频| 噜噜噜噜天天狠狠| 中文有码第五页| 尤物一级在线免费观看| 精品久久久久久久| 色综合99999| 五月天色五月| 亚洲AV性爱电影| 超碰在线免费一区二区三区| 加勒比AV天堂| 综合国产97| 国产日韩在线播放| 亚洲日韩在线a不卡99精品| 欧美黑人91| 日本不卡三级网在线播放| 人人干人人操人人..com| 性色A∨91| 99最新日韩偷拍视频| 欧美日韩理论一区| 欧美夜夜狠| 成人乱码一区二区三少妇| 天美精品原创av片国产| 变态另类专区| 后入式999| 97日视频| 精品v1区| 老女人爆菊| 成人性爱电影一区二区| a一区二区三区乱码在线| 亚洲在线91| 99在线免费公开视频| 天堂涩涩| 欧美爱三级日韩久久| 加勒比av网| 久久一二三四不卡| www四虎| 日本福利二区视频| 日本无码1| a片 xxxx受爽视频| 在线播放欧洲免费av| 嗯嗯啊好大| 亚洲五区熟女| 夜夜高潮夜夜爽| 婷婷激情四射| 色五月婷婷中文字幕| 欧美成人一级免费电影| 草草影院最新网址| 精品中文字幕一区二区| 国产乱伦视频污| 亚洲91色| 91成人18| A 天堂| 久久久久97| 久久大黄片| 视频一区二区免费在线| 亚洲综合第一页| 亚洲综合999| 亚洲91在线| 欧美激情一区| 亚洲av国产av综合av卡| 一区二区精品日韩欧美在线观看| 青青青国产手线观看视频2| 成人蜜乳小视频网站| 伊人热综合| 国产亚洲精品A在线观看下载| 色哟哟 日韩精品| 性色av大全| 狼狼色丁香久久婷婷综合五月| 欧美一区二区三区互相| 久久无码成人| 蜜臀操逼黄色视频操的好爽| 青草av在线| 日本狠狠干| 青娱乐亚洲热| 蜜臀AV成人精品蜜臀| 超碰无码五月97| 日本高清一本二本免费不卡| 日本一线产区和二线产区伦理片| 2017天天拍大香蕉| 91视频伊人| 欧美日本国产日韩激情视频| 97色干| 9999伦理视频| 女上位精品在线| 超碰97男女| 亚洲性爱成人| 亚洲免费人妻在| 久久亚洲影院一区二区| 伊人一区二区三区| 黑丝制服中文字幕 | 日韩肏逼视频| 在线观看AV片| 天天综合网国产| 欧美少妇性乱| 免费观看一区| 操我无码| 综合干干干av久久久综合网| 一区二区三区四区五区久久久久久| 另类欧美色| 九九久久一区二区伦理| 加勒比无码一区二区三区| 天操老女人| 亚洲图片欧美色| 亚洲五码一区二区三区| 男人的天堂2018.| 加勒比无码毛片| 欧美操人视频| 黑丝少妇| 91欧美少妇| 精品国产一区二区三区四区在线看| 日韩成人电影AV| 青青青艹在线视频| 日本在线观看网址| 99久热| 九九九九九九九九九九九蜜桃| 蜜臀无码视频在线观看| 伊人婷婷五月天| 9999久久久久| 17c在线成人免费A片观看| 天美国产三级传媒| 五月天婷婷社区| 强奸乱伦av电影| 97色诱| 综合久久久久久久久91| 中文高清一区二区的| 啊啊啊轻点在线观看| 操逼天美3区| 大香蕉欧美伊| 色吧5亚洲| 91色艳| 91亚洲欧美激情| 人妻22p| 一区二区三区四区五区久久久久久| 亚洲av国产av综合av卡| 99re8超碰| 亚欧无码线免费观看视频| 丁香六月婷婷久久综合| 78精品在线| 成人欧美一区二区三区黑人一| 色欲久久99精品久久| 欧美性爱www免费版| 亚洲天堂日本| 插日本熟女视频| 操逼无毒无码免费视频| 伊人久久大香大香线蕉中文 | 国产AV无码AV| 欧美日韩人妻少妇 一区二区三区| 青青免费在线视频一区| 日韩精品人妻中文字幕久久久| 黄色免费网| 日韩av色图综合| 三级特黄60分钟播放| 青娱乐手机日韩在线视频| 91丨豆花丨熟女| 91AV天美在线视频| 国产大学生高潮在线播放| 成人夜夜| 蜜臀av一区二区三区免费观看| 青娱乐黄色录像| 丝袜美腿欧美| 亚洲熟伦熟妇AV无码春色| 日本啊啊啊啊啊视频| 在线无码网站| 91综合天天看| 爱爱动态120秒| 大香蕉免费3| 亚州九九九精品视频| 免费中文在线| 色网色网色网色网色网色| 日本丝袜美腿人妻九九| 亚洲日韩美国人妻| 日曰骚久久精品| 大香蕉伊人网WWWn0n| 欧美探花网| 色噜噜人妻av中文字幕| 97综合在线观看| 久久久久久69国产一区二区| 国产夫妻性生活视频| 天天操av懂色| 久久av成人无码免费| 亚州性色| 亚洲色图自拍| 91啪9色| 夜色AV无码手机在线影院| 丝袜 中出 制服 人妻 美腿 中文字幕| 乱伦3P视频| 91熟女在线| 伊人久久亚洲中文字幕不卡| 99超级碰免费视频| 乱伦a片视频| 欧美性爱一区二区三区| 久久久婷婷| 亚洲精品男人的天堂| a一区二区三区乱码在线| av2014 日韩在线中文字幕| 口爆欧美91| 色婷久久| 嗯啊抽插大香蕉网页| 丁香九月婷婷| 天堂亚洲精品| 久久夜夜夜| 日本免费一区二| 日韩一级片在线看| 国产精品麻豆免费视频| 亚洲在饯| 天天综合欧美黑人| 动漫av中文| 亚洲AV资源| 九九热精品视频在线观看| 久久精品国产亚洲AV无码做| 草草电影院| 亚洲男人在线观看天堂| 欧美黑人168页欧美黑人167| 久久綜合很很很| 亚洲综合小说另类图欧美视频激情小说色五月天 | 欧美熟妇视频| 麻豆国产免费影片| 日韩性爱毛片操骚逼| 插入逼91| 久久天堂| 综合97| 日夜伊人网| 亚洲 欧美 第一页| 久久久精品,3| 新91视频.cmp| 中文字幕第二页| 青青草原成人| 女人天堂网| 精品久久9| 九九九精品一区二区无码| 久久超碰、| 亚洲乱色视频一区、二区在线| 色噜噜综合在线| 日日爽夜夜爽| 伊人成人中文字幕久久网| 久99久视频| 成人午夜无码视频| 91GD.COM| 久久香蕉网| 伊人五月天| 夜夜一区二区| 91九久| 殴美日韩m| 精品国产AV一区天美传媒| 超碰久超碰久| 欧美黑人熟妇精品91| 免费试看60秒| 操啊国产| 亚洲国产麻豆一区二区三区| 欧美成人黄网色网站| 极品极品色影院| 可以免费观看的av| 四虎永久在线精品免费网址| 久久e6只有精品| 欧美人妻中出| 在线小说视频一区| 国产日韩美女小穴视频网站不卡| 亚洲性高潮| 看日韩黄片| 日韩乱伦AⅤ| 免费精品福利在线观看| 99这里有精品视频| 精品人妻一区二区三区-国产| 麻豆黄四叶草网站| 精人妻无码一区二区三区伊人直播| 玖玖爱伊人玖玖爱| 国产精品视频在线观看| 国产无马在线| 国产亚洲精品第一最新| 色婷婷五月天| 天天看特黄的免费网站| 日韩电影免费网站麻豆视频| 亚洲另类春色| 国产一区二区a毛片| 操人91| 综合 青草 伊久久 影院 综合 | 一区操逼日比视频| 99综合网| 久久熟女久| 欧美色乱| 日韩人妻中文视频| 91在线美女| 老鸭窝日丰县女人| 日韩操啪| 免费观看啪视频| 99re95| 春色91| 亚洲啪啪视频一区二区| 欧美日韩超碰在线| 婷婷九月国产| 国产福利一区二| 99色综合| 操逼无毒无码免费视频| 四虎国产精品永久在线囯在线 | 精人妻一区二区三区| 欧洲欧美视频一区二区| 天天天天操| 国产精品电影推荐| 84YTCOM性无码| 欧亚免费视频| 欧美日韩青操| 午夜亚洲WWW湿好大| 麻豆这里只有精品| 经典丝袜一区| 6080YYY午夜理论片在线观看| 丝袜美腿诱惑亚洲欧美视频在线观看| 久久99深爱久久99精品| 亚洲黄色视频在线观看视频| 先锋精品av色鲁| 丰满少妇精品一区二区| 国产操伦| 99久久综合| 伊人五月天| 大香蕉日韩欧美| 欧美日本中字另类在线| 九九热超碰97亚洲最新香蕉| 亚洲图片欧美色图| 欧美激情综合色综合啪啪五月| 青青草玖玖爱| 欧美精品xxxwww| 在线观看A啊啊啊| 日韩精品在线放| 免費人妻夜夜爽天天爽爽一区| 99999国产精品| 五月天婷婷色| 久操国产在线| 综合熟女| 淫荡网址| 香一区二区三区| 色波多| 中日韩久久人妻一区二区| 国产精品无码成人精品| 午夜天堂精品久久| 欧美伊人久久综合网| 亚熟hd视频在线| 天天操夜夜嗨| 劲爆欧美人妖三区91| 欧亚乱色熟女一区二区| 久草久日| 六月天婷婷| 91美女视频在线观看| 91狠狠综合久久久久久| 男女性无套 免费九一| 色哟哟-国产专区| 五十路六十路七十路熟婆| 中文字幕AV片| 色一色综合网| 变态综合色| GVH-003 母子姦 青木玲-麻豆视频,麻豆视传媒短视频网站入口,麻豆视传媒官网直 | 97超碰亚洲| 欧美日韩香蕉| 男人天堂新在线| 欧美日韩理论一区| 国产精品久久99日日| 亚洲精品久久久久久| 热久久这里只有精品| 日韩中文字墓| 九九热精彩视频| 秋霞视频一区二区 | 99操逼| 欧美片第一页| 久久熟女久| 狠狠综合网| 92性色国产午夜福利在线661 | 免费av大片| 啊啊啊啊啊好多水| 嗯嗯啊啊好疼| 日韩999| 久久久久久99AV无码免费网站| 麻豆精品天美| www.久久久久| 无码区蜜乳| 97欧美资源| 亚州色站 日韩电影| 色乱二区| 日本国产欧美一区三区二区| 99热18这里只有精品| 99这里只有精品| 亚洲自拍天堂| 1区2区3区视频| 操淫穴亚洲五月丁香 | 丝袜足交视频| 国产第二页| 天天综合网国产| 欧美东京热精品A∨| 国产高清成人免费视频| 少妇第一页| 欧美中文字幕男人天堂久久精品| 国产AV激情无码久久无码| 97资源久久| 精品二区三四区五电影 | 国产精品亚洲无码| 欧美亚洲情色| 久久九九久精品国产尤物|国产精品爽黄69天堂A片潘金莲,国产亚洲精品第一综合 | 久久久久久久9最新免费视频观看| 欧美日韩高潮喷水91| 综合操逼| 香伊人在线| 久久激情婷婷| 亚洲乱熟女一区二区| 青青草五月天| 黄色乱论网站| 激情五月天色播| 国产综合操逼高清| 777AV电影| 操逼无码操逼| 七月丁香婷婷| 欧美亚洲首页| 精品国产综合久久福利,热99这里有精品综合久久,99热这里只有免费国产精品,精 | 日本高清加勒比| 色天使大香蕉| 日本一区二区三区欧美日韩中文字幕| 综合久久中文字幕综合日韩精品| 九九干| 亚洲一区二区三区不卡国产欧美| 翔田千里AV无码秘 三区| 国语精品对白| 欧美性高潮在线| 97超碰影音| 综合网亚洲1| 亚洲丝袜制服国产91_国语字幕免费观看完整版下载第5集_ | 丁香五月综合| 综合操逼| 午夜无码精品免费看性色| 青娱乐欧美激情一区二区| 欧美在线永久天堂| 国产精品久久久久无码Av网曝门| 久久九色| 日本操逼视频免费| 国产一国产一级毛片古装| 夜夜嗨视频| 亚洲天堂欧美| 国产资源中文字幕在线| 无码精品久久久久久亚洲| 男人的天堂va| 久久狠狠色噜噜狠狠狠狠97| 风月影院十八禁| 91老熟妇| 操操操五月天婷婷丁香影院| 日韩欧美操逼xxx| A一区片| 欧美午夜视频免费观看| 欧美国产欧美在线观看| 午夜偷拍久久熟女| 强免费黄色网址| 狠狠爱综合网| 97爱免费插| 久久欧洲| 午夜精品人妻二区三区| 一区二区三区男人的天堂| 欧美高清91| 91丨人妻丨国产丨丝袜| 亚洲欧洲日本精品中文a∨| 最新亚洲人成网站在线影院| 国产精品探花视频| 91久久久久久| 亚洲天堂另类小说男人| 伦理弟一页| 久热精品在线| 日本操逼视频免费| 国产 日韩 欧美高清| 深田咏美亚洲精品福利社 | 无码高清操逼| 国产精品久久久久久久毛片1| 思思热免费视频观看| 久久性爱视频| 欧美熟妇操操视频| nuu12国产麻豆精品| 超碰欧美97| 秋霞久久亚洲精品成人| 久99| 大香蕉色网| 久久久久久无码人妻中文字幕| 97在线免费看视频| 亚洲欧美在线观看无码| 国模精品一区二区三区苹果色戒 | 17c嫩草51久久91嫩草| www..com操老师| 天天综合~91入口| #NAME?| 国内伊人久久久久久网站视频| 国产精品视频自拍在线| 97操操| 97碰碰日本乱偷人妻中文的| 91bbbbbb| 日韩国产乱子伦App| 超碰调教97| 人人九九精| 欧美十八禁视频| 狠狠五月天| 精品二999| 激情综合网激情综合| 性爱av在线免费观看| 熟女中出视频| 美女啊啊啊啊啊| 天天做日日做天天欢。| 精品久久久久瑟瑟| 久区视频| 人人操人人叉人人插人人| 尤物av网站| 色区97| 免费观看的黄色的网站| 国产日韩精品一区二区三区| 午夜经典| 亚洲最大AV网| 97操在线| 久久无码一区二区二三区性色| 亚洲五月天激情| 欧美日韩国产色五月综合在线| www.亚洲成人一区| 天天综合AV| 日韩精品人妻一区二区| 日本精品第一视频在'| 天天日天天操VV| 日本在线观看网址| 玖玖人人爱| 性色A∨91| 天天日日夜夜| 青草精品视频一日本久久久久网站| 欧美日韩操逼动图| 久噜噜| 少妇无码av专区线| 精品无码一二三四区| 日本熟女不卡视频| av婷婷色网| 九九无码| 北京专精特新企业招聘信息| 国产精品一区二区三| 亚洲色欲天天人妻无码系列专区| 97久久国产亚洲精品超碰热| 淫荡少妇免费| 亚洲天堂日本| japan日本高清乱xxxx| 超碰伊人在线| 亚洲精品亚洲人成在线麻豆| 好爽免费视频,| blacked精品一区国产| 91无摭挡| 日本在线不卡一二区| www男人天堂| 久久久一区二区三区四曲免费听| 91性网| 热久久精品| 午夜福利一区二区影院| www.高清无码诱惑一区.com | 五月丁香久久| 98久久| 成人网欧美风情| 精品视频免费在线一区| a人片中文字幕一区二区| 操逼逼中文字幕| 伊人9| 91 亚洲 欧洲| 亚洲另类欧美精品| 欧美少妇高潮久久91| 亚洲砖码砖专无区2023| 清纯唯美综合| 江都AV在线| 神马久久久久久伦理片| 国产成人啪一区二区| 99精品久久久久久久婷婷蜜桃| 欧美劲爆第一页| 免费农村成人少妇人妻Aa一区二区视频| 欧美97av| 亚洲有薄码区日本系列中文字幕| 国产精品又黄又猛又粗| 9999九九九久久久| 91久久久久久久久18| 97视频网站| 97爱b| 伊人五月天| 天天草夜夜草高潮片| 精品国产乱码久久久久久免费| 97人妻色| 性做久久久久久久| 9999久久久| 色网综合网| 激激五月| 久操网线| 天天看天天日| 日韩色图 一区二区| 精品超碰中文在线| 国产啊v在线免费播放| 深夜国产福利| 99re在线精品78| 久久天天摸| 尤物国产一区在线观看| 中文字幕蜜乳av| 青青草好吊| 大香蕉99热| 香蕉久久国产AV一区二区| 永久免费av无码网站国产app| 亚洲性刺激| 欧美A√综合网 | 欧美亚洲日韩16色| 少妇超碰在线| 久久av成人无码免费| 无码精品久久久久久亚洲| 欧美激情黑人| 久久亚洲天天做| 防屏蔽在线视频| 黄色一级视| 成人av福利在线观看| 热热色中文无码| 春色综合免费| 久久日本熟妇熟色高清| 亚洲中文字幕妇伦久久| 91站街按摩店老熟女熟女| 精品国产91av一区二区三区| 久草在线| 亚洲 欧美 第一页| 欧美亚洲清纯| 综合激情一一91| 麻豆人妻少妇在线免费观看| 97色伦欧美| 97精品综合| 黄色av一区二区在线| 国产亚洲精品农村妇女| 在线毛片片免费观看| 欧美资源| 少妇无码999| 9精品久久久久| 淫穴高潮色图| 亚洲AV在线资源| 大乔未久88一区| 日韩人妻精品中文字幕| 99热在线不卡| 国产精品亚洲四五区在线观看| 97久精品| 毛片视频白嫩| 久久久久久久九九九九九九| 伊人综合色网| 国产精品青青草| 欧美制服另类丝袜| 日韩欧美亚洲国产日韩| 欧美亚洲丝袜人妻制服99| 五月天激情国产综合婷婷婷| 超碰在线成人| 婷婷五月天激情四射| 五月天综合网| 大香交伊人网| 五月天婷婷欧美三区| 中文字幕啊啊啊在线观看视频| 狠狠五月天| 天美国产三级传媒| 亚洲欧洲美腿丝袜| 亚洲激情 欧美色图| 99色日| 久久久久921| 欧美女同在线| 欧美伊人电影| 成人久久久| 国内毛片热久久思思热| 国产精品人妻无码久久久互動交流| 亚洲色综合|