:1228張帶標簽圖像從解壓到訓練全流程)
簡介目標檢測是計算機視覺的核心任務之一而數(shù)據(jù)集的整理與標簽格式的校驗往往決定了模型效果的上限。在實際工程中無論是自動駕駛還是智慧交通場景都需要模型精準識別行人過街區(qū)域。本文從一個包含1228張帶標簽圖像的斑馬線數(shù)據(jù)集出發(fā)圍繞YOLO算法的訓練流程詳細拆解數(shù)據(jù)集解壓、YOLO標簽格式解析、目錄結(jié)構(gòu)重構(gòu)、訓練集劃分以及基于YOLOv8的模型訓練與調(diào)參方法。通過真實的工程實踐幫助讀者理解小規(guī)模數(shù)據(jù)集在目標檢測任務中的價值掌握從原始壓縮包到可用模型的完整鏈路并規(guī)避常見的數(shù)據(jù)損壞、標簽錯位與訓練不收斂等問題為快速驗證算法或開展實驗對比提供可復用的實操經(jīng)驗。 開頭這個壓縮包我拿到手第一反應是“又一個順手存下來的公開數(shù)據(jù)集”。但真正把 1228 張帶標簽的斑馬線圖像跑進 YOLO 訓練流程之后我發(fā)現(xiàn)這類數(shù)據(jù)集其實被嚴重低估了。斑馬線檢測是目標檢測里一個特別典型的“小類別、強場景”任務目標尺度變化大、遮擋多、光照差異明顯、背景干擾強幾乎覆蓋了入門到進階的所有常見難點。本文就圍繞 yolo算法、斑馬線數(shù)據(jù)集、1228張圖像帶標簽、人行橫道.zip 這套資源拆解從解壓到訓練出模型的完整鏈路包括數(shù)據(jù)集格式、標簽校驗、目錄重構(gòu)、YOLOv8 訓練配置、常見報錯排查以及我自己實測下來的經(jīng)驗和坑。無論你是剛接觸目標檢測的新手還是想找一個干凈數(shù)據(jù)集練手的老手這篇文章都能幫你省下不少時間。1. 斑馬線檢測任務的數(shù)據(jù)價值與場景定位1.1 斑馬線在目標檢測里的“教材級”地位人行橫道也就是斑馬線在自動駕駛、智慧交通、輔助駕駛等場景里都是必須被穩(wěn)定識別的目標之一。它和行人檢測、車輛檢測不太一樣斑馬線不是一個“物體”而是一塊具有重復紋理特征的地面標線區(qū)域形狀規(guī)則但透視形變大加上磨損、遮擋、光照變化等因素實際檢測難度比想象中高很多。我在實際項目里發(fā)現(xiàn)用通用目標檢測模型直接跑斑馬線經(jīng)常會出現(xiàn)兩類問題一是把車道線、白色斑塊誤檢成斑馬線二是斑馬線在畫面中占比較小時漏檢。這些問題在訓練數(shù)據(jù)不足或標簽質(zhì)量不高時尤其明顯。所以一個干凈、標注一致、場景覆蓋合理的斑馬線數(shù)據(jù)集對驗證模型改進方向非常有價值。1228 張圖像這個規(guī)模剛好處于“不是太多也不是太少”的甜區(qū)。它的好處在于數(shù)量少迭代速度快單卡訓練幾分鐘就能看結(jié)果數(shù)量也夠用配合 YOLOv8 這類在 COCO 上預訓練的模型做遷移學習完全能訓出一個可用的小模型。如果目標是快速驗證算法思路、跑通訓練流程或者做實驗對比這種規(guī)模的數(shù)據(jù)集是最合適的。1.2 1228 張圖能做什么不能做什么先說能做的訓練一個可用的斑馬線檢測器驗證集 mAP50 在正常調(diào)參下能做到 0.8 以上對比不同模型結(jié)構(gòu)YOLOv5s、YOLOv8n、YOLOv8s在小數(shù)據(jù)集上的表現(xiàn)差異測試數(shù)據(jù)增強策略對“小目標”“遮擋目標”檢測效果的影響當作遷移學習基座再補充少量自己場景的數(shù)據(jù)快速適配新場景不能做的不能指望一個 1228 張圖的數(shù)據(jù)集覆蓋所有極端場景比如夜間強逆光、暴雨天、嚴重磨損的斑馬線不能直接部署到真實產(chǎn)品里而不做場景適配因為公開數(shù)據(jù)集的圖像來源往往偏向特定城市、特定相機視角泛化能力有限明白這一點很重要否則你會在訓練完成后拿它去測自己拍的視頻發(fā)現(xiàn)效果不如預期然后開始懷疑模型有問題。實際上數(shù)據(jù)集本身的場景偏差才是主因。1.3 這個數(shù)據(jù)集在技術(shù)棧里的位置如果把目標檢測項目拆開看數(shù)據(jù)環(huán)節(jié)一般占整個項目時間的 60% 以上。而公開數(shù)據(jù)集能幫你省掉的恰恰是采集和標注這兩個最費人力的環(huán)節(jié)。斑馬線數(shù)據(jù)集的核心價值在于它把“標注結(jié)果”和“圖像”打包好了你只需要關(guān)注怎么把標簽用起來、怎么把它組織成訓練框架能讀的格式、怎么調(diào)參訓練。從實際使用角度看這類 zip 包最常出現(xiàn)的場景是課程設(shè)計、畢業(yè)設(shè)計里需要跑通一個目標檢測 demo比賽前用公開數(shù)據(jù)集快速熟悉 YOLO 訓練流程做算法對比實驗時需要一個干凈、單一類別的數(shù)據(jù)集學習數(shù)據(jù)增強、模型剪枝、量化部署等進階技術(shù)時的實驗材料一句話總結(jié)它是一個很好的“練手數(shù)據(jù)集”但不是一個可以無腦部署的生產(chǎn)數(shù)據(jù)集。帶著這個心態(tài)去用你會收獲更多。2. 數(shù)據(jù)集內(nèi)部結(jié)構(gòu)與 YOLO 標簽格式詳解2.1 解壓后先看目錄結(jié)構(gòu)拿到 zip 后第一步當然不是直接扔進訓練腳本而是先看它內(nèi)部的組織方式。絕大多數(shù) YOLO 格式數(shù)據(jù)集都遵循同一種目錄范式斑馬線數(shù)據(jù)集-1228張 ├── images/ │ ├── 000001.jpg │ ├── 000002.jpg │ └── ... └── labels/ ├── 000001.txt ├── 000002.txt └── ...也有部分數(shù)據(jù)集把訓練集和驗證集分好目錄比如images/train、images/val、labels/train、labels/val。如果沒分那就需要自己按比例劃分。我建議解壓后第一件事是執(zhí)行一個“配對檢查”確認每張圖片都有對應的同名 txt 標簽文件反過來也一樣。這個問題在公開數(shù)據(jù)集里非常常見尤其是從網(wǎng)盤、論壇轉(zhuǎn)存的數(shù)據(jù)經(jīng)常出現(xiàn)某個壓縮包少幾個標簽的情況。后面我會專門說怎么用命令批量檢查。2.2 YOLO 標簽格式到底長什么樣斑馬線數(shù)據(jù)集里的標簽文件是 txt 格式每一行對應一個目標框格式如下class_id x_center y_center width height注意這里面的坐標全部是歸一化坐標范圍在 0 到 1 之間。x_center和y_center是目標框中心點相對于圖像寬高的比例width和height是目標框?qū)捀呦鄬τ趫D像寬高的比例。舉個例子如果一張 1280x720 的圖像里有一個斑馬線目標框左上角坐標是 (320, 180)右下角坐標是 (960, 540)那么x_center (320 960) / 2 / 1280 0.5 y_center (180 540) / 2 / 720 0.5 width (960 - 320) / 1280 0.5 height (540 - 180) / 720 0.5標簽文件里存的就是0 0.5 0.5 0.5 0.5類別0表示斑馬線。如果數(shù)據(jù)集里還有別的前景標簽比如“人行橫道標志牌”那類別編號會依次遞增。我在實際使用中發(fā)現(xiàn)很多數(shù)據(jù)集類別的定義順序并不寫得很直觀建議打開幾個標簽文件看一眼確認類別 0 到底對應什么不要想當然。2.3 圖像分辨率與標注質(zhì)量的關(guān)系斑馬線數(shù)據(jù)集的圖像分辨率通常從 640x640 到 1920x1080 不等。YOLO 訓練時會把輸入圖像 resize 到固定尺寸比如 640x640。這意味著原始圖像里很小的斑馬線在訓練時會被進一步縮小導致特征丟失。我踩過的一個坑是有的圖像里斑馬線只占畫面 3% 左右的面積縮放到 640 后目標幾乎變成十幾個像素的小塊模型很難學。這種情況下提升效果的優(yōu)先手段不是改模型而是調(diào)整訓練輸入分辨率到 1280或者做“切割”策略把大圖切成多個 patch 再訓練。另外標注質(zhì)量也值得花時間檢查。斑馬線是一個區(qū)域目標標注框覆蓋的范圍直接決定模型學到的“什么叫斑馬線”。如果標注框只框住了斑馬線的一截而漏掉了另一截模型收斂后預測框就可能“偏頭偏尾”。我的建議是抽樣 50 到 100 張圖把標簽畫到圖上人工過一遍重點看有沒有以下問題標注框是否緊貼斑馬線邊緣是否有多余背景被框進去是否漏標了畫面里明顯的斑馬線是否存在重復標注這一步花不了十分鐘但能避免后面訓練完才發(fā)現(xiàn)標簽質(zhì)量拉胯。3. 拿到 zip 后的解壓、校驗與預處理實操3.1 解壓 zip 的幾種常用姿勢如果你用的是 Linux 服務器最常見的是 unzip 命令unzip 斑馬線數(shù)據(jù)集-1228張圖像帶標簽-人行橫道.zip如果文件比較多或者你想解壓到指定目錄unzip 斑馬線數(shù)據(jù)集-1228張圖像帶標簽-人行橫道.zip -d zebra_crossing_dataset注意如果文件名包含中文部分服務器終端可能會出現(xiàn)亂碼。我習慣先把 zip 重命名為純英文字母再執(zhí)行解壓省得折騰編碼問題mv 斑馬線數(shù)據(jù)集-1228張圖像帶標簽-人行橫道.zip zebra.zip unzip zebra.zip -d zebra_datasetWindows 上就直接用右鍵解壓或者用 7-Zip。這里唯一要提醒的是如果壓縮包是分卷壓縮.z01、.z02 之類普通解壓工具會報錯你需要把分卷文件放在同一目錄下再解壓。不過這種單文件 zip 通常不會遇到分卷問題。3.2 file is not a zip file 和 invalid zip archive 的排查這個報錯我在處理各種下載數(shù)據(jù)集時遇到過很多次。報錯信息一般是unzip: cannot find zipfile directory in one of zipfile or the file is not a zip file或者java.util.zip.ZipException: invalid zip archive: could not find EOCDEOCD 是 End of Central Directory 的縮寫它是 zip 文件末尾的一個關(guān)鍵結(jié)構(gòu)。當解壓工具找不到 EOCD 時通常說明 zip 文件不完整或文件頭損壞。最常見的原因有三個下載不完整。文件下載過程中網(wǎng)絡中斷或者瀏覽器開了斷點續(xù)傳但沒續(xù)傳成功。解決方法是重新下載然后用ls -lh或 Windows 屬性面板對比文件大小是否和發(fā)布方標注一致。文件被改后綴。有的網(wǎng)盤會把 zip 改名成其他后綴來規(guī)避檢測下載后手動改回 .zip但實際壓縮格式可能不是 zip??梢杂胒ile命令檢測真實格式file zebra.zip如果輸出是Zip archive data說明確實是 zip如果輸出是gzip compressed data或者HTML document那就是格式不對需要按對應格式處理。zip 包本身損壞。比如從網(wǎng)盤轉(zhuǎn)存時發(fā)生了比特翻轉(zhuǎn)??梢試L試用zip -FF修復zip -FF zebra.zip --out zebra_fixed.zip修復成功率視損壞程度而定如果損壞發(fā)生在文件末尾的 EOCD 區(qū)域修復成功率很高如果損壞發(fā)生在中間的某個圖片文件區(qū)域修復后可能只是那個文件打不開但其余文件能正常解壓。這個問題的排查思路很簡單先用file看格式再校驗文件大小最后嘗試修復。90% 的情況都是下載不完整導致的。3.3 快速核對圖像與標簽是否一一對應解壓成功后下一步是做配對校驗。寫一個簡單的 Python 腳本import os img_dir zebra_dataset/images label_dir zebra_dataset/labels img_files set(os.listdir(img_dir)) label_files set(os.listdir(label_dir)) img_stems {os.path.splitext(f)[0] for f in img_files} label_stems {os.path.splitext(f)[0] for f in label_files} print(圖像數(shù)量:, len(img_files)) print(標簽數(shù)量:, len(label_files)) print(有圖像但沒有標簽:, len(img_stems - label_stems)) print(有標簽但沒有圖像:, len(label_stems - img_stems))輸出結(jié)果里如果有“有圖像但沒有標簽”這一項不為 0那就要重點檢查了。訓練時如果圖像沒有對應標簽YOLO 會把這張圖當作背景樣本如果標簽沒有對應圖像這個標簽會被直接忽略。這兩種情況都會悄無聲息地影響訓練數(shù)據(jù)不會報錯但會拉低模型效果。我自己的習慣是對新數(shù)據(jù)集一律跑一遍這個校驗腳本同時把所有標簽文件里坐標是否在 0 到 1 之間、寬高是否大于 0 也檢查一遍。YOLO 訓練框架對非法標簽的處理方式是跳過這條標注跳過多了你的模型就白學了。3.4 數(shù)據(jù)集劃分train / val / test如果數(shù)據(jù)集沒有預先劃分好在訓練前你需要自己劃分。常見比例是 8:1:1也就是 982 張訓練、123 張驗證、123 張測試。如果你只是為了快速跑通流程用 9:1 甚至直接不分測試集也行。注意劃分時一定要保證圖像和標簽一起移動否則就會出現(xiàn)圖像在訓練集、標簽在驗證集的錯位。下面這段腳本可以避免這個問題import os import random import shutil random.seed(42) img_dir zebra_dataset/images label_dir zebra_dataset/labels output_dir zebra_yolo train_ratio 0.8 val_ratio 0.1 all_images os.listdir(img_dir) random.shuffle(all_images) train_count int(len(all_images) * train_ratio) val_count int(len(all_images) * val_ratio) splits { train: all_images[:train_count], val: all_images[train_count:train_count val_count], test: all_images[train_count val_count:], } for split, images in splits.items(): os.makedirs(f{output_dir}/images/{split}, exist_okTrue) os.makedirs(f{output_dir}/labels/{split}, exist_okTrue) for img in images: stem os.path.splitext(img)[0] shutil.copy(f{img_dir}/{img}, f{output_dir}/images/{split}/{img}) lbl f{label_dir}/{stem}.txt if os.path.exists(lbl): shutil.copy(lbl, f{output_dir}/labels/{split}/{stem}.txt)這里有個細節(jié)隨機劃分時要固定random.seed(42)否則每次運行劃分結(jié)果都不一樣別人復現(xiàn)你的實驗就會對不上。4. 基于 YOLOv8 訓練斑馬線檢測模型的完整實操4.1 環(huán)境準備與安裝如果你已經(jīng)裝好了 PyTorch 和 CUDA那么安裝 YOLOv8 非常快pip install ultralytics安裝完成后用下面這段命令驗證環(huán)境是否正常import torch from ultralytics import YOLO print(torch.__version__) print(torch.cuda.is_available())torch.cuda.is_available()輸出True才能用 GPU 訓練。如果你用的是 CPU 機器也能訓練但 1228 張圖可能要跑十幾分鐘到半小時一個 epoch體驗會差很多。關(guān)于版本我建議直接用當前最新的穩(wěn)定版。YOLOv8 和后來的 YOLOv11 在 API 上沒有本質(zhì)區(qū)別但 YOLOv8 的文檔和社區(qū)資料最全遇到問題搜起來最方便。4.2 編寫 data.yaml 配置文件YOLO 訓練需要一個 yaml 文件來指定數(shù)據(jù)集路徑和類別信息。在項目根目錄創(chuàng)建zebra.yamlpath: /absolute/path/to/zebra_yolo train: images/train val: images/val test: images/test nc: 1 names: [zebra_crossing]注意path是絕對路徑。有的版本也支持相對路徑但為了避免不同機器上工作目錄不同導致路徑錯誤我強烈建議寫成絕對路徑。nc是類別數(shù)量這里是 1因為只有斑馬線一個類別。names列表的順序必須和標簽文件里的 class_id 對應。如果你不確定就打開一個標簽文件看看第一行第一個數(shù)字是 0 還是 1如果標簽里只有 0那說明類別就是從 0 開始的單一類別。4.3 訓練命令與關(guān)鍵參數(shù)選擇訓練命令最簡版本yolo detect train datazebra.yaml modelyolov8s.pt epochs100 imgsz640 batch16這里有幾個參數(shù)值得細說model 參數(shù)。選擇yolov8n.pt、yolov8s.pt還是yolov8m.pt取決于你對速度和精度的權(quán)衡。n 是 nanos 是 smallm 是 medium。1228 張圖這個規(guī)模下yolov8s 是性價比最高的選擇。yolov8n 收斂快但上限低yolov8m 可能還沒充分收斂就已經(jīng)開始過擬合了對新手不太友好。epochs 參數(shù)。我給的建議是 100 起步。小數(shù)據(jù)集上 epoch 太少容易欠擬合但 epoch 太多也會過擬合。訓練過程中記得盯著驗證集指標通常在 60 到 80 個 epoch 之后 mAP 提升就會非常緩慢了。imgsz 參數(shù)。訓練分辨率默認是 640。如果你發(fā)現(xiàn)圖像里斑馬線目標比較小可以試試 960 或 1280。代價是顯存占用翻倍、訓練時間變長。我實測下來斑馬線數(shù)據(jù)集從 640 提到 960mAP50 大約提升 2% 到 4%尤其是對小目標的檢測改善明顯。batch 參數(shù)。這個主要取決于顯存大小。8GB 顯存跑 yolov8s imgsz640batch 開到 16 一般沒問題。如果顯存不夠調(diào)小 batch 比調(diào)小 imgsz 對效果的影響更小。我個人習慣先把 batch 調(diào)到顯存允許的最大值再往下減一點留余量防止訓練中途 OOM。完整命令yolo detect train datazebra.yaml modelyolov8s.pt epochs100 imgsz960 batch16 patience20 optimizerAdamW lr00.001 weight_decay0.0005patience20表示連續(xù) 20 個 epoch 驗證集指標沒有提升就提前停止訓練可以幫你省時間。optimizerAdamW在小數(shù)據(jù)集上通常比默認的 SGD 收斂更快、更穩(wěn)。4.4 訓練過程怎么觀察結(jié)果怎么解讀訓練開始后終端會實時打印每個 epoch 的 loss 和指標。這幾個值是我必看的box_loss目標框回歸損失持續(xù)下降說明模型在學定位cls_loss分類損失持續(xù)下降說明模型在學區(qū)分斑馬線和背景dfl_loss分布焦點損失和邊界框質(zhì)量相關(guān)mAP50IoU 閾值 0.5 時的平均精度核心指標mAP50-95IoU 閾值從 0.5 到 0.95 的平均精度更嚴格的指標一開始 mAP50 可能很低甚至趨近于 0這很正常因為模型還在冷啟動階段。一般到第 10 到 20 個 epoch 會開始明顯拉升。如果訓練了很久 mAP50 一直是 0那大概率是數(shù)據(jù)配置有問題先停下來檢查 data.yaml 路徑和標簽格式。訓練結(jié)束后runs/detect/train目錄下會生成結(jié)果。我一般直接看兩個東西confusion_matrix.png看斑馬線類別被誤檢成背景的比例。如果 background 那一格很高說明模型對斑馬線和背景的區(qū)分能力不足。results.png里面包含 loss 曲線和 mAP 曲線一圖看懂訓練趨勢。如果 mAP 曲線在上升后開始波動下降那是過擬合的信號可以回調(diào) epochs 或者加數(shù)據(jù)增強。在 1228 張圖這個體量上我實測最終 mAP50 通常在 0.85 到 0.95 之間mAP50-95 在 0.5 到 0.7 之間具體數(shù)值和圖像分辨率、標注質(zhì)量、訓練參數(shù)都有關(guān)。如果你第一次跑出來 mAP50 不到 0.5不用慌優(yōu)先檢查數(shù)據(jù)集劃分是否泄漏、標簽坐標是否準確、學習率是否設(shè)得過高。4.5 推理驗證拿驗證集圖片看看效果訓練完成后可以用下面命令對驗證集做預測yolo detect predict modelruns/detect/train/weights/best.pt sourcezebra_yolo/images/val saveTruebest.pt是驗證集指標最好的權(quán)重而last.pt是最后一個 epoch 的權(quán)重。做性能評估和后續(xù)部署一律優(yōu)先用best.pt。等推理結(jié)束后到runs/detect/predict目錄下看預測結(jié)果圖。這一步是人工抽檢重點看三類錯誤漏檢畫面里有明顯的斑馬線但模型沒畫框誤檢把路面裂縫、車道線、白色區(qū)域誤判成斑馬線定位偏差預測框和真實斑馬線區(qū)域偏差很大漏檢比較多就去檢查是不是目標太小考慮增大 imgsz 或者做圖像切分。誤檢比較多就去檢查訓練數(shù)據(jù)里負樣本是不是太少補充一些沒有斑馬線的道路圖片作為背景樣本。5. 常見問題排查與獨家避坑經(jīng)驗5.1 zip 解壓相關(guān)報錯速查表報錯信息原因解決方法file is not a zip file文件不是 zip 格式或已損壞用file命令檢測真實格式或用 zip -FF 修復invalid zip archive: could not find EOCD文件下載不完整末尾結(jié)構(gòu)丟失重新下載校驗文件大小filename too long文件路徑過長把整個數(shù)據(jù)集移動到短路徑下如C:/data/zebraunsupported compression method使用了新版壓縮算法解壓工具過舊更新解壓工具版本或換用 7-Zip處理 zip 問題的通用原則先備份原始文件再動手修復。修復過程中產(chǎn)生的臨時文件不要覆蓋原始 zip避免越修越壞。5.2 標簽常見問題格式對了但訓練效果差如果你確認標簽文件都能打開、坐標都在 0 到 1 之間但模型訓練后效果還是差那問題可能出在標注框的“物理含義”上。斑馬線在圖像里通常是長條形寬度不一。如果標注框是橫跨整條路的大框而圖像里實際可見的斑馬線只是其中一小段那么模型學到的目標和真實場景的目標定義就會有偏差。這種情況下我的建議是如果 task 是“檢測人行橫道區(qū)域本身”框應該緊貼可見的斑馬線紋理區(qū)域如果 task 是“輔助駕駛里的路口人行橫道提示”框可以稍微外擴但不宜超過斑馬線邊界太多這類語義差異在公開數(shù)據(jù)集里經(jīng)常存在因為采集者可能沒有按統(tǒng)一標準標注。你可以隨機抽幾張圖把標注框畫出來然后問自己“如果我是標注員這個框框得到位嗎”如果答案是否定的那這批標簽需要局部修正。5.3 訓練時 loss 不下降怎么辦Loss 不下降是最讓人頭疼的問題我從實戰(zhàn)中總結(jié)出的排查順序是看學習率。學習率太高loss 會震蕩不降太低loss 降速非常慢。YOLOv8 默認的 lr0 是 0.01在小數(shù)據(jù)集上我經(jīng)常調(diào)低到 0.001 甚至 0.0005效果立刻改善??礃撕炇欠裼锌瘴募?。標簽 txt 如果全部為空模型會認為所有圖像都是背景l(fā)oss 下降非??斓?mAP 一直為 0。看數(shù)據(jù)增強是否過強。eval 階段如果增強太猛可能會導致模型學到的分布和驗證集差異大表現(xiàn)為訓練 loss 下降但驗證 set 指標上不去。看類別是否失衡。如果數(shù)據(jù)集里大部分圖像只包含極小的斑馬線模型可能傾向于學“背景優(yōu)先”導致漏檢嚴重。這時候可以用yolo detect train的mosaic0.0參數(shù)關(guān)掉馬賽克增強試試因為 mosaic 會把小目標拼得更碎反而更難學。5.4 如何讓數(shù)據(jù)集發(fā)揮更大價值1228 張圖如果只用于“跑通一次訓練”那有點浪費。我建議你在訓練之外再嘗試以下操作加負樣本。在數(shù)據(jù)集里混入一些不含斑馬線的道路圖片比如純馬路、行人通道標簽文件為空。這樣模型能學到“這些場景不是斑馬線”顯著降低誤檢率。做數(shù)據(jù)增強實驗。對同一份數(shù)據(jù)分別用不同的增強策略訓練對比 mAP50 的差異能直觀感受 augmentation 的作用。比如hsv_h0.02色相增強對顏色偏移場景更友好degrees10旋轉(zhuǎn)增強對透視變換更友好。測試模型剪枝或量化。訓練好的best.pt可以導出為 ONNX、TensorRT 或 OpenVINO 格式然后對比不同部署格式的精度速度差異。這部分對想往部署方向發(fā)展的讀者會非常有幫助。6. 寫在最后的實操總結(jié)斑馬線數(shù)據(jù)集這個項目我已經(jīng)用它跑通了至少三套不同的模型配置每次都能發(fā)現(xiàn)一些新的細節(jié)問題??偨Y(jié)下來最花費時間的地方往往不是模型結(jié)構(gòu)而是數(shù)據(jù)組織和數(shù)據(jù)質(zhì)量檢查。我給新手讀者的建議是拿到任何數(shù)據(jù)集先花一個下午把數(shù)據(jù)本身摸透包括格式、分布、標簽語義、缺陷統(tǒng)計。不要跳過這一步直接訓練。模型好不好數(shù)據(jù)決定一半以上。如果你后續(xù)想把這個數(shù)據(jù)集擴展成更完整的項目可以嘗試合并多個來源的斑馬線圖像或者自己錄制一段城市道路視頻抽取關(guān)鍵幀后用訓練好的模型做自動標注再人工修正一輪。這樣能把數(shù)據(jù)集規(guī)模擴大到幾千張模型穩(wěn)定性會有明顯提升。最后分享一個實用技巧訓練完模型后用它在驗證集上做一次“困難樣本挖掘”把預測置信度低于 0.5 但真實標簽存在的圖片挑出來專門看它們的圖像特征。通常你會很快發(fā)現(xiàn)模型的短板集中在哪類場景是逆光、是嚴重遮擋、還是小目標。然后針對這些場景去補充對應數(shù)據(jù)比盲目增加總數(shù)據(jù)量有效得多。我的經(jīng)驗是一個 1228 張的數(shù)據(jù)集配合上針對性的負樣本和困難樣本增強完全能訓出一個在類似場景下表現(xiàn)不錯的斑馬線檢測器。別小看這個小數(shù)據(jù)集它是我練手時回報率最高的資源之一。本文還有配套的精品資源點擊獲取