模型开发(www.nb-ai.com)
准备工作与标注
Q:云平台是否支持黑白相机拍摄的灰度图?
云平台既支持RGB三通道彩色图,也支持单通道的灰度图。一般地,彩色图会反映更多信息,使用效果更好。
Q:我的工控机是集成显卡,还能使用公司产品进行软件开发吗?
可以。如果您的工控机不是英伟达的独立显卡,您可以使用CPU进行软件开发。
Q:本地创建新项目时,应该注意哪些问题?
请注意:在创建新项目时,项目名称和项目存放的路径均不要出现中文!
训练与测试
Q:在云平台训练后测试图片效果很好,但在线下测试图片效果不好,为什么?
线上训练模型的图片分辨率应与线下测试的图片分辨率相近。如您在线下测试图片时未能达到预期效果,请检查两者分辨率是否一致。
Q:训练的过程是怎样的,大概时间有多长?
当用户点击”训练“按钮后,系统会将数据(图片,以及标注数据)封装为训练任务提交至服务器集群,服务器集群会安排训练任务。如果同时处理的任务较多时,新的训练任务会进入排队状态。
训练开始后,深度学习网络参数将不断更新。这个过程大概十几到二十分钟左右,但是也取决于训练图片的数量,以及训练的轮次(系统会根据需求进行调节)。
训练完成后,该深度学习网络将具备对该类样本检测的能力,可以用于后续的在线测试、导出模型等。
SDK下载与部署
概要性问题
Q:SDK可以支持本地检测吗?还是一定要联网呀?
SDK支持本地检测,无需联网。您只需要下载云平台训练好的模型文件和SDK工具包即可进行线下本地检测。
Q:如何检查电脑环境配置是否支持?
环境配置参见 使用SDK(C++) - Neurobot
也可以运行本公司的exe文件检查您的环境配置,详见: https://github.com/neurobot-ai/neurobot_sdk_demo/tree/main/detectEnvironmentAndPredict
开发运行问题
以下高亮问题,为客户遇到较多的问题,请先重点查看。
Q: 执行程序在加载模型(load_model函数)处报错?
常见错误提示如下所示。
出现此类问题,请检查如下各类是否设置正常:
(1)模型类型是否正确
当选择CPU模型时,即device_name="CPU",确保load_model函数加载的模型文件确为CPU模型。CPU模型文件夹内文件如下所示:
当选择GPU模型类型时,即device_name="cuda",确保load_model函数加载的模型文件确为GPU模型。GPU模型文件夹内文件如下所示:
(2)模型引用路径,是模型文件夹的路径
模型压缩包解压缩后,得到模型文件夹。在示例代码中,model_path加载模型的路径,需要赋值为模型文件夹的路径,而不是某个文件的路径。
Q:使用cpu模型运行时报异常错误
这个问题是不少使用CPU模型时遇到的问题。
可能是系统自带的老版本同名文件与SDK包中的onnxruntime.dll文件同名导致冲突。系统加载dll文件时会加载系统自带的老版本从而导致异常。
解决方法:
将SDK包bin目录中的onnxruntime.dll文件,拷贝进项目生成的exe所在文件夹,即“..\x64-release”中。双击生成的exe文件,检测是否运行正常。
某些情况下,双击生成的exe文件运行正常,但是在VisualStudio里运行依然报错。请尝试将SDK包中的onnxruntime.dll文件复制覆盖到C:\Windows\system32路径下,覆盖原老版本文件(需要系统权限)。
Q:为什么我在代码示例文件中修改完模型路径和图片路径后,运行程序提示路径错误?
在代码中的路径分隔符请使用双反斜杠“\\”,不要使用单反斜杠“\”。 比如您存放图片的文件路径为“C:\Users\81098\Desktop\test_pic”, 如果这样放在代码,会报错!
请使用双反斜杠:“C:\\Users\\81098\\Desktop\\test_pic”
Q: 怎么在项目中,找到“解决方案资源管理器”?
点击“视图”,点击“解决方案资源管理器”
Q:程序编译运行时,提示找不到某些组件。环境变量配置无效。
配置环境变量无效,其中一个常见原因是可能会出现与原来配置的环境变量发生冲突,导致调用 SDK 时会出现异常报错。请尝试:
需要在 path 里删除发生冲突的环境变量;
WIN11系统需将添加的环境变量上移至最上方。
Q:怎么使用cpu调用SDK进行开发?
使用cpu调用SDK步骤和使用英伟达显卡调用步骤相同,仅需修改代码中的device_name变量即可,将“cuda”修改为“cpu”。也可参见使用SDK(C++) - Neurobot
Q:运行SDK进行检测,报错56“无写授权文件的权限”怎么办?
当SDK运行时,程序会检测授权文件license.txt。当程序没有该文件的写入权限时,会报该错误。
查看权限的方法:
-
找到你要检查权限的文件或文件夹,右键单击它,并选择“属性”。
-
首先在“属性”的“常规”选项卡,查看属性“只读”是否处于勾选状态。如果是,请取消“只读”,再次重试SDK是否运行正常。
如果上述操作无效,再继续后面的尝试。
-
在“属性”窗口中,切换到“安全”选项卡。这个选项卡上会显示当前用户和组对该文件的访问权限。
-
点击“编辑”按钮以查看或更改权限设置。如果需要更改权限,请确保你有足够的管理员权限来执行此操作。
-
在“编辑”窗口中,你可以添加或删除用户、组或特定权限,例如读取、写入、执行等。你还可以更改现有的权限设置。
-
点击“确定”按钮保存更改。请注意,当你更改权限设置时,可能会影响到其他用户或应用程序对该文件的访问。 需要注意的是,在进行任何权限更改之前,请务必了解所有相关的风险和后果,并且按照最佳实践和安全策略来执行操作。不正确的权限设置可能导致安全漏洞或数据损坏,因此请谨慎处理。如果你不确定如何设置某个文件或文件夹的权限,请咨询系统管理员或技术支持人员的意见。
如更改后依然报错:
- 文件可能正在被别的软件使用中
- 磁盘空间不足
- 编辑器权限错误 ......
Q:配置环境时出现环境变量太大的情况(如图)
低代码下载与部署
Q:低代码流程中深度学习算子为什么选不了我的模型版本?
少部分老客户可能在已有的低代码项目里看到,深度学习算子的“模型版本”不是一个有效的版本号(如下图所示);或者是在“选择模型版本”中,找不到某些版本。
这是由于近期低代码平台做的一个升级。
为了给用户提供更优的模型算法,我们升级了模型,推出了以“标准版”、“高精版”为代表的新框架模型,以及对应的SDK包。新框架模型推理速度更快、运行更稳定、识别效果更好、可覆盖的场景更多,所以我们强烈推荐用户使用新框架模型,以替换之前的“普通模型”、“快速模型”。实际上,新用户默认使用的就是新框架模型,用户无需做额外的操作。
为了让新框架模型惠及低代码用户,我们近期升级了低代码平台。但是由于框架的不兼容性与复杂性,我们不得不在新版本的低代码中取消对老模型的支持,包括“普通模型”、“快速模型”。
因此,极少数仍在通过低代码部署老模型的用户,可能会受到影响。对此,我们非常抱歉,但是也有解决方案。
Solution:
请参考如下步骤,在低代码中部署普通模型、快速模型。
1、下载组件
在低代码开发平台,仍然正常配置开发您的低代码项目,包括流程开发、界面开发。在流程开发中,如果在深度学习算子的版本选择时,暂时无法选择您所需的版本(因为这些版本是老模型),可以先选择相应的新模型版本(新老模型的切换,请联系技术支持),完成低代码的开发。之后在低代码下载页下载组件。
2、下载模型
请在2D开发—>AI模型开发中,找到对应的模型,下载所需要的版本(包括普通模型和快速模型版本)。
3、下载V3.0版本的低代码部署包
对于英伟达30系列显卡,下载地址为:2D_lowCodeDeployPack_30GPU_V3.0
对于英伟达10/20系列显卡,下载地址为:2D_lowCodeDeployPack_10-20GPU_V3.0
4、导入部署包
将分别下载的组件、模型,复制到部署包的对应路径下,并进行配置。详细的配置说明见导入配置文件
Q:低代码部署包运行异常,如何查找异常的相关信息?
当低代码运行异常、开始排查问题原因时,查看低代码运行的错误码是常用的方法。
低代码部署包内的Logs文件夹下,nonCodeLog.txt文件即为日志文件。低代码运行中的日志信息报错在该文件内。双击用文本编辑器打开,即可查看。
默认情况下,日志文件仅保存错误级别的日志。
Q:低代码部署包如何调节所连的相机
低代码部署包本身没有相机参数调整的功能。
在低代码部署包配置相机连接之前,务必使用相机厂商的控制软件,如海康相机的MVS,配置好相机的各项参数,如IP地址、曝光参数、ISO参数等,确保在控制软件中能获取良好的图像。
完成之后,断开控制软件与相机的连接,再在低代码部署包的“图片源配置”中配置连接相机。
Q:常见错误码之——错误码50
查看日志文件(方法见前文),或者是查看低代码的控制台信息,发现报错错误码50。这是由于低代码程序运行需要License授权(低代码程序本身需要license,如果流程中包括深度学习模型,还需要额外的license授权),而程序查询不到授权文件。 请将获取到的授权文件License.txt放置在低代码部署包的根目录、即与nonCode.exe同级的路径下。
关于如何获取License.txt,请参考: 如何获取License
Q:常见错误码之——错误码56
查看日志文件,发现报错误码56,这是由于低代码程序没有对License.txt文件进行编辑的权限。请参考如何处理错误码56
Q: WIN10系统避免电脑自动删除文件
在桌面设置中进入【隐私和安全性】中的Windows安全中心
在Windows安全中心找到“病毒和威胁防护”,点击后进入页面,找到选项“病毒和病毒防护设置”下的“管理设置”。
进入管理设置页面后,下拉浏览找到“排除项”,打开“添加或删除排除项”。
进入排除项页面后,点击“添加排除项”,可以选择文件或文件夹对指定位置的文件(夹)进行保护,也可以选择文件类型对某一类型的所有文件进行保护。
运行环境
概要
SDK,或者是低代码部署包的运行环境,对于模型推理的稳定性、高效性至关重要。本文总结了一些与运行环境相关的问题及解决方案。
Q:模型在本地运行时推理时间长、时间波动大?
使用GPU进行模型推理时,GPU的设置对于推理效率有很大影响。可以尝试如下设置:
- 锁死最大时钟频率
以管理员身份打开命令行工具:搜索cmd,在找到的结果中点击鼠标右键,选择“以管理员身份运行”。
在终端查看部署电脑的最大时钟频率:nvidia-smi -q -d SUPPORTED_CLOCKS
设置显示的最大时钟频率:nvidia-smi -lgc 6001
- 管理3D设置中的低延时模式为超高
-
设置电源管理模式为最高性能优先
-
重启电脑
Q:与上下游设备连接,网络吞度速度较慢
当连接上下游设备,尤其是连接相机后,发现网络占有率高接近100%。这种情况也会造成整体的检测节拍收到影响。请参考如下的优化解决方法:
将网口的缓存区开到最大,接受缓存从256调整为2048,传输缓存从515调整为2048。
Q: 低代码程序被系统报有风险并隔离删除?
Windows系统的安全中心,有可能会误报低代码程序(如nonCode.exe)有风险,并进行隔离删除,导致低代码系统无法正常工作。
以下以Windows10系统为例,介绍如何将低代码程序加入“排除项”,以避免被安全中心误删。
在桌面设置中进入【隐私和安全性】中的Windows安全中心
在Windows安全中心找到“病毒和威胁防护”,点击后进入页面,找到选项“病毒和病毒防护设置”下的“管理设置”。
进入管理设置页面后,下拉浏览找到“排除项”,打开“添加或删除排除项”。
进入排除项页面后,点击“添加排除项”,可以选择文件或文件夹对指定位置的文件(夹)进行保护,也可以选择文件类型对某一类型的所有文件进行保护。