logo好方法网

一种实现宠物喂食器视频监控和远程控制的方法


技术摘要:
一种实现宠物喂食器视频监控和远程控制的方法,包括以下步骤:1)为无屏幕、无法用户操作的Android系统的宠物喂食器连接上USB摄像头,打开Android studio;2)在Android studio中的主活动初始化USB摄像头;3)启动USB摄像头预览;4)对USB摄像头获取到的每一帧采用简化的帧  全部
背景技术:
人类的发展离不开科技的进步,伴随着计算机和信息处理技术的  不断发展,人们 的生活在电子产品的帮助下变得简便、舒服、安全。  最近几年,智能手机和智能家居的飞速 发展,进一步推进了人们智能 化的生活方式。 公共安全不光是引起各国的注意,也激发了民众对公共安全的担  忧,其中最基本 的安全就是外在环境的安全。而视频监控系统作为一  种替代普通人眼的监控手段,不仅能 用于一般的家庭安防,也能用于  公共安全的安防监控。目前视频监控已广泛应用于商场、 车站、银行、  商贸洽谈、体坛赛事等众多公共场合,同时气象、交通、医疗等众多  领域也在 广泛采用视频监控,甚至越来越多的家庭开始使用监控设备。  在目前安防这个领域中,发 展最快最火需求最大的当属视频监控。尤  其是在近几年传统互联网向在移动互联网快速 迁移的大背景下,视频  监控迎来另一个发展高潮,传统视频监控开始向移动便携化的方向 发  展。 移动化的视频监控与智能终端、Internet的发展紧密相联,后者 的发展将极大推 动视频监控的发展。2008年以后,具有革命性的手机  操作系统的出现,尤其是Google推出 的安卓系统,使得进行各种应  用的开发周期大大缩短。其不仅推动了终端市场的发展,改 变了移动  行业,也极大的推动了互联网向移动化的方向迈进,目前搭载该系统 的终端更 是达到84.6%。另外手机网络目前大范围向4G制式过渡,  通信质量和传输速度得到大幅提 升。而近几年随着以高通、MTK为 处理器核心的移动智能手机终端硬件不断提升,使得智能 终端的功能  更加强大,逐渐可以取代传统PC。在图像处理方面,其不仅可以利  用摄像头进 行图像实时釆集,同时还可以利用其具备的网络通信功能  实现随时随地的获取或传送监 控图像,这为视频监控提供了巨大的便  捷性和广泛的应用性。 目前许多开发板采用Android操作系统,但出于成本考虑,许多  厂家不会安装传 统的CMOS摄像头,而USB接口则一定会安装。因  此,提供一种Android系统的外接USB摄像头 实现物体运动检测的方 法既可以节省成本又可以达到视频监控的目的。
技术实现要素:
为了克服现有技术的不足,本发明针对无屏幕、无法用户操作的  Android系统的 宠物喂食器,给宠物喂食器连接上USB摄像头,提供  一种初始化USB摄像头的方法和一种简 化的帧间差分法来实现对物体 的运动检测,然后在移动端上通过SIP协议实现对宠物喂食 器的远程  控制。 为了解决上述技术问题本发明提供如下的技术方案: 4 CN 111614866 A 说 明 书 2/7 页 一种实现宠物喂食器视频监控和远程控制的方法,包括以下步骤: 1)为无屏幕、无法用户操作的Android系统的宠物喂食器连接上  USB摄像头,打开 Android  studio; 2)在Android  studio中的主活动初始化USB摄像头; 3)启动USB摄像头预览; 4)对USB摄像头获取到的每一帧采用简化的帧间差分法检测物体 运动; 5)移动端通过SIP协议实现对设备的远程控制。 进一步,所述步骤2)中,初始化USB摄像头包括以下步骤: (2.1)获取权限; (2.2)获取到权限之后继而调用UVCCamera这个开源库的进程连  接方法来尝试建 立USB连接; (2 .3)在进程连接方法中可以看到在第一次建立连接的时候会新  建一个 UsbControlBlock对象,在它的构造函数里会调用USBMonitor  中mUsbManager的 openDevice方法来创建连接; (2.4)回到进程连接方法,在USB连接建立后,会调用USBMonitor  中的监听接口: mOnDeviceConnectListener,在该接口的onConnect  方法里拿到USB连接建立成功的回调, 在该回调里就可以调用  UVCCameraHandler的open方法来准备真正启动相机; (2 .5)在handleMessage中会调用创建UVCCameraHandler时候  同时创建的 CameraThread的handleOpen方法,在该方法中创建了与  c层交互的核心类——UVCCamera; 创建完之后继而直接调用了open  方法,可以看到UVCCamera的open方法中调用了 nativeConnect、  nativeGetSupportedSize、nativeSetPreviewSize这三个native的  方法 来真正启动相机;相机启动之后会继续回到CameraThread的  handleOpen方法,在该方法中 又调用了callOnOpen来通知外部相机 开启继而完成整个相机的启动过程。 所述步骤3)包括以下步骤: (3.1)在USBMonitor.OnDeviceConnectListener的onConnect 回调中(openCamra 之后)调用UVCCameraHandler的startPreview 方法; (3 .2)回到预览流程可以看到AbstractUVCCameraHandler中拿  到外部传入的 surface之后执行了与openCamera相同的流程——通过  消息机制调度相机操作,这里就发 送了一个MSG_PREVIEW_START消息  通知AbstractUVCCameraHandler.CameraThread来开启 预览; (3.3)CameraThread中的handleStartPreview大概就是做了设  置预览相关参数、 设置预览数据回调监听、绑定纹理、开启预览等这  几部操作。之后调用的逻辑就进入到了 jni层。 所述步骤4)中,帧间差分法先进行灰度变换,然后相邻帧作差  分,差分完成后再 通过固定阈值或自适应阈值来作二值化或提取差异  灰度数,运动轮廓的提取通过对差异 像素进行着色标记或者二值化来 实现;所述步骤4)包括以下步骤: (4.l)对序列图像进行中值滤波预处理,去掉图像随机噪声,减  少以后运算的复 杂度,克服噪声对图像处理结果的干扰; (4.2)从视频图像序列中选取出背景图像,使其只包含固定的背 景图像; 5 CN 111614866 A 说 明 书 3/7 页 (4.3)在视频图像序列中选取连续的两帧图像,其中前一帧图像  pk-1(x,y),当前 帧图像pk(x,y); (4.4)计算当前帧与背景帧的差得FD(x,y),从图像中提取出完  整的目标; (4.5)计掉当前1帧的差得FG(x,y),得到目标的变化量; (4.6)求帧差FD(x,y)与,FG(x,y)的交集得到运动目标粗糙的运  动区域幽像。 所述步骤5)包括以下步骤: (5.l)首先客户端向信令服务器发送OPTIONS请求,OPTIONS请求 的消息体应该添 加query等XML节点表示查询视频参数节点; (5.2)信令服务器转发OPTIONS请求给NVS; (5.3)AVS收到OPTIONS请求后,回复200OK给信令服务器,其  XML节点包含了视频 参数节点; (5 .4)用户单元向SIP服务器发送INVITE请求,INVITE请求的消  息体应该添加 mediaXML节点表示是请求实时视频,同时消息体中也要  添加表示视频参数的节点,包括分 辨率、音视频压缩格式和码率; (5.5)接着SIP服务器转发INVITE请求给设备; (5.6)SIP服务器收到请求后回复100trying表示收到请求; (5.7)设备收到INVITE请求后先回应100trying,表示收到请求; (5.8)设备收到media请求信息后,回复200ok给SIP服务器; (5.9)SIP服务器回复200OK给用户表示准备发送视频给用户,  200OK回复的消息 体中有发送给用户的视频的参数信息,如分辨率、  音视频压缩格式、码率等,还有视频转发 服务器的IP、端口以及用户 需要发送给视频服务器的激活码消息体信息; (5.10)用户收到200OK请求后回复ACK给SIP服务器; (5.11)SIP服务器向设备回应ACK,设备收到ACK后开始发送视 频; (5.12)用户向SIP服务器发送BYE请求表示用户结束接收视频数  据; (5.13)SIP服务器回复200OK给用户表示BYE请求完成; (5.14)SIP服务器转发BYE请求给设备; (5.15)设备收到BYE后,停止视频发送,并响应200  0K给服务  器。 本发明通过Android系统的宠物喂食器对USB摄像头的初始化,然  后对USB摄像头 获取到的帧采用简化的帧间差分法,从而实现对物体  的运动检测,最后在移动端上通过 SIP协议实现对该设备的控制。 Android系统的宠物喂食器连接上USB摄像头之后,我们要做的  第一件事就是获 取权限,在获取到权限之后将UVCCamera这个开源库  导入到自己的Android工程中,然后调 用这个库的进程连接方法并调  用USBMonitor的监听接口:OnDeviceConnectListener,这 个接口是 从外部创建USBMonitor时候实现的,而在该接口的连接方法里我们就  可以拿到 U S B连接建立成功的回调,在该回调里就可以 调用U V C C a m e r a  开源库中的 UVCCameraHandler的open方法来准备真正启动相机。 重写USB摄像头的onPreviewFrame(字节[ ]数据)方法,并  将默认的YUV转换为 RGB,进一步,对相邻的两帧采用简化的帧间差 分法。 帧间差分法是一种通过对视频图像序列中相邻两帧作差分运算来  获得运动目标 6 CN 111614866 A 说 明 书 4/7 页 轮廓的方法,它可以很好地适用于存在多个运动目标和  摄像机移动的情况。当监控场景中 出现异常物体运动时,帧与帧之间  会出现较为明显的差别,两帧相减,得到两帧图像亮度 差的绝对值,  判断它是否大于阈值来分析视频或图像序列的运动特性,确定图像序  列中 有无物体运动。图像序列逐帧的差分,相当于对图像序列进行了 时域下的高通滤波。 在运动检测中,帧间差分法比较通用的做法是先进行灰度变换,  然后相邻帧作差 分,差分完成后再通过固定阈值或自适应阈值来作二  值化或提取差异灰度数,然后进行形 态学处理或判断差异数,以提取  出运动目标轮廓或判断运动目标是否存在,整个过程比较 费时。而通  常视频监控中,最主要的工作是要判断有无运动目标,而不一定要判 断出运动 目标的位置,同时处理时间越短越好,所以完全可以去掉形  态学来处理过程,以实现对运 动目标的运动状态作出快速判断,而运  动轮廓的提取可以通过对差异像素进行着色标记 来实现(这个过程也 可以改成二值化过程),不用等到获取整个差分图像后再进行。 简化的帧间差分法算法的实现过程如下: RGB图像转换为灰度图像,RGB图像的别称为真彩图像,在通常情  况下,会按照图 像的颜色,一红绿蓝三种颜色为一组,每一组均代表  像素的色彩。这些色彩直接存在图像 的数组之中而且不需要使用调色  板,RGB图像作为一种拥有二十四位的图像,三种颜色均 在一组中占  据八个位码,在理论上,所有的图像总共有2的24次方种颜色。因为  涵盖灰度 级不同,所以该类图像成为灰度图像,在通常的情况下,大  多数的灰度图像只能存放在一 个矩阵里,在该矩阵中一个像素点就是  该矩阵中的一个元素。元素的数值可以涵盖某个亮 度区间,在通常情  况下,0指得是灰色,1和255指的是白色,因为灰度图像在存储的过  程中 用不到调色板,所以在编程的时候会用一个默认的系统调色板来  显示图像。根据不同的彩 色图像,我们可以利用其色度的不同建立三  维空间坐标系,三个数轴都代表一个色度,这 样就可以直接把色度进  行区分和读取,彩色图像就變成了直观的坐标图。这种方法有利于 我  们直观的读取图片信息。虽然这种方法看是简便,但是由于加权问题, 图片在还原的时 候有可能出现图像失真的情况,其主要原因在于我们  对于红黄蓝的敏感度不同; 图像差分处理,作为面向像素级演变的像素检测步骤,差分处理  可以建立连续帧 的差分和图像背景变化为坐标数据的差分算法。在连  续帧间差分处理方面,其中一套是将 连续的两帧进行对比,从中提取  有用的信息,这种算法的主要公式如下: D=|f(x,y,i)-f(x,y,i-1)|   (1) 式(1)中f(x,y,i)和f(x,y,i-1)分别为前一帧和当前帧的亮度分量,  D为二者的 绝对值; 差分图像二值化,在运动目标视频序列图像差分算法之中,需要  对差分处理的图 像进行二值级化处理,依据点来检测或者是判断背景  和运动目标,这种算法的依据来自于 像素级理论。在通常的做法中,  二值算法需要建立一个值T,当差分的获得值在T的范围内 的时候,  应当将算法结果列为背景像素,反之为目标像素; 简化算法目标主要是判断有无运动目标出现,并不用判断运动目  标的位置,简化 算法采用固定阈值(具体阈值大小根据不同场景需求  去设定),去掉了传统帧间差分法个 别步骤使判断运动目标速度更快。 针对无屏幕、无法用户操作的Android系统的宠物喂食器,为了  能控制该设备推 流和其他的相关功能,在移动端上通过SIP协议与设 备进行交互。 7 CN 111614866 A 说 明 书 5/7 页 SIP协议:Internet的许多应用都需要建立和管理一个会话,会  话在这里的含义 是在参与者之间的数据的交换。由于考虑到参与者的 实际情况,这些应用的实现往往是很 复杂的:参与者可能是在代理间  移动,他们可能可以有多个名字,他们中间的通讯可能是 基于不同的  媒介(比如文本,多媒体,视频,音频等)-有时候是多种媒介一起  交互。人们 创造了无数种通讯协议应用于实时的多媒体会话数据比如  声音,影像,或者文本。本SIP (会话初始协议)和这些协议一样, 同样允许使用Internet端点(用户代理)来寻找参与者 并且允许建立  一个可共享的会话描述。为了能够定位精确的会话参与者,并且也为  了其 他的目的,SIP允许创建基础的network  hosts(叫做代理服务器), 并且允许终端用户注册 上去,发出会话邀请,或者发出其他请求。SIP  是一个轻形的,多用途的工具,可以用来创 建,修改和终止会话,它  独立运作于通讯协议之下,并且不依赖建立的会话类型。 本发明的有益效果为: 1)提供了一种简化的帧差法,不仅加快运动目标检测速度,而且  在不引入OpenCV 等复杂库的情况下实现了运动检测的功能。 2)提供了一种使用SIP协议实现对无屏幕,无法用户操作的  Android设备的控制。 附图说明 图1是本发明的流程图。 图2是初始化USB摄像头时序图。 图3是启动USB摄像头预览时序图。 图4是简化的帧间差分法实现过程图。 图5是远程控制设备的SIP信令交互流程图。
分享到:
收藏