免费国产精品自在自线-91精品国产色综合久久久浪潮-99热久久免费频精品-国产精品国模在线观看-久久亚洲国产精品成人?V秋霞-久久国产一级A片免费播放-亚洲国产欧洲综合97久久-久久国产白嫩美女呻吟高潮

ARTICLE DETAIL

資訊詳情

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

基于Python與CNN的中草藥識別實戰(zhàn):從數(shù)據(jù)到模型

基于Python與CNN的中草藥識別實戰(zhàn):從數(shù)據(jù)到模型 1. 項目拆解與整體設(shè)計思路1.1 這個題目到底在做什么“基于Python-CNN機器學(xué)習(xí)深度學(xué)習(xí)的常見中草藥識別”這種課程設(shè)計題目最近幾年在各大高校里出現(xiàn)的頻率越來越高。我先用大白話把題目拆開你要做的不是“背誦一堆草藥名字”而是讓計算機通過圖片自動判斷“這是哪種中藥材”。現(xiàn)代人習(xí)慣拿手機拍照想識別路邊的車前草、廚房里的枸杞或者藥店抓回來的干黃連——而CNN這一類深度學(xué)習(xí)模型恰好是這項工作最好的工具。從課程設(shè)計和畢業(yè)設(shè)計的考核角度看這個項目有幾個硬指標自己構(gòu)建或調(diào)優(yōu)一個CNN模型不是簡單調(diào)用現(xiàn)成接口而是能理解每一層的設(shè)計意圖。有一套合理的數(shù)據(jù)處理流程包括數(shù)據(jù)集的整理、圖像增強、歸一化等預(yù)處理。訓(xùn)練可得且效果可量化也就是說最終要給出準確率、損失曲線、混淆矩陣這類能說服答辯老師的圖表。有實際驗證新拍的圖片能跑通識別流程而不是只停留在訓(xùn)練集上自嗨。這個題目適合哪個階段的人做我見過三類人做它第一類是本科課程設(shè)計周期2到4周需要基礎(chǔ)功能完整、流程顯眼即可第二類是本科畢業(yè)設(shè)計周期3到5個月要加對比實驗、可視化分析甚至要整理成小論文第三類是研究生入門項目重點在于把遷移學(xué)習(xí)、細粒度分類這些思路玩起來。不同目標決定了你的技術(shù)選型深度文章后面會分階段說明。1.2 為什么用CNN而不是傳統(tǒng)機器學(xué)習(xí)方案放到5年前很多圖像識別項目用的是“手工提取特征傳統(tǒng)分類器”的路子。比如先把圖像的HOG特征、色彩直方圖、紋理特征提出來再用SVM或隨機森林做分類。這條路對中草藥識別的問題是中草藥識別恰恰是典型的“細節(jié)決定成敗”任務(wù)。兩種植物可能顏色相近、形狀相似用手工特征很難界定到底抓哪個特征才是真正的區(qū)分點。CNN的做法是“端到端”的——你給它看大量標注好的圖片它不需要你告訴它該看什么部位它會自己在訓(xùn)練過程中學(xué)會選取對分類最有用的特征。第一層網(wǎng)絡(luò)可能學(xué)的是邊緣和色彩塊第二層可能學(xué)出葉片的紋理模式更深層則能學(xué)到“這個部位的形狀結(jié)合那個部位的顏色特征指向黃連”。這種自動學(xué)習(xí)特征的能力正是處理自然場景下植物照片的關(guān)鍵。以我的實操體驗來說傳統(tǒng)方案在只有20多種藥材、每類只有幾十張圖的時候SVM勉強能跑到70%左右精度而同樣條件下哪怕是一個基礎(chǔ)CNN訓(xùn)練充分后也能輕松超過85%。如果數(shù)據(jù)量更大、種類更多傳統(tǒng)方案下滑得非??霤NN受到的影響卻很有限。所以這個題目選CNN不是炫技是這個任務(wù)天然適配。1.3 技術(shù)棧選型Python生態(tài)怎么搭標題里點名了Python這本身沒什么好糾結(jié)的——Python在深度學(xué)習(xí)領(lǐng)域幾乎是唯一的選擇。但具體選哪些庫我覺得要根據(jù)你的硬環(huán)境和調(diào)試習(xí)慣來深度學(xué)習(xí)框架KerasTensorFlow 2.x的接口或PyTorch。課程設(shè)計優(yōu)先推薦Keras因為接口封裝度高幾行就能起一個像樣的CNN畢業(yè)設(shè)計優(yōu)先推薦PyTorch因為做debug、自定義網(wǎng)絡(luò)結(jié)構(gòu)、看中間特征可視化都更靈活。如果你有論文需求那PyTorch是更好的選擇。圖像處理OpenCV和Pillow。數(shù)據(jù)增強環(huán)節(jié)兩者都要用OpenCV的插值速度快、Pillow的API更友好。數(shù)據(jù)科學(xué)工具NumPy、Pandas、Matplotlib、Seaborn。前兩個用來處理標簽和數(shù)據(jù)劃分后兩個用于繪制loss曲線和混淆矩陣。開發(fā)環(huán)境首選Jupyter Notebook或JupyterLab逐段運行看結(jié)果方便正式訓(xùn)練腳本建議存成.py文件提交到服務(wù)器上跑。一個容易忽略的點是模型訓(xùn)練的過程中會產(chǎn)生大量中間結(jié)果比如訓(xùn)練日志、模型權(quán)重文件、可視化圖像等建議從一開始就建立清晰的目錄結(jié)構(gòu)把代碼、數(shù)據(jù)、模型、結(jié)果分開存放。我自己深受“數(shù)據(jù)、代碼、結(jié)果混在一起最后答辯前找不到模型文件”的苦這個習(xí)慣非常重要。圍繞技術(shù)選型還有一個經(jīng)典問題為什么不直接用預(yù)訓(xùn)練模型跑遷移學(xué)習(xí)我覺得對課程設(shè)計來說“從零搭建一個CNN”這個動作本身往往是評分點。如果一上來就用ResNet的預(yù)訓(xùn)練權(quán)重模型的“理解深度”就不好展示。但畢設(shè)階段完全可以把兩者都做自己搭建的基礎(chǔ)CNN作為基線再用遷移學(xué)習(xí)構(gòu)建一個更強的模型作為對比這就是一個體面的實驗設(shè)計了。2. 核心模塊原理與方案選擇2.1 CNN識別中草藥卷積層在學(xué)什么很多同學(xué)聽到CNN就怕覺得里面的數(shù)學(xué)公式嚇人。其實理解CNN只需要抓住一個邏輯它為什么能識別植物因為它在分層提取圖像特征。先看卷積層??梢园丫矸e操作理解成拿著一個“小放大鏡”在圖像上滑動每次只看局部區(qū)域。這個放大鏡就是卷積核它提取的是“某個局部區(qū)域內(nèi)某種模式存在的強度”。比如一個卷積核專門用來檢測“橫著的一條深色線”另一個卷積核檢測“綠色塊之間的白色間隙”。中草藥圖片里這些模式非常關(guān)鍵——葉片邊緣的鋸齒形狀、葉脈的走向、花蕊的顏色分布本質(zhì)上都是這種局部模式在不同尺度的組合。卷積層的參數(shù)并不是人手工設(shè)置的而是通過訓(xùn)練自動調(diào)整的。起初是隨機數(shù)模型看到大量“這是薄荷葉”和“這不是薄荷葉”的圖片后自動調(diào)整那些能讓分類正確率提高的卷積核值。這就是“機器學(xué)習(xí)”中最本質(zhì)的部分特征是學(xué)出來的不是人設(shè)計出來的。然后是池化層。它干的事情是“壓縮信息”。比如一張200×200的圖片經(jīng)過一次卷積和一次2×2的池化尺寸會變成100×100。池化的意義有兩個一是降低計算量二是不怕小位移——葉子稍微歪一點、換個角度拍池化之后提取到的關(guān)鍵模式還在。這一點對中草藥識別特別重要咱們平時拍照不可能像證件照一樣規(guī)規(guī)矩矩傾斜、遮擋、光線變化是常態(tài)。到了網(wǎng)絡(luò)后面幾層模型會把前面學(xué)到的局部特征拼接成“這張圖整體上是什么風(fēng)格”的判斷最終經(jīng)過全連接層把特征映射到具體的分類概率上。輸出層通常是Softmax它會把10個或20個類別的得分變成一組和為1的概率值“概率最大的那個類別”就是識別結(jié)果。這套流程和人類看植物時“先看葉形再看葉脈再看花和整體氣質(zhì)”是一個邏輯聽著是不是一點都不玄了。2.2 數(shù)據(jù)的坑與數(shù)據(jù)集的構(gòu)建策略中草藥識別項目最大的坑不在模型在數(shù)據(jù)。這是我反復(fù)和做這個題目的同學(xué)強調(diào)的。規(guī)模問題CNN雖然強大但它是個“飯量很大”的模型。如果只給每個類別準備30張圖同濟的模型再牛也會陷入過擬合——訓(xùn)練集上識別近乎100%拿到新拍的照片上就“翻車”。根據(jù)我的經(jīng)驗做這個題目每個類別至少準備100張以上圖片如果每類能達到300張訓(xùn)練效果會比較從容。數(shù)據(jù)不夠怎么辦有兩個辦法一是“數(shù)據(jù)增強”也就是用旋轉(zhuǎn)、翻轉(zhuǎn)、裁剪、亮度調(diào)整等方法把一張圖片變出多張來二是“遷移學(xué)習(xí)”用別人在大規(guī)模數(shù)據(jù)集上訓(xùn)練好的模型權(quán)重做初始化這樣只需少量數(shù)據(jù)也能有不錯的準確率。類別選擇常見中草藥可以選10到20類。不需要選太生僻的品種因為越生僻的數(shù)據(jù)越難找而且答辯時老師也不一定認識效果反而不好。黃金選擇是那些特征明顯、你所在城市路邊或藥房能見到的品種薄荷、魚腥草、金銀花、薏苡仁、枸杞、陳皮、當歸、黃連、板藍根、益母草……這些類別外觀區(qū)分度相對好適合入門。在類別設(shè)計上我強烈建議包含“易混淆組”。比如把“薄荷”和“荊芥”都選進去或把“干姜”和“黃姜”放在一起。為什么因為這個項目能體現(xiàn)深度學(xué)習(xí)的價值就在于“不是簡單背答案而是真的在學(xué)區(qū)分特征”。如果選的10類藥材長得差異極大模型可能隨便學(xué)個顏色就能分類答辯時老師追問“為什么區(qū)分這兩種”你完全沒法解釋深層的特征學(xué)習(xí)。設(shè)一組易混淆類別后面做混淆矩陣、分析錯誤樣本都有了素材。數(shù)據(jù)獲取最直接的是用搜索引擎下載圖片但要注意版權(quán)問題建議只用于課程學(xué)習(xí)。更穩(wěn)妥的方案是去一些公開的植物圖像數(shù)據(jù)集或者自己用手機拍攝條件允許的話保持同一藥材的多角度、多背景、不同光照。數(shù)據(jù)集質(zhì)量判斷的標準很簡單真實場景、光線變化、有背景雜亂的照片比干凈的影棚圖更“管用”因為訓(xùn)練出來的模型在實際場景中更耐用。下載之后必須人工清理一遍把錯誤類別的圖、文字圖、重復(fù)圖全部刪掉這一步?jīng)]什么技巧就是要耐心。2.3 遷移學(xué)習(xí)為什么是中草藥識別的最優(yōu)選如果讓我對做畢設(shè)的同學(xué)說一個建議那就是別只盯著自己搭的CNN把遷移學(xué)習(xí)加進來。比如用ImageNet上訓(xùn)練過的ResNet50作為特征提取器去掉它原來的分類層換成你自己的中草藥分類頭然后整個網(wǎng)絡(luò)在你的數(shù)據(jù)上繼續(xù)訓(xùn)練。這個方案有幾個實打?qū)嵉暮锰幨諗克俣葮O快——你用基礎(chǔ)CNN可能要訓(xùn)練50個epoch才到85%準確率遷移學(xué)習(xí)10個epoch可能就93%了對數(shù)據(jù)量的要求也低很多每類只需要幾十張圖就能跑出可用的模型而且更魯棒對光照變化、模糊、遮擋的耐受性明顯更好。順帶補充一句其實真正厲害的圖像分類系統(tǒng)幾乎很少從零開始訓(xùn)練大模型因為數(shù)據(jù)量和時間成本太高。用別人在數(shù)十萬張圖上練好的通用特征再在專業(yè)領(lǐng)域數(shù)據(jù)上做微調(diào)也就是所謂“微調(diào)”Fine-tuning本身就是工程實踐里的標準做法。在答辯時如果老師問“為什么選ResNet50”你可以回應(yīng)“因為它引入了殘差連接解決了深層網(wǎng)絡(luò)梯度消失的問題特征復(fù)用效率高”如果問“為什么用了預(yù)訓(xùn)練權(quán)重”你可以回應(yīng)“因為領(lǐng)域數(shù)據(jù)集樣本量有限復(fù)用通用圖像特征能降低過擬合風(fēng)險、加快收斂”。這些邏輯自洽的表述會讓答辯的深度拉高一個檔次。關(guān)于遷移學(xué)習(xí)和基礎(chǔ)CNN的關(guān)系我不建議把二者對立起來。課程設(shè)計可以以基礎(chǔ)CNN為主遷移學(xué)習(xí)作為加分項畢設(shè)則可以作為對比實驗出現(xiàn)——基礎(chǔ)CNN是一種實現(xiàn)遷移學(xué)習(xí)是另一種實現(xiàn)兩者各成一條對比路線實驗章節(jié)自然豐富了很多。3. 從零到一的搭建與訓(xùn)練實操3.1 項目環(huán)境準備與依賴安裝無論你是課程設(shè)計還是畢業(yè)設(shè)計我建議先用本機做小規(guī)模試驗跑通了再考慮上服務(wù)器。環(huán)境準備方面我自己最常用的一套組合是conda create -n cnn_herb python3.9 conda activate cnn_herb pip install tensorflow-cpu2.12.* # 若顯卡可用則去掉 -cpu 后綴 pip install torch torchvision # 選裝做遷移學(xué)習(xí)時使用 pip install opencv-python pillow numpy pandas matplotlib seaborn scikit-learn安裝的時候有兩點經(jīng)驗第一TensorFlow和PyTorch不必都裝CPU版本如果你的電腦有NVIDIA顯卡務(wù)必裝對應(yīng)CUDA的GPU版本訓(xùn)練速度能快一個數(shù)量級第二如果pip安裝太慢直接換鏡像源pip install xxx -i https://pypi.tuna.tsinghua.edu.cn/simple這不算什么“高深技巧”但真的能讓你少等很久。環(huán)境裝好后建議先測試一下框架能不能正常調(diào)用GPUimport tensorflow as tf print(GPU available:, tf.config.list_physical_devices(GPU))如果輸出是空列表說明你的TensorFlow沒識別到顯卡接下來訓(xùn)練會很痛苦。這時候回到第一步檢查CUDA版本和tensorflow版本是否匹配。這個問題太常見了下面專門有一個小節(jié)講這里先按“能識別到GPU”繼續(xù)。3.2 數(shù)據(jù)整理與數(shù)據(jù)集劃分從亂圖到干凈數(shù)據(jù)集以最簡單的目錄結(jié)構(gòu)為例我建議把圖片按“類目-編號”命名并放在按類別命名的文件夾里dataset/ mint/ # 薄荷 mint_001.jpg mint_002.jpg ... honeysuckle/ # 金銀花 honeysuckle_001.jpg ... ...然后寫一個腳本把數(shù)據(jù)讀進來劃分成訓(xùn)練集和驗證集。劃分比例上常用的有8:2、7:3等。我自己偏好80%訓(xùn)練、10%驗證、10%測試不過課程設(shè)計沒有絕對標準關(guān)鍵是驗證集和測試集千萬不要在訓(xùn)練時被模型“看到”否則準確率虛高。這是所有初學(xué)者的第一個認知壁壘。import os, random, shutil random.seed(42) src ./dataset train_dir ./dataset_split/train val_dir ./dataset_split/val test_dir ./dataset_split/test os.makedirs(train_dir, exist_okTrue) os.makedirs(val_dir, exist_okTrue) os.makedirs(test_dir, exist_okTrue) for cls in os.listdir(src): class_path os.path.join(src, cls) if not os.path.isdir(class_path): continue imgs os.listdir(class_path) random.shuffle(imgs) n_train int(len(imgs) * 0.8) n_val int(len(imgs) * 0.1) for i, img in enumerate(imgs): dst if i n_train: dst os.path.join(train_dir, cls, img) elif i n_train n_val: dst os.path.join(val_dir, cls, img) else: dst os.path.join(test_dir, cls, img) os.makedirs(os.path.dirname(dst), exist_okTrue) shutil.copy(os.path.join(class_path, img), dst)這段腳本做的事情很簡單按比例把每一類的圖片復(fù)制到三個新目錄。為什么不用移動復(fù)制更安全萬一劃分比例不對原圖還在。為什么固定了隨機種子為了保證運行結(jié)果可復(fù)現(xiàn)答辯時老師問“你那次實驗的結(jié)果能復(fù)現(xiàn)嗎”你只需要說一句“我們的隨機種子在實驗設(shè)置里固定了”就很專業(yè)。接下來是標簽編碼。如果用TensorFlow的ImageDataGenerator的flow_from_directory它會自動按文件夾名稱生成標簽順序。如果改用自定義數(shù)據(jù)加載一般用整數(shù)標簽從0開始遞增。標簽順序一定要記住后面預(yù)測新圖片時要靠它把索引轉(zhuǎn)回中文名。class_labels [mint, honeysuckle, bajiao, ...] label_to_idx {name: i for i, name in enumerate(class_labels)} idx_to_label {i: name for name, i in label_to_idx.items()}3.3 圖像預(yù)處理與數(shù)據(jù)增強中草藥圖片的預(yù)處理分三步縮放 → 歸一化 → 增強??s放CNN要求輸入尺寸固定。我推薦224×224因為這是很多預(yù)訓(xùn)練模型的標配尺寸兼容性好。如果你的基礎(chǔ)CNN不夠深也可以使用128×128減少計算量但圖像的細節(jié)信息會丟失一些。歸一化把像素值從0~255映射到0~1或-1~1幫助梯度穩(wěn)定、加快收斂。這一步在Keras里面寫一行from tensorflow.keras.preprocessing.image import ImageDataGenerator train_datagen ImageDataGenerator( rescale1./255, rotation_range30, # 隨機旋轉(zhuǎn)30度 width_shift_range0.2, # 水平平移20% height_shift_range0.2, # 垂直平移20% shear_range0.2, # 剪切變換 zoom_range0.2, # 隨機縮放 horizontal_flipTrue, # 水平翻轉(zhuǎn) fill_modenearest # 填充模式 ) test_datagen ImageDataGenerator(rescale1./255)數(shù)據(jù)增強說白了就是“把訓(xùn)練照片增加‘變數(shù)’”。想想你真實使用軟件的場景有人把葉子拍歪了、光線太暗了、離得太近了模型如果只見過“標準圖”這些情況就會誤判。增強處理使模型學(xué)會對形變、亮度和位置的變化保持魯棒。需要注意驗證集和測試集絕對不能做增強只能做縮放和歸一化。因為增強是人為地制造不同樣本來擴大模型認識的邊界而驗證集和測試集要反映“真實分布”必須保持原始狀態(tài)測試集上增強沒有任何意義。3.4 搭建基礎(chǔ)CNN模型下面是課程設(shè)計級的基礎(chǔ)CNN代碼4個卷積塊加2層全連接。這個結(jié)構(gòu)對于中草藥分類來說是“足夠用”的起始點from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense, Dropout model Sequential([ Conv2D(32, (3, 3), activationrelu, input_shape(224, 224, 3)), MaxPooling2D(2, 2), Conv2D(64, (3, 3), activationrelu), MaxPooling2D(2, 2), Conv2D(128, (3, 3), activationrelu), MaxPooling2D(2, 2), Conv2D(128, (3, 3), activationrelu), MaxPooling2D(2, 2), Flatten(), Dropout(0.5), Dense(512, activationrelu), Dropout(0.3), Dense(len(class_labels), activationsoftmax) ]) model.summary()簡單解釋一下每層的選擇邏輯。第一層用了32個卷積核后面逐漸翻倍到64、128、128這是一個常見的“淺層少、深層多”設(shè)計淺層學(xué)的是細節(jié)特征多一些通道可以組合出更豐富的模式深層學(xué)的是高維語義卷積核數(shù)量不必太多以免過擬合。每個卷積塊后面跟一個MaxPooling下采樣逐步把224×224壓到14×14最后Flatten喂給全連接層。Dropout在0.5和0.3是全連接層防過擬合最重要的手段。中間用ReLU激活輸出層是Softmax多分類。3.5 訓(xùn)練參數(shù)的選擇邏輯學(xué)習(xí)率和批大小訓(xùn)練時最關(guān)鍵的幾個配置是批次大小、學(xué)習(xí)率、優(yōu)化器、Epoch數(shù)、早停策略。model.compile( optimizeradam, losssparse_categorical_crossentropy, metrics[accuracy] ) history model.fit( train_generator, steps_per_epochtrain_generator.n // batch_size, epochs50, validation_dataval_generator, validation_stepsval_generator.n // batch_size, callbacks[early_stop, model_checkpoint] )批次大小我實測下來16到32是比較適合中草藥分類的。批次過小比如4會導(dǎo)致梯度震蕩太劇烈訓(xùn)練不穩(wěn)批次過大會讓每輪迭代時間變長而且顯存可能爆。如果你用的是GPU32是首選的起步值。學(xué)習(xí)率Adam的默認學(xué)習(xí)率是0.001在多數(shù)情況下可以直接用。但如果發(fā)現(xiàn)loss在訓(xùn)練過程中反復(fù)震蕩、下不去可以先降到0.0005或0.0003重新跑一次。如果loss下降太慢可以適當提到0.002但不建議更大很容易發(fā)散。Epoch數(shù)和早停訓(xùn)練50個epoch不一定全部跑完。設(shè)置早停監(jiān)控驗證集loss如果連續(xù)10個epoch不再下降就自動停止同時恢復(fù)最好的權(quán)重from tensorflow.keras.callbacks import EarlyStopping, ModelCheckpoint early_stop EarlyStopping(monitorval_loss, patience10, restore_best_weightsTrue) checkpoint ModelCheckpoint(herb_model.h5, monitorval_loss, save_best_onlyTrue)為什么要做早停我在這個項目里見過很多次訓(xùn)練集準確率一路升到99%以上驗證集卻停在85%不再動甚至開始下降。這說明模型開始“背題”而不是“學(xué)特征”了。早停就是為了對抗這種“過擬合”風(fēng)險讓模型停在泛化能力最好的那個點而不是訓(xùn)練最后的那個狀態(tài)。3.6 模型評估不只是看準確率訓(xùn)練結(jié)束后評估部分必須做三件事驗證集準確率、loss曲線、混淆矩陣。這門課的評分老師通常最看重這三個圖。loss曲線畫法是import matplotlib.pyplot as plt plt.plot(history.history[loss], labeltrain_loss) plt.plot(history.history[val_loss], labelval_loss) plt.title(Training and Validation Loss) plt.xlabel(Epoch) plt.ylabel(Loss) plt.legend() plt.show()如果訓(xùn)練loss和驗證loss之間差值很大就是過擬合的直接證據(jù)如果兩者都在高位下不去說明模型容量不夠或者學(xué)習(xí)率不合適如果曲線震蕩說明批次數(shù)據(jù)分布不夠均勻可以考慮增大批次?;煜仃囉胹klearn.metrics.confusion_matrix畫出來能直觀看到哪些類別互相混淆。比如“白芷”總是被誤判為“當歸”那你就有兩個入手方向一是增加這兩個類別的訓(xùn)練樣本二是檢查數(shù)據(jù)集本身——是不是當時下載或標注的時候這兩類的圖就已經(jīng)混亂了。這一步也是答辯時最能展現(xiàn)你分析能力的內(nèi)容。import numpy as np from sklearn.metrics import confusion_matrix, classification_report pred_probs model.predict(val_generator) pred_labels np.argmax(pred_probs, axis1) true_labels val_generator.classes[:len(pred_labels)] print(classification_report(true_labels, pred_labels, target_namesclass_labels))3.7 對新圖片做預(yù)測完整識別流程模型訓(xùn)練好以后識別一張真實照片的流程也要寫清楚from tensorflow.keras.preprocessing import image def predict_image(img_path): img image.load_img(img_path, target_size(224, 224)) img_array image.img_to_array(img) img_array np.expand_dims(img_array, axis0) img_array img_array / 255.0 probs model.predict(img_array)[0] idx np.argmax(probs) confidence probs[idx] return idx_to_label[idx], confidence這里面有個容易忽略的細節(jié)預(yù)測時的預(yù)處理必須和訓(xùn)練時保持完全一致。訓(xùn)練時如果做了rescale1./255預(yù)測時也要除以255否則輸入分布不一致模型表現(xiàn)會大打折扣。此外load_img默認會做雙線性插值縮放尺寸變了但內(nèi)容語義不變這是正常操作。我的經(jīng)驗是把這部分單獨封裝成一個腳本比如predict.py接收圖片路徑參數(shù)輸出識別結(jié)果和置信度。答辯現(xiàn)場用手機拍一張新鮮的照片程序能跑出正確結(jié)果的話現(xiàn)場效果是非常有說服力的。3.8 遷移學(xué)習(xí)模型的實戰(zhàn)補充上面已經(jīng)提過ResNet50遷移學(xué)習(xí)的大致思路。代碼層面是用torchvision或Keras自帶的應(yīng)用模塊加載預(yù)訓(xùn)練模型替換分類層然后凍結(jié)前面的骨干網(wǎng)絡(luò)只訓(xùn)練新的分類頭或者解凍部分層做微調(diào)。用Keras寫的話最明顯的對比實驗代碼是from tensorflow.keras.applications import ResNet50 from tensorflow.keras.models import Model from tensorflow.keras.layers import GlobalAveragePooling2D, Dense base_model ResNet50(weightsimagenet, include_topFalse, input_shape(224, 224, 3)) base_model.trainable False # 先凍結(jié)骨干 x GlobalAveragePooling2D()(base_model.output) x Dense(256, activationrelu)(x) output Dense(len(class_labels), activationsoftmax)(x) model Model(inputsbase_model.input, outputsoutput)先只訓(xùn)練分類頭若干個epoch后可以把base_model.trainable True用極小的學(xué)習(xí)率比如0.0001整體微調(diào)幾輪效果往往還能再上一個臺階。遷移學(xué)習(xí)有一個相當重要的問題網(wǎng)絡(luò)結(jié)構(gòu)變了輸入尺寸和歸一化方式也要跟著變。用ResNet50輸入圖片需要按ImageNet數(shù)據(jù)集的均值方差來歸一化而不是簡單除以255。偷懶就會造成特征分布不匹配導(dǎo)致準確率不如基礎(chǔ)CNN的詭異情況。細節(jié)上務(wù)必查一下你所用預(yù)訓(xùn)練模型的標準預(yù)處理方式。4. 常見問題與排查技巧實錄4.1 過擬合訓(xùn)練集99%驗證集85%我見過最多的現(xiàn)象就是這一個。模型把訓(xùn)練數(shù)據(jù)“背得滾瓜爛熟”但遇到新圖片就露怯。解決方向的優(yōu)先級如下增加數(shù)據(jù)增強強度。把旋轉(zhuǎn)范圍從20度提高到40度加入brightness_range[0.8,1.2]這類亮度擾動效果往往立竿見影。增加Dropout比例。全連接層的Dropout從0.5提到0.6或0.7或者在全連接前再加一層Dropout。縮小模型容量。把卷積核數(shù)量從128降到64或32全連接層的512降到256。這也算個入門級思路很多人以為加參數(shù)就能提升精度其實小模型在數(shù)據(jù)量不夠時反而訓(xùn)得更好。數(shù)據(jù)擴量?;氐綌?shù)據(jù)集增加樣本量或?qū)γ款愂占鄻踊膱D片。另外要說的是過擬合的原因首先是數(shù)據(jù)量不足。模型參數(shù)量動輒幾百萬訓(xùn)練數(shù)據(jù)才幾百張在參數(shù)空間里顯得捉襟見肘。在某些情況下數(shù)據(jù)增強并不能創(chuàng)造真正的新信息——旋轉(zhuǎn)、翻轉(zhuǎn)只是改變了位置和角度如果數(shù)據(jù)本身有問題可能還是會出錯。所以增加新圖片是治本增強是治標。4.2 數(shù)據(jù)量不足時的救命招遷移學(xué)習(xí)更不挑數(shù)據(jù)如果你時間緊、只有每類50張圖還是有希望拿到90%以上的效果。主線就是把上面的3.8遷移學(xué)習(xí)方案走通。我在做模擬項目X的時候遇到過一個非常極端的設(shè)定數(shù)據(jù)集只有每類60張基礎(chǔ)CNN的準確率只有78%換了ResNet50微調(diào)后漲到91%。差距就是這么明顯。原因是預(yù)訓(xùn)練模型的骨干網(wǎng)絡(luò)已經(jīng)在數(shù)百萬張圖上見過各種各樣的紋理、邊緣、形狀你只需要教它“這些特征像哪一類中草藥”而不是從零教它“什么是葉脈”。對于做畢業(yè)設(shè)計的同學(xué)我建議把這個對比做進實驗章節(jié)基礎(chǔ)CNN vs ResNet50微調(diào) vs VGG16微調(diào)三組在同一數(shù)據(jù)集、同一評價指標下的準確率表格這一頁的內(nèi)容比寫一千字的理論要更有說服力。要注意的是微調(diào)對比實驗一定要控制變量同樣的數(shù)據(jù)劃分、同樣的預(yù)處理、同樣的隨機種子。否則“遷移學(xué)習(xí)效果好”這個結(jié)論就很微弱。4.3 類別不平衡有的藥材圖多有的圖少網(wǎng)上扒圖的典型后果是薄荷圖好找扒下來300多張某種不那么大眾的藥材可能只有40張。此時如果不做任何處理模型會悄悄偏向樣本量大的類別甚至認為“不管見什么圖都猜薄荷”。處理類別不平衡有三個方法按易到難排圖像增強補齊對少數(shù)類做更強的旋轉(zhuǎn)、平移、光照擾動甚至做隨機裁剪后放回把它“湊”到接近多數(shù)類的數(shù)量。類別加權(quán)在訓(xùn)練時給少數(shù)類的loss乘以更大的系數(shù)。Keras里可以通過class_weight參數(shù)顯式指定from sklearn.utils.class_weight import compute_class_weight class_weights compute_class_weight(balanced, classesnp.unique(y_train), yy_train) class_weight_dict {i: class_weights[i] for i in range(len(class_weights))}收集更多數(shù)據(jù)這是最笨但最有效的方法。對少數(shù)類再采集一批圖片加入訓(xùn)練集。課程設(shè)計階段我用過最多的還是第一種。復(fù)制粘貼式增強雖然指標上略有虛高但在小數(shù)據(jù)量項目中是公認的近似手段答辯時如實說明就可以了。4.4 新照片識別不準預(yù)處理不一致首當其沖自己訓(xùn)練完拿去測試發(fā)現(xiàn)真實環(huán)境下一塌糊涂最常見的坑是“環(huán)境變了”。訓(xùn)練用的圖片可能是搜索引擎里干凈整齊的樣本測試時你用手機在室內(nèi)自然光下拍光線、角度、背景都不一樣這屬于典型的“領(lǐng)域差異”。我總結(jié)的排查清單是輸入尺寸和歸一化方式是否與訓(xùn)練時一致。圖片壓縮是否過于嚴重是否肉眼都看不清。攝像頭拍攝的EXIF旋轉(zhuǎn)信息是否有處理OpenCV的imread有時候讀出來是橫的而訓(xùn)練時都是正的。模型是否對背景敏感——葉子放大局部拍可能比整株植物拍更好識別這也解釋了為什么很多識別App都建議“拍局部、拍特寫”。4.5 訓(xùn)練速度太慢如果你只是在本機訓(xùn)練每一輪Epoch都可能要幾分鐘訓(xùn)練50個epoch會相當痛苦。我的建議有三個先小后大先用64×64輸入尺寸、少量數(shù)據(jù)跑通整個流程確認代碼和參數(shù)沒問題后再切回224×224正式訓(xùn)練。用GPU如果你的顯卡是普通入門級也夠用訓(xùn)練速度能提升幾十倍。減少不必要的Epoch多數(shù)任務(wù)在驗證集達到峰值后繼續(xù)訓(xùn)練毫無意義依靠早停能省掉一半以上的時間。4.6 模型文件保存與加載訓(xùn)練好后記得保存完整模型或權(quán)重三種方式我都用過model.save(herb_model.h5) # 保存整個模型結(jié)構(gòu)權(quán)重 model.save_weights(herb_weights.h5) # 僅保存權(quán)重 # 推薦保存完整模型預(yù)測時不需要重新構(gòu)建結(jié)構(gòu)如果是遷移學(xué)習(xí)模型最好連帶預(yù)處理方式一起記錄在一個config.json里。我見過不止一個同學(xué)來答辯時拿著一個只有文件名的.h5卻完全想不起來當初歸一化用的尺度。規(guī)范的筆記是保障項目可復(fù)現(xiàn)的基本素養(yǎng)。5. 答辯展示與項目深化思路5.1 答辯PPT怎么講清楚這個故事很多同學(xué)項目做得不錯答辯卻講成流水賬先裝環(huán)境再寫代碼最后有準確率。這不是講故事的方式。中草藥識別項目答辯建議按“為什么→怎么做→做成什么樣→還能怎么提升”的邏輯來講簡單來說就是用“問題驅(qū)動”代替“過程驅(qū)動”。引言部分講清楚中草藥識別對日常生活的意義普通人認不全、資深藥師也有記憶盲區(qū)、移動端拍照識別是剛需。方案部分講清楚為什么選擇CNN為什么不用傳統(tǒng)圖像識別。實現(xiàn)部分講網(wǎng)絡(luò)結(jié)構(gòu)和數(shù)據(jù)準備重點突出“你在每個環(huán)節(jié)做了什么決策、為什么”。結(jié)果部分展示準確率和混淆矩陣別怕展示錯誤——反而是分析錯誤類別的過程最能體現(xiàn)項目的深度和思考。有一個特別實用的技巧答辯之前準備一張“失敗案例圖”。挑一張識別錯的圖片分析模型為何錯并說明可以做哪些改進。老師在答辯時最喜歡問的就是“你這個項目有什么不足”這個問題答得好是很大的加分項。5.2 可擴展方向從固定分類到開放識別識別固定40類藥材只是課程設(shè)計的及格線。如果你有興趣做得更深入我列出幾個可擴展方向從分類到檢測目標檢測模型如Faster R-CNN、YOLO可以從復(fù)雜圖片中把藥材區(qū)域框出來再分類適配的實際場景更貼近“田間拍攝、自然場景找藥材”。從單圖到多圖融合不同藥材可能在根、莖、葉、花上差異明顯可以把多個部位圖輸入一個多路網(wǎng)絡(luò)做綜合判斷。從圖片到文本識別結(jié)果結(jié)合藥材知識庫輸出“性味歸經(jīng)、功效、用法、禁忌”直接做成一個問答式的中藥知識助手。那時候項目的實用性和交互性會大大提升。部署到移動端用TensorFlow Lite的轉(zhuǎn)換把模型部署到手機端或嵌入式端。課程設(shè)計到這一步已經(jīng)屬于“向工程實踐靠攏”的加分項。半監(jiān)督學(xué)習(xí)網(wǎng)上大量弱標注數(shù)據(jù)未充分利用可用偽標簽或?qū)Ρ葘W(xué)習(xí)的方法挖掘未標注數(shù)據(jù)的價值。對本科階段而言能完成其中任意一個擴展方向并跑通演示就已經(jīng)超過絕大多數(shù)“為了交差”的同類項目了。5.3 關(guān)于評分標準的一點個人判斷不同學(xué)校、不同老師的評分偏好差異極大但有幾個共性要素幾乎是公認的流程完整度數(shù)據(jù)處理→訓(xùn)練→評估→預(yù)測的閉環(huán)、規(guī)范程度代碼注釋、目錄結(jié)構(gòu)、實驗記錄、可視化曲線圖、混淆矩陣、真實圖片演示、分析深度基于結(jié)果能提出改進方向。這四個要素抓好了分數(shù)都不會差。不過我也想潑一盆冷水課程設(shè)計階段不要追求遙遙領(lǐng)先的技術(shù)指標。你的目標是“證明自己掌握了基礎(chǔ)原理和工程流程”而不是“訓(xùn)練出比論文SOTA更好的模型”。項目周期有限的情況下把基礎(chǔ)CNN調(diào)優(yōu)到85%以上配合遷移學(xué)習(xí)對比已經(jīng)是很扎實的工作量了。與其花大量時間無節(jié)制地調(diào)參堆疊不如把精力放在把項目里已有的成果講透、把特征可視化的圖做漂亮。6. 寫在最后的實操經(jīng)驗做這個題目最容易讓初學(xué)者誤判的是“時間都花在模型上”。但以我的實際經(jīng)歷來看這類圖像識別項目最大的時間黑洞永遠是數(shù)據(jù)整理——下載、清洗、重命名、統(tǒng)一格式、調(diào)整增強參數(shù)。曾經(jīng)有一次我在圖書館連著蹲了一個周末凈收益只是把某個類別的“廢圖”從兩百張里刪到一百三十張但這直接拉升了模型近4個百分點的驗證集準確率。所以你如果問我要一條核心建議那就是數(shù)據(jù)質(zhì)量決定模型上限調(diào)參只決定模型能否接近這個上限?;ㄔ跀?shù)據(jù)上的功夫永遠不吃虧。另外項目過程記錄很關(guān)鍵。我給所有做課程設(shè)計的同學(xué)一個通用建議從拿到題目的第一天起建立兩個文檔一個叫《實驗日志》另一個叫《問題清單》。每天記錄做了什么操作、得到什么結(jié)果每遇到一個報錯或異常就把現(xiàn)象、排查步驟、最終解法記下來。答辯時老師問“你遇到過什么問題嗎”你隨手就能舉出一個完整的排查經(jīng)歷比“沒遇到什么問題訓(xùn)練很順利”這種回答可信度高得多。而且寫畢業(yè)設(shè)計論文時這些日志會變成你“第三章實驗”和“第四章結(jié)果分析”最現(xiàn)成的素材寫起來輕松好幾倍。最后再分享一個小技巧訓(xùn)練完成后給你的模型取幾個不同的版本名字——比如“v1_baseline_cnn”、“v2_resnet50_finetune”、“v3_augmented”——按時間存好。做實驗最忌諱的是“這個h5文件是剛才調(diào)過參的嗎還是昨天那個”版本管理做得越清楚后面越省事。這套方法不止適用于中草藥識別任何以“訓(xùn)練模型”為核心的課程設(shè)計或畢業(yè)設(shè)計項目都能直接用上。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
99热九九这里只有精品10| 99色日本| 婷婷五月丁香婷婷| 九九九九九九九九九九九九九国产精品| 激情丁香淫荡婷婷| 青青草婷婷久久| 亚洲色情网站| 丁香婷婷五月色成人网站| 超碰色综合| 亭亭色网| 狠狠精品干练久久久无码中文字幕| 99热精在线九九久久保| 久久丁香综合精品综合| 色碰碰| 天天操加勒比| 人妻熟女一区二区AV| www.狠狠干com| 99视频综合| 日本天天操| 在线中文av| 综合网色| 26uuu在线观看| 六月婷婷色色色| 久9视频| 五月婷视频久久| 色婷婷成人做爰A片免费看网站 | 99日韩网站| 婷婷狠狠97| 婷婷91| 综合亚洲色色| 在线网黄| 91九色无码内射| 狠狠干综合| 亚洲色五月天在线| 丁香五月色色婷| 免费AV播放| 人人爽在线视频综合网| 最熟少妇乱码| 在线另类| 日韩综合天堂| 五月婷婷69| 五月婷婷偷| 91VIP在线观看| 超碰成人在线观看| 日熟女| 激情五月丁香色婷婷| 人人操人人爰人人一天天碰夜夜拍夜夜爽-中国A级毛片天天看天天谢… | 最新av在线观看| 五月丁香婷婷激情| 五月天婷婷综合久久| 三级片AAA久久久AAA久久久AAA| 五月丁香免费看| 99碰碰| 亚洲视频另类| 2018夜夜草| 人妻操逼视频| 中文字幕在线日亚州9| 丁香六月爱综合| 婷香五月| 99久久婷婷国产综合精品草原| 色色97丁香婷婷五月天| 欧美五月婷婷综合| 婷婷丁香18| 99色视频| 色五月人妻| 人人色婷婷| 狠狠做五月婷婷| 天天色综| 停停综合色色| 丁香六月婷| 久草免费福利视频| 97碰碰草| 67194线路二在线观看| 亚洲色另类| 亚洲免费99| 精品人妻久久久久久久| 五月天婷婷色播在线网| 婷婷丁香五月天中文字幕| 五月丁色AV| 97色久| 日韩高清久久| 99热综合在线| A√天堂网在线| 99色6爱9热| 97在线精品视频| 婷婷五月在线| www.五月天色色色| 久久综合九九| 婷婷五月天影视| 国产精品久久久99视频| 人妻熟妇六区| 婷婷开心激情五月激情网| 蜜乳国产网站| 99ri视频在线播放| 丁香啪啪| 久久99大| 丁香五月在线自慰| 日本熟女三区| 美女五月狠狠| 久久久噜噜噜久久人妻| 最新无码专区| 亚州操操| 99亚洲大片精品永久在线观看 | 五月天激情久久| 大香蕉啪啪| 日韩aaaaa| 亚洲中文字幕在线观看| 自拍视频99| 天天射天天干天插色综合| 五月天大香蕉| www激情五月天| 99热这里只要精品免费| 激情综合网五月婷婷| 男男野外做爰全过程69| 爱操人妻| 五月丁香六月情亚洲| 狠狠色噜噜色狠狠狠综合久久成人波 | 色.五月综合网| 精品操逼一区二区| 日本精品99| 婷婷色天香| 五月激情偷拍| 风流少妇A片一区二区蜜桃| 涩丁香91| 亚洲激情图文小说| 五月天婷综合| 国产色香蕉精品五夜婷| 激情的五月| 99热都是精品| 大战熟女丰满人妻AV| 婷婷五月综合色小姐小说| 亭亭五月基地在线| 色五月丁香六月婷婷| 99热这里只有免费精品| 激情综合五月丁香| 91ncom.色| 国产五月婷| 99九九视频| 九九在线热九九在线热99热| 五月婷婷色播视频| 日韩成人综合网| 五月丁香六月激情网站| 狠狠色五月| 亚洲中文av| 大香蕉婷婷婷| 情婷婷五月天| 偷拍九九热| 色综合色五月| 2020日日干| 新激情五月天| 狠狠色噜噜狠狠狠888了| 久操福利| 五月天成人综合| 色丁香五月| 亚洲免费看片| 五月激情网五月综合网| 五月丁香婷婷综合| 久久亚洲网| 天天影院色| 精品一二三区久久AAA片| 欧洲不卡视频| 99久在线精品99re8| 久久青青日本视频| 色五月六月| 国产XXXX搡XXXXX搡麻豆| 色色丁香婷婷| 极品人妻VideOssS人妻| 99精品在线播放| 天天爽天天操| 久久久网站| 五月停停999| 97久久超视频| 天堂色婷婷| 高清成人综合| 九九免费视频| 深夜婷婷五月丁香| 九色亚洲| 亭亭玉月丁香| 91碰碰| 97狠狠色| AV 3P| 精品欧美性爱超级爽| 99综合婷婷五月| 六月婷婷综合| 成人欧美Va| 无码激情AAAAA片-区区| www99热| 91大屁股在线| 成人在线综合| 亚洲婷婷丁香五月天激情小说| 人妻精品一区二区三区| www激情网| 激婷网| 99热这里只有精品热| 黄色国久久| 五月丁香五月天现场视频| 日韩青青| 久热超碰91| 婷婷伊人久久| yjzz亚洲国产| 五月婷六月| 超碰99在线| 五月天大香蕉| 久久久久久性爱视频| 综合激情专区| 亚洲情综合五月天| 毛片新网地| 中文字幕黄色片| 香蕉AV福利精品导航| 五月丁香婷中文字幕| 99色在线免费观看视频| 99久视频| 五月天婷婷成人网| 久久性爱网站| 色色色婷婷| www99热| 黄色99网| 91成人视频| 亚洲日韩乱码一区二区三区四区| 激情九九六月激情免费视频| 思思99精品视频在线观看| 亚洲日韩一页精品发布| 日韩在线9| 色噜噜,噜噜色| 婷婷五月娱乐在线| A片女女女女女女BBBB| 婷婷六月激情| 青青福利网| 婷婷色五月激情强奸四射| 爱射综合| 色综合久久天天综合网| 亚洲成人在线五月天| 亚洲综合久| 亚洲精品第一色色色色色色| 五月婷婷综合视频| 无码人妻电影| 五月丁香色综合| 月婷婷亚洲| 色99www.| 色亭亭丁香五月天| 91av传媒高清在线视频网| 免费视频无码| 激情综合五月婷婷| 天天cha成人综合网| 第四色大香蕉| 婷婷五月超碰| 久久久9久| 国产欧美精品AAAAAA片| 婷婷久久五月| 中文字幕成人| 深爱激情五月网| 亚洲99热| 亚洲99精品欧美一区| 天天干天天操天天干天天操天天干天天操 | 成人婷婷深爱综合网| 久久精品99久久久久久| 亚洲精品444久久久久久| 中文字幕在线免费看线人| 91狠狠综合久久| 丁香五月欧美成人| 色婷婷综合视频| AVDV久久| 九九色婷婷五月天| 丁香五月ⅤA久久久| 天堂久热| 久久一级片| 99爱爱网| 亚洲区,视频区,视频区免费| 婷婷五月激情六月丁香| 怡红院院久久| 九九99久久| 五月丁香婷婷AV| 成年人丁香五月| 五月丁香777| 99热这里全都是精品| 六月丁香久久| 色综合色色| 精品人妻伦一二三区久久| 色9999日韩国产| 丁香五月天社区| 无码免费人妻A片AAA毛片西瓜| 噜噜在线| 久99精品视频| 看黄的网站18禁| 婷婷色色播五月天| 久久99热免费最新版| 久久婷网| 黄色视频网站在线播放| 激情av在线| 91爱啪啪| 热久久视频99| 久9热在线视频| 99热精品在线观看| 丁香六月色| 97视频.干com| 日本激情ⅩXX免费视频| 五月丁香婷婷综合视频| 青青草a在线| 色婷婷五月天小说网| 99热最新| 99网| 91丨九色丨熟女|新版| 久久久久久久综合狠狠综合| 色五月婷婷很很操| 亚洲精品又粗又大又爽A片| 超碰免费人人肏| www91在线| 深爱丁香网| 欧美草久久五月天91| 99碰网站| 日本久碰| 婷婷五月俺要去| 久久丁香五月天| www.99热| 亚洲小电影在线观看黄999| 99成人网一区| 日韩成人电影在线播放| 影音先锋AV资源男人站| 插插插色综合网| 99视频只有精品| www五月| 婷婷玖玖五月天| 欧美综合婷婷网| 五月天开心网| 成人小说色图婷婷五月| 亚洲色欲欧美一区二区三区| 九九热在线视频观看| 久久久9久| 久久这里只有国产| 欧美日韩999| 婷婷激情五月天桃花网| 最新精品视频99| 特黄三级片| 4399精品一区二区| 99热只有精| 99热精品在线| 五月婷婷六月丁香免费| 久热9| 丁香花成人区| 精品人妻久久久久| Www.se.久久| 女人天堂av| www.狠狠| 99精品久久| www.色九月| 国产干逼片| 五月丁香好婷婷姑娘综合网| 激情综合久久| 丁香五月天色| 国产精品人成A片一区二区| 9久久久久久久久久久| 五月丁香六月婷婷开心网| 538在线精品| 六月色伊人婷婷| 久久色情| 久久99综合| 日本色色色| caop在线视频| 五月婷婷激情网| 91久操| 亚洲av综合网| 一起草av| 国产精品人成A片一区二区| 久久香蕉影院| 另类在线| 五月丁六月婷| 激情熟女网| 激情五月天小说|五月天开心激情网|亚洲精品国产自在现线|黄色五月天 | 99热免费在线| 午夜不卡成人一区二区| 99色综合久久| 99精品无码| 亚洲av无码精品色午夜| 九热精品| 一夜福利不卡| 丁香六月婷婷激情| 色色色五月婷| 丁香婷婷久久| 熟惀91九色在线| 婷婷丁香激情| 激情中文在线| www.夜夜| dingxiangtingtingliuyue| 丝雨一区二区| 99自拍视频在线| 九九热这里有精品视频| 亚洲亚洲人成综合网络| 久久99热这里只有精品| av在线资源| 色婷视频| 丁香五月婷老师| 开心五月综合激情网| 99热66| 四虎婷婷五月天| 97se在线视频| 狠狠干夜夜干| 天天摸色吧天天摸色吧| 五月丁香婷婷色色| 婷婷六久久| www.五月丁香| 天天射射夜| www.九月婷婷丁香.com| 五月婷婷丁香六月| 高清无码视频网址| 操人妻90p| yirenjiqingshiping| 永久免费视频| 六月婷婷亚洲| 《诡秘之主》在线观看| 婷久久综合| 小视频久久久aaa| 久久综合天天综合| 91久久婷婷| 老师高潮流白浆喷水的A片| 一起草无码| 欧美综合激情五月丁香| 中文精品在| 亚洲V国产V欧美V久久久久久| 丁香五月婷久久| aaaaa不卡| 色 噜噜 九月 婷婷| 九九热这里| 天天操夜夜爽歪歪| 美女100%露全身无挡网站| 91性人人| 色欲五月丁香| 国产片XXXXA片国语对白| 色五月综合资源推荐| 狠狠色婷婷丁香六月| 超碰97免费在线| 日本V在线观看不卡视频网站| 91AV婷婷| 色五月欧美| 夜夜爽日日躁| 六月丁香婷婷拍拍| 五月丁香色色| 99狠狠操一| 五月天丁香婷婷视频网址| 香蕉综合网| 丁香五月天激情综合| 开心五月综合激情综合五月| 26uuu色噜噜精品一区| 99热99操| 一起肏在线视频| 超碰色热| 五月天婷婷婷| 婷婷五月花.97| 97av在线视频| 久久久五月天| 九九亚洲视频| 亚洲五月天激情| 欧美六月| 色综合区| 九九这里都是精品| 色色色成人网| 激情五月天视频| 天堂久久婷婷| 色欲久久久久久综合网综合网| 99热传媒| Caoub青青超碰| 丁香综合日产精品久久| 丁香六月成人| 91久久久久| 五月婷A V在线| 无码一区精品一区视频| 色五月亚洲| 三级毛片视频| 99ri精品在线观看| 婷婷自拍| 97久久草草超级碰碰碰| 99ri视频| 亚洲色色在线| 97色色色色色色色色色色色色色| 人妻 性久久久久久| 色五月婷婷大| 婷婷五月天狠狠搞干| 色综合天天天天做夜夜| 深爱综合网| 可以免费观看的av| 无码人妻激情| 九九精品视频免费在线| 亚洲天堂亚洲色色色| 国产色婷婷亚洲| 91操操操| 天天插天天爽| www.99热| 婷婷在线五月综合| 婷五月天六| 夜夜资源站| 五月天大香蕉| 五月婷色丁香| 丁香五月社区| 日本99久久| 不卡在线视频| 激情五月婷黄版| www.99婷婷| 激情涩涩网| 99热这里只有国产精品| 久久伊人9| 久久婷婷五月| 色噜噜狠狠狠狠色综合久欧美| 一级七香蕉| 久久女人天堂| 五月丁香六月花| 66色在线日韩| 99热这里有精品| 综合久久首页| 色五月激情问网站| 色色色色色色色色色色色色色色,网站| 五月丁香偷拍| 日韩中文字幕| 99男人的天堂| 五月久久亚洲| 日日操日日撸| 91日精品| 婷婷五月开心中文字幕色| 天天操电影院色狼性av| 狠狠干婷婷| 影音先锋 萱萱| 99热在线精品播放| 操啊操av| 色婷婷丁香五月| 夜色爱爱亚洲| 婷婷的五月天另类视频| 中文在线成人| 97超级碰人人| 欧美狠狠一在草| www.婷婷五月| 国产视频色色色色色色色| 亚洲五月激情| 五月天婷婷人妻| 成人丁香五月天| 青青色com久久| 综合丁香婷婷五月天| 99国产这里只有精品| 五月综合无码| 97综合色片| 丁香五月色情| 日日影院 | 99精品热视频| 久久综合首页| 狠狠色噜噜色狠狠狠综合色| 天天色,天天操,天天射| 五月天另类激情在线| 91丨九色丨国产在线| 日本在线免费中文com.| 日韩AV大全| 99久久五月天| 五月丁香六月婷婷综合| 色五月婷婷777| 色情综合| 日本色道视频网站| 日本激情91| www.狠狠艹| 67久久| 激情黄色五月天| 97色色色| 激情五月图| 操人91| www.射伊蕉婷婷| 这里只有精品免费| 性爱网六月丁香| 人妻久久久久久久久久| 天天插操| 亚洲欧美另类在线23p| 国产精品18久久久| 五月丁香六月婷婷综合伊人| 爱久久小说下载网| 婷婷五月天亚洲精品| 成人做爰A片免费看视频| 丁香色六月| 亚洲男女激情| 丁香五月天天日| 99激情| 亚洲第一色色色色| 岛国在线观看91| 操丝袜视频影院导航| 99婷婷精品推荐在线视频| 五月天色综合服务平台| 色色色宗合网| 日本情色一区二区| 99热在线精品观看| 五月份婷婷| 激情五月综合亚洲另类| 天天在线久久综合 | 九九精品大香蕉| 精品草原久久视频| 丁香五月婷婷欧美激情-中文天堂最新版在线观看 | 人妻videos人妻高清| 国产黄大片在线观看画质优化 | 亚洲视频在线网| 伊人五月天在线| 金品在线视频99| 六月色播| 色婷婷五月基地在线| 97干干干丁香| 日本丁香五月| 久久这里都是精品免费| 九九色网专区| 亚洲AV中文在线| 99精品无码视频| 老美AA片| 婷婷的色色五月天| 九九热10| 97人妻碰碰碰碰碰久久久久久| 91九色在线视频| 狠狠大香婷婷爱| 丁香五月花影院| 五月香蕉婷婷| 九九久久精品| 天天综合中文| 五月丁香日本片| 91丨九色丨国产| 狼人婷婷久久| 国产美女精品| 996er热| 色狠狠色噜噜AV天堂五区| 日日夜夜久| 噜噜狠狠| 亚洲4区国产欧美| 狠狠色噜噜狠狠狠888| 这里只有免费的精品| 熟女网站久久| 欧美日韩成人h| 亚洲激情综合网| 日夜夜天天| 色综合天堂| 亚洲丁香五冃97色| www.狠狠操| 丁香五月天堂| 五月婷婷综合色拍| 大香蕉520| 91碰碰碰久久久久| 中文字幕日产A片在线看| 综合色色色| 五月天成人在线精品| 久久婷视频| 91久久日日| 九月婷婷| 伊人网啪啪| 亚洲婷婷性爱| 26uuu国产| 综合网啪| 五月婷婷激情综合网 | 久久久久er热| 天天综合色丁香| 天天操夜夜肏| 欧美综合婷婷欧美综| 国产免费一区二区三州老师F1F1| 91美女啪啪| 亚洲熟妇AV乱码在线观看| 久月婷婷| 92久久| 性综合网| 综合网激情| 丁香九月婷婷色| 九九sese| 79亚洲精品少妇| 九九色精品| 五月丁香久| 97色啪| 99视频极品在线香蕉| 丁香五月之久操视频| 久久综合九九| 99在线免费视频| 99视频精品在线| 亚洲综合色婷婷| www.久久综合| 一级精品999WWW| 狠狠狠狠狠| 婷婷久久色| 婷婷操婷婷干婷婷射| 婷婷五点亚洲| 91免费试看| 激情5月婷婷| 乱乱av| 不卡的AV网站| OYIWbGcPu8H| 欧美黄色一级| 日本理论久久| 日韩成人电影在线播放| 9l视频自拍九色9l视频自拍九色9l社区| 狠狠干在线| 五月丁香色婷基地综合久久| 五月天伊人综合| 91avse| 91狠狠色丁香婷婷综合久久| 色五月激情问网站| 五月丁香婷中文字幕| 亚洲噜色| 婷婷激情小说| 五月丁香啪啪啪综合网| 九九综合| 5月丁香美女影院| 波多野结衣成人作品在线| 吾爱AV导航| 99 re视频一区| 九九成人精品免费视频| 啪啪干伊人婷婷| 欧美啄木乌丝袜人妻系列| 成年人丁香五月| 婷婷九月激情| 无遮挡国产高潮视频免费观看| 黄色国久久| 成年视频免费观看| 五月五婷婷网| 丁香五月瑟瑟| 99热精品99| 色婷婷婷av | 五月婷婷六月天| 日日夜夜青青草| 停停五月丁香| 天天婷婷综合亚洲亚洲| 草草夜夜操| 五月天丁香婷婷社区| 热的国产99热| 激情五月天电影| 狠狠干婷婷| 99婷五月| 色九九综合| 日本性激情色播| 久久久大香蕉| 5月丁香美女影院| 五月丁香无码| 五月中旬婷婷丁香六| 久久久久久97| 色婷婷五月天av在线| 99热最新精品| 狠婷婷五月| 综合激情站| 国产免费av网站| 天天久久人人| 人人播| 国产69精品久久久久999小说| 久久久久婷| 天天操天天操| 91丨九色丨大屁股| 日韩婷久| 色婷五月天网站| 五月丁香激情综合网| 国产精品A片在线| 丁香五月天色综合| 欧美在线97| 中文字幕高清av| 欧美大奶熟女噜噜噜噜| 色婷亚洲| 伊人丁香花综合影院| 激情久久久| 婷婷丁香综合| 婷婷五月天偷拍| 99免费在线视频| √天堂资源在线人妻熟女| 九九99一区| 粉嫩AV久久一区二区三区| 五月激情啪啪啪| 蜘蛛女侠2003满天星免费观看| www.色五月| 大香蕉久久伊人婷婷五月丁香| 99热8| 天天色五月婷婷91久久久久久久| 啪啪啪啪五月天| 天天操天天干天天日| 色五月超碰| 夜夜爽天操| 大战熟女丰满人妻AV| 色青青五月| 天天爽天天干| 五月婷婷久久综合| www婷婷| 六月婷婷九月丁香| 欧美xx激情视频在线观看| 激情五月婷婷视频| 操日本人妻视频| 成人精品在线| 亚洲综合视频天天精品| 五月天狠狠| 亚洲AV免费在线| 99ri国产| 热99国产精品| 天天爽天天| 丁香五月天在线视频| 色婷久久| 大香蕉五月丁香| 97精品自拍| 任你爽视频| 玖玖视频福利| 六月丁香啪啪| 亚洲综合干| 琪琪色网在线| 久久性爱视频这里只有精品| 4399精品一区二区| AV性爱在线| 99久久久久久www| 色综合久久44| 九色PORNY9l原创自拍| 99久在线精品99re8热| 丁香五月天天| 婷婷香草网| 婷婷五月天在线观看第二页| 五月婷婷国产| 激情另类综合| 深爱五月激情网| 香蕉AV777XXX色综合一区| 六月天丁婷婷| 狠狠色综合网站久久久久| 日韩一级网站| 91啪啪视频| 成人综合网站| 婷婷五月情天| 亚洲综合婷婷五月| 九九在线精品| 五月天另类图片| www一起操| 丁香五月激情五月| 狠狠五月天婷婷激情网。| 午夜丁香 婷婷| 色婷婷影院| 五月丁香亚洲综合网| 色婷婷色| 色五月激情网| 五月天五月天激情网| 国产9色在线/日韩| AA片在线观看视频在线播放| 婷婷狠狠操| 色色婷| 五月丁香黄色| 操操天堂| 久草婷婷网| 九热免费视频| 国产26uuu视频| 草草影院爱爱| 熟妇人妻中文字幕无码老熟妇| 激情亚洲网| 玖热精品综合视频| 丁香五月熟女| 婷婷五月婷婷| 成人开心五月天| 日本色噜| 色综合久久综合| 97精品综合| 色婷婷色99国产综合精品| 激情综合婷婷五月| 人妻激情视频| 九九综合九| 99色热| 激情综合网五月激情| 欧美久草在线日本一级特黄大片做受9在线观看韩国电影《两个女人》未删减-毛片 | 一起草性爱不卡视频| www.粉嫩av.com| 五月天婷婷色情| 97在线观视频免费观看| 亚洲精品亚洲人成人网| 骚。com| 丁香五月成人论坛| 五月丁香 啪啪| 五月丁香另类网| 99在线精品视频| AV在线中文| 五月丁香六月婷婷操操操| 五月激情综合婷婷| 久久香蕉影院| 大香蕉人在线65| 色综合网页| 精品国产一区二区三区四区阿崩| 五月婷婷性爱| 超碰97免费在线| 五月婷婷色激情| 人妻肉射免费观看| 午夜美女人啪最红院| 97碰碰人人| 99WWW免费视频| 日韩AV在线免费| 色.五月综合网| 国产精品久久久久久久久久| 99热手机在线精品| 久久久久久久97| 五月天婷婷AV| 探花搜索结果 - 黄上黄| 国产精品第一国产精品| 欧美操人| 狠狠综合网| 精品乱码久久久久| 色色婷婷五月天| 久久色婷婷| 婷婷五月综合色拍| 五月婷婷色| 亚洲激情另类| 99re这里只有| 婷婷色五天| 五月激情综合网| 婷婷五月色激情欧美激情| 夜夜干夜夜操| 99色热| 免费观看的av| 夜夜爱伊人| 久艹大香蕉| 久久婷婷色色| 99综合网| 丁香六月啪| 99精品网| 东京热五月婷婷| 影音先锋男人AV资源站| 色九月丁香婷婷蜜桃在线观看| 99精品丁香五月| 免费日本aⅴ中文字幕| 色综合99色| 69精品人妻不卡视频| 91啪啪网| 99热国产| 欧美色播综合在线观看| 婷婷六月激情丁香| 久久婷婷综合五月趴| 深爱激情五月网| 在线中文字幕av| 五月色丁香| 亚洲亚洲人成综合网络| 开心婷婷五月综合| 亚洲无码yw| 99热九九这里只有精品| WWW五月天| 五月天婷婷中文字幕在线播放| 婷婷五月婷| 影音先锋毛片网站| 五月天丁香啪啪综合| 人人爽人人爽人人爽人人爽| 久久久精品色色色| 日本女人久久| 婷婷五月丁香六月| 久草婷婷在线| 另类在线观看视频| 人人色人人摸人人看| 精品怡红九九九| 日日干夜夜干| 色噜噜狠狠色综无码久久合欧美| 日韩精品无码一区二区| www.91AV.COM| 99精品国产在热久久| 丰满人妻一区三区三区| 五月丁香六月婷婷国产视频| 亚洲精品视频在线播放| 无码激情AAAAA片-区区| 大香蕉狠狠爱主页| 国产永久一二一起草| 久久免费婷婷视频| 人妻AV在线| 91日在线视频| 久99久在线| 99热精这里只有精品| 婷婷久久精品| 成人片黄网站色大片免费毛片| 亚州精品成人片| 噜综合| 久久美女五月天| 丁香五月色情| 日亚二欧美| 色五月久久成人婷婷| 天天插综合| 天天干天天干天天干| 五月天亭亭俺也| 激情综合网激情五月天| 婷婷黄色五月| 亚洲狠狠婷婷综合久久久| 99人妻碰碰碰久久久久视| 国产精品人人做人人爽人人添 | 五月婷婷六月丁香首页| 激情校园 亚洲| 久久东京热婷婷五月| 五月美女婷婷风骚| 综合玖玖性爱免费视频| 欧美性丁香色色五月天干干| 国产精品VIDEOSSEX久久发布| 踪合专区啪啪| 丁香婷婷六月在线资源观看| 五月天激情视频| 九热久| 26uuu亚洲精品国产| 久久久久婷婷| 婷婷射图| 操骚货在线| 成人五月天综合网| 9999热精品在线免费播放| 五月丁香无码| 97日本在线| 五月婷婷丁香综合| 欧美内射AAAAAAXXXXX| 久久99视频| 欧美视频五区| 日韩AV中文字幕在线| 亚洲九九99精品视频在线播放| 99精品视频在线观看| 激情六月天婷婷| 五月婷婷六月丁香色| 婷婷五月天VI| 丁香六月激情综合网| 久久激情五月婷婷| 日本久久综合| www.久久久久久久| 91|九色|动漫| 亚洲色婷婷| 五月婷婷片| Av中文在线| 好激情在线综合网| 久草婷婷网 | 丁香婷婷浪潮AV久久综合| 五月丁香婷婷激情在线| 国产人妻人伦精品一区二区| 日操| 国产又粗又大又爽又黄| 思思久久精品视频| 中文字幕人成乱码在线观看| 操操操av| 精品无码久久久久久久久| 久久小视频免费| 欧美性生交XXXXX无码小说| 五月丁香啪啪啪免费看| 色999;丁香五月| 琪琪理论片| 成人国产欧美大片一区| 婷婷丁香六月激情综合| 午夜不卡久久精品无码免费| 九九视频热| 99九九精品视频推荐| 亚洲精品国产精品乱码不99| 久久丁香婷| 综合久久99| 亚洲黄色精品| 五月丁香777| 久久杏爱视频| 丁香久久在线| 色婷婷精品| 日本人人草草| 日韩视频99| 五丁香激情综合| 狠狠五月婷婷| 夜夜干夜夜操| 色五月婷婷综合| 久久亚洲婷婷| 五月婷AV| 亚洲第一av| 91狠狠色| 青青五月天婷婷| 婷婷五月丁香综合瑟瑟| 婷婷五月天情色| 四色综合网| 丁香五月天成人| 婷婷五月天电影网| 中文字幕在线观看视频www| 嫩草AV久久伊人妇女超级A| 久久思思热视频| 99色五月| 亚洲精品久久久久久久久久吃药| 特级片神马电影| 99手机在线精品视频| 99re这里只有| 国语精品探花| 婷婷午夜精品久久久| 久碰视频| 第五色婷婷| 丁香五月天天| 色黄啪啪| 亚洲最大视频| 久久视频在线| 色综合久| 超碰免费电影| 99视频在线精品| 色五月首页| 五月色色色| 97人人妻人人艹| 伊人干综合| 激情五月天免费视频| 色色狼人综合| 无码中文一区二区三区| 国产91九色| 熟女人妻一区二区三区免费看| 婷婷五月六月丁香| site:jszngf.com| 五月天另类图片区99| .精品久久久麻豆国产精品| 狠狠干狠狠干| 久久机热这里只有 | 91超级碰| 五月天伊人综合| 777.色色| 中文字幕九九九九| 99久| 91超级碰碰| 91婷色| 五月婷婷六月丁香在线视频| tingtingjiqingwuyue| 日本WWW九九九| 9 7总站超级碰免费视频| 五月激情影院| 激情综合网激情五月天| 涩涩涩.com| 欧美亚洲999| 五月激情啪啪啪| 婷婷丁香综合| 超91热| 国产毛片欧美毛片久久久| 婷婷六月啪啪| 欧美色性色好| 色综合射婷婷| 婷婷丁香一月| 久久五月婷婷电影| 免费黄色AV| 五月丁香人妻| 九九Y精品热播| 国产人妻777人伦精品HD| 色噜噜狠狠色综合日日| 夜夜资源站| 激情五月色婷婷| 六月 丁香 视频| 丁香婷婷啪啪啪| 五月视频日本免费观看| aⅤ79成人片| 伊人狠狠丁香婷婷综合尤物| 日韩五月丁香| 五月丁香婷庭在线| 这里只有国产精品在线| 亚洲激情无码久久| 丁香五月婷婷婷婷欧美综合| 91久久婷婷| 丁香婷婷性爱| 激情久久综合| 精品久久9| 六月婷婷av| 大香蕉天堂| 91超级碰在线视频| 一本久道综合99| 成人电影AV在线观看| 色九月国产| 五月天久久网站| …亚洲黄色在线播放日韩、av中文a…| 丁香五月婷婷www..com| 操草草草| 39视频第二区| 嫩草视频观看| 99久在线精品99re5热视频| 婷婷九月丁香天堂丁香天堂| 狠狠色丁香婷婷五月| 国产午夜精品一区二区| 婷婷五月激情的图片| 久久婷婷五月综合伊人| 大香蕉精品视频| 久久这里只有精彩| 天天在线天天综合网色| 五月婷婷co.m| 天天干天天射综合网| 2025天天操| 五月天天视频| 九色91国产| 丁香六月婷婷色XXXXX| 九九热超碰| 成人做爰A片免费看视频| 色插人人| 色综合久久88| 色9999日韩国产| 激情婷婷五六月天| 狠狠色综合网站| 国产欧美va| 欧美激情综合色综合啪啪五月| 激情九月婷婷| 粉嫩AV久久一区二区三区 | www.无码com| 欧美色图天堂网| 五月婷婷就去色| 蜜乳中文字| 五月丁香好婷婷A片网| 婷婷六月色| 久久ri精品| 在线视频99| 91精品电影18T| 日韩熟女啪啪视频| 成人国产网站| 久热超碰| 五月天婷婷视频30| 超碰在线观看9| 亚洲va综合va国产va中文| 亚州第一黄网| 中美日韩成人在线| 亚洲婷婷婷| 热久久这里只有精品| 久久久久9| 思思热99er| 亚洲网视屏| 9999色色色色| 激情99| 成人国产欧美大片一区| 99碰视频| 亚洲色婷婷激情| 日本成人噜噜噜| www久久久| 亚洲欧洲小视频9| www.天天干.com| 欧美成人色婷婷| 亚洲激情在线| 激情综合在线播放| 精品婷婷五月视| 九九热最新| 国产做爰视频免费播放| 六月丁香综合| 色五月丁香婷婷在线观看| www夜夜| 久久网址99热| 婷婷黄色五月天在线视频| 操逼巨乳91| 综合色、色综合| 色婷视频| 五月天狠狠| 色五月激情五月| 黄色三级日本| 五月丁六月香| 欧美成人精品三区综合A片| 久久久久久久8| 伊人午夜综合色啪| 色啪网| 99热大香蕉| 综合五月网| 欧洲MV日韩MV国产| a网站免费观看| 99色视频| 久久ri精品视频| 大地资源色婷婷视频在线| 婷丁香五月天| 婷婷色av| 午夜不卡久久精品无码免费| 日本精品在线噜噜噜| 激情五月天啪啪| 另类图片五月天激情| 色婷婷五月天激情综合| 五月婷婷丁香六月| 另类A片| 色色五月天婷婷丁香| 超级碰 久久9| 69er小视频| 丰满女老板BD高清A片| 亚洲精品亚洲人成人网| 成人短视频在线免费观看| 久久激情四射| 狠狠五月激情婷婷直播片| 欧美黑人巨大性生话| 激情五月激情综合俺也去婷婷小说| 性生活视频98791| 正宗黄色毛片| 国产偷人妻精品一区| 国产精品成人网址| 色婷婷丁香AV综合| 免费看成人AA片无码视频吃奶| 五月丁香婷婷爱激情综合网| 色欲久久综合| 国产1区2区3区| 激情综合国产| 欧美在线看| 大香蕉99热| 丁香五月影视| 粉嫩av蜜桃av蜜臀av| 五月天天堂久久| 综合另类视频| 翔田千里 50岁 无码| 91久久久久久久久18| 成人婷99最新| 99精色| www.狠狠操.co m| 精品一二三区久久AAA片| 婷婷开心青青草| 一二线视频 另类|