① 【darknet】配置完成後就閃退
點擊生成目錄中的darknet.exe就會迅嫌發生閃退現象
在網路上並沒有查閱到好的解決辦法,最後選擇在Visual Studio中進行了本地調試灶昌純器調隱咐試,能夠成功停留在darknet.exe的界面了。
② YOLO 檢測多張圖片並保存標簽信息
YOLO 是一個基於深度學習的end-to-end、real-time目標檢測方法,至今已經有YOLOv1、YOLOv2、YOLO9000、YOLOv3 4個版本。YOLO網路由作者用C和CUDA語言寫的一個卷積神經網路框架 darknet 實現,目前github也有tensorflow,pytorch等開源框架的復現,本文主要基於darknet源碼修改實現對一個目錄下的圖片進行檢測並保存檢測結果圖片和標簽信息。
源碼修改版本已上傳至github: https://github.com/bichenghu/YOLO
YOLO測試圖片有兩種方式
其中不指定輸出路徑的命令在darknet/目錄下生成predictions.jpg;指定輸出路徑的時候只需要輸入前綴,結果規定了.jpg後綴。
事實上,單張圖片的測試也可以用如下通用迅大方式:
如果上述通用命令不指定輸出路徑,就能實現多張圖片測試,作者寫的多張圖片測試是在載入一次模型後,再一次一次的輸入圖片路徑測試,這樣的方式似乎不太實用,一般情況下我們想備沖在一個文件夾下對所有圖片進行檢測,保存其標簽信息,這就需要通過修改源碼來實現。需要修改到的文件主要有:include/darknet.h src/image.c examples/detector.c examples/darknet.c
整個檢測的入口為:examples/darknet.c 其main函數用於判斷參數,從而選擇對應函數。對於detect參數,將直接跳轉到detector.c中的test_detector函數。test_detector函數定義如下:
在darknet.c中ln437處,這里char *filename = (argc > 4) ? argv[4]: 0;仿昌殲說明當參數大於4個時,默認第5個參數為測試圖片路徑filename,顯然這樣我們就無法檢測文件夾下的圖片了,因此為filename加一個輸入標識 -input,這樣我們後面就可以添加輸入路徑idir和輸出路徑odir參數了(這里輸出路徑定義為存放images和labels路徑)。
detector.c主要修改test_detector函數,其中draw_detections_person函數由draw_detections函數修改而來,draw_detections函數定義在src/image.c中,用於對每張圖片進行畫框處理。在這里我只需要行人信息,因此對於draw_detections_person函數,需要用到圖片路徑信息,輸出文件夾路徑。對於單張圖片,圖片路徑信息就是前面的filename,對於多張圖片,圖片路徑信息為輸入文件夾加上在該文件夾內遍歷的得到的圖片名,所以修改後的test_detector函數需要添加idir,odir兩個參數。
image.c主要修改draw_detections_person函數,用於對圖片進行畫框處理,並保存標簽信息。
添加draw_detections_person函數定義:
對於單張圖片,可以用如下命令:
對於文件夾內多張圖片,可以用如下命令:
當然,在results目錄下要提前建好images和labels文件夾。
③ 1060 darknet參數怎麼配置
1.解壓大佬的darknet後,進入darknet-master/build/darknet目錄下打開darknet.vcxproj,將cuda版本替換成自己的版本,比如凱如我是8.0的,將裡面的cuda版本悶拿全部替換成8.0。
2.用VS2015(當盯罩啟然其他版本稍微修改也可以)打開darknet.sln(CPU版本則打開darknet_no_gpu.sln)。
3.然後改成release,x64。
4.然後配置實際自己的OpenCV的安裝環境(include,lib目錄)
5.最後生成,即可編譯成功,成功後會在x64目錄下生成darknet.exe。
④ 怎樣對darknet進行加速
由於darknet中並沒有採用openblas、mkl等矩陣庫進行運雹態算,導致其改正速度較慢。
那麼我們考慮採用openblas來對其進行加速。
具體怎麼核肆悔做呢?
1.修改gemm.c源碼
2.修改makefile文件
⑤ yolo darknet 浮點數例外 核心存儲 問題排查及解決方法
在運行darknet對視頻進行物體分類檢測過程中,突然程序crash中止,報如下錯誤
或者
darknet的github有相關的issue: https://github.com/pjreddie/darknet/issues/1419
但是我遇到的問題是開始可以分類檢測,後來crash的,與上面的一上來就crash不同。
所以進行了如下另外的拍錯:
經過下面的"排查過程",發現最終原因是發生了分母為0的除法,導致crash
crash點在文件 src/yolo_layer.c的257行(具沖汪洞體行數可能會變)的 correct_yolo_boxes() 函數
因為傳進來的h為0,所以導致程序crash.
在crash點處增加判斷,放置除0錯誤,在陵鉛 correct_yolo_boxes() 函數入口處添加防護如下:
上述定位crash點的排查過程如下,參考了博客"gdb調試詳解與darknet框架gdb調試過程"( https://blog.csdn.net/zdaiot/article/details/83066133 )的調試散枯過程:
修改文件 Makefile ,置DEBUG為1
重新編譯 darknet
開始調試
輸入運行程序需要的參數類型
將src目錄添加進來
讓程序運行直到crash
程序crash後,顯示crash點如下,由此定位到crash點:
gdb調試詳解與darknet框架gdb調試過程
https://blog.csdn.net/zdaiot/article/details/83066133
⑥ darkNet配置的問題
vs2017 error MSB8036: The Windows SDK version 8.1 was not found.
按照路燃飢徑打開命令「"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\bin" 發現下面沒有\bin\nvcc.exe
這個錯誤是因為cuda版本不對應的問題,原項目用的cuda版本是11.1,而我的是10.1。解決方法:打開darknet.vcxproj(就做段培在darknet.sln同級目錄下)修改
改為
(不同版本的cuda和這里的compute_xx,sm_xx的對應關系不知道是怎麼對應的,如果有知道的小夥伴還請賜教純唯)
⑦ 在Windows下Darknet.exe的命令參數
完成《 從零開始在Windows10中編譯安裝YOLOv3 》後,直接使用darknet.exe檢測圖像和視頻。
第一沒唯 ,使用YOLOv3 COCO檢測圖片(picture)的命令參數格式:
darknet.exe detector test cfg/coco.data cfg/yolov3.cfg yolov3.weights -thresh 0.25
第二 ,使用YOLOv3 COCO檢測視頻(video)的命大察雀令參數格式:
darknet.exe detector demo cfg/coco.data cfg/yolov3.cfg yolov3.weights -ext_output test.mp4
第三 ,使用YOLOv3 COCO檢測Webcam的命令參數格式:
darknet.exe detector demo cfg/coco.data cfg/yolov3.cfg yolov3.weights -c 0
更多詳細的命令參考滾早:
https://github.com/AlexeyAB/darknet#how-to-use-on-the-command-line
參考閱讀《 深度學習圖像識別技術 》
⑧ 誰有tiny-yolo 的訓練權重文件呢,就是darknet conv weights,急求!
注意:1、測試軟體:ubuntu14.04+cuda7.5+cudnn5.0+opencv2.4.10(titanX) 2、有些您復制的終端命令如果不能在終端運行,請注意英文全形半形問題,您可以將命令輸入終端,無須復制粘貼命令
第一部分:darknet安裝
下載darknet,終端輸入:
git clone https://github.com/pjreddie/darknet.git
修改makefile文件:
cpu設置:gpu=0,opencv=1,cudnn=0
gpu設置:gpu=1,opencv=1,cudnn=1
注意nvcc的路徑!!!
(設置自己nvcc的路徑)
終端輸入:
cd darknet make
第二部分:下載voc及轉換yolo格式
下載數據(目錄自己設置即可):
curl -o http://pjreddie.com/media/files/VOCtrainval_11-May-2012.tar curl -o http://pjreddie.com/media/files/VOCtrainval_06-Nov-2007.tar curl -o http://pjreddie.com/media/files/VOCtest_06-Nov-2007.tar tar xf VOCtrainval_11-May-2012.tar tar xf VOCtrainval_06-Nov-2007.tar tar xf VOCtest_06-Nov-2007.tar
找到voc_label.py程序,在script裡面,轉換格式,運行:
ython voc_label.py
生成train文件:
cat 2007_* 2012_train.txt > train.txt
進入yolo.c修改18/19兩行,修改成您voc數據路徑和生成的weights路徑(一般設置為darknet/backup),注意修改完了需要重新編譯darknet
第三部分:下載預訓練分類模型
這里只提供yolo-tiny模型啦,大模型參考作者官網下載即可
網盤下載鏈接:http://download.csdn.net/detail/samylee/9555843
下載完成放在darknet目錄下以便調用
第四部分:修改voc.data
打開cfg/voc.data文件,修改您的voc數據路徑即可
第五部分:訓練voc數據
darknet目錄下運行:
./darknet detector train cfg/voc.data cfg/tiny-yolo-voc.cfg darknet.conv.weight
生成的caffemodel會存放在darknet/backup目錄下
第六部分:demo
darknet目錄下運行:
./darknet detector test cfg/voc.data cfg/tiny-yolo-voc.cfg backup/tiny-yolo-voc_1000(迭代步數自己設置啦).weights data/dog.jpg
第七部分:demo效果圖:
見博客結尾部分
第八部分:訓練自己的數據集
數據及製作部分:
參考我的yolo-v1博客:
http://blog.csdn.net/samylee/article/details/51729729
咱群里文件有轉換成yolo格式的文件,找一下哦
訓練部分:和第五部分是一樣的啦
效果圖如下: