一种电池盒外观检测方法及装置与流程

文档序号:29924334发布日期:2022-05-07 10:32阅读:181来源:国知局
一种电池盒外观检测方法及装置与流程

1.本发明涉及一种电池盒外观检测方法及装置,特别是涉及一种传统工业视觉与深度学习算法结合的电池盒外观检测方法及装置。


背景技术:

2.现阶段,汽车工业生产领域针对电动汽车电池盒生产过程中的外观检测主要依靠人工目视检查或特定区域特定目标的传统视觉检测,针对随机性较大的异物有无检测,无法做到高效的工件全覆盖及多种、多形态异物的精确判断。此时需在传统工业视觉检测方法中结合深度学习算法。
3.python是一种高级编程语言,相比其他语言,其在算法实现等具有较大优势。例如,完成同一任务,c语言需要写1000行代码,c#需要写100行代码,而python只需要写20行代码,并且python拥有众多的开源函数库,因此,基于python的深度学习算法已得到广泛使用。
4.对于在工业视觉检测方法中结合深度学习算法实现视觉检测,目前常见的方法有基于c#语言开发的视觉软件框架结合基于python的深度学习算法,其可以使用c++程序调用python文件,然后将其做成动态链接库(dll),在c#中调用此dll文件。但是该方法运行速度太慢,为实现dll文件的成功调用需配置大量运行环境及依赖项,导致可扩展性不高;而若采用c++语言重新搭建框架则工作量较大。


技术实现要素:

5.为克服上述现有技术存在的不足,本发明之目的在于提供一种电池盒外观检测方法及装置,通过主软件调用基于python的深度学习算法的方式,令主软件与基于python的深度学习算法两个程序单独运行,通过socket通讯实现基于python的深度学习算法与主软件的稳定的数据传输,可以将基于python的深度学习算法融入到现有传统机器视觉检测框架内,实现了通过传统工业视觉与深度学习算法结合对电池盒外观的异物检测的目的,同时省略了c++封装动态链接库的繁琐过程。
6.为达上述目的,本发明提出一种电池盒外观检测方法,包括如下步骤:
7.步骤s1,通过采集大量的目标异物图片,使用深度学习算法构建并训练深度神经网络模型,以用于完成视觉识别任务;
8.步骤s2,对所构建的深度神经网络模型进行打包,生成一个可执行文件;
9.步骤s3,构建传统机器视觉框架作为主软件运行,并单独建立新线程调用所述可执行文件启动运行;
10.步骤s4,在所述可执行文件启动时创建服务端,将主软件作为客户端与服务端进行连接,以实现传统机器视觉框架主软件与服务端的可执行文件之间的数据通信;
11.步骤s5,在进行电池盒外观检测时,作为主软件的传统机器视觉框架采集并获取电池盒外观的图像将其发送至服务端,于服务端执行所述可执行文件获得识别结果,并将
识别结果返回至作为主软件的传统机器视觉框架予以输出。
12.优选地,于步骤s1中,基于python语言的深度学习算法构建所述深度神经网络模型,并利用所采集的目标异物图片对构建的模型进行训练。
13.优选地,于步骤s2中,使用python的第三方库pyinstaller将所构建的深度神经网络模型如yolov5模型进行打包,最终生成所述可执行文件,以保证证打包后该可执行文件在没有安装软件的环境也能运行。
14.优选地,打包后的所述深度神经网络模型的接口输入变量为工业相机采集到的图片,接口输出变量为图片中识别到的异物种类、数量及坐标值信息。
15.优选地,于步骤s3中,基于c#语言构建传统机器视觉框架,将所述传统机器视觉框架作为主软件运行,在该传统机器视觉框架作为主软件运行后,单独建立新线程调用所述可执行文件,使两个程序单独运行。
16.优选地,所述主软件通过process类建立新线程调用所述可执行文件,使其启动并运行。
17.优选地,于步骤s4中,在所述可执行文件启动时即创建与主软件socket通讯的服务端,与主软件建立socket连接。
18.优选地,通过socket通讯中的write函数和read函数实现主软件与所述服务端可执行文件之间的数据通信。
19.优选地,于步骤s5中,主软件在进行图像采集获得该外观图像后将图像地址通过write函数发送给服务端可执行文件,服务端在读取到图像后执行所述可执行文件,从而通过所述深度神经网络模型对其进行识别,并获得异物种类、数量及坐标值等识别结果,将识别结果发送给主软件,主软件则通过read函数读取该信息,并将异物区域进行显示操作。
20.为达到上述目的,本发明还提供一种电池盒外观检测装置,包括:
21.视觉识别模型建立单元,用于通过采集大量的目标异物图片,使用深度学习算法构建并训练深度神经网络模型,以用于完成视觉识别任务;
22.可执行文件生成单元,用于对所构建的深度神经网络模型进行打包,生成一个可执行文件;
23.传统机器视觉框架构建单元,用于构建传统机器视觉框架作为主软件运行,并单独建立新线程调用所述可执行文件启动运行;
24.服务端创建单元,用于在所述可执行文件启动时创建服务端,将主软件作为客户端与服务端进行链接,实现主软件与服务端之间的数据通信;
25.外观检测处理单元,用于在进行电池盒外观检测时,控制作为主软件的传统机器视觉框架采集并获取电池盒外观的图像将其发送至服务端,于服务端执行所述可执行文件获得识别结果,并将识别结果返回至作为主软件的传统机器视觉框架予以输出显示。
26.与现有技术相比,本发明一种电池盒外观检测方法及装置通过主软件调用可执行文件python.exe的方式,使两个程序单独运行,通过socket通讯实现深度学习算法与主软件的稳定的数据传输,从而实现将深度学习算法融入到现有传统机器视觉检测框架内,实现了通过传统工业视觉与深度学习算法结合对电池盒外观的异物检测的目的,同时省略了c++封装动态链接库的繁琐。
附图说明
27.图1为本发明一种电池盒外观检测方法的步骤流程图;
28.图2为本发明一种电池盒外观检测装置的系统结构图;
29.图3为本发明实施例之电池盒外观检测的过程示意图。
具体实施方式
30.以下通过特定的具体实例并结合附图说明本发明的实施方式,本领域技术人员可由本说明书所揭示的内容轻易地了解本发明的其它优点与功效。本发明亦可通过其它不同的具体实例加以施行或应用,本说明书中的各项细节亦可基于不同观点与应用,在不背离本发明的精神下进行各种修饰与变更。
31.图1为本发明一种电池盒外观检测方法的步骤流程图。如图1所示,本发明一种电池盒外观检测方法,包括如下步骤:
32.步骤s1,通过采集大量的目标异物图片,使用深度学习算法构建并训练深度神经网络模型,以用于完成视觉识别任务。
33.在本发明具体实施例中,采集大量的目标异物图片,基于python语言构建深度神经网络模型,即yolov5模型,并通过采集的大量目标异物图片进行训练,以实现通过该yolov5模型对图像中的目标异物精准检测,由于基于python的深度学习算法对图像中的目标进行检测已是现有成熟技术,本发明不再予以赘述。
34.步骤s2,对所构建的深度神经网络模型进行打包,生成一个可执行文件。
35.在本发明具体实施例中,使用python的第三方库pyinstaller将所构建的深度神经网络模型如yolov5模型进行打包,在打包时第三方库pyinstaller会自动下载和安装python代码运行所需的如matplotlib,numpy,scipy等模块和解释器等,最终生成一个可执行文件python.exe,以保证打包后该可执行文件即使在没有安装软件运行环境的电脑也能运行。
36.在本发明具体实施例中,打包后的该深度神经网络模型具有如下特征:第一,接口输入变量为工业相机采集到的图片,第二,接口输出变量为图片中识别到的异物种类、数量及坐标值等信息。
37.步骤s3,构建传统机器视觉框架作为主软件运行,单独建立新线程调用所述可执行文件启动运行。
38.在本发明具体实施例中,基于c#语言开发现有的传统机器视觉框架,将该传统机器视觉框架作为主软件运行,在该传统机器视觉框架作为主软件运行后,单独建立新线程调用可执行文件python.exe,使两个程序单独运行,在本发明具体实施例中,该传统机器视觉框架的主软件可通过process类建立新线程调用该可执行文件python.exe,让其启动并运行。由于基于c#语言开发现有传统机器视觉框架已是现有技术,在此不予赘述。
39.步骤s4,在所述可执行文件启动时创建服务端,将主软件作为客户端与服务端进行连接,以实现传统机器视觉框架主软件与服务端的可执行文件之间的数据通信。
40.在本发明具体实施例中,在可执行文件python.exe启动时即创建与主软件socket通讯的服务端,然后将传统机器视觉框架的主软件作为客户端与作为服务端的可执行文件python.exe进行链接,通过socket通讯中的write函数和read函数即实现传统机器视觉框
架的主软件与服务端可执行文件python.exe之间的数据通信。
41.步骤s5,在进行电池盒外观检测时,作为主软件的传统机器视觉框架采集并获取电池盒外观的图像将其发送至服务端,于服务端执行所述可执行文件获得识别结果,并将识别结果返回至作为主软件的传统机器视觉框架予以输出显示。
42.具体地,当进行电池盒外观检测时,利用摄像装置采集电池盒外观图像,传统机器视觉框架的主软件在进行图像采集获得该外观图像后将图像地址通过write函数发送给服务端python.exe,服务端在读取到图像后执行可执行文件python.exe,即可通过深度神经网络模型yolov5模型对其进行识别,并获得异物种类、数量及坐标值等识别结果,将异物种类、数量及坐标值发送给传统机器视觉框架的主软件,传统机器视觉框架的主软件则通过read函数读取该信息,并将异物区域进行显示操作,从而实现将基于python深度学习算法嵌入到基于c#语言开发的传统机器视觉框架中。
43.图2为本发明一种电池盒外观检装置的系统结构图。如图2所示,本发明一种电池盒外观检测装置,包括:
44.视觉识别模型建立单元201,用于通过采集大量的目标异物图片,使用深度学习算法构建并训练深度神经网络模型,以用于完成视觉识别任务。
45.在本发明具体实施例中,视觉识别模型建立单元201通过采集大量的目标异物图片,基于python语言构建神经网络,即yolov5模型,并通过采集的大量目标异物图片进行训练,以实现通过该yolov5模型对图像中的目标异物精准检测,由于基于python的深度学习算法对图像中的目标进行检测已是现有成熟技术,本发明不再予以赘述。
46.可执行文件生成单元202,用于对所构建的深度神经网络模型进行打包,生成一个可执行文件。
47.在本发明具体实施例中,可执行文件生成单元202使用python的第三方库pyinstaller将所构建的深度神经网络模型如yolov5模型进行打包,在打包时第三方库pyinstaller会自动下载和安装python代码运行所需的如matplotlib,numpy,scipy等模块和解释器等,最终生成一个可执行文件python.exe,以保证打包后的该可执行文件即使在没有安装软件运行环境的电脑也能运行。
48.在本发明具体实施例中,经打包后的该深度神经网络模型具有如下特征:第一,接口输入变量为工业相机采集到的图片,第二,接口输出变量为图片中识别到的异物种类、数量及坐标值等信息。
49.传统机器视觉框架构建单元203,用于构建现有传统机器视觉框架作为主软件运行,并单独建立新线程调用所述可执行文件启动运行。
50.在本发明具体实施例中,传统机器视觉框架构建单元203基于c#语言开发现有的传统机器视觉框架,并将该传统机器视觉框架作为主软件运行,在主软件运行后,单独建立新线程以调用可执行文件python.exe,使两个程序单独运行,在本发明具体实施例中,该传统机器视觉框架的主软件可通过process类建立新线程调用该可执行文件python.exe,使其启动并运行。由于基于c#语言开发现有传统机器视觉框架已是现有技术,在此不予赘述
51.服务端创建单元204,用于在所述可执行文件启动时创建服务端,将主软件作为客户端与服务端进行链接,实现主软件与服务端之间的数据通信。
52.在本发明具体实施例中,在可执行文件python.exe启动时即通过服务端创建单元
204创建socket通讯的服务端,然后将传统机器视觉框架的主软件作为客户端与作为服务端的python.exe进行链接,通过socket里的write和read函数即实现主软件与服务端可执行文件python.exe之间的数据通信。
53.外观检测处理单元205,用于在进行电池盒外观检测时,控制作为主软件的传统机器视觉框架采集并获取电池盒外观的图像将其发送至服务端,于服务端执行所述可执行文件获得识别结果,并将识别结果返回至作为主软件的传统机器视觉框架予以输出显示。
54.具体地,当进行电池盒外观检测时,利用摄像装置采集电池盒外观图像,传统机器视觉框架的主软件在进行图像采集获得该外观图像后将图像地址通过write函数发送给服务端python.exe,服务端在读取到图像后执行可执行文件python.exe,即可通过深度神经网络模型yolov5模型对其进行识别,并获得异物种类、数量及坐标值等识别结果,将异物种类、数量及坐标值发送给传统机器视觉框架的主软件,传统机器视觉框架的主软件则通过read函数读取该信息,并将异物区域进行显示操作,从而实现将基于python深度学习算法嵌入到基于c#语言开发的传统机器视觉框架中。
55.实施例
56.图3为本发明实施例之传统工业视觉与深度学习算法结合的电池盒外观检测示意图。如图3所示,本发明一种传统工业视觉与深度学习算法结合的电池盒外观检测方法,其过程如下:
57.步骤1,采集大量的目标异物图片,并基于python语言构建yolov5模型,实现对图像中异物的精准检测;使用python的第三方库pyinstaller将yolov5模型打包,在打包时pyinstaller会自动下载和安装python代码运行所需的如matplotlib,numpy,scipy等模块和解释器等,最终生产一个可执行文件python.exe,保证打包后即使在没有安装软件运行环境的电脑也能运行;基于c#语言开发的现有传统机器视觉框架开始运行时,通过process类调用python.exe,让其启动并运行。
58.打包后的模型具有如下特征:第一,接口输入变量为工业相机采集到的图片,第二,接口输出变量为图片中识别到的异物种类、数量及坐标值等信息;
59.步骤2,可执行文件python.exe在启动时及创建socket通讯的服务端;
60.步骤3,主软件作为客户端与服务端python.exe进行链接;
61.步骤4,链接建立,服务端发送“1”以确认链接;通过socket里的write和read函数即可实现主软件与python.exe之间的数据通信;
62.步骤5,主软件进行图像采集并将图像地址通过write函数发送给python.exe;
63.步骤6,服务端python.exe在读取到图像后反馈“2”给主软件,并开始通过yolov5模型进行识别,识别完毕后将识别结果如异物种类、数量及坐标值发送给现有框架的主软件;
64.步骤7,主软件收到识别结果,返回“3”,并通过read函数读取信息,再进行异物区域显示操作,这样可将yolov5模型中的深度学习算法嵌入到现有框架中;
65.步骤8,服务端python.exe收到“3”后,清除结果缓存,并反馈“4”;
66.步骤9,主软件收到“4”后,发送“0”;
67.步骤10,服务端python.exe收到“0”,则断开链接。
68.上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何本
领域技术人员均可在不违背本发明的精神及范畴下,对上述实施例进行修饰与改变。因此,本发明的权利保护范围,应如权利要求书所列。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1