Darknet概述

  • 優點

Darknet是一個比較小衆的深度學習框架,沒有社區,主要靠作者團隊維護,所以推廣較弱,用的人不多。而且由於維護人員有限,功能也不如tensorflow等框架那麼強大,但是該框架還是有一些獨有的優點:
1.易於安裝:在makefile裏面選擇自己需要的附加項(cuda,cudnn,opencv等)直接make即可,幾分鐘完成安裝;
2.沒有任何依賴項:整個框架都用C語言進行編寫,可以不依賴任何庫,連opencv作者都編寫了可以對其進行替代的函數;
3.結構明晰,源代碼查看、修改方便:其框架的基礎文件都在src文件夾,而定義的一些檢測、分類函數則在example文件夾,可根據需要直接對源代碼進行查看和修改;
4.友好python接口:雖然darknet使用c語言進行編寫,但是也提供了python的接口,通過python函數,能夠使用python直接對訓練好的.weight格式的模型進行調用;
5.易於移植:該框架部署到機器本地十分簡單,且可以根據機器情況,使用cpu和gpu,特別是檢測識別任務的本地端部署,darknet會顯得異常方便。

 

  • 代碼結構

下圖是darknet源代碼下載解壓後文件夾的分佈情況:

1.cfg文件夾內是一些模型的架構,每個cfg文件類似與caffe的prototxt文件,通過該文件定義的整個模型的架構
2.data文件夾內放置了一些label文件,如coco9k的類別名等,和一些樣例圖(該文件夾主要爲演示用,或者是直接訓練coco等對應數據集時有用,如果要用自己的數據自行訓練,該文件夾內的東西都不是我們需要的)
3.src文件夾內全是最底層的框架定義文件,所有層的定義等最基本的函數全部在該文件夾內,可以理解爲該文件夾就是框架的源碼;
4.examples文件夾是更爲高層的一些函數,如檢測函數,識別函數等,這些函數直接調用了底層的函數,我們經常使用的就是example中的函數;
5.include文件夾,顧名思義,存放頭文件的地方;
6.python文件夾裏是使用python對模型的調用方法,基本都在darknet.py中。當然,要實現python的調用,還需要用到darknet的動態庫libdarknet.so,這個動態庫稍後再介紹;
7.scripts文件夾中是一些腳本,如下載coco數據集,將voc格式的數據集轉換爲訓練所需格式的腳本等
8.除了license文件,剩下的就是Makefile文件,如下圖,在問價開頭有一些選項,把你需要使用的選項設爲1即可

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章