国产成人欧美一区二区三区vr_久久国产精品人人爽人人爽_国产精品永久免费播放_肉欲啪啪a∨无码精品一区二区_国产超短裙jk丝袜在线_亚洲AV片高清资源在线观看_国模无码一区二区三区久久_国产成年人未进视频_中文字幕无码精品夜_一区二区三区在线视频免费看_亚洲成AV人片在线观看网址_日本激情视频高清综合久久_亚洲午夜视频福利_国内大量揄拍人妻精品視_久久国产精品福利二区三区

ARTICLE DETAIL

資訊詳情

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

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

YOLOv1原理精講:從網(wǎng)格編碼到三路損失的手工實(shí)現(xiàn) 簡介本資源是一份面向深度學(xué)習(xí)初學(xué)者與計(jì)算機(jī)視覺開發(fā)者的YOLOv1實(shí)戰(zhàn)訓(xùn)練指南聚焦于如何基于Keras框架快速構(gòu)建并訓(xùn)練自定義目標(biāo)檢測模型。資源提供完整可運(yùn)行的Keras_YOLOv1實(shí)現(xiàn)含darknet19網(wǎng)絡(luò)定義、train/test腳本及README說明配套圖像預(yù)處理示例jpg、數(shù)據(jù)列表配置txt和模型訓(xùn)練/測試代碼py覆蓋數(shù)據(jù)準(zhǔn)備、模型搭建、訓(xùn)練調(diào)優(yōu)到結(jié)果可視化全流程。壓縮包共11個(gè)文件含3個(gè)Python核心腳本、4張示例圖像原始與檢測結(jié)果對(duì)比、3個(gè)文本配置文件及1份Markdown說明文檔總大小僅128KB輕量易解壓適合本地快速驗(yàn)證與二次開發(fā)。目前已有110人學(xué)習(xí)下載讀者可直接復(fù)用目錄結(jié)構(gòu)與代碼模板省去環(huán)境適配與基礎(chǔ)框架搭建時(shí)間尤其適用于課程設(shè)計(jì)、小規(guī)模工業(yè)檢測場景或YOLO算法演進(jìn)原理研究。1. 為什么還在用 YOLOv1不是為了懷舊而是為了“看懂目標(biāo)檢測的骨架”你可能在 GitHub 上刷到過一堆標(biāo)著 “YOLOv5/v8/v10 最新版”的倉庫點(diǎn)進(jìn)去全是自動(dòng)標(biāo)注、一鍵訓(xùn)練、WebUI 可視化——但當(dāng)你被導(dǎo)師問“YOLOv1 的損失函數(shù)為什么分坐標(biāo)、置信度、類別三部分計(jì)算”“S×S 網(wǎng)格怎么對(duì)應(yīng)到原始圖像坐標(biāo)”時(shí)卻卡在了反向傳播的黑匣子門口。這套基于 Keras 實(shí)現(xiàn)的 YOLOv1非官方復(fù)現(xiàn)但結(jié)構(gòu)清晰、注釋完整不是為工程落地而生而是為“親手把目標(biāo)檢測從頭擰緊每一顆螺絲”而設(shè)計(jì)。它不追求 mAP 多高但強(qiáng)制你手寫grid_cell_to_bbox()、手動(dòng)拆解loss_coord和loss_conf、逐層調(diào)試conv4 → fc5 → output的 shape 變化。適合某高校計(jì)算機(jī)視覺課設(shè)、畢設(shè)中需要完整展示算法原理→代碼實(shí)現(xiàn)→訓(xùn)練驗(yàn)證閉環(huán)的學(xué)生也適合想甩掉 PyTorch 自動(dòng)求導(dǎo)依賴、真正吃透 anchor-free 檢測范式底層邏輯的初階工程師。它不幫你省時(shí)間但它能讓你在答辯時(shí)指著 loss 曲線說清楚“這里第 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)這套方案沒有采用 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 # 邊界溢出跳過真實(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 類別 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 # 類別 one-hotC20此處簡化為單類實(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 層卷積詳見 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ù)測張量的降維與解耦Backbone 輸出(7,7,1024)后Detection Head 并非簡單接一個(gè) Dense 層而是分兩步走先用GlobalAveragePooling2D或Flatten降維再用兩個(gè)全連接層過渡最后輸出(7,7,1470)張量。本方案采用更魯棒的Flatten Dense組合并顯式分離坐標(biāo)、置信度、類別分支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ù)測每個(gè) cell 預(yù)測 B 個(gè) bbox每個(gè) bbox 5 維 (x,y,w,h,conf) C 維類別 # 這里不立即拆分留到 loss 函數(shù)中按索引取保證梯度連貫 return output_tensor注意Reshape((S, S, B*5 C))這一步。很多同學(xué)在這里用tf.reshape或K.reshape導(dǎo)致模型無法保存必須用 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)、置信度、類別三路 loss 的手工拼裝與加權(quán)YOLOv1 的 loss 是其靈魂所在也是最容易翻車的地方。它不是單一 MSE而是三部分加權(quán)和loss_coord: 僅對(duì)負(fù)責(zé)預(yù)測該物體的 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ù)樣本無物體用λ_noobj * (0 - C_i_hat)^2loss_class: 僅對(duì)有物體的 cell 計(jì)算類別預(yù)測誤差。本方案將 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. 類別 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 開始步長為 5取4*B個(gè)元素中的 w,h 維度即索引 2,3,7,8,...。我第一次寫時(shí)漏了:5導(dǎo)致取了全部 8 個(gè)值loss 爆炸。建議在訓(xùn)練前用model.compile(lossyolo_v1_loss, optimizeradam)后先model.evaluate(dummy_x, dummy_y)測試 loss 是否為有限值再開始正式訓(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 開始且必須與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 # 寫入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ò)位。我吃過這個(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ù)測結(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 語義只需 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 無 anchor 機(jī)制無法適應(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”而是一場與 loss 曲線的耐心博弈。本方案的train.py提供了開箱即用的配置但真正決定成敗的是以下三個(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)練易過擬合。4.2 優(yōu)化器選擇Adam 優(yōu)于 SGD 的實(shí)證依據(jù)YOLOv1 原文用 SGD momentum但本方案實(shí)測 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)避坑 / 常見問題 / 排查 / 注意現(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 的無效 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:過濾極小 bbox現(xiàn)象訓(xùn)練 50 epoch 后所有預(yù)測 bbox 的conf都趨近于 0.5class輸出混亂原因lambda_noobj0.5過小負(fù)樣本置信度 loss 權(quán)重不足模型學(xué)會(huì)“保守預(yù)測”對(duì)所有 cell 都輸出中等 conf解決將lambda_noobj提高到1.0或2.0強(qiáng)制模型區(qū)分有/無物體 cell現(xiàn)象model.predict()輸出的(7,7,30)中conf值全為 0 或 1無中間值原因Dense層后未加sigmoid激活conf和class預(yù)測值未經(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)練過程 GPU 顯存占用從 2GB 漲到 12GB 后 OOM原因tf.data.Dataset或Sequence中batch_size過大且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í)注冊 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í)注冊自定義 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 此處無意義僅為占位 )5. 模型推理與結(jié)果可視化從 raw output 到可交付檢測圖的全流程訓(xùn)練完的.h5模型不能直接用于檢測必須經(jīng)過后處理Post-processing才能得到人類可讀的 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ù)測 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) # 類別概率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抑制重疊 # 代碼略詳見 utils.py pass注意final_score conf * cls_score是 YOLOv1 的核心設(shè)計(jì)不是后加的 trick。conf表示“這個(gè) cell 里有物體的概率”cls_score表示“這個(gè)物體是某類的概率”二者相乘才是“這個(gè) bbox 是某類物體的置信度”。漏乘會(huì)導(dǎo)致高 conf 低 cls 的 bbox 被保留檢測結(jié)果全是“疑似物體”。5.2 可視化腳本支持 OpenCV 與 Matplotlib 雙引擎為適配不同環(huán)境服務(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 檢測性能評(píng)估m(xù)AP 計(jì)算的輕量級(jí)實(shí)現(xiàn)本方案不依賴 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ì)算該類別的 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
返回資訊列表
亚洲综合另类欧美久久久| 亚洲97在线观看| www.男人天堂| 国产精品免费美女视频| 国产精品青青草| 亚洲九九视频| 欧美激情性爱视频网站| 中文字幕丝袜人妻| 男人的天堂va在线| 久久老子无码午夜伦不卡| 狠狠亚洲| 日日骚网站| 黄片com.| 国产一区二区在线播放,久久亚洲精品中文字幕第一区,亚洲精品在线中文字幕视频 | 久久精品中文字幕无码l| 国产精品乱码久久久久久久久久久久| 97手机日韩| 你懂得91| 999色欧美中文字幕| 中国少妇XXXX做受| 国产精品suv一区| 人人干黄色| 国产精品肉丝自拍| 成人av性爱电影在线观看| 一品道视频一区二区三区| 丝袜视频网国产90| 国产在线精品偷| 97中文字幕一区| 手机在线看片免费人成视频| 九九九九精品一区| 成功精品影院| 大香蕉专区| 免费亚洲国产精品久久一区| 人人摸人人摸人人干| 中文字幕诱惑制服人妻丝袜美丝袜美| www色日本| 不卡六六在线91| 丁香五月性爱| 97极品无码| 美女超碰978| 免费国产| 久热伊人| 91免费看一区二区三区 | 亚洲精品97| 亚洲色偷偷色噜噜狠狠99网| 欧美组图日韩亚洲中文字幕| 色综合加勒比四四季| 91搞逼视频| 亚洲色悠悠久久88| 偷看洗澡一二三区美女| 久久久91| 综合网久久| 日韩在线性爱免费视频| 欧美亚洲首页| 一本色道久久综合熟妇| 国产男女无套视频免费观看| se..亚洲欧美| 久久一二三四五六七八九区| 日本123区操B视频| 97资源久久| 国产精品九9| 看免费的黄片| 欧美日韩在线小说| 美女主播色欲91抠b在线播放| 亚洲 自拍偷拍 欧美| 加勒比久久av| A久久| 亚洲无992tv| 欧美狠狠鲁| 亚洲乱码尤物193YW| 欧色网址| 久草在| 熟女六十路| 无人区高清电影免费观看一区二区三 www.qmcai2.com | 95人妻爽爽人人做人人澡| 日韩欧美日韩| 加勒比AV天堂| 亚洲91极品| 国产在线强奸视频| 久久九七| 亚欧成人一级片在线播放| 熟女视频久久| 欧美不卡五十路| 欲色啪| 天天做天天爽| 色色网91| 1769国内精品视频| 欧美日韩久久精品爱爱| 精品无码一二三四区| 岛园激情| a男人的天堂久久一级A毛片| 91白嫩| www.AV有限公司一区| 超碰99在线观看| 在线岛| 久久9精品| 青青草国产一区二区三区| 一区二区三区 丝袜 高跟 美腿| 亚洲阿v天堂无码z2018| av黄图片在线观看| 国语精品av| 亚洲s色图| 亚洲天堂女优在线| 色色色综合| 特级毛片特黄久久免费看| 亚洲色图欧美色图另类图片| 麻豆色99999| 亚洲熟妇丝袜在线观看| 婷婷色在线| 中日韩熟女| 家庭乱伦国产精品| 91av一区二区在线观看| 伊人丁香五月婷婷| 日韩视频精品在线观看| 欧美一二三级精品在线| 欧美色图 色综合图| 国产欧美日韩一区二区三区| 国产区日韩区在线观看| 日本一级特级毛片视频| 91成人无码| 国内成人圈中文字幕无码视频| 大香蕉AV丝袜| 这里有精品| 2018色综合天天操| 激情久久久| 十八禁视频网站| 久久青青草原免费视频| 芊芊操逼视频无码| 在线一道啪| 国产特级毛片AAAAAA高潮流水| 日韩欧美加勒比| 国产精品一区二区三区四区五区| 超碰在线日韩一区| 久久久久少妇| 91 丝袜在线播放| 欧洲一区二区三区四区在线观看| 99re综合伊人| 性猛交| 九九九九免费视频| 欧美激情黑人| 亚洲区小说| 午夜视频久久久| 人妻色情天天操| 久久亚洲日韩国产欧| 中文字幕精品专区搜索结果91| 九九自拍伦理| 国产一区二区在线播放| 天堂69亚洲精品中文字| 国产精品亚洲高清在线| 国产精品久久久久久无码红治院| 久久精视频美日韩在线视频| 红杏大香蕉| 日少妇亚洲版| 91美女视频电影| 久久久少妇诱惑精品视频| 啊啊啊轻点在线观看| 欧美综合综合| 女性91网站| 欧美性生活男人的天堂| 久久九九国产精品| 国产农村一一级特黄毛片| 日韩啪啪视频| 宅男午夜在线视频| 91天美传媒在线| 美女网站黄页| 综合欧美亚洲| 操逼操逼视频操逼| 国产成人网站在线观看| 欧美AB在线观看| 亚洲精品骚逼| 国产97av| 日韩综合无码一区久久92| Sekablack无码一区| 亚洲天天做日日做天天谢日日| 1级黄色夫妻对换性交免费看| 亚洲精品性爱片| 可以在线观看的黄色网址| 国产精品成人蜜臀AV在线| a久久| 日本999精品视频| 中文字幕人乱码中文字的预防方法 | 97色欧洲| 三级精品三级在线观看| 亚洲欧美中文日韩视频中国语| 久久久久久午夜男人的天堂| 亚洲www91| 99re99视频在线免费观看| 精品一区二区2| 日韩免费簧片| 99热日本| 操逼无毒无码免费视频| 欧美少妇色图| 五月天黄色激情视频| 人妻出轨一区二区三区| 人妻无码视频一区二区三区久久| 91美| 综合伊人激情| 亚洲综合五月天婷婷丁香| 色呦呦、国产精品| 激情文学小说一区二区| 国产精品成人AV片免费看网站| 午夜后入| 啪啪啪亚欧美视频| hd成人一区二区在线| 亚洲限制级在线| 中文字幕午夜精品久久久| 日韩亚洲欧美中文字幕| www激情| 日本啊啊啊啊啊视频| 大香蕉草草| 久久精品日韩| 欧美亚洲丝袜美女电影| 青青草导航在线视频| 久久性生大片免费观看性| 日韩AV无码中文一区二区| 亚洲熟妇丝袜在线观看| 日韩综合色图| 欧美熟女少妇| 精品人妻一区二区三区不卡断| av无码av无码专区| 天天α片| 人妻精品视频一区二区三区| 91美女中出| 日韩图区| 国产亚洲精品激情| 久久久久ab| 伊人影院日本| 在线啊啊啊啊| 亚欧成人一级片在线播放| 婷婷久月| 天天躁日日躁狠狠狠躁| 成人欧美一区二区三区黑人一| 亚洲91射| 91精品在线播放| 色激情综合网站| 男人天堂一区二区| 久久久无码精品人妻二区| 国产成人自拍视频视频| 天操天操夜操夜月操月年年操| 亚洲丝袜少妇在线| 亚洲 欧美 中文 日韩超碰| a啊啊啊啊啊啊啊啊一区二区| 八人操人人摸人人看| 久久久久921| 黄色AAAAA欧美| 91欧美丨精品丨入口| 日欧操屄| 久久精品国产99国产精品亚洲| 国产自制av蜜乳| 久悠悠av| 欧美性爽xyxOOOO| 99国产在线绯色一区| 测评在线观看AV| 国产精品视频在线观看| 丁香六月婷婷久久综合| 欧美偷| 亚洲国产精品成人无码久久久| 日韩中文字幕av在线播放| 99久国产精品午夜性色福利| 欧美性视频二区三区| 1769精品一区二区三区| 91丝袜美女视频| 国产馆极品诱惑| 人人摸人人入| 大乔未久88一区| 国产区性爱在线视频秋霞豆| 午夜精品久久久久久久第一页按摩| AV九九| 97国产精品在线观看| 亚洲欧洲另类| 亚洲爽图| 亚洲一区二区 麻豆传媒| 强奸乱伦麻豆| 精品999一区二区| 在线女人91| 亚洲 欧美 偷拍 唯美| 欧美洲精品一级| 超碰碰碰碰| 欧洲在线性爱视频| 综合熟妇一区二区三区| 久热69九色熟妇97| 亚洲欧美中文日韩视频中国语| 91麻豆一二三区| 亚洲色色探花| 精品午夜福利导航| 麻豆色99999| 日韩精品人妻系列无码天堂| 激情五月天色色网| 亚欧日韩成人| 无码人妻精品一区二区中文| 久久97视频| 91精品国产乱码| 日韩av色图综合| 乱日视频| 久久女人一区二区三区| 超碰人人干| 色婷网| 乱伦图av| 一牛影视成人片免费| 91少妇高潮| 999熟女精品| 伊人96在线| 东京热AV男人的天堂| 超碰这里有精品| 人妻少妇无码| 亚洲精品97中文字幕| 欧美综合中文| 亚洲日韩精品在线播放| 丰满人妻一区二区三区免费| 一区| 免费a在线播放v| 九九九九AV| 狠狠色综合网| 特级丰满少妇一级AAAA爱毛片| 色青青久久影视| 欧美在线干| 精品福利视频| 国产精品久久久久久久久久久久久久吹| 超碰精品人妻狠狠干| 校园春色综合色| 国产精品宅男免费| 熟女丰满人妻一区| 亚洲中文日韩精品| 99热伊人| 日韩性爱电影一区| 欧美亚州手机在线| 亚州色图欧美| 97国产精品一区| 亚洲好看强奸乱伦| 在线日韩视频| 久操99| 中文字幕、久久精品国产2020、久久综合久久自在自线精品自、亚洲 | 天天日日本| 国产九区| 特色a在线上| 东北丰满熟女国产一区| 狠狠操天天干| 97精品97久久| 偷拍偷窥与盗摄视频专区| 免费伦费视频在线观看| 精品v1区| 天天干夜夜鈤| 亚洲暴力强奸AV| 国产精品情侣啪啪| 91欧美www| 91高清无码下载| 免费9 1久久| 超碰欧美97| 中文字幕在线免费观看视频| 91激情综合| 欧美A片中文字幕| 亚洲丝袜色| 香港久久久| 3p国产欧美99热| 国产精品久久久九九九| 少妇一级无码精品| 日韩小电影| 亚洲熟女乱综合一区二区三区| 欧美另类色| 亚洲精品久| 黄色电影在线播放综合网站| 日本一区视频在线观看| 精品免费1| 天天综合网网欲色| 日韩精品99久久久久久中文字幕| 国产精品亚洲无码| 久久久111| 操屄不卡视频| 亚洲色天堂九9| 3D污黄视频在线观看| 无码区蜜乳| 超碰综合97在线| 综合伊人网12色| 91在线视频免费中出| 黄色成人网久久久久久| 香港成人一级视频在线青青草| 懂色Av| 秋霞一级视频在线观看免费| 一摸二插三插| 天天射,天天操,天天爽-国内精品一区二区三区-成人AV | 五月丁香激情综合网| 久久久啊啊啊| 狼天天狼天天大香蕉| 久久久新亚洲AV| 亚洲情色一区二区三区| 国产原创剧情在线丝袜| 爱爱啊啊啊| 亚码人妻| 久久ww| 大香蕉乱级| 欧美天天在线| 97WW精品| 强奸乱伦大香蕉| 超碰碰97资源站| 亚洲色9| 爱做久久久久久| 粉嫩av一区二区三区天美传媒 | 日本大香蕉综合网| 四虎视频在线观看| 亚洲欧洲综合视频在线| 天天躁日日躁成人字幕aⅴ| 天堂精品一区| 99精品热| 新版天堂中文资源8在线| 九九九精品成人免费视频小说| 91精品久久久久久久久久| 综合色拍| 熟女91网站| 青青色在线观看| 久久久夜夜嗨免费视频| 91久久国产综合精品| 大肥女高潮bbwbbwhd视频| 337p大胆噜噜噜噜噜91Av| 免费无码国产精品v片在线观看| 人人操欧美风骚| 91高清欧美| 日本片日本片祼观看网站在线看中文版网页在线看 | 国产中文精品一区二区在线观看| 亚洲Av诱惑| 日韩伦理久 久久 清纯| 好吊色综合| 午夜福利一区二区三区四区五区色婷婷| 99热超碰| 黄色片A级一区二区三区| 少妇二级| 综合五月婷婷亚洲一区| 91精品丝袜久久久久久| 亚洲男人天堂2016| 综合日本女人伊人| 麻豆啪啪啪视频| 黑人免费福利视频| 丰满人妻-区二区三区免费看| 黄总AV色图| 99热| 一级人妻性爱视频| 久久狠狠色噜噜狠狠狠狠97| 素人伊尹大香蕉免费下载视频| ss久久| 欧美性巨大╳╳╳╳╳高跟鞋| 综合网亚洲| 色臀AV| 大香蕉性欧美| 一区二区播放| 日本最新1区2区3区| 国产精品久久久亚洲一区| 五月色网| 国产精品免费美女视频| 人人摸人人摸人人干| 久操操AV电影| 懂色中文一区二区三区| 可免费观看的av毛片中日美韩| 嗯嗯不要 视频| 亚州性色| 黄色成年| 国产丸一视频| 亚洲天堂一区二区久久| 男人天堂网站| 蜜臀一区二区三区亚洲最新章节在线观看 - 高清蜜臀一区二区三区亚洲全集播放 | 欧色网址| 亚洲天堂人人妻| 九色97| 亚洲操逼无码| 中文字幕在线免费观看2| 蜜汁欧美| 99精品丰满人妻无码| 曰韩精品九九无码| 久久理论字幕视频| 啊啊啊啊啊好大好舒服想要| 黄片不用下载在线观看| 中文字幕三四五区| 日韩欧美偷拍美女视频| 午夜后入| 亚洲综合888| 久久精彩视频9| 99中出在线| 中文字幕 码 自拍 视频 区| 狠狠色婷婷7777久| 另类图片五月| 国产少妇与亚洲av| 国产原创精品| 欧美天天综| 操美女人妻| 蜜臀久久在线视频| 欧美色图 人妻| 久噜噜| 国产乱码久久| 天天天肏屄欧美| 天堂射| 人妻激情偷乱视频一区二区三区 | 五月天大香蕉| 日本综合色图| 色色99| 九九九九精品一区| 人妻天堂网| 超碰免费97| 一级性爱视频免费观看| 干干干天天| 五月丁香综合激情| 黄色不卡视频| 日1区2区3区2020| 蜜桃天美传媒AV一区二区三区| 伊人午夜福利视频| 东北少妇高潮zzzz| 校园春色之综合网| 中出91视频| 福利伊人玖玖国产| 欧美亚洲涩涩| 乱操乱伦AV| 最新国产精品久久精品| 五月天久久婷婷亚洲| 亚洲加勒比| 一区,二区,三区网站| 最新av中文字幕高清| 色天堂综合| 国产浮力影院第1页| 日本二三四区| 国产精品久久久久绯色| 精品少妇人妻av久久免费| 天天综合,91入口| 欧美色偷拍| 国产成人超碰在线| 综合性视频99| 日韩欧美字幕亚洲一区二区 | 久久精品久久久久久久久| 久久久久久9999| 亚洲美女自拍偷拍视频| 欧美日韩中文字幕人妻| 好看的91视频| 色婷婷电影| 亚洲一区二区三区不卡国产欧美| 天天摸天天碰天天添青青| 超碰在线人妻中文字幕| 97 国产精品| 96AV久久久| 欧美一级色| 久草视频观看视频在线| 欧美99999| 欧美色吧综合| 国产精品不卡一区二区三区| 操操AV电影| se吧提供91精品国产91久久久久久| 亚洲操操操无码| 1二区9| 中文字幕精品资源在线| A级国产欧美激情在线| 凹凸 69堂 在线播放| 日产中文字幕2020| 97超碰69| 婷婷久久大香蕉| 国产理论视频在线播放| 日韩成人性日韩成人性爱视频在线免费观看| 天天综合影院91| 国产乱码久久久| 1人人看人人摸人人操| 欧亚洲精品有视频| 99re免费| 美女97超碰| 97超碰超碰| 超碰99热| 久久综合乱子伦国产免费| 国产一区二区在线电影| 二色av| 青青草自拍视频在线播放| 欧美五区| 97超碰9| 岛国黄片网站| 97国产精品一区| 亚洲九九视频| 久久久久婷婷精品av电影| 亚洲91射| 久久精品毛片免费不卡| 天天干一干| 国产AB视频| 国产亚洲精品久久久久小| 超碰碰97资源站| 神马久久啊啊| 欧洲精品久久| 日本免费一区二区不卡| 嗯嗯啊啊视频一区二区三区| 性色av一区二区| 伊人丝袜美腿高跟在线观看高清| 75大香蕉| 日本精品一区二区三| 日本三级精品| 26uuu久久| 欧美αv.com| 99热国产| 色综合中文字幕不卡| 99精品人人爽| 97se亚洲综合自| 黄片qw| 国产亚洲精品无码三区| 自拍大香蕉乱插| 操死我干死我| 人人九九精| 人人操人人93| 欧亚乱色熟女一区二区| 日本韩国一本产品小视频日本韩国一本产品久久久产品小视频日本韩国一本产品久 | 丰满岳乱妇一区二区三区| 国产精品96久久久久久| 成年人黄色小视频网站| 色欲天天综合久久久无码网中文| 久操视频在线| 欧美人妻制服| 精品一区二区三区国产| 91人妻人人澡人人爽人人精品| 国产一区二区三区高清视频| 亚洲国产精品V?在线播放| 国产传媒操逼视频| 国产精品午夜高潮呻吟久久av| 五月综合视频| 国产农村妇女精品一二区| 日日夜夜国产综合| 老熟妇一区二区三区| 夜夜嗨一区| 亚洲男人天堂网| 黑人在线91| 久干网| 91丨九色丨东北熟女| 99RE在线视频精品,这里只有精品| 超碰 另类 欧美 | 久草福利在线资源站| 久久精品中文| 玖玖玖玖精品国产剧情| 美女91色黄18| 免费人成?大片在线播放| 思思热在线视频在线| 色噜噜狠狠色综无码久久合欧美| 欧美熟妇乱码在线一区| 麻豆黄站| 国产中出内射一区二区| 性影在线视频| 欧美激情精品久久久| 亚洲一区二区三区欧美日韩| 97se综合网| 强奸乱伦AV一天堂网| 久久久久久久久久久97| 中文字幕人妻资源在线| 女同性恋一区二区三区精品视频| 青青草原香蕉日本Ap| 欧美国产日韩高清在线| 欧美爱国产综合、| 日本岛国黄色网址| 欧美97av| 亚洲情色一区综合| 国产精品日本无码A片| 国产精品久久久视频| 樱花蜜乳av| 久久久久斤小| 99熟女| 外站AV在线| 欧美制服网站美腿丝袜| 狠狠干91| 日韩 成人 有码| 人人操人人摸人| 99热国产精品| 午夜欧美神马久久久久| 亚洲 无码 偷拍| 亚洲激情深爱文学小说网站| 天堂精品在线| 国产第12页| 综合色区偷拍| 97精品在线| 欧美嗯啊……在线观看视频免费| 国产AV色黄看到爽| 看看日B真人视频| 91亚州日韩高清| 91精品女厕偷拍视频| 深喉吞精| 色九九综合AV| 亚洲五月丁香花狠狠干一区二区三区| 亚洲日韩精品久久久久一区壹牛| 1024午夜激情男人的天堂| 人妻美腿丝袜制服诱惑综合天堂-| 亚洲加勒比| 骚鸭AV| 亚洲美女30b| 一区二区三区精品视频| 特色a在线上| 亚洲欲| 大香蕉男人的天堂| 人妻夜夜爽天天爽麻豆三区网站 | 亚州色图第三区| 激情综合网五月婷婷五月天| 精品综合久久久久久五月天| 午夜精品久久99蜜桃的功能章节| 日本中文字幕一区| 欧美中字二区| 日韩99999色| 校园春色亚洲欧洲| 精品丰满人妻一区二区三区免费观| 亚洲五码一区二区三区| 男人的天堂午夜av| 日本羞羞的视频在线播放| 久久黄人人爽视频| 激情综合 婷婷五月 红杏| avav青青草久久夜| 粉嫩久久久久| 亚洲精品一区二区三区新线路| 日韩精品一二三四| 亚洲精品三| 人人扣人人操| 99爱视频| 人妻天堂综合网| 吉田爱美AV在线| 久肏视频字幕| 五十路成人在线视频二区三区| 热久久无毒不卡| 亚洲欧美另类激情小说| 天天看片青娱乐| 黄色大片视频在线免费看| 日韩综合无码一区久久92| 天天摸夜夜添无码小视频| 美女视频尤物网在线看| www..com操老师| 大香网站| 99性爱| 92人人操人人| 久久极品伊人| 做爱福利视频一区二区| 91欧美性| 天天日天天干天天摸天天操| 俞拍久久国应视频| 国产精品嫩草影院午夜两性| 亚洲AV秘无码一区..| 国产精品蜜乳AV| 久久久久成人蜜桃精品| 国产小炒后入式| 亚洲 欧美 第一页| 日本性感人妻91| 尤物一级在线免费观看| 强上我不卡卡| 欧美小说区视频区| 热99这里有精品综合久久| 国产主播福利| 六月丁香啪啪啪| 97碰碰日本乱偷人妻中文的| 欧美日韩狠狠爱| 亚洲中文字幕久久人妻| 亚洲天堂区| 国产乱码精品久久久久久| 综合亚洲欧美| 5278欧美一区二区三区| 蜜臀AV成人精品蜜臀AV久久| 人妻免费观看| 97国产人人| 丁香九月激情啪| 97热视频在线观看| 午夜男女爽爽爽影院视频| 一区在线观看中文字幕| 97AV在线免费观看| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师黑人潮喷一 | 日本综合久久| 综合国产97| 亚洲资源站| 欧美人妻久久精品二区三区| 久久久久久久久久久人妻| 青青草好吊色| 黑操B| 男人天堂新在线| 亚洲国产成人精品无码专区| 狠狠躁AV| 偷拍亚洲| 亚洲大色堂| 在线观看无码三级少妇| 国产精品熟女九九九| 边做饭边操逼逼| 第45页一区二区| 人妻偷拍一区二区三区| 夜夜狼人妻| 999久久久国产精品| 蜜桃视频精品一区二区| 亚洲女人91| 久久99热这里只频精品6学生| 精品国产Av无码久久久伦古装| 嗯~啊~快点 死我视频| 色网在线视频观看免费| 青青草影视蜜久久| 偷拍欧美激情| 久久久精品电影| 青青青在线高清视频在线一二三四区 | 欧美亚洲性爱一区二区| 国产aⅴ无码片毛片一级网站| 3级毛片一二| 天天摸夜夜摸| 免费看一级a性色生活片久久无| 中日韩免费看男女操逼大全| 久久 亚洲 日韩 人妻| 精品国产久热在线观看| 亚州熟女乱伦| 伊人欧美大香蕉视频| 色综合潮| 五月丁香激情啪啪| 被男人吃奶很爽的毛片| 超碰人人干天天射| 亚洲欧美91√| 国产视频一区二区三区久久亚洲天堂| 国产精品香蕉热久久新品| 日韩综合无码一区久久92| 天天天肏屄肏屄肏屄欧美欧美| 国产精品欧美激在线| 久久婷婷国产一区二区色| 被窝影院午夜看片无码| 啊啊啊啊啊啊啊在线| 夜夜操狠狠操| 日韩操逼HD| 欧美—性—交—色| 九九综合网| 国产精品女同| 人人看人人摸人人色| 亚洲人成网站7777| 青青青青青手机视频| 男人的天堂在线| 人夜夜精品网站香蕉嫩草| 国产家庭乱伦网址| 中文字幕天堂在线| 亚洲狠| 久久久内射良家| 天天干天天日天天射黄色大片| 中国一区二区亚洲人妻| 成人av毛片在线观看| 色妇综合网| 男人天堂网手机版婷婷| 丁香五月天婷婷姐| 夜夜操狠狠操| 中文字幕在线日亚州9| 午夜黄色免费在线观看| 啪啪啪精品视频| 亚洲精品三区在线观看| 日韩成人私密一级精品av| 天天综合网日韩| 亚洲91在线| 天天综合~91| 99re在线| a'v在线资源| 黄片www视频免费| 襙一襙| 69国产对白刺激| 久久国产在线一区二区| 国模无码人体一区二区三| 粉嫩av平台| 强奸国产精品视频| 国产精品婬乱一级毛片彝族| 午夜无码精品免费看性色| 欧美另类精品xxxx| 中文字幕 国产 精品| 毛片电影一区二区三区| 五月综合色| 91色碰| 欧美天堂日韩三级国产传媒| 色好看av| 亚洲AV人人澡人人爱| 国产精品一区二区三区在线| 东京热毛片177b2viP| 久久免费少妇| 欧美成人A√在线一区二区| 国产精品久久久久无码Av网曝门| 三级特黄60分钟播放| 综合欧美日韩在线观看| 吻戏激情性巴克| 日本精品国产视频| 日韩BBN| 久久精品熟妇丰满人妻99| 日韩精品字幕| 国产中文字幕曰本毛片| 67914在线精品观看| 97超碰影音| 欧美片第一页| 欧美性爱在线无码| 亚洲另类综合欧美| 熟妇国产免费一区| 欧美色性情| 国产精品无码av| 天天欧美欧美亚洲网| 超碰97久久观看| 亚洲毛片基地专区| 美女黑人91神马| 国产午夜在线观看| 日韩少妇在线视频| av在线观看不卡网站| 欧美欲色| 91亚洲综合| 天天色综合天天操| 日本布卡一区二三区| 亚洲 日本 一 二 三| 乱伦熟女论坛| 97自拍一区| 新版天堂中文资源8在线| 夜夜高潮夜夜爽夜夜爱爱一区| 日韩欧美女优电影| 亚洲欧美色图小说| 在线播放欧洲免费av| 嗯嗯啊啊操死我| 免费A V在线播放| 国产精品一区二区麻豆| 男人的天堂kva| 久久久国产亚洲精品系列| 国产亚洲综合欧美一区| av天天在线| 国产欧美日本亚洲精品 | 七久久久| 巨乳特殊服务按摩| 热九九精品| 欧美亚洲在线| 操人91| 超碰97综合网| 欧美网站免费| 人妻人久久精品中文字幕| 性做久久久久久久| 午夜精品久久999热蜜桃介男人用| 亚洲AV成人无码一二三久久 | 超碰在线在公开超碰在线在公开| 青青操综合网| 国产一区二区在线播放,久久亚洲精品中文字幕第一区,亚洲精品在线中文字幕视频 | 人妻无码视频一区二区三区久久| 乱伦a片视频| 久久久111| 浪人综合网| 伊人9| 成人国产精品三级A片| 一二区在线观看视频| 97av在线视频| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区 | 影音先锋国产精品| 国产区在线| 9久综合网| 欧美一级在线观看成人| 欧美日韩资源在线| 亚洲精品白浆高清久久久久久| 伊人国产视频| 老熟女乱子伦中文字幕一区二区| 欧美一级专区免费大片 | 激情视频网址| 性猛交| 91九色丨国产丨爆乳| 性暴力欧美猛交在线直播| 91高潮喷水美女| 亚洲AV成人在线| 91色图| 粉嫩少妇自慰在线| 强奸乱伦av电影| 精品国产乱码久久久| 黄色乱论网站| 国产av强奸美女| 精品大全99999| 96精品在线| 少妇一区二区三区高速| 欧美爱国产综合、| 亚洲情色第一页| 国产成人自拍视频视频| 国产av色网| 91在线|亚| 人妻一二三区| 亚洲精品九九九九九九| 97干在线看| 韩国成人精品久久久免费看| 91狠狠综合久久| 免费农村成人少妇人妻Aa一区二区视频| 人人操人人插人人摸人人干| 亚洲综合在线91| 欧色综合| av一区二区三区 中文| 97久久精品| 97se综合| 九色97| 国产成人手机视频激情| 99夜夜操| 日韩视频小说在线观看| 久久久A∨| 亚洲字幕一区二区| 东京热毛片177b2viP| 久草在| 中文字幕人妻丝袜| 成人亚欧免费视频| 超碰95| 97视频新免费| 婷婷综合在线观看| 一区在线国产播放| 在线综合 亚洲 欧美中文字幕| 欧亚 另类 久| 91国产美女丝袜足交精品视频| 99re在线观看| 午夜120视频在线观看| 好色综合| 精品高清牛人盗摄一区二区三区中文字幕A片免费在线观看 | 亚洲欧美一区二区三区在钱蜜桃| 亚洲欧洲精品视频发布| 天天干人人看综合| 中文字幕一区二区三区四五区| 成人天天看站长推荐| 亚洲高潮少妇| 国产日本久久免费精品| AV一区观看| 综合97| 亚洲色欧| 亚洲性少妇| 中文字幕乱碼在线| 免费观看有码高清视频| 粉嫩绯色AV一区二区在线| 亚洲好看强奸乱伦| 久久精品一区二区一8| 夜夜夜夜久久久久| 91美女国产在线| 久久国模av| 亚洲男人天堂网久久| 999久久久精品国产| 久久一区二区三区入口| 欧美日韩亚洲一区二区在线观看| 亚洲无码视频免费在线观看网址!| 97国产|免费| 大香交| 国偷自 一区二区| 国产白丝在线| 人人澡综合涩| 国产性刺激| 在现视频女上位好爽| 99爱在线视频| 五月天啪啪| 99视频精品| 九热视频| JULIA一区二区三区在线播放| 亚洲欧美综合区自拍另类| 一级AV性爱| 69XX一中文字幕人妻91| 乱伦强奸区日韩| 亚洲色图 欧美| 国产一级高清免费观看| 亚洲天堂资源网| 密臀视频三区免费网站| 97中文字幕九区| 97欧美综合网| 校园春色亚洲色图| 亚洲风情在线观看| 天天日夜干| 亚洲欧美日韩激情不卡| 九九九九国产| 亚洲欧美日韩中文播放| 精品无码久久久久久久久果冻糖心| 伊人操| 青青在线视频日韩欧美| 欧美日韩传媒| 秋霞怕怕片| 一级AV性爱| 自拍偷拍亚洲熟女妇人精品| 爽极品影院| 亚洲天堂人妻熟妇视频| 欧美日韩性爱操大逼| 久久精品美女一区| 五月香婷婷| 亚洲综合色男人网| 国产精品肉丝自拍| 亚洲欧洲日产国产综合网| 国产精品久久久久久久久久久久久久久久 | 九月婷婷久久| 99亚亚热| 99啪啪视频| 精品人妻一区二区三区视频| 中文字幕人乱码中文字的预防方法 | 久久精品国产亚洲AV清纯| 免费a级毛片av无码久久精品中文字幕| 狠狠操官网| 日韩av在线免费网站| 岛国片在线观看视频亚洲| 99热精品在线在线| 91女网站| 伦在线97| 亚洲做性| 欧美日韩在线小说| 人人操人人摸avav| 看一级特黄a大一片| 国产动漫操逼视频| 日本一区三级韩国| 樱花草社区www中国| 日韩特一级久久| 91亚洲欧美激情| 在线毛片片免费观看| AV污污污污| 激情五月天婷婷| 少妇人妻无码| 性欧美| 亚洲欧美第一页| 欧美丰满少妇xx高潮| 色情五月综合婷婷| 亚洲精品色| 亚洲精品久久一区二区三区蜜桃臀| 91青青| 伊人一级免费黄片| 国产精品岛国片在线观看| 极品色社| 综合久久99亚洲人妻中文在线| 偷拍导航视频网站| 精品日韩人妻精品一二三区| 亚洲码专区| 亚洲人在线成线成人| 97超碰中文字幕| 综合久久少妇中文字幕| 强奸乱伦中文字幕AV| 97人肏| 91精品免费| 免费精品无码一级毛片牛牛影视| 粉嫩粉嫩一区性色AV片| 亚洲欧美激情另类色图| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师 | 国产99999久久精品| 国产精品久久久 | 久草成人福利导航| 蜜臀久久精品久久久久视频| 九九无码| 国产精品免费视频人成| 人妻插插人妻人| 久久精品操| 国产一级特黄大片处女| 超踫中文字幕| 亚洲熟妇综合久久久久久| 国产无码成人无码| 国产一区二区三区影片| 久久超碰97中文字幕| 久久这里只精品| 欧美美女后入| 色97国产69香蕉| 美女诱惑一区| 囯产操逼片| 日韩欧美蜜桃精品久久中文字幕久久 | 欧美日韩999| 日夜伊人网| 欧美亚洲丝袜美女电影| 亚洲视频1区| 97人妻人人躁人人玩人人| 人人扣人人操| 人妻三级在线中文字幕| 欧美中文狠| 日韩欧美俄罗斯A片| 九热久| 人妻人人澡人人爽人人| 99色在线视频| 免费精品中文字幕| 欧美黄色大香蕉一区二区| 国产高清午夜成人在线观看| 麻豆黄站| 欧美综合色站| 翔田千里av一区二区三区| 国产在线观看一区二区三区| 青娱乐手机日韩在线视频| 天天干一干| 大香蕉久| 超碰97人人cao| 久草免费在线视频| 男人网站婷婷| 69超碰综合| 亚洲av影院在线观看| 51国产午夜精品视频| 天天操妹子| 欧美中字不卡| 啊啊啊啊二区好大| 蜜臀少妇一区二区| 国产精品视频精品一二| 国产精品网址| 亚洲**2021在线观看| 清纯唯美亚洲综合| 久久九九热|