您的当前位置:首页正文

基于FPGA的机器人视觉系统研究与设计

2023-04-25 来源:意榕旅游网
智能应用

基于FPGA的机器人视觉系统研究与设计胡迎刚

(四川工商学院,四川成都,611745)

基金项目:四川省教育厅科研重点项目“基于FPGA的机器人视觉系统研究与设计”(项目编号:17ZA0243)研究成果。

摘要:本文在研究现有机器人视觉系统功能、原理、结构和实现方法基础上,完成了以FPGA(Field Programmable Gate Array,现场可编程门阵列)和COMS图像传感器为核心平台的视觉系统硬件设计,以硬件描述语言为工具完成了常见数字图像处理算法实现,完成了人脸识别系统的应用开发。较传统机器视觉硬件系统而言,基于FPGA的机器人视觉系统具有体积小、功耗低、速度快、配置灵活、移植方便等突出优点,可广泛应用于对响应速度要求高、定制化服务需求的机器人视觉系统中,提高系统设计效率。关键词:机器视觉;人工智能;FPGA;硬件描述语言;人脸识别1 机器视觉技术概念及现状

出各种测量和判断,从事检验、目标跟踪、方向辨别等工作。SmartCamera(智嵌入式相机)两大类。基于PC的视觉系统主要利用PC的开放性、高度的编程灵活性和良好的Windows界面,内含高性能图像捕获卡构成,系统总体成具有多功能、模块化、高可靠性等特点。

本低;嵌入式智能相机是一种高度集成化的微小型机器视觉系统,它将图像采集、处理和通信功能集成于单一相机内,

目前常见的机器视觉系统有PC-Based(板卡式)和

所谓机器视觉就是利用机器代替人的眼睛和大脑来做

定的ASIC模块为服务器省下更多的空间;可定制,FPGA 内部通过Lookup Table实现逻辑,也支持用户定制嵌入式系统,裁剪硬件电路等独特优势。

3 基于FPGA的视觉系统设计

■ 3.1 硬件系统设计

用数字图像处理算法硬件描述语言实现和SOPC系统集成。设计方法,将视觉系统典型结构三部分功能单元集成在一片提高图像处理的实时性和整体的可靠性。SD存储器 基于FPGA的视觉系统设计主要包含硬件系统设计、常硬件系统主要是基于FPGA为核心,采用SOPC技术

2 FPGA应用技术及特点

可编程逻辑器件上,从而提高系统的集成度、降低系统功耗,

程门阵列)是常见的大规模可编程逻辑器件,是ASIC(专

FPGA(Field Programmable Gate Array,现场可编

OV7670 图像传感器 用集成电路)领域中的一种半定制电路,以速度快、配置灵活等优势广泛应用于通信行业、视频图像处理、数据延迟器和存储设计、安防、人工智能等领域。通过EDA技术将电Verilog和System C。

子应用系统的既定功能和技术指标具体实现,其主要的开发

FPGA应用技术除了支持硬件描述语言进行数字逻辑语言为硬件描述语言,包括VHDL、Verilog HDL、System 功能电路设计外,还支持嵌入式软核CPU(NIOS II)集成境,用于灵活定制嵌入式系统各种资源,包含NIOS II软核Simulink仿真建模,实现DSP处理单元电路设计。

FPGA NIOS II VGA显示 SDRAM 图1 系统硬件设计结构框图(1)FPGA核心电路设计

实现SOPC系统设计。Altera公司提供Qsys集成开发环CPU、SDRAM控制器、Avalon-MM总线接口及其他常用嵌入式系统外设单元。同时提供DSP Builder工具,支持

目前FPGA主要生产厂商为Intel(原Altera)和Xilinx(赛

FPGA为核心芯片,完成对图像传感器时序控制、获取图像数据,并采用硬件描述语言完成各种数字图像处理算法的代设计后的PCB设计效果(部分)。码描述,将处理结果通过VGA进行显示。图2是完成电路

该系统中选用Altera 公司 Cyclone IV系列EP4CE6

灵思),主要特点是并行性,多个模块之间可以同时独立进行计算,可以在不同逻辑功能之间进行,而不局限于同时执行相同的功能;可重构,指的是FPGA内部的逻辑可根据需求改变,减少开发成本,使用FPGA复用资源比使用多个固

图2 FPGA最小系统PCB设计图(部分)www�ele169�com󰀁󰀁|󰀁󰀁25

智能应用(2)图像传感器电路设计器,获取视觉系统原始图像。OV7670本系统中图像采集部分主要是采用OV7670图像传感640×480,最大帧频能达到线控制的摄像头。这款摄像头除了可以输出30fps/s,可以通过是一款感光阵列为SCCB总还能输出是相当重要的。为了能够更好的进行人脸检测,摄像头通过YUV格式,而YUV格式的数据对人脸检测的实现RGB格式以外硬件描述语言被配置成了如图3所示。YCbCr4:2:2格式输出,硬件设计DATA[7..0]VSYNCPCLKHREFOV7670摄像头FPGA 图■ 3.2 图像处理技术3 图像采集硬件设计针对图像处理技术中图像预处理、特征提取和边缘检测

HDL实现

的常见处理方法采用硬件描述语言(HDL)逐一实现,为系统集成图像处理功能奠定基础。

(1)图像预处理实现

处理和转换,主要包括图像增强、图像数据格式转化和图像图像预处理就是将从摄像头获取到图像的进行初步的

噪声处理。其中,图像增强根据处理空间不同,又分为空域去噪方法,其实质是一个信号滤波问题,小波去噪是在低通法和频域法两类;基于小波变换的图像去噪是常用的非线性

滤波的同时保留图像的边缘等特征细节信息。

的非线性信号处理技术。用某种结构的二维滑动模板,将板中值滤波是基于排序统计理论的一种能有效抑制噪声

的二维数据序列。中值滤波算法可通过下列公式实现:

内像素按照像素值的大小进行排序,生成单调上升(或下降)

其中, g(x,y)

f=(x,y),medg(x,y){f(x分别为原始图像和处理后图像。w

−k,y−1),(k,1∈w)} (1)

为二维模板,通常为上实现中值滤波,本次采用了2×2,3×3区域等。为了能够在FPGA(2)图像特征提取实现

3×3像素阵列快速排序法。

独特性、完整性、几何不变性和抽象性,常见的特征提取元图像特征提取需要能够表述识别物体的典型特征,具有

26󰀁󰀁|󰀁󰀁电子制作󰀁󰀁󰀁󰀁2020年08月

素包含纹理、颜色、边缘、形状等。其中纹理特征提取算法有灰度差分统计法、灰度共生矩阵和灰度阵三种。-梯度共生矩及相邻像素值之间的灰度变化情况,灰度差分统计法的基本原理是描述纹理图像各个像素位置的像素值,与其微小偏移点∆ (x设g(x,y)为图像中(x,y)x+、∆y∆x,y分别+∆yx、)y方向上的偏移量,则(x,y)g∆(=x,y)g(x,y)−g的灰度差值为(x+∆x,y+∆y):g (2)m级,另∆(x,(x,y)y)称为灰度差分,设灰度差分所有可能的取值有个数,由此可以得到遍历整个图像,统计出g∆(x,y)所有取值的每一个灰度差分值的概率为g∆(x,y)的直方图,进而由直方图得到p(i)均值。可以定义以下物理量:=meanm1∑mi=0i⋅p(i)对比度: : (3)=con图像熵: m1∑mi=0i2⋅p(i) (4)ent=−∑mi=0p(i)log2p(i)(3)图像边缘检测实现 (5)用的特征进行提取,然后对图像进行初步检测,最后利用边缘检测的过程为首先利用经典的边缘检测算法将有边缘的空间结构进行协调,增强边缘效果。传统的边缘检测模板是经典算子主要有:SobelN×N权值方阵,通过小区域卷积近似计算得来,子、Canny算子和LOG算子,其中前四个算子属于一阶算子、Prewitt算子、Roberts算微分算子,LOG法的处理流程主要包含高斯滤波,平滑图像,滤除噪声;算子属于二阶微分算子。其中,Canny算计Suppression)抑制,以消除边缘检测带来的杂散响应;应

算梯度强度和方向;应用非极大值(Non-Maximum 用双阈值(Double-Threshold)检测来确定真实的和潜在的边缘;通过抑制孤立的弱边缘最终完成边缘检测。■ 3.3 SOPC利用ALTERA系统集成

II公司提供的FPGA集成开发环境Quartus

软中的 Qsys工具,定制嵌入式硬件系统,完成将NIOS II成到嵌入式系统中。同时,采用定制指令,将用硬件描述语核CPU、Avalon-MM桥、SDRAM Controller等设备集言实现的图像处理算法单元,设计成可添加到系统中的核单元,配置相关时钟信号等参数,完成系统编译,生成包

IP含图像处理算法功能的嵌入式硬件系统,配置于完成硬件系统设计。

FPGA中,4 基于在完成SOPCFPGA视觉平台的人脸识别应用

Verilog HDL硬件描述语言,实现了基于肤色特征的人脸检

的视觉系统硬件平台的基础上,通过采用

智能应用

测算法和PCA主成分分析算法的模块设计,并完成了人脸识别的应用功能。■ 4.1 人脸检测算法实现

人脸检测算法主要有基于特征的人脸检测和基于统计

Ψ=∑Xi

1

i=n

模型的人脸检测。此处主要是进行实时、快速、单个人脸的脸检测算法,来实现人脸的检测和定位。

通过实践,选取大量肤色样本进行统计,发现人脸肤

计算差值公式如下:

在得到平均脸后开始 计算每一张人脸与平均脸的差值,

xi−Ψ,i=1,2,...,n d=i

ni=1

(7)

检测功能。因此在本次系统设计中选择了基于肤色特征的人

建训练图像的协方差矩阵,构建公式如下:

C=

1200

通过求得每一张人脸与平均脸的差值后,就可以开始构

(8)

色在Cb,Cr空间内满足的范围为:77≤Cb≤127,133≤

∑didi

i=1

=

1200

AA

,

该点属于皮肤区域的概率,即根据该点离高斯分布中心的远近得到和肤色的相似度,将彩色图像转化为灰度图,其中每个像素的灰度对应该点与肤色的相似度,相似度的计算公式如下:

T-1

 P(CbCr)=exp-0.5(x-m)C(x-m)

Cr≤173。根据肤色在色度空间的高斯分布,就可以计算

向量。

征向量。当求出ATA特征值λi及其正交归一化向量νi。根

据特征值的贡献率选取前p个最大特征向量及其对的特征

定理,通过求解的特征值和特征向量来获得的特征值和特

采用奇异值分解(SingularValue Decomposition ,SVD)

A=(d1,d2,...,d200) (9)

x=(CbCr)T,C=E{(x−m)(x−m)T}

其中m为均值,m=E(x),C为协方差矩阵,

(6)

■ 4.3 人脸识别实现

然后把训练出来的特征向量矩阵和平均脸矩阵保存在SD卡训练集,测试结果表明,该系统识别速度较快,大约0.5S左右时间能给出识别结果。

根据PCA算法,首先在PC机上进行人脸数据库的训练,

通过统计和计算得到m和C的值:97.0946…24.4700

C=

24.4700141.9966m=[117.4316 148.5599],

中,用于人脸识别。在SD卡中存储了共40张人脸图像的

5 结束语

■ 4.2 PCA算法实现

主成分分析PCA(Principle Component Analysis, PCA)算法应用最广,实际也取得了很好的效果。所以在本次设计中人脸识别将使用主成分分析算法。

PCA算法的基本原理是:利用K-L变换抽取人脸的主

在人脸识别系统中,人脸比对识别算法有很多种。其中

重要,FPGA的并行性、可重构、速度快、配置灵活等优势,必将助力提高人工智能性能,尤其在图像处理、图像识别、实时性要求方面,比现有解决方案更胜一筹,对FPGA在机器人视觉系统领域的应用研究空间很大,意义重大。

参考文献人工智能,未来可期,机器人视觉系统的性能越发显得

要成分,构成特征脸空间,识别时将测试图像投影到此空间,得到一组投影系数,与各个人脸图像比较进行识别。

T

首先设x=(x1,x2,...,xn)为n维随机变量,其中向量xi

* [1]冈萨雷斯著,阮秋琦译.数字图像处理(第三版)[M].电子工* [2]谢超艺.简析视觉系统在工业机器人集成系统中的应用[J].* [3]胡迎刚,李军.基于信息技术FPGA和人脸识别技术的智能考勤系统设计[J].网络安全,2015(03),P8-9.南方农机,2019(23),P42业出版社,2011.11 

是由第i个图像的每一列向量堆叠成一列的M×N维列向量,即把矩阵向量化,然后再计算平均脸,公式如下:

(上接第35页)

实现了智能车间的预防性维修,降低智能车间维修和维护成本,提高设备、系统的使用生命周期。该系统以5G技术应智能制造与工业互联网应用模式。

参考文献用为切入点,融合新一代信息技术,初步探索了5G技术在

* [2]黄忠山,田凌.智能装备故障预测与健康管理系统研究[J].图* [3]孔燕,张亮.三维视景实时显示技术研究[C].2019年(第四届)* [4]张仲伟,曹雷,陈希亮等.基于神经网络的知识推理研究综述[J].计算机工程与应用,2019,55(12),8-19.

www�ele169�com󰀁󰀁|󰀁󰀁27

子测量与仪器学报,2010,24:1-9.学学报,2010,39(5):855-861.

中国航空科学技术大会论文集,2019,526-530.

* [1]彭宇,刘大同,彭喜元.故障预测与健康管理技术综述[J].电

因篇幅问题不能全部显示,请点此查看更多更全内容