一种面向3D视觉物体识别的图形化编程装置制造方法及图纸

技术编号:22783529 阅读:17 留言:0更新日期:2019-12-11 04:07
本发明专利技术公开了一种面向3D视觉物体识别的图形化编程装置,包括:3D视觉算法模块,用于封装具有设定功能的3D视觉算法;参数设置模块,用于提供3D视觉算法模块参数设置窗口接收3D视觉算法模块参数设置;3D视觉算法模块关联模块,用于通过模块间连线完成基于QT的“信号‑槽”关联,实现多模块的顺序触发设计;点云读取模块,用于读取通过3D相机采集的3D视觉物体的3D点云;执行模块,用于根据3D点云完成基于已关联的“信号‑槽”所有已连接的3D视觉算法模块的触发和执行,获得处理结果。本发明专利技术完全脱离了C++等编程语言形式,只需在模块中设置相关参数和在模块间连线即可完成编程,用户无需掌握编程语言,大大降低了部署技术要求,也缩短了部署周期。

A graphic programming device for 3D visual object recognition

The invention discloses a graphical programming device for 3D visual object recognition, including: 3D visual algorithm module, which is used to encapsulate 3D visual algorithm with setting function; parameter setting module, which is used to provide 3D visual algorithm module parameter setting window to receive 3D visual algorithm module parameter setting; 3D visual algorithm module association module, which is used to complete QT based connection between modules The \signal \u2011 slot\ association of is used to realize the sequential trigger design of multiple modules; the point cloud reading module is used to read the 3D point cloud of the 3D visual object collected by the 3D camera; the execution module is used to complete the trigger and execution of all connected 3D visual algorithm modules based on the associated \signal \u2011 slot\ according to the 3D point cloud, and obtain the processing results. The invention is completely separated from the form of programming language such as C + +, and can complete programming only by setting relevant parameters in the module and connecting wires between the modules. The user does not need to master the programming language, greatly reducing the technical requirements for deployment, and shortening the deployment cycle.

【技术实现步骤摘要】
一种面向3D视觉物体识别的图形化编程装置
本专利技术涉及图形化编程技术,尤其涉及一种面向3D视觉物体识别的图形化编程装置。
技术介绍
3D视觉技术是近年来兴起的新型机器视觉技术,在3D相机产生的不完整点云(工件背面或侧面点云缺失)、点云粘连(多个工件之间点云粘连)、非结构(存储空间中相邻的点云在三维空间中无确定的空间关系)的前提上,通过3D视觉算法可解决行业场景中的3D识别感知问题,为机器人提供视觉感知能力。目前3D视觉算法是通过传统的C++代码编写为函数的形式实现项目中的视觉识别目标,完成该工作需要具备较强的数学基础和软件基础,技术要求高、订制化强、批量复制慢。通过图形化编程的方式实施部署3D视觉算法时,只需配置参数和连线即可完成视觉算法设计,因此,无需具备较强的软件能力和数学能力,可有力支持3D视觉算法的快速部署、批量复制目标。在图形化编程方面,目前主要的方式是将代码块以模块进行封装,通过图形化拖拽和连线形成代码块组合,最终的形态依然是代码,且通过编译为可执行文件才能执行,此类的专利有(CN102015000854092、CN102018000792535等)。在机器人领域,封装了更复杂的算法和硬件驱动,并通过图形化参数配置、代码生成、编译执行的专利有(CN102015000868693)。此外,针对图形化编程中的代码解释的主要思路是建立基于节点的树并按照一定的方法遍历执行,此类专利有(CN902017000111231、CN102017000021316等)。
技术实现思路
本专利技术要解决的技术问题在于针对现有技术中的缺陷,提供一种面向3D视觉物体识别的图形化编程装置。本专利技术解决其技术问题所采用的技术方案是:一种面向3D视觉物体识别的图形化编程装置,包括:3D视觉算法模块,用于封装具有设定功能的3D视觉算法;所述3D视觉算法模块包括:对每个模块进行唯一标识的通用唯一识别码、标题(caption)、入口(Inputport)、出口(Outputport)、信息(Message)和嵌入式插件(embeddedwidget);参数设置模块,用于提供3D视觉算法模块参数设置窗口接收3D视觉算法模块参数设置,所述参数取决于该模块封装的3D视觉算法所需要的参数;3D视觉算法模块关联模块,用于通过3D视觉算法模块间连线完成基于QT的“信号-槽”关联,实现多个3D视觉算法模块的顺序触发设计;3D视觉算法模块连线顺序通过接收用户的指令获得;所述“信号-槽”关联具体如下:将3D视觉算法模块的入口定义为槽(slot),被与之连接3D视觉算法模块的出口发出的信号(signal)触发后,形成触发事件,从而调用该模块封装的3D视觉算法,该算法完成计算后,通过将出口(signal)发射(emit)出去,作为触发下一个与之连接的模块的信号;点云读取模块,用于读取通过3D相机采集的3D视觉物体的3D点云;执行模块,用于根据3D点云完成基于已关联的“信号-槽”所有已连接的3D视觉算法模块的触发和执行,获得处理结果。按上述方案,所述嵌入式插件包括标签(label)、可编辑文本(edit)、下拉组合按钮(combobox)、滑块(slider)和按钮(button)中的一个或多个。按上述方案,所述3D视觉算法模块中对外的数据接口(入口和出口)为基于智能指针std::shared_ptr<NodeData>的数据接口。按上述方案,所述执行模块具体如下:根据配置参数和连线以json文本保存算法参数和算法流程,然后完成基于已关联的“信号-槽”所有已连接的3D视觉算法模块的触发和执行。按上述方案,所述模块与模块之间“信号-槽”关联的连线采用B样条曲线。按上述方案,所述3D视觉算法模块关联模块中,“信号-槽”关联时,检测模块之间的入口和出口接口的数据类型,若数据类型不同时不会形成有效连线进行“信号-槽”关联。本专利技术产生的有益效果是:本专利技术系统完全脱离了C++等编程语言形式,只需在模块中设置相关参数和在模块间连线即可完成编程,用户无需掌握编程语言,大大降低了部署技术要求,也缩短了部署周期,有力的支撑了批量复制和快速部署目标。附图说明下面将结合附图及实施例对本专利技术作进一步说明,附图中:图1是本专利技术实施例的结构示意图;图2是本专利技术实施例的图形化编程示意图;图3是本专利技术实施例的基于QJson的参数和流程保存文件格式示意图。具体实施方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本专利技术,并不用于限定本专利技术。如图1所示,一种面向3D视觉物体识别的图形化编程装置,包括:3D视觉算法模块,用于封装具有特定功能的3D视觉算法;所述3D视觉算法模块包括:对每个模块进行唯一标识的通用唯一识别码(UniversallyUniqueIdentifier,UUID)、标题(caption)、入口(Inputport)、出口(Outputport)、信息(Message)和嵌入式插件(embeddedwidget);嵌入式插件包括标签(label)、可编辑文本(edit)、下拉组合按钮(combobox)、滑块(slider)和按钮(button)中的一个或多个。参数设置模块,用于提供3D视觉算法模块参数设置窗口接收3D视觉算法模块参数设置,所述参数取决于该模块封装的3D视觉算法所需要的参数,如VoxelGird算法模块对应的参数为分辨率(Resolution),如CloudReader模块中的参数为读取点云的文件路径;参数设置通过在嵌入式插件的可编辑文本中定义的各种参数进行设置;3D视觉算法模块关联模块,用于通过模块间连线完成基于QT的“信号-槽”关联,实现多模块的顺序触发设计;所述“信号-槽”关联具体如下:将3D视觉算法模块的入口定义为槽(slot),被与之连接3D视觉算法模块的出口发出的信号(signal)触发后,形成触发事件,从而调用该模块封装的3D视觉算法,该算法完成计算后,通过将出口(signal)发射(emit)出去,作为触发下一个与之连接的模块的信号;本实施例涉及的模块,对外的数据接口为基于智能指针std::shared_ptr<NodeData>的数据接口,智能指针指向的数据NodeData为定义了数据类型NodeDataType和基于NodeDataType内置的id号判断是否为同样的数据类型的C++类。NodeDataType为定义了id和name的结构体。面向不同算法所需的多种数据接口时,仅需从该类中进行继承,并通过智能指针类型转换获得实际数据类型std::dynamic_pointer_cast<PointCloudData>(_nodeData)。因此,模块之间可以传输所需的任意数据。...

【技术保护点】
1.一种面向3D视觉物体识别的图形化编程装置,其特征在于,包括:/n3D视觉算法模块,用于封装具有设定功能的3D视觉算法;/n所述3D视觉算法模块包括:对每个模块进行唯一标识的通用唯一识别码、标题、入口、出口、信息和嵌入式插件;/n参数设置模块,用于提供3D视觉算法模块参数设置窗口接收3D视觉算法模块参数设置;/n3D视觉算法模块关联模块,用于通过模块间连线完成基于QT的“信号-槽”关联,实现多模块的顺序触发设计;/n所述“信号-槽”关联具体如下:将3D视觉算法模块的入口定义为槽,被与之连接3D视觉算法模块的出口发出的信号触发后,形成触发事件,从而调用该模块封装的3D视觉算法,该算法完成计算后,通过将出口发射出去,作为触发下一个与之连接的模块的信号;/n点云读取模块,用于读取通过3D相机采集的3D视觉物体的3D点云;/n执行模块,用于根据3D点云完成基于已关联的“信号-槽”所有已连接的3D视觉算法模块的触发和执行,获得处理结果。/n

【技术特征摘要】
1.一种面向3D视觉物体识别的图形化编程装置,其特征在于,包括:
3D视觉算法模块,用于封装具有设定功能的3D视觉算法;
所述3D视觉算法模块包括:对每个模块进行唯一标识的通用唯一识别码、标题、入口、出口、信息和嵌入式插件;
参数设置模块,用于提供3D视觉算法模块参数设置窗口接收3D视觉算法模块参数设置;
3D视觉算法模块关联模块,用于通过模块间连线完成基于QT的“信号-槽”关联,实现多模块的顺序触发设计;
所述“信号-槽”关联具体如下:将3D视觉算法模块的入口定义为槽,被与之连接3D视觉算法模块的出口发出的信号触发后,形成触发事件,从而调用该模块封装的3D视觉算法,该算法完成计算后,通过将出口发射出去,作为触发下一个与之连接的模块的信号;
点云读取模块,用于读取通过3D相机采集的3D视觉物体的3D点云;
执行模块,用于根据3D点云完成基于已关联的“信号-槽”所有已连接的3D视觉算法模块的触发和执行,获得处理结果。


2.根据权利要求1所述的面向3D...

【专利技术属性】
技术研发人员:赵青高磊
申请(专利权)人:熵智科技深圳有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1