HaaS Python + 达摩院AI能力 实现云端一体物体识别

简介: HaaS Python + 达摩院AI能力 实现云端一体物体识别

物体识别系统

  本案例是确定要识别的物体区域后,通过模拟按键通知摄像头抓拍区域图片并上传至云端,云端通过HaaS增值服务对抓拍的图片进行识别,最后给出图片中的都有哪些物品,同时给出识别物品名称和可信度,通常使用在装修设计、图片检查上辅助操作者确定物品是否齐全。




背景知识

  HaaS增值服务:集多种人工智能算法为一体的云端服务,通过设备端上传图片到云端,云端对图片进行识别,并把结果返回给设备的服务,目前已涵盖图片识别、文字识别、物品识别、人型识别等多个类别。


场景功能拆解

实验整体步骤如下:

1. 连接硬件

2. HaaS云端积木平台创建设备

3. 设备端开发和运行

4. 处理云端识别结果

准备

1. M5Stack Core2开发板       一套

2. M5Stack Unit CAM摄像头    一个

3. 连接线                    一根

4. 公对母杜邦线               若干

涉及到的硬件购买链接如下,仅供参考,不负责商家发货的品质保障等问题!


名称 数量 参考链接

M5Stack Core2开发版 1 M5Stack Core2

microUSB数据线 1 M5Stack Core2开发套件自带

摄像头 1 M5Stack Unit CAM摄像头

连接线 1条 M5Stack GROVE连接线 请选用10cm长即可

公对母杜邦线 若干 公对母杜邦线 请选用10cm长即可

  连线示意图如下图所示:




  硬件连线图如下图所示:




云端平台功能开通

在本案例中涉及到云端平台功能都聚合在HaaS云端积木中,所以无需单独使用 对象存储OSS 和 视觉智能开发平台。因此,整个云端步骤分为下面两步。


1. 注册阿里云账号并登录阿里云账号;

2. 登录HaaS云端积木控制台创建设备;

注册阿里云账号

  进入阿里云官网,如已有阿里云账号可跳过这步,注册阿里云账号 。


HaaS云端积木平台创建设备

登录HaaS云端积木平台

  进入阿里云官网,用阿里云账号登录HaaS云端组件控制台 。




创建设备

  在左侧导航栏设备管理中,可以看到产品和设备选项,点击“产品”,可以看到平台默认创建了“haas_正式游客产品”这个产品; 所以开发者只需要创建设备即可。点击“批量添加”, 添加方式为“自动生成”, 申请数量可填为“1”个,即可完成新设备的创建。






获取设备的三元组

  在设备的列表中,新创建的设备上点击“查看”,就可以获得设备的三元组信息,之后这个三元组信息会在设备端代码中使用到。






  请复制该处的三元组信息,后面设备端开发需要使用。


设备端开发

开发环境

  在进行下一步之前请确保M5StackCore2开发环境已经搭建完毕。详情请参考M5StackCore2快速开始的说明。


创建解决方案

  如下图所示,打开VSCode后,新建一个基于helloworld的python工程,设定好工程名称(“detect_object”)及工作区路径之后,硬件类型选择m5stackcore2,点击立即创建,创建一个Python轻应用的解决方案。




代码准备

下载设备端代码并解压,将解压后的所有脚本复制替换“detect_object”工程根目录下的所有文件,然后进行如下设定完成设备端代码的开发。


Python脚本的详细说明请参考脚本内嵌的文字注释


3.1. 修改路由器名称及密码


  修改detect_object工程里main.py中SSID和PWD的值为读者实际要连接的路由器的名称及密码(请注意名称和密码都需要放在''符号中间)。


  修改完成之后connect_wifi函数就会连接读者自己设定的路由器。


# Wi-Fi SSID和Password设置

SSID='Your-AP-SSID'

PWD='Your-AP-Password'

3.2. 修改设备的三元组信息


  按照[获取设备的三元组]获取三元组信息,填入main.py中:


# HaaS设备三元组

productKey = "Your-ProductKey"

deviceName  = "Your-devicename"

deviceSecret  = "Your-deviceSecret"

3.3. 运行结果


  推送此脚本到M5Stack之后,在网络连接成功后,屏幕上将打印出IP地址和"NTP Done"。如果迟迟不能显示“NTP Done”,请长按电源键关机同时拔掉USB线重新上电运行。


  模拟按钮动作,可通过公对公杜邦线模拟,先把一头插入GPIO27,然后把另一头插入GND后,马上拔出,即启动抓拍并上传云端,识别成功后串口会有提示。


  物体识别识别成功后,在屏幕上显示红色Object Detected的字样。


  串口会周期性的打印如下日志。


Wi-Fi is connecting...

Wi-Fi is connecting...

Wi-Fi is connected

IP: 192.168.xxx.xxx

NTP start

NTP done

establish tcp connection with server(host='${Your-ProductKey}.iot-as-mqtt.cn-shanghai.aliyuncs.com',port=[443])

tcp_connect: can only connect from state CLOSED

success to establish tcp,fd=54

link platform connected

启动按钮监控线程

按下拍照按钮

[  24.210]<E>AIOT_UPLOAD MQTT Upload file(detectObject.jpg) ID(HPmY8VNEXj2K6skS3t3S010200) success

{'ext': '{"elements":[{"boxes":[33,134,111,238],"score":0.3,"type":"potted plant"},{"boxes":[33,134,111,238],"score":0.208,"type":"flower"}]"result":"success"}','commandName': 'detectObjectReply','commandType': 'haas.faas','argInt': 1}

detect: potted plant

识别结束

get response time : 1234

按下拍照按钮

[  27.100]<E>AIOT_UPLOAD MQTT Upload file(detectObject.jpg) ID(OLnlY33oqKZZgf7yu6gX010200) success

get response time : 458

{'ext': '{"elements":[{"boxes":[48,86,178,111],"score":0.378,"type":"keyboard"}],"result":"success"}','commandName': 'detectObjectReply','commandType': 'haas.faas','argInt': 1}

detect: keyboard

识别结束




前往这里探索更多有趣案例

HaaS开发框架

https://haas.iot.aliyun.com/solution

————————————————

版权声明:本文为CSDN博主「HaaS技术社区」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/HaaSTech/article/details/124122190

相关文章
|
18天前
|
机器学习/深度学习 TensorFlow 算法框架/工具
PYTHON TENSORFLOW 2二维卷积神经网络CNN对图像物体识别混淆矩阵评估|数据分享
PYTHON TENSORFLOW 2二维卷积神经网络CNN对图像物体识别混淆矩阵评估|数据分享
|
3天前
|
机器学习/深度学习 人工智能 大数据
AI时代Python金融大数据分析实战:ChatGPT让金融大数据分析插上翅膀
AI时代Python金融大数据分析实战:ChatGPT让金融大数据分析插上翅膀
|
11天前
|
机器学习/深度学习 人工智能 算法
【Python 机器学习专栏】强化学习在游戏 AI 中的实践
【4月更文挑战第30天】强化学习在游戏AI中展现巨大潜力,通过与环境交互和奖励信号学习最优策略。适应性强,能自主探索,挖掘出惊人策略。应用包括策略、动作和竞速游戏,如AlphaGo。Python是实现强化学习的常用工具。尽管面临训练时间长和环境复杂性等挑战,但未来强化学习将与其他技术融合,推动游戏AI发展,创造更智能的游戏体验。
|
18天前
|
人工智能 Python
【AI大模型应用开发】【LangChain系列】实战案例1:用LangChain写Python代码并执行来生成答案
【AI大模型应用开发】【LangChain系列】实战案例1:用LangChain写Python代码并执行来生成答案
27 0
|
18天前
|
机器学习/深度学习 人工智能 算法
【AI大模型应用开发】【补充知识】文本向量化与向量相似度(含Python代码)
【AI大模型应用开发】【补充知识】文本向量化与向量相似度(含Python代码)
22 0
|
1月前
|
机器学习/深度学习 人工智能 算法
|
1月前
|
机器学习/深度学习 人工智能 安全
AI战略丨阿里云百炼再升级:模型、工具、AI能力,快速接入、应有尽有
阿里云百炼持续加码模型服务,基于丰富的底层计算能力与通义系列模型的最佳实践,构建训练评测、标注、部署全生命周期模型工具,帮助企业、开发者在云上一站式调用、优化大模型,成为大模型时代的商业化基础设施。
|
2月前
|
人工智能 自然语言处理 API
全球第一AI大模型易主,Claude 3超越GPT-4,它的推理能力有多强
全球第一AI大模型易主,Claude 3超越GPT-4,它的推理能力有多强
|
2月前
|
机器学习/深度学习 人工智能 算法
在Python中使用deepfakes实现AI换脸功能
在Python中使用deepfakes实现AI换脸功能
28 0
|
人工智能 数据库 数据安全/隐私保护
AI学习笔记——Python的几个练习题
上一篇文章中提到了学习编程练习的重要性,今天就通过几个练习题,来巩固一下Python中几个重要的技能。 将字典中大于2的值过滤掉。 #Filter out values of equal or greater than 2 #Note that for Python 2 you will have to use iteritems d = {"a": 1, "b": 2, "c": 3} 读取输入的一句话中的单词数。
1301 0