APP下载

物联网智能家居的远程视频监控系统设计

2018-03-30颜珂斐

实验技术与管理 2018年3期
关键词:缓冲区智能家居嵌入式

颜珂斐, 杜 娥

(电子科技大学成都学院 通信与信息工程系, 四川 成都 611731)

随着对物联网技术的研究不断深入,该项技术在家居远程看护和管理中得到越来越多的应用[1]。笔者设计了一种可以应用于物联网家居中的远程监控系统,该系统采用ARM嵌入式系统作为视频采集和数据处理中心,用户可通过网络终端(计算机或智能手机等)访问数据处理中心,对用户家居情况进行远程的实时监控[2],且可以及时保存监控录像中可疑人员的相关记录。若智能家居无线传感网防盗系统发现非法入侵者,还可将警告信息发给系统,通过公用通信网络远程报告给用户。

1 监控系统总体结构

应用于物联网智能家居中的远程监控系统可以与由ZigBee技术组成的无线传感器网络共同工作[3],完成对家居安全情况的监控,具体结构如图1所示。

图1 系统总体结构图

系统采用ARM9开发板作为整个系统的数据处理中心,通过视频采集设备完成对图像的采集,经由数据处理中心进行图像压缩处理及传输。用户可以通过手机等智能终端访问视频监控服务器,远程实时察看家居情况[4]。另外,系统还可配合ZigBee无线传感器网络完成对非法入侵者图像的采集并保存在存储设备中,同时将报警信息发向用户终端[5]。

系统硬件平台选用飞旭FS-PAM9200E嵌入式ARM开发板,其主处理器为Atmel公司的AT91RM9200 ARM处理器,采用ARM920T内核。操作系统选用的是专门针对嵌入式平台定制的armLinux。为了实现远程监控系统的功能,在软件中进行了监控视频图像的采集、压缩和传输3个模块的设计。以下重点介绍该系统3个模块功能的实现方法。

2 视频采集模块的设计

在armLinux下,视频采集设备的使用是利用API接口标准Video4Linux(简称V4L)来支持的。V4L的特点是把视频设备当作一个设备文件/dev/video1进行访问[6]。当开发板上插入USB摄像头后,需要进行视频图像的采集工作时,对文件video1的操作即为对摄像头的操作。

需要注意的是,在摄像头打开之后,应该对其分辨率、亮度、格式等参数进行正确的设置,否则很可能无法正确采集图像。在视频图像的截取上,系统选用了V4L中的read()读取法,通过内核缓冲区来直接来进行图像采集[7],并且将采集到的图像放入自定义的缓冲区buf中,等待后续压缩模块的处理。

3 视频压缩模块的设计

3.1 压缩方式的选取

因系统需要达到实时远程监控的目的,为减少视频传输中的数据量、提高传输效率,系统的图像压缩模块需要对采集到的bmp图像进行压缩。而考虑到嵌入式处理器的主频较低,且性能远不如普通的计算机处理器,所以选用了算法复杂度低且对硬件处理能力要求不高的JPEG压缩方式,虽然JPEG方式是针对静态图片设计的,但对于图像传输速率要求较低、精度要求也不高的家居远程监控系统,则完全可用于视频的压缩处理。具体的做法是:将图像作为静态图像采集,使用JPEG标准压缩图像并传输,用户终端对接收到的每一帧图像都在界面中进行绘制,通过这样的连续采集和接收显示来实现动态效果。

3.2 libjpeg库压缩图像的缺点

系统选用了Indepedent JPEG Group的libjpeg库进行图像数据的压缩,但是libjpeg库在本系统的应用中存在一个缺点,即在调用libjpeg库进行压缩时,可以直接从缓冲区中取出原始的未压缩的bmp数据源,但是压缩之后的数据却必须以文件形式进行存储[8];当后续图像传输模块进行网络数据传输时,又需要读取该文件,调用libjpeg库进行JPEG解码,变成JPEG比特流放入缓冲区后才可以传送出去。也就是说,libjpeg库不论是进行压缩时还是解压缩时,都需要用到文件操作。在本系统中,这样的操作会反复进行,对于处理器主频不够高、内存空间小,且资源又较为有限的嵌入式系统,需要大量用于文件存储的开销,系统资源浪费严重[9]。因此,提出了一种图像从内存到内存的压缩处理方式,该方式无需使用文件操作,可有效提高系统数据的处理速度。

3.3 改进后的libjpeg库图像压缩处理方式

提出了一种图像从内存到内存的压缩处理方式,即调用libjpeg库进行图像压缩时,将图像采集模块采集到的bmp数据压缩为JPEG数据后直接存于内存的缓冲区中,而不再以传统的文件形式存储,也就避免了反复进行文件存储读取的开销[10]。为了实现这一处理方式,系统在libjpeg库的基础上,提出了一种新的数据结构jpeg_dest_mgr,并编写了与其相关的处理函数mem_init_dest( )和mem_term_dest( ),

针对本文提出的新的数据结构jpeg_dest_mgr,编写了2个回调函数来进行相关处理。

(1) 回调函数mem_init_dest用于将自己定义的m_buff地址作为数据压缩的目标地址。在该函数中,需要将m_buff的大小赋值给libjpeg库函数init_destination (j_compress_ptr cinfo),用于表示缓冲区大小的free_in_buffer参数,同时,还需要将m_buff的首地址赋值给next_output_byte参数,该参数是libjpeg库函数中用于指向数据压缩写入缓冲区的。

(2) 回调函数mem_term_dest用于计算压缩后的实际数据长度,为了得到压缩后的图像长度,定义了一个pSize变量,该指针为调用者提供,压缩完后返回图像长度值[11]。

本系统实现内存到内存压缩的处理流程如图2所示。通过以上处理方式,可直接在缓冲区m_buff中对图像进行编码处理,得到的结果由传输模块进行封装。

图2 内存压缩处理流程图

4 视频传输模块的设计

为了将视频图像通过网络上传至用户终端,需要对压缩后的图像进行传输。为了实现实时远程监控,系统采用了流媒体技术,流媒体技术是通过一种特殊的方式将视频文件压缩成多个小数据包,由视频服务器向用户终端实时、连续传输。智能家居远程视频监控系统所使用的流媒体库为live库,它是一个开源的基于SIP,RTSP流媒体协议的C++库,支持JPEG、MPEG视频的传输[12]。

利用live库完成视频的传输,需要完成以下2方面的工作。

(1) 创建传输网络环境。具体做法为依次创建会话环境,建立RTP套接字、信宿、服务器,建立RTCP控制[13],建立数据源。

(2) 传输数据源。具体步骤为首先载入数据源,然后创建RTP包并且向网络发送RTP包。当一个RTP包传送结束后,又进行下一个RTP包的创建发送,如此反复循环,直至数据传输结束。

视频传输模块的流程如图3所示。

5 结语

对物联网智能家居远程视频监控系统进行了测试和调试,结果满足设计目标。该系统可以应用于物联网智能家居系统中,完成对家居情况的实时远程监控,且该系统具备一定的通用性和可扩展性,还可以应用于其他的物联网监控系统中,以满足不同的应用需求,具有广泛的应用前景。

图3 视频数据网络传输流程

References)

[1] 徐品燕.防盗门智能门警装置:CN200720037826.2[P].2008-04-23.

[2] 孙旷,朱善安.智能监控防盗报警系统[J].电子技术设计与应用,2012,2(2):28-31.

[3] 李稳国,崔宪普.基于物联网技术的智能家居防盗监控系统[J].湖南城市学院学报(自然科学版),2012(4):74-76.

[4] 胡玮,孙福明.基于ARM9和ZigBee的嵌入式无线家庭安防系统的设计[J].辽宁工业大学学报(自然科学版),2010,30(5):288-291.

[5] 张艳,王会进.小区智能监控防盗系统的设计与实现[J].计算机工程与应用,2002,11(2):219-220.

[6] Foresti G L. Object recognition and tracking for remote video surveillance[J].IEEE Transactions on Circuits&Systems for Video Technology,1999,9(7):1045-1062.

[7] Joshi K A, Thakore D G. A Survey on Moving Object Detection and Tracking in Video Surveillance System[J].International Journal of Soft Computing & Engineering, 2012,2(3):167-171.

[8] 赵艳玲.基于双内核的嵌入式VoIP电话网关设计[J].计算机与数字工程,2010,38(7):176-180.

[9] 汤霄峰.基于Internet的嵌入式远程监控系统的研究与实现[D].长沙:湖南大学,2009.

[10] 高仁才.基于ARM的网络视频监控机设计及实现[D].长春:吉林大学,2010.

[11] 梁凡,魏晓晖.视频压缩编码的差错复原技术[J].中国图像图形学报,2000,5(5):374-379.

[12] Lu J. Signal processing for Internet video streaming: a review[J]. Proceedings of SPIE-The International Society for Optical Engineering, 2000, 3974:246-259.

[13] 孙松源,吴建国.基于RTP和Android的视频传输的研究实现方法[J].电脑知识与技术,2012,8(4):903-905,914.

猜你喜欢

缓冲区智能家居嵌入式
基于PLC的智能家居控制系统研究
搭建基于Qt的嵌入式开发平台
基于Zigbee的无线通信技术在智能家居中的应用
基于网络聚类与自适应概率的数据库缓冲区替换*
嵌入式软PLC在电镀生产流程控制系统中的应用
关于智能家居真正需求的探讨
关键链技术缓冲区的确定方法研究
初涉缓冲区
智能家居更贴心
Altera加入嵌入式视觉联盟