基于Robei EDA工具与FPGA的倒车预警系统设计

2021-06-28 12:23路家琪王金岑徐彰张国亮
电子测试 2021年2期
关键词:环境参数肤色排序

路家琪,王金岑,徐彰,张国亮

(1.南京信息工程大学电子与信息工程学院,江苏南京,210044;2.南京信息工程大学人工智能学院,江苏南京,210044)

0 引言

根据调查显示,由于汽车倒车所引发的事故占据交通事故的很大比例。因此,汽车的安全也成为亟待解决的问题,对汽车倒车预警技术的研究,具有重要意义。

文献[1-4]以单片机为核心操控红外、超声波等传感器实现倒车预警。但是,其存在系统运行速度较慢、外围电路复杂,不能达到快速反应的效果。而如今大规模可编程逻辑器件的发展,为快速准确的完成倒车预警提供硬件基础。如文献[5],采用FPGA作为核心,控制芯片对信号进行解析处理,将超声波模块与倒车影像相结合,具有实时性强、精确度高的优点。但没有在图像处理方面加入算法增强倒车预警的效果。

本文设计并制作了一种基于Robei EDA工具以及FPGA的倒车预警系统,可以在实时监控的基础上对人体进行识别追踪,并可以监测后方障碍物的距离和方位信息,且具有预警功能。此外,系统还可以对车内环境参数进行测量并将数据传输至上位机。系统具有误差小、实时性高、可靠性高等优点。

1 Robei EDA工具

Robei EDA软件是一种由青岛若贝公司开发、全新的面向对象的可视化芯片设计软件,可以支持基于Verilog语言的集成电路前端设计与验证。Robei EDA工具具备可视化架构设计、核心算法编程、自动代码生成、语法检查、编译仿真与波形查看等功能。设计完成后可以自动生成Verilog代码,可以应用于FPGA和ASIC设计流程。可视化分层设计架构可以让工程师边搭建边编程,具备例化直观、减少错误、节约代码量等优势。不同于软件编程的抽象,Robei EDA工具将芯片设计变得简单直观,可以极大地降低学习芯片设计的入门门槛,加速设计过程。

2 架构设计

系统的整体架构分为七个部分,即FPGA 主控、摄像头模块、LCD显示屏、舵机云台、超声波模块、环境参数传感器、蓝牙与WiFi上位机系统。系统总体结构框图与结构示意图如下。

图1 Robei设计实例图

图2 系统总体结构框图

摄像头模块搭载在电机云台上,通过摄像头接口电路与FPGA主控相连,FPGA主控同时连接LCD屏幕,超声波模块、环境参数传感器、北斗定位模块通过传感器接口电路连接至FPGA主控。

工作时,系统由FPGA作为主控,通过摄像头驱动电路驱动摄像头对周围环境进行实时检测,同时通过SDRAM控制器控制SDRAM工作,将监测到的图像存入SDRAM,并通过LCD驱动器使图像实时显示在LCD屏幕上,系统同时通过人体检测算法将人体在屏幕上进行框选显示。

图3 系统实物图

系统采用二自由度云台结构,通过舵机云台驱动电路驱动舵机工作,可人为改变摄像头的检测区域,实现360°的图像采集。此外系统还通过传感器驱动电路驱动超声波模块检测后方的距离,并将距离显示在LCD屏幕上,若距离小于所设阈值将通过蜂鸣器发出警报。

此外传感器驱动电路驱动环境参数传感器,实时探测车环境参数并通过蓝牙与WiFi将环境参数信息传输至手机APP与上位机。

3 软件实现

本系统在算法上采用了人体识别算法,滤波算法和除法优化算法。

3.1 人体识别算法

采用识别肤色的方法来检测人体位置,将从SDRAM读出的像素信息进行处理后检测人体的肤色,主要流程图如下。

图4 人体识别流程图

3.1.1 灰度转换

首先团队需要把肤色从外界环境提取出来,在肤色识别算法中,常用的颜色空间为YCbCr,Y代表亮度,Cb代表蓝色分量,Cr代表红色分量。肤色在YCbCr空间受亮度信息的影响较小,本算法直接考虑YCbCr空间的CbCr分量,映射为两维独立分布的CbCr空间。在CbCr空间下,肤色类聚性好,利用人工阈值法将肤色与非肤色区域分开,形成二值图像。

从SDRAM中读出的颜色格式是RGB565格式,团队需要先把RGB565改成RGB888格式,再把RGN888格式改成YCbCr格式,两种格式的转换公式如下:

通过上述运算,将颜色格式转化为了YCbCr格式,经过数据分析,肤色的分量处于下范围:77

图5 灰度与二值化图像

这样经过以上处理后就可以得到了二值化图像(上右图),在人体位置为白色,其他位置为黑色。

3.1.2 中值滤波

中值滤波对于某些类型的随机噪声具有理想的降噪能力,比较适合于实验中的图像滤波。中值滤波的一种典型应用是消除椒盐噪声。

传统的排序法较为耗费资源,这里采用快速中值排序。

图6 中值滤波原理图

3.1.3 高斯滤波

在进行数学仿真或者误差评估时,往往认为传感器所引入的噪声服从正态分布(高斯白噪声),这个时候用高斯滤波器就可以很好地消除高斯噪声。高斯模板名字的由来是二维高斯函数,即我们熟悉的二维正态分布密度函数,如下所示:

高斯滤波后图像被平滑的程度取决于标准差。它的输出是临域像素的加权平均,同时离中心越近的像素权重越高。因此,高斯滤波比均值滤波的平滑效果更柔和,而且边缘保留的也更好。高斯滤波算法克服了边界效应,因而滤波后的图像较好。高斯滤波的平滑力度不如均值滤波,因此其保留细节的能力也比均值滤波好。

图7 滤波效果示意图

3.1.4 开运算

腐蚀是一种消除边界点,使边界向内部收缩的过程。可以用来消除小且无意义的物体。下图为以3×3矩阵实现腐蚀腐蚀之后的图像在进行膨胀,就是开运算。膨胀是将与物体接触的所有背景点合并到该物体中,使边界向外部扩张的过程。可以用来填补物体中的空洞。开运算可以使细小的沟道断开,将狭窄的白线断开,消除白点。图为以3×3矩阵实现膨胀。

图8 腐蚀原理图

图9 膨胀原理图

图10 腐蚀效果图

图11 人体识别算法效果图

3.2 距离滤波算法

在对超声波传回的数据进行显示之前需要对数据进行滤波处理,去除会干扰测试结果的错误数值,使处理后的数值更为准确。故设计距离滤波算法,该算法分为排序与滤波两个部分。

3.2.1 排序部分

在滤波中需要对数据进行排序,传统的冒泡排序法等耗费的时间较长,且串行的设计思想不能发挥FPGA的优势,于是选择了并行排序法。

一组数据,先进行两两之间的比较,每两个数比较都会得到一个比较结果。可以根据两数的大小定义输出排序结果0或1。对这些比较结果进行累加计算,即可得到该数在序列中的排序值。由于所有数的两两之间的比较都在硬件内同时进行,只需一个时钟的时间,即可得到比较结果,再加上比较结果的和加等计算时间,几个时钟周期,就实现了数字序列的排序。

第一个周期将所有数进行比较,对每个数的比较结果赋值。对于一个序列中的数,将它与其他所有数进行比较,若该数小于另一个数,记一次0分,若该数大于等于其他数,如果这个数在另一个数之后,大于和等于都记一次1分;如果在另一个数之前,大于得1分,等于记0分。

第二个周期将每个数的积分累加。

第三个周期将每个数按照积分重新赋值给新的数组。

该排序方法理论上可以在三个周期内完成排序上任意多个数的排序,具有高速的优点。

3.2.2 滤波部分

滤波部分程序算法主要步骤是:1)采集6个点。2)对6个点小到大排序。3)相邻值两两做差,并比较。4)记录下最差后最大值的那对数所在的位置。5)如果该位置位于所有数的前半部分,则取该位置后半部分数,反之,取前半部分数。并作为有效值。6)取有效值的平均值为最后值。

算法思想是,利用少数遵循多数原则,主要为了将采集的多个数据分成两波,将相邻两个数之差的最大那个作为两拨数的分界点。经过分析,传感器出现较大偏差一般是在相邻的数据内,以差最大的两个数进行分界点,进行简单的滤波处理。

3.3 除法优化算法

在将超声波传感器的回波信号转换为实际距离时,需要用到除法运算,之后为了在LCD屏上显示距离,团队还需要将距离提取出米分量、分米分量和厘米分量。

而FPGA中的出发运算除数必须是2的幂次方,若是任意整数,可能不能综合,即使能综合,也会耗费非常多的资源。

若在程序中直接使用除法和取余,资源耗费十分严重。

采用一种除法优化算法,本质是模拟手算除法的过程。以11/2为例,先将被除数11高位补零,除数2低位补零,然后进行减法的迭代,直到检出的结果比除数2小为止。总体流程图如图12所示。

图12 除法优化算法流程图

可以看出,资源占用大大减少,减少了2000多门,效果较为显著。(以上两张图所示都为部分功能是的占用,并不是最终工程的占用)。

图13 资源占用对比图

4 系统实现与调试

4.1 舵机云台模块调试

舵机云台系统,能够实现360°的旋转,加上小角度的视角调节。以下为部分调试效果图。

图14 舵机云台系统调试效果图

4.2 实时显示系统调试

实时显示系统能够清晰地在LCD频上进行摄像头实时拍摄的画面,以下为部分调试效果。

图15 实时显示系统调试效果图

4.3 超声波测距模块调试

超声波显示系统可以实时监测车辆与后方障碍物的距离及方位信息,当距人体之间的距离小于一定距离的时候,将通过蜂鸣器发出警报。具有极高的精度。调试结果表如下表1所示。

表1 超声波测距结果表

2 0 0 2 0 2.1 1.1 9 2 3 0 2 2 7.2 1.2 1 0 2 5 0 2 5 6.7 2.7 8

4.4 人体识别算法调试

加入人体检测的算法后,系统可以对人体的肤色进行判断,并在LCD框选出人体。以下为部分调试效果。

图16 人体检测系统调试效果图

4.5 通信系统的调试

系统能够与手机和PC端进行无线通信。可以通过蓝牙和手机APP进行无线数据交互,传输温度气压湿度海拔光照等环境参数。也可以通过wifi模块和电脑端进行通信。以下为部分调试效果。

图17 无线通信系统调试效果图

4.6 系统总体实现

系统上电后,各个模块完成初始化,开始并行工作,系统的具体实现流程由以下流程图所示。

5 结语

本文设计的倒车预警系统基于FPGA以及Robei EDA软件,具有极强的可重构性和FPGA并行处理的速度优势,系统将实时图像显示、算法处理与超声波传感器数据采集相结合,具有预警功能强大、高精度、运行稳定、实时性强等优点,倒车预警系统性能达到了设计的初衷。

图18 程序流程图

未来该系统可以通过完善摄像头的算法来使功能更加丰富,如增加物体识别、对背景进行滤波处理,使机器人在强光的照射下或者在有雾、有雨的环境下依旧可以保证显示效果。

猜你喜欢
环境参数肤色排序
排序不等式
基于云平台的智能家居环境参数协同监控系统设计
Conversation in a house
人的肤色为什么不同
恐怖排序
列车动力学模型时变环境参数自适应辨识
为什么人有不同的肤色?
一种食用菌大棚环境参数测控系统设计
节日排序
猪场环境参数评价体系研究