毕业论文论文范文课程设计实践报告法律论文英语论文教学论文医学论文农学论文艺术论文行政论文管理论文计算机安全
您现在的位置: 毕业论文 >> 计算机安全 >> 正文

基于PXA270的视频监控系统 第6页

更新时间:2014-6-28:  来源:毕业论文

基于PXA270的视频监控系统 第6页
实现此算法的程序分以下几步: 
1.初始化所有数据。设总的帧差TotalAFD=0。开始一段新的视频。
2.读入第1帧图像的R分量值,再读入其后一帧的R分量值,计算两帧间R分量的绝对帧差。同样计算G、B分量的绝对帧差。将R、G、B各个分量的绝对帧差加起来,就得到了RGB分量的绝对后向帧差。将该帧差再除以XY,就得到归一化RGB分量的绝对后向帧差。采用归一化帧差有利于进行阈值判断。
3.判断TotalAVG,如果大于系统设定的阀值我们便可认定图像发生了变化。
3.4.2算法的实现
在本程序中由于在设备驱动中获取的图像数据为RGB格式,所以可以直接用QImage的方法pixel(ii,jj)来获取坐标为ii,jj的像素点的内容。由于获取的值为qRGB类型,为了获取R、G、B分量,可以使用QColor 类的函数qRed(pix)、qGreen(pix)、qBlue(pix)来分离pix像素点的颜色分分量。由于每一个获取图像数据系统都可以获得一个新的包含着图像数据的QImage类对象,所以在获取一副新的图像之前将上一帧的QImage类对象保存为一个副本,之后按照同样的像数点遍历顺序分离出两帧图像每个坐标的R、G、B值,分别求出三个分量的差后求和,便可以得出每个坐标的像素差。再将所有遍历过的像素差求平均值便得到了系统所监控的区域的像素平均差。图3-3为此算法的流程图:
图3-3  QImage类的算法的流程图
3.4.3算法的优化
本系统的每帧图像的分辨率为320240,色彩深度为16位RGB。按照以上算法,若是进行全监控范围的动态侦测,每帧图像需要进行768002=153600次的像素点获取和76800次的减法运算。考虑到图像的获取,摄像头驱动,GUI界面的显示都需要占用一部分的cpu资源,如果图像的动态侦测算法的时间复杂度过高便会严重影响到图像显示的流畅度。
优化算法的目标是降低算法的时间复杂度,核心思想是在能侦测出图像发生变化的前提下,最大限度地减少比较的像素点。
当系统监控的对象是一个较大的物体时,物体移动所影响的像素点数量占整个图像总像素的比例是非常大的。例如一个160100的物体在本系统所监控的范围内移动,设被改变的点为α,那么在下一帧的图像数据中,16000<α<32000,图像中超过20%的像素点发生了变化。那么如果系统在比较图像的时候降低50%的精度,例如平均地减少一半像素点的遍历,依然可以检测10%的像素点发生的变化。而由于本算法最后进行的是像素差和的平均值,所以像素总量的减少与像素差和的减少成正比,在一个巨大的取样样本区间中,所获得的平均值只发生极其细微的变化。
基于以上推理,我们在算法中设置了weight、heigh、dh、dw、pi、pj6个变量,分别表示所需监控的图像区域的长、宽,横向遍历像素点的间距、纵向遍历像素点的间距、起始点的横坐标、起始点的纵坐标。根据实际的应用情况,增加dh、dw的值,减少weight、heigh可以令算法的时间复杂度较大地降低。
对于较小的物体变化的侦测,如果按照原有算法,求图像中所有像素差和的平均值,由于变化的的像素点占图像总像素数小,所以所得的平均值会小于预期的值。所以选取所需监控的区域,减少比较的像素点的数量,有助于提高系统的精度。
4  系统设计
4.1系统架构
系统在基于Linux的QT/Embedded上实现,Linux实现了对资源的调配,QT/Embedded实现了用户界面以及提供了图像处理所需的API。系统的结构图如图4-1:
图4-1  系统结构图
4.1.1系统流程
系统的流程图如图4-2所示:
在启动系统之后,操作系统会自动加载ov511摄像头驱动,并完成对摄像头的初始化。系统的数据传输类在摄像头初始化完成之后便将驱动的数据存储空间映射到用户态的内存区间,令应用程序可以获取图像数据。当打开了动态侦测算法后,若有发生了图像变化便将当前的图像保存,同时记录日期时间。
图4-2  系统流程图

4.1.2硬件架构
系统的硬件架构图图4-3所示:
图4-3  系统硬件架构图
OV511摄像头将所监控的场景景象进行光电转换后获取了当前图像的RGB数据,由于进行了内存映射所以系统可以在SDRAM里获取图像数据,之后交由CPU进行处理。最终将数据写往LCD控制器、FLASH存储器、以太网控制器等其他模块。
4.2硬件模块
由于系统不使用DSP,所以所有数据交由主控器模块进行运算,系统存储电路模块和外围电路模块分别提供系统所需的存储空间和设备支持。
4.2.1主控器模块
    是整个系统的核心,采用的Pxa270处理器是intel公司基于XSCALE架构的处理器,最高主频可达624MHz。PXA270最引人注目的是加入了Wireless MMX技术,大大提升了多媒体处理能力;同时PXA270还加入了Intel SpeedStep动态电源管理技术,在保证CPU性能的情况下,最大限度地降低移动设备功耗。Pxa270提供了丰富的片内资源,支持Linux,是本系统的合适选择。它能完成整个系统的调度工作,在系统上电时配置所有需工作的芯片的功能寄存器,完成视频流的编码。
4.2.2系统存储电路模块
    主控器与一些外围存储单元如Nand Flash,和SDRAM。Nand Flash 中包含Linux 的Bootloader、系统内核、文件系统、应用程序以及环境变量和系统配置文件等;SDRAM读写速度快,系统运行时把它作为内存单元使用。设计采用了64M的Nand Flash和64M的SDRAM。
4.2.3外围电路模块
   本设计用到的外设有USB接口,网卡接口,RS232接口和JTAG接口。
  视频监控终端的USB主控制器模块通过专用的USB集线器与多个USB摄像头相连。在实时监控状态下,各个摄像头上捕获的图像数据通过USB集线器传输到视频监控终端的USB主控制器模块上,然后再由USB主控制器模块交由Pxa270处理器集中处理。
4.3软件架构
 图4-4  系统功能模块图
 
如图4-4所示,图像采集模块负责对摄像头的图像数据进行采集和传输,之后交由图像处理模块进行识别、显示。主控平台提供人机交互界面,同时提供参数设置功能。
4.3.1图像采集模块
功能:实现与摄像头驱动的数据连接的建立,设置图像采集参数以及获取图像数据
主要的函数有:
void V4L1VideoCaptureDevice::setupCamera(QSize size);//构造函数,调用setupCamera( )函数,并初始化视频尺寸为0,0。
~V4L1VideoCaptureDevice();//析构函数,调用 shutdown()函数。
void setupCamera(QSize size);//初始化摄像头驱动,size参数作为视频尺寸
void shutdown();//清楚系统运行时建立的内存映射。
主要API:
    bool hasCamera() const;//返回关于摄像头设备是否存在的bool值
    void getCameraImage( QImage& img, bool copy = false );//将当前帧图像数据写入形参的QImage指针对象img中。
    QSize captureSize() const;//返回图像尺寸
    void setCaptureSize( QSize size );//重新设置图像大小
    int minimumFramePeriod() const;//返回最小帧周期
4.3.2图像处理模块
功能:调用图像采集模块获取图像数据,进行刷新图像的计时以及像素点内容的比较,并在每个计时周期进行图像绘制,同时在需要的时候进行像素比较。事实上为继承了QT窗口类QWidget的一个派生类。
主要函数:
VideoCaptureView::VideoCaptureView(QWidget *parent, Qt::WFlags fl)//构造函数,创建一个图像采集模块的实例,并进行参数的初始化。
void VideoCaptureView::setLive(int period)//计时函数,负责对数据的获取和刷新进行控制。
void VideoCaptureView::timerEvent(QTimerEvent*)//在一个计时周期结束的时候响应,调用窗口重绘函数。
void VideoCaptureView::paintEvent(QPaintEvent* paintEvent)//窗口绘图函数,使用从图像采集模块获得的图像数据进行绘图。
主要API:
bool available() const;//返回当前设备是否可用的bool值,可用返回ture,不可以用返回false
QImage image() const//返回当前帧的图像数据。
void setStill(const QImage&);//令视频窗口显示一个图片,不更新视频数据。
4.3.3参数设置模块
功能:提供对系统参数的设置功能,通过访问类的接口修改摄像头以及算法的参数。通过建立的窗口控件提供修改系统参数的功能。
主要函数:
void setupUi();//创建窗口控件界面。
void setStoragePath();//在控件发生变化的时候通过信号槽获取目录路径。
主要API:
QString CameraSettings::getStoragePath()//返回当前选项指定的截图存取目录。
4.3.4主控台模块
功能:创建一个图像处理模块的实例,显示视频。同时提供参数修改截图显示的功能。
主要函数:
void takePhotoNow();//保存当前视频图像到指定位置
void loadThumbs();//建立截图显示列表
void pushThumb(const QString file, const QImage& img);//加入图像到显示列表
void on_action_Exit_triggered();//退出按钮事件
void on_action_About_triggered();//系统文件信息按钮事件
void on_action_Options_triggered();//设置按钮事件
void on_actionTake_Photo_triggered();//截图按钮事件
void on_action_Delete_triggered();//删除图片按钮事件

上一页  [1] [2] [3] [4] [5] [6] [7] [8] [9] 下一页

基于PXA270的视频监控系统 第6页下载如图片无法显示或论文不完整,请联系qq752018766
设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©751com.cn 辣文论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。