【Hi3519A】目标检测移植(一)——检验darknet2caffe的模型

参考自:https://blog.csdn.net/Bonjour_ca_va/article/details/104092508

1. 编译caffe-yolov3

这是用caffe重写的yolov3demo,我们在这个项目中进行验证。

git clone https://github.com/ChenYingpeng/caffe-yolov3

cd caffe-yolov3

mkdir build

cd build

cmake ..

make -j6

可能问题

  • fatal error: caffe/caffe.hpp: 没有那个文件或目录
    这应该是caffe安装的问题

解决
这是CMakeList.txt中关于caffe头文件的位置没有修改。需要修改的地方有三处:

1. 头文件
include_directories(${
     PROJECT_INCLUDE_DIR} 
	/home/deepblue/deepbluetwo/profile/caffe/include 
	/home/deepblue/deepbluetwo/profile/caffe/build/src
)
2. 链接库,只修改libcaffe.so
target_link_libraries(yolov3-plugin 
	/home/deepblue/deepbluetwo/profile/caffe/build/lib/libcaffe.so  
	/usr/lib/x86_64-linux-gnu/libglog.so  
	/usr/lib/x86_64-linux-gnu/libgflags.so.2
    	/usr/lib/x86_64-linux-gnu/libboost_system.so  
	/usr/lib/x86_64-linux-gnu/libGLEW.so.1.13  
)

编译通过
【Hi3519A】目标检测移植(一)——检验darknet2caffe的模型_第1张图片

2. 验证模型

编译通过之后,直接执行命令:

cd caffe-yolov3/build
./x86_64/bin/detectnet ../person_detect/yolov3.prototxt ../person_detect/yolov3.caffemodel ../images/person.jpg

可能问题

  • CUDA Error: no kernel image is available for execution on the device
    detectnet: /home/deepblue/deepbluetwo/chenjun/5_object_detect/caffe-yolov3/cuda.cpp:30: void check_error(cudaError_t): Assertion `0’ failed.
    猜想 这是cuda报错,难道是安装caffe的时候没有附带gpu???
    解决
    作者的解释
    【Hi3519A】目标检测移植(一)——检验darknet2caffe的模型_第2张图片
    于是将caffe的make.config中CUDA_ARCH变量copy到CMakeList.txt中。
set(
	CUDA_NVCC_FLAGS
	${
     CUDA_NVCC_FLAGS}; 
    -O3 
	-gencode arch=compute_53,code=sm_53  #tegra tx1 
        -gencode arch=compute_61,code=sm_61  #gtx 1060
	-gencode arch=compute_62,code=sm_62  #tegra tx2
	-gencode arch=compute_30,code=sm_30 
	-gencode arch=compute_35,code=sm_35 
	-gencode arch=compute_50,code=sm_50 
	-gencode arch=compute_52,code=sm_52 
	-gencode arch=compute_60,code=sm_60 
	-gencode arch=compute_61,code=sm_61 
	-gencode arch=compute_61,code=compute_61
)

结果
【Hi3519A】目标检测移植(一)——检验darknet2caffe的模型_第3张图片

你可能感兴趣的:(嵌入式AI)