Skip to content

CDR项目常见问题及其解决方案(Common problems and solutions)

jianyang edited this page Jan 2, 2022 · 4 revisions

更新时间2021-12-14 09:59:05 星期二

常见问题集合

question 1

  • 使用sudo CUDA_VER=10.2 make -C nvdsinfer_custom_impl_Yolo指令编译时,若出现如下图错误: image
  • 错误原因
    • 可能是使用了本项目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工作空间的环境变量,并放到最后,如下图所示: image

question 3

  • 在运行 deepstream-app -c deepstream_app_number_sv30.txt 指令后,出现检测实时画面,但是命令行终端报 mmap err : Bad file descriptor错误,如下图所示: image
  • 错误原因:
    • 可能没有使用 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重新编译一次

常见注意事项:

Attention 1

  • 各子项目里面的internal_memory.txt文件属于共享内存区域,占位符被严格控制,切记不要改动里面的数据!!!,否则client.pyclient_ros.py和ros节点输出的数据为无效数据,如下图所示。 image

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.5deepstream 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。如下图所示: image 020.cnblogs.com/blog/2619746/202112/2619746-20211214114233918-913570448.jpg)

Attention 6

  • 若deepstream安装报错,或者将关键文件整乱了,可采用专门的卸载脚本uninstall.sh卸载,如下图所示。或者直接删除deepstream整个文件夹。 image

Attention 7

  • 该项目目前只能针对英伟达的jetson系列平台,包含(jetson TX2, jetson Nano,jetson Xavier NX,jetson AGX Xavier等),后续会推出X_86平台上的部署方案

Attention 8

  • wts文件不要在jetson主板上生成(在电脑上生成),否则识别精度会大幅度降低(yolov5s相当于yolov3-tiny的精度)