据《硅谷》杂志2012年第22期刊文称,针对市场上现有的监控设备的实际需求,设计一套基于嵌入式机器视觉技术的集监控和报警功能的系统。该系统具有调节监测精度,监测信号,报警的功能。市场上的监控设备有很多种,他们频繁出现在超市,电梯,ATM机,银行,小区等,但是他们往往只具有监控的作用,而无出现意外情况报警的功能。涉及的DSP智能监控系统就是为解决这一弊端提供简单的案例和思路。所要完成的工作包括:通过总体方案设计,将嵌入式机器视觉检测系统分为特征参数标定、特征参数快速检测、结果输出三个功能模块,并根据需要利用CCD摄像头、DSP板卡、显示器和外部控制设备搭建了机器视觉检测系统。根据所得的数据进行结果判别和输出,按一定的逻辑顺序判断得到结果,最终的检测结果能够输出到屏幕并通过数字I/O口或串口进行输出。实验结果表明,所设计的嵌入式机器视觉系统能准确的检测被测实物,做出相应判断和决策,能有效地提高监测的能力,减轻监测者的工作量。
关键词:嵌入式;机器视觉;报警
1论文背景
1.1数字图像
图像经过数字化转换并可以用数字表示、处理的图像。由象素点组成,其中横向的点数称为水平分辨率,纵向的为垂直分辨率,一幅完整的图分为若干行,称为一帧图像。每个象素根据量化精度不同其取值也不同,例如取三个色彩分量均为8位二进制数的RGB表示方法,用连续的三个8位二进制数表示一个彩色点,如(200,100,64)描述的点的红色分量为200,绿色分量100,蓝色分量64。
1.2色彩空间
又称为色域空间,它表示的是一个图像所能够表现的色彩范围。其模型是描述使用一组值表示颜色方法的抽象数学模型。
常用的色彩空间有两种,即RGB和YUV色彩空间。其中RGB色彩空间通常为图像采集和显示设备采用,例如CCD、CMOS摄像头,CRT监视器等。因其色彩分量之间有较大的相关性,不适于做图像处理。YCbCr是YUV色彩空间的使用最广泛的一种色彩编码,其中Y表示亮度,Cb表示蓝色色差色差,Cr表示红色色差。各色彩分量之间相关性小,适于进行处理操作,通常为计算机设备采用,本文涉及的即是YUV色彩空间。
1.3视频
视频是活动图像。每秒钟播放的图像的张数称为帧,如PAL制式每秒钟25帧,隔行扫描。当每秒钟播放的照片张数不足时会出现动作不连贯现象。
常见的电视信号制式是PAL(逐行倒相正交平衡调幅制)和NTSC(正交平衡调幅制)。PAL电视标准,每秒25帧,电视扫描线为625线,奇场在前,偶场在后,标准的数字化PAL电视标准分辨率为720x576、24比特的色彩位。本文涉及的电视信号制式是PAL。
2机器视觉实现硬件
机器视觉的定义为通过光学的装置和非接触的传感器等装置实现自动接收和处理一个真实物体的图像,以获得所需要的信息,用于做出决策的装置。本文为了说明机器视觉的实现,选择一个监测婴儿睡眠的报警系统作为例子。
首先,选取DSP320DM642主板作为平台,然后还需要一只PAL制式传输的摄像机及一个显示器,还有一些按功能需要做出的简单外设,将他们搭接起来组成一个系统。
这个系统所要具有的功能即三大部分:接收数字图像信号,处理图像信号,输出处理结果。举例通俗的说,即是实时监控拍摄婴儿睡眠的图像,传入嵌入式处理器内部,通过算法处理图像信息,根据处理结果做出决策,输出相应的信号,及实时传送画面信息至显示器。
硬件系统结构如下图所示:
3核心算法及具体功能实现
3.1图像采集与现实
摄像机每一帧拍下的图像,均以数字信号的形式传输给处理器,为了使用和处理这些信号,要先在处理器的存储器上分配若干个内存空间作为采集缓冲区,显示缓冲区和临时缓冲区。这非常简单,所以就不一一赘述。本文涉及的视频制式是PAL制式,所以每一帧画面都是720x576个像素点,每一个像素点均由Y,Cb,Cr三个变量去描述,必须为他们分配空间。这一点非常重要,如果不注意就会使显示器显示的画面出错。
3.2监控功能的实现
调用函数采集每一帧画面,将其保存在临时缓冲区,然后将数据转入显示缓冲区,调用函数显示画面,即可实现简单的实时监控。
3.3报警功能的实现
实现报警功能,必须依托设计的外设,本文针对婴儿睡眠的情况,设计了带有开关,拨盘,LED,蜂鸣器的简单报警外设。
基本功能:用户按下开关程序进入监测状态,监测以10秒为一个周期,一旦监测到婴儿挥动手臂,LED亮一次;10秒内监测到婴儿活动超过4次,蜂鸣器发出悦耳的音乐声提醒家长;拨盘可以调节监测精度,减少误操作,误判断。
实现方法:外设的电路图及外设所用的I/O接口图如右图所示。定义变量io监测开关,ionum读取拨盘的数据;
io=SEEDDM642_rget(SEEDDM642_IOOUT);
ionum=io&0xfe;
一旦监测到开关被按下,立即打开一个10秒的实时中断,然后进入循环程序,进行差分算法,即把每一帧图像的像素点的信息值与前一帧图像像素点的值做差,结果的绝对值求和。差分算法结束后将总和和阈值进行比较(阈值为30000+2000ionum,即30000基础值加上拨盘的输入值,这里既可以调节监测的灵敏度)。一旦超过阈值,计数加1。10秒中断结束监测计数,10秒内计数超过4,则通过iodata变量向I/O口输出,蜂鸣器鸣响。
for(i=0;i<numLines/4;i++)//行数
{
for(j=0;j<numPixels;j++)//像素个数/每行
{
*(Uint8*)(temp2Ybuffer+4*i*numPixels+j)=abs(*(Uint8*)(tempYbuffer+4*i*numPixels+j)-*(Uint8*)(temp2Ybuffer+4*i*numPixels+j));
}
}
for(i=0;i<numLines/4;i++)//行数
{
for(j=0;j<numPixels;j++)//像素个数/每行
{
fSum+=abs(*(Uint8*)(temp2Ybuffer+4*i*numPixels+j));
}
}
if(fSum>30000+2000*ionum)
{
//输出测试值
iodata|=0x01;
SEEDDM642_rset(SEEDDM642_IOOUT,iodata);
sum++; /*sum值改变*/
}
else
{
//输出测试值
iodata&=0xfe;
SEEDDM642_rset(SEEDDM642_IOOUT,iodata);
}
}
循环过程中不断监测io刷新io,ionum的值来停止监测或改变监测精度,并在监测同时输出实时的监测画面。差分算法只涉及的像素点的Y值是因为随着图像变化像素点的亮度变化最明显,而Cb,Cr变化很小。而算法只计算一部分像素点和忽略Cb,Cr值的原因是当处理器一边采集显示图像同时一边做大量的运算会使得图像出现严重的卡顿,处理器速度无法跟上。因为只是用来计算,而不显示出来,所以忽略Cr,Cb不影响用户的正常监控。而由于监测灰度的像素点是均匀分布的,只要多次试验适当改变阈值,监测报警的正确性不会受到影响。
4总结
4.1连续性
监控报警系统区别于人工监测,没有劳动强度以及劳动时间的限制,在硬件允许的情况下可以实现无间歇的连续运行,而且能有效地避免操作失误等疲劳性错误。
4.2灵活性
一个完善的机器视觉系统应当能够适用于多种测量,其应当具有一定得柔性对机器视觉系统来说通过更新软件能适应工作场所的改变。在监测环境变化之后,该系统可以被原封不动或者经过小范围的改变保留下来而继续使用。如家庭外出防盗,野外长时间的拍摄等该系统同样适用。
|
|