【超快超輕YOLO】YOLO-Fastest從Darknet源碼編譯、測試再到訓練完整圖文教程!

2021-02-20 機器學習算法那些事


最輕的YOLO算法出來了!這是個模型非常小、號稱目前最快的YOLO算法——大小只有1.3MB,單核每秒148幀,行動裝置上也能輕易部署。而且,這個YOLO-Fastest算法滿足所有平臺的需要。不論是PyTorch,還是Tensorflow,又或者是Keras和Caffe,可以說是全平臺通用。此外,作者還推出了超輕YOLO的「加大版」,同樣只需要3.5MB,就能實現比YOLOv3更好的目標檢測效果。那麼,這麼輕的網絡,檢測效果怎麼樣?

1、模型編譯、測試和訓練1.1、YOLO-Fastest編譯
git clone https://github.com/dog-qiuqiu/Yolo-Fastest

下載安裝opencv:https://github.com/opencv/opencv/releases/tag/4.4.0

第三步
打開cmake,選擇Yolo-Fastest文件夾為source code路徑,Yolo-Fastest文件夾為目標文件夾;然後點擊configure,再選擇opencv.exe解壓縮後的build文件夾為OPENCV_DIR的路徑;第四步
打開Visual Studio2017(具體根據你在configure時選擇的編譯環境,最好選擇2017),選擇release,然後生成解決方案;第五步
編譯完成後在Yolo-Fastest目錄下會有Release文件夾,把裡面編譯完成的darknet.dll和darknet.exe複製到Yolo-Fastest/build/darknet/x64目錄下;第六步
把Yolo-Fastest目錄下的除README.MD以外的4個文件複製到Yolo-Fastest/build/darknet/x64/cfg目錄下;1.2、YOLO-Fastest視頻和圖片測試1、視頻測試
輸入如下指令既可測試視頻檢測並輸出檢測的結果,CPU檢測可以達到14FPS/s,比同等條件下使用GPU檢測的YOLO-V4快很多:
 ./darknet detector demo ./cfg/voc.data ./cfg/yolo-fastest.cfg ./cfg/yolo-fastest.weights ./data/test_car.mp4 -i 1 -thresh 0.25 -out_filename ./data/car_output.mp4

注意,測試視頻可以為任意你自己想檢測的視頻文件,這裡小編只用了手上有的視頻進行了測試


2、圖片測試
輸入如下指令既可測試視頻檢測並輸出檢測的結果,CPU檢測用時為
 ./darknet detector test ./cfg/voc.data ./cfg/yolo-fastest.cfg ./cfg/yolo-fastest.weights ./data/person.jpg -i 1 -thresh 0.25 -out_filename ./data/person_output.jpg

2、YOLO-Fastest訓練

2 、生成一個預先訓練好的模型,用於初始化模型主幹:

 ./darknet partial yolo-fastest.cfg yolo-fastest.weights yolo-fastest.conv.109 109

 ./darknet partial yolo-fastest.cfg yolo-fastest.weights yolo-fastest.conv.109 109

以下是原作者所得到的結果

References

[1] https://github.com/dog-qiuqiu/Yolo-Fastest
[2] https://github.com/AlexeyAB/darknet

相關焦點

  • 【模型訓練】ubuntu 編譯 Darknet 與 YOLO 訓練
    darknet 及 yolo 訓練的方法。1.2 編譯 darknet   clone 源碼:git clone https://github.com/AlexeyAB/darknet.gitcd darknet
  • 實戰 | 如何將YOLOv4部署到無人機?
    注意:不要在cfg文件中直接寫: filters=(classes+5)x3)在darknet/data路徑下創建obj.names,其中每一行是一個目標類別名稱在darknet/data路徑下創建obj.data:教程 darknet 路徑為 /home/user/darknet,本文以此為例,請根據自己的路徑進行修改。
  • YOLOv4 的各種新實現、配置、測試、訓練資源匯總
    https://github.com/rrddcc/YOLOv4_tensorflow3、YOLOv4 的 TensorFlow 實現.https://github.com/klauspa/Yolov4-tensorflow4、YOLOv4 的 PyTorch 實現https://github.com/GZQ0723/YoloV45、YOLOv4(TensorFlow後端)的 Keras 實現https://github.com/Ma-Dan/keras-yolo4
  • YOLO-Fastest:超超超快的開源ARM實時目標檢測算法
    選擇「星標」快速獲得最新乾貨本文作者:dog-qiuqiu(項目開發者)https://zhuanlan.zhihu.com/p/234506503本文已由原作者授權,不得擅自二次轉載,CVer編譯https://github.com/dog-qiuqiu/Yolo-FastestYolo-Fastest,顧名思義,應該是現在已知開源最快的最輕量的改進版yolo通用目標檢測算法(貌似也是現在通用目標檢測算法中最快最輕量的),其實初衷就是打破算力的瓶頸,能在更多的低成本的邊緣端設備實時運行目標檢測算法,例如樹莓派3b,4核A53 1.2Ghz,在最新基於NCNN
  • 如何在無人機上部署YOLOv4物體檢測器
    注意:不要在cfg文件中直接寫: filters=(classes+5)x3)在darknet/data路徑下創建obj.names,其中每一行是一個目標類別名稱在darknet/data路徑下創建obj.data:教程 darknet 路徑為 /home/user/darknet,本文以此為例,請根據自己的路徑進行修改。
  • YOLO v4 : 基於數據集BCCD,從頭開始配置文件,訓練一個模型
    福利:我會在文末分享這個DIY項目的下載連結閒言少敘,我們進入正題:我們創建一個虛擬環境,名稱:YOLO_v4_env請在命令行窗口輸入命令:1. pip install virtualenv
  • 【模型推理】談談 darknet yolo 的 route 算子
    yolo 網絡中的 route 算子。   yolo 是目標檢測算法落地常用的網絡,具有速度快、精度高的優點,相信很多同學都熟悉,route 層在 yolov1、yolov2、yolov3、yolov4 中均有出現,yolov4 tiny 中的 route 又有了一些新特性,現在的它既能做類似 concatenate 的拼接,也能做類似 slice 的切割,算子功能十分豐富
  • 開源項目|從0到1教你搭建一個適配於智能車的目標檢測系統
    這裡主要介紹如何把本教程後面的的內容匯聚起來,實現一個能目標檢測的小車。獲取本項目完整教程代碼及文檔請關注下方二維碼並在公眾號後臺回複數字「4"6## 下載源碼7$ git clone --recursive http://github.com/leggedrobotics/darknet_ros.git除了源碼,我們還要下載一些訓練好的神經網絡權值,放在下面這個目錄:1$ catkin_workspace/src/darknet_ros/darknet_ros/yolo_network_config
  • YOLOv3物體檢測,即Darknet基本使用
    源碼託管在github上,地址 https://github.com/pjreddie/darknetYOLOYou Only Look Once (YOLO) 是目前最先進的、實時的物體檢測系統,已經發展到了第三個版本,在速度和準確度上都有非常大的提升安裝Darknet步驟非常簡單, 以下是CPU版本git clone https://github.com
  • yolov5訓練過程可視化
    我們介紹過yolov5已經在本地集成了Weights & Biases,也就是wandb,這樣就可以方便的追蹤模型訓練的整個過程,包括模型的性能、超參數、GPU的使用情況、模型預測,還有數據集。說到底,wandb就是個可視化的工具。
  • YOLOv5是真的嗎?並不比YOLOv4強,不配這個名字
    2020 年 4 月 23 日,YOLOv4 發布……2020 年 6 月 10 日,YOLOv5 又來了……是不是超厲害?這不正表明我們的研究和科技發展速度超快嗎?畢竟這個廣受歡迎的目標檢測框架的新一代 v4 版本剛發布不久,下一代 v5 版本就橫空出世了。YOLOv5 真的這麼厲害以至於自成一代?還是說僅僅是個噱頭?
  • 在樹莓派+Movidius NCS上運用YOLO和Tiny-YOLO完成目標檢測
    今天你將會了解到如何使用Tiny-YOLO,並將它部署在樹莓派上,再加上Movidius NCS的作用,可以組成一個接近實時的目標檢測項目。在樹莓派+Movidius NCS上運用YOLO和Tiny-YOLO完成目標檢測在這篇教程的第一部分,讓我們來了解一下YOLO和Tiny-YOLO目標檢測。
  • 指尖上的YOLOv5
    軟硬體環境前言前面幾篇文章,我們已經詳細介紹過yolov5的檢測、訓練、可視化等內容,本文繼續yolov5的話題,這回我們來看看,如何在android中去使用yolov5來進行目標檢測?基於ncnn,開發者能夠將深度學習算法輕鬆移植到手機端高效執行,開發出人工智慧APP,將AI帶到你的指尖。
  • 等待YOLOv4的期間,它還在更新
    主頁:https://pjreddie.com/darknet/yolo論文:https://arxiv.org/abs/1804.02767代碼:https://github.com/pjreddie
  • YOLOv5 是真的嗎?並不比 YOLOv4 強,不配這個名字
    2020 年 4 月 23 日,YOLOv4 發布……2020 年 6 月 10 日,YOLOv5 又來了……是不是超厲害?這不正表明我們的研究和科技發展速度超快嗎?這篇論文得到了發表並經過了同行評議,其 GitHub 代碼上傳到了 AlexeyAB/darknet 代碼庫,一切看起來都還不錯,而且其所帶來的技術升級也很棒,得到了計算機視覺社區的接受和認可。這是否就意味著如果 Bochkovskiy et. al. 可以這樣操作,那麼其他任何人都可以在 YOLO 框架的基礎上進行一些改進,然後就宣稱新增一代版本嗎?這正是實際所發生的事情。
  • 從0到1教你搭建一個適配於智能車的目標檢測系統
    本教程連載一輛能夠用 ROS 控制的帶攝像頭的小車,用 ROS 發布圖像數據,對獲取到的圖像進行處理,如目標檢測。本篇文章主要介紹如何把本教程後面的內容匯聚起來,實現一個能目標檢測的小車。56## 下載源碼7$ git clone --recursive http://github.com/leggedrobotics/darknet_ros.git除了源碼,我們還要下載一些訓練好的神經網絡權值,放在下面這個目錄:1$ catkin_workspace/src/darknet_ros/darknet_ros/yolo_network_config
  • 目標檢測實戰:4種YOLO目標檢測的C++和Python兩種版本實現
    其中confThreshold是類別置信度閾值,nmsThreshold是重疊率閾值,inpHeight和inpWidth使輸入圖片的高和寬,netname是yolo模型名稱,classes是存儲類別的數組,本套程序是在COCO數據集上訓練出來的模型,因此它存儲有80個類別。
  • YOLOv5 深度可視化解析
    本文從可視化角度結合源碼進行分析,需要特別注意的是:yolov5還在快速迭代中,可能後續改動非常大,所以我僅僅以當前最新版本也就是2020.08.07時候clone的版本為例進行分析。我增加了很多注釋,如果需要我新增注釋以及可視化部分代碼的人,可以點擊注釋版本github。
  • darknet-mini:帶注釋的darknet簡化版,助你深入理解YOLO
    本人對darknet的解讀,為期接近3個月時間,從2020年8月5日到至今(10月23日),期間幾乎查遍了CSDN,知乎,github所有能看到關於darknet的解讀資源,這裡特別感謝github上:https://github.com/hgpvision/darknethttps://github.com/BBuf/Darknet
  • 乾貨 | YOLOV5 訓練自動駕駛數據集,並轉Tensorrt,收藏!
    由於沒有直接從bdd100k轉換成YOLO的工具,因此我們首先得使用將bdd100k的標籤轉換為coco格式,然後再將coco格式轉換為yolo格式。我的目的是識別包括不同顏色交通燈在內的所有交通對象,因此我們需要對原版的bdd2coco.py進行一些修改,以獲取交通燈顏色並產生新的類別。