基于OpenCV的室内照明智能控制系统设计与实现

2016-06-13 22:01刘锐何志毅
科技视界 2016年13期
关键词:串口通信

刘锐 何志毅

【摘 要】为提高室内照明控制的灵活性和降低家庭安防的成本,结合照明控制与视频监控技术,设计了一种基于OpenCV的室内照明智能控制系统。使用USB摄像头采集实时视频信号,结合MFC与OpenCV设计上位机控制软件,单片机作为照明控制MCU,PC与单片机采用串口通信。上位机可设置视频监控ROI(感兴趣区域),并进行运动物体检测。系统根据不同的检测结果,控制照明状态的改变,从而实现对特定照明区域的照明智能控制。

【关键词】OpenCV;视频监测;照明控制;串口通信

0 引言

随着经济和数字信息技术的迅速发展,计算机、通信和自动控制技术不断进步并相互渗透,人民对灯光照明控制的要求不断提高,室内照明的智能化控制受到越来越广泛的关注。同时,人们对信息的需求和安全保障的渴望与日俱增[1],在家庭安防领域,视频监控也日益兴起。目前国内的视频监控也逐步向数字化、多功能化、智能化方向发展[2]。日常生活中,照明控制系统与视频监控系统通常作为两个独立的系统被分别使用,不仅使用不便、成本较高且难以维护。本课题的主要目的是结合当下流行的照明控制技术与视频监控技术开发出经济、可靠的室内照明控制系统,同时兼有视频监控功能,实现室内照明控制的人性化和个性化[3]。

1 系统方案设计

基于OpenCV的室内照明智能控制系统如图1所示。USB摄像头采集视频信号,经数据线传送到PC端。系统PC端上位机使用基于MFC与OpenCV开发的视频监控-照明控制软件,可实现监控画面的实时显示、运动物体检测和照片拍照等功能。上位机根据视频中运动物体的不同检测结果,给出相应的照明控制信号,并通过串口传送到下位机照明控制MCU,MCU依据接收的控制信号控制照明模块照明状态的改变。其中,照明模块采用单片机开发板上8个LED模拟实际室内照明灯。

图1 照明智能控制系统

图2 视频监测-照明控制软件界面

在Visual Studio 2013集成开发环境下,结合MFC应用框架和OpenCV计算机视觉库,编写上位机视频监控-照明控制软件,界面如图2所示。界面分为以下几个主要功能区:“画面显示”、“本地资源”、“信息显示”、“摄像头视频采集”、“检测结果”和“串口通信”等。当打开本地图片、视频文件,或USB摄像头采集实时视频,都显示到“画面显示”中;“本地资源”可以打开本地保存的图片、视频资源;“信息显示”中“图片信息”显示打开的本地图片的文件路径,“视频信息”显示正在播放视频的视频信息,如帧数、帧宽和帧高;“摄像头视频采集”包含了对USB摄像头的相关操作,如打开/关闭摄像头、获取摄像头帧图像、保存/停止保存视频等;“检测结果”用来显示视频中运动物体检测的结果信息;“串口通信”是关于串口通信参数的设置,也包括打开/关闭串口功能。

2 串口通信

串行通信,数据的各位在一根传输线上按照时间顺序依次传送,具有实现简单、使用灵活方便、数据传输可靠等优点,在许多行业中得到大量应用[4,5]。

基于OpenCV的室内照明智能控制系统中PC与单片机之间采用串口通信。首先对串口参数初始化,确定串口的工作方式、波特率、数据位以及停止位等。系统串口通信参数设置为:波特率9600bit/s、无校验位、8位数据位和1位停止位。

3 视频监控与照明智能控制

3.1 视频运动物体检测

鉴于USB摄像头在视频采集过程中处于固定状态,同时考虑到运动物体检测的灵敏度和算法的复杂度,系统采用帧差法检测运动物体。帧差法是用一帧图像减去另一帧,然后把足够大的差别标记为前景目标,能够很好的捕捉到运动物体的边缘。利用帧差法进行运动物体检测流程如图3所示。

图3 帧差法运动物体检测

运行PC端视频监控-照明控制软件,在显示的视频画面上绘制监控ROI,同时弹出两个ROI同大小的视频显示窗口“camera1”和“camera2”,分别用于显示ROI视频画面和用帧差法处理后的ROI二值图像,如图4(a)、(b)所示。可以看出,对视频图像采用帧差法处理,可以很好的得到运动物体的边缘轮廓,从而检测出运动物体,且当超过系统预设的判别阈值,系统会对有运动物体的视频画面进行拍照保存。

(a)ROI视频图像 (b)ROI二值图像

图4 ROI视频帧间差分法效果图

USB摄像头朝向某一固定方向采集实时视频信号,对于像室内窗户、门口、楼梯口等特殊地方的视频监控,系统PC端可以自主设置ROI。根据实际应用的需要设置不同的ROI,可提高视频监控的效率和针对性。

3.2 照明智能控制

系统对运动物体检测的不同结果设置了相应的判别阈值。规定帧差法处理后的一帧ROI二值图像中总像素点个数为N,非零像素点的个数为num;据此设置判别阈值:分别记为0、N*0.2、N*0.4、N*0.6、N*0.8,则得出五个不同的判别范围:0-N*0.2、N*0.2- N*0.4、N*0.4- N*0.6、N*0.6- N*0.8及N*0.8-N;当num处于不同的判别范围内时,系统给出相应的警告信息,分别为:“Alert1_LED0”、“Alert2_LED1”、“Alert3_LED2”、“Alert4_LED3”、“Alert5_LED3”。其中警告级别分别从一级到五级,对应点亮不同的LED灯。第一级中num相对很小,有可能是其他非行人等物体所致,故不点亮LED灯;第四、五级时,说明num值足够大,同时点亮3个LED灯;对于第二到五级别,点亮LED灯的同时,系统对ROI视频画面拍照并保存,以供后期查看。

视频中运动物体的检测结果对应哪个判别范围内,系统就给出相应的警告信息和照明控制信号,其中,警告信息显示在上位机软件界面的“检测结果”中,照明控制信号经串口传送给单片机。单片机接收到控制信号后,控制LED灯照明状态的改变,进而在视频监控的基础上实现照明智能控制。

4 结束语

本文利用VS2013中的MFC应用框架与OpenCV计算机视觉库编写上位机视频监控-照明控制软件,与下位机MCU进行串口通信,结合USB摄像头和照明模块组成室内照明智能控制系统。通过设置视频监控ROI,可实现对特定区域的视频监控与照明控制。经实验测试,该系统可以准确检测出ROI区域内的运动物体,并且必要时拍照保存视频画面,实现视频监控功能;同时,下位机在接收照明控制信号后,相应的改变照明状态,实现照明智能控制功能。系统工作稳定,安全、可靠,兼具视频监控与照明智能控制的功能,提高了照明控制的灵活性的同时也降低了家庭安防的成本,为基于视频监控的室内照明智能控制系统设计提供了一套完整方案。

【参考文献】

[1]张晓情.多功能远程监控系统的设计与实现[J].自动化与仪器仪表,2015(12):41-42.

[2]程向娇,黄言态.无线视频监控关键技术研究及开发[J].中国科技信息,2010(16):155-156.

[3]梁人杰.智能照明控制技术发展现状与未来展望[J].照明工程学报.2014(02):15-26.

[4]王正强.VC中应用MSComm控件实现串口通信[J].电子测试,2010(05):73-76.

[5]龚新文.串口通信在VS2008中的实现与应用[J].电脑与电信,2011(03):47-48.

[责任编辑:汤静]

猜你喜欢
串口通信
基于Qt和Flash的嵌入式Linux软件架构设计
基于Python实现设备控制台的集中控制和管理
基于MSP430单片机的窄带无线数据传输模块的设计
便携式数传电台测试系统的设计与实现