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

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)、置信度、類別三部分計(jì)算”“S×S 網(wǎng)格怎么對(duì)應(yīng)到原始圖像坐標(biāo)”時(shí)卻卡在了反向傳播的黑匣子門口。這套基于 Keras 實(shí)現(xiàn)的 YOLOv1非官方復(fù)現(xiàn)但結(jié)構(gòu)清晰、注釋完整不是為工程落地而生而是為“親手把目標(biāo)檢測(cè)從頭擰緊每一顆螺絲”而設(shè)計(jì)。它不追求 mAP 多高但強(qiáng)制你手寫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)依賴、真正吃透 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 類別 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此處簡(jiǎn)化為單類實(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)、置信度、類別分支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 維類別 # 這里不立即拆分留到 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)、置信度、類別三路 loss 的手工拼裝與加權(quán)YOLOv1 的 loss 是其靈魂所在也是最容易翻車的地方。它不是單一 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ì)算類別預(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. 類別 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,...。我第一次寫時(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 # 寫入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才能得到人類可讀的 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) # 類別概率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è)物體是某類的概率”二者相乘才是“這個(gè) bbox 是某類物體的置信度”。漏乘會(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)本方案不依賴 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日韩欧美| 国产67194| 本道在线| 久久久久久久国产| 色婷婷视频| 超清福利精品视频在线| 加勒比综合在线| 91xingse| 色综合色欲色综合色综合色综合| 18禁止看精品中文字幕| 97资源站日韩| 久久九九热| 国产农村妇女精品一二区| 亚洲午夜av| 又大又长又粗又爽又黄| 久久日本熟妇熟色一区| 亚洲深夜福利| 91熟女丨老女人| 大香蕉综合在线| 亚洲精品久| 牛黄色久午久| 人人搞人人插人人操| 日韩精品碰碰| 久久综合久色欧美综合狠狠| 18一区二区三区| www色婷婷| 午夜无码精品免费看性色| 91久久久亚洲| 超碰97久久| 久久系列| 欧美 亚洲 第一页| 国产三级片在线观看| 啊啊啊 在线| 久久久久深夜无码| 91熟女视频网| 一本大道青青| 欧美日韩97| 中文字幕乱妇免费视频| 易易A毛视频| 超碰97导航| 少妇内射www在线观看视频| 久久久99久9| 草草影院日本第一页| 久久超碰av在线| 91欧美丝袜| 天天操天天日天天干| 久久中日麻豆| 人妻少妇精品无码专区二区密桃| 亚洲在线A| 人人妻人人爽| 女人天堂av在线播放| 97欧美精品| 中国人高清www色视频免费| 东京热男人的天堂| 中文字幕精品区先锋资源| 熟女人妇一区二区三区| www.狠狠| 亚洲国产剧情少妇激情| 蜜臀久久久国产| 欧美天天综合站| 欧美黑人日韩少妇色情| 97视频免费播放| 婷婷色色五月天福利| 黄色片一区二区三区四区五区| 亚洲乱码精品一区二区| 日本三级一区二区 在线| 中文字幕亚洲热播人妻| 五月丁香狠狠爱| 一区二区三区精品黑丝白丝酒店对鸡 | 95自拍视频在线观看| 久久婷婷综合国际产色怕| 色婷婷av在线观看| 欧美男人亚洲天堂| 欧美少妇人妻| 亚洲激情综合| 2019午夜福利视频| 久久精品福利影院| 亚洲天堂综合AV| 亚洲 图片 欧美 色图| 亚洲色香| 明星性猛交ⅹxxx乱大交| 国产又黄又爽又刺激久久久久久| 激情av| 欧美亚洲综合色| 污到发麻的视频 国产| 亚洲男人的天堂网| 国产日韩色综合| 一区三区啪啪| 91美女视频在线| 99999久久精| 蜜桃视频成a人v在线| 91操碰| 久久久中文版| 久久91| 日本三级R| 精品96久久| 亚洲视频,小说| 91大胆欧美| 欧美大片天天看| 97色亚洲| 色五月婷婷色| 久久中文字幕女同性恋一区| 日韩综合无码色欲vv| 一二三四免费视频| 久久婷婷一区| 精品国产www久久| 超碰午夜| 老司机射| 人妻少妇精品久久久| 91色香| 人妻日日干| 欧美色图私拍91| 欧美激情区| 99ri精品| 国产深喉| 婷婷AV一区二区三区| 日韩精品99久久久久久中文字幕 | 97超碰资源网| 大黄片做爱的大的| 狠狠躁日日躁夜夜躁A| 麻豆三极片| 色99视频| 在线中文字幕视频| 人人天天欧洲| 99人妻碰碰碰久久久久禁片| 艳尻美人妻| 国产精品视频91久久| 亚洲男人的天堂V| 国模无码人体一区二区三| 丰满人妻一区二区三区四| 国产欧美另类久久久精品课程| 亚洲激情av| 亚洲欧美天| 丁香九月激情啪| 人妻蜜桃臀| 五月婷婷久久综合| 日本媚薬中文字幕在线| 成人综合色网| 极品尤物女神在线观看| 亚洲文学偷乱拍啪啪啪啪| 欧美性巨大╳╳╳╳╳高跟鞋| 少妇内射www在线观看视频| 日韩偷拍一区二区三区 | 国产色综合亚洲色综合吹潮| 强奸熟女一区二区三区| 日韩人妻一区二区精品| 99久久久无码精品国产人| 日韩精品第3页| 约操熟妇| 亚洲人妻久久久| 丰满人妻一区二区三区色-百度| 蜜桃久久综合视频| 国产成年免费大片黄在线观看| 国产视频大全| 99久视频| 国产探花日韩援交| 春色综合免费| 97久久精品国产| 国产精品久久久久久 百度| 夜夜国自区| 天天看综合网| 欧美经典一区二区三区| 91熟女网| 神马久久久久久久久久| 色欲久久综合| 性爱乱伦视频免费| 秋霞怕怕片| 呦女网站| 骚熟女吞| 91老司机在线视频免费观看| 婷婷五月综合激情| 无码高清操逼网址| 日韩精品亚洲一二三| 黄色乱论网站| · —级AA伦aa坐爱午夜极速ⅴA一区天天噪天天噪天天噪 | 青青草中文字幕| 欧美久久久| 久久草草欧美精品| 久久久久9| 综合伊人网12色| 久久9999| 中文字幕人乱码中文字的预防方法| 国产一区二区三区影片| 大香蕉黄色一级片免费看| 男人的天堂1024| 操死我了啊啊啊| 亚洲中文字幕乱码无码一区二区 | 日韩丝袜高跟制服在线观看| 青青国产精品在线| 人妻熟女av国产网站| 成人无遮挡毛片免费看| 国产在线能看的你懂的| 9久久久久| 欧美偷| 夜精品久无码| 传媒免费一区二区三区| 九九拍拍精品视频在线播放 | 91欧美成人色站| 中文字幕一区av| 久久精品三级影视| 天天做天天爱天天爽| 午夜啪啪片| 熟妇的味道HD中文字幕| 日本一区视频在线观看| 777琪琪午夜免费A片| 凹凸视频在线一区二区| 欧美亚洲综合高清在线| 三男一女不戴套的A片| 69一区二区三区| 久久精品电影在线| 日韩人妻无码不卡网站| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区 | 91精品国久久久久久无码| 久久欧美1卡2卡3| 亚洲天堂性爱| 亚洲成人色情五月天丁香花| 亚洲综合 欧美| 伊人 俄罗斯 a v| 欧美另类自拍 | 少妇极品熟妇人妻无码| 日韩精品9区| 色婷婷A V一二三四区麻豆综合| 亚洲天堂日本| 99re综合伊人| www.男人的天堂| 夜色综合| 夜夜操美女| 影音先锋视频在线| 亚洲欧美中文日韩视频中国语| 免费毛片在线播放| caopeng97| 国产精品色哟哟| 91女优在线观看 | s片在线观看| 伊人久久亚洲色欲综合网站 | 人妻9117c| 国产野战露脸在线播放| 五月色网| 99色婷婷中文字幕乱色| 天天在线91| 亚洲熟女一区二区| 国产精品无码成人精品| 国产精品久久久久久久黄无码| 啪啪AV导航| 欧美一级做a爰片免费视频| 26uuu国产成人综合| 日本一级一级一级一级| 91蜜臀熟女| 中文字日本乱码| 91九九九小逼| 97色综合中文网| 亚洲牲交| 人妻丝袜无 码视频专区| 中文字幕 人妻不满 在线视频| 发朗少妇买婬全视频中文| 麻豆这里只有精品| 97精品视频网站| 97色操| 久久久久久久人妻丝袜| 啪啪AV导航| 在线不卡视频| 免费观看的av| 久久精品电影| 欧美成人一级麻豆| 欧美日韩中文亚洲v在线综合| 激情综合婷婷| 亚洲天天影视色综合| 91精品人妻一区二区三区蜜桃| 欧美一区二区三区不卡高清视频| 丝袜美腿制服人妻二区中文字幕| 美女大乳久久久久久久女人18| 超碰1997| 夜草网站| 一本道综合色图| 97超视频在线观看| 嗯嗯不要 视频| 国产精品久久久久久久久久梁医生| 亚洲成人无码影院| 精品四五区| 九九九国产精品| 日韩免费簧片| 嗯嗯啊啊操死我| 97超碰影音| 久久综合资源一区二区| 久9久| 亚洲日韩资源| 黄片com.| 亚洲中文丝袜美腿诱惑字幕| 国产h片在线观看视频| 欧美综合骚| 久热精品在线| 国产网红精品| 美国三级日本三级久久99| 欧美日韩插逼视频| 野狼激情网| 人妻夜爽夜夜爽| 91成人在线免费视频| 传媒免费一区二区三区| 三级激情网站| 久久免费精品96| 亚洲无码成人精品| 歐美性天天| 啊啊啊好大好深| 日韩无码专区| 中文不卡视频| 精品超碰中文在线| 日本不卡高清视频| 乱欲性色| 免费αⅴ在线观看| 俞拍自拍| 最近的最新的中文字幕视频| 欧美se综合| 色色色999| 国内精品久9| 国产综合网站在线播放 | 人妻无码后入| 18禁看网站一区| 欧亚乱色熟一区二区三四区| 天天综合网日韩| 美女啊啊啊啊啊啊啊| 大香蕉中文在线| 欧美亚洲综合色| 久久久久亚洲熟妇熟女| 极品久久久久久久久久久久久久| 欧美激情性爱视频网站| 天天操天天日青青草超碰av| 岛国片在线观看视频亚洲| 欧美日韩精品久久久久东北老熟妇| 综合影视国产无码| 亚洲国产97| 亚洲一区二区三区AV无码| 久久中文字幕人妻熟av女蜜柚| 簧片免费看视频| 蜜臀99久久国产| 黑操B| 粉嫩av平台| 加勒比久久av| 九九热免费国产视频婷婷伊人五月 | 2020国产精品| 麻豆久久精品亚洲精品88| 宅男91视频在线播放| 嫩草美女久久| 欧美色图亚洲色,麻豆| 五月天激情四射| 亚洲精品国产无码高清| 97视频一区| 啊啊啊啊啊啊在线看| 日本欧美韩国国产在线| 哈哈操 大香蕉| 亚洲精品久| 欧美αv.com| 欧美另类丝袜熟女| 少妇极品熟妇人妻无码| 日本黄色精品专区网站| 91九色丰满高潮| 激情综合网五月婷婷| 欧洲亚洲国产综合在线| 色天天野狼综合社区| 九久久九精品视频| 丁香六月激情综合| 久草网站免费在线观看| 在线中文字幕| 亚洲欧美不卡线| 亚洲综合射| 精品久久久久,69国产成人精| 久久黄片国产一区二区| 天天躁日日躁狠狠躁| 夜色97| 中出后入| 国产精品夜夜| 综合网97| 男人成人黄色视频在线观看免费下载| 亚洲美欧999| 亚洲老熟妇xxx| 成人aⅴ一区二区三区| 视频不卡中文字幕| 国产高清亚洲日韩一区| 九九热精品视频在线观看| 日本中文字幕在线视频| A级毛片在线看免费| 91网站18禁| 人妻蜜桃臀| 色九九九综合| 精久久久91| 欧美亚男人的天堂| 在线 亚洲 网爆 自拍| 少妇超碰在线| 亚洲精品久| 午夜婷婷| 亚洲码和欧洲精品激情系列| 久久久久性熟视频| 欧美亚涩| 欧美在线伊人色| 久99久视频精选| 91女人的网站| 五月婷婷hd| 另类综合另类| 91视频观看网站| 美女诱惑爱爱| 欧美黑人与女人91~| 天堂日本亚洲欧美| 久艹伊人精品综合在线| 久久成年精品| 日欧毛片久久| 国产中文字幕在线观看| 青青草在线视频播放器| 97色香蕉| 亚洲天天综合| 精品免费一区| jizz啪啪| 久久久久人妻二区精品叶可怜| 影音先锋乱伦资源| AV无码久久久精品| 久久久久精| xxx亚洲午夜天堂| 97激情97激情| 嗯嗯嗯啊啊啊干死我吧| av草草在线电影| 久久久久久久唑| 测评在线观看AV| 日韩激情电影中文字幕| 免费一级精品啪啪视频| 婷婷伊人| 天天干一区二区| 久久久久久久久久久久黄色| 啊灬啊灬啊灬啊灬高潮奶出了免费视 | 97天天爽| 大奶尤物鲍汁淫荡欧美视频粉嫩夜夜骚| 熟女欧美日韩综合婷婷| 九99久久| 男人天堂网站| 国产成人欧美一区二区三区的国产| 免费看欧美美女黄色大片| 9l视频自拍9l九色成人| 少妇毛片久久| wuyechaopeng| 4虎在线观看| 黄色免费网| 日韩精品中文字幕一| 成人精品在线| 黄日韩| 久久久久熟女| 天天看天天在线精品| 伦理片秋霞免费影院| 久久久久久夜夜夜夜夜| 亚州色图片在线色| 熟女乱3伦999| 狠狠色丁香| 欧美另类自拍 | 中文字幕高清20页视频| 五十路人妻在线| 欧美中文综合| 婷婷五月色| 伊人操操| 亚洲**2021在线观看| 欧美v亚洲v日韩v最新在线二区| 乱理日韩中文| 亚洲图片欧美| 开心五月婷婷激情| 天天情欲宗合网| 久久精品国产亚洲5555| 91粉芽高清在线一区二区| 亚洲熟女乱综合一区二区三区 | 强奸乱伦亚洲第一页| 黄色乱论网站| 亚洲 欧美 第一页| 黄色av片三级三级三级免费看| 久久久久性熟视频| 综合激情一一91| 欧美激情性爱视频网站| 涩爱AV在线| 亚洲色图图片| 囯产精品一区二区三区线|亚洲人成无码网WWW动漫|国产精品免费一级... | 丁香五月色| 日本孕妇孕交| 密乳AV免费观看| 黄色不卡视频| 日韩亚洲国产视频| 国产亚洲日本| 亚洲国产婷婷在线播放| 欧美一区二区三区大综合| 精品999一区二区| 国产女生在线| 五月天九九日国产精品一区二区三区| 色综合久久88色综合久久天天| 欧美91精彩| 91影库| 日本精品免费一区二区三区四区| 国产亚洲精品久久久久小| 男生女生啊啊啊啊| 波多野结衣被操50分钟免费视频| 久偷拍| 中文字幕一区二区三区高清| 美女诱惑久久| 激激五月| www.99中文字幕| 九九九九97| 亚州AV无码国产精品| 亚洲91综合| 精品毛片av一区二区| 亚洲鸥美色图| 狠狠干综合| 天天射日日干| 国产福利夜| blacked精品一区国产| 99久久9| 立川理惠无码一区二区| 99热伊人| 成熟熟女国产精品一区二区| 亚洲 一区二区 自拍| 亚洲久草AV色图| www.99色| 噜噜噜在线视频| 久久精品六区| 欧美淫穴| 亚洲导航深夜福利| 91bbb| 亚洲一区二区 麻豆传媒| 深夜国产一区二区三区在线看| com 首页 18岁 禁区 女优 免费 精选 同城 | 五月婷婷六月丁香| 中文字幕,人妻,日韩| 精吧天堂| 国模限制级电影| 亚欧视频在线| 天美传媒AV在线| 老司机午夜福利视频一区二区| 免费啪啪啪网站18岁| 日本道不卡| 中文字幕诱惑制服人妻丝袜美丝袜美| 97视频观看| 日韩一级特黄av毛片| 一区二区三区看视频| 欧美精品 - 91爱爱| 9久热| 欧洲黄色网| 深夜激情| 97视频www| 成人精品在线观看| 97人妻免费中文字幕| 女人久久久| 亚洲精品人伦一区二区| 色综合久| 东京热免费视频| 日韩国产不卡在线视频| 亚洲欧美综合| 天天情欲宗合网| 91美女在线视频| 亚洲色五月| 日本一级婬片试看三分钟| 成人情色综合网| 国产精品久久久久久9999| 大香蕉伊人网WWWn0n| 97人人模人人爽人人| 91亚洲欧美| 亚洲天天综合| 舔足天天操天天射| 色欲天香天天综合网-成年人三级片网站-欧美乱妇狂野-日韩国产专区-久久久久久 | 成人午夜小视频手机在线看| 亚洲男人综合| 亚洲欧美高清| 一区AV| 九九九九九精品| 久久婷婷苹果| 九久久精品| 蜜桃网熟妇| 久9爱经典视频| 精品美女久久一二三| 久久久久一本一区二区青青蜜月| 99国产在线绯色一区| 色婷婷综合久久久久中文国产精品一区中文字幕,国产福利电影一区二区三区 | 97精品免费视频网站| 精品91日日夜夜超清资源| 黄色工厂这里只有精品| 欧美情色亚洲| 超碰97 线线 在现| 欧美日韩国产成人高清| 立川理惠被中出无码| 精品人妻一区二区三区在| 91精品国产一区三一| 日本操逼视频免费| 日本韩国国产精品一区| 久久久精品91八戒| 黄色一区二区秘书性感| 97干在线视频| 婷婷五月天影院| 97WW精品| 久久綜合很很很| 午夜精品人妻二区三区| 日韩人人精品| 后入国产| 澳门黄片一香蕉视频| 韩国成人精品久久久免费看| 在线观看日韩av不卡| 中文字幕在线日亚洲9| 中文字幕91综合| 加勒比日本在线| 国产成人精品午夜福利| 久久精品国产97欧美精品亚洲| 亚洲精品少妇| 国产在线激情视频| 一块操欧美| 草草影院在线视频| 啊啊啊好疼| 日韩精品 欧美激情| 激情文学88| 五月天黄色激情视频| 亚洲欧美精品91| 人妻精品4K4K4K4K4| 国产视频小说| 人妻精品视频一区二区三区 | 91丨精品丨国产丨丝袜| 98超碰欧美| 亚洲欧美色图小说| 国产福利精品最新在线| 撸撸成人在线视频| 欧美综合中文| 久久久久久国产成人| 人人操人人操人人操人人操人人操人人人11.CM | 亚洲国产综合久久天堂| 欧美激色| 精品国产一区探花在线观看| 久久美女福利是上海美女| 97天天爽| 亚洲 欧美 第一页| 综合操逼| 蜜臀亚洲中文| 久久久久久久| 日韩另类| 日韩中文9| 精品免费视频国产一区| 人人人人人人少妇| 精品二区三四区五电影| 人妻9117c| 人人操人人摸人| 亚洲色图欧美另类在线| 人妻天天爽天天爽三区| 91久久99久久91熟女精品| 日韩综合97P| 亚洲97成人在线观看| 熟妇熟女视频一区二区三区| 色香欲天天天天综合色| 久久人人爽爽人人爽人人片αV| 啊啊啊操一区| 91大香蕉伊人| 91东京热男人的天堂| 天操天操夜操夜月操月年年操| 欧美色图99| 日本操嫩b网| 国外91| 91伊人久| 91大神电影天堂| 大鸡巴久久| 日韩性爱电影一区| 啊啊啊啊啊好舒服视频| 国产性爱在线视频一区二区| 嗯嗯啊好大| 操婢日韩| 另类图片亚洲加勒比另类图片亚洲加勒比另类图片亚洲加勒比 | 大香蕉在线86| 91av熟女人妻| 日本九九久久99播| 一本精品日本在线视频精品| 干b在线性社区| 立川理惠被中出无码| 丁香六月啪| 91人人| 亚洲 图片 综合91| 日日夜夜精品视频| 绯色AV粉色AV蜜臀AV| 91精品无码久久久久久久| 人妻精品综合中文字幕在线| 91处女在线观看| 1956日韩精品| 亚州欧美另类| 亚洲色图久久成人| 国产精品点击进入在线影院| 福利一级版子| 日韩乱伦视频| 啊啊啊啊操死我| 青青草在线成人视频| 五月丁香黄色网| 国产乱码久久久久久| 欧美顶级黄色大片免费| 偷拍亚洲视频一区二区三区四区| 天堂中文日本在线观看| 超碰碰97资源站| 丁香五月综合| 伊人热综合| 久热大香蕉网站| 熟女乱伦二区| av影片在线观看不卡| 亚洲色图综合网| 久久久成人国产精品无码| 欧美激情视频一区二区| 亚洲一区二区三区久久 亚洲一区二区| 色网色网色网色网色网色| 97色爱| 中国国国产一级特黄毛片| 久久男人的天堂| 久久久久久91香蕉国产| 久久欧美性爱视频| 国产精品久久久无码aV去| 91色综合色| 麻豆60秒| 人人看人人摸人人色| 乱欲视频| 欧美体内射精| 青青草视频久久| 日韩乱伦AⅤ| 久久色精品视频在线| 麻豆黄色五月天| 一区二区娱乐网站| 91啦人妻| 91黄站| 免费精品AB| 亚洲免费日韩在线一区二区| 日本日皮视频逼| 亚洲免费在线探花| 美女黄站| 天天日熟妇| 在线观看视频91| 日韩免费人妻色情网站| 久久毛卡| 国产免a费看黄片在线| 91丝袜美女视频| 久久久神马影院| 天天综合网1| 国产天美欧美| 91久久久久久| www.色99| 人妻乱仑一区二区三区| 欧美人人操人人插| 曰韩人妻中文字幕在线 | 色色婷| 国产av波波国产精品| 免费成人自拍视频在线| 亚洲资源站| 人妻天天爽夜夜爽2| 美女淫穴| 欧美成人色| 狠狠搞 亚洲91| 97天天爽| 精品人人| 久99久视频精选| 性爱久久| 插入综合网| 精品超碰中文在线| 天天射影院| 国产欧美伊人| 高清无码网址| 很很干很很操| Julia在线播放亚洲久久| 久久婷婷亚洲| 一区二区娱乐网站| 91国产精品在线看| 大香蕉宗合网在线| 热久久这里只有精品| 亚洲天堂综合AV| 久操综合在线| 在线啊啊啊啊| 国产精品suv一区| 粉嫩少妇自慰在线| 亚洲天堂男人天堂网| 91老司机在线| 九九九九热| 91久久久亚洲| 日韩av不卡在线看| 国产亚洲精品农村妇女| 国产精品午夜福利亚洲综合网| 黄色激情电影在线观看| 午夜激情成人在线观看| 日韩无码精品综合久久| 午夜爽爽爽在线观看永久入口姬片| 91成人久久| 国产精品无套内谢| 激情AV| 情色日播放AV| 中文一区在线日| 在线播放中文字幕| 欧美丝袜中文字幕07在线| 亚洲国产美女久久久久| 国产av强奸美女| 日本高清有码网址视频| 91精品成人www| 色爱欲亚洲| 亚洲偷91色| 久久免费少妇| 色天使亚洲综合在线观看| 色青青久久影视| 97资源超碰| 歐美性天天| 久久久久深夜无码| 伊人久久综合影院精品久久久| 探花一区二区三| 留下AⅤ黄色片| 久久黄黄| 性九九九九九九| 色欲Av人妻精品一区二| 大色综合网| 亚洲天堂中文字幕无码男同| 国产情色在线| 99999国产精品| 日本性爰一道本| 91九九九馒头| 加勒比久久av| JuliaAnn丝袜熟女系列| 精品中文字幕第一页| 国产 码在线成人网站| 青青草成人视频在线观看二区| 国内精品久9| 久久超碰国产一区二区三区| 婷婷激情五月综合| 亚洲色资源| 香蕉99秘 一区精品蜜桃臀| 粉嫩粉嫩一区性色AV片| 亚洲综合色男人网| 天欧美在线| 色综合国产在线观看| 三级三久久线久久99久目本WW| 久偷拍欧美日韩三区| 人妻少妇精品| 自慰白浆在线观看| 小草av不卡亚洲二区| 精品免费视频国产一区| 五月天丁香网| AV色五月天| 国产高清精品一区二区三区毛片| 天天综合精品| 蜜臀99久| 精品久久久亚洲AV成人网站| 呻吟 欧美 日本 中出| 国产亚洲色停停久久99精品91| av九九| www.成人无码| 大香蕉免费乱伦视频| 射丝袜大香蕉| 无码 黑人一区二区三区| 五月婷婷影院| 色噜噜狠狠色综无码久久合欧美| av凤凰久久久| 亚洲偷拍欧美激情| 大伊香蕉在线视频免费| 激情视频一二三| 狠狠中文字幕| 污污污8888| 大屁股人妻女教师撅着屁股| 激情露脸爱| 秋霞午夜成人福利片片| 97色色婷婷| 777超碰| 五月婷丁香| 日本不卡五区| 花野真衣| 日韩电影在线观看网址| 色91综合网| 天天视频黄| 欧美乱妇狂野欧美在线视频| 五十路六十路素人熟女| 欧美精品91| 视频国产精品未满十八禁止在线观看| 超碰碰激情97+久| 国产欧美亚洲精品a第2页| 欧美一区二区三区成人性生活 | 天天色播亚洲综合网站| 综合干干干av久久久综合网 | 五月天开心网| 久9综合在线| 国精精品无码一二三区水多多| 日本五十路在线| 欧美成人四级在线播放| 欧美淫乱视频| 日日夜夜天天| 国产无码三级视频在线观看| 91在线色| 强奸乱伦 亚洲一区| 日本黄色裸日本黄色裸体| 超碰国产精品久| 操死我了啊啊啊| 亚洲超碰在线| 就去色综合| 亚洲欧洲综合视频在线| 少妇久久久久| 久久久久久久久久久久久久久久9| 青椒国产97在线熟女| 久久精品中文字幕女同| 狠狠狠一区二区三区| 日日干天天干夜夜爽| 91美女高潮| 午夜精品久久久久久久男人的天堂 | 可以在线观看AV的网站| 欧美91网| 成人热久久精品| 亚洲九月丁香| 久久久久久久唑| 老熟妇一区二区三区啪啪| 中文字幕一区日韩精| 亚洲成人在线高清| 青草伊人网| 7月婷婷综合| 中文字幕一区日韩精| 亚洲自拍偷拍视频在线| 亚洲熟妇AV日韩熟妇在线| 国产人妻精品久久久一区二区三区| 中文字幕熟女人妻丝袜| 国产精品色| 亚洲。日韩。欧美| 97干在线| 日韩操逼HD| 欧美色综合| 国产欧美日产一区二区三区 - 国产欧美日 | 久久精品黄色| 91亚洲狠狠色| 91jk色拍| 成人婷婷丁香| 日本午夜久久电影| 高潮毛片无遮挡高清免费| 欧美色涩| 怡红院网站在线视频| 95精品在线| 激情婷婷| 国产AV精久久| 免费一级性爱久久| 亚洲激情综合另类| 一区二区视频在看| 91老熟女91老女人| 亚洲色吧网| 色情综合网| 亚洲成人美女无吗| 日韩色欲久久一二三四区| 97综合国产| 九色黄站| 久久亚洲日韩熟女精品| 超碰97网址| 超碰1024久久| 狠狠躁AV| 亚洲国产精品有声| 四虎免费看黄| 蜜桃色院一区久久| 骚人妻少妇视频| 欧美躁死她一区二区| 欧美在线91| 97操| 国产精品白虎| 亚洲国产剧情少妇激情| 嗯嗯啊啊操死我| 成年男人的天堂| 国产专区第一页| 亚洲精品白浆高清久久久久久 | 日韩成年人性爱视频| 欧美姓爱综合网| 九九热三级片| 俄罗斯及免费在线看| 人人操欧美风骚| 精品欧美老熟女一二区| 亚洲国产美女久久久久| 欧美视频一| 日韩性爱免费观看视频| 中文字幕交换人妻| 天天做日日爱夜夜爽| 亚洲av淫乱| 99精品视频在线观看| 啊啊啊啊啊啊啊国| 国产精品午夜成人福利| 精品然女一区二区| 蜜臀一二三区| 精品人妻av区天天看片| 国产品精品自在在线午夜免费| 五码视频在线观看| 久久久久九九九| 91精品大奶人妻| 日本91白丝| 青青青艹在线视频| 久久久久久99999国产精品| 人人操超碰在线| 中文久久| 人人操人人uiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii | 欧美黑人精品在线播放| 免费精品福利在线观看| 天天看天天综合成人网| 日韩 欧美 校园一区| 免看60秒涩涩视频| 亚洲综合欧美| 色欲蜜臀AV| www.夜夜操| 久久伊人青青草| 噜噜噜噜久久久精品免费| 亚洲另类春色| 日韩欧美aⅴ综合网站发布| 99成人| 久久綜合很很很| 亚洲久草AV色图| 国产无马在线| 爱射综合| 99999精品成人| 插插综合网天天影视网| 亚洲无码成人精品| 天天日天天色| 久久国产精品熟女人妻| 日韩精品人妻一区二区| 51一区二区三区| 狠狠操狠狠| 青青草久久在线| 美国日韩黄片| 六月丁香啪啪啪| 午夜欧美J进J出白浆流出久久久| 99草精| 色色色色日本| 在线观看综合精品亚洲| 亚洲永久永久永久永久一级一级一级精品| 99少妇| 亚洲一卡2卡3卡4卡乱码网站| 青青网三级视频| 日夜尻逼网| 国产日逼视频| 色婷婷香蕉| 蜜桃久久久久久久久久久久 | 中文字幕蜜乳av| 5278欧美一区二区三区| 久久久中文版| 国产精品一二三区18| 精品国产久热在线观看| 色制服丝袜夫妻av一区| 久草尤物| 青青爽| 日本道人妻久久久在线不卡色视频| 日本不卡高清视频| 伊人国产视频| 怡红院成人视频| 久久激情五月| 99re99在线视频| 色综合色欲色综合色综合色综合| 久久精品国产99国产精品亚洲| 91在线免费精品视频| 艳美熟妇先锋一二三区| 国产精品久久久久无码A√| 天天淫人人妻日日色| 9久精品| 老鸭窝亚洲毛片| 欧美91变态| 婷婷丁香熟妇综合网| 欧洲色综合| 日本岛国黄色网址| 亚州熟妇精品| 操逼不卡中文字幕| 中文子幕一二三| 成人三级片无码| 97精品97久久| 国内精品伊人久久久久影院会| 肉丝中文无码高清| 亚洲AV成人在线| 国产热av| av资源在线播放天堂| 久久久久女教师免费一区 | 97频视在线| 超碰成人最新最好看| 欧美91色| 涩五月婷婷| 亚洲精品欧洲色| 久久色激情一区二区三区| 亚洲av青草久久一区二区| 少妇被玩视频二三区| 懂色Av| 亚洲欧洲色情高清| 日本视频在线观看污污污| 人妻精品一区二区全免费| 欧美日韩国产三级黄色| 婷婷五月天色网| 日韩AV电影网站| 91色拍| 精品一久久久| 日韩国产中文字幕| 欧美少妇色图| 国产白嫩精品久久| 色官网色综合| 精品日韩产品在线,日韩在线不卡视频,欧美日韩免费专区/久, | 看黑丝美女操逼青青网站| 18禁免费视频| 青青草大香蕉视频| 嗯嗯嗯啊啊啊操的我好爽 | 综合久久99| 精品亚洲| www. 男人天堂成人在线| 开心激情婷婷| 国产AV色黄看到爽| 色香91| 91久青| 牛牛aV| A片大香蕉在线| 超碰碰激情97+久| 99久视频| 欧美A片中文字幕| 黄页网站成人免费| 色综合一区二区三巨| 操B在线观看| 一区二区中文| 后入式999| 91精品黄在线观看| 狠狠操官网| 91天堂网| 无码九九九九| 精产国品一区二三产品| 久久鲁干| 最新日日夜夜天天干干| 操熟女91| 日韩人妻丝袜美腿中文| 久久乐| 亚洲 欧美 手机在线观看| 国产精品白丝在线播放| 久久久一区二区三区麻豆| 欧洲射精91| 五月香婷婷| 操日韩第| 天天综合网亚洲综合网| 欧美专利1区2区3区4区5区免费| 成人aⅴ一区二区三区| 亚洲高清欧美总合| 日韩97视频| 欧美日韩婷婷中文| 日韩天堂av电影在线观看| 国产一区二区在线播放量| 亚洲综合网91| 一区二区三区四区五区久久久久久| 撸撸成人在线视频| 91九色丨国产丨爆乳| av片在线观看免费播放| 日韩不卡在线一区二区| 黄片视频,下载| 日产操逼| 午夜噜噜噜| 欧美激情一| 土豪酒店各种姿势玩弄极品幼稚| 亚洲少妇色图自慰直播| 人妻在线臀日韩| 人人操AV| 屌色在线97视频| 亚洲无码99| 五月婷丁香| 亚洲天堂7777| 99久久e免费热视| 亚洲一欧洲中文字幕在线 | 99热99re6国产在线播放| 一区中文字幕二区日韩| 国产伦精品免编号公布| 国产农村妇女一区二区| 在线 制服丝袜中出 人妻| 黑人精品成人一区二区三区| 丁香六月东京热| 97摸视频| 丁香五月天激情网站| 欧美极度丰满熟妇hd| 欧美性爱三区二区| 8050午夜少妇无码| 亚洲人妻AV| 91在线页| 超碰91在线| 欧美超碰9798| 97超碰无码网| 欧美大片天天看| 玖玖大干人妻|