APP下载

基于STM32F103的颜色及形状识别系统设计*

2023-10-29陈梅芬吴佳骏

山西电子技术 2023年5期
关键词:字节形状摄像头

陈梅芬,吴佳骏

(厦门海洋职业技术学院 信息工程学院,福建 厦门 361100)

0 引言

随着科学技术的发展,机器视觉技术在各个系统中得到了广泛的应用。颜色及形状识别是机器视觉技术的一个重要组成部分,关于图像及形状的识别算法和系统设计已有了较多的研究[1-4],如文[1]提出一种基于HSV空间与形状检测的餐盘识别算法,通过识别餐盘的颜色与形状,获取目标的信息并进行计价;文献[2]提出了基于MATLAB的颜色识别和基本形状参数的自动计算方法。目前,对颜色及形状识别的研究大部分是基于PC机平台或是资源较为丰富的嵌入式CPU, 本文提出一种基于STM32F103的颜色及形状识别系统设计,以满足资源较为有限的应用场景。

1 系统硬件电路设计

1.1 系统框架设计

本研究设计的基于STM32F103的颜色及形状识别系统,主要由STM32F103主控模块、带FIFO的摄像头模块等组成,其组成框图如图1所示。摄像头采用的是OV7725, STM32F103通过SCCB配置接口来配置摄像头模块,通过FIFO读时序将摄像头所获得的图像数据读到主控中。STM32F103主控模块将采集到的图像数据进行处理,通过串口输出颜色及形状识别的结果。

图1 系统组成框图

1.2 STM32F103主控模块

STM32F103主控模块采用了STM32F103ZET6芯片。STM32F103ZET6是基于ARM Cortex-M3的架构,最高主频为72 MHz, 供电电压为2.0 V~3.6 V, 内置64 k字节的SRAM和512 k字节的闪存[5]。

1.3 带FIFO的摄像头模块

OV7725摄像头最高支持640x480@60 Hz分辨率的视频输出,可通过标准的SCCB进行配置,能配置输出YUV422、RAW RGB, RGB(RGB444/RGB565、GRB422)这几种格式的视频数据,具有噪声抑制可调节的功能[6]。在本系统设计中,将OV7725配置成QVGA,RGB565视频输出。如图2所示,OV7725所采集到的图像数据通过FIFO_WE信号来控制是否写入AL422B FIFO中,AL422B内部带有3M bit存储空间,用于存储QVGA RGB565的数据时,可以缓存两帧的数据。P1为摄像头模块与STM32F103模块间的接口。其中SIO_C、SIO_D为标准的SCCB配置接口信号;VSYNC为标准的帧同步信号;FIFO_WR、FIFO_WRST分别为FIFO的写使能与写地址复位信号;FIFO_OE、FIFO_RCK、FIFO_RRST分别是FIFO的读使能、FIFO的读时钟、FIFO的读地址复位信号。

图2 带FIFO的摄像头模块的关键电路原理图

2 系统软件设计

2.1 系统软件总体设计

图3所示为系统软件总体设计流程图,STM32F103通过SCCB接口将OV7725摄像头模块初始为QVGA,RGB565输出,初始化UART4,将其波特率设置为115 200 bps。通过摄像头模块的VSYNC信号检测FIFO中是否有一帧完整的数据,当FIFO中有一帧完整的数据时,通过数据接口D0~D7读取一帧的数据,对其进行颜色识别,将识别后的数据以二值化的形式存储在STM32F103的内置RAM中,接着对二值化后的结果进行腐蚀操作,腐蚀操作后确定有效区域。形状识别模块实现对形状的判别,目前支持圆形、正方形和三角形的判别。最后,通过串口,将颜色及形状识别的结果传送出去。

图3 系统软件总体设计流程图

2.2 颜色识别及图像二值化设计

RGB颜色空间是图像处理中面向硬件、最常用、最基本的颜色空间,分别为红色(R),绿色(G)和蓝色(B)。红色、绿色和蓝色的不同组合可以构成几乎所有的其他颜色。HSV是根据颜色的直观性由A.R.Smith在1978年创建的一种颜色空间,也称六角锥体模型。HSV颜色空间由三部分组成,分别是色调(H),饱和度(S),明度(V)。HSV颜色空间与RGB颜色空间相比,它更接近人们对彩色的感知经验,更容易跟踪某种颜色的物体,经常在图像处理中用到[7]。

RGB转换到HSV的算法如下:

maxd=max(R,G,B);

mind=min(R,G,B);

V=max(R,G,B);

S=(maxd-mind)/maxd;

if (R == maxd) H =(G-B)/(maxd-mind)* 60;

if (G == maxd) H = 120+(B-R)/(maxd-mind)* 60;

if (B == maxd) H = 240 +(R-G)/(maxd-mind)* 60;

if (H <0) H = H+ 360.

S=S*100; //这一步是为了将S转化为整数,便于后面的计算

将RGB转换到HSV空间后,可通过HSV的数据范围来进行颜色的识别,主要是通过判断色调H是否落在某个颜色的范围内(通过H_color_value,H_color_range来设置范围,其中,H_color_value为中心色调,H_color_range为色调范围,这两个数值可根据应用场景做调整)。以红色为例,可通过如下的判断条件来判别是否是红色。

H_color_value=0; H_color_range=12;

if(((H>348)||(H<12)) &&(V>64) &&(S>20) )

*color_detect = 1;

else

*color_detect = 0.

在以上的判断条件中,(V>64) &&(S>20)用于判断是否是有效的彩色值,这里的64与20为经验值,可根据实际的应用场景做调整。

每个像素颜色识别的结果可以作为二值化的依据,当前像素的颜色如果是有效的颜色,则将此像素对应的二值化数值置1。对于QVGA分辨率的图像,共有320×240,即76 800个像素,若一个像素占用一个字节,则总共占用了75 k字节,而STM32F013ZET6共有64 k字节的内置SRAM, 所以在对图像进行二值化时,不允许用一个字节存储一个像素二值化后的数据,可将8个像素的二值化后的数值存储到一个字节中,以节约存储空间。如此,对于320×240的图像,其二值化后的数据占用了9 600字节,即大约9.4 k字节的存储空间。

2.3 腐蚀操作

图像的腐蚀的作用是将目标图像收缩,运算效果取决于结构元素大小内容和逻辑运算性质。腐蚀处理可表示成用结构元素对图像进行探测,找出图像中可放下该结构元素的位置。腐蚀是一种消除边界点,让边界点内缩的过程,可用来消除小且无意义的目标物。

对集合A与B,使用B对A进行腐蚀,用AΘB表示,并使用(B)z表示B平移z后得到的结果,若平移后的结果包含于A,则我们记录下z点,所有满足上述条件的z点组成的集合就是A被B腐蚀后的结果[8]。表示为:

AΘB={|z|(B)z⊆A}.

在实际应用中,按照如下的步骤,对二值化后的图像数据进行腐蚀操作,并找到有效区域。

步骤1:将图像以13×13像素为单位进行划分,对每个13×13像素进行腐蚀操作,以找到腐蚀中心。

步骤2:以腐蚀中心为起点,向左向右,向上向下寻找像素点,从而找出有效区域的图像块大小。

如图4所示,为步骤1的腐蚀算子,对每个13×13的图像块数据中的第7行与第7列的数据进行读取,若读取回的数据为0的次数超过了6次,则认为此13×13的图像块数据没有腐蚀中心;若读回的数据为0的次数不超过6次,则说明此13×13图像块数据有腐蚀中心,第7行第7列对应的像素即为腐蚀中心。

图4 步骤1的腐蚀算子

在步骤2中,以腐蚀中心的坐标为起点,先进行粗搜,即分别向左与向右读取像素数值,当读取的数值为0的次数超过了10次,则认为找到水平方向的粗搜索的边界。接着进行精搜,以粗搜索找到的水平方向的线段为起点分别向上与向下读取像素值,当读取的数值为0的次数超过了2次,则认为精搜索的垂直方向的区域确定了。基于精搜索确定的垂直方向的线段,分别向左向右进行精搜,就可以确定区域的水平方向的范围了。

2.4 形状识别

本系统研究的是物体在静止情况下,按照特定方向摆放,识别其为正方形、圆形或是三角形,采用的是边长特征的识别方法。通过图3系统软件总体设计流程图的腐蚀操作后,可以得到有效区域的起始点及区域的长与宽。如图5所示,W为有效区域的宽,H为有效区域的高。A为有效区域顶端像素中被置1的长度;B为有效区域中间像素中被置1的长度;C为有效区域底端像素被置1的长度。采用如下的方法进行识别:

图5 形状识别示意图

if((A<0.5W) &&(B>0.5W) &&(C<0.5W))

此形状为圆形

else if (A>0.5W) &&(B>0.5W) &&(C>0.5W))

此形状为正方形

else

此形状为三角形

2.5 系统测试

如图6所示,为测试结果图,对于图6(a)红色球的原始图像,通过HSV颜色识别红色并进行二值化操作及腐蚀操作,能得到有效的区域,并且识别出圆形;对于图6(b)黄色正方体的原始图像,能得到有效的区域,并识别出正方形。

图6 测试结果

3 结论

本文提出了一种基于STM32的颜色及形状识别的系统设计,能较好地识别红、黄和绿等不同颜色的物体,并对特定形状如圆形、正方形、三角形进行形状识别。该系统设计可将识别结果通过串口发送出来,易于集成与移植,具有一定的实践意义。当然该系统设计还有待进一步改善,如目前的设计只适用于识别一个有效物体的情况,如若要实现多个有效物体的识别,则需对系统软件设计进行升级;如若碰到对系统性能要求较高的应用场景,可较为快速地将软件移植到高端的CPU上。

猜你喜欢

字节形状摄像头
挖藕 假如悲伤有形状……
浙江首试公路非现场执法新型摄像头
摄像头连接器可提供360°视角图像
No.8 字节跳动将推出独立出口电商APP
No.10 “字节跳动手机”要来了?
你的形状
基于太赫兹技术的新一代摄像头及其在安防领域的应用探讨
简谈MC7字节码
看到的是什么形状
奔驰360°摄像头系统介绍