最近有一个项目是要对无人机拍摄的视频中的车辆信息,于是查阅资料之后开始踩坑,刚刚编译完成YOLO,为防止以后要用到时重复踩坑,在这里做一个详细记录,也方便后来的小伙伴们。
这里说一个最简单的编译方法,甚至不需要安装VS,不过很可惜一开始不知道这种方法,安装VS搭建环境就浪费了很多时间。
具体方法是安装cygwin,在win10上模拟linux环境和make命令,因为darknet源码中直接提供了MakeFile文件,所以一个命令就可以编译完成,生成可执行文件,至少先把流程走通,后续才能快速前进(看源码,改源码,嵌入到项目中等自虐)
darknet源码仓库地址:
https://github.com/tenggeliwolf/darknet
tiny-yolo-voc.weights权重文件下载地址
https://download.csdn.net/download/ngsford/10615743
根据自己的环境,下载x64或者x86版本,下载以后是一个exe可执行文件,双击执行,安装很简单,直接下一步即可。要注意的是,需要自己搜索三个包(make,gcc,mintty),因为默认的安装不包括make和gcc,mintty可能不是必须的,但是我第一次安装时后点击桌面生成的快捷方式没有启动起来,提示正在搜索mintty,同时弹出安装目录先的bin文件,手动选择mintty.exe文件也没有启动起来,后面我是重新安装,并且删除桌面快捷方式,把bin目录下的mintty.exe文件添加到桌面快捷方式解决的。我没有验证mintty是不是必须的,最好还是加上吧。
执行setup.exe后直接点击下一步:
第二步:选择install_from_internet,然后下一步
第三步:选择下载文件的存放地址和安装目录,这里自己定义
第四步: 选择链接方式为Direct Connection
第五步: 选择下载镜像地址,如果下载很慢的话,在网上找到几个国内的镜像,但我没有测试是否可用以及速度怎么样,我是用默认的镜像地址还是挺快的,一分钟左右,如果很慢找几个国内镜像地址,然后点击下一步
第六步: 接下来是重点,在弹出的窗口中,默认窗口如下图1,view为pending,改为Full,并在search中搜索make、gcc、mintty,并且找到要安装的包,点击右边的倒三角,选择一个版本号,如果已经安装了,New这一列会显示keep,current这一列会显示版本号,skip即跳过不安装的意思,默认是不安装make的,同样的方式添加gcc-g++,mintty,这里不再演示
第七步:安装完成之后,将cygwin下面的bin目录添加到环境变量,默认是已经添加了的,在bin目录下 找到mintty.exe,双击执行,启动shell命令窗口,启动之后就可以在里面尽情使用linux命令了(已经安装了的)
第八步:到github下载darknet-master源码包,并解压到某一个目录,路径中最好不要包含中文,否则显示的是unicode编码
,cd到darknet-master目录,ls一下可以看到Makefile文件,然后输入make命令,回车,就可以编译成功,成功后,在dark-master根目录下会生成一个darknet.exe可执行文件,接下来打开一个cmd命令行窗口
然后使用下面的命令进行测试,在此之前你得先下载一个weight文件(文章开头提供了地址)
darknet.exe detector test ./cfg/voc.data ./cfg/tiny-yolo-voc.cfg ./cfg/tiny-yolo-voc.weights ./data/dog.jpg
命令结束如果直接显示出检测结果图片,或者声明Not compiled with OpenCV, saving to predictions.png instead,说明已经成功了,如果没有显示出来,提示信息是没有把opencv编译进来,在目录下知道检测结果图片 predictions.png,打开可以看到惊喜了,如下图,感觉还不错。下一篇记录VS+opencv编译