基于IOT-Tree Server,配合IOT-Tree AI Edge实现手势识别

IOT-Tree AI Edge是IOT-Tree Server的配套开源项目,使用python实现,此项目管理摄像头和相关的AI算法,并为IOT-Tree Server提供基础支持。

其中包含了基于摄像头的手势识别,支持左右手且每个手包含如下手势识别结果:"Closed_Fist", "Open_Palm", "Pointing_Up", "Thumb_Down", "Thumb_Up", "Victory"

要在IOT-Tree Server中使用 IOT-Tree AI Edge提供的支持,可以在IOT-Tree项目消息流中进行配置。

如果你对IOT-Tree Server不了解,可以看如下内容

IOT-Tree Server是个开源物联网软件,可以作为组态软件成为自动化系统的上位软件。她提供了各种设备接入、数据组织管理、数据分享使用、消息流控制逻辑和人机交互多个方面的功能。当然,你也可以仅仅使用这个软件作为数据采集终端或边缘计算的软件。

这是IOT-Tree Server相关的系列文章,你可以参考其他文章更多了解IOT-Tree能给你带来的好处:

使用IOT-Tree Server通过MC协议连接三菱Q系列PLC

使用IOT-Tree Server通过FINS协议连接欧姆龙CP2E-N系列PLC

系列文章还包含IOT-Tree完成一个具体项目的过程,非常详细,如下:

机房自动化监控手把手分享给你 - 10 项目完成总结

1,准备IOT-Tree AI Edge运行实例

AI Edge项目地址如下:iottree-ai-edge 。下载项目到本地目录,建议目录不要有空格和非ascii支付。

1.1 python conda运行环境

安装python 和conda运行环境------此部分内容参考网络资料,本文不展开。

建议使用miniconda创建python独立运行的环境。在iottree-ai-edge目录下,使用下述命令,确保环境安装和激活成功。

conda env create -f environment.yaml

conda activate iottree-edge

1.2 运行iottree-edge

在conda的iottree-edge环境下,运行命令

python server.py

复制代码
python server.py
INFO:__main__:服务启动中...
 * Serving Flask app 'server'
 * Debug mode: on
INFO:werkzeug:WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
 * Running on all addresses (0.0.0.0)
 * Running on http://127.0.0.1:9091
 * Running on http://192.168.10.225:9091
INFO:werkzeug:Press CTRL+C to quit
INFO:werkzeug: * Restarting with stat
INFO:__main__:服务启动中...
WARNING:werkzeug: * Debugger is active!
INFO:werkzeug: * Debugger PIN: 757-757-148

出现如上运行提示,说明IOT-Tree AI Edge已经运行成功。请确保运行AI Edge的主机有摄像头,或者能否访问其他某个网络摄像头。

2,IOT-Tree项目调用过程

假设你已经建立了一个IOT-Tree运行实例,并且已经准备好了内部项目(此部分具体内容请参考上面提供的相关参考资料------本文假设你已经熟悉这些基本内容和消息流的基本概念)。

2.1 IOTTree Edge节点的添加和摄像头列表配置

在项目管理主界面,建立并打开消息流,本文以"手势控制"这个消息流为例。选择"AI"分类下的"IOTTree Edge"模块节点,拖拽到绘图区,就完成了一个AI Edge节点的添加。如下图:

双击此节点,弹出对话框进行配置:

其中Edge Host和Port是我们之前启动的IOT-Tree AI Edge运行主机和端口。如果你的IOT-Tree Server和Edge不在同一台主机,那么对应修改即可。

而Edge Cameras这个表格,对应此IOT-Tree AI Edge当前支持的摄像头列表。本文的AI Edge自带了一个本地摄像头,因此自动显示在列表中。

而IP Cameras表格,允许你手工为IOT-Tree AI Edge添加网络摄像头。点击+按钮,填写摄像头名称和地址加入即可,然后可以点击"synchronize to edge"添加到Edge中。如果添加成功,这上面的Edge Cameras表格就会列出,也就可以被挑选使用了------这部分内容不展开了,你如果有自己的网络摄像头,可以自己尝试。

2.2 添加手势识别子节点

鼠标单击选中"IOTTree Edge 1"节点,可以看到左下角弹出了模块子节点列表,选择"手势识别"节点,拖拽到绘图区,完成模块子节点的添加。

双击此新加的节点,可以看到下拉Camera列表中,显示了"IOTTree Edge 1"配置对应的所有摄像头,选择需要的摄像头即可。

而Check Interval是识别算法对摄像头数据帧进行识别的时间间隔毫秒数,数值越小代表需要的计算量就越大。

注意:此手势识别节点有消息输出时才会触发打开摄像头进行识别。如果一定的时间段(如5秒)内没有任何输入消息,则会自动停止识别并关闭摄像头------用来支持计算资源的自动释放。因此,只需要控制此节点的输入消息也就可以轻松控制识别算法的启动和自动停止。

2.3 设置定时器触发识别和结果输出

本文使用一个1秒定时器触发这个手势识别,并使用调试节点查看识别结果输出。如下图:

只需要启动这个定时触发器节点,就可以启动"手势识别 1"的运行。

3,运行效果和后续可能应用

启动项目或只单独启动这个消息流,可以看到"定时触发器 1"进入工作状态,有1秒间隔的消息输出。如果一切正常你会发现摄像头指示灯打开,进入工作状态。

此时,你在摄像头面前摆出上面说的相关手势,就会发现识别有结果输出,如下:

而停止消息流运行,等待若干秒时间,摄像头指示灯会关闭,说明已经退出了识别状态。

以上整个过程非常简单,你可以使用这个功能,为你的应用提供特殊功能:

如可以为你的智能家居提供手势控制功能(适合一些老年人),也可以为你的一些设备提供虚空启动或关闭支持。。。

相关推荐
kkkliaoo1 小时前
AI编程Token费用大公开:四种真实场景的年成本对比
ai·开发工具·程序开发
Bruce_Liuxiaowei1 小时前
WorkBuddy案例——自动化内容创作平台
人工智能·ai·大模型·智能体·workbuddy
CV码2 小时前
MediaPipe入门指南
人工智能·计算机视觉·手势识别
Uranus^2 小时前
大模型/深度学习/机器学习绘图模板(PPT格式)
人工智能·深度学习·机器学习·ai
多年小白2 小时前
英伟达VR200机柜PCB价值量同比+233%:AI硬件主线如何被引爆?
大数据·人工智能·科技·深度学习·ai
振浩微433射频芯片2 小时前
告别“遥控失灵”:如何评估国产433芯片在智能家居领域的可靠性?
网络·单片机·嵌入式硬件·物联网·智能家居
MetrixAeroCore2 小时前
Metrix Aero Core国际物联网卡是什么?形态、优势与适用场景解析
物联网
土星云SaturnCloud2 小时前
土星云边缘计算设备的多模态模型部署实操
服务器·人工智能·ai·边缘计算
Java知识技术分享3 小时前
claude code安装superpowers
java·ai