首页> 中国专利> 一种基于python深度学习算法的视觉识别方法

一种基于python深度学习算法的视觉识别方法

摘要

本发明公开一种基于python深度学习算法的视觉识别方法,后台使用python深度学习算法,构建神经网络,完成视觉识别任务;中间层使用c++加载python运行环境,通过dll打包的方式提供对于python的运行环境管理及调用接口;前台使用.net的界面框架,构建结果显示、配置管理界面,本发明首先是将图像识别与结果展示分离,可以针对业务变更灵活地调整识别程序或软件界面;同时,由于python神经网络进行图像识别,可以完成复杂的视觉识别任务,如瑕疵检测、喷码识别等;然后,由于使用c++的d l l动态链接库托管python代码,可以被.net内存式调用,避免了通信延时。最后,基于.net的界面框架,可以构建出美观易用的软件界面,大幅降低客户的学习和使用成本。

著录项

  • 公开/公告号CN112925507A

    专利类型发明专利

  • 公开/公告日2021-06-08

    原文格式PDF

  • 申请/专利权人 北京智通云联科技有限公司;

    申请/专利号CN202110196154.2

  • 发明设计人 史晓凌;卞珂珂;李立琴;刘伟华;

    申请日2021-02-22

  • 分类号G06F8/20(20180101);G06F8/38(20180101);G06F9/445(20180101);G06F9/448(20180101);G06N3/04(20060101);G06N3/08(20060101);

  • 代理机构11543 北京八月瓜知识产权代理有限公司;

  • 代理人李斌

  • 地址 100020 北京市朝阳区慧忠北里219号楼19幢六层601号

  • 入库时间 2023-06-19 11:19:16

说明书

技术领域

本发明涉及计算机技术领域,尤其涉及一种基于python深度学习算法的视觉识别方法、存储控制器、电子设备及存储介质。

背景技术

视觉识别软件,即使用计算机数字图像处理技术,对采集图像进行识别并通过用户界面展示识别结果的专业软件;

Python是一种高级编程语言,相比其他语言,其在算法实现等具有较大优势。例如,完成同一个任务,C语言需要写1000行代码,C#需要写100行代码,而Python只需要写20行代码。并且,Python拥有众多的开源函数库;

在工业视觉领域,目前的视觉识别软件具有安全运行、准确率高等特点,但存在如下问题:

对检测场景的标准化要求较高。基于传统图像处理的视觉识别软件适配于标准化的识别场景,比如饮料液位检测、包装瑕疵检测等。这样导致无法完成更普遍的复杂检测需求,比如饮料异物检测、包装喷码检测等。

图像的识别延时较高。基于python神经网络的图像识别软件,往往需要在异构的识别程序与界面程序间做通信衔接,由于工业图像体积较大,图像通信会带来数十至数百毫秒的通信延时,会导致结果返回滞后,影响后续工艺执行。

展示界面美观性、易用性较低。基于python图形界面的视觉软件,虽然解决了图像传输延时的问题,但由于界面组件较为固定,导致界面风格及软件功能单一,客户学习成本高导致使用意愿降低。

总之,传统的视觉识别软件只能在识别场景、识别延时、界面美观易用中取舍,已有方案均无法适应高速、复杂的工业视觉识别场景。

发明内容

本发明的目的在于提供涉及一种基于python深度学习算法的视觉识别方法、存储控制器、电子设备及存储介质,能够完成复杂场景下的视觉检测识别任务。

第一方面,本发明实施例提供了一种基于python深度学习算法的视觉识别方法,通过软件实现,所述方法包括:

后台使用python深度学习算法,构建神经网络,完成视觉识别任务;

中间层使用c++加载python运行环境,通过dll打包的方式提供对于python的运行环境管理及调用接口;

前台使用.net的界面框架,构建结果显示、配置管理界面。

进一步地基于python深度学习算法的视觉识别软件架构,包括:

实现层,通过代码构建软件功能模块;

交互层,通过内存传值的方式完成加载调用;

应用层,负责采集产品图片,并进行识别结果显示。

可选地,所述实现层包括;

图形界面模块,基于.net构建软件界面供用户交互使用;

C++程序模块,使用C++加载python环境,并通过dll打包提供服务接口;

python程序模块,使用python加载神经网络模型,提供图像识别能力。

可选地,所述交互层包括;

视觉主程序模块,用于加载dll、接收采集图像、调用dll识别、结果显示;

dll调用模块,用于加载并维持python环境、提供识别接口;

识别脚本,所述识别脚本被dll模块加载,提供图像识别能力。

可选地,所述应用层包括:

图像采集模块,用于工业相机完成流水线上面产品图像的拍摄;

结果展示模块,用于识别结果反馈到软件界面。

进一步地,加载dll时,通过python的C语言支持包,完成python环境初始化,所述python的C语言支持包在构建的python环境中加载python识别脚本。

进一步地,所述视觉主程序模块工作包括以下步骤:

步骤1:启动程序,加载dll,通过加载dll程序,获得识别方法调用句柄;

步骤2:加载并读取python程序,dll加载时,通过python的C语言支持包,完成python环境初始化,在构建的python环境中加载python识别脚本;

步骤3:获取图片,调用dll识别方法,当接收到推送的图片时,创建线程调用dll识别方法;

步骤4:返回识别结果

dll接收到识别调用,根据传入的图片内存指针进行参数读取;

将其传入python运行环境,等待识别结果并返回给视觉软件。

步骤5:结果推送

视觉软件接收到dll返回值,将图像和识别结果一起推送到软件界面进行显示。

第二方面,本发明实施例提供了一种存储控制器,包括:处理器、存储器和总线;

所述存储器用于存储执行指令,所述处理器与所述存储器通过所述总线连接,当所述存储控制器运行时,所述处理器执行所述存储器存储的所述执行指令,以使所述存储控制器执行视觉主程序模块工作步骤。

第三方面,本发明提供了一种电子设备,包括:

处理器;

用于存储处理器可执行指令的存储器;

其中,所述处理器通过运行所述可执行指令以实现上述的方法。

第四方面,本发明提供了一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现上述方法的步骤。

有益效果

本发明提出了一种基于python深度学习算法的视觉识别方法,后台使用python深度学习算法,构建神经网络,完成视觉识别任务;中间层使用c++加载python运行环境,通过dll打包的方式提供对于python的运行环境管理及调用接口;前台使用.net的界面框架,构建结果显示、配置管理界面,本发明首先是将图像识别与结果展示分离,可以针对业务变更灵活地调整识别程序或软件界面;同时,由于python神经网络进行图像识别,可以完成复杂的视觉识别任务,如瑕疵检测、喷码识别等;然后,由于使用c++的dll动态链接库托管python代码,可以被.net内存式调用,避免了通信延时。最后,基于.net的界面框架,可以构建出美观易用的软件界面,大幅降低客户的学习和使用成本。

附图说明

图1为本发明实施例的一种基于python深度学习算法的视觉识别方法的流程图;

图2为本发明另一种实施例的一种基于python深度学习算法的视觉识别方法的软件架构示意图;

图3为本发明实施例的视觉主程序模块2-1工作时序;

图4为本发明实施例的一种电子设备的结构框图。

具体实施方式

下面将结合实施例对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

术语"第一"、"第二"仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有"第一"、"第二"的特征可以明示或者隐含地包括一个或者更多个所述特征。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。

下面结合附图说明和具体实施例对本发明作进一步描述:

本发明的目的在于提供一种基于python深度学习算法的视觉识别方法,能够实现针对复杂场景进行快速准确的视觉识别。

如图1所示,本发明实施例提供了一种基于python深度学习算法的视觉识别方法,所述方法包括:

S20、后台使用python深度学习算法,构建神经网络,完成视觉识别任务;

S40、中间层使用c++加载python运行环境,通过dll打包的方式提供对于python的运行环境管理及调用接口;

S60、前台使用.net的界面框架,构建结果显示、配置管理界面。

本实施例提出了一种基于python深度学习算法的视觉识别方法,后台使用python深度学习算法,构建神经网络,完成视觉识别任务;中间层使用c++加载python运行环境,通过dll打包的方式提供对于python的运行环境管理及调用接口;前台使用.net的界面框架,构建结果显示、配置管理界面,本发明首先是将图像识别与结果展示分离,可以针对业务变更灵活地调整识别程序或软件界面;同时,由于python神经网络进行图像识别,可以完成复杂的视觉识别任务,如瑕疵检测、喷码识别等;然后,由于使用c++的dll动态链接库托管python代码,可以被.net内存式调用,避免了通信延时。最后,基于.net的界面框架,可以构建出美观易用的软件界面,大幅降低客户的学习和使用成本。

具体地,如图2所示,基于python深度学习算法的视觉识别软件架构,包括:

实现层1,通过代码构建软件功能模块;

交互层2,通过内存传值的方式完成加载调用;

应用层3,负责采集产品图片,并进行识别结果显示。

具体地,所述实现层1包括;

图形界面模块1-1,基于.net构建软件界面供用户交互使用;

C++程序模块1-2,使用C++加载python环境,并通过dll打包提供服务接口;

python程序模块1-3,使用python加载神经网络模型,提供图像识别能力。

具体地,所述交互层包括;

视觉主程序模块2-1,用于加载dll、接收采集图像、调用dll识别、结果显示;

dll调用模块2-2,用于加载并维持python环境、提供识别接口;

识别脚本2-3,所述识别脚本被dll模块加载,提供图像识别能力。

进一步地,加载dll时,通过python的C语言支持包,完成python环境初始化,所述python的C语言支持包在构建的python环境中加载python识别脚本。

具体地,应用层3包含图像采集3-1,结果展示3-2两个模块。3-1由工业相机完成流水线上面的产品抓拍。3-2负责接收喷码识别的结果,将识别结果反馈到软件界面。

在一些实施例中,如图3所示,所述视觉主程序模块2-1工作包括以下步骤:

步骤1:启动程序,加载dll,通过加载dll程序,获得识别方法调用句柄;

步骤2:加载并读取python程序,dll加载时,通过python的C语言支持包,完成python环境初始化,在构建的python环境中加载python识别脚本;

步骤3:获取图片,调用dll识别方法,当接收到推送的图片时,创建线程调用dll识别方法;

步骤4:返回识别结果

dll接收到识别调用,根据传入的图片内存指针进行参数读取;

将其传入python运行环境,等待识别结果并返回给视觉软件。

步骤5:结果推送

视觉软件接收到dll返回值,将图像和识别结果一起推送到软件界面进行显示。

本实施例基于python深度学习算法完成视觉识别,并向用户提供界面展示。对工业流水线场景下的产品图片识别效果较好,适用范围大,不局限于某种固定产品。针对某一新流水线不同产品的检测需求,可以达到99.99%的准确率和20fps的检测速度。

基于同一发明构思,本发明实施例还提供了一种存储控制器,包括:处理器、存储器和总线;所述存储器用于存储执行指令,所述处理器与所述存储器通过所述总线连接,当所述存储控制器运行时,所述处理器执行所述存储器存储的所述执行指令,以使所述存储控制器执行基于python深度学习算法的视觉识别方法步骤。

基于同一发明构思,本发明实施例还提供了一种电子设备,图4示出了可以应用本发明实施例的电子设备的结构示意图,如图4所示,该计算机电子设备包括,中央处理单元(CPU)401,其可以根据存储在只读存储器(ROM)402中的程序或者从存储部分408加载到随机访问存储器(RAM)403中的程序而执行各种适当的动作和处理。在RAM 403中,还存储有系统400操作所需的各种程序和数据。CPU 401、ROM 402以及RAM 403通过总线404彼此相连。输入/输出(I/O)接口405也连接至总线404。

以下部件连接至I/O接口405:包括键盘、鼠标等的输入部分406;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分407;包括硬盘等的存储部分408;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分409。通信部分409经由诸如因特网的网络执行通信处理。驱动器410也根据需要连接至I/O接口405。可拆卸介质411,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器410上,以便于从其上读出的计算机程序根据需要被安装入存储部分408。

附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,所述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

本发明还提供了一种计算机可读存储介质,可以是单独存在,未装配入电子设备中的计算机可读存储介质。计算机可读存储介质存储有一个或者一个以上程序,所述程序被一个或者一个以上的处理器用来执行描述于本发明的基于python深度学习算法的视觉识别方法。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号