基于姿态的灯光控制:使用 Node-Red 和 Raspberry Pi 搭配 AIkit
本文档由 AI 翻译。如您发现内容有误或有改进建议,欢迎通过页面下方的评论区,或在以下 Issue 页面中告诉我们:https://github.com/Seeed-Studio/wiki-documents/issues
简介
本文档将指导您如何使用 AI kit 运行 YOLOv8,利用 YOLOv8 监测您的姿态,并最终根据您的姿态控制灯光。在本项目中,USB 摄像头捕捉您的姿态,YOLOv8n 在 AI kit 和 reComputer R1000 上运行以检测您的姿态。处理后的视频会实时通过 gstreamer 流式传输到 reTerminal DM。同时,关节坐标通过 mqtt 发送到部署在 reComputer R1000 上的 Node-RED。最后,Node-RED 流程根据关节坐标控制智能灯光。
准备硬件
运行此项目
在 reComputer R1000 上
第一步:安装 AI 套件
请参考 此维基,确保您已在 reComputer R1000 上安装 AI 套件。
第二步:安装项目
使用以下命令下载项目:
git clone https://github.com/LJ-Hao/Pose-Based_Light_Control_with_Node-Red_and_Raspberry_Pi_with_AIkit.git && cd Pose-Based_Light_Control_with_Node-Red_and_Raspberry_Pi_with_AIkit
第三步:运行姿态估计
编辑 pose_estimation.py
文件,将 mqtt_server
修改为您的 reTerminal DM 的 IP 地址。同时将 Gstreamer pipeline
修改为您的 reTerminal DM 的 IP 地址。然后运行以下命令以启动姿态估计:
bash run.sh
第四步:安装 Node-RED
安装 Node-RED。您可以使用以下单行命令下载 Node-RED:
bash <(curl -sL https://raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered)
第五步:导入 flows.json
导入项目文件。点击右上角的 Settings => Import
,在新弹出的窗口中点击 click select a file
选择文件,选择 flows.json
,最后点击 Import
。
第六步:下载所需的控件
导入项目文件后,系统可能提示您的 Node-RED 缺少一些控件。您需要下载以下控件:
@bartbutenaers/node-red-rtsp-to-mjpeg
@chirpstack/node-red-contrib-chirpstack
@flowfuse/node-red-dashboard
node-bacnet-contrib-extended
node-red-contrib-buffer-parser
node-red-contrib-image-output
node-red-contrib-image-tools
node-red-contrib-modbus
node-red-contrib-msg-speed
node-red-contrib-multipart-stream-encoder
node-red-contrib-onvif
node-red-contrib-play-audio
node-red-dashboard
node-red-node-base64
node-red-node-mysql
node-red-node-pi-gpio
node-red-node-ping
node-red-node-serialport
node-red-node-smooth
node-red-sensecap-paas
node-red-node-random
以 node-red-node-random
为例,点击右上角的 Settings => Manage Palette
,在新窗口中选择 Install
栏,输入 node-red-node-random
,最后点击 Install
按钮。
第七步:部署项目
点击右上角的部署按钮,系统将正常运行。
在 reTerminal DM 上
第一步:在 reTerminal DM 上安装 gstreamer
使用以下命令下载 gstreamer:
sudo apt-get install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgstreamer-plugins-bad1.0-dev gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav gstreamer1.0-tools gstreamer1.0-x gstreamer1.0-alsa gstreamer1.0-gl gstreamer1.0-gtk3 gstreamer1.0-qt5 gstreamer1.0-pulseaudio
第二步:安装仓库
使用以下命令下载仓库:
git clone https://github.com/LJ-Hao/Pose-Based_Light_Control_with_Node-Red_and_Raspberry_Pi_with_AIkit.git && cd Pose-Based_Light_Control_with_Node-Red_and_Raspberry_Pi_with_AIkit
第三步:运行视频接收器
python3 video_receiver.py
结果
我们在 YouTube 的直播中展示了这个演示,直播开始于 19:47
。你可以看到,当主持人拍手时,灯会亮起;当主持人挥手时,灯会熄灭。请欣赏这个演示:
技术支持与产品讨论
感谢您选择我们的产品!我们致力于为您提供多种支持,以确保您使用我们的产品时体验顺畅。我们提供了多种沟通渠道,以满足不同的偏好和需求。