CDR项目常见问题及其解决方案
更新时间2021-12-14 09:59:05 星期二
常见问题集合
question 1
- 使用
sudo CUDA_VER=10.2 make -C nvdsinfer_custom_impl_Yolo
指令编译时,若出现如下图错误:
- 错误原因:
- 可能是使用了本项目github上或百度云盘中提供的engine文件,不能适配engine文件运行时所在的硬件平台。
- 解决方案
- 鉴于平台硬件配置不一致(TX2,NX,Nano内部硬件配置也是不一样的)这一原因,
- 最好能自己在要运行engine文件的硬件平台(jerson 系列)上生成engine,生成engine文件的方法请参考github链接:
github engines生成
博客engine生成
question 2
- 在运行client-ros.py时,出现
no module named darknet_ros_mags.msg
错误 - 错误原因:可能没有在
.bashrc
中添加boxes_ws工作空间的环境变量,或者添加了之后没有放到最后。 - 解决方案:向
.bashrc
中添加boxes_ws工作空间的环境变量,并放到最后,如下图所示:
question 3
- 在运行
deepstream-app -c deepstream_app_number_sv30.txt
指令后,出现检测实时画面,但是命令行终端报mmap err : Bad file descriptor
错误,如下图所示:
- 错误原因:
- 可能没有使用
sudo chmod -R 777 /opt/nvidia/deepstream/deepstream-5.1/sources/
对整个sources文件夹赋予读写权限。 - 或者在
nvdsparsebbox_Yolo.cpp
文件中,涉及internal_memory.txt
文件的绝对路径有问题。
- 可能没有使用
- 解决方案:
- 若是第一种原因,则需对sources文件重新赋予读写权限,使用
sudo chmod -R 777
指令,或直接在deepstream-app -c deepstream_app_number_sv30.txt
指令前面加sudo
。 - 若是第二种原因,则需仔细在
nvdsparsebbox_Yolo.cpp
文件中核对涉及internal_memory.txt
文件的绝对路径的地方。
- 若是第一种原因,则需对sources文件重新赋予读写权限,使用
常见注意事项:
Attention 1
- 各子项目里面的
internal_memory.txt
文件属于共享内存区域,占位符被严格控制,切记不要改动里面的数据!!!,否则client.py
、client_ros.py
和ros节点输出的数据为无效数据,如下图所示。
Attention 2
- 该项目目前只能针对英伟达的jetson系列平台,包含(jetson TX2, jetson Nano,jetson Xavier NX,jetson AGX Xavier等),后续会推出X_86平台上的部署方案
Attention 3
- 本项目运行yolov5是3.0版本的权重文件,当用自定义的数据集去训练yolov5网络时,最好是git clone yolov5 v3.0版本进行训练,避免出现不可预知的错误。
Attention 4
- deepstream和Jetpack的匹配关系最好是
Jetpack 4.5
配deepstream 5.1 or 5.0
,目前目标测试过deepstream 5.1
配Jetpack 4.6
在执行sudo CUDA_VER=10.2 make -C nvdsinfer_custom_impl_Yolo
编译时出现了问题。
Attention 5
- 目前提供的engine文件
number_v30.engine
可识别如下目标:方形黑底白字数字牌,数字范围为:0、1、2、3。如下图所示:
020.cnblogs.com/blog/2619746/202112/2619746-20211214114233918-913570448.jpg)
Attention 6
- 若deepstream安装报错,或者将关键文件整乱了,可采用专门的卸载脚本
uninstall.sh
卸载,如下图所示。或者直接删除deepstream整个文件夹。
Attention 7
- 该项目目前只能针对英伟达的jetson系列平台,包含(jetson TX2, jetson Nano,jetson Xavier NX,jetson AGX Xavier等),后续会推出X_86平台上的部署方案