一、下载Darknet_ros
mkidr -p catkin_ws/src
cd catkin_ws/src
git clone --recursive https://github.com/leggedrobotics/darknet_ros.git
cd ..
catkin_make -DCMAKE_BUILD_TYPE=Release
github进不去,使用镜像:
git clone --recursive https://gitclone.com/github.com/leggedrobotics/darknet_ros.git
但是这样子darknet文件是空的,编译会失败
进入https://github.com/pjreddie/darknet/tree/508381b37fe75e0e1a01bcb2941cb0b31eb0e4c9
把单独的darknet 压缩包下载下来,移植到 darknet_ros文件夹中
1.1:编译整个darknet_ros
catkin_make -DCMAKE_BUILD_TYPE=Release
(仅对darknet_ros功能包编译: catkin_make -DCATKIN_WHITELIST_PACKAGES="darknet_ros")
如果编译出现如下错误:
1、打开darknet文件下的makefile文件,把显卡算力修改(RTX3060为8.6)
2、打开darknet_ros下的Cmakelist.txt修改显卡计算能力
OK,编译成功!
1.2编译darknet
出现以上错误,是因为cuda路径中缺少cudnn的头文件,在下载/cuda中执行一下指令(跟你下载cuda时候的路径有关系)
sudo cp include/* /usr/local/cuda/include/
出现这个问题,需要在 /home/north/catkin_ws/src/darknet_ros/darknet/src 下修改convolutional_layer.c文件
cd到darknet目录下编译:
make
二、测试darknet
下载预训练权重(在darknet目录下):
wget https://pjreddie.com/media/files/yolov3.weights
测试:
./darknet detect cfg/yolov3.cfg yolov3.weights data/horses.jpg
出错!(半天load权重没反应,修改cuda=0后可以load权重但是还会出错)
查明 RTX3060 不支持 CUDA10.0 ,参考我的另一个博客,修改成CUDA11.3 + CUDNN