HaaS Python 云端一体AI 车型识别功能
Posted HaaS技术社区
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HaaS Python 云端一体AI 车型识别功能相关的知识,希望对你有一定的参考价值。
来这里发现更多有趣案例
HaaS开发框架HaaS积木方案,赋能生态开发者,让您快速找到自己需要的解决方案,硬件主板与外设,以及各种应用组件。https://haas.iot.aliyun.com/solution
车型识别系统
车型识别是识别汽车图片(完整或部件图片)的类型,目前有小轿车、多用途汽车、SUV等类别。
本案例导学步骤如下图所示。
背景知识
根据拍摄照片,快速识别图片中车辆的品牌型号,提供针对性的信息和服务,可用于相册管理、图片分类打标签、电子汽车说明书、一键拍照租车等场景。以及在监控高速路闸口、停车场出入口的进出车辆,识别详细车型信息,结合车牌、车辆属性对车辆身份进行校验,形成车辆画像。本案例采用M5Stack Core2开发板,结合摄像头实时拍照,将图片发送到HaaS云端进行识别,并返回识别的车型。
场景功能拆解
实验整体步骤如下:
- 连接硬件
- 开通HaaS增值服务
- 设备端开发
- 设备运行
准备
- M5Stack Core2开发板 一套
- M5Stack Unit CAM摄像头 一个
- 连接线 若干
涉及到的硬件购买链接如下,仅供参考,不负责商家发货的品质保障等问题!
名称 | 数量 | 参考链接 |
M5Stack Core2开发版 | 1 | M5Stack Core2 |
microUSB数据线 | 1 | M5Stack Core2开发套件自带 |
摄像头 | 1 | M5Stack Unit CAM摄像头 |
连接线 | 1条 | M5Stack GROVE连接线 请选用10cm长即可 |
硬件连线图如下图所示:
云端平台功能开通
在本案例中涉及到云端平台功能都聚合在HaaS云端积木中,所以无需单独使用 对象存储OSS 和 视觉智能开发平台。案例整个步骤分为:
- 注册阿里云账号并登录阿里云账号;
- 在HaaS官网中的云端积木控制台创建设备;
- 推送脚本到M5Stack Core2并运行车型识别;
注册阿里云账号
进入阿里云官网,注册阿里云账号 。如果您已经有阿里云账号,请忽略该步骤,直接进入下一步。
开通HaaS增值服务
- 登录HaaS官网
进入HaaS官网 。
- 进入HaaS云端积木控制台
如上图所示,点击右上角的“控制台”,进入HaaS云端积木的控制台页面。
- 创建设备
在左侧导航栏设备管理中,可以看到产品和设备选项,点击“产品”,可以看到平台默认创建了“haas_正式游客产品”这个产品; 所以开发者只需要创建设备即可。点击“批量添加”, 添加方式为“自动生成”, 申请数量可填为“1”个,即可完成新设备的创建。
- 获取设备的三元组
在设备的列表中,新创建的设备上点击“查看”,就可以获得设备的三元组信息,之后这个三元组信息会在设备端代码中使用到。
完成以上步骤表示开通了HaaS增值服务,您可以拿到生成的三元组进行设备端开发,连接云端进行识别。
设备端开发
开发环境
在进行下一步之前请确保M5StackCore2开发环境已经搭建完毕。详情请参考M5StackCore2快速开始的说明。
创建解决方案
如下图所示,打开VS Code之后在新建一个基于helloworld的python工程,设定工程名称(“vehicle_type_recognization”)及工作区路径之后,硬件类型选择M5Stack Core2,点击立即创建,创建一个Python轻应用的解决方案。
下载设备端代码并解压,将解压后的所有脚本复制替换“vehicle_type_recognization”工程根目录下的所有文件,然后进行如下设定完成设备端代码的开发。具体目录和要修改的参数设置如下图:
Python脚本的详细说明请参考脚本内嵌的文字注释
- 修改路由器名称及密码
修改vehicle_type_recognization工程里main.py中SSID和PWD的值为读者实际要连接的路由器的名称及密码(请注意名称和密码都需要放在''符号中间)。
# Wi-Fi SSID和Password设置
SSID='Your-AP-SSID'
PWD='Your-AP-Password'
修改完成之后connect_wifi函数就会连接读者自己设定的路由器。
- 修改设备的三元组信息
将上面步骤获取的三元组信息,填入main.py中:
# HaaS设备三元组
productKey = "Your-ProductKey"
deviceName = "Your-devicename"
deviceSecret = "Your-deviceSecret"
运行
烧录代码
烧录代码到设备上之后,在网络连接成功时,屏幕上将打印出IP地址和"NTP Done",如果迟迟不能显示“NTP Done”,请长按电源键关机同时拔掉USB线重新上电运行。之后串口会周期性的打印如下日志,并且识别到车型后在屏幕上显示红色XXXX Detected的字样。具体log如下:
Wi-Fi is connecting...
Wi-Fi is connecting...
Wi-Fi is connecting...
Wi-Fi is connecting...
Wi-Fi is connecting...
Wi-Fi is connecting...
Wi-Fi is connecting...
Wi-Fi is connected
IP: xxx.xxx.xxx.xxx
NTP start
NTP done
establish tcp connection with server(host='a1mdXrPhrZM.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
'ext': '"items":["name":"car","score":0.0339,"name":"MPV_mian","score":0.0152,"name":"others","score":0.0209,"name":"SUV","score":0.93],"result":"success"', 'commandName': 'recognizeVehicleReply', 'commandType': 'haas.faas', 'argInt': 1
detect: SUV
get response time : 2157
Vehicle Detected!!!
Vehicle Detected!!!
Vehicle Detected!!!
get response time : 383
Vehicle Detected!!!
'ext': '"items":["name":"car","score":0.0199,"name":"MPV_mian","score":0.0153,"name":"others","score":0.0255,"name":"SUV","score":0.9393],"result":"success"', 'commandName': 'recognizeVehicleReply', 'commandType': 'haas.faas', 'argInt': 1
detect: SUV
Vehicle Detected!!!
Vehicle Detected!!!
get response time : 367
设备显示识别中...
识别成功
目前代码中设置的识别可信度超过85%认为识别成功,可以自行修改代码中的可信度参数,具体修改如下:
def cb_lk_service(data):
global g_lk_service, g_score, detected, name
# dev.publish(compare_reply)
# print(data)
#resp = json.loads(data)
if data != None:
params = data['params']
params_dict = json.loads(params)
print(params_dict)
ext = params_dict['ext']
ext_dict = json.loads(ext)
result = ext_dict['result']
if result == 'success':
i = 0
item_list = ext_dict['items']
detected = False
while (i < len(item_list)) :
g_score = item_list[i]['score']
name = item_list[i]['name']
# 这里可以修改识别的可信度,目前设置返回可信度大于85%才认为识别正确
if g_score > 0.85 and name != 'others':
print('detect: ' + name)
detected = True
break
i += 1
if detected == False:
print('do not detect!')
else:
print('do not detect!')
detected = False
g_lk_service = True
2022深度学习开发者峰会
5月20日13:00让我们相聚云端,共襄盛会!
以上是关于HaaS Python 云端一体AI 车型识别功能的主要内容,如果未能解决你的问题,请参考以下文章
毕设参考HaaS Python 云端一体AI手势识别窝在家里看电视不想动?想换台懒得找遥控器?试试解锁智能设备新玩法
使用 ESP32 + HaaS Python 打造云端一体车牌识别系统
HaaS Python + AI 隆重登场 使用 ESP32 + 摄像头 机器视觉实现水果识别