在本文中,我们将看看您可以将这两种流行的开源软件工具组合起来做什么。
https://embed.notionlytics.com/wt/ZXlKd1lXZGxTV1FpT2lKbE1ESTVOems1TkRjNU1HTTBNVEl6T1RkaVpUTXpaR00yTVRBMVl6ZGlOaUlzSW5kdmNtdHpjR0ZqWlZSeVlXTnJaWEpKWkNJNklsZHNTR2hsVEZSUFdXeHpaVmRhUW1ZNU1YQmxJbjA9
我们的目标是在 Node-RED 中创建一个流来识别图像中的对象,如下面的屏幕截图所示。
使用黄色节点组件从浏览器上传文件后,可以观察到此流程。 用户界面的左下角在“原始图像”节点中显示上传的图像。 在橙色的“图像识别”节点中,TensorFlow.js 训练模型用于对上传的图像(一架飞机)中的内容运行分析。 最后,我们将使用右上角的绿色“输出结果”节点输出在右侧调试选项卡中看到的内容。 另外,在[Image with annotation]节点下会显示一个用橙色方块标注的图像,很容易看出识别了图像的哪一部分。
在以下部分中,我们将解释创建此流程的步骤。 对于此演示,Node-RED 可以在本地环境(在本例中为 Raspberry Pi)和云环境中运行——无论平台选择如何,它都可以运行。 在我们的测试中,Google Chrome 被选择用于 Node-RED Web 用户界面。
我们将从在 Node-RED 中安装 TensorFlow.js 节点开始。 要安装节点,请转到流程编辑器的右上角菜单。 单击“管理调色板”-> 转到“调色板”选项卡-> 选择“安装”选项卡。
如上图所示,搜索结果中显示了要使用的TensorFlow.js节点。 单击“安装”按钮安装 TensorFlow.js 节点。 安装完成后,橙色 TensorFlow.js 节点将出现在左侧面板的分析类别中。
下表描述了每个 TensorFlow.js 节点。 这些都是图像识别节点,但它们也可以生成带有注释的图像数据并执行其他功能,例如图像识别或离线,这是边缘分析所必需的。
# | 名称 | 描述 | 注释图片 | 离线使用 |
---|---|---|---|---|
1 | cocossd | 返回图像中对象名称的节点 | 是 | 可以 |
2 | handpose | 从手部图像估计手指和关节位置的节点 | 不是 | 不可以 |
3 | mobilenet | 返回图像中对象名称的节点 | 不是 | 可以 |
4 | posenet | 根据人的图像估计手臂、头部和腿部位置的节点 | 是 | 可以 |
此外,在 Node-RED 中处理图像数据所需的以下节点应该以相同的方式安装。
如图所示,在“Image with annotation”节点下显示了飞行器上带有橙色注释的图像。此外,您可以看到右侧的调试选项卡正确显示了“飞机”。
随意使用您可以使用的图像,看看它们是否可以被正确识别。