日韩精品一区二区三区在线视频放-无码中文字幕V?一区二区-成年片免费观看视频-国内少妇人妻丰满av-国产精品中文字幕免费观看-亚洲成人久久一区二区三区-国内少妇偷人精品视频无缓冲-一区二区国产精品日本一区二区三区在线网

ARTICLE DETAIL

資訊詳情

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

YOLOv1原理精講:從網(wǎng)格編碼到三路損失的手工實(shí)現(xiàn)

YOLOv1原理精講:從網(wǎng)格編碼到三路損失的手工實(shí)現(xiàn) 簡(jiǎn)介本資源是一份面向深度學(xué)習(xí)初學(xué)者與計(jì)算機(jī)視覺(jué)開(kāi)發(fā)者的YOLOv1實(shí)戰(zhàn)訓(xùn)練指南聚焦于如何基于Keras框架快速構(gòu)建并訓(xùn)練自定義目標(biāo)檢測(cè)模型。資源提供完整可運(yùn)行的Keras_YOLOv1實(shí)現(xiàn)含darknet19網(wǎng)絡(luò)定義、train/test腳本及README說(shuō)明配套圖像預(yù)處理示例jpg、數(shù)據(jù)列表配置txt和模型訓(xùn)練/測(cè)試代碼py覆蓋數(shù)據(jù)準(zhǔn)備、模型搭建、訓(xùn)練調(diào)優(yōu)到結(jié)果可視化全流程。壓縮包共11個(gè)文件含3個(gè)Python核心腳本、4張示例圖像原始與檢測(cè)結(jié)果對(duì)比、3個(gè)文本配置文件及1份Markdown說(shuō)明文檔總大小僅128KB輕量易解壓適合本地快速驗(yàn)證與二次開(kāi)發(fā)。目前已有110人學(xué)習(xí)下載讀者可直接復(fù)用目錄結(jié)構(gòu)與代碼模板省去環(huán)境適配與基礎(chǔ)框架搭建時(shí)間尤其適用于課程設(shè)計(jì)、小規(guī)模工業(yè)檢測(cè)場(chǎng)景或YOLO算法演進(jìn)原理研究。1. 為什么還在用 YOLOv1不是為了懷舊而是為了“看懂目標(biāo)檢測(cè)的骨架”你可能在 GitHub 上刷到過(guò)一堆標(biāo)著 “YOLOv5/v8/v10 最新版”的倉(cāng)庫(kù)點(diǎn)進(jìn)去全是自動(dòng)標(biāo)注、一鍵訓(xùn)練、WebUI 可視化——但當(dāng)你被導(dǎo)師問(wèn)“YOLOv1 的損失函數(shù)為什么分坐標(biāo)、置信度、類(lèi)別三部分計(jì)算”“S×S 網(wǎng)格怎么對(duì)應(yīng)到原始圖像坐標(biāo)”時(shí)卻卡在了反向傳播的黑匣子門(mén)口。這套基于 Keras 實(shí)現(xiàn)的 YOLOv1非官方復(fù)現(xiàn)但結(jié)構(gòu)清晰、注釋完整不是為工程落地而生而是為“親手把目標(biāo)檢測(cè)從頭擰緊每一顆螺絲”而設(shè)計(jì)。它不追求 mAP 多高但強(qiáng)制你手寫(xiě)grid_cell_to_bbox()、手動(dòng)拆解loss_coord和loss_conf、逐層調(diào)試conv4 → fc5 → output的 shape 變化。適合某高校計(jì)算機(jī)視覺(jué)課設(shè)、畢設(shè)中需要完整展示算法原理→代碼實(shí)現(xiàn)→訓(xùn)練驗(yàn)證閉環(huán)的學(xué)生也適合想甩掉 PyTorch 自動(dòng)求導(dǎo)依賴(lài)、真正吃透 anchor-free 檢測(cè)范式底層邏輯的初階工程師。它不幫你省時(shí)間但它能讓你在答辯時(shí)指著 loss 曲線說(shuō)清楚“這里第 37 輪震蕩是因?yàn)槲以赾ompute_iou里漏判了邊界框歸一化導(dǎo)致 conf_loss 突增”——這種確定性就是它存在的全部理由。2. 總體架構(gòu)設(shè)計(jì)Keras 函數(shù)式 API 構(gòu)建的四層結(jié)構(gòu)與數(shù)據(jù)流閉環(huán)這套方案沒(méi)有采用 Keras Sequential 模型而是嚴(yán)格使用函數(shù)式 APIFunctional API目的很明確讓每一層輸入輸出 shape 可追溯、梯度流向可打斷、中間特征圖可提取。整個(gè)網(wǎng)絡(luò)被劃分為四個(gè)邏輯層每層承擔(dān)明確職責(zé)且彼此解耦——這意味著你可以單獨(dú)替換 backbone比如把原始的 24 層卷積換成 ResNet18 提取器而不影響后續(xù) detection head 的 loss 計(jì)算邏輯。2.1 輸入預(yù)處理層固定尺寸 歸一化 標(biāo)簽編碼的三步不可逆操作YOLOv1 對(duì)輸入尺寸極其敏感必須統(tǒng)一為 448×448原始論文設(shè)定。這不是為了兼容性而是因?yàn)槠?S7 的網(wǎng)格劃分直接綁定圖像寬高比。預(yù)處理代碼如下def preprocess_image(image_path, label_path, input_size448, S7, B2, C20): # 1. 讀取并縮放雙線性插值保持比例 img cv2.imread(image_path) img cv2.cvtColor(img, cv2.COLOR_BGR2RGB) img_resized cv2.resize(img, (input_size, input_size)) # 2. 歸一化到 [0,1]Keras 默認(rèn)要求 img_normalized img_resized.astype(np.float32) / 255.0 # 3. 解析 label 文件PASCAL VOC 格式 .xml 或自定義 .txt # 假設(shè) label_path 是 .txt每行: class_id x_center y_center width height (歸一化后) boxes [] with open(label_path, r) as f: for line in f.readlines(): parts line.strip().split() cls_id int(parts[0]) x, y, w, h map(float, parts[1:5]) # 注意YOLOv1 要求 bbox 坐標(biāo)是相對(duì)于整張圖的絕對(duì)比例不是 grid cell boxes.append([cls_id, x, y, w, h]) # 4. 編碼為 (S, S, 5*B C) 的 label tensor label_tensor np.zeros((S, S, 5*B C)) for box in boxes: cls_id, x, y, w, h box # 計(jì)算該 bbox 中心點(diǎn)落在哪個(gè) grid cell (i, j) i int(y * S) # 行號(hào)y 方向 j int(x * S) # 列號(hào)x 方向 if i S or j S: continue # 邊界溢出跳過(guò)真實(shí)項(xiàng)目中應(yīng)做裁剪或警告 # 歸一化中心坐標(biāo)到 grid cell 內(nèi)部 [0,1] x_cell S * x - j y_cell S * y - i # 寬高保持原始比例相對(duì)整圖 w_cell w h_cell h # 填充 label_tensor前 5*B 位存 B 個(gè) bbox 的 (x,y,w,h,conf)后 C 位存 one-hot 類(lèi)別 for b in range(B): if label_tensor[i, j, 4 b*5] 0: # 找第一個(gè)空置信度位 label_tensor[i, j, b*5:(b*54)] [x_cell, y_cell, w_cell, h_cell] label_tensor[i, j, 4 b*5] 1.0 # 置信度 1有物體 break # 類(lèi)別 one-hotC20此處簡(jiǎn)化為單類(lèi)實(shí)際需擴(kuò)展 label_tensor[i, j, 5*B int(cls_id)] 1.0 return img_normalized, label_tensor提示這段代碼里的i int(y * S)是關(guān)鍵陷阱點(diǎn)。很多初學(xué)者誤用i int(y)導(dǎo)致 grid cell 索引錯(cuò)亂。YOLOv1 的(x,y)是歸一化到[0,1]的乘以S才得到 cell 索引。我一般會(huì)在preprocess_image后加一句assert np.sum(label_tensor[..., 4]) 0確保至少有一個(gè)置信度被激活否則訓(xùn)練必然失敗。2.2 Backbone 特征提取層24 層卷積 池化的經(jīng)典 VGG 風(fēng)格設(shè)計(jì)原始 YOLOv1 使用 24 層卷積前 20 層 ImageNet 預(yù)訓(xùn)練后 4 層隨機(jī)初始化本方案完全復(fù)現(xiàn)該結(jié)構(gòu)但用 Keras 層級(jí)顯式聲明便于調(diào)試def build_backbone(input_tensor): # 輸入(None, 448, 448, 3) x Conv2D(64, (7, 7), strides(2, 2), paddingsame, nameconv1)(input_tensor) # 224x224 x BatchNormalization()(x) x LeakyReLU(alpha0.1)(x) x MaxPooling2D((2, 2), strides(2, 2))(x) # 112x112 x Conv2D(192, (3, 3), paddingsame, nameconv2)(x) # 112x112 x BatchNormalization()(x) x LeakyReLU(alpha0.1)(x) x MaxPooling2D((2, 2), strides(2, 2))(x) # 56x56 # 后續(xù) 5 組 convpool最終輸出 7x7x1024 特征圖 # 代碼略共 24 層卷積詳見(jiàn) model.py 中 build_backbone 函數(shù) return x # 輸出 shape: (None, 7, 7, 1024)這個(gè) backbone 的輸出尺寸必須是(7,7,1024)這是硬性約束。因?yàn)?YOLOv1 的 detection head 直接在此基礎(chǔ)上接全連接層將(7,7,1024)flatten 成(1, 7*7*1024)再映射到(1, 7*7*(5*220)) (1, 1470)。任何尺寸偏差都會(huì)導(dǎo)致Dense層報(bào)錯(cuò)。這也是為什么不能隨意替換 backbone —— 除非你同步修改后續(xù)的 reshape 和 dense 層參數(shù)。2.3 Detection Head 層從特征圖到預(yù)測(cè)張量的降維與解耦Backbone 輸出(7,7,1024)后Detection Head 并非簡(jiǎn)單接一個(gè) Dense 層而是分兩步走先用GlobalAveragePooling2D或Flatten降維再用兩個(gè)全連接層過(guò)渡最后輸出(7,7,1470)張量。本方案采用更魯棒的Flatten Dense組合并顯式分離坐標(biāo)、置信度、類(lèi)別分支def build_detection_head(backbone_output, S7, B2, C20): x Flatten()(backbone_output) # (None, 7*7*1024) (None, 49*1024) x Dense(4096, activationleaky_relu, namefc1)(x) # 4096 是原文設(shè)定 x Dropout(0.5)(x) x Dense(S*S*(B*5 C), activationlinear, nameoutput)(x) # 輸出 1470 維 # 關(guān)鍵reshape 回 (S, S, B*5 C) 以便后續(xù) loss 計(jì)算 output_tensor Reshape((S, S, B*5 C))(x) # 分離預(yù)測(cè)每個(gè) cell 預(yù)測(cè) B 個(gè) bbox每個(gè) bbox 5 維 (x,y,w,h,conf) C 維類(lèi)別 # 這里不立即拆分留到 loss 函數(shù)中按索引取保證梯度連貫 return output_tensor注意Reshape((S, S, B*5 C))這一步。很多同學(xué)在這里用tf.reshape或K.reshape導(dǎo)致模型無(wú)法保存必須用 Keras 原生Reshape層。另外B*5 C 2*5 20 30所以最終輸出張量 shape 是(None, 7, 7, 30)而非(None, 1470)—— 這是后續(xù)所有 loss 計(jì)算和 NMS 的基礎(chǔ)維度。2.4 損失函數(shù)層坐標(biāo)、置信度、類(lèi)別三路 loss 的手工拼裝與加權(quán)YOLOv1 的 loss 是其靈魂所在也是最容易翻車(chē)的地方。它不是單一 MSE而是三部分加權(quán)和loss_coord: 僅對(duì)負(fù)責(zé)預(yù)測(cè)該物體的 grid cell 中的 bbox 計(jì)算即I_obj^ij 1的 cell且只計(jì)算(x,y,w,h)不包括 confloss_conf: 對(duì)所有 cell 計(jì)算但正樣本有物體用(C_i - C_i_hat)^2負(fù)樣本無(wú)物體用λ_noobj * (0 - C_i_hat)^2loss_class: 僅對(duì)有物體的 cell 計(jì)算類(lèi)別預(yù)測(cè)誤差。本方案將 loss 封裝為自定義 Keras loss 函數(shù)關(guān)鍵代碼如下def yolo_v1_loss(y_true, y_pred): # y_true: (None, 7, 7, 30), y_pred: (None, 7, 7, 30) S, B, C 7, 2, 20 lambda_coord 5.0 lambda_noobj 0.5 # 1. 提取真實(shí)標(biāo)簽中的 object mask: (None, 7, 7) # y_true[..., 4] 和 y_true[..., 9] 分別是兩個(gè) bbox 的置信度原文中只用第一個(gè) # 實(shí)際我們只關(guān)心是否有物體取 max(4,9) 0 即認(rèn)為該 cell 有物體 obj_mask tf.reduce_max(y_true[..., 4::5], axis-1) # (None, 7, 7) obj_mask tf.expand_dims(obj_mask, axis-1) # (None, 7, 7, 1) # 2. 坐標(biāo) loss只對(duì) obj_mask1 的 cell 計(jì)算 (x,y,w,h) # 注意w,h 用 sqrt 計(jì)算避免大 bbox 梯度爆炸 coords_true y_true[..., :4*B] # (None, 7, 7, 8) coords_pred y_pred[..., :4*B] # (None, 7, 7, 8) loss_coord lambda_coord * tf.reduce_mean( obj_mask * tf.square(tf.sqrt(coords_true[..., 2:4*B:5]) - tf.sqrt(coords_pred[..., 2:4*B:5])) obj_mask * tf.square(coords_true[..., :4*B:5] - coords_pred[..., :4*B:5]) ) # 3. 置信度 loss正樣本用 obj_mask負(fù)樣本用 (1-obj_mask) conf_true y_true[..., 4:B*5:5] # (None, 7, 7, 2) conf_pred y_pred[..., 4:B*5:5] # (None, 7, 7, 2) loss_conf_obj tf.reduce_mean(obj_mask * tf.square(conf_true - conf_pred)) loss_conf_noobj lambda_noobj * tf.reduce_mean((1 - obj_mask) * tf.square(conf_pred)) loss_conf loss_conf_obj loss_conf_noobj # 4. 類(lèi)別 loss只對(duì) obj_mask1 的 cell 計(jì)算 C 維 one-hot class_true y_true[..., B*5:] # (None, 7, 7, 20) class_pred y_pred[..., B*5:] # (None, 7, 7, 20) loss_class tf.reduce_mean(obj_mask * tf.square(class_true - class_pred)) return loss_coord loss_conf loss_class注意這段代碼里coords_true[..., 2:4*B:5]的切片邏輯極易出錯(cuò)。2:4*B:5表示從索引 2 開(kāi)始步長(zhǎng)為 5取4*B個(gè)元素中的 w,h 維度即索引 2,3,7,8,...。我第一次寫(xiě)時(shí)漏了:5導(dǎo)致取了全部 8 個(gè)值loss 爆炸。建議在訓(xùn)練前用model.compile(lossyolo_v1_loss, optimizeradam)后先model.evaluate(dummy_x, dummy_y)測(cè)試 loss 是否為有限值再開(kāi)始正式訓(xùn)練。3. 數(shù)據(jù)集構(gòu)建與標(biāo)注規(guī)范從 VOC 到 YOLOv1 標(biāo)簽的精準(zhǔn)映射YOLOv1 不接受任意格式的標(biāo)注它對(duì)標(biāo)簽的物理意義、數(shù)值范圍、存儲(chǔ)結(jié)構(gòu)有強(qiáng)約定。本方案提供了一套完整的轉(zhuǎn)換腳本voc_to_yolo1.py但更重要的是理解“為什么這樣轉(zhuǎn)”。3.1 PASCAL VOC 標(biāo)注的局限性與 YOLOv1 的適配改造VOC 的.xml文件記錄的是xminyminxmaxymax像素坐標(biāo)而 YOLOv1 要求所有坐標(biāo)必須歸一化到[0,1]中心點(diǎn)(x_center, y_center)和寬高(w, h)必須是相對(duì)于整張圖的比例每個(gè).txt標(biāo)簽文件一行一個(gè)物體格式為class_id x_center y_center w hclass_id從 0 開(kāi)始且必須與classes.txt中順序嚴(yán)格一致。轉(zhuǎn)換腳本核心邏輯如下def voc_to_yolo1(xml_path, image_path, classes_file, output_txt_path): tree ET.parse(xml_path) root tree.getroot() size root.find(size) img_w int(size.find(width).text) img_h int(size.find(height).text) with open(classes_file, r) as f: classes [line.strip() for line in f.readlines()] with open(output_txt_path, w) as out_f: for obj in root.iter(object): cls_name obj.find(name).text if cls_name not in classes: continue cls_id classes.index(cls_name) xmlbox obj.find(bndbox) xmin int(xmlbox.find(xmin).text) ymin int(xmlbox.find(ymin).text) xmax int(xmlbox.find(xmax).text) ymax int(xmlbox.find(ymax).text) # 轉(zhuǎn)換為 YOLOv1 格式中心點(diǎn) 寬高 歸一化 x_center ((xmin xmax) / 2.0) / img_w y_center ((ymin ymax) / 2.0) / img_h w (xmax - xmin) / img_w h (ymax - ymin) / img_h # 寫(xiě)入class_id x_center y_center w h out_f.write(f{cls_id} {x_center:.6f} {y_center:.6f} {w:.6f} {h:.6f}\n)提示x_center和y_center必須是(xminxmax)/2除以img_w/img_h而不是(xmin/img_w xmax/img_w)/2—— 數(shù)學(xué)等價(jià)但浮點(diǎn)精度下后者可能引入微小誤差在int(y * S)時(shí)導(dǎo)致 grid cell 錯(cuò)位。我吃過(guò)這個(gè)虧一張圖里 3 個(gè)物體2 個(gè)進(jìn)了正確 cell1 個(gè)因y_center差了1e-8被int()截?cái)嗟礁舯?cell訓(xùn)練時(shí)該 cell 的I_obj^ij為 0但 loss 卻在懲罰它的 bbox 預(yù)測(cè)結(jié)果模型學(xué)不會(huì)定位。3.2 小樣本數(shù)據(jù)集的增強(qiáng)策略幾何變換優(yōu)先色彩擾動(dòng)次之YOLOv1 對(duì)數(shù)據(jù)量敏感但盲目增加ImageDataGenerator的rotation_range20或shear_range0.2會(huì)破壞 bbox 的幾何一致性。本方案推薦的增強(qiáng)組合是必選horizontal_flipTrue鏡像翻轉(zhuǎn)不改變 bbox 語(yǔ)義只需 x_center 1 - x_center慎選width_shift_range0.1, height_shift_range0.1平移后需同步調(diào)整 bbox 坐標(biāo)代碼已內(nèi)置禁用rotation_range,zoom_range,shear_range旋轉(zhuǎn)/縮放/錯(cuò)切會(huì)扭曲 bbox 形狀YOLOv1 無(wú) anchor 機(jī)制無(wú)法適應(yīng)形變。增強(qiáng)后的圖像與標(biāo)簽必須同步保存腳本augment_and_save.py會(huì)生成_aug001.jpg和_aug001.txt并確保.txt中的坐標(biāo)已重算。3.3 數(shù)據(jù)集劃分與加載器Keras Sequence 的內(nèi)存友好實(shí)現(xiàn)為避免一次性加載所有圖片到內(nèi)存448×448×3×N 占用巨大本方案使用keras.utils.Sequence自定義生成器class YOLOv1DataGenerator(Sequence): def __init__(self, image_paths, label_paths, batch_size8, shuffleTrue): self.image_paths image_paths self.label_paths label_paths self.batch_size batch_size self.shuffle shuffle self.on_epoch_end() def __len__(self): return int(np.ceil(len(self.image_paths) / self.batch_size)) def __getitem__(self, index): batch_indices self.indices[index*self.batch_size:(index1)*self.batch_size] batch_images [] batch_labels [] for i in batch_indices: img, label preprocess_image( self.image_paths[i], self.label_paths[i], input_size448, S7, B2, C20 ) batch_images.append(img) batch_labels.append(label) return np.array(batch_images), np.array(batch_labels) def on_epoch_end(self): self.indices np.arange(len(self.image_paths)) if self.shuffle: np.random.shuffle(self.indices)__getitem__中調(diào)用preprocess_image是關(guān)鍵。它保證每次 yield 的都是實(shí)時(shí)處理后的(448,448,3)和(7,7,30)內(nèi)存占用恒定且支持shuffleTrue下的真隨機(jī)。4. 模型訓(xùn)練與超參調(diào)優(yōu)從學(xué)習(xí)率衰減到早停策略的實(shí)戰(zhàn)配置YOLOv1 訓(xùn)練不是“run train.py 等 100 epoch”而是一場(chǎng)與 loss 曲線的耐心博弈。本方案的train.py提供了開(kāi)箱即用的配置但真正決定成敗的是以下三個(gè)超參的協(xié)同。4.1 學(xué)習(xí)率調(diào)度階梯式衰減 warmup 的雙階段控制YOLOv1 原文使用lr0.001但直接使用會(huì)導(dǎo)致初期 loss 震蕩劇烈。本方案采用warmup step decay# warmup前 5 個(gè) epochlr 從 1e-5 線性升到 0.001 def warmup_step_decay(epoch): if epoch 5: return 1e-5 (0.001 - 1e-5) * epoch / 5.0 else: # 階梯衰減每 30 epoch 降為 0.1 倍 return 0.001 * (0.1 ** (epoch // 30)) lr_scheduler LearningRateScheduler(warmup_step_decay)為什么是 5 和 30因?yàn)?backbone 的 24 層卷積參數(shù)量大前 5 epoch 是讓淺層特征提取器“熱身”避免初始梯度爆炸而 30 epoch 是經(jīng)驗(yàn)閾值——在多數(shù)小數(shù)據(jù)集2000 圖上loss 在此之后下降緩慢繼續(xù)訓(xùn)練易過(guò)擬合。4.2 優(yōu)化器選擇Adam 優(yōu)于 SGD 的實(shí)證依據(jù)YOLOv1 原文用 SGD momentum但本方案實(shí)測(cè) Adam 更穩(wěn)定。原因在于Adam 的自適應(yīng)學(xué)習(xí)率能更好處理loss_coord數(shù)值小、loss_conf數(shù)值大、loss_class數(shù)值中三者量綱差異beta_10.9, beta_20.999的默認(rèn)設(shè)置對(duì) YOLOv1 的梯度分布匹配度高不需要手動(dòng)調(diào)momentum和nesterov。optimizer Adam(learning_rate0.001, beta_10.9, beta_20.999, epsilon1e-07) model.compile(optimizeroptimizer, lossyolo_v1_loss)避坑 / 常見(jiàn)問(wèn)題 / 排查 / 注意現(xiàn)象訓(xùn)練第 1 個(gè) epoch 后loss_coord突增至1e5以上loss_conf接近 0原因preprocess_image中x_cell S * x - j計(jì)算錯(cuò)誤j用了int(x * S)但x未歸一化導(dǎo)致x_cell為負(fù)數(shù)或 1sqrt(w)報(bào)錯(cuò)梯度爆炸解決檢查preprocess_image輸入的x,y,w,h是否已歸一化加斷言assert 0 x 1 and 0 y 1現(xiàn)象val_loss持續(xù)下降但val_loss_coord卻上升原因驗(yàn)證集標(biāo)注中存在w或h為 0 的無(wú)效 bbox如xminxmax導(dǎo)致sqrt(w)為 0loss_coord計(jì)算時(shí)出現(xiàn)nanKeras 自動(dòng)忽略該樣本但loss_coord分母變小數(shù)值虛高解決在voc_to_yolo1.py中加入if w 0.001 and h 0.001:過(guò)濾極小 bbox現(xiàn)象訓(xùn)練 50 epoch 后所有預(yù)測(cè) bbox 的conf都趨近于 0.5class輸出混亂原因lambda_noobj0.5過(guò)小負(fù)樣本置信度 loss 權(quán)重不足模型學(xué)會(huì)“保守預(yù)測(cè)”對(duì)所有 cell 都輸出中等 conf解決將lambda_noobj提高到1.0或2.0強(qiáng)制模型區(qū)分有/無(wú)物體 cell現(xiàn)象model.predict()輸出的(7,7,30)中conf值全為 0 或 1無(wú)中間值原因Dense層后未加sigmoid激活conf和class預(yù)測(cè)值未經(jīng)壓縮直接進(jìn)入 loss 計(jì)算導(dǎo)致梯度飽和解決在build_detection_head的Dense層后對(duì)conf和class部分加sigmoidoutput_tensor tf.concat([tf.sigmoid(conf_part), tf.sigmoid(class_part)], axis-1)現(xiàn)象訓(xùn)練過(guò)程 GPU 顯存占用從 2GB 漲到 12GB 后 OOM原因tf.data.Dataset或Sequence中batch_size過(guò)大且preprocess_image內(nèi)部未釋放臨時(shí)變量如cv2.imread返回的img解決preprocess_image結(jié)尾加del img, img_resized或改用tf.io.read_filetf.image.decode_jpeg由 TensorFlow 圖優(yōu)化內(nèi)存4.3 早停與模型保存基于val_loss_coord的精準(zhǔn)干預(yù)YOLOv1 的最終目標(biāo)是精確定位因此不能只看val_loss。本方案監(jiān)控val_loss_coordearly_stopping EarlyStopping( monitorval_loss_coord, # 自定義 metric需在 compile 時(shí)注冊(cè) patience15, verbose1, modemin, restore_best_weightsTrue ) model_checkpoint ModelCheckpoint( best_yolov1.h5, monitorval_loss_coord, save_best_onlyTrue, modemin )要讓EarlyStopping識(shí)別val_loss_coord需在compile時(shí)注冊(cè)自定義 metricdef loss_coord_metric(y_true, y_pred): # 復(fù)制 loss_coord 計(jì)算邏輯返回 scalar # 代碼同 loss 函數(shù)中 loss_coord 部分略 return loss_coord_scalar model.compile( optimizeroptimizer, lossyolo_v1_loss, metrics[loss_coord_metric, accuracy] # accuracy 此處無(wú)意義僅為占位 )5. 模型推理與結(jié)果可視化從 raw output 到可交付檢測(cè)圖的全流程訓(xùn)練完的.h5模型不能直接用于檢測(cè)必須經(jīng)過(guò)后處理Post-processing才能得到人類(lèi)可讀的 bounding box。本方案的inference.py封裝了完整 pipeline。5.1 Raw Output 解析從(7,7,30)到候選 bbox 列表模型輸出pred model.predict(img_batch)后pred是(1,7,7,30)。解析步驟如下def parse_prediction(pred, S7, B2, C20, confidence_threshold0.3, iou_threshold0.4): # pred: (1, 7, 7, 30) pred pred[0] # (7, 7, 30) bboxes [] for i in range(S): for j in range(S): # 取該 cell 的兩個(gè) bbox 預(yù)測(cè) for b in range(B): # 置信度 conf pred[i, j, 4 b*5] if conf confidence_threshold: continue # 中心點(diǎn)相對(duì)于 cell x_cell pred[i, j, b*5] y_cell pred[i, j, b*5 1] # 寬高相對(duì)于整圖 w pred[i, j, b*5 2] h pred[i, j, b*5 3] # 還原到整圖坐標(biāo) [0,1] x (j x_cell) / S y (i y_cell) / S # 轉(zhuǎn)為 (xmin, ymin, xmax, ymax) 歸一化坐標(biāo) xmin max(0, x - w/2) ymin max(0, y - h/2) xmax min(1, x w/2) ymax min(1, y h/2) # 類(lèi)別概率20 維 class_probs pred[i, j, B*5:] cls_id np.argmax(class_probs) cls_score class_probs[cls_id] final_score conf * cls_score # YOLOv1 的最終置信度 obj_conf * class_prob if final_score confidence_threshold: bboxes.append([xmin, ymin, xmax, ymax, final_score, cls_id]) # 轉(zhuǎn) numpy array 并做 NMS if len(bboxes) 0: return [] bboxes np.array(bboxes) keep non_max_suppression(bboxes, iou_threshold) return bboxes[keep] def non_max_suppression(bboxes, iou_thresh): # 標(biāo)準(zhǔn) NMS 實(shí)現(xiàn)按 score 降序計(jì)算 IOU抑制重疊 # 代碼略詳見(jiàn) utils.py pass注意final_score conf * cls_score是 YOLOv1 的核心設(shè)計(jì)不是后加的 trick。conf表示“這個(gè) cell 里有物體的概率”cls_score表示“這個(gè)物體是某類(lèi)的概率”二者相乘才是“這個(gè) bbox 是某類(lèi)物體的置信度”。漏乘會(huì)導(dǎo)致高 conf 低 cls 的 bbox 被保留檢測(cè)結(jié)果全是“疑似物體”。5.2 可視化腳本支持 OpenCV 與 Matplotlib 雙引擎為適配不同環(huán)境服務(wù)器無(wú) GUI / 本地調(diào)試visualize.py提供兩種模式def draw_bboxes_cv2(image, bboxes, classes, colors): # image: (H,W,3) uint8 h, w image.shape[:2] for box in bboxes: xmin, ymin, xmax, ymax, score, cls_id box # 歸一化坐標(biāo)轉(zhuǎn)像素 x1, y1, x2, y2 int(xmin*w), int(ymin*h), int(xmax*w), int(ymax*h) color colors[int(cls_id) % len(colors)] cv2.rectangle(image, (x1,y1), (x2,y2), color, 2) label f{classes[int(cls_id)]}: {score:.2f} cv2.putText(image, label, (x1, y1-10), cv2.FONT_HERSHEY_SIMPLEX, 0.5, color, 1) return image def draw_bboxes_plt(image, bboxes, classes, colors): # image: (H,W,3) float32 [0,1] plt.figure(figsize(12,8)) plt.imshow(image) for box in bboxes: xmin, ymin, xmax, ymax, score, cls_id box rect patches.Rectangle((xmin, ymin), xmax-xmin, ymax-ymin, linewidth2, edgecolorcolors[int(cls_id)%len(colors)], facecolornone) plt.gca().add_patch(rect) plt.text(xmin, ymin-0.02, f{classes[int(cls_id)]}: {score:.2f}, colorcolors[int(cls_id)%len(colors)], fontsize10) plt.axis(off) plt.show()5.3 檢測(cè)性能評(píng)估m(xù)AP 計(jì)算的輕量級(jí)實(shí)現(xiàn)本方案不依賴(lài) pycocotools安裝復(fù)雜而是用sklearn.metrics.average_precision_score實(shí)現(xiàn) VOC 風(fēng)格 mAPdef calculate_voc_ap(precisions, recalls): # VOC 11-point interpolation ap 0 for t in np.arange(0, 1.1, 0.1): if np.sum(recalls t) 0: p 0 else: p np.max(precisions[recalls t]) ap p / 11.0 return ap def evaluate_model(model, test_generator, classes, iou_thresh0.5): all_scores [] all_labels [] all_dets [] all_gts [] for i, (x_batch, y_batch) in enumerate(test_generator): preds model.predict(x_batch) for j in range(len(x_batch)): # 解析 pred[j] 得到 det_boxes det_boxes parse_prediction(preds[j:j1], ...) # 從 y_batch[j] 解析 gt_boxes逆向 preprocess_image gt_boxes decode_label(y_batch[j]) all_dets.append(det_boxes) all_gts.append(gt_boxes) # 計(jì)算 per-class AP aps {} for cls_id in range(len(classes)): scores, labels [], [] for dets, gts in zip(all_dets, all_gts): # 計(jì)算該類(lèi)別的 TP/FP/FN tp, fp, fn compute_tp_fp_fn(dets, gts, cls_id, iou_thresh) scores.extend([det[4] for det in dets if det[5]cls_id]) labels.extend([1 if tp_i else 0 for tp_i in tp]) if len(labels) p a hrefhttps://download.csdn.net/download/2401_87496566/89843308 stylecolor:#ec7500;font-size:14px; 本文還有配套的精品資源點(diǎn)擊獲取 /a img altmenu-r.4af5f7ec.gif srchttps://csdnimg.cn/release/wenkucmsfe/public/img/menu-r.4af5f7ec.gif stylewidth:16px;margin-left:4px;vertical-align:text-bottom;cursor:text; /p
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
国产精品视频内谢女人| 九九热男人天堂| 精品人妻av在线播放| 欧美日韩另类在线播放| 99热这里只有精品1| 少妇高潮流水av免费| 欧美色五月| 久久久久久久六六| 欧美,日韩综合久久| 91久久国产综合久久| 超碰欧美97资源| 国产高清精品一区二区三区毛片 | 后入国产| 日本熟妇一区二区三区| 国产精品久久久久久久久久久久久久吹| 思思热免费视频观看| 夜夜爽夜夜摸夜夜操免费视频| 黄色AAAAA欧美| av 模特一区了| 欧洲成人性爱视频| 另类欧美色| 午夜福利成人免费视频| 少妇熟女视频一区二区三区 | 亚洲双插| 亚码激情| 蜜臀无码视频在线观看 | 婷婷在线精品| 麻豆av一区二区| 五月激情小说| 强奸乱伦免费网站| 男女性扦B| 国产欧美岛国精品一区| 伊人网在线点播| 亚洲日韩精品在线播放| 免费在线视频97| 九九九九九九九精品视频| 超碰久超碰久| av在线人气| ji熟女.com| 天堂射| 国产亚洲中文不卡二区| 人妻天天爽夜夜爽2| 欧美日韩性爱无码| 欧美偷拍| 丝袜综合| 色综合一区二区三巨| 蜜乳视频网站| 91热热色| 欧美色图 人妻| 国产美女mm131爽爽爽爽| 怡红院成人视频| 麻豆蜜桃视频在线观看| 大香蕉黄色一级片免费看| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师 | 亚洲图片小说欧洲| 亚洲91网站| 操美女人妻| 国产AB视频| 国产精品白领在线观看| 人妻-91porn| 日韩少妇无码| 日本免费一区二区不卡| 日欧美色| 久久99综合| 免费在线视频97| 99热啪啪| 欧美性爱一区二区| 白嫩少妇| 欧美片第一页| 伊人在线大香蕉视频久久| 久久久中文| 久久黄色视频一区二区三区 | www.av在线视频| 大香蕉伊人75| 日日干夜夜骑| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 亚洲 暴爽 AV人人爽日日碰| 女人18精品一区二区三区| 国产精品91一样| 亚洲中文国际强奸字幕| 亚洲精品国产无码高清| www国产精品| 欧洲与亚洲欧美精品中文字幕| 日本色色色| 97 视频在线| 婷婷午夜清品久久久久久久性色视频观| 日韩精品中文字幕一| 成人精品久久久午夜福利| 日韩中文字幕精品一区在线| 国产精品经典一卡久久久 | 97日视频| 欧美激情片一区二区| 激情丁香五月婷婷| 日本欧美国内在线| 欧美日韩性爱操大逼| 波多野结衣之双飞调教在线播放| 骚女天天综合网| 69丨亚洲丨精品丨入口免费播放| 亚州男人的天堂| 97久久精品国产| A久久| 大伊香蕉在线视频免费| 加勒比久久综合网高清| 先锋影音av先锋一区| 99re9| av凤凰久久久| 日日碰狠狠添天天爽超| 日韩乱插| 天天干天天日天天射黄色大片| 欧亚久久偷拍视频| 国产精品懂色tv影视免费观看 | 嗯嗯啊啊啊好舒服| 人妻丝袜肏逼| 中国女人内射6XXXXX| 9超碰免费| 2017av无码免费无线播| 天操天操夜操夜月操月年年操| 亚洲成人ab| 国产精品嫩草久久久久| 91碰碰| 欧美成人黄网色网站| 亚洲一区亚洲天堂| 大香蕉乱伦视频网| 偷拍片久久| 久久AV无码网址| 五十路成人在线视频二区三区| 久久久久国产精品喷潮免费观看臀| 色综和网| 中文字幕 国产区| 欧美亚洲手机在线| 婷婷综合五月| 午夜舔阴达高潮视频免费看| 欧美精品三区| 欧美啪啪啪91| 亚洲天堂,男人| 国产精品久久久久无码Av网曝门| 国产天天噜一噜久久久| 久操com| 超碰 另类 欧美| 国产高清无码一区二区三区四区皇冠| 天天草AV| 天天躁日日躁XXXXYY| 成人毛片免费| 精品人妻无码一区二区三区不卡-精品人妻无码一区二区...|精品少妇一区二区三 | 国产AB视频| 超碰97久久| 亚洲一欧洲中文字幕在线| 欧美另类色图片| 欧美在线亚洲| 亚洲综合一区二区| 四虎884| 全免费a敌肛交毛片免费| 快点操死我| 青娱乐休闲视频在线观看| 欧美中出1| 九九九国产精品| 色五月av| 超碰97人妻| 成人影 天天操 亚洲| 午夜舔阴达高潮视频免费看| 九久9热| 看日韩黄片| 中文字幕乱码人妻一区二区三区,99精品| 校园春色亚洲色图| 国产欧美伊人| 少妇无码av专区线| 茄子社区国产精品| 97色婷| 人妻9117c| 上海一级黄片| 亚洲精品熟妇1区2区3区。| 日本熟妇人妻中出视频| 天天综合网~91综合网| 综合av社区| 丁香五月影院| 天天日夜夜爽| 亚洲毛片基地专区| 国模精品娜娜一二三区| 久久毛卡| 欧美性暴力猛交XXXX | 欧美综合自拍| 超碰97起碰| 超91综合网| 蜜臀无码一区二区| 精品无码一区二区人妻久久蜜桃| 欧美亚州色的图| 大香蕉黄色一级片免费看| 国产中文大片资源中文字幕| 亚洲 日韩 丝袜 熟女 变态| 欧美婷婷五月天| 午夜天堂啪啪| 艾草av| 亚洲自拍一区夜夜操| 操一区| 欧美综合网1| 人人妻人人爽| 很很操在线| 中国少妇XXXX做受| 五月花婷婷| 制服少妇欧美| 亚洲骚男同com| 天天综合网~91| 岛国免费黄色网址| 国产福利小视频高清在线观看| 这里只有精品视频在线观看麻豆| 人人摸人人添人人操 | 91岛国动作片| 秋霞网—男女啪啪亚洲免费体验区| 日韩欧美tv一区二区在线观看| 日韩少妇一区二区三区| 黄色小说亚洲| 成人草草视频| 思思久热在线精品66| 黑人操一区二区| 色婷婷基地| 九九热AV| 久久久久久久久久久久久9999| 97 国产一区| 久久精品国产亚洲AV先锋| 又粗又长又爽在线观看| 黑丝少妇在线观看| 亚洲色图欧美色图在线播放| 久久久精品网站| 欧美aaaaaaa| 日日干夜夜操视频h| 欧美性少妇| 久久XX| 色哟哟1区2区| 国产日韩欧美亚洲精品95 | 国产小炒后入式| 久久精品国产Aⅴ| 天天日日夜夜| 88在线一区二区三区| 超碰免费人妻人人| 欧美日韩情色一区二区| 国产成人拍国产亚洲精品| 五月丁香六月婷综合成人综合| 国产 大胆 对白| 88xx成人精品视频| 男人兔费天堂| 久久尹人大香焦视| 色婷婷狠狠| 密臀视频三区免费网站| 偷拍 精品 另类 四区| 久久69| 大香蕉啪啪啪啪在线| 久久中文字幕一区不卡| 天堂精品小草| 欧美视频在线视频免费va| 精…码一二三区| 91欧美| 婷婷爽人人婷婷爽视频| 91丝袜激情在线| 高跟丝袜AV专区国产| 久久啊啊| 欲色啪| 91xingse| 99国产在线 精品 视频| 久操免费观看| 99国内精品| 韩国午夜理伦三级好看| 96国产精品| 五月天色图| 大香蕉五月天婷婷| 大香焦A片| 国产精品午夜AV完会免费| 国产超碰在线一区| 欧美日韩精品一区二区三区高清| 人人操人人93| 美女让帅哥通她小鸡鸡| 97青青操视频| 久久九色| 国产欧美亚洲精品a第2页| 十八禁啪啪视频| k频道色撸撸| 禁十八久久| 午夜婷婷| 日韩中文字幕视频在线观看| 天天看天天日天天操| 物业黑人 AV一区| 欧美性爱一区二区三区四区| 在线观看日韩av不卡| 亚欧免费| 色淫网站优优视频| 色www精品视频在线观看| 国产精品97超碰| 欧美日韩精品国产91| 欧美,日韩,亚洲视频| 国产丝袜美腿美女麻豆| 日韩精品.久久精品.AV女优.天美传媒| 中文操嬖片。| 国产综合网站在线播放 | 在线情色电影 91大| 小草精彩毛片| 亚洲中文字幕乱码无码一区二区| 怡红院怡春院| 欧美日韩人人精品| 97精品国产97久久久久久免费| 色五月综合| 久久99热这里只频精品6学生| 99操视频| 色婷婷aV一区二区三区麻豆综合| 日韩欧美成人大香蕉| 99热免费精品| 黄色一区三区| 天海翼久久| 天天在线91| 操淫穴亚洲五月丁香| 超碰碰小说97| 亚州色综合| 资源新线在线天堂| 啪啪啪精品| 樱花蜜乳av| 婷婷丁香九月| 国产乱人伦AVA麻豆软件.| 午夜福利免费精品视频| 久久熟女人| 成人精品一区二区三区| 中文熟女五十乱码在线| 亚洲日本大香蕉1| 91制服丝袜中文字幕| 欧美色乱| 最新国产精品久久精品| 97福利视频| 久久草草欧美精品| 青娱乐手机日韩在线视频| 清纯唯美第一页| 久久久久免费看少妇A片特黄| 天天综合精品| 久久成年精品| 亚洲日韩资源| 在线看片国产精品每日更新| 99热综合在线| 日韩噜噜69| 无码不卡亚洲成?人片| 日本免费亚洲欧美| 久操操| 美女t无毒不卡不卡| 国产精品亚洲无码| 91亚洲影院综合| 亚洲久久久久| 91一起操| 亚洲狠| 隔壁邻居波多野结衣中文字幕| 性videos欧美熟妇hdx| 日韩人妻无码不卡网站| 国产操偷| 亚洲男人天堂视频| 人人看黄色视频| 日韩国产品视频中文字| 少妇高潮一区二区三区在线| 性爱乱伦一区| 加勒比av官网在线| 欧美极品性爱天天射| www.99热| 91精品导航| 天天爽天天爽| 欧美牲| 亚洲色图欧美色图制服丝袜| 午夜小电影在线插入淫高潮| 九九av| 国产自偷| 久久黄黄| 国产精品久久99日日| 操美女人妻| 免费的黄片有限公司| 欧洲综合视频| 亚洲无码免费看| 夜夜欧美| 日日夜夜草草草| 99热只有这里有精品| 操人91| 99久久久无码国产精品性啊聊| 久久久久久久久久久久久9999| 日韩色| 大香蕉啪啪啪啪在线| 色久桃花影院在线观看| 亚洲黄色电影| 欧美日日夜夜| 浪人综合网| 啊啊啊草死我| 亚洲图片视频小说| 亚洲大色堂| www久久久| 无码高清操逼| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区 | 日本天天人人狠狠在线日美女| 特级特黄一级毛片免费| 97爱综合| 久久久久久九九九九九| 极品AV网站在线观看| 欧美专利1区2区3区4区5区免费| 日韩欧洲操屄视频| 亚洲日本大香蕉1| 精彩国产视频播放1区2区| 岛国艾薇凹凸视频天堂| 中国少妇XXXX做受| 午夜传煤十二区精品| 九九热超碰97亚洲最新香蕉| 日韩无码嘿咻黑热久| 蜜桃臀 后入 一区 二区 三区 在线| 欧美亚洲素人制服精品| 国产女人视频三四五区| 啊啊啊啊嗯嗯在线久久久| 日本最新免费韩国1区2区视频播放| aaaa少妇高潮大片| 天堂无码精品国产久| 亚洲无码 国产无码| 91色宗合| 欧美色图亚洲色| 亚洲资源站| 欧美少妇高潮视频| 97国产伦理| 加勒比AV天堂| 青青欧美| 亚洲亚洲亚洲天堂天堂| 精品网站99999| 欧美日韩一干二干| 91天天爱| 欧美激情亚洲情色| 男女性扦B| 天操天操夜操夜月操月年年操操| 久久九九久精品国产尤物|国产精品爽黄69天堂A片潘金莲,国产亚洲精品第一综合 | 岛国AV一区二区电影| 精品超碰中文在线| 中文字幕一二三区| 韩国轻伦国内自拍一区| 东北女人| 色天欧美| 超碰97 线线 在现| 久久春色| 神马久久久久久伦理片| 国产精品无码在线| 首页亚洲国产高跟丝袜诱惑视频| 啊啊啊操一区| 欧美熟妇视频| 18岁禁 茉莉成人久久| 欧美天天在线| 国产在线综合福利网站| 伊人一级免费黄片| 手机在线视频国内精品| 国产女人91精品嗷嗷嗷嗷| 婷婷久久久| 白丝AV网站| 色综合超碰超| 欧美色图亚洲激情| 国产成年女黄特黄| 精品成人av一区二区三区在线| 十八禁网站在线| 久久精品无码熟妇一区二区三区视频导航| 草草电影院| 亚洲精品亚洲人成人网| 国产精品亚洲四五区在线观看| 呦女网站| 日本操逼视频不卡直接放| 九九热精品| 精品久久艹| 眼镜人妻101.com| 蜜臀久久一区二区| 97就爱干| 欧美色视频在线| 大香蕉伊人一区在线观看| 玖玖爱视频网站| 26uuu国产免费观看| 亚洲免费日韩在线一区二区| 一区二区高清视频| 日日狠狠久久偷偷色综合免费| 97精品综合久久网| 在线视频亚洲无码| 久久久草成人网站久久久草成人久久久草久久久 | 国产精品免费视频不卡| 青青欧洲黑| 欧美日韩在线国产在线| 国产精品久久久久久夜夜夜| 黄页av| 丰满人妻-区二区三区免费| 久操视频这里只有精品| 欧美另类色图片| 亚洲在线a| 乱人伦 国语对白:视频直接看| 中文字幕第95页| 日韩性爱小视频在线观看| 男女香蕉一区二区| 手机看片1024你懂的国产| 最新精品久久蜜桃| 黄色片,com| 黑丝制服中文字幕| 一区在线观看中文字幕| 欧美亚洲丝袜人妻制服中文99| 99成人| 1769一区| 日韩中文9| 丁香六月婷婷综合| 免费视频在线一区二区不卡| 人妻一区久久二区三区色播| 操迟操逼在巾线Fre看| 亚洲色图第一页| 亚洲无码一区二区三区三州| 国产色图乱伦| 加勒比人妻综合| 看日韩美女二区三区免费操逼视频| 精品性爱| 嗯嗯啊啊好大好爽| 九九九网页| 色欲蜜臀AV| 青青色在线观看| 天天看高清麻豆| 桃花色涩综合影院| 久久专区| 热热色国产一二区AV| 麻豆av一区二区三区| 99国产精品视频尤物| 五月天婷婷社区| 99999久久久久9国产精品| 国产亚洲性生活视频播放| 51一区二区三区| 欧洲精品网| 高清不卡视频| 四虎视频在线观看| 第二页中文字幕| 日日操丁香五月天| 另类av天堂| 色天天野狼综合社区| 亚洲 欧美 小说| 九九九九久久久| 激情五月天社区| 国产人妖的免费的视频| 大JI巴好深好爽又大又粗视频| 91影视亚洲| 欧美国产有色电影| 日韩强奸av| 日韩精品资源专区二区| 人人妻人人爽| 亚洲 欧美 第一页| 97在线免费视频观看| 久久久久久人体| aV中文麻| 果冻传媒A片麻豆熟妇人妻| 免费精品人妻一区二区三| 在线岛| 综合伊人激情| 亚洲成a人片在线观看中文!!!| 午夜福利1区2区3区| 久操网址| 3p国产欧美99热| 精品久久人妻成人网| 国产懂色精品国产av| 久久亚洲精品成人av| 丁香婷婷久久 | 国产精品人妻无码久久久互動交流 | 好吊色综合| 欧美一区二区一级岛国大片| 操逼啊啊啊91| 国产精品自拍欧美在线| 爱av免费| 日韩AV电影网站| 这里是精品| 91狠狠狠| 精品人妻中文字幕高清| 国模私拍一区二区三区神乳| 亚洲另类电影| 按摩中文字幕| 婷婷15月天青娱乐| 欧美少妇人妻| Sekablack无码一区| 18禁免费视频| 亚洲综合五月天| 国产久久视频| 欧美+日产+中文| 成人性爱av.com| 免費人妻夜夜爽天天爽爽一区| 老熟妇一区二区三区| AAAA级日本片免费视频| 午夜福利成人免费视频| 国产性感在线观看| 搡老女人老熟女91| 国产 日韩 欧美 中文 另类,国产 欧美 另类 制服 变态,高清 日韩 欧美 中文,高 | 超碰无码加勒比| 校园春色制服丝袜中文字亚洲| 久久人妻一区二区三区高清| a男人的天堂久久一级A毛片| 调教熟妇 久久久久久| 国产妇女精品视频青青草| 秋霞Av理论一级在线| 色情综合网| 色香网| 国产精品视频精品一二| 吉田爱美AV在线| 97爱亚洲| 久热久一区二区三区| 欧美淫乱视频| 全免费a敌肛交毛片免费| 欧美久久婷| 97这里只有精品| 亚州操操穴网| 熟妇乱伦一区二区| 清柠毛片| 日本道不卡| 精精品人妻一区二区三区| 久99热| 成人性交午夜免费片| 97亚洲综合电影| 日韩黄色片子| 色爽——AV| 久久精品国产72国产精品福利| 干妹子| 丝袜夫妻自拍| 亚洲国产欧美一区二区潘金莲 | 热久久九九热| 国产色呦呦| 2017天天拍大香蕉| 性色avv| 免费一级精品啪啪视频| 97超色| 丁香六月婷婷久久综合| 香蕉黄色一级视频| 好吊爽好吊爽在线视频,中文字幕精品一区二区日本,国产良妇出轨视频在线观看, | 黄色AAAAA欧美| 久热99999| 素人播放一区| 国产91啪| 亚洲春色一区二区三区| 国产后入内射| 久久久久久久 九九九九九九九| 乱伦av国产| 东京热毛片177b2viP| 国产小炒后入式| 思思热免费视频观看| 国产欧美在线观看免费观看| 国产免费一区| 夜夜嗷嗷一区二区| 日韩中文字幕二区| 在线观看高清AV| 97国产精品视频| 四虎精品一区| 欧美大干日韩| 美欧老女人97| 久久夜嗨| 99国内精品| 国产成人在线观看综合| 日本护士高潮| 超碰人妻久久| 好爽免费视频,| 97日本超碰综合| 丁香五月天堂网| 欧美日韩一区二区三区四区蜜桃| 阿姨一区二区免费视频-高清正片西瓜视频下载app-T450AV | 人妻在线大香蕉| 在线观看日韩av不卡| 综合97亚洲| 色哟哟 日韩精品| 色色色99| 亚洲一区二区三区婷婷| 97精选久久| 另类专区加勒比| 欧美日韩美女精品久草一区二区三区| 亚洲欧洲久久天堂| 中国黄色特级精品一区二区三区片| 嗯嗯啊啊好疼| 亚洲s色图| 嗯嗯啊啊的视频| 久久9免费视频| 国产91美女视频| 中文字幕AV中出| 欧美综合另类| 欧美亚洲一级在线观看| 18禁免费视频| 啪啪AV导航| 欧美精品999| 97资源超碰| 后入 亚洲 美女 射| 中文字幕片| 一区二区三区 丝袜高跟| 亚熟hd视频在线| 亚洲亚洲亚洲天堂天堂| 蜜臀久久99精品久久久久久-DVD原版全| 男人天堂网站| 国产超碰| 国产人妻精品久久久一区二区三区 | 乱人乱色一区二区三区免费| 青草精品视频一日本久久久久网站| 久久系列| 国产尤物AV尤物在线观看不卡| 婷婷天堂站| 色偷偷色偷偷欧美日韩| 日韩欧美中文字亚洲慕| 91狠狠| 亚洲日本韩国在线| 看看小穴| 中文字幕激情小说| 大香网站| 久干网| 久久久9999| 一区二区三区精品视频| 亚洲AV乱码专区国产噜噜亚洲| 九九久久国产精品怡红院| 免费无码国产精品v片在线观看| 色婷婷狠狠| 亚洲综合草草| 中日韩熟女| 青青草精玖玖69精品| 欧美亚州综合网图片| 久久久久九九九| 亚洲中文电影| 一二三区操逼国产91| 狼人久草| 欧美综合色图片| 懂色AV蜜臀无码精品APP| 91nbbbbbb| 家庭乱伦国产| 国产天天骚| 国产精品人妻无码久久久互動交流| 欧美综合骚| 欧美 亚洲 第一页| 五月婷婷大香蕉| 欧美色图20P| 天天干人妇| 欧美大的香蕉有线电视视频| 91色艳| 搡老熟女免费视频| 青青操在线亚洲视频观看欧美在线| 欧美黄色片在线播放| 人妻在线大香蕉| 中文自拍欧美影视| 夜夜精品视频一区二区| 殴美在线AⅤ| 96国产精品| 日日夜夜干| 亚洲中文字幕在线视频一区二区| 嗯嗯嗯啊啊啊操的我好爽| 国产日韩色综合| 亚洲综合射| 爱我干综合| 免费国产视频| 亚洲熟久久| 日本三级大片| 激情天天视频| 精品丰满熟妇人妻一区| 夜夜嗨一区二区| 国内偷自视频区视频综合| 欧美在线视频观看一二三四区高清| 久热9| 性无码专区2020| 一二三四区电影| 成人精品视频一区二区| 欧美日韩国产高清在线一二三区| 天天综合官网| 9 1超碰九色| 不卡码视频| 亚洲欧美大香蕉| 国产亚洲精品美女久久久m| 精品日日人妻| 99国产精品自在自在| 成人夜夜爽| 国产精品免费美女视频| 囯戸精品高潮呻吟旡码| 啊啊啊慢点| 亚洲文学偷乱拍啪啪啪啪| 亚洲精品丝袜| 日本三级韩国三级99| 热99这里只有精品| 免費黃色視頻觀看一| 老熟女乱伦一区| 婷婷色综合欧美日韩| 天天操熟妇| 加勒比色综合| 嗯~啊~快点 死我视频免费看网站| 久久久久久夜夜夜夜夜| 日韩另类色图| 亚洲综合成人网| 亚洲午夜福利视频| 欧美天天谢综合网| 中文字幕加勒比海高清无码免费视频 | 99热这里只有精品99| 亚洲高清无码免费观看视频| 艹比视频国产精品| 免费又黄又裸乳的视频| 欧美,日韩,亚洲视频| 国产一区二区欧美日本| 97国产成人精品免费视频| 国产亚州精品美女久久久免费| 香蕉人人操tv| 欧美一区二区三区日韩| 日本123区操B视频| 精品国产乱码久久久久久久久1 | 超碰在线97国产| 色呦色呦色精品| 97超级色碰碰| 青青青青操国内视频在线| 97欧美| 亚洲色系另类精品国产| 日韩人人精品| 欧美91在线| 97色伦97色伦国产欧美| 青椒国产97在线熟女| 久久婷色| 人人喜人人妻| 久久久久久裸体| 蜜臀久久99精品久久久久久| 97色伦97色伦国产欧美| 国产热RE99久久6国产精品首| 激情婷婷五月天| 91夜夜蜜桃臀1区2区3区| 久久人体一区二区| 麻豆天美91| 中文字幕亚洲在线一区| 不卡九肏| 国产精品在线免费| 国产高清吃奶免费视频网站| 亚洲各类熟们中文字幕| A啊啊在线观看| 久久日韩肥臀| 无码免费精品高清| 久久久国产精品人妻丝袜| 精品国产乱码久久久久久久久久毛片 | 特污免视频| 97啪啪| 97国产色综合| 久久在线观看免费视频| 久久一级无码精品毛片6| 亚洲性爱乱操x| 91美女视频电影| 免费久久一级毛片大黄| www色日本| 9 9无尺码天堂网| 色吧5亚洲| 蜜桃久久综合视频| 五月婷亚洲精品天堂| 熟女视频久久| 午夜精品久久久99热蜜桃的功能特点| 天天色天天干天天射| 国产福利夜| 婷婷干黄色| 亚洲淫乱骚妇AV| 乱伦一二三| ai欧美亚洲小说| 中国国国产一级特黄毛片| 超碰伊人在线| 人妻丰满熟妇一区二区三| 青娱乐蜜桃臀AV色婷| 98人妻精品一区二区色欲| 东北女人av| 国产AV色黄看到爽| 大香交| 偷窥自拍亚洲天堂网爆| 日韩一级二级三级| Av色五月| 伊人激情五月天一区二区| 中文无线日韩一区| 亚洲激情综合| 亚洲 小说 欧美 激情 另类| 日韩三级性| 人妻中文在线| 很很操在线| 成人欧美日超碰| 99热这里是精品| 100啪啪视频大全| 午夜经典| 亚洲欧美爆| 岛国成人av在线播放网址| 偷拍盗拍亚洲色图图片| 国产青视频| 日本午夜精品理论片A级APP发布| 狠狠91| 日韩av电影网站| 精品无码一区二区| 亚洲中文字母在线播放| 精品人妻一区二区三区在| 91/欧美| 久久久久久久久久久六六| 蜜乳av一区二区| 超碰色老头| 91综合天天| 欧洲精品一二三在线| 青青11操操操操操操操操| 国产激情综合| 探花一区在线| 国产精品岛国片在线观看| 国产黄色剧情影片麻豆免费播放| 国产精品夜夜夜| 国产后入清纯| 欧美色日| 97伪v| 美女97超碰| 久久欧美1卡2卡3| 99操视频| 色婷婷久久| 欧美成人性爱视频大全| 手机看片1025| 麻豆国产96在线| 麻豆啪啪啪视频| 亚洲一区二区精品福利| 色欲日韩欧美在线一区| 天天搞在线综合网| 国产一区二区三区影片| 最新中文字幕在线亚洲| 国产99精品一区二区三区免费| 这里只有精品视频在线观看麻豆| 影音先锋乱伦资源| 国产高清免费不卡av| 熟女这里只有精品6| 国产精品黄色三级av| 国产av强奸美女| 性爱av在线免费观看| 激情色色| 婷婷三区| 青娱乐大香蕉| 欧美洲精品一级| 精品少妇99| 欧美伊人久久综合网| www.91理论| 玖玖婷婷五月天| 人人澡综合涩| 啊啊啊啊好大好硬啊啊啊啊啊 | 久久男女激情视频网站| 牛黄色久午久| 国产熟妇一区二区| 亚洲图片视频小说| 麻豆国产97在线| 日韩av在线免费网站| 日本91白丝| 久久精品无码不卡| 欧美国产精品久久九九| 黄色视频特级毛片| 熟女自慰久久久| 欧美色97| 探花激情视频| 色大师网站www永久网站视频| 精品传媒在线一区| 久久香蕉综合一本到3atv| 中文字暮97| 亚洲黄色电影| 亚洲第2页| 亚洲乱色视频一区、二区在线| 玖玖无码超碰| 精品一啪| 久久久∴| 日B操| 久久婷婷色综合一区二区三区| 91插B网站| 小视频玖玖| 欧美亚洲影视| 国内精品嫩模A∨私拍小视频| 大香蕉520| 日本布卡一区二三区| 丝袜美腿制服人妻二区中文字幕| 色999偷自拍拍| 一级特黄aaa大片在线观看成人一级片在线观看 | 亚洲第一页欧美| 精品人妻一区二区三区日产乱码| 久久极品一区二区| 丝袜 中出 制服 人妻 美腿 中文字幕| 在线观看综合精品亚洲| 欧美最大综合网| 人人插人人搞人人操| 国产自偷| 中文字幕二区日韩天堂| 91天天| 日日日啊啊啊| 亚洲图片婷婷五月天| 熟妇高潮精品一区二区三区下载| 国产成人无码啪| 美女网站黄页| 东京热亚洲一区二区| 中文字幕在线观看网址| 久久人妻四季| 亞洲久久直播| 伊人九九九| 97天天弄| 秋霞曰韩R级| 秋霞Av理论一级在线| 熟妇精品juliaannAV| 黑人狂躁日本妞一区二区三区| 青青草依人大香蕉| 打av高清| 欧美麻豆成人同性GⅤ在线| 国内一级精品| 久久久久9999精品九九九| 97精品综合久久| 亚洲熟女乱色一区二区三区| 久久久精品中文字幕麻豆| 狠狠中文字幕| 国人欧美精品一区二区| 97香蕉网| 色色九区| 久久久精品一区二区| 91N五十路| 欧美日综合| 多毛小伙内射老太婆| 亚洲男人电影天堂| 果冻传媒A片一二三区 | 欧美少妇高潮久久91| 婷婷在线播放| 亚洲日韩成人性爱视频| 亚洲高清无毛一区二区| 欧美不卡五十路| 97欧美精品| 色图综合| 另类欧美色| 一本大道久| 9ⅰ久久久天天| 久操网在线| 欧美在线55555| 色av中文字幕| 熟女欧美日韩综合婷婷| 久久久亚洲精品电影免费看| 大香蕉碰碰| 天天摸天天插天天日| 亚洲国产欧美日韩精品一区二区三区,国产一区二区三区在线看片,欧美性猛交 XXX | 香蕉99秘 一区精品蜜桃臀| 欧美色图片欧美色图| 天天干夜夜操一区二区| 天天综合站| 97超碰伊人| 综合色欧美| 精品无码一区二区三区| 中文字幕在线免费观看2| 五月天我淫我色av| 亚洲免费成人精品电影| 26uuu国产成人综合| 国产日韩欧美三级片| 韩国久久97| 精品久久大胆人体| 男人天堂无码| 1240青青草一区二区三区视频天爱| 亚洲av青草久久一区二区| 91春色| 日韩亚洲中文有码视频| 强奸乱伦αv片| 亚洲国产日韩欧美熟妇在线| 东京日日夜夜| 西西美女视频网| 毛片99-全集电影手机免费观看完整-B029AV | 欧美日韩插逼视频| 久久精品店| 大香蕉伊人亚洲| 六月丁丁香| 嫖老熟女A片一二三区| 欧美极品美女aaaaaa级黄片| 亚洲天堂少妇| 久久神马| 岛国艾薇凹凸视频天堂| 欧美躁死她一区二区| 天天操av懂色| 最新欧美色网| 男人天堂日日夜夜| 啊啊啊在线看| 青青草毛片| 最新无码国产| 久久黄色性爱视频| 成人乱码一区二区三少妇| 99热综合在线| 国内外激情在线| 国产一区二区a毛片| 欧美拳交在线播放| 九九九九九九九九九九九蜜桃| 91色色网站| 丁香五月久久| 超碰伊人在线| 国产毛片在线| 97看操| 精品久久久av无码免费| 久热这里| 国语少妇精| 亚洲熟妇极品| 91亚洲在线| 亚洲无套久久嗯嗯| 亚洲人妻久久| 国产后入精品| 熟女探花啪啪| 日本97久久久精品| 欧美A片中文字幕| 91性高| 日韩精品永久在线观看| 综合97久久| 亚洲一区日韩| 国产极品馒头逼| 麻豆福利视频导航| 午夜一区二区三区国产| 超碰伊人在线| 国产乱伦性爱AV| 校园春色五月天| 丝袜综合| 日韩不卡a级视频专区| 欧美日韩妖精91com| 天美传媒一二三区永久网站| 中文视频在线观看| 九九九久久久久| 蜜乳av首页| 人人搞人人插人人操| 亚洲熟女一区| 天天色粽合合合合合合合| 国产中出内射一区二区| 97超碰中文| 青青草自拍视频在线播放| 国产精品白丝在线播放| 影音资源男人日韩| 天天看天天综合成人网| 久久riav中文精品| 青草成人免费视频一com| 亚洲色情在线影视| 九九久久九九久久| 殴美大黄片| 岛国片在线视频网站| 中国韩国明星一极片一区乱码毛片人妻熟女一区二区三区 | 密乳AV免费观看| 亚洲色图一区二区三区| 国产人妻精品一区二区三区秋霞| 青草视频在线看看看看看看看看看| 两女互慰AV高潮喷水在线观看| 九九热精品视频六| 天美传媒AV国产在线| 天天综合精品| 操婷婷逼| 色黄色美女大长腿午夜视频| 国产v亚洲v日韩v欧美v片另类| 97在线播放| 偷拍五区| 91欧美性| 老熟妇一区二区三区啪啪| 欧美日韩夜夜| 欧美日韩国产中文超碰| 男人的天堂啪啪| 大香蕉伊人久久| 噜噜噜噜久久久精品免费| av爱爱爱| 亚洲97在线观看| 日韩超碰97| 国产精品久久久久久久久久久久久久吹| 亚洲,欧美,综合网| 欧美色图片欧美色图| 综合大香蕉美。| 精品国产乱码久久久久久日本公司| 97国产伦理| 亚洲蜜臀精品视频久久| 少妇淫妇久久久久久久| 国产精品久久泡妞网站| 精品九九| 久久国产逼| 成人性爱视频在线看| 欧美成人黄网色网站| 操操啪| 伊色综合天堂色97| 久久久久久久久久久999| 国产在线精品电影观看| 欧美色亚洲色| 亚洲欧洲自拍| 乱伦一区二区三区‘| 国产女性无套 免费观看| 丁香激情网| 91黑丝美女| 99少妇内射| 国产av波波国产精品| 精品久久久亚洲AV成人网站| 久久国产精品91| 黄久久| 婷婷在线视频在线观看| 久热大香蕉| 久久九精品| 欧美97爱|