贾振堂
(上海电力学院 计算机与信息工程学院,上海 200090)
目前在全世界范围内,手机已经成为人们生活的必需品,具有便携性和移动性。因此,若以手机作为远程家电控制的终端,使用起来将非常方便。目前,智能家居的信号传输方式大体可分为:电力载波、无线射频和集中布线。有影响力的家庭网络通信规范有X-10、PLC-BUS,CEBus、LonWorks、UPnP 协议、ECHONET、KNX、Zigbee 和国内“e家佳”联盟推广标准等。
这些技术提供了一种局域网络的智能家居控制方式,主要面向家庭环境或者小区环境,无法直接实现远程控制。为了实现远程控制,需要引入家电控制网关,可通过电话、Internet以及手机[1-3](短信、电话、彩信)等方式与家庭网络连接。
然而,以上方式都不能实现所见即所得的“可视化”效果,反馈信号可能是一个布尔变量、一个短信、或者一个话音的自动回复,不能真实看到设备执行后的视觉情况,甚至不知道所发出的命令是否真的被执行,即处于“盲”控状态。因此,笔者结合现有的PLC-BUS家电控制模块实现可视化的远程家电控制,研究一种基于手机的可视化远程家电控制系统。实现基于视频的操控界面,同时使控制结果“看得见”。
移动通信数据传输能力的提高使视频传输成为可能。数字移动通信从最初低速率的电路数据到分组GPRS(称为2.5代),再到3G,数据速率在不断提高。通常条件下,GPRS的实际数据传输速率可达到30 kbit/s以上。3G的最大数据传输速率可达到2 Mbit/s,尽管在多用户情况下实际速率可能达不到这么高,但是达到114 kbit/s的低速率标准是不成问题的[4]。
手机已经具备视频处理能力。目前智能手机的CPU处理速度都比较高,主频通常在200~450 MHz,同时具备32 Mbyte以上的主存储器。对于 QCIF(176×144)的视频,H.264解码速率可以达到15 f/s(帧/秒)以上,足以满足视频处理的需求。
另外,手机可视控制在花费上是可以承受的。手机上不适合开展IPTV,VoD之类的业务,因为这些业务需要长时间的视频流,花费很高。而手机视频监控,一个操作通常在1 min内即可完成,不需要长时间、大流量的传输。因此,不会有过高的流量花费,也可以采用包月或包年的方法进一步降低费用。
基于手机的可视化远程家电控制系统由家庭控制中心装置、手机、服务器三部分组成,三个部分之间通过Internet连接在一起。服务器具有公开的IP地址或域名以及公开的端口。手机通过移动通信网络提供的数据业务(GPRS/CDMA-1X)实现与Internet的连接,家庭控制中心装置通过家庭宽带与Internet连接,三个部分之间通过TCP/IP进行分组数据通信,如图1所示。
服务器采用专用服务器或高档计算机,并安装服务器软件,实现如下功能:
1)用户信息管理。包括用户基本信息、用户账户计费。
2)提供公开的域名(或IP地址)和端口号,接受用户的登录,并对用户端进行鉴权。
3)数据中转或地址信息交换。支持直接中转数据,或为家庭控制中心装置与手机之间进行P2P通信提供连接信息交换服务。
4)报警信息或报警视音频数据的暂存与回放。
5)短信息发送。当报警发生而手机未在线时,发送报警信息给手机。也可由运营商发送增值服务短信息给手机。
家庭控制中心装置(HCC)和手机都登录到服务器,从而使手机获得HCC的有关信息。在服务器中,以家庭为单位实行分组管理,每个手机只能获取自家HCC的有关信息。手机用户可随时浏览HCC的视频画面,并在视频屏幕上直接对家电“视频对象”进行操控,包括家电的初始位置设置、家电的参数设置、发出家电的操控命令、看到操控的视频结果等。
HCC和手机之间的通信,可由服务器中转全部命令和数据;也可从服务器得到HCC地址和Listening端口之后向HCC发起TCP连接,从而进行直接的P2P通信[5]。服务器支持两种方式的服务。
家庭控制中心装置(HCC)是实现可视化远程控制的核心设备,它由主控模块、网络通信模块、家电控制模块(含PLC-BUS发送器)、视音频处理模块、摄像机控制单元以及家电等外部设备组成,如图2所示。HCC通过家庭宽带网络连接服务器,并通过服务器实现与手机的信息交换。具体来说,HCC实现如下功能:1)登录服务器,将自身的信息报告给服务器,从而进一步传递给手机。2)可选地接受来自手机的TCP连接请求。3)接收和执行来自手机的控制命令,包括视频浏览、家电操控命令等。4)家电控制功能,能够向家电发出控制命令、接受反馈信息,并实现摄像机视频联动。5)视频采集、压缩和发送及流量控制。6)报警信息的处理以及摄像机视频联动。
HCC中,CPU的主要负载来源于视频处理,一方面是耗时的视频压缩任务,另一方面是视频对象的定位与跟踪所涉及的图像处理。本文系统采用TI公司的TMS320DM642(以下简称DM642)作为处理器,视频压缩算法采用H.264。全部软件处理都在DM642中完成,包括以上软件模块及相关的内部数据表。
同时,为了完成设备的智能联动,需要维护内部数据表。这些数据表至少包括摄像机当前方位、客户终端表、受控设备表和命令代码表。
家电的控制通常采用家庭局部网络的方式,主要区别在于底层通信手段和具体的通信协议。目前可采用的通信方式包括红外、无线传输、RS-485、电力线载波和LAN。鉴于电力线载波不需要额外布线,即插即用,同时PLC-BUS技术比X-10具有更高的数据速率、更高的可靠性、更多的地址空间,同时能实现双向通信,所以笔者直接采用荷兰ATS电力线通信有限公司研发的PLCBUS电力总线技术,并将其发送器嵌入到HCC中。PLCBUS发送器与DM642之间采用RS-232串口通信,发送器与接收器之间为电力线载波通信方式。
以手机作为控制终端,采用瘦客户的方式,将视频对象(设备)的位置信息、定位与查询都放到HCC中完成,而操作界面放到手机中。因此,实际上是一个手机与HCC的交互过程。
1)设备信息表
云台的转动通常以度为单位,分为水平(pan)和上下(tilt)两个自由度,每个自由度的度量单位为“度(°)”,范围为[0,360),最小可分辨值通常为 0.01°[2]。 由于具有镜头伸缩能力的摄像机使用不多,这里暂时不考虑镜头伸缩(zoom)的自由度。在HCC中考虑一个虚拟的位置全景图,该图中每个设备都有一个p方向坐标和一个t方向坐标,分别对应云台的 pan和tilt方位角。摄像机可视范围内的所有设备都在该图中有一个具体的位置,如图3a所示。图中,(p0,t0)为摄像机目前的画面中心位置,对应于手机画面的(x0,y0)。
由于设备的数目是有限的(稀疏的),因此可用列表来表示。这样,在HCC中实际上维护了一个设备信息列表,该表中每一行表示一个设备,包括设备的位置信息(p,t,w,h)以及设备名称、设备(电力线载波)地址码等参数。该设备列表初始化为空。
2)坐标变换
摄像机(云台)有一个初始位置,该位置为(0,0),所有设备位置均以此为参考。家电对象在画面中的实际位置信息,还与摄像机的安装方位密切相关,这实际上涉及到摄像机的参数标定问题。由于在家电控制这一特殊应用环境中,摄像机的位置是固定的(与机器人视觉不同),因此不需要进行复杂的标定。尽管如此,依然涉及画面位置(x,y)与全景位置(p,t)之间的坐标换算。 这是由于操作界面为画面坐标,而HCC只知道目前摄像机的方位(p0,t0),若设备对象正处于图像中心,则目前摄像机的方位(p0,t0)即为设备的全景位置。而实际上,要求用户每次都把设备对象准确移动到屏幕中心后再进行操作是不人性的。也就是说允许对屏幕上任意位置(x,y)的设备进行操控,该位置与中心位置(x0,y0)存在(△x,△y)的位置差。需要由(△x,△y)计算出全景图中的位置差(△p,△t)才可确定该设备在全景图中的位置。
假设摄像机不存在图像畸变,则可仅考虑尺度变换。
a,b的求解可采用特征图像的方法。设置一个特定的目标,控制摄像头沿水平方向转动一定的角度△p,通过手机程序测量目标对象在画面中的像素位移△x,则可计算出a和b。
在系统中,手机作为远程操作终端,具备视频解码显示的能力,在视频画面的基础上进行可视操控。这需要自行开发手机程序。目前的智能手机都支持用户程序的加入,常见的操作系统有Windows Mobile(Smart phone以及 Pocket PC),Symbian,CDMA 中的 Brew,以及 Linux。这里选用Pocket PC的手机,它可通过嵌入式VC++(eVC)集成开发环境进行软件开发。
手机软件的主要功能有:通过GPRS或CDMA连接服务器,并取得家庭控制中心设备的有关信息,包括家电信息列表。控制命令的发送和接收处理,包括视频数据的接收、解压缩以及显示。对视频画面中的设备对象进行位置标定和操控。
设备位置标记实际上就是在HCC设备列表中添加一个设备行。这个过程是一个手机与HCC的交互过程,通过手机的人机界面完成。设备位置标记采用人工标注方法,手机登录服务器后即可看到自己家中的HCC,发送视频浏览命令,即可看到家中的实际画面。通过云台控制命令(按钮)可转动摄像机,使目标设备位于画面中(最好是中心位置附近)。
然后,用手写笔或者手机键盘选定所要标记的设备,得到一个矩形框,如图3b所示,即得位置信息(x,y,w,h)。同时,手机界面上会弹出其他信息的输入框,包括设备名称、地址代码等。最后点击确定,手机便将这些信息发送给HCC,HCC将位置换算成全景位置,并添加到设备列表中,即完成一个设备的标定。逐个操作,可完成所有设备的标记。
当操控某个家电设备时,可点击摄像机云台方向按钮,使目标设备处于画面中。然后点击该设备,即可弹出该设备允许的操控命令。选择一个命令,手机则向HCC发送控制命令,该指令包含指定设备的屏幕位置坐标和控制代码编号。
HCC收到该指令后根据屏幕位置坐标在设备数据单元中查找 (比较该坐标落在哪个设备的位置范围内),从而得到设备号,取出设备的地址代码,并将控制命令发送到该设备,使设备得到控制。
若设备目前不在画面中,且不想进行手动的云台搜索,则可在手机的设备列表中选择一个设备(如图4b所示),并发出搜索命令,然后手机自动切换到视频界面。HCC将根据设备编号,查找到设备的位置信息,并将摄像机对准该设备。
笔者研究了一种基于手机的可视化远程家电控制系统。由服务器、家庭中心控制装置(HCC)和手机三部分组成。HCC采用了TI公司的DM642作为处理器,以H.264为压缩标准,并采用PLC-BUS收发模块。手机软件在Pocket PC上实现。系统将视频技术引入远程控制过程,实现了在手机屏幕上依据视频画面进行设备信息输入、设备远程操作控制的功能,满足了人们“眼见为实”的心理要求。今后,将对现有各种智能家居系统作进一步研究,提出切实可行的技术融合方法以及接口规范,同时开发更多款式的手机软件,推进其产业化的进程。
[1] LOUISE B,ANNA V.Smart home in your pocket[EB/OL].[2010-05-14].http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.131.3802&rep=rep1&type=pdf.
[2]PELCO.PELCO′D′protocol manual[EB/OL].[2010-05-31].http://wenku.baidu.com/view/5bcfd4c30c22590102029dd5.html.
[3] 吴立爽,胡建平.智能电话远程家电控制系统的设计[J].信息技术,2005(9):152-154.
[4] 张美琴,龚卫国,李正浩,等.基于智能手机的远程家电控制及安防监测系统的设计[J].测控技术,2007,26(8):72-74.
[5] 贾振堂,吕海莲,韩艳芳.手机视频监控系统及其性能[J].电视技术,2007,31(11):81-83.
贾振堂(1969-),博士,副教授,长期从事视频通信技术以及远程无线控制技术的研究与产品开发。