-
Installing Darknet
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 結果:
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicGcq5COzADN2YjN0UTMtYTNyEDN1QTMykTMyEzNxAjMtYDNwQjN48CXyEzNxAjMvwlN0ADN2gzLcd2bsJ2Lc12bj5ycn9Gbi52YucTMwIzcldWYtl2Lc9CX6MHc0RHaiojIsJye.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運作,并實作視訊檢測
-
philipperemy/yolo-9000
YOLOv2是Joseph Redmon提出的針對YOLO算法不足的改進版本,作者使用了一系列的方法對原來的YOLO多目标檢測架構進行了改進,在保持原有速度的優勢之下,精度上得以提升,此外作者提出了一種目标分類與檢測的聯合訓練方法,通過這種方法YOLO9000可以同時在COCO和ImageNet資料集中進行訓練,訓練後的模型可以實作多達9000種物體的實時檢測。
-
第一種:為darknet添加Python接口
Github:https://github.com/SidHard/py-yolo2 -
第二種:使用keras
Github:https://github.com/allanzelener/YAD2K
C/C++基本文法學習
STL
C++ primer