车型识别的探索和实践

本文涉及的产品
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介: 目标检测是计算机视觉和数字图像处理的一个热门方向,广泛应用于机器人导航、智能视频监控、工业检测、视频结构化等领域等诸多领域,通过计算机视觉减少对人力资本的消耗,具有重要的现实意义。例如在监控安防领域,我们可以通过对行人和车辆进行目标检测、识别,对目标结构化,再将结构化后的语义存储起来,实现文字和视频的映射,能够在警察办案时提供快速查询视频的能力。而在工业场景下,目标检测可以对产品进行缺陷检测,在自动化流水线上设置高清摄像头,对工业产品的缺陷特征建模后,摄像头采集产品的图片,目标检测模型就能定位产品上的缺陷,从而提高产品质检的效率,提高收益。由于深度学习的广泛运用,目标检测算法得到了较为快速的发

2.1 研究意义
(1)解决视频资源无法产生价值、浪费存储资源的问题
在园区安防、仓储监管、智慧交通领域,有大量的摄像头对某一场景进行监控,并将获得的视频存储到本地服务器,占用大量的存储资源,存储一定周期后便进行删除。所获得视频资源除了备份之外,并未发挥更多的价值。而通过视频结构化分析,一方面可以通过提取关键帧、关键元素来减少视频存储的资源消耗,另一方面,便于检索,在需要时可以更快速地找到目标。
(2)解决无法融入大数据体系的问题
监控录像作为非结构化数据,它不能直接被计算机读取和识别,因此一直无法较好地与大数据体系进行兼容,无法利用计算机来进行视频数据的分析和挖掘。而视频图像能否通过智能分析技术经济而又高效地进行结构化处理,是视频大数据在智慧城市、数字社区领域落地的关键。
(3)沉淀产品 —— 视频结构化分析
视频结构化不仅仅可以服务于雷数大数据平台,也可以作为单独的产品提供给客户,结合人体行为识别,可以针对用户的某一特定场景产生价值,如工人进入工地是否带安全帽、作业行为是否符合规范等。
(4)技术积累 —— 计算机视觉
当前人工智能在工业场景的应用中,计算机视觉技术的需求场景占据较多比例,同时在工业、物流业、智慧城市行业的项目中有多种应用,但公司目前在该领域的技术积累仍然较少,因此实践和积累相关的计算机视觉技术经验对于公司未来发展具有重要意义。
2.2 公开数据集
MIO-TCD数据集是由在一天中的不同时间和一年中不同时段获得的137,743个图像组成,这些图像来自在加拿大和美国各地部署的数千个交通摄像机。选择这些图像是为了应对广泛的目标识别挑战,并且代表了当今城市交通情景中捕获的典型视觉数据。每个移动物体已被近200人仔细识别,以便于实现各种算法的定量比较和排序。该数据集旨在提供严格的基准测试,用于训练和测试现有的或新的算法,对交通场景中移动车辆进行分类和定位。
包含的数据标签有11类:
o Articulated truck(铰链式挂车)
o Bicycle(自行车)
o Bus(公交车)
o Car(轿车)
o Motorcycle(摩托车)
o Motorized vehicle (i.e. Vehicles that are too small to be labeled into a specific category)(因目标对象在图像中太小而无法标定为特定类别的车辆)
o Non-motorized vehicle(非机动车)
o Pedestrian(行人)
o Pickup truck(皮卡车)
o Single unit truck(单箱载重汽车)
o Work van(7座的商务车或面包车)
类别样例如下:

Articulated truck Bicycle Bus Car

Motorcycle Non-motorized vehicle Pedestrian Pickup truck

Single unit truck Work van
然后我们开始对车型图片进行标注,标注的软件我们使用的是开源的LabelImg,下载地址:https://github.com/tzutalin/labelImg。点击“Open Dir”、“Change Save Dir”选择刚刚建立的images以及labels文件夹,接下来就可以使用按钮选择需要label的图片,点击“Create RectBox”激活窗口绘图工具,开始标注,如图5.2所示。

模型训练完成,如图所示,能识别出car、work_van、single_unit_truck、pedestrian这些细分特征。mAP=0.70.

2.3 结果评价
YoloV3在其官网的介绍中写道,其在COCO数据集中能达到60.6%的map,而本文使用的MIO-TCD数据集在2017年的CVPR MIO-TCD挑战赛的结果中,最高达到了77%的平均精度,因此,本文测试的YoloV3模型的mAP为70%属于正常范围。YoloV3在55个epoch的训练后期有点过拟合了,所以,模型继续训练的意义不大,只能更改YoloV3模型,提高其性能。
YOLOv3参数表如表5.2所示,方便以后再遇到类似目标检测任务时速查。
表5.2 YOLOv3训练参数
参数类型 参数值
batch_size 8
image_size 416
cfg.filters num(yolo层个数)*(classes+5)
epoch 52
mAP 0.7

相关实践学习
基于Hologres轻松玩转一站式实时仓库
本场景介绍如何利用阿里云MaxCompute、实时计算Flink和交互式分析服务Hologres开发离线、实时数据融合分析的数据大屏应用。
基于MaxCompute的热门话题分析
Apsara Clouder大数据专项技能认证配套课程:基于MaxCompute的热门话题分析
目录
相关文章
|
存储 JavaScript 前端开发
架构-单一代码库-monorepo-pnpm-workspace:基本使用
架构-单一代码库-monorepo-pnpm-workspace:基本使用
887 0
|
6月前
|
网络协议 开发者 Python
Socket如何实现客户端和服务器间的通信
通过上述示例,展示了如何使用Python的Socket模块实现基本的客户端和服务器间的通信。Socket提供了一种简单且强大的方式来建立和管理网络连接,适用于各种网络编程应用。理解和掌握Socket编程,可以帮助开发者构建高效、稳定的网络应用程序。
264 10
|
8月前
|
数据采集 数据挖掘 数据处理
Pandas数据应用:金融数据分析
本文介绍如何使用Pandas进行金融数据分析,涵盖数据导入、清洗、转换等基础操作。通过处理缺失值、重复值及数据类型不匹配等问题,结合时间序列分析和大规模数据处理技巧,帮助读者掌握常见问题的解决方案。案例分析展示了计算每日收益率并绘制图表的具体步骤。
193 14
|
8月前
|
监控 Cloud Native 安全
基于 API 网关践行 API First 开发实践
API First 开发模式的核心在于:以 API 为先,将其视为“头等公民”,在构建应用、服务及集成之前,应优先定义并设计 API 及其配套。API First 作为一种相对较新的开发模式,它已逐渐流行并获得业内的广泛认可。
395 154
|
11月前
|
并行计算 Python
Python错误笔记(一):CUDA initialization: CUDA unknown error - this may be due to an incorrectly set up env
这篇文章讨论了CUDA初始化时出现的未知错误及其解决方案,包括重启系统和安装nvidia-modprobe。
1424 0
|
机器学习/深度学习 自然语言处理 数据挖掘
使用Python和大模型进行数据分析和文本生成
Python语言以其简洁和强大的特性,成为了数据科学、机器学习和人工智能开发的首选语言之一。随着大模型(Large Language Models, LLMs)如GPT-4的崛起,我们能够利用这些模型实现诸多复杂任务,从文本生成到智能对话、数据分析等等。在这篇文章中,我将介绍如何用Python连接和使用大模型,并通过示例展示如何在实际项目中应用这些技术。
|
关系型数据库 MySQL Linux
mysql数据库安装教程(超级超级详细)
mysql数据库安装教程(超级超级详细)
|
缓存 Ubuntu Python
Squid中正向代理的配置与使用
Squid中正向代理的配置与使用
1345 4
|
JavaScript 前端开发 API
vue 报错【解决方案】/sockjs-node/info?t=
vue 报错【解决方案】/sockjs-node/info?t=
1602 0
|
机器学习/深度学习 自动驾驶 数据可视化
【细粒度】由CUB_200_2011数据集展开讲解细粒度分类任务
【细粒度】由CUB_200_2011数据集展开讲解细粒度分类任务
1000 0
【细粒度】由CUB_200_2011数据集展开讲解细粒度分类任务