深道科技 机器视觉方案提供商

深道科技 机器视觉方案提供商


深道科技深度学习模型部署SDK


深度学习是近几年随着深度神经网络技术的突破而发展的一项新兴技术,尤其是在图像识别领域,具有非常广泛的应用前景,深度学习在很多场景下都突破了传统图像识别算法的应用界限,同时具有适应性强,定制成本低(无需图像算法专业知识)等优势。

深度学习技术发展时间比较短,其核心技术,包括标注,训练,部署这三大环节,目前非专业用户尚难以自行构建,造成了深度学习难以普及,深道科技为解决这个痛点,集自身之所长,融合各项最先进的软件技术,由人工智能大赛冠军团队研发推出了深度学习标注训练部署一体化平台,可以帮助非专业用户迅速训练出适用于自身场景的深度学习模型。提高工作效率。

整个定制训练过程包括两个部分:在线训练和离线部署。

在线训练:用户通过网站进行图像的标注,训练启动,模型测试等环节,可以反复迭代测试模型效果。

离线部署:用户下载训练效果满意的模型到Edgeideal计算盒进行部署。也可提供纯软件SDK部署方案。

主要流程环节如下图所示:

1641470268581674.png

本文主要介绍软件SDK部署方案。


部署SDK主要是通过库文件(windows系统为DLL文件,linux系统为SO文件),提供本平台训练好的深度模型的调用和推理功能, 方便用户集成到自己的软件系统中去,另外除部署必须的库文件和配置文件,网站也提供免费的UI(用户界面)模块下载,此模块配合SDK模块使用,可连接系统摄像头和工业相机,提供图形化界面,可以直接导入训练好的模型进行检测,方便用户快速验证模型和测试相机,另外也可通过UI模块连接相机采集训练图片。UI模块非集成必须模块。

网站提供SDK包和SDK+UI集成包下载,如需图形界面显示,或需要连接工业相机或系统摄像头,请下载SDK+UI集成包,如果需要做模型部署集成,不需要界面及摄像头连接,请下载SDK包。


SDK包有两种版本,一种是缺省的版本,不带GPU加速支持的,仅使用CPU推理,

一种是带GPU加速支持的,可使用NVIDIA公司的GPU加速推理速度,

两种版本接口完全相同,区别在于GPU版本推理速度快很多,提供给运行速度有要求的用户使用,

具体运行速度因GPU卡型号有差异,具体速度看下面的性能数据表。

GPU版本运行时需要额外安装NVIDIA的CUDA软件环境,如果不用GPU推理建议下载缺省SDK版本。


下载文件为zip格式压缩包,每个压缩包均有对应的SHA256校验码,下载文件后请在本地计算对比校验码,确保下载的压缩包是完整的。


SDK+UI集成包下载:SDK+UI集成包
SHA256: 3b6d80dc1a0c5e0b169dc41ec587d2d714e7b023221468ca45610052e0beb132
SDK包下载:SDK包
SHA256: bdf3d909bc43532279c07f582fa5a5604155aadd983dd10559234ffa262d085d
SDK GPU版下载:SDK GPU版
SHA256: f94b2269f44359bac8735ec133b000b24b4e3811efa2ae3e5ca48d676caaf7e7

SDK可运行在两种授权模式下:正式授权和试用授权,

两种模式下功能,性能和接口没有差别,只有授权方式的差别。

正式授权通过购买授权文件来授权,授权绑定机器,供用户正式环境部署使用。

试用授权无需购买授权,需要通过网络授权,运行时必须保持互联网连接,供用户测试评估使用。

用户可以先用试用授权,需要正式部署时,只要把授权文件拷贝到SDK所在目录即可切换为正式授权。

详细授权说明请阅读SDK包中的“SDK说明文档.txt”


SDK识别精度数据及性能数据:


推理硬件单张图片推理时间

COCO 2017

mAP0.5

COCO 2017

mAP0.5:0.95

备注
CPU150ms56%
36%

图片像素:512X512

性能测试命令:demo.exe deepideal.dll config.yaml test1.jpg 1000 0

NVIDIA GeForce GTX 750 Ti33ms
NVIDIA GeForce GTX 1080 Ti16ms
NVIDIA GeForce 940MX100ms


说明:

识别精度数据是在COCO 2017数据集(http://cocodataset.org)上评估的,输入图片像素512X512下的mAP0.5 和mAP0.5:0.95数据

测试环境配置:

CPU: Intel Core i5-6600 3.30G

内存: 8GRAM

操作系统:Win10 Pro 21H2

硬盘:Samsung SSD 850 EVO M.2 250GB

CUDA版本:11.3.1

CUDNN版本:8.4.1

显卡驱动版本:516.59


SDK+UI集成包使用方式:

SDK+UI集成包下载后无需安装,直接解压即可运行UI。windows系统下可双击解压后目录下的run_ui.bat文件

image.png

UI将启动,如果windows自带的摄像头可用,UI将自动打开该摄像头并显示画面:

1657700775610367.png


UI的主要功能包括:

1 导入深道科技网站训练后下载的模型文件

2 可直接打开当前操作系统已安装的摄像头,比如usb免驱摄像头

3 可直接打开支持GenICam标准协议的工业相机,通过网络进行相机访问

4 可通过打开的摄像头抓拍图片进行识别,测试模型识别效果,

5 可直接打开图片文件进行识别,测试模型识别效果

6 可通过摄像头采集训练图片


下面介绍各菜单的具体操作:

"文件"菜单实现功能1:导入模型文件,包括“导入模型”和“关闭”,“关闭”即为关闭退出UI程序。

1657706605393161.png

“导入模型”可导入从网站下载的训练好的模型文件供UI使用。点击该菜单将打开文件选择对话框,用户可选择下载的文件,然后点击“打开”按钮,UI将会执行导入操作,如导入成功将显示成功提示,此时需要关闭UI并重启,新导入的模型才能生效:

1657707729506737.png

训练好的模型文件下载是在网站平台的模型训练管理界面,

不清楚的可点此链接阅读训练说明:模型训练说明

以及标注说明:模型标注说明

1657707037265741.png

“摄像头设备”菜单实现功能2:打开系统已安装摄像头,点击将会自动识别并列出系统已安装的摄像头,如为USB免驱摄像头可即插即用。点击对应摄像头菜单将在主界面显示摄像头画面。当前选定打开的摄像头菜单前面会显示圆点标记。

image.png

主界面右侧“识别”和“采集”标签页实现功能4和6:抓拍图片识别,以及采集训练图片

主界面图像缺省状态下会显示摄像头或工业相机的实时视频流,用户可据此画面调节相机。

“识别”标签页中,点击“抓拍识别”将抓拍一张图片并用之前导入的模型进行识别,识别结果将自动保存到系统图片目录下,并在窗体底部状态栏显示具体保存位置。

识别结果将以红色矩形框标出,左上角显示目标名称以及置信度(置信度取值为0到1之间):

image.png

点击"连续识别"将在视频流中进行连续识别:

image.png

点击“图片识别”将打开文件选择对话框,用户选择一张本地图片文件后,程序进行识别并显示:

image.png

以上识别功能都将在主界面显示识别后的图片,点击“重置”将清除之前显示的识别图片,回到初始状态,即显示当前摄像头的实时画面。

“采集”标签页主要是为方便采集训练图片使用的,点击“抓拍”按钮将抓拍一张当前摄像头的画面并保存到系统图片目录。点击“连续抓拍”将以固定时间间隔抓拍图像并保存,点击“重置”将恢复初始摄像头实时画面。

image.png


“工业相机”菜单实现功能3,打开支持GenICam标准协议的工业相机(目前仅支持网络接口相机)。

在使用UI程序对接工业相机之前,需要先配置好工业相机的网络IP地址,最好设置为固定IP。确保工业相机和UI程序运行的主机在同一网段下,都使用有线网络,UDP协议包可以正常发送接收。

另外需要关闭操作系统防火墙,Win10下参考如下操作:开始->设置->更新和安全->Windows安全中心->防火墙和网络保护->公用网络

image.png

确保如上图红圈位置的选项是“关”的状态。


UI上点击“工业相机”菜单将展开如下子菜单:

image.png

其中“刷新列表”将扫描主机网络内连接的所有网络接口的工业相机,并自动列出在菜单下半部分。

上图显示已扫描到两台工业相机,菜单下半部将显示相机型号和ID。点击对应的菜单将打开该相机并在主界面显示相机的实时视频流画面,同时在对应菜单上显示圆点表示当前打开的相机。再次点击带圆点的菜单,将关闭该工业相机。跟摄像头菜单操作类似。


“设置”菜单可以对工业相机进行参数设置

工业相机参数设置比较多,主要分为“基本设置”,“高级设置”和“相机功能”,其中“相机功能为"相机所支持的GenICam协议中的功能树,每个品牌相机支持的功能树不一样,所以该界面将随不同相机而不同。


“基本设置”标签页中包括如下设置:

image.png


“相机”配置框:

“当前相机”:列表中当前选定的相机,点击刷新可重新刷新网络中的相机列表

“帧率”:设定的相机拍摄帧率,但可能实际帧率会有不同,取决与相机是否支持该设置

“像素格式”:该工业相机所支持的像素格式

“数据包字节数”:相机网络接口发送网络包的字节数,字节数越大,传输速度越快,可以支持的帧率就越高,但不能超过下面显示的网络MTU大小

“网络MTU”:列出用户界面程序运行主机的网络接口及MTU(Max Transmission Unit)大小,该参数非工业相机配置项,是属于网卡的配置项,建议在网卡配置中修改,最好大于3000

"图像ROI"配置框:

ROI是Region Of Interest,即在整个拍摄图片中仅选择返回感兴趣部分画面,ROI为任一矩形框,可指定左上角的坐标和矩形框的宽度及高度。ROI的设置支持手工输入和在实时相机画面中选取(此时工业相机需要处于打开并正常显示实时画面的状态)。点击“选取”按钮,即可在主界面显示的相机画面中点击并拉动鼠标画出想要的ROI位置:

image.png

或者仅指定ROI长宽,然后在相机画面中拖动选择位置即可

image.png


"曝光"配置框:可配置相机的曝光和增益值,可手工指定增益值和曝光时间,也可选择自动增益和曝光。


“高级设置”标签页中包括如下设置:

image.png

“图像变换”可以对原始图像进行一些简单的变化操作,如颜色反转,翻转,旋转等

“其他图像设置”和“程序设置”是关于图像算法的一些高级设置,移动鼠标到对应的选项上有对应解释


“相机功能”标签页中展示了当前相机支持的GenICam协议中的功能树:

image.png

“保存相机功能设置”可将相机的功能树保存为文本文件

“载入相机功能设置”可将保存的文本文件重新设置到相机

注意有些载入设置回相机的时候可能出现失败情况,因为可能相机不一定支持该配置的修改,或者配置之间有依赖关系,设置的顺序不一定满足要求,如失败可从文本文件中手动删除失败部分配置项再重试。


SDK包使用方式:

SDK包下载后无需安装,直接解压即可运行demo程序。demo程序是用来演示基本调用,同时也可以检查环境是否匹配并可用,也附带了源码文件demo.cpp,windows系统下可双击解压后目录下的run_sdk.bat文件

image.png

如输出文字中有"result": "detection finished"字符串即为SDK工作正常。

image.png

SDK提供C调用接口,可通过动态加载库文件的方式进行函数调用,无需编译期库文件,具体调用方式可阅读解压目录中的“SDK说明文档.txt”,以及参考解压后的demo.cpp文件。


SDK GPU版依赖的CUDA和CUDNN环境安装:

SDK  GPU版本可以提供比CPU版本快很多的推理速度,供需要高性能推理的用户使用。但需要安装NVIDIA公司的GPU卡,驱动程序,以及CUDA,CUDNN软件包,不然SDK加载会失败。考虑到兼容性,用户需要安装指定的CUDA和CUDNN版本。

GPU卡需要支持CUDA环境,并且Compute Capability需要在3.5以上,GPU型号所对应的Compute Capability值可在NVIDIA官网查询到:https://developer.nvidia.com/cuda-gpus

CUDA及驱动:下载版本为11.3.1的CUDA安装包,里面包含了GPU驱动,下载链接:

https://developer.nvidia.com/cuda-11-3-1-download-archive?target_os=Windows&target_arch=x86_64&target_version=10&target_type=exe_local

下载之后运行,按屏幕提示缺省安装就可以。

CUDNN:下载版本为8.4.1的CUDNN安装包,下载链接:

https://developer.nvidia.com/compute/cudnn/secure/8.4.1/local_installers/11.6/cudnn-windows-x86_64-8.4.1.50_cuda11.6-archive.zip

解压后将bin目录下所有文件拷贝到刚才CUDA安装目录的bin目录下即可

(该下载链接需要在NVIDIA网站注册开发者账号,如不想注册也可联系我们提供已下载好的CUDNN安装包)


如对深道科技产品有兴趣或需要支持,可微信扫码添加Deepideal小助手微信进一步沟通: