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

相关文章
|
27天前
|
存储 人工智能 开发工具
AI助理化繁为简,速取代码参数——使用python SDK 处理OSS存储的图片
只需要通过向AI助理提问的方式输入您的需求,即可瞬间获得核心流程代码及参数,缩短学习路径、提升开发效率。
1415 4
AI助理化繁为简,速取代码参数——使用python SDK 处理OSS存储的图片
|
21天前
|
人工智能 大数据
书海畅谈:云端读书会第1期,与你共同探索AI的无限可能
为帮助大家更好地学习和交流,特推出「书海畅谈|云端读书会第1期」。首期活动时间为2023年10月10日至10月30日,参与者可通过完成阅读任务赢取精美礼品。本次活动精选《10分钟打造专属AI助手》,无论您是技术小白还是行业专家,都能从中受益。点击链接参与活动,与志同道合的朋友一起探索新知,激发灵感,建立联系。欢迎加入钉群:71215028694,与更多小伙伴互动。
|
15天前
|
人工智能
云端问道12期-构建基于Elasticsearch的企业级AI搜索应用陪跑班获奖名单公布啦!
云端问道12期-构建基于Elasticsearch的企业级AI搜索应用陪跑班获奖名单公布啦!
162 2
|
14天前
|
人工智能 文字识别 Java
SpringCloud+Python 混合微服务,如何打造AI分布式业务应用的技术底层?
尼恩,一位拥有20年架构经验的老架构师,通过其深厚的架构功力,成功指导了一位9年经验的网易工程师转型为大模型架构师,薪资逆涨50%,年薪近80W。尼恩的指导不仅帮助这位工程师在一年内成为大模型架构师,还让他管理起了10人团队,产品成功应用于多家大中型企业。尼恩因此决定编写《LLM大模型学习圣经》系列,帮助更多人掌握大模型架构,实现职业跃迁。该系列包括《从0到1吃透Transformer技术底座》、《从0到1精通RAG架构》等,旨在系统化、体系化地讲解大模型技术,助力读者实现“offer直提”。此外,尼恩还分享了多个技术圣经,如《NIO圣经》、《Docker圣经》等,帮助读者深入理解核心技术。
SpringCloud+Python 混合微服务,如何打造AI分布式业务应用的技术底层?
|
21天前
|
数据采集 人工智能 自然语言处理
Python实时查询股票API的FinanceAgent框架构建股票(美股/A股/港股)AI Agent
金融领域Finance AI Agents方面的工作,发现很多行业需求和用户输入的 query都是和查询股价/行情/指数/财报汇总/金融理财建议相关。如果需要准确的 金融实时数据就不能只依赖LLM 来生成了。常规的方案包括 RAG (包括调用API )再把对应数据和prompt 一起拼接送给大模型来做文本生成。稳定的一些商业机构的金融数据API基本都是收费的,如果是以科研和demo性质有一些开放爬虫API可以使用。这里主要介绍一下 FinanceAgent,github地址 https://github.com/AI-Hub-Admin/FinanceAgent
|
21天前
|
人工智能 开发者 Python
python读取word文档 | AI应用开发
在RAG系统中,构建知识库时需读取多种外部文档,其中Word文档较为常见。本文介绍如何使用`python-docx`库读取Word文档(.docx格式)中的标题、段落、表格和图片等内容。首先通过`pip install python-docx`安装库,然后利用提供的接口提取所需信息。尽管该库功能强大,但在识别标题样式时需自定义逻辑,并且仅提供图片的URI而非直接加载。示例代码展示了读取文本、识别标题、读取表格及获取图片URI的方法。【10月更文挑战第2天】
35 2
|
23天前
|
机器学习/深度学习 人工智能 自然语言处理
python如何实现AI问答与举例
python如何实现AI问答与举例
33 0
|
2月前
|
机器学习/深度学习 人工智能 TensorFlow
神经网络深度剖析:Python带你潜入AI大脑,揭秘智能背后的秘密神经元
【9月更文挑战第12天】在当今科技飞速发展的时代,人工智能(AI)已深入我们的生活,从智能助手到自动驾驶,从医疗诊断到金融分析,其力量无处不在。这一切的核心是神经网络。本文将带领您搭乘Python的航船,深入AI的大脑,揭秘智能背后的秘密神经元。通过构建神经网络模型,我们可以模拟并学习复杂的数据模式。以下是一个使用Python和TensorFlow搭建的基本神经网络示例,用于解决简单的分类问题。
46 10
|
2月前
|
Unix Shell Linux
nohup python -u ai_miniprogram_main.py > ../iwork.out 2>&1 & 这句命令是做什么的?
nohup python -u ai_miniprogram_main.py > ../iwork.out 2>&1 & 这句命令是做什么的?
15 1
|
2月前
|
机器学习/深度学习 人工智能 TensorFlow
深入骨髓的解析:Python中神经网络如何学会‘思考’,解锁AI新纪元
【9月更文挑战第11天】随着科技的发展,人工智能(AI)成为推动社会进步的关键力量,而神经网络作为AI的核心,正以其强大的学习和模式识别能力开启AI新纪元。本文将探讨Python中神经网络的工作原理,并通过示例代码展示其“思考”过程。神经网络模仿生物神经系统,通过加权连接传递信息并优化输出。Python凭借其丰富的科学计算库如TensorFlow和PyTorch,成为神经网络研究的首选语言。
45 1