本文主要是介绍TX2上darknet框架编译问题梳理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
darknet源码下载:https://github.com/pjreddie/darknet
1. 编译设置
打开darknet的源码根目录,里面有Makefile文件,根据需要编译相关模块:
darknet的opencv模块采用了1.x版本的IplImage数据类型以及有许多1.x版本的API接口,该类型以及相关的接口在opencv4+版本中已被弃用。因此编译opencv时需注意,Darknet采用c语言编写,你的机子需安装c++接口的opencv,且版本不得高于4.0,最好是3.0以下,很多在1.x版本的接口都在3.x版本逐步被弃用了。所有如果你要修改源码opencv模块,还是比较麻烦的,还要熟悉opencv1.x版本的相关接口,1.x版本的opencv是c语言编写的,改起来就更加DT了。
编译问题1:编译过程中遇到的关于opencv模块的问题,如下图:
把红色框中的代码注释掉即可,不影响运行结果,只是不显示图而已。
编译问题2:若编译出现nvcc找不到的情况,实际你的TX2板子已经安装了nvcc,用nvcc -V可查到。这时需要改变makefile中NVCC的路径,一般nvcc的默认路径为“/usr/local/cuda/bin/nvcc”,设置为你自己的nvcc路径即可编译通过。
2.验证
编译完后,输入以下命令验证:
./darknet
若出现:“usage:./darknet <function>”,说明已安装成功。
3.修改成图片批量处理
官网上的代码编译后是不支持图片批量处理的,要改成批量处理,可参考此文:
https://www.cnblogs.com/xieqi/p/9818056.html,该博主写的相当不错的,其中他在改批量处理时候有一点小bug,博主应该是忽略了windows下和linux下字符串处理的区别。
char *str1='ads';
int l1=strlen(str1);其中:l1在windows下长度为3,但在linux下长度为4.
所以在处理字符串类型的图片路径时这一点需引起重视。
这篇关于TX2上darknet框架编译问题梳理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!