Darknet下使用YOLO的常用命令
整理了一下,隨手記一下。
在終端里,直接運行時Yolo的Darknet的各項命令,/home/wp/darknet/cfg/coco.data文件,使用原件:
=======================================coco.data=====================================================
classes= 80
train = /home/pjreddie/data/coco/trainvalno5k.txt
valid = coco_testdev
#valid = data/coco_val_5k.list
names = data/coco.names
backup = /home/pjreddie/backup/
eval=coco
====================================================================================================
(1)檢測一張圖片
wp@wp-MS-7519:~/darknet$ ./darknet detect cfg/yolov3.cfg wp_data/yolov3.weights data/dog.jpg
出現問題:
./darknet detector test cfg/yolov3.cfg wp_data/yolov3.weights data/dog.jpg報錯names: Using default 'data/names.list'。。。Couldn't open file: data/names.list
./darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg 沒有結果出來。
(2)檢測一段視頻
接好usb后,直接運行usb視頻檢測
wp@wp-MS-7519:~/darknet$ ./darknet detector demo /home/wp/darknet/cfg/coco.data /home/wp/darknet/cfg/yolov3.cfg /home/wp/darknet/weights/yolov3.weights
說明:在CPU下,運行的特別卡。"直接接USB,然后執行:./darknet detector demo cfg/coco.data cfg/yolov3.cfg yolov3.weights就可以了啊,
官網https://pjreddie.com/darknet/yolo/說的很詳細的。"
++++++++++++++++++++++++++++++++++++YOLO V3常用命令總結++++++++++++++++++++++++++++++++++++++++++++++
參考@http://www.cnblogs.com/pprp/p/9525508.html
(1)在GPU下訓練自己的模型
1.1 單GPU訓練:./darknet -i <gpu_id> detector train <data_cfg> <train_cfg> <weights>
$ ./darknet detector train cfg/voc.data cfg/yolov3-voc.cfg darknet53.conv.74
1.2 多GPU訓練,格式為0,1,2,3:./darknet detector train <data_cfg> <model_cfg> <weights> -gpus <gpu_list>
$ ./darknet detector train cfg/voc.data cfg/yolov3-voc.cfg darknet53.conv.74 -gpus 0,1,2,3
(2)單張測試命令:
$ ./darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg
添加閾值:閾值范圍0~1,By default, YOLO only displays objects detected with a confidence of .25 or higher. You can change this by passing the -thresh <val> flag to the yolo command. For example, to display all detection you can set the threshold to 0:
$ ./darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg -thresh 0
(3)批量測試圖片
官網的測試命令,只能單張測試,如果需要批量測試則yolov3-voc.cfg(cfg文件夾下)文件中batch和subdivisions兩項必須為1,並修改detector.c文件中的相關地方,重新進行編譯make clean,make。
開始批量測試:
$ ./darknet detector test cfg/voc.data cfg/yolov3-voc.cfg backup/yolov3-voc_20000.weights
接着在終端中,輸入Image Path(所有的測試文件的路徑,可以復制voc.data中valid后邊的路徑):
/home/learner/darknet/data/voc/2007_test.txt # 完整路徑。
結果都保存在./data/out(detector.c中設定路徑)文件夾下。
(4)生成預測結果:
$ ./darknet detector valid <data_cfg> <test_cfg> <weights> <out_file>
yolov3-voc.cfg(cfg文件夾下)文件中batch和subdivisions兩項必須為1。
結果生成在<data_cfg>的results指定的目錄下以<out_file>開頭的若干文件中,若<data_cfg>沒有指定results,那么默認為<darknet_root>/results。
執行語句如下:在終端只返回用時,在./results/comp4_det_test_[類名].txt里保存測試結果
$ ./darknet detector valid cfg/voc.data cfg/yolov3-voc.cfg backup/yolov3-voc_20000.weights
(5)官網的測試命令作為入口 @https://pjreddie.com/darknet/yolo/
5.1 單張測試命令:
$ ./darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg
./darknet 是執行當前文件下面已經編譯好的darknet文件
detect 是命令 后面三個分別是參數: 網絡模型 網絡權重 需要檢測的圖片
命令“ ./darknet detect ”等同於“ ./darknet detector test ”,The detect command is shorthand for a more general version of the command. It is equivalent to the command:
$ ./darknet detector test cfg/coco.data cfg/yolov3.cfg yolov3.weights data/dog.jpg
5.2 多張測試命令:
$ ./darknet detect cfg/yolov3.cfg yolov3.weights
Enter Image Path: data/dog1.jpg
Enter Image Path: data/dog2.jpg
5.3 改變閾值
YOLO默認閾值0.25,可以自行設定:
$ ./darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg -thresh 0
5.4 Real-Time Detection on a Webcam
實時視頻檢,測需要Darknet with CUDA and OpenCV,-c <num>,OpenCV默認為0:
$ ./darknet detector demo cfg/coco.data cfg/yolov3.cfg yolov3.weights
本地視頻檢,直接輸入視頻:
$ ./darknet detector demo cfg/coco.data cfg/yolov3.cfg yolov3.weights <video file>
5.5 在預訓練的模型上繼續訓練
在 CPU 下訓練:$ ./darknet detector train cfg/voc.data cfg/yolov3-voc.cfg darknet53.conv.74
在 多GPU下訓練:$ ./darknet detector train cfg/coco.data cfg/yolov3.cfg darknet53.conv.74 -gpus 0,1,2,3
從定點繼續訓練:$ ./darknet detector train cfg/coco.data cfg/yolov3.cfg backup/yolov3.backup -gpus 0,1,2,3
5.6 測試公開數據
$ ./darknet detector test cfg/openimages.data cfg/yolov3-openimages.cfg yolov3-openimages.weights
=====================================================
(6)對 視頻 進行測試命令:
對本地視頻進行測試 命令:
>>>Darknet環境中,$ ./darknet detector test cfg/coco.data cfg/yolov3.cfg yolov3.weights data/xxx.mp4
>>>OpenCV 環境中, $ python3 object_detection_yolo.py --video=run.mp4
【a single image:
python3 object_detection_yolo.py --image=bird.jpg
a video file:
python3 object_detection_yolo.py --video=run.mp4 】
對USB攝像頭視頻進行測試 命令:
>>>Darknet環境中,$ ./darknet detector test cfg/coco.data cfg/yolov3.cfg yolov3.weights
>>>OpenCV 環境中, $ (暫略)
對WebCam網絡視頻(比如大華、海康相機)進行測試 命令:
這里使用命令前需要作相應的修改,需要相機+電腦在同一局域網,這樣才能訪問。首先,要知道相機的IP,然后在電腦里添加相機的六段IP地址,在IPv4中添加類似:192.168.6.111,前二位表示在同一局域網,第三位1表示1段的IP、6表示6段的IP。接着獲取相機的用戶名、密碼。這樣才能使用 添加攝像機 命令,
$ ./darknet detector demo cfg/coco.data cfg/yolov3.cfg yolov3.weights rtsp://admin:hik12345@30.14.199.6:554/h265/ch1/main/av_stream
$ ./darknet detector demo cfg/coco.data cfg/yolov3.cfg yolov3.weights rtsp://admin:abcd12345@30.14.6.192:554/Streaming/Channels/1/
$ ./darknet detector demo cfg/coco.data cfg/yolov3.cfg yolov3.weights rtsp://admin:abcd12345@30.14.6.192:554/Streaming/Channels/101/
+++++++++++++++++++++++++++++++++《攝像機Rtsp地址格式大全》++++++++++++++++++++++++++++++
@https://www.cnblogs.com/dpf-10/p/5533698.html
@http://www.mamicode.com/info-detail-2190692.html
@https://blog.csdn.net/viola_lulu/article/details/53330727
一. 海康、中威攝像機
格式1
主碼流:rtsp://admin:12345@192.168.1.64:554/Streaming/Channels/1
子碼流:rtsp://admin:12345@192.168.1.64:554/Streaming/Channels/2
第三碼流:rtsp://admin:12345@192.168.1.64:554/Streaming/Channels/3
格式2
rtsp://admin:12345@192.168.1.64:554/ch1/main/av_stream
如果攝像機密碼是a12345678,IP是192.168.1.64,RTSP端口默認554未做改動,是H.264編碼,那么
主碼流取流:
rtsp://admin:a12345678@192.168.1.64:554/h264/ch1/main/av_stream
子碼流取流:
rtsp://admin:a12345678@192.168.1.64:554/h264/ch1/sub/av_stream
【如果是H.265編碼的,那么將H.264替換成H.265即可】
二. 大華
rtsp://admin:12345@192.168.1.64:554/cam/realmonitor?channel=1&subtype=0
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++