APP下载

基于树莓派的应用型开放实验

2017-11-06刘琼吴细宝陈雯柏

计算机教育 2017年10期
关键词:树莓派模式识别视频监控

刘琼 吴细宝 陈雯柏

摘 要:树莓派在创新产品中的应用越来越广泛。文章提出以树莓派为开放实验平台,结合模式识别学科背景,阐述基于树莓派的监控拍摄系统的应用型实验项目设计,包括软件系统设置、基于Python的视频采集和处理以及接收模块的程序设计、整体系统的集成。

关键词:树莓派;开放实验;模式识别;视频监控

1 背 景

树莓派是一款携带方便、价格低廉的卡片式电脑,也称为树莓派电脑板,外观如图1所示。它由注册于英国的慈善组织 “Raspberry Pi 基金会”开发,是以提升学校计算机科学及相关学科的教育,让计算机变得有趣为宗旨,为学生计算机编程教育而设计[1]。树莓派自从2012年3月上市以来,得到众多发烧友和创客的热爱,更是出现专门的网页论坛[2-3]和网上实验室[4]。

树莓派板载资源丰富,处理能力强,适合开发各种轻量级的应用[5-7],对提高学生的创新精神和Linux环境下的编程能力有重要意义,同时也能提高学生对底层硬件的运用能力。实验要求学生采用树莓派开发板设计一个监控拍摄系统,通过在树莓派上接入摄像头并添加相关的视频异常目标捕捉算法,实现场景的实时监控。

2 开放实验条件

实验所需设备主要有树莓派开发板、摄像头、电脑和无线通信設备。实验室提供树莓派model B+主板、联想台式电脑和罗技C270免驱摄像头。树莓派model B+主板基于博通ARM11 BCM2835的mini PC,可运行Linux系统,也可以运行微软的Win10等操作系统。大学生开放实验的开设以项目驱动为主导,服务于创新产品的设计与制造,提供学生实际操作硬件设备的机会,激发其创新的灵感与思维,提高学生的创新能力与实践能力以及团队协作意识。

实验进行过程中,以学生独立思考实践为主,教师辅导为辅。学生在累积270学时的时长里,可自由选择实验场所;同时,在完成实验任务的基础上,还可提出申请,申报大学生科技创新项目,继续深入研究。

3 基于树莓派的监控拍摄系统开放实验

基于树莓派的监控拍摄系统开放实验需要在对树莓派进行软件配置的基础上,完成后续处理。方式1:客户端直接接收摄像头采集的视频(如图2虚线所示流程)。这种方式是我们常见的,并已得到广泛应用,此时摄像头只需要把看到的信息存储在自带的设备里或者发送给服务器端即可,所看即所得。方式2:对采集到的视频进行可疑目标检测后,发给服务器端存储,客户端通过与服务器端通信,接收视频(如图2实线所示流程)。

本次实验中,我们要求学生采用方式2完成,把模式识别课程中学到的目标检测算法应用到实际例子中,对摄像头拍摄到的视频在摄像头端完成可疑目标检测,圈出可疑目标后,发出警报或者发送到服务器端存储,供客户端实时查看视频或者在需要时回看视频录像。考虑到Python语言的应用越来越广泛,而且更容易习得,实验中,我们提倡并指导学生在树莓派上编写Python程序[8]。

3.1 系统软件配置

对树莓派进行系统软件配置如同给计算机安装操作系统,是后续一切程序执行的基础。树莓派支持以下操作系统:Debian Gnu/linux、Respbian OS、Fedora、Arch linux ARM、RIS OS、Free BSD、Android和XBMC。最近,微软将Win10向嵌入式系统进行了免费开放,以部署其移动端[9],不过Raspbian OS是官方的系统,树莓派相对更适用,这也是我们本次实验主要用到的系统。通过将Raspbian OS操作系统下载到SD卡里,并将SD卡装载到树莓派,即可启动,然后对鼠标、键盘、开机密码、网络进行配置,只需等待其他程序或软件的写入与安装。

3.2 视频采集

视频采集利用Opencv和PIL提供的API完成从摄像头获取数据和打包数据,因此要在系统中安装一些相应的Python依赖库:libopencv-dev、 python-opencv和 python-imaging。

实现视频采集的主要步骤如下:①打开摄像头,并设置图像大小;②创建套接字,并准备服务器地址;③发送请求,接收响应,建立连接;④获取视频帧,将图片在内存中保存为JPEG格式,完成图片压缩;⑤进行数据传输;⑥完成数据传输后断开,关闭套接字,释放资源。

3.3 可疑目标检测

监控环境通常都是摄像头静止,背景固定,因此,在可疑目标检测里,我们主要考查学生对背景固定的前景目标检测算法的掌握程度。通常来说,有背景帧差法[10]和相邻帧差法[11]两种实现算法,算法详细流程不再赘述,主要步骤如下:①获取视频帧,建立背景模型;②图像灰度化,进行差分运算,将差分结果二值化;③对二值化图像进行膨胀运算,查找图像轮廓,排除无效轮廓;④绘制物体轮廓。

3.4 数据存储

视频端采集到数据后,由于板载资源有限,将其发送给服务器端存储,因此,服务器模块连接视频采集端和远程客户端,同时完成数据的转发,从而使视频采集端与服务器建立连接后,客户端可以随时随地连接服务器查看监控区域。

主要步骤:①创建套接字;②准备地址和端口信息;③绑定套接字、接收请求、发送响应、建立与客户端的连接;④完成数据包由摄像头端到远程端的转包服务;⑤服务结束,关闭套接字,回收资源。

3.5 视频接收

视频接收端主要完成接收视频数据的解压缩并且予以显示的功能,因此,客户端系统环境配置开发中用到的Python资源库与采集端类似:libopencv-dev、 python-opencv和 python-imaging。主要步骤如下:①创建套接字,并准备服务器地址;②发送请求,接收响应,建立连接;③建立窗口;④读取数据包,将图片在内存中转换为图片数据;⑤显示图像;⑥完成数据传输后断开,关闭套接字,释放资源。endprint

4 实验效果与收获

4.1 科研能力、创新思维和团队协作意识的培养

基于树莓派的应用型开放实验项目有别于传统的课内实验项目,无标准答案可寻,着重培养学生的自学能力和独立解决问题的能力。实验任务所呈现的问题需通过广泛的资料调研才能得到有效的解决,对于培养本科生的科研能力有极大的促进作用;与此同时,在实验过程中,能够激发学生的创新思维,使其自由大胆地发挥想象力,不断改善系统性能。

在实验过程中,学生设想并实践了很多种实现方案,如给树莓派接上超大容量的移动硬盘,省掉中间的服务器设备,客服端直接和树莓派通信获取监控视频。然而,在实验过程中,硬盘的带动对树莓派的负载能力有较高的要求,同时对供电系统的要求也陡然提高,导致树莓派很容易就被烧掉。学生在不断尝试的基础上,对失败的实验总结经验教训,经过多次努力最后获得成功,由此也养成了胆大心细的科研作风和谨慎的科研态度。

与此同时,系统从设计到不断尝试到最后方案的敲定,从程序编写到最后联机调试,都需要所有学生反复讨论商议并亲自动手实践,对培养学生的团队协作意识有极大的促进。

4.2 全新教與学模式的探索

基于树莓派的监控拍摄系统将模式识别、机器视觉、人工智能等理论课程的内容有机地融入实际应用中,可以使学生对理论课上抽象的概念有直观的了解,并对某些过程进行实践,获得更多的认知体验。开放式的教学环境能够给学生提供更多与教师进行轻松互动的机会,同时也能够给教师提供更多了解学生的途径,启发教师尝试更丰富的教学方式,甚至更新的科研方向。

5 结 语

基于树莓派的应用型开放实验项目设计是一种全新教与学模式的探索。对学生而言,经过270学时的实验,他们也掌握了丰富的树莓派产品开发知识以及基于Python语言的程序开发;更加重要的是,经过不断的讨论,不断的尝试与否定、再肯定,培养了动手实践能力、科研能力、创新思维和团队协作意识。

在本次实验中,虽然考虑到树莓派有限的存储能力和计算能力,抛开了复杂检测算法的开发,但是实验结果对现有产品也有一定的改善与创新[12],通过将算法集成到树莓派中,使其成为一款小巧的能看能想的监控摄像头,替换现在随处可见的只看不想的常规摄像头。

对于后续实验内容,我们考虑将实验难度再拔高一个档次,以更好地锻炼和培养学生的科研实战能力,如应用到更复杂的场景中或者应用到开放式环境中,结合表情识别,开发面向多目标的视频可疑目标检测算法。

参考文献:

[1] 百度百科. 树莓派[EB/OL]. [2017-10-10]. http://baike.baidu.com/subview/7154334/11078842.htm#viewPageContent.

[2] 果壳. 树莓派能做的奇葩工作[EB/OL]. [2017-10-10]. http://www.guokr.com/post/480889/.

[3] 树莓派论坛[EB/OL]. [2017-10-10]. http://www.shumeipai.net/forum.php.

[4] 树莓派实验室. 用树莓派DIY六足行走的机器人[EB/OL]. [2017-10-10]. http://shumeipai.nxez.com/.

[5] Richardson M, Wallace S. 爱上 Raspberry Pi[M]. 李凡希, 译. 北京: 科学出版社, 2013: 1-200.

[6] Suehle R, Callaway T, 舒乐·卡拉威. 树莓派实战秘籍[M]. 符鹏飞, 马立新, 潘铁军, 译. 北京: 人民邮电出版社, 2015: 1-126.

[7] 柯博文. 树莓派 Raspberry Pi 实战指南: 手把手教你掌握100个精彩案例[M]. 北京: 清华大学出版社, 2015: 30-225.

[8] Bradbury A, Everard B. 数字匠人: 树莓派Python编程指南[M]. 王文峰, 译. 北京: 机械工业出版社, 2015: 1-60.

[9] 镁客网. 微软推出开发套件, 让树莓派运行Win10轻松又随意[EB/OL]. (2015-09-29)[2017-10-10]. http://www.im2maker.com/fresh/20150929/583.html.

[10] Schalkoff R J. Digital image processing and computer vision[M]. New York: Wiley, 1989: 1-185.

[11] 崔星, 闫清东. 基于帧间差分方法的道路车辆检测系统[J]. 微计算机信息, 2008 (10): 117-119.

[12] 李龙棋, 方美发, 唐晓腾. 树莓派平台下的实时监控系统开发[J]. 闽江学院学报, 2014(5): 67-72.

(编辑:宋文婷)endprint

猜你喜欢

树莓派模式识别视频监控
轻身调脂消渴片的指纹图谱建立、化学模式识别及含量测定
汽车外观造型创新设计遗传算法的应用
基于嵌入式Linux的视频监控系统的设计与实现
智能安全防盗探测小车
基于HTML5的视频监控微课设计浅析
智能视频检索技术在校园安防建设中的发展应用
自动洁地机器人的设计
分布式光纤传感边坡工程检测设计
基于嵌入式技术的农村医疗系统设计