基于Android智能家居远程监控系统设计
目前,远程视频监控系统已成为智能家居的重要组成部分。智能监控系统基于Android操作系统平台,以平板式计算机作为客户端,通过HTTP协议从IP摄像机下载监控图片,并利用多种算法对家中各房间或不同角度的情况进行智能监控。
近年来,视频监控系统已在制造企业、物业管理、无人职守终端、银行、交通、仓库等领域得到广泛应用。当家庭中有特别需要关注的物体和区域时,家庭的主人可在其所处的家庭环境中安装摄像头,通过网络远程观察其状况,当发生意外情况时也可通过网络监控事态的进展。随着智能移动终端的广泛普及,同时由于其特有的便携性和易于接入网络的特性,移动终端成为动态监控和现场监控的理想选择。
本文设计的视频监控系统客户端设备为Android平板电脑,该客户端从IP摄像机获取实时的监控图片,根据不同场景用不同算法来判断家中有无人员出入,标注关注对象并智能跟踪,辨别各房间的照明情况及电视、计算机等家电的使用情况,可同时实现4路智能监控。
1监控平台介绍
1.1客户端平台介绍
客户端采用Android智能操作系统,Android是Google公司于2007年11月5日发布的基于Linux平台的开源手机操作系统的名称。该平台由操作系统、中间件、用户界面和应用软件组成,底层Linux内核只提供基本功能,其他的应用软件则由各公司自行开发,部分程序以Java编写。
2011年初数据显示,仅正式上市2年的Android操作系统已超越称霸10年的Symbian系统,跃居全球最受欢迎的智能手机平台。现在,Android系统不仅应用于智能手机,也在平板电脑市场急速扩张。同时,Android智能手机操作系统具有5大优势:开放性、摆脱运营商的束缚、丰富的应用选择、开发商不受任何限制和无缝结合的Google应用。
1.2 IP摄像机介绍
IP摄像机是一种可产生数字视频流,并将视频流通过有线或无线网络进行传输的设备,其不需要额外的软硬件,便可以将活动的数字图像直接传输到互联网上,使在世界各地的计算机都可以通过浏览器观看实时活动数字图像。IP摄像机支持TCP/IP,SMTP E-mail,HTTP以及其他Internet协议,支持诸如Windows,Unix,Mac及OS/2等多种操作系统。
该设计采用海康威视公司的DS-2DM1-502型网络中速智能球型摄像机,支持客户端通过HTTP协议下载监控图片和H.264码流。
2程序设计原理及实现
2.1客户端设计原理
该设计采用Android系统的平板电脑为客户端,客户端的软件流程如图1所示。
系统的具体实现大体分为两部分:与IP摄像机连接,获取所需视频流;根据监控场景做出相应判断及响应。
2.1.1获取监控视频
客户端通过WiFi与IP摄像机连接,登录IP摄像机后,选择监控频道,可同时实现4路智能监控,即可以观察家中的基本情况:家中有无人员进出,是否有人在家,对监控中出?
的对象进行关注跟踪,辨别各房间照明情况以及电视、计算机等家电的使用情况等。客户端实现方法为启用多线程控制4路监控任务,使每路监控任务具有相对独立性,以便更换频道。
多线程的具体实现方法有两种,分别是继承Thread线程类和实现Runnable接口。客户端若采用继承Thread线程类的方法,则不能继承除线程类之外的其他类,而界面子线程必须继承View视图类,所以本设计采用第二种方法。监控实现中,每一路画面都是一个单独的线程,也是一个完整的视图,它是实现了Runnable接口且继承View类的类对象。因此每个对象之间相互独立,每路监控画面相互独立,可以灵活选择监控频道,以便后台控制管理。
界面实现上,主界面为4路监控窗口,初始选择监控频道后便可通过HTTP协议获取监控图片序列,根据场景进行算法处理,并播放智能监控画面。
2.1.2程序优化
客户端需要根据不同场景调用不同的智能监控算法对发生的事件进行判断与识别,这一过程包含了大量的图像处理运算,如灰度化、背景建模差分、中值滤波和形态学运算等。Android操作系统的开发语言为Java,但是纯Java编程的图像处理程序在Android手机上的运行速度是其很大的问题。通过JNI(Java Native Interface)技术在Java程序中调用C程序模块,明显地提高了应用程序的运行速度。笔者截取了40帧作为观察对象,程序各主要运算步骤的平均运行时间如表1所示,从中可以看出运行时间缩短到了原来的1/18~1/17.
表1主要算法Java和JNI实现的运行时间比较
2.2功能与实现
该设计的智能监控系统具有3大功能:管理家中所有摄像头,可灵活选择监控点;执行多种不同智能算法;能够和其他联网设备联动,实现智能家居控制。
笔者用不同的实际场景对该系统进行了测试,系统的功能描述与实验结果如下。
1)多路监控
获取实时监控图片,同屏显示最多4路经后台算法处理后的智能监控画面,如图2所示。若需更换监控频道,可点击监控界面右侧的路数列表,即可弹出频道选择栏,进行频道更换,以便更全面地实时监控家中情况,如图3所示。
- 基于Linux/Qt的智能家居系统设计(07-07)
- 基于ARM-linux的智能监控系统设计(08-25)
- 基于Linux的智能家居管理方案(01-05)
- 基于ZigBee无线网络的嵌入式智能家居监控系统(03-18)
- DIY智能家居之多功能一体化触屏遥控器的设计实现(04-14)
- 完整解决方案打包奉送:多点触控智能家居平台软硬件实现(07-25)