地平线机器人 · 2022年07月20日

X3Pi 内测上手体验+智能监控部署实例

外观

1.jpg
有幸拿到X3Pi的内测版本, 在树莓派疯狂涨价的这个大背景下, 一个有树莓派基本全部功能
+AI加速器BPU的X3Pi售价仅为树莓派的一半, 可以说是性价比非常高了.
先说外观: 尺寸上和树莓派保持一致, 外设接口详见如下表格.
2.png
值得注意的是, 虽然基本尺寸和树莓派一致, 但是一些接口位置和大小有所不同, 导致我手
上的两个树莓派的盒子都不能成功套在X3Pi上, 不过官方开发者论坛里已经有人放出了X3Pi
盒子的3D打印模型了, 有条件的可以自行打印.

性能

功耗上, usb-c口5V2A供电, 实测CPU空载时功率不到5W, 相比树莓派4B 5V3A的供电, 功
耗上的优势还是非常明显的. 较低的功耗不论时对于智能家居系统这种需要7x24在线的常
见, 还是移动小车无人机等电池供电功耗敏感的应用都是非常重要的.
CPU和内存方面基本能够应付日常使用, 我手上拿到的是2GB内存的版本, 有时候本地编译可
能会遇到内存不够的情况, 可能需要交叉编译, 有条件建议选择4GB的版本.
BPU推理引擎方面测试了官方提供的FCOS检测模型, 实测512x512输入.

部署实测

作为一个Home Assistant玩家, X3 Pi这个配置和加个其实完全切中了一个HA盒子的需求.这
里先简单介绍一下Home Assistant(HA), 这是一个开源的智能家居管理平台, 通过HA可以本
地接入包括米家, 涂鸦在内的各品牌智能家居配件, 打破厂家设定的生态壁垒. 它可以运行
在各种载体上: 树莓派, 群晖, 服务器等等. 首先, 作为一项服务(service), 它必须7x24
不间断运行, 因此硬件载体的功耗就是一个很重要的考虑因素, X3Pi 不足5W的待机功耗在
这一点上十分吸引人.
另外, HA社群种大家有一个很大的难题就是监控视频的AI检测: 在家里或者门口装监控摄像
头, 大家都很注重隐私, 一般会选择基于标准视频传输协议的摄像头, 避免了比如米家等大
厂的摄像头把数据上传. 而本地监控摄像头缺乏一个检测监控功能, 目前要么是通过联网
API接口, 要么是通过一些偏向传统的CV检测算法或者是用CPU硬跑AI推理, 不论是实时性还
是精度都不尽如人意. X3 Pi的出现完美解决了这个需求, 通过接受摄像头的RTSP视频流,内
置的BPU直接处理实时低延迟的处理这些信息, 把有用的检测信息推送的HA系统中.

下面我按照这个思路实现了一个简单的例子, 抛砖引玉:

安装教程

  1. 安装Simple RTSP Server
    只要直接去github下载打包文件到X3Pi上解压就可以运行, 注意选择armv 版本
  2. 从官网下载OpenCV, 编译时开启GStreamer, 这一步有几个坑:
    a. 2GB内存上源码OpenCV比较慢有点难度, 可以选择交叉编译, 懒得搞交叉编译的我这里提供一个方法:
    编译的时候关闭其他不必要测试和文档:

    `
    cmake -D BUILD_EXAMPLES=OFF -D BUILD_opencv_apps=OFF -D BUILD_DOCS=OFF -D BUILD_PERF_TESTS=OFF -D BUILD_TESTS=OFF -D CMAKE_INSTALL_PREFIX=/usr/local/ -D WITH_GSTREAMER=ON ....
    `

    b. python调用的时候, 如果之前有通过pip包安装的opencv, python会默认使用pip包的, 这时候需要先写在pip安装的:
    pip uninstall opencv-python
    c. 最后测试一下python 的opencv是不是能够使用gstreamer了:
    python -c "import cv2;print(cv2.getBuildInformation())"
    如图所示, GStreamer这里如果显示NO就说明没有安装成功, 必须是YES才行
    3.png

  3. 下面以MIPI相机为例, 给出一个打开相机->FCOS检测->推流的代码例子
    a. 首先新建一个terminal, 运行rtsp-simple-server, 注意需要保持这个service处于运行状态.
    b. 接好F37相机, 同时结合官方给出的MIPI相机+FCOS例子, 把渲染后的检测结果推流到rtsp相机种.
    具体代码如下见附件, 这里提一句, gstreamer的RTSP推流是需要稳定的帧率的,

所以代码里设定了一个比较低的帧率, 然后在while循环中动态判断sleep时间以达到稳定帧率的效果
c. 如果一切顺利的话, 可以在利用VLC或者PotPlayer打开查看, 或者直接在浏览器打开
其中http是可以直接在浏览器打开的: http://192.168.0.115:8888/mys...

RTSP协议可以在VLC或者PotPlayer中打开rtsp://192.168.0.115:8554/mystream/
4.png
使用示例

  1. 可以通过Home Assistant官方的Stream插件直接接入RTSP流, 可以在网页端实时查看
    5.png6.png
  2. 既然已经接入了Home Assistant, 如果是苹果用户的话, 把摄像头接入Homekit就不在话下了, 这样可以
  3. 可以在Python脚本里加入MQTT, 把检测到的人脸/人体信息发送到MQTT服务器, 成为Home Assistant的人体传感器
本文转自地平线开发者社区
原作者:manymuch
原链接:https://developer.horizon.ai/...
推荐阅读
关注数
1251
内容数
65
我们的使命是 AI 赋能万物 共创智能未来。我们致力于打造最实用、最好用、最易用的边缘 AI 开发平台。通过地平线自研的高算力 AI 芯片,开发工具,让更多的 AI 开发者,中小企业,学习和加速 AI 产品开发和创新!
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息