教程 | BerryNet:如何在树莓派上实现深度学习智能网关

选自Github

机器之心编译

参与:蒋思源

该项目在树莓派 3 上使用深度学习使其成为一个智能网关。该设备并不需要联网,所有的训练和调试等都在树莓派 3 本地完成。在 DT42,我们相信将深度学习应用于便捷设备在未来是一个大趋势。因为这样不仅能节省数据传输和储存的成本,而且还能在无需连接云端的情况下使设备根据图像或视频中显示的事件进行响应。

项目地址:https://github.com/DT42/BerryNet

图1

图 1 展示了该项目的软件架构,我们使用 Node.js、MQTT 和 AI 引擎对图像或视频帧进行深度学习。到目前为止,该系统由两个人工智能引擎提供支持,即分类引擎和目标检测引擎。图 2 展示了分类和目标检测之间的差别。

图2

该智能网关的一个应用就是使用相机监测你想关注的地方。如图 3,其显示了 DT42 办公室摄像头的分析结果。这些视频帧由 IP 相机捕捉,并将其发送到人工智能引擎。人工智能引擎的输出结果将显示在主控面板中。我们正在处理邮件和 IM 通知接口,因此当 IP 摄像头捕捉到目标(如狗),系统将采用邮件或其他形式通知用户。

图3

人工智能引擎

目前支持的人工智能引擎利用了以下几个项目的研究:

  • TensorFlow
  • Darkflow
  • Darknet

该系统目前支持的分类模型为 Inception v3,目标检测模型为 TinyYOLO。

安装

$ git clone https://github.com/DT42/BerryNet.git $ cd BerryNet $ ./configure

开始和停止 BerryNet

BerryNet 由系统(systemd)控制,你可以通过 berry-manager 控制 BerryNet:

$ berrynet-manager [start | stop | status | log]

配置

所有配置都在 config.js 中:

  • 选择人工智能引擎
  • 目前有两种类型的人工智能引擎:目标分类和目标检测。
  • 配置 IP 相机快照的访问接口
  • MQTT topics

主控面板

在树莓派 3 上打开主控面板(通过触摸屏)

打开浏览器并输入统一资源定位符:http://localhost:8080/index.html#source=dashboard.json

主控面板默认配置文件将会加载。

在任意电脑的浏览器上打开主控面板

打开浏览器并输入统一资源定位符:http://:8080/index.html#source=dashboard.json

点击数据源,并将 MQTT 代理的 IP 地址更改为网关的 IP 地址。

如要获得更多详细的主控面板配置信息,请参考 freeboard 项目:https://github.com/Freeboard/freeboard

提供图像输入

通过 Pi 相机捕捉图像

$ mosquitto_pub -h localhost -t berrynet/event/camera -m snapshot_picam

通过配置 IP 相机捕捉图像

$ mosquitto_pub -h localhost -t berrynet/event/camera -m snapshot_ipcam

提供本地图像

$ mosquitto_pub -h localhost -t berrynet/event/localImage -m <image_path>

讨论

如果对该项目的疑惑、建议或任何创意,都可以在该项目谷歌论坛讨论:https://groups.google.com/a/dt42.io/d/forum/berrynet。

本文为机器之心编译,转载请联系本公众号获得授权。

本文分享自微信公众号 - 机器之心(almosthuman2014)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-04-30

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏云瓣

用 Node.js 把玩一番 Alfred Workflow

作为 Mac 上常年位居神器榜第一位的软件来说,Alfred 给我们带来的便利是不言而喻的,其中 workflow(工作流) 功不可没,在它上面可以轻松地查找任...

53630
来自专栏web前端教室

【先行者课程】_在线全栈备忘录(四)之mongoDB的ObjectId是什么?

今天是周二,是先行者课程“在线全栈(MongoDB&nodeJs)备忘录”的第四次课,今天的内容不是特别的多,但是却比较重要。 <!-- --> ? mong...

44760
来自专栏我的博客

代理Node服务器

apache版本 DocumentRoot /data/html/abc ServerName blog.phpfs.com ...

39450
来自专栏AI科技大本营的专栏

程序员想搞机器学习?看看Nodejs之父这一年摸爬滚打的心路历程

本文是Nodejs之父Ryan Dahl在Google Brain做了一年深度学习后的心得体会,他在那里的目标是用机器学习将卓别林的老电影自动修改到4K画质。他...

47070
来自专栏我的博客

NodeJS操作Mysql示例

//config.js module.exports={ mysql:{ host:'localhost', port:3306, user:...

58780
来自专栏禅林阆苑

GitBook 安装配置 & 导出PDF 【原创】

GitBook 安装配置 & 导出PDF Write By CS逍遥剑仙 我的主页: www.csxiaoyao.com GitHub: gi...

47670
来自专栏HansBug's Lab

【前端】Ubuntu16下nodejs+npm+vue环境配置

笔者最近在学习vue.js,不过一直都是在runoob上面各种尝试。今天笔者在本机(Ubuntu16.04)尝试部署了nodejs+npm+vue开发环境,接下...

39750
来自专栏我的博客

NodeJs当中module.exports和exports的区别

Module.exports才是真正的接口,exports只不过是它的一个辅助工具。 最终返回给调用的是Module.exports而不是exports。 所有...

39460
来自专栏牛客网

京东前端面经(123面详细)

广州面试,14号一面,16号二三面。 一面:25分钟左右   1.根据项目问了websocket协议和node.js 就讲了下websocket协议,以及nod...

52670
来自专栏从零开始的linux

安装express

安装express [root@alex ~]#yum -y install npm [root@alex example]# yum install node...

48280

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励