-
Notifications
You must be signed in to change notification settings - Fork 132
CDR项目常见问题及其解决方案(Common problems and solutions)
jianyang edited this page Jan 2, 2022
·
4 revisions
更新时间2021-12-14 09:59:05 星期二
- 使用
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生成
- 在运行client-ros.py时,出现
no module named darknet_ros_mags.msg
错误 - 错误原因:可能没有在
.bashrc
中添加boxes_ws工作空间的环境变量,或者添加了之后没有放到最后。 - 解决方案:向
.bashrc
中添加boxes_ws工作空间的环境变量,并放到最后,如下图所示:
- 在运行
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
文件的绝对路径的地方。 - 或者运行
CUDA_VER=10.2 make -C nvdsinfer_custom_impl_Yolo
重新编译一次
- 若是第一种原因,则需对sources文件重新赋予读写权限,使用
- 各子项目里面的
internal_memory.txt
文件属于共享内存区域,占位符被严格控制,切记不要改动里面的数据!!!,否则client.py
、client_ros.py
和ros节点输出的数据为无效数据,如下图所示。
- 该项目目前只能针对英伟达的jetson系列平台,包含(jetson TX2, jetson Nano,jetson Xavier NX,jetson AGX Xavier等),后续会推出X_86平台上的部署方案
- 本项目运行yolov5是3.0版本的权重文件,当用自定义的数据集去训练yolov5网络时,最好是git clone yolov5 v3.0版本进行训练,避免出现不可预知的错误。
- 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
编译时出现了问题。
- 目前提供的engine文件
number_v30.engine
可识别如下目标:方形黑底白字数字牌,数字范围为:0、1、2、3。如下图所示: 020.cnblogs.com/blog/2619746/202112/2619746-20211214114233918-913570448.jpg)
- 若deepstream安装报错,或者将关键文件整乱了,可采用专门的卸载脚本
uninstall.sh
卸载,如下图所示。或者直接删除deepstream整个文件夹。
- 该项目目前只能针对英伟达的jetson系列平台,包含(jetson TX2, jetson Nano,jetson Xavier NX,jetson AGX Xavier等),后续会推出X_86平台上的部署方案
- wts文件不要在jetson主板上生成(在电脑上生成),否则识别精度会大幅度降低(yolov5s相当于yolov3-tiny的精度)