mac下安装darknet和opencv跑yolo-v2实时目标检测

参考:

https://pjreddie.com/darknet/yolov2/ #yolo-v2

https://opencv.org/releases.html #opencv源码下载

 环境:

整个安装过程用两个字来形容就是“折腾”。第一步先安装好opencv,一个强大开源计算机视觉库。从官网下载了2.4.10的源码进行编译安装:

cd opencv-2.4.10

mkdir build

cd build

cmake -G "Unix Makefiles" -D CMAKE_BUILD_TYPE=Release .. 

在源码目录下新建了一个build目录,这是因为cmake执行过程中会生成很多编译的中间文件以及makefile文件,cmake命令将CMakeLists.txt文件转化为make所需要的makefile文件,最后用make命令编译源码生成可执行程序或共享库(so(shared object)。cmake编译如果能一冲到底那就恭喜了,也就没有下文了,不过这种概率几乎为0。我这反正是出了N多错误,譬如:

opencv-2.4.10/build/CMakeFiles/CMakeTmp/CheckIncludeFile.c:1:10: fatal error: 'io.h' file not found
fatal error: 'linux/videodev2.h' file not found 

fatal error: 'libavformat/avformat.h' file not found

fatal error: 'ffmpeg/avformat.h' file not found

...

各种找不到头文件或其它错误,尝试了一些办法去解决,但要消除全部错误几乎要累趴下,放弃源码编译这条路径,改用brew安装。

brew install opencv

然后进入可怕的静默状态,等了N久,中间我还重装了一次homebrew,终于看到了进度条。
完成了第一步opencv的安装。然后进入第二步,从github上下载darknet源码进行编译安装。
因为我们要带opencv安装darknet,所以要将Makefile文件中opencv一项置为1。

然后make开始编译,迎来了意料中的报错。

.....

"_cvWaitKey", referenced from:

      _test_resize in image.o

      _display_in_thread in demo.o

ld: symbol(s) not found for architecture x86_64

clang: fatal error: linker command failed with exit code 1 (use -v to see invocation)

先是一顿百度,谷歌没有解决,然后自己仔细分析了一下Makefile,发现有一处异常。

LDFLAGS和COMMON都有用到pkg-config工具,这个工具可以列出某个库的相关信息,例如:

而我恰恰没有这个pkg-config,首先尝试下源码安装,失败。然后用brew安装,成功了。

再重新make一下darknet,竟然成功了!

下面可以跑一下实时检测的命令了:

./darknet detector demo cfg/coco.data cfg/yolov2.cfg yolov2.weights

它会自动把摄像头打开,进行实时目标检测。

 

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值