基于树莓派的智能“魔镜”设计
2021-03-11潘志倩
潘志倩
(中国传媒大学 互联网信息研究院,北京100024)
0 引言
基于物联网的智能家居是以家庭为平台,利用自动控制技术、网络通信技术、智能感应技术、总线技术等,将家庭生活中的通信设备、电器、家具等设施集中规划的智能化系统,能为住户提供更便捷、更智能、更安全的居住环境[1]。 现以当下先进的微型计算机树莓派为基础展开课题研究,在传统家居镜子的功能之上加入了智能化技术,摆脱传统被动模式,使之成为具有能动性、可交互的现代化智能工具,为智能家居研究领域乃至其他领域提出新的产品架构和技术方法,改善现代生活并创造高效、舒适的新家居情景和生活服务。
1 “魔镜”系统总体框架
智能“魔镜”系统主要由基于Linux 环境的树莓派[2]、本地客户端、因特网服务器端三部分构成。如图1 所示,硬件设计部分由树莓派主控板、摄像头、液晶显示器屏幕、单向透视玻璃、麦克风、音箱等设备改造和组装而成。 树莓派作为控制处理中心,向运行系统内置的信息流显示客户端、智能语音识别客户端、智能语音交互客户端和实时图像调取客户端等多个平台和程序,向因特网各个服务平台调用和获取关键性中心数据,使该智能“魔镜”系统具有选择性丰富的生活信息服务功能,提供效率较高的安全保障。
智能“魔镜”系统采用物联网三层结构模型[3],主要包括感知层、网络层和应用层,技术架构分别为全面感知、连接传输和智能计算。
2 系统功能论述
图1 智能“魔镜”系统总框架设计图
图2 智能“魔镜”系统功能架构
本文所设计的智能“魔镜”系统如图2 所示,包括镜面信息服务流展示平台、智能语音交互服务、实时监控安全防范3 个智能家居多功能模块,旨在为使用者提供实际、便捷的智能信息服务和准确、实时安全的生活安全保障。
信息服务流展示模块够为用户提供直观及时的电子时钟及日期、实时天气信息及预报、客制化文本展示、实时新闻内容等服务,并定期进行更新。 智能语音交互平台模块完成娱乐服务、智能家居控制、生活资讯检索等功能。 实时监控安全防范平台模块可定时获取摄像头拍摄的图像,或在镜面、电脑端、手机端等平台看到实时监控画面。
3 硬件设计及实现
本文所设计的智能“魔镜”系统使用的硬件包括核心处理器树莓派、数据流展示界面显示屏、感知层非结构化多媒体数据采集和录入设备麦克风和摄像头、音频数据输出设备音箱等,主要作用是为使用者与“魔镜”系统之间进行数据交互式传输,提供输入输出服务。
3.1 核心硬件树莓派
为满足智能“魔镜”系统在家居应用场景中灵活、轻便的需求,本设计选择使用树莓派(Raspberry Pi)3 代B+型作为该系统核心处理器和关键硬件平台,接收感应层采集到的数据并传向应用层,同时接收应用层的反馈数据向使用者进行呈现。
3.2 信息流显像屏
智能“魔镜”信息流显像平台是智能镜显示和人机交互的基础模块,依托显示技术,选择对可见光具有高反射、能实现单向透视原理的单向透视玻璃镜与和液晶屏显示器改造组装而成。 既可维持传统镜子的成像特性,也可将镜子后液晶显示屏上的信息显现而出。
3.3 图像视频捕捉传输硬件
影像捕捉硬件连接方式采用了CSI 接口连接方法,选取了摄像头RPi Camera 作为元器件,该摄像头具有500 万像素,模组为OV5647,视场角约为60.6°。 使用15PIN FFC 即一条十五芯的排线与树莓派的CSI 相机接口进行连接。
4 软件设计及实现
智能“魔镜”系统软件设计流程图如图3所示。
4.1 Diet-Pi 系统部署
Diet-Pi 是一个专为树莓派设计的纤薄版操作系统。 其总镜像(image,Linux 系统内核映像文件)大小始于400 MB 左右,足足轻于树莓派官方提供的Raspbian Lite 系统有三倍之多。经实验可以得出, 即使在安装桌面及基本软件之后Diet-Pi 系统占用空间亦不到1.3 GB。
图3 系统软件设计流程图
4.2 信息流展示模块设计与实现
主界面信息流展示模块采用浏览器/服务器模式(Browser/Server),由一个汇集了HTML(超文本语言)、CSS(层叠样式表)、JavaScript 等静态资源和提供数据接口API 的本地网页构成,浏览器访问该网页后持续不断地通过API 接口以TCP/IP 的传输协议向相对应的服务器端发出数据获取的请求,而API 接口所对应的数据库和应用程序即远程服务器,在建立连接和接收到请求命令后将会返回响应结果。
4.3 语音唤醒模块设计实现
语音唤醒模块采用Snowboy 作为唤醒引擎。 Snowboy是一个嵌入式的实时语音监听检测引擎,能够运行一个完整的自动语音识别过程(Automatic Speech Recognition,ASR[4])来进行触发词的监控检测,语音唤醒流程如图4所示。 树莓派等设备获取到语音后,会持续监视自动语音识别转录过程中特定触发词的出现,很好地解决了自动语音识别过程消耗大量设备和带宽资源问题,同时为用户使用基于云的解决方案时提供隐私安全保护的服务。
图4 语音唤醒流程
4.4 实现语音交互模块设计与实现
语音交互模块采用百度DuerOS 提供的Linux 版本DCS 协议的智能设备语音交互开发包完成开发。 该SDK提供了如有声直播、新闻、生活信息等全方面云服务BOT 配置,可调用媒体播放器,获取设备信息和对设备进行操控,配合小度之家SDK 能完成网络配置配对等物联网基础功能。
语音识别流程如图5 所示。 客户端通过get 请求向服务平台发送数据建立长链接,以HTTP post 方式上传指令音频。 服务器端通过语音活动检测(Voice Activity Detection,VAD[5])检测语音输入完成后,发送反馈Directive 推送命令,随即客户端播放反馈音频。
图5 语音识别流程
4.5 图像监控模块实现
该模块运行图片监控脚本程序代码,定时通过摄像头获取实时图像, 基于七牛云的Python SDK 建立本地客户端并连接互联网后,将本地获取的图片实时上传至七牛云云端存储器。七牛云存储服务是以键值对的方式提供非结构化资源存储服务。 图像监控流程如图6 所示。
图6 图像监控流程
4.6 实时监控模块实现
该模块主要采用Nodejs+WebSocket 和内网穿透的方式实现功能。 WebSocket[6]是HTML5 的一项持久化的协议,只需要一个HTTP 握手即可建立长事件的连接。NAT内网穿透技术[7]实现不同局域网内的主机进行通信。 启动WebSocket 继电器,在本地终端执行HTTP-Server 命令将摄像头获取的视频流提供给浏览器,通过内网穿透客户端生成Ngrok 服务器,启动隧道,部署内网地址映射到域名上, 通过域名查看当前摄像头所拍摄的画面。实时视频监控流程如图7 所示。
图7 实时视频监控流程
5 系统测试与实现效果
最终镜面效果如图8 所示,整体内容轻重得当,UI简洁清晰,合理美观的布局确保了使用者能够在短时间内看到关键信息和资讯内容。
图8 镜面效果图
语音功能测试中,程序能够主动识别语音中所包含的唤醒词,并进入高频率记录语音信息状态,所有语音数据信息都能被程序解析和记录。 当使用者说出“播放一段新闻”的指令后,程序开始对该指令进行识别,并将字词解析为文本,上传云端调用相应的资讯信息并播放反馈,最终完成整个语音交互过程。 语音终端运行结果如图9 所示。
监控功能测试中,系统自动定时开启摄像头进行拍摄, 使用者能够通过PC 端或手机端对摄像头实时拍摄的画面进行监看,家居安全防范的基本需求得到满足。
经大量实际测试,“魔镜”系统工作稳定,语音交互成功率为95%, 实时监控部分存在图像延迟0.5 s~1 s现象,但能平稳运行。
6 结论
本文主要提出了一个汇集智能数据展示、语音交互生活服务、简易安全防范生活保障等方面的智能家居中心平台解决方案,同时结合了树莓派、网页前端设计、物联网通信技术、云端服务平台等多项技术与服务支持,基于多项硬件的部署和软件的开发设计,基本实现了能够提供多项技能和生活服务功能的智能家居“魔镜”系统。
图9 语音终端运行结果
从创新和实际使用角度分析,该系统以树莓派为平台,在系统运行、外设扩展和网络性能等方面都要比基于51 单片的系统或以Arduino 为平台的系统更具有优势,同时在运行系统上采用小巧灵动的Diet-Pi 系统,不但具有丰富的软件支持,而且在使用和操作上更加简易和方便,是区别于更多人使用相对厚重的Raspbian 系统的一次成功的实验和创新。