一种基于人工智能的零部件识别学习系统

2020-08-28 06:17谢智阳陈泽鑫魏晓青
汽车电器 2020年8期
关键词:开发板控制板控件

谢智阳, 陈泽鑫, 陈 婷, 魏晓青

(1.河源职业技术学院, 广东 河源 517000; 2.河源市工业机器人技术应用工程技术研究中心, 广东 河源 517000)

随着科技文化的发展,获取资源的途径各式各样,知识不仅能从书本中获取,还能从网络各媒体中获取,例如在学校中,一些零部件粘贴有二维码,学生通过手机扫描二维码,获取该零部件信息,让学生不仅可以学到课堂中的知识,也可以扩展该零部件知识,还可以随时进行零部件知识的复习。文献[1]中研究了基于二维码技术的多媒体学习效率分析;文献[2]中研究了基于机器视觉的条码在线缺陷检测系统,解决了条码品质检测的问题;文献[3]中采用基于边缘像素宽度和灰度运算双可控的数学形态学方法,解决了二维码的缺陷检测问题。

鉴于前人对传统二维码缺陷的研究较少,本文旨在设计一种基于人工智能的零部件识别学习系统,实现多角度拍摄零部件识别获取资源,解决了过塑纸质二维码所存在的缺陷,而且有效降低人力资源成本,为用户提供了方便。

1 系统总体设计

1.1 总体结构布局

本系统主要分为四大部分:机械与结构设计、电控电路设计、UI界面设计、图像识别系统设计。该系统以JETSON NANO嵌入式开发板为硬件基础,Windows 10操作系统为软件基础,系统框架图如图1所示,其功能有以下几点。

图1 系统框架图

1) Arduino控制板是摄像平台实现的控制核心,所设计装置通过USB摄像头多角度采集零部件图像。

2) JETSON NANO嵌入式开发板是识别系统的控制核心,对采集到的图像进行处理分析,最后将所需图像及资料选择页面呈现于LED触摸显示屏中。

1.2 摄像平台结构设计

鉴于汽车零部件色调单一,主要以轮廓特征为主,单一角度采集到的图像难以满足识别的要求,因此需设计可采集到多角度的图像采集装置。摄像平台外观3D展示图如图2所示。

2 摄像平台硬件系统

2.1 摄像头旋转结构

通过设定Arduino控制板驱动电动舵机7的转速带动摄像头支架联轴器10,摄像头支架联轴器10进一步带动摄像头支架2转动。摄像头旋转结构如图3所示。图2摄像头支架2中央设置有USB摄像头。

图3 摄像头旋转结构

2.2 零部件旋转云台

通过设定Arduino控制板控制旋转电机25的转速带动主动齿轮23,主动齿轮23进一步带动从动齿轮22转动,从而实现零部件摆放台8的旋转。零部件旋转云台如图4所示。

图4 零部件旋转云台

3 电控电路设计的整体工作流程

系统采用机电一体化结构,在底盘底部设置了4个万向轮,便于系统移动,为了装置整洁美观,配件主要集中于主机机箱后方。主要电子硬件有Arduino 控制板、JETSON NANO 嵌入式开发板、电机驱动板、旋转电机、电动舵机、USB摄像头、LED触摸显示屏、主机机箱、电池等部件。Arduino控制板的型号为Arduino UNO R3,Arduino UNO R3板数字输出端子带有PWM功能,可以直接驱动微型直流电动舵机和电机,控制方便[4-6];电机驱动板为L298N电机驱动模块,可实现电机正反转及调速、启动性能好、启动转矩大。

本电控系统流程如下:按下启动按钮,主机机箱开机,LED触摸显示屏启动,Arduino 控制板驱动电机驱动板来控制电机的转动,从而实现摄像头支架的转动,进一步地,Arduino控制板控制电动舵机转动角度,进而实现零部件摆放台的旋转,结合摄像头旋转结构和零部件旋转云台的结构装置,从而实现多角度拍摄零部件,USB摄像头获取零部件图像信息,进而JETSON NANO 嵌入式开发板对图像进行图像处理、资料匹配等功能,并将其显示在LED触摸显示屏上,电池给整个装置供电。电控系统总原理图如图5所示。

图5 电控系统总原理图

4 软件系统

4.1 UI界面设计

UI界面的开发以Windows 10系统作为开发环境,主要将Python编程语言、Qt Designer以及PyQt5和Eric6技术相结合。在开始进行界面设计时,需要先搭建Eric6界面环境,然后经Eric6转入Qt Designer[7]。根据开发要求,界面功能主要包括界面登录、控件交互以及界面交互功能。UI界面设计流程图如图6所示。

图6 UI界面设计流程图

4.1.1 登陆界面设计

在Qt Designer中创建一个对话框窗口,拖动2个lineEdit控件并设置属性,分别作为账号account、密码password,本设计设置账户名为小小,账户密码为123456,可选择记住密码功能或者自动登录功能,拖动2个pushButton控件,分别为“确定”和“取消”,然后进入槽函数编辑界面,对2个pushButton控件 添 加 触 发 信 号[8-9]。登陆界面如图7所示。

4.1.2 主界面设计

首先在Qt Designer中创建一个主窗口,拖动12 个Push Button 控件、2个Label控件、1个DateTileEdit、1个LineEdit控件放置主窗口区,本系统将12个控件分别命名为打开摄像头、摄像头实时识别、捕获图片、打开图片识别、查看预处理图像、清除识别数据、再次识别、识别结果、原理、视频、PPT与相似对比;2个Label控件分别命名为摄像图和捕获图;LineEdit控件命名为汽车零件识别系统,然后对控件以及界面进行调整和布局,最后进入槽函数编辑界面,设置槽函数[8-9]。主界面布局如图8所示。

图7 登录界面

图8 主界面布局

4.1.3 控件交互以及界面交互

将主界面和登录界面的.ui文件在Eric6转化为.py文件,把两个.py文件源代码中的QMainWindow和QLogindialog两个类融合,其中,继承QMainWindow作为主界面,QLogindialog类则用于设计和实现登录界面的功能。在登录界面中,右键“确定”pushbutton控件,然后选择转为槽添加信号clicked() 事件,最后在源代码中添加跳转界面的核心代码[10]。

4.2 图像识别系统设计

4.2.1 JETSON NANO图像采集处理系统

启动JETSON NANO嵌入式开发板首先需要安装ubuntu18.04,下载系统镜像。JETSON NANO嵌入式开发板主要包括图像采集模块、预处理模块和图像识别模块。功能模块流程图如图9所示。

图9 功能模块流程图

4.2.2 图像采集模块流程

在摄像平台的辅助下,JETSON NANO嵌入式开发板驱动USB摄像头进行多角度拍摄零部件图像。

4.2.3 图像预处理流程

本系统主要核心算法采用SIFT特征提取法,图像采集模块采集到图像,预处理模块对图像进行图像灰度化,然后检测关键点进行暴力匹配,进而提取图像特征,特征点匹配成功将会累加,如果最佳匹配累加数值大于10,认定2幅图像匹配成功,随后跳转链接,反之匹配失败,最后匹配成功后JETSON NANO嵌入式开发板将处理后的图像呈现于LED触摸显示屏中[11-12]。

4.3 图像识别系统测试

特征点连线如图10所示。

图10 特征点连线图

5 结论

本文基于JETSON NANO 嵌入式开发板为硬件基础、Windows 10操作系统为软件基础,通过结合图像识别以及界面开发技术,实现了一种基于人工智能的零部件识别学习系统所需的功能,整套系统架构合理,不仅提高了课堂学习效率,满足学生自主学习需求的问题,极大地增强了学习的灵活性和高效率,还有效地降低人力资源成本,解决了如今市面上过塑纸质二维码所存在的问题。

猜你喜欢
开发板控制板控件
基于C++Builder 的电子邮件接收程序设计*
使用“填表单”微信小程序 统计信息很方便
基于.net的用户定义验证控件的应用分析
基于Verilog语言的4位二进制可逆计数器的设计
谈谈DAM中波发射机的单元电路调整
开发板在单片机原理及接口技术课程教学中的应用
一种集成脚本控制单元的设计与实现
一种全隔离的无刷直流电机的反馈制动控制板的研究
ARM宣布mbed Enabled Freescale FRDM—K64F开发板通过微软认证
MiniGUI在基于OMAP5912开发板上的移植