日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

YOLOv3 学习笔记:大神好贴汇总+自身经验记录

發布時間:2024/9/21 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 YOLOv3 学习笔记:大神好贴汇总+自身经验记录 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、學習 YOLOv3

YOLOv3論文

YOLOv3:An Incremental Improvement 全文翻譯

【目標檢測簡史】進擊的 YOLOv3,目標檢測網絡的巔峰之作

語言生動易懂,適合新手學習,有很多實測的圖,效果非常好,展示了 YOLOv3 的強大!

總結了 YOLOv3 的改進之處,并對下一代 YOLO 提出展望

【目標檢測簡史】YOLOv3 的實景大片兒(含源碼)

實測看效果,用 YOLOv3 檢測一段視頻,截取部分幀展示 YOLOv3 在小物體或者遠處的物體識別、重疊遮擋物體的識別、運動模糊物體的識別、高密度汽車的識別、密集人群識別的效果。

目標檢測網絡之 YOLOv3

具體講解了 YOLOv1 到 v2 到 v3 的改進之處,值得學習

如何評價最新的 YOLOv3?

知乎話題,一些回答挺好的,各種總結、圖表、文章鏈接

?

二、實踐 YOLOv3

YOLOv3官方linux代碼

YOLOv3官方網站

圖表展示了 YOLOv3 的優勢,講解了如何搭建 Darknet、下載預訓練模型、測試圖像、測試視頻、用 VOC 數據集訓練模型、用 COCO 數據集訓練模型

YOLOv3: 訓練自己的數據

詳細講解了如何制作 VOC 格式的數據集,將 VOC 格式的 xml 文件轉換成 YOLO 格式的 txt 文件,修改訓練相關的配置文件,如何訓練自己的模型,如何進行測試,論文閱讀

YOLO 配置文件理解

詳細講解了 YOLOv3 配置文件每個參數的意義,以及源碼中如何使用這些參數

?

三、修改 YOLOv3


YOLOv3 批量測試圖片并保存在自定義文件夾下

講解了如何批量測試圖片并保存在自定義文件夾下,給出了代碼

YOLOv3 使用筆記——計算 mAP、recall

講解了 YOLOv3 如何計算 mAP、recall 來衡量模型效果

?

四、自己使用問題總結

1、運行 test,recall,vaild 命令時,<test_cfg> 文件中 batch 和 subdivisions 兩項必須為 1。否則會出現測試檢測不到目標、計算 recall 為 0,驗證沒有產生結果文件。訓練時候根據 GPU 情況調大 batch 和 subdivisions,官方 cfg 中兩者值分別為 64 和 16。

2、測試標簽上如何添加置信值

由于官方代碼測試只標注了類別,標簽文字較大。使用過程中希望減小標簽,并加上檢測的置信值。

修改 src/image.c 文件 draw_detections 函數,前面部分代碼修改如下:

  • ? int i,j;

  • ?

  • ? ? for(i = 0; i < num; ++i){

  • ? ? ? ? char labelstr[4096] = {0};

  • ? ? ? ? int class = -1;

  • ?? ?char possible[2];//存放檢測的置信值

  • ? ? ? ? for(j = 0; j < classes; ++j){

  • ?? ? ?sprintf(possible,"%.2f",dets[i].prob[j]);//置信值截取小數點后兩位賦給possible

  • ? ? ? ? ? ? if (dets[i].prob[j] > thresh){

  • ? ? ? ? ? ? ? ? if (class < 0) {

  • ? ? ? ? ? ? ? ? ? ? strcat(labelstr, names[j]);

  • ?? ??? ? ? ?strcat(labelstr, possible);//標簽中加入置信值

  • ? ? ? ? ? ? ? ? ? ? class = j;

  • ? ? ? ? ? ? ? ? } else {

  • ? ? ? ? ? ? ? ? ? ? strcat(labelstr, ", ");

  • ? ? ? ? ? ? ? ? ? ? strcat(labelstr, names[j]);

  • ?? ??? ? ? ?strcat(labelstr, possible);//標簽中加入置信值

  • ? ? ? ? ? ? ? ? }

  • ? ? ? ? ? ? ? ? printf("%s: %.0f%%\n", names[j], dets[i].prob[j]*100);

  • ? ? ? ? ? ? }

  • ? ? ? ? }

  • ///后面保持不變//
    修改 src/image.c 文件 draw_detections 函數中 get_label 函數調用的參數

    image label = get_label(alphabet, labelstr, (im.h*.02));

    源碼中為 0.03,修改為 0.02 后,標簽文字減小,可以根據需要調整。

    修改代碼后需要使用 make clean,make 重新編譯。

    加入置信值,減小標簽大小后的檢測效果圖!? ? ? ? ? ? ? ? ? ? ? ??

    3、使用多 GPU 訓練時,由于并行處理,訓練迭代次數會一次跳過幾輪,導致某些整數次迭代的模型沒有保存。

    修改 example/detector.c 文件中的第 148 行

    源代碼為:if(i%10000==0 || (i<1000 && i%100==0))// 迭代小于 1000 次,每 100 次保存模型,大于 1000 次,每 10000 次保存模型。

    可以根據需要修改訓練多少輪保存一個模型,if(i%1000==0 || (i<1000 && i%100==0)),大于 1000 次,每 1000 次保存模型。

    總結

    以上是生活随笔為你收集整理的YOLOv3 学习笔记:大神好贴汇总+自身经验记录的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。