摘 要
通过对该测控系统结构和特点的分析,结合现代控制技术设计理念实现了以
微控制器 STM32 系列单片机与视觉处理摄像头 openmv 为核心的手势识别系统。
通过 openmv 采集目标物品的颜色与形状信息,使用多种数据处理方法,从而识
别物体周长,颜色,形状等信息进而通过 LCD 显示出上述信息。其工作过程为:
通过 openmv 采集物品的颜色形状并进行滤波发送到 stm32 中。控制器进行数据
处理,进而在 LCD 上显示计算结果,在寻找模式下驱动舵机进行从左到右的扫描
直至发现目标将摄像头中心对准目标的几何中心,并进行判别。
关键词:OPENMV,STM32,视觉处理,深度学习,数字滤波。
目录
1 系统方案 .......................................................... 3
1.1 系统构成以及方案简介 ................................................................................. 3
1.2 数据处理方法的比较与选择 ......................................................................... 3
1.3 传感器的论证与选择 ..................................................................................... 4
2 系统理论分析与计算 ................................................ 5
2.1 物体识别分析 ................................................................................................ 5
2.2 传感器的检测分析 ........................................................................................ 5
2.3 控制方法分析 ................................................................................................ 5
3 电路与程序设计 .................................................... 6
3.1 最小系统模块电路 ......................................................................................... 6
3.2 显示模块电路设计 ......................................................................................... 7
3.3 电源电路设计 ................................................................................................. 7
3.4 程序设计思路 ................................................................................................. 7
4 测试方案与测试结果 ................................................ 8
4.1、测试方案 ...................................................................................................... 8
4.2、测试数据报告 .............................................................................................. 8
4.3、测试结果 ...................................................................................................... 8
附录一 程序清单(部分) ............................ 错误!未定义书签。
2
1 系统方案
1.1 系统结构及方案简介
非接触物体尺寸形态测量装置结构:
(a)STM34F407ZGT6
(b)OPEN MV 视觉处理器
(c)电源稳压模块
(d)USART HMI 智能串口屏
(e)K210 开发板 12
(f)TFmini-s 激光测距
(g)云台控制
方案简介:
(1)系统包括 STM32 单片机,OPENMV 视觉处理器以及 K210 开发板。
OPENMV 先进行初步的滤波及数据处理,K210 开发板对所测量目标的颜色和
形状以及几何点的测试进行深度学习并识别,然后将处理之后的信号发送到单
片机上进行控制算法的进一步处理通过卡尔曼滤波以及 PID 算法来调整稳定舵
机方向和转速,稳定并准确的完成。
(2)深度神经网络实现图像理解: 传统的机器学习技术往往使用原始形式来
处理自然数据,模型的学习能力受到很大的局限,构成一个模式识别或机器学
习系统往往需要相当的专业知识来从原始数据中(如图像的像素值)提取特
征,并转换成一个适当的内部表示。而深度学习则具有自动提取特征的能力,
它是一种针对表示的学习。
1.2 数据处理方法的比较与选择
方案 1:平均值滤波
3
优点:就是对最近一些数求平均,是最常用最简单的方法,对高频低幅值
随机噪声有效,缺点是会损失原始数据中的高频分量,对高幅值干扰会扩大影
响。下面的程序中应用了移位平均算法,效率高,且不受求平均的数据数目大
小的影响。两种滤波方式都有一定延时。
缺点:滤波效果一般,干扰较大。
方案 2:卡尔曼滤波,
优点:卡尔曼滤波是一种利用线性系统状态方程,通过系统输入输出观测
数据,对系统状态进行最优估计的算法。Kalman 滤波在测量方差已知的情况下
能够从一系列存在测量噪声的数据中,估计动态系统的状态。便于计算机编程
实现,并能够对现场采集的数据进行实时的更新和处理。
缺点:需要一定学习成本
综合两者的优缺点决定采用方案 2。
1.3 传感器的论证与选择
方案 1:OV2640
优点:1.高灵敏度、低电压适合嵌入式应用
2.标准的 SCCB 接口,兼容 IIC 接口
3.支持 RawRGB、 RGB(RGB565/RGB555)、 GRB422、 YUV(422/420)
支持 UXGA、 SXGA、 SVGA 以及按比例缩小到从 SXGA 到 40*30
的任何尺寸
缺点:1.处理能力低下,
方案 2:OPENMV4
优点: OpenMV4 采用了 STM32H7 高性能微控制器。处理器运行在 400MHz
主频,功能强大的 MCU 让 OpenMV4 性能强悍!可以轻松地在 OpenMV4 平台上几
秒内直接运行颜色跟踪、人脸识别与检测等机器视觉算法。还带了基于 caffe
深度学习框架的 cnn 神经网络框架,可在 openmv 运行 CIFAR10、CIFAR10
4
Fast MNIST 、Smile Detection 等模型。支持可拆卸式的摄像头模块。
缺点:价格昂贵,需要一定学习成本。
综合两者的优缺点决定采用方案 2。
2 系统理论分析与计算
2.1 物体识别分析
1)根据比赛要求通过 OPENMV 进行测量,测量物体形状边长以及目标与测量头的
距离 OpenMV 上的机器视觉算法包括寻找色块、人脸检测、眼球跟踪、边缘检
测、标志跟踪等。
2)通过 K210 进行深度神经网络学习实现图像理解: 传统的机器学习技术往
往使用原始形式来处理自然数据,模型的学习能力受到很大的局限,构成一个
模式识别或机器学习系统往往需要相当的专业知识来从原始数据中(如图像的
像素值)提取特征,并转换成一个适当的内部表示。而深度学习则具有自动提
取特征的能力,它是一种针对表示的学习。
2.2 传感器的检测分析
1. 边缘检测
边缘检测就是轮廓检测,基于 edges.py 来完成实时轮廓提取。
1.构造函数
OpenMV 的库集成度非常高,只需要一个函数就可以进行图片的边缘检测。
2. 构造函数
本节的目标是识别摄像头采集图像中的圆形并画出来。构造函数如下:
• image.find_circle(roi, x_stride=2, y_stride=1. threshold=2000,
x_margin=10, y_margin=10, r_margin=10, r_min=2, r_max, r_step=2)
找圆函数,返回一个 image.circle 的圆形对象,该对象有四个值:圆心
5
(x,y), 半径( r), 量级(magnitude),量级越大表示可信度越高。大部
分参数使用默认。
实现的特征点识别,首先对采集到的图案或者物体进行学习识别,然后当摄像头
重新抓捕到跟学习的目标特征点一样的图片时,就标记出来。
2.3 控制方法分析
物体识别系统由 OPENMV,激光测距,K210,单片机和 lcd 构成。通过触
摸屏来选择模式,将 OPENMV 的串口通道连接到 Stm32。利用 OPEN MV 视觉
处理器、K210 开发板对所指定物进行识别判断,然后通过处理器基于的处理图
像的算法模型将数据处理完成后通过串口传入 32 单片机,然后单片机再根据传
入的数据进行判断改变云台的水平角度和仰角。实现视觉处理器、单片机、云台
装置之间的交互,从而完成对所制定物的形状、颜色、几何中心点的识别、对不
同球体类型的判断,以及对移动物体的识别,跟踪。
3 电路与程序设计
3.1 最小系统模块电路
此次设计我们采用 STM32 单片机,它是一款增强型 32 位单片机,该单片机采用
arm 内核,可运行在 180MHz 总线频率上。 处理速度快。电路图如下:
6
d3.2 显示模块电路设计
3.3 电源电路设计
3.4 程序设计思路
通过 OPENMV 进行色块识别以及白平衡的色点多少,用 K210 进行深度学习来
识别篮球足球与排球。然后通过 iic 与 STM32 进行通信,然后由单片机将数据滤
波然后进行 PID 的闭环控制舵机进行旋转。
7
4 测试方案与测试结果
4.1、测试方案:
多次测量采集多组数据进行拟合曲线,获得函数。
4.2、测试数据报告
测试方法在测试前将各个配件安装好摆正,保证整个框架在准确位置启动电
源开始测试。测试时选择相应选题完成相应的任务。任务进行时触摸屏实时显示
功能模式,判决结果。
距离(mm)
305
315
296
301
基础部分测试
形状
正三角形
正三角形
正三角形
正三角形
正三角形
正三角形
发挥部分测试
球类
足球
足球
足球
4.2、测试结果
距离
321
311
316
颜色
绿
绿
绿
绿
绿
误差
0.5
1
1
测试结果及分析 根据以上数据表明,所设计的物体识别系统稳定能基本完
成任务要求。
8