安装完OpenCV,迫不及待的想要测试一下YOLO。
1.克隆项目
git clone https://github.com/pjreddie/darknet.git
2.进入项目目录,根据自己有无GPU和OpenCV来修改Makefile(默认使用CPU,无OpenCV)
cd darknet
3.在终端输入“sudo make”,结果就报错了,错误如下:
/usr/bin/ld: 找不到 -lopencv_calib3d
这是因为链接库的问题,其实就像更改环境变量一样,我们把opencv_calib3d.so的目录加到一个文件里就行了,具体如下:
locate libopencv_calib3d.so或sudo find / -name libopencv_calib3d.so找到so文件的路径
cd /etc/ld.so.conf
sudo touch other.conf
sudo gedit other.conf
在other.conf中添加如下目录
/home/lch/anaconda3/envs/gymlab/lib
保存文件之后,运行以下命令保存修改:
sudo /sbin/ldconfig
报错为:
sbin/ldconfig.real: 文件 /home/lch/anaconda3/envs/gymlab/lib/libiomp5.so 己被截断
这是因为libiomp5.so这个文件可能损坏了,我把这个文件从该文件夹移了出来,再去执行上面的命令,就不会报错了。
4.这时sudo make又报错了!!!
"include/darknet.h:25:43: fatal error: opencv2/highgui/highgui_c.h: No such file or directory",我猜测是因为opencv的版本太低了(出这个错误时本机是opencv3.1),在终端中执行如下指令:
sudo apt-get install libopencv-dev
5.下载YOLOv2和YOLOv3的权重数据:
wget https://pjreddie.com/media/files/yolo.weights
wget https://pjreddie.com/media/files/yolov3.weights
6.执行以下代码进行测试:
./darknet detect cfg/yolov2.cfg yolo.weights data/lch-picture/1.jpg
./darknet detect cfg/yolov3.cfg yolov3.weights data/lch-picture/1.jpg
可以看一下效果图
我们可以看到YOLOv3的效果比YOLOv2好很多。