1.直接設置使用,編譯通過
git clone https://github.com/pjreddie/darknet.git cd darknet make
2. 下載權重測試
wget http://pjreddie.com/media/files/yolo.weights ./darknet yolo test cfg/yolo.cfg yolo.weights data/dog.jpg
3.測試結果:
dsp@dsp:/media/dsp/學習/yolo_darknet/darknet$ ./darknet yolo test cfg/yolo.cfg yolo.weights data/dog.jpg layer filters size input output 0 conv 32 3 x 3 / 1 608 x 608 x 3 -> 608 x 608 x 32 1 max 2 x 2 / 2 608 x 608 x 32 -> 304 x 304 x 32 2 conv 64 3 x 3 / 1 304 x 304 x 32 -> 304 x 304 x 64 3 max 2 x 2 / 2 304 x 304 x 64 -> 152 x 152 x 64 4 conv 128 3 x 3 / 1 152 x 152 x 64 -> 152 x 152 x 128 5 conv 64 1 x 1 / 1 152 x 152 x 128 -> 152 x 152 x 64 6 conv 128 3 x 3 / 1 152 x 152 x 64 -> 152 x 152 x 128 7 max 2 x 2 / 2 152 x 152 x 128 -> 76 x 76 x 128 8 conv 256 3 x 3 / 1 76 x 76 x 128 -> 76 x 76 x 256 9 conv 128 1 x 1 / 1 76 x 76 x 256 -> 76 x 76 x 128 10 conv 256 3 x 3 / 1 76 x 76 x 128 -> 76 x 76 x 256 11 max 2 x 2 / 2 76 x 76 x 256 -> 38 x 38 x 256 12 conv 512 3 x 3 / 1 38 x 38 x 256 -> 38 x 38 x 512 13 conv 256 1 x 1 / 1 38 x 38 x 512 -> 38 x 38 x 256 14 conv 512 3 x 3 / 1 38 x 38 x 256 -> 38 x 38 x 512 15 conv 256 1 x 1 / 1 38 x 38 x 512 -> 38 x 38 x 256 16 conv 512 3 x 3 / 1 38 x 38 x 256 -> 38 x 38 x 512 17 max 2 x 2 / 2 38 x 38 x 512 -> 19 x 19 x 512 18 conv 1024 3 x 3 / 1 19 x 19 x 512 -> 19 x 19 x1024 19 conv 512 1 x 1 / 1 19 x 19 x1024 -> 19 x 19 x 512 20 conv 1024 3 x 3 / 1 19 x 19 x 512 -> 19 x 19 x1024 21 conv 512 1 x 1 / 1 19 x 19 x1024 -> 19 x 19 x 512 22 conv 1024 3 x 3 / 1 19 x 19 x 512 -> 19 x 19 x1024 23 conv 1024 3 x 3 / 1 19 x 19 x1024 -> 19 x 19 x1024 24 conv 1024 3 x 3 / 1 19 x 19 x1024 -> 19 x 19 x1024 25 route 16 26 conv 64 1 x 1 / 1 38 x 38 x 512 -> 38 x 38 x 64 27 reorg / 2 38 x 38 x 64 -> 19 x 19 x 256 28 route 27 24 29 conv 1024 3 x 3 / 1 19 x 19 x1280 -> 19 x 19 x1024 30 conv 425 1 x 1 / 1 19 x 19 x1024 -> 19 x 19 x 425 31 detection mask_scale: Using default '1.000000' Loading weights from yolo.weights...Done! data/dog.jpg: Predicted in 9.566333 seconds. Not compiled with OpenCV, saving to predictions.png instead
- 區分上下連個命令:
./darknet yolo test cfg/yolo.cfg yolo.weights data/dog.jpg
./darknet detect cfg/yolo.cfg yolo.weights data/dog.jpg
-/darknet detect cfg/yolo.cfg yolo.weights data/dog.jpg 結果:
4.設置GPU和opencv
GPU=1 OPENCV=1
-編譯錯誤
/usr/bin/ld: cannot find -lippicv collect2: error: ld returned 1 exit status Makefile:76: recipe for target 'darknet' failed make: *** [darknet] Error 1 /usr/bin/ld: cannot find -make: *** Waiting for unfinished jobs.... lippicv collect2: error: ld returned 1 exit status Makefile:82: recipe for target 'libdarknet.so' failed make: *** [libdarknet.so] Error 1
- opencv安裝的問題,於是重新安裝
https://github.com/pjreddie/darknet/issues/290: /usr/bin/ld: cannot find -lippicv collect2: error: ld returned 1 exit status
https://github.com/opencv/opencv/issues/5852這篇文章中也遇到了這個錯誤. 可以在cmake時加上"cmake -DINSTALL_CREATE_DISTRIB=ON"
這句,就不會有這個錯誤了.
- 首先卸載opencv,然后在安裝 :卸載參考:Ubuntu16.04 上openCV的卸載與 opencv3.0.2安裝記錄
cd /home/hy/opencv/build make uninstall//卸載掉配置路徑中的文件 sudo rm -r build//刪除build文件 //刪除掉環境中有關的其余包 sudo rm -r /usr/local/include/opencv2 /usr/local/include/opencv /usr/include/opencv /usr/include/opencv2 /usr/local/share/opencv /usr/local/share/OpenCV /usr/share/opencv /usr/share/OpenCV /usr/local/bin/opencv* /usr/local/lib/libopencv*
-安裝,安裝有圖割錯誤,以前解決辦法
dsp@dsp:~/opencv-3.1.0/build$ sudo cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local .. -DWITH_IPP=ON -DINSTALL_CREATE_DISTRIB=ON dsp@dsp:~/opencv-3.1.0/build$ sudo make -j$(nproc)
5. 在編譯darknet
dart -lcublas -lcurand -lcudnn -lstdc++ libdarknet.a /usr/local/lib/libopencv_imgcodecs.so: undefined reference to `TIFFReadRGBAStrip@LIBTIFF_4.0' /usr/local/lib/libopencv_imgcodecs.so: undefined reference to `TIFFReadDirectory@LIBTIFF_4.0' /usr/local/lib/libopencv_imgcodecs.so: undefined reference to `TIFFWriteEncodedStrip@LIBTIFF_4.0' /usr/local/lib/libopencv_imgcodecs.so: undefined reference to `TIFFIsTiled@LIBTIFF_4.0' /usr/local/lib/libopencv_imgcodecs.so: undefined reference to `TIFFWriteScanline@LIBTIFF_4.0' /usr/local/lib/libopencv_imgcodecs.so: undefined reference to `TIFFGetField@LIBTIFF_4.0' /usr/local/lib/libopencv_imgcodecs.so: undefined reference to `TIFFNumberOfStrips@LIBTIFF_4.0' /usr/local/lib/libopencv_imgcodecs.so: undefined reference to `TIFFScanlineSize@LIBTIFF_4.0' /usr/local/lib/libopencv_imgcodecs.so: undefined reference to `TIFFReadEncodedTile@LIBTIFF_4.0' /usr/local/lib/libopencv_imgcodecs.so: undefined reference to `TIFFReadRGBATile@LIBTIFF_4.0' /usr/local/lib/libopencv_imgcodecs.so: undefined reference to `TIFFClose@LIBTIFF_4.0' /usr/local/lib/libopencv_imgcodecs.so: undefined reference to `TIFFRGBAImageOK@LIBTIFF_4.0' /usr/local/lib/libopencv_imgcodecs.so: undefined reference to `TIFFOpen@LIBTIFF_4.0' /usr/local/lib/libopencv_imgcodecs.so: undefined reference to `TIFFReadEncodedStrip@LIBTIFF_4.0' /usr/local/lib/libopencv_imgcodecs.so: undefined reference to `TIFFSetField@LIBTIFF_4.0' /usr/local/lib/libopencv_imgcodecs.so: undefined reference to `TIFFSetWarningHandler@LIBTIFF_4.0' /usr/local/lib/libopencv_imgcodecs.so: undefined reference to `TIFFSetErrorHandler@LIBTIFF_4.0' collect2: error: ld returned 1 exit status Makefile:76: recipe for target 'darknet' failed make: *** [darknet] Error 1 //權限問題,sudo即可解決 這個可能是權限問題,采用以下指令: sudo su; 一切都能順利解決。
6. 運行yolo和yolo9000,可以實現demo運行,並實現視頻檢測
YOLOv2是Joseph Redmon提出的針對YOLO算法不足的改進版本,作者使用了一系列的方法對原來的YOLO多目標檢測框架進行了改進,在保持原有速度的優勢之下,精度上得以提升,此外作者提出了一種目標分類與檢測的聯合訓練方法,通過這種方法YOLO9000可以同時在COCO和ImageNet數據集中進行訓練,訓練后的模型可以實現多達9000種物體的實時檢測。
-
第一種:為darknet添加Python接口
-
第二種:使用keras