Node-Red智能识别图片

1.节点介绍

要实现Node-Red识别图片内容,在这里我们需要下载新控件:node-red-contrib-tfjs-coco-ssd

  1. 首先在左上角点击设置,并找到节点管理 ;
  2. 在节点管理中点击安装;
  3. 在安装界面的查询窗口输入node-red-contrib-tfjs-coco-ssd控件,查询后选择下载,等待下载完成;(注:本节点的下载依赖于C++、python等环境,若电脑上没有这些,请根据报错信息进行依赖环境的下载及安装)
    在这里插入图片描述
    在这里我使用的是1.0.3版本。
    官方说明能识别的内容:人, 自行车, 汽车, 摩托车, 飞机, 公共汽车, 火车, 卡车, 交通信号灯, 消防栓, 停车标志, 停车计时器, 鸟, 猫, 狗, 马, 羊, 牛, 大象, 熊, 斑马, 长颈鹿, 背包, 伞, 手提包, 领带, 手提箱, 飞盘, 滑雪板, 滑雪板, 运动球, 风筝, 棒球手套, 滑板, 冲浪板, 网球拍, 瓶子, 酒杯, 杯子, 叉子, 刀, 勺子, 碗, 香蕉, 苹果, 沙子, 橙子, 西兰花, 胡萝卜, 比萨饼, 甜甜圈, 蛋糕, 椅子, 沙发, 盆栽植物, 床, 餐桌, 厕所, 电视, 笔记本电脑, 鼠标, 遥控器,, 键盘, 手机, 微波炉, 烤箱, 烤面包机, 水槽, 冰箱, 书, 时钟, 花瓶, 剪刀, 泰迪熊, 吹风机, 牙刷

2.案例介绍

案例参考:官方node-red-contrib-tfjs-coco-ssd节点使用说明网站
大家只需要把网址末尾的代码导入到node-red中即可获得如下图所示的程序。案例中还是用到了node-red-contrib-image-output节点,大家可根据之前的步骤进行安装。

  1. 首先来看一下案例中的代码截图
    在这里插入图片描述

  2. 大家在导入案例,部署后发现点击inject节点前的触点并不会有图片输出,反而还会报错,是因为在http请求节点中使用的是外网的图片链接,大家去百度搜索,更换链接就可以使用啦。
    链接的获取方式就是右键图片,选择复制图像链接,将链接复制到http 请求节点的url位置即可。在这里插入图片描述

  3. 修改链接后,对程序进行部署,再点击inject节点前的小方框,在debug节点可查看输出的内容,在image节点中,可查看识别后的图片,并用粉红色标注识别的内容。在这里插入图片描述
    大家也可以根据说明书里能识别到的物品进行图片更换,识别不同物品。

3.coco节点设置

在coco节点中可以看到如下图所示的参数:
在这里插入图片描述

其中Threshold为设定的精确率,默认使用0.5即可。
Model Url为模型网址,这里使用默认url即可。若我们想远程访问其他电脑的node-red时,这里需将local host修改为对应的IP地址,但这种方式修改不当容易让node-red的后台崩掉,所以并不推荐这样使用。
Passthru被意为执行外部程序并且显示原始输出,在这里有三种输出模式,Nothing表示什么都没有、Original Image为原始图片、Annotated Image为做过标注的图片 ,在这里可根据实际输出情况进行选择。
Box colour为标注框的颜色,默认为品红色。

4.coco节点输出

在第二个inject后的http 请求节点中更新图片链接,并将debug节点设置为与调试输出相同,获得如下图的图片识别输出:在这里插入图片描述
我们可以在右侧栏中打卡debug页面查看coco节点的全部输出:
payload中输粉色框的位置、识别结果和识别精确率;
statusCode为状态码;
responseUrl为图片的网址链接;
image为识别后的图片;
classes为识别结果与个数;
scoreThreshold为coco节点中设定的精确率,当payload中的精确率高于coco节点中设定的精确率时,输出结果时会被识别,否则不会被标注。

注:以上图片均来自百度。

猜你喜欢

转载自blog.csdn.net/weixin_43195420/article/details/126462614