检测交通视频中的汽车

简介: 使用工具箱可视化和分析视频或图像序列,检测交通视频中的汽车。

一、前言
使用工具箱可视化和分析视频或图像序列。此示例来检测交通视频中的浅色汽车。请注意,VideoReader 的有些功能特定于平台,可能无法在某些平台上读取提供的 Motion JPEG2000 视频。
二、步骤
步骤 1:使用 VideoReader 访问视频
VideoReader 函数构造一个多媒体读取器对象,可以从多媒体文件中读取视频数据。使用 VideoReader 访问视频并获取相关基本信息。get 方法提供有关视频的详细信息,例如视频的持续时间(以秒为单位)。
步骤 2:使用 IMPLAY 浏览视频
使用 implay 浏览视频。
1.png

步骤 3:开发算法
处理视频数据时,可以从视频中选择一个有代表性的帧并基于该帧开发算法,这样会很有帮助。然后,再将该算法应用于视频中所有帧的处理。

对于此汽车标记应用,请找出一个同时包含浅色汽车和深色汽车的帧。当一个图像具有许多结构时,例如交通视频帧,在尝试检测感兴趣的对象之前尽可能简化图像很有必要。对汽车标记应用来说,实现此目的的一种方法是隐藏图像中不是浅色汽车的所有对象(深色汽车、车道、草地等)。通常,需要结合使用多种方法才能去除这些无关的对象。

从视频帧中去除深色汽车的一种方法是使用 imextendedmax 函数。此函数返回一个二值图像,该图像识别强度值高于指定阈值(称为区域最大值)的区域。图像中像素值低于此阈值的所有其他对象都将成为背景。要消除深色汽车,请确定图像中这些对象的平均像素值。(使用 im2gray 将原始视频从 RGB 转换为灰度。)您可以使用 implay 中的像素区域工具查看像素值。当您调用 imextendedmax 时,请指定平均像素值(或再稍高一些的值)作为阈值。对于此示例,将该值设置为 50。
2.png
3.png

观察处理后的图像,会发现大部分的深色汽车对象已经去除,但许多其他无关对象仍然存在,特别是车道标志。区域最大值处理不会去除车道标记,因为其像素值高于阈值。要去除这些对象,可以使用形态学函数 imopen。该函数使用形态学处理从二值图像中删除小对象,同时保留大对象。使用形态学处理时,必须决定运算中使用的结构元素的大小和形状。由于车道标志是细长的对象,因此使用半径与车道标志宽度对应的盘形结构元素。您可以在 implay 中使用像素区域工具来估计这些对象的宽度。对于此示例,将该值设置为 2。
4.png

要完成该算法,请使用 regionprops 找到对象(应只是浅色汽车)的质心。使用此信息将标记定位在原始视频中的浅色汽车上。

步骤 4:将算法应用于视频
汽车标记应用在循环中以一次一帧的方式处理视频。(由于典型视频一般都包含大量帧,因此一次读取和处理所有帧需要大量内存。)小视频(如本例中的视频)可以一次性处理,并且有许多函数可以提供这种功能。为了加快处理速度,请预分配用于存储已处理视频的内存。

步骤 5:可视化结果
获取原始视频的帧速率,并使用它查看。
5.png

目录
相关文章
|
8月前
|
自动驾驶
对于无人驾驶汽车是否能够真正解决交通拥堵问题
对于无人驾驶汽车是否能够真正解决交通拥堵问题
对于无人驾驶汽车是否能够真正解决交通拥堵问题
|
8月前
|
传感器 编解码 自动驾驶
无人驾驶汽车对人民出行的影响有哪些?
无人驾驶汽车对人民出行的影响有哪些?
|
8月前
|
自动驾驶 安全
无人驾驶汽车可以解决交通拥堵问题
无人驾驶汽车可以解决交通拥堵问题
|
10月前
|
传感器 机器学习/深度学习 算法
植保机器人作物识别与监测
植保机器人作物识别与监测
122 2
|
10月前
|
算法
EMQ
|
传感器 监控 安全
探索未来智能交通:网联汽车与汽车互联
本文将对网联汽车的常见应用场景、通信方式进行介绍,同时针对该领域当前所面临的挑战,结合 MQTT 协议优势加以分析,帮助读者了解在网联汽车应用构建中需要关注的因素。
EMQ
254 0
探索未来智能交通:网联汽车与汽车互联
|
机器学习/深度学习 自动驾驶 算法
自动驾驶汽车的车道检测
自动驾驶汽车的车道检测
235 0
自动驾驶汽车的车道检测
|
传感器 安全 新能源
新能源汽车太猛了,这些卡脖子技术你了解吗?
从汽车行业的变化,我们即可初步看出芯片的重要性,那么,芯片对汽车行业的发展具体有哪些重要影响呢?
455 0
新能源汽车太猛了,这些卡脖子技术你了解吗?
汽车服务
开通汽车检测服务
858 0
汽车服务
为什么你还没有买新能源汽车?
新能源汽车这才刚刚开始,即便处于风起之时,仍道阻且长。
477 0