Yolov3模型框架darknet研究(一)在windows + VS上运行darknet

在windows上运行darknet目标检测框架可以借助VS强大、方便的debug功能来逐行跟踪代码,藉此来熟悉其内部运行原理。

很简单,先进入https://github.com/AlexeyAB/darknet 去下载代码,然后去build/darknet目录中双击点开darknet_no_gpu.sln即可。

注意两点,1)先安装visual studio community版本 2)项目配置里面选择debug  这样就应该编译通过并能逐行跟踪运行代码了。

文章到此可以结束了,但是,如果在预编译定义里面 添加 OPENCV宏来使用opencv做图像预处理和后处理, 就很有可能引入大量的如下编译错误

严重性    代码    说明    项目    文件    行    禁止显示状态
错误(活动)    E0757    变量 "size_t" 不是类型名    darknet_no_gpu    c:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\locale.h    165    
错误(活动)    E0757    变量 "size_t" 不是类型名    darknet_no_gpu    c:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\locale.h    167    
错误(活动)    E0757    变量 "size_t" 不是类型名    darknet_no_gpu    d:\opencv-4.0.1\build\install\include\opencv2\core\core_c.h    80    
错误(活动)    E0757    变量 "size_t" 不是类型名    darknet_no_gpu    d:\opencv-4.0.1\build\install\include\opencv2\core\core_c.h    1576    
错误(活动)    E0757    变量 "size_t" 不是类型名    darknet_no_gpu    d:\opencv-4.0.1\build\install\include\opencv2\core\core_c.h    1583    
错误(活动)    E0757    变量 "size_t" 不是类型名    darknet_no_gpu    d:\opencv-4.0.1\build\install\include\opencv2\core\core_c.h    1584    
错误(活动)    E0020    未定义标识符 "namespace"    darknet_no_gpu    d:\opencv-4.0.1\build\install\include\opencv2\core\cvdef.h    58    

造成这些错误的原因是, darknet的源代码都是c代码(*.c),VS自动会用c编译器来编译这些代码,并c方式include opencv头文件,但是3.xx后的opencv主要是C++代码编写的,尤其是4.0后完全转向C++了。所以产生不兼容,c编译器不认识c++的定义符号。  

结论: 1)要在darknet windows上支持opencv, 或许低版本的opencv2.7xx 是 ok的 我手头没有这个版本,没试。。。。。

     2)要想支持opencv, 可以将源代码c结尾文件改成cpp  不过darknet源代码比较大,到时需要改几百个兼容姓编译小错如 malloc前加强制类型转换等等。

        

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ltshan139

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值