常见问题

Python Linux/Jetson SDK 运行时报错 ImportError: libGL.so.1: cannot open shared object file: No such file or directory

如果您使用的是无界面应用,可能会看到以下报错:

ImportError: libGL.so.1: cannot open shared object file: No such file or directory

请运行以下命令 安装 opencv-python-headless

pip install opencv-python-headless

Python Linux/Jetson SDK 运行时报错 ImportError: libgthread-2.0.so.0: cannot open shared object file: No such file or directory

如果您看到以下报错

ImportError: libgthread-2.0.so.0: cannot open shared object file: No such file or directory

请运行以下命令 安装 libglib2.0-0

sudo apt update
sudo apt install libglib2.0-0

DLSDK显示 licensemanger_cli.exe is not rcognized as an internal or external command

如果在运行DL SDK项目时遇到以下的报错,这说明软件的licensemanager_cli.exe 和 machine.lic 没有在正确的位置

../../_images/licensemanager_notfound.png

需要打开vs的项目设置,找到Debugging设置中的 Working Directory 路径,默认为项目文件的文件夹。然后需要将licensemanger_cli.exe 同license.lic文件复制到该位置。

../../_images/working_dir.png ../../_images/move.png

如果使用的是Build后的exe, 则需要将licensemanger_cli.exe 同license.lic文件放置于exe的同目录内。

重新运行项目即可解决。如果没有有效的license文件,请见下一条

DLSDK显示License Check Fail

如果在运行DL SDK时遇到以下的报错,这说明了软件在该电脑没有有效的license,无法使用软件。

../../_images/failed.png

这个时候你需要联系你的支持工程师、或者客服,获取权限。

你的支持工程师和客服都会需要你电脑上的一个信息:机器码。该码是每台电脑上都不同的,并且唯一的,系统就是通过机器码来获取该电脑是否拥有使用权限。

那么,如何查询你的机器码呢?

首先,你需要输入以下代码至你的command prompt窗口(使用 “WIN” + R**按键,输入 **cmd,打开command prompt窗口)。

python.exe -m pip install py-machineid

然后command prompt会自动运行并下载所需的文件。

../../_images/cmd_install_machine_id.png

然后,打开Python App,输入下方的指令,就可以查看到自己的机器码:

import machineid
print(machineid.id())

../../_images/checkmachineid.png

请把上方的机器码提供给你的支持工程师或者客服,他们会帮助你获取权限。


图片上传后,在标注页面打开是全黑的图片

../../_images/invalid_images.png

上传图片时,DaoAI World 会对上传的数据进行检查和验证,部分图片可能会出现上传失败(如上图)。这是因为图片可能出现了损坏,建议重新采集图片。或者使用以下的方式尝试:

方法1:尝试修复损坏数据

使用 XnView MP 图片工具, 下载连接

解压文件后,找到 XnView MP 图片工具的执行程序,双击运行。

../../_images/xnviewmp_exe.png

左上角 文件打开 选取损坏的图片。

../../_images/xnviewmp_open_file.png

左上角 文件另存为 保存图片到另外的路径下。

../../_images/xnviewmp_save_as.png

将保存好的图片重新上传。

../../_images/xnviewmp_upload_success.png

部署后,物体在边缘时 模型推理失败

当你发现物体在边缘时,模型无法匹配,报错时。

../../_images/roi_fail.png

那么请检查以下模型训练时的预处理步骤是否有ROI设置,并且物体出现在了ROI区域以外

../../_images/roi_fail_setting.png

由于感兴趣的区域(ROI)预处理会裁剪掉周围的背景区域,只保留中间的感兴趣的区域; 那么当物体出现在ROI范围之外时,会被当做背景的区域被裁剪掉,也就不会有预测结果了。

如果您遇到了这种问题,那么您可以考虑:

  1. 更新ROI区域,通过重新定义ROI的区域,正确的预留物体可能出现的区域,确保物体只会出现在ROI区域, 并重新训练模型

  2. 删除ROI预处理设置,并重新训练模型

然后您就可以正常的预测在图像边缘的物体了

../../_images/roi_fail_result.png

模型推理失败 (图片分辨率不同)

当您尝试模型推理时 报错无法推理时,请检查使用时的模型分辨率 是否和训练数据中的分辨率一致。

通常来说,模型对分辨率的变化是有一定的适应能力的

可是如果增加了ROI预处理步骤,ROI会根据原始图片的分辨率进行切割

如果这时,使用了比训练图片分辨率小很多的图片进行推理,那么整张图片都会被ROI的部分切割, 就会导致图片推理失败。

例如 , 训练集中的图片宽8000像素,ROI预处理步骤切割了左右两边各1000像素的背景区域。当您使用一个1000分辨率或以下的图片进行推理时,如下图左上角,预处理步骤将会按照原图的背景进行切割,也就时会把1000点像素删掉,那么这样就会完全将推理的图片删除,导致模型推理失败。

../../_images/res_fail.JPG

所以请您在使用时 用和训练集图片分辨率一致的图片进行测试和推理