序言

不知道大家是否还记得前几年网上流传着一个视频非常的火爆(如下),网友称之为“中国天网”,在它的面前,行人的特征直接暴露无遗,当时看到觉得非常的吃惊,惊讶于当前的监控技术达到了如此高的技术,正也应了那句非常经典的话:天网恢恢,疏而不漏。无奈当时只是学生身份,看完后只剩下震撼;而如今从事深度学习算法工作后,再回头看,发现原来这个是用的神经网络去实现的,实现起来也不是那么难嘛。既然不难,那有时间自己整一个?整!!说干就干。

一、模型设计

在开始之前,要具体分析我们的需求,首先看上面那张图,简单的思考一下,你能想到应用了哪些技术嘛?如果看过我之前的车辆属性识别的文章,一眼就能看出实现的关键技术:

  • 目标检测;
  • 多属性识别。

在这两个技术的基础之上又能够细分为:

  1. 行人、车辆的目标检测;
  2. 行人的属性识别;
  3. 车辆的属性识别;

那好,把过程梳理一下,首先使用目标检测算法,将视频中的行人、车辆检测出来,得到人和车在视频中具体的坐标位置后将其裁剪,分别送入车辆属性识别、行人属性识别的网络中,经过推理后得到人、车的多种属性,然后将得到的信息在原视频中展示。是不是非常的esaily呢?那么接下来将逐一实现每个模块。

二、技术实现

2.1 目标检测

首先是最简单的目标检测模块,用于检测行人和车辆,目标检测算法相信大家都比较熟悉了,我这里直接选用了yolov5目标检测算法,并且开源的coco数据集上训练的权重是可以直接使用的,不需要我们单独去训练行人和车辆检测的模型,只需要在检测时,将其他类别注释掉,只保留人和车的类别即可。

在coco 80类中,人的类别为person,车的类别有car、 bus、 truck、bicycle,所以我们只需要管这五类的目标即可,其他的类别检测到了可以将其注释掉不予理会。

当然也可以用其他的检测算法,只要时实性能够满足即可,那么在这一步需要做的是,使用yolov5将行人、车辆检测并按照坐标将其裁剪出来,得到如下形式的图片,用于后面的属性识别:
—————

2.2 车辆属性识别

就如同前一篇车辆属性识别文章讲的,原理这里就不再重复了,直接看上一篇文章即可,但是因为我的权重是白嫖人家仓库的权重,没有自己去训练,所以只能使用resnet50去推理,相对来说,模型是大了一些,不过万幸速度还是挺快的,可能有同学会问:为什么自己不训练一个精度、速度更好的模型?问题的关键在于…没数据啊,上哪去找这么多标注好的车辆数据!!跑模型是不可能跑的,这辈子都不可能跑,只能靠白嫖人家的权重才能维持得了科研的样子。

光说没用,先来看下这步的效果图:

可以看到其实精度还是有优化空间的,当然如果你有数据的话。不过没关系,毕竟我们只是简单实现一下整个过程,不投入商用,精度看得过去就行了。

2.3 行人属性识别

其实行人属性识别和车辆属性识别原理差不多,同样是多标签分类,只不过在这里行人的属性标签要多一些,网上有相关的数据集:Market-1501以及DukeMTMC-reID,这两个数据集是可以用于训练的。这里呢又让我找到了一个可以白嫖的行人属性识别的仓库Person-Attribute-Recognition-MarketDuke,hub中提供了相关的训练代码以及基于上面两个数据集训练好的模型权重,很幸运,又可以直接拿来用,舒服:

如果你要重新训练的话,按照教程训练即可,我这里训练了发现效果和作者给出的差不多,所以还是直接用好了,需要说明的是hub中的精度倒是很容易复现,只需要按照流程跑即可,但是因为数据集的原因,如果你仔细观察这两个数据集里的数据的话,行人基本上都是基于夏天短袖的照片,并且也基本上都是成年人,如果用于实际环境中的话精度是远远不够的,如果你想去优化精度的话就需要自己去采集收集相关的数据,并且标注,这个工作量是巨大的,不是真正的项目的话,建议不要去折腾,我们跑个demo版本的就可以了。

我重新封装了代码,默认输出的是英文,在解码部分的时候我换成了中文,并且只选择了其中五个属性作为最终视频上的展出,好了现在找张图片来测试一下:

至于代码下载下来后如何封装成的接口,供检测模型调用,就自己去实现了,因为这两个属性识别仓库的权重都是基于resnet50的,所以在一般的平台上速度可能达不到实时(我在3070上勉强达到实时),如果想优化建议上轻量型的网络训练,并且在网络输出后的解码部分需要自己花点功夫研究一下,代码没整理,就不开源了,后续看有时间再说吧,思路已经讲的很明确,感兴趣的话自己去实现吧。你只需要做的是把这三个仓库的推理部分代码整理串联起来运行,并且根据你想要的效果将其可视化出来即可。

四、最终效果

最后还是要看下效果,不然你们说我吹牛皮。虽然精度稍微差了一点,但是效果相比于前面说的那段网上视频,是不是完全一致?超赞有木有?有内味了没?

智慧城市交通系列之行人、车辆属性识别方案设计相关推荐

  1. 智慧城市交通系列之车辆逆行(四)

    序言 接上一篇的是实现,车辆属性识别. 一.车辆逆行 在上一篇车辆属性识别中,提到了给定车辆三种标签属性,分别是:车辆类型.颜色和朝向,上一篇中只用到了前两种,在本篇中使用了第三种属性,用于车辆逆行检 ...

  2. 行人属性数据集pa100k_基于InceptionV3的多数据集联合训练的行人外观属性识别方法与流程...

    本发明涉及模式识别技术.智能监控技术等领域,具体的说,是基于Inception V3的多数据集联合训练的行人外观属性识别方法. 背景技术: 近年来,视频监控系统已经被广泛应用于安防领域.安防人员通过合 ...

  3. 基于mmcls的车辆属性识别

    一.概述 本研究主要针对车辆属性识别课题.研究能够识别车辆多种外观属性的智能算法,这些属性包含颜色. 类型.副驾驶是否有人.是否系安全带.遮阳板是否放下.车辆朝向.是否有车顶架等. 二.研究过程 2. ...

  4. 百度AI攻略:车辆属性识别

    1.功能描述: 检测图像中的各类车辆,并针对小汽车识别11种外观属性,包括:是否有车窗雨眉.是否有车顶架.副驾驶是否有人等,可用于交通安防场景的特定车辆检测追踪. 2.平台接入 车辆属性识别接入网址: ...

  5. 智慧城市交通系列之车流量检测(一)

    序言 车流量在目前的交通系统中应该是非常普遍的,可以用于统计某条干道的车辆经过总数,与人流检测实现原理几乎是一样的,都是基于目标检测和跟踪进行,本例的实现是基于yolov5+deepsort,使用yo ...

  6. PP-Vehicle车辆属性的识别服务

    PP-Vehicle车辆属性的识别服务 一.功能说明 实现web服务,在页面上导入图片,输出车位置.颜色和车型 绘制在图片上,并显示 支持API接口 当前提供的预训练模型支持识别10种车辆颜色及9种车 ...

  7. NVIDIA专家实战演示,教你快速搭建基于Python的车辆信息识别系统

    主讲人 | 何琨 英伟达 量子位编辑 | 公众号 QbitAI 随着智慧城市.自动驾驶的快速落地,车辆的检测和识别应用场景非常广泛,如车牌识别.车流统计.车辆属性识别等. 近日,在英伟达x量子位发起的 ...

  8. CV公开课报名 | 快速搭建基于Python的车辆信息识别系统

    位来 发自 凹非寺 量子位 编辑 | 公众号 QbitAI 时下,智慧城市和自动驾驶快速发展,车辆的检测和识别应用场景非常广泛,如车牌识别.车流统计.车辆属性识别等. 但是从0搭建一个精度高.速度快的 ...

  9. 行人属性识别的一个调研

    行人属性识别的一个调研 - 知乎 [前言] 我感觉我掌握了财富密码,从知乎的后台数据来看,大家貌似更喜欢看综述多一点 .因此这次给大家整个"行人属性识别(PAR)"的综述,同样的, ...

最新文章

  1. Paddle Release Note
  2. 解释型语言与编译型语言的区别
  3. 一组图诠释CNN及RNN的区别
  4. 我的世界linux服务器怎么加种子,我的世界怎么获得服务器种子?服务器种子获得方法介绍...
  5. 用C++实现网络编程---抓取网络数据包的实现方法
  6. 发布npm包到GitHub Packages
  7. 我的AndroidManifest
  8. 2.8 计算图的导数计算
  9. 如何判断两物体加速度相等_力学实验2:探究加速度和力的关系
  10. 已解决:fastclick插件在IOS系统上点击input需要双击或长按才有效
  11. SparkSql 数据类型转换
  12. EMNLP'21 | 华东师范提出TransPrompt,在众多数据上达到SOTA
  13. QuickTime Player 如何开启倍速播放?
  14. 直线度误差 matlab,基于MATLAB的直线度误差数据处理
  15. C# 中字符串string和字节数组byte[]的转换
  16. P4778 Counting swaps (组合数学,打表推通项公式,OEIS)
  17. Python 和 奥数 — 同余法求数值
  18. 蓝桥杯,基础练习 Fibonacci数列(斐波那契数列) C++
  19. 1、Dreamweaver工具的使用
  20. OpenStack 快速进阶教程

热门文章

  1. linux ros安装
  2. Java 微信支付通知处理思路
  3. windows搭建WebDAV服务,并内网穿透公网访问【无公网IP】
  4. 汽车参数配置介绍及购车指导
  5. LaTeX 插入图片失败
  6. 架构中重大风险的发掘过程
  7. Struts2项目实战 微云盘(六)主界面UI
  8. java计算机毕业设计购物网站源码+数据库+系统+lw文档+mybatis+运行部署
  9. fiddler--抓包--之数据分析和查看(inspectors)
  10. 3GPP TS 29244-g30 中英文对照 | 6.1 Introduction