代碼基于yolov5 v6.0
目錄:
- yolo源碼注釋1——文件結構
- yolo源碼注釋2——數據集配置文件
- yolo源碼注釋3——模型配置文件
- yolo源碼注釋4——yolo-py
- datasets # 用于存放數據集的默認文件夾
- yolov5
- data # 模型訓練的超參數配置文件以及數據集配置文件
- hyps # 存放超參數配置文件(yaml格式)
- hyp.scratch-high.yaml:適用于較大的模型結構,如 yolol
- hyp.scratch-low.yaml:適用于較小的模型結構,如 yolos
- hyp.scratch-med.yaml:適用于中等模型結構,如 yolom
- images # 存放了官方提供的兩張測試圖片:bus.jpg 和 zidane.jpg
- scripts # 用于下載數據集以及權重文件的shell腳本
- download_weight.sh:下載權重文件
- get_coco.sh:下載 coco 數據集
- get_coco128.sh:下載 coco128 數據集
- XXX.yaml:各種數據集的配置文件,如 coco.yaml 是 coco 數據集的配置文件
- models # 搭建模型的相關配置文件及代碼
- hub # 存放各版本網絡模型的配置文件
- anchors.yaml:coco 數據集的默認 anchor
- yolovX-XXX.yaml:模型配置文件
- common.py:用于搭建網絡的模塊,如Conv、DWConv、TransformerLayer等
- experimental.py:實驗性質的代碼,其中一些模塊是近幾年提出來的,如CrossConv、Sum等,yolov5的作者嘗試將其融合進yolov5中
- tf.py:TensorFlow版本的yolov5代碼
- yolo.py:主要用于搭建yolov5的網絡模型
- yolov5X.yaml:yolov5的模型配置文件
- runs #運行過程中產生的文件夾,每運行一次都會生成一個名為 expN 的文件夾(N代表運行次數)
- detect # 運行 detect.py 產生的圖片,圖片中標注出識別到的物體及其概率
- train # 運行 train.py 產生的文件
- weights # 權重(包括訓練出的最好權重 best.pt 以及上次訓練的權重 last.pt)
- confusion_matrix.png:混淆矩陣
- F1_curve.png:F1 score 與置信度之間的關系
- hyp.yaml:超參數記錄文件
- labels.jpg:包含四張子圖,從左上到右下分別是每個類別的個數、標注的 bbox、標注的bbox的中心點坐標熱圖、bbox的寬高熱圖
- labels_correlogram.jpg:預測框的寬高以及中心坐標熱圖
- opt.yaml:模型記錄文件
- P_curve.png:準確率與置信度之間的關系
- PR_curve.png:精準率與召回率之間的關系
- R_curve.png:精準率與置信度之間的關系
- results.csv:模型訓練過程中的指標,如損失函數、準確率等
- results.png:訓練集以及驗證集在驗證過程中的損失函數、mAP等指標的曲線
- train_bathN.jpg:訓練集圖像(帶bbox)
- val_batchN_labels.jpg:驗證集圖像(帶bbox)
- val_batchN_pred.jpg:驗證集圖像(帶預測框)
- utils # 通用的工具類函數
- aws:恢復中斷訓練相關
- docker:docker配置相關
- flash_rest_api:flask接口相關
- google_app_engine:google app相關
- loggers:日志打印(包括TensorBoard)
- activations.py:激活函數
- augmentations.py:圖像增強
- autoanchor.py:自動生成 anchor
- autobatch.py:自動生成 batch size
- benchmarks.py:評估模型的推理速度以及分析內存占用
- callbacks.py:主要是 logger 的回調函數
- datasets.py:配置 dataloader 和 datasets
- downloads.py:下載數據集
- general.py:通用函數
- loss.py:損失函數
- metrics.py:模型驗證指標
- plots.py:繪制損失函數等的曲線、bbox等
- torch_utils.py:其他一些通用函數
- detect.py:將訓練好的模型用于圖片、視頻等進行目標檢測
- export.py:導出模型
- hubconf.py:pytorch hub 相關,用于定義和管理模型的預訓練權重和配置信息
- train.py:訓練模型
- val.py:驗證模型,評估模型性能