水果识别系统

   现在很多农场里边使用摘采机器人识别水果进行水果摘采,盒马超市也使用自动识别称来识别水果种类自动计费。本案例则是使用HaaS Python对摄像头图像进行采集,并调用HaaS云端积木能力对水果进行识别。

1、背景知识

   水果的种类繁多,识别种类越多,需要越多的水果图片数据进行模型训练。本章通过使用串口摄像头采集水果照片上传至云端进行识别。目前HaaS云端积木的水果检测识别功能可以检测图像中的所有水果,并返回水果的名称和置信度。水果识别可以识别60种常见的水果和16种坚果。比如:八月瓜、百香果、菠萝、菠萝蜜、草莓、橙子、脆瓜、甘蔗、桂圆、哈蜜瓜、海底椰、海红果、红毛丹、火龙果、桔子、蓝莓、梨、荔枝、李子、榴莲、蔓越莓、芒果、梅子、猕猴桃、木瓜、柠檬、牛油果、欧李、枇杷、苹果、葡萄、茄瓜、桑葚、沙果、沙棘果、山楂、山竹、蛇皮果、石榴、柿子、树莓、桃、桃胶、西瓜、西梅、仙人掌果、香瓜、香蕉、橡子、小番茄、杏子、雪莲果、杨梅、洋蒲桃、杨桃、椰子、银杏果、樱桃、柚子、枣、南瓜子、夏威夷果、巴旦木、开心果、杏仁、松子、板栗、核桃、榛子、白果、碧根果、腰果、花生、葡萄干、葵花子、西瓜子等。

1.1、场景功能拆解

   实验整体步骤如下:

  1. 连接硬件
  2. HaaS云端积木平台创建设备
  3. 设备端开发
  4. 运行结果

1.2、准备

  1. M5Stack Core2开发板 一套
  2. M5Stack Unit CAM摄像头 一个
  3. 连接线 一条

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

名称 数量 参考链接
M5Stack Core2开发版 1 M5Stack Core2
microUSB数据线 1 M5Stack Core2开发套件自带
摄像头 1 M5Stack Unit CAM摄像头
连接线 1 M5Stack GROVE连接线 请选用10cm长即可

   硬件连线图如下图所示:

2、云端设备创建

2.1、注册阿里云账号

   进入阿里云账号注册页面 进行阿里云账号注册,注册完成后登录官网。如果您已经有阿里云账号,直接登录即可。

2.2、HaaS云端积木平台

   进入阿里云HaaS官网 。

   如上图所示,点击右上角的“控制台”,进入HaaS云端积木的控制台页面。

  1. 创建设备

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

  1. 获取设备的三元组

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

3、设备端开发

3.1、开发环境准备

   在进行下一步之前请确保M5StackCore2中已经烧录了HaaS Python固件并且其开发环境已经搭建完毕。详情请参考M5StackCore2快速开始中的说明。

3.2、创建解决方案

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

   将HaaS Pyhton水果识别代码文件下的所有脚本进行复制到“fruits_recognization”工程根目录中覆盖原本的脚本,然后进行如下设定完成设备端代码的开发。

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

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

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

# Wi-Fi SSID和Password设置
SSID='Your-AP-SSID'
PWD='Your-AP-Password'

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

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

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

# HaaS设备三元组
productKey = "Your-ProductKey"
deviceName  = "Your-devicename"
deviceSecret  = "Your-deviceSecret"

4、运行结果

   推送fruits_recognization工程到M5StackCore2开发板之后,脚本在网络连接成功后,会将IP地址信息打印在屏幕上。

   屏幕上提示”NTP done“代表NTP时间同步成功。NTP时间同步成功之后,脚本会自动从摄像头采集图像信息并调用HaaS云端积木能力进行水果识别,在检测到水果后会在屏幕上显示红色”XXXX Detected“字样。

   如下是整个过程中串口的日志打印,其中:

  • Wi-Fi is connecting:代表正在连接路由器
  • IP: 192.168.0.158:打印获取到的IP地址信息
  • NTP start:表示开始进行NTP对时
  • NTP done: 表示NTP对时结束
  • link platform connected:表示成功连接到阿里云平台服务
  • {'ext': '{"fruitList"...:打印云端对图片进行水果检测后返回的检测结果
  • Fruits Detected:表示检测到水果
I (71364) phy: phy_version: 4500, 0cd6843, Sep 17 2020, 15:37:07, 0, 0
Wi-Fi is connecting...
Wi-Fi is connecting...
Wi-Fi is connected
IP: 192.168.3.26
NTP start
NTP done
establish tcp connection with server(host='a1kJJvGN9ko.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
capture time : 214
image time : 151
{'ext': '{"fruitList":[{"box":[117.39963,37.268333,267.16675,202.39557],"name":"\u82f9\u679c","score":0.78409535}],"result":"success"}', 'commandName': 'detectFruitsReply', 'commandType': 'haas.faas', 'argInt': 1}
detect: Apple
get response time : 413
Fruits Detected!!!

更多有趣案例请见

HaaS开发框架https://haas.iot.aliyun.com/solution

HaaS Python + AI 隆重登场 使用 ESP32 + 摄像头 机器视觉实现水果识别相关推荐

  1. Python OpenCV高速公路道路汽车车辆摄像头视频侦测检测识别统计数量

    Python OpenCV高速公路道路汽车车辆侦测检测识别统计数量 如需安装运行环境或远程调试,可加QQ905733049由专业技术人员远程协助! 运行结果如下: 运行主要代码如下: import c ...

  2. 【毕设参考】ESP32 + HaaS Python打造可以统计流量的自动感应门系统

       下图是本案例的四步导学. 简介    目前很多写字楼.酒店等入口都采用自动感应的方式开门.关门,当有人靠近时,门就会自动打开,远离时会自动关门:有时候也需要将自动门设置常开状态,比如需要多次进出 ...

  3. 绿色节能,怎么用ESP32 + HaaS Python怎么做一个起夜小灯?接上个“智慧路灯”案例中的留下的地下室人体感应亮灭灯

    自上个案例 "用ESP32 + HaaS Python做一个 智慧路灯 系统,稍加改造也能用在地下室哦"发布以来,数度冲上CSDN 领域热度排行榜 与 全站热度排行榜,也有朋友与我 ...

  4. HaaS Python轻应用学习笔记 : 什么是Python轻应用

    1.什么是HaaS Python轻应用 2020年阿里云智能IoT团队发布的HaaS100开发板,随着"轻应用"的发布,迅速在开发者中掀起学习热潮. "轻应用" ...

  5. HaaS学习笔记 | 基于HaaS Python轻应用的LED跑马灯明细教程

    [1]题目要求     [案例]:在HaaS框架下实现LED跑马灯.       蓝蜻蜓ESP32开发板的LED灯电路连接如下:       D3灯----GPIO14,高电平点亮,低电平熄灭.   ...

  6. HaaS学习笔记 | 最详细的HaaS Python轻应用开发快速入门教程

    [1]摘要  本教程主要讲述HaaS框架开发环境的搭建以及在ESP32开发板上进行HaaS Python轻应用开发的基本流程,结合小蜜蜂老师研制的蓝蜻蜓ESP32开发套件,通过"Hello ...

  7. python+opencv用电脑调用手机摄像头或其他网路摄像头

    python+opencv用电脑调用手机摄像头或其他网路摄像头 文章目录: 1 获取手机摄像头或网络摄像头的ip 1.1 获取手机摄像头的ip 1.2 获取网络摄像头的IP 1.3 关于RTSP协议 ...

  8. 四天人工智能 python入门体验课_百度深度学习7天打卡营,用Python+AI识别“青你2”小姐姐的高颜值...

    原标题:百度深度学习7天打卡营,用Python+AI识别"青你2"小姐姐的高颜值 "淡黄的长裙,蓬松的头发",一夜之间洗脑全网,小姐姐们实在太让人上头了! 导师 ...

  9. Python+OpenCV教程3:打开摄像头

    Python+OpenCV教程3:打开摄像头 学习打开摄像头捕获照片.播放本地视频.录制视频等. 目标: 打开摄像头并捕获照片 播放本地视频,录制视频 OpenCV函数:cv2.VideoCaptur ...

最新文章

  1. x86汇编语言从实模式百度云_Intel x86 CPU 32位保护模式杂谈之任务切换 上
  2. windows下将iso文件挂载到文件夹
  3. 解决通过vue-router打开tab页,下次进入还是上次history缓存的界面状态的问题
  4. 【多线程高并发】深入浅出volatile关键字
  5. UVA - 11806 Cheerleaders(组合数学+容斥原理)
  6. Spring Boot 2.X系列教程:七天从无到有掌握Spring Boot-持续更新
  7. fedora virtualbox 挂载USB设备
  8. 利用 Python 进行数据分析(Python 数据分析)· 第 2 版
  9. [RK3399][Android7.1] 如何将PWM背光线性处理
  10. linux查看外网IP
  11. python新版个人所得税代码_个人所得税计算代码
  12. QQ正式推出“超级QQ秀”布局元宇宙
  13. 修一座安全的广厦,庇护赛博世界的流浪者
  14. 【书影观后感 三】1587—雪后的大明
  15. 小甲鱼python 第003讲:小插曲之变量和字符串
  16. 【FFMPEG】vs2019调用FFmpeg动态库教程
  17. 猝死前最后4分钟,他本还有一次机会活..
  18. 锐龙r5-4600u性能怎么样
  19. 删除修改页面简单设计
  20. 【技术应用】java通过url爬虫获取公众号文章内容

热门文章

  1. 计算机影响我们生活的调查报告,《计算机对大学生日常生活的带来影响》调查报告word模板.doc...
  2. 高云FPGA系列教程(5):ARM点灯工程设计
  3. 基于jeesite+android开发 电子商务系统免费教程
  4. 心理学在生活中的表现和应用_生活中的心理学现象与应用
  5. 如何加载交易策略EA到MT4/MT5
  6. oracle mrp进程起不来,Run MRP不成功--急处理
  7. android词典论文,基于Android的电子词典软件的设计与实现毕业论文doc.doc
  8. 亚马逊如何更改预设手机号和邮箱等信息
  9. medoo php,pdo-Medoo - 高效的轻量级PHP数据库框架, 提高开发效率!
  10. Android 蓝牙开发底层的几种协议介绍