HaaS Python 云端一体AI 车型识别功能

简介: HaaS Python 云端一体AI 车型识别功能

车型识别系统

  车型识别是识别汽车图片(完整或部件图片)的类型,目前有小轿车、多用途汽车、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



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

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

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

相关文章
|
7天前
|
人工智能 监控 安全
云端问道18期实践教学-AI 浪潮下的数据安全管理实践
本文主要介绍AI浪潮下的数据安全管理实践,主要分为背景介绍、Access Point、Bucket三个部分
41 16
|
6天前
|
安全 前端开发 数据库
Python 语言结合 Flask 框架来实现一个基础的代购商品管理、用户下单等功能的简易系统
这是一个使用 Python 和 Flask 框架实现的简易代购系统示例,涵盖商品管理、用户注册登录、订单创建及查看等功能。通过 SQLAlchemy 进行数据库操作,支持添加商品、展示详情、库存管理等。用户可注册登录并下单,系统会检查库存并记录订单。此代码仅为参考,实际应用需进一步完善,如增强安全性、集成支付接口、优化界面等。
|
1月前
|
开发框架 数据建模 中间件
Python中的装饰器:简化代码,增强功能
在Python的世界里,装饰器是那些静悄悄的幕后英雄。它们不张扬,却能默默地为函数或类增添强大的功能。本文将带你了解装饰器的魅力所在,从基础概念到实际应用,我们一步步揭开装饰器的神秘面纱。准备好了吗?让我们开始这段简洁而富有启发性的旅程吧!
38 6
|
2月前
|
IDE 数据挖掘 开发工具
Python作为一种广受欢迎的高级编程语言,以其简洁的语法和强大的功能吸引了众多初学者和专业开发者
Python作为一种广受欢迎的高级编程语言,以其简洁的语法和强大的功能吸引了众多初学者和专业开发者
41 7
|
7天前
|
人工智能 弹性计算 自然语言处理
云端问道 6 期实践教学-创意加速器:AI 绘画创作
本文介绍了在阿里云平台上一键部署Demo应用的步骤。部署完成后,通过公网地址体验Demo应用,包括文本生成图像等功能。
26 10
|
2天前
|
人工智能 前端开发 算法
科技云报到:从大模型到云端,“AI+云计算”还能讲出什么新故事
科技云报到:从大模型到云端,“AI+云计算”还能讲出什么新故事
|
7天前
|
人工智能 自然语言处理 算法
云端问道11期实践教学-创建专属AI助手
本次分享意在帮助用户更加全面、深入地了解百炼的核心产品能力,并通过实际操作学会如何快速将大模型与自己的系统及应用相结合。主要包括以下三个方面: 1. 阿里云百炼产品定位和能力简介 2. 知识检索 RAG 智能体应用能力和优势 3. 最佳落地案例实践分享
|
1月前
|
测试技术 Python
探索Python中的装饰器:简化代码,增强功能
在Python的世界中,装饰器是那些能够为我们的代码增添魔力的小精灵。它们不仅让代码看起来更加优雅,还能在不改变原有函数定义的情况下,增加额外的功能。本文将通过生动的例子和易于理解的语言,带你领略装饰器的奥秘,从基础概念到实际应用,一起开启Python装饰器的奇妙旅程。
42 11
|
1月前
|
Python
探索Python中的装饰器:简化代码,增强功能
在Python的世界里,装饰器就像是给函数穿上了一件神奇的外套,让它们拥有了超能力。本文将通过浅显易懂的语言和生动的比喻,带你了解装饰器的基本概念、使用方法以及它们如何让你的代码变得更加简洁高效。让我们一起揭开装饰器的神秘面纱,看看它是如何在不改变函数核心逻辑的情况下,为函数增添新功能的吧!
|
2月前
|
设计模式 监控 程序员
Python中的装饰器:功能增强与代码复用的利器####
本文深入探讨了Python中装饰器的工作原理、应用场景及其在提升代码可读性、减少重复劳动方面的优势。不同于传统方法的冗长和复杂,装饰器提供了一种优雅且高效的方式来增强函数或方法的功能。通过具体实例,我们将揭示装饰器如何简化错误处理、日志记录及性能监控等常见任务,使开发者能够专注于核心业务逻辑的实现。 ####
下一篇
开通oss服务