解开车辆检测算法之谜

贸泽电子设计圈 2020-11-19 00:00

图源:Zapp2Photo/ShutterStock.com


车辆检测技术看似神秘,本质上是通过数学公式,计算出图片上指定区域内的像素特征,进而根据特征判断物体所属类别。物体检测方法可以总结为特征提取与类别判定两步,常用方法为支持向量机,(Support Vector Machine,SVM)与方向梯度直方图(Histograms of Oriented Gradients,HOG)相互配合。
本文将从以下几个方面介绍这种常用的车辆检测算法,揭开其神秘面纱,也让读者通过阅读对机器学习过程有清晰的了解。
  • 应用场景简介
  • 详述HOG特征的计算方法
  • 简述SVM的工作过程
  • 对比及总结





01

应用场景简介


现实生活中车辆检测技术应用广泛,下面举例说明车内装置的应用。我们平时开的私家车里有时会有后置车载摄像头,后方一定距离内有车将要超过该车时,此系统便会启动,检测出后方车辆以后发出警报,提示驾驶员减速驾驶( 图1 )。另一个例子便是在自动驾驶领域的应用,通过对周边车的定位,分析他车车速、距离等干扰因素,从而改变该车的行驶轨道。

图1:后视车载摄像头检测出车辆并在图像上用矩形框定位
车辆检测系统还广泛用于交通管制和路况监控( 图2 ),例如在隧道口安置此系统,就可以统计每天各个时段的车流量,适当实施限行政策,减少交通事故的发生,并且提醒驾驶员哪里是拥挤路段、哪里交通较为顺畅,进而方便驾驶员选择出行线路,起到疏散交通的目的。此外车流量的统计也会应用在机场或火车站的停车场,经过大数据分析出车位紧张的时段,以便工作人员合理调度资源。
附带车辆检测系统的信号灯可以通过与其他技术相结合,探测信号灯周围车流量,并由工作人员通过大数据人工智能进行统计,通过计算设定红绿灯交替变换的合理时间间隔。

图2:车辆检测系统在路况监控场景下的应用

HOG与SVM相结合的算法:(40−16)/8+1=4
利用HOG与SVM相结合的行人检测方法最初是由法国研究人员Dalal于2005年在CVPR上提出的,如今演变成以HOG+SVM为主要思路对各类物体进行检测,包括车辆以及车道的定位。
该方法步骤如下( 图3 )所示:

图3:SVM与HOG结合做车辆检测的流程图


02

HOG特征计算


1. HOG是一个局部提取特征的算法。如果是包含复杂背景的大图,就算提取再多的特征也达不到检测物体的目的。我们需要将图片剪裁得到目标。经实验证明,车辆作为目标物体占图片比重必须大于80%才会得到好的效果。在剪裁好的局部图像上将图像分区(block),每个区域以细胞(cell)为单位提取特征。(图像中的多个像素为一个细胞cell,多个cell组成区域块block。)我们以 图4 为例,解释HOG特征的计算过程。首先剪裁得到一张40*40的图片(以像素为单位),之后我们要定义如下几个变量:

图4:block在剪裁图片上的移动过程,由图可知4个cell组成一个边长为16个像素的block,图片经剪裁得到长宽均为40个像素值。步长为1,即每次移动一个像素值
  1. 定义移动步长s,例如:s=1。
  2. 定义cell大小,以像素为单位,例如:8*8。
  3. 定义block大小,例如:由2*2=4个cell组成。
  4. 定义bin的数量取值,根据需要设定数量,例如bin=9,每个bin用来存放计算出的直方图的梯度方向累加值,其原理下文将具体讲解。

2. 对输入的图像及颜色进行标准化处理,减少光照或阴影对图像中物体检测准确性的干扰,具体做法是进行gemma颜色矫正后改为灰度图(Gemma颜色矫正原理在此不做介绍)。

3. 梯度大小的计算。以一个细胞部分区域为例做计算方法讲解(图5),下文为计算像素值为25的中间点的公式。

图5:一个细胞的部分区域大小及像素值
采用一个合理的卷积核方式的定义,实验表明[-1,0,1]效果最好。卷积核[-1,0,1]可以理解为一个矩阵,用于计算每个像素点的梯度幅值方向,因此我们可以横向(x轴正方向,向右)采用[-1,0,1]的卷积核,纵向(y轴正方向,向上)采用[-1,0,1]T,对于图像区域中的每一个像素点做横向、纵向的梯度分量计算,二者平方和开根号得到该点的梯度方向,因此计算公式如下:

所以像素为25的点水平方向的计算方法如下( 图6 )所示:

图6:像素值为25的中间点水平方向的像素值的计算过程
计算公式:

所以像素为25的点垂直方向计算方法如下(图7)所示:

图7:像素值为25的中间点水平方向的像素值的计算过程

计算公式:
4. 梯度方向的计算采用以下公式:
5. 对每个细胞(cell)中的所有像素点重复3-4的计算过程,再将数值相加,我们就得到了一个细胞(cell)内9个梯度方向上的梯度积分图( 图8 )。
6. 求解图像分区(block)的HOG特征,即:将所包含的细胞(cell)特征串联到一起。
7. 求解整个图片的HOG特征,即:将所包含的图像分区(block)特征串联到一起。
8. 特征维度的计算方法:

以上例子中block块沿着x,y轴分别移动4步:

(40-16)/ 8+1 = 4

每个block中包含4个cell:

2 * 2 = 4

特征维度的计算公式:

(2*2)*((40-16)/8+1)2* bin =4*16*9=576
因此该图例中通过计算得到特征维度是576。
9. 将求得的梯度向量正则化。正则化的重要目的是为了防止过拟合。过拟合会造成对训练集的分类效果过于理想,但是测试集检测率极其偏低,这显然是我们不能接受的。跟一般的机器学习特征正则化的道理相同,例如得到的特征值在(0,200)之间分布,我们要求防止200以内的数字对特征整体分布造成影响(模型在训练中会为了迎合200而偏离整体趋势,造成过拟合),因此要将特征分布规范化到一定区间。Dalal在论文中提到采用L2-norm得到的效果非常理想。(这里0,200指特征值所在的范围)

10. 将特征与标签一起送往SVM中对分类器进行训练。

直方图的梯度方向及bin的取值

Dalal在论文中提到,“这一步骤的目的是为局部图像区域提供一个指示函数量化梯度方向的同时,能够保持对图像中检测对象外观的弱敏感性”。梯度大小要根据梯度方向插入到对应的bin中,方向分为两种。第一种是无方向的方法(unsighed),适用于车辆或其他目标检测;第二种是有方向的方法(sighed),经实验证明,不适用于车辆或其他目标检测,这种方法在图片放大、缩小、或经过旋转后,像素点要恢复到原位置时会有应用,可以点击参考文献的第5个链接进行深入了解。


1. 无方向。(0,π)
下面我们详细了解无方向插值法。
本文将使用三张表格去做讲解,每张表格中第一行为计算出的幅值,第二行为规定好的bin的方向取值,由180度除以定义的bin个数得来。第三行为bin的序号,从0开始。

根据实际需要分成若干个bin,例如分成9个,即每个细胞内统计9个方向的梯度直方图,每个bin的覆盖方向为20度。将幅值(上文中计算的G(x,y))插入到bin中,最终bin中幅值的累加和即为直方图的纵轴,横轴则是bin的取值范围,该例中取(0,8)的数字。


插入值的方法:
若某个像素点的幅值为80,方向为20度,则插入到( 表格1 )蓝色区域的位置:

表格1
若幅值为80,方向为10度,则分别插入到(表格2)蓝色填充的两个位置:

表格2

若幅值为60,方向为165度,则分别插入到表格3蓝色的两个位置:
(180度和0度在方向上等价,所以幅值按1:3分别插入两个bin)

表格3

上述( 表格1 )介绍的方向值恰好为bin对应值的插入方法,表格2介绍了方向值介于两个bin值之间的插入方法,表格3介绍了方向值大于最大bin值的插入方法。根据三种方法的原理,以cell为单位计算,一个cell中所有像素点遍历后的幅值累加,例如上面我们在0号bin的位置得到了两个幅度值分别为40和15,因此我们到目前为止0号bin的直方图累加到55。以此类推,计算每个cell的1-8号bin幅度并分别累加。最终我们会得到类似于下面( 图8 )的直方图,其中横坐标X为梯度方向,纵坐标Y为梯度幅值:

图8:梯度直方图实例。横轴为bin序号,纵轴为计算出的幅值。本图纵轴对应的数字仅为举例说明,例如,上方三张表格中的bin1幅值加和得到80+40+0=120作为最终结果,则直方图纵坐标得到120,继续做计算,bin1的值会继续累加。
实验证明目标检测时用9个bin,单向插入会得到最佳效果。
2. 有方向。(0,2π)
方向前加了正负号,若也定义9个bin,则每一个bin所分配到的角度范围是(0,π/9°)。例如,第二个bin的正值插入到20-40度的bin(蓝色的扇形区域),负值应插入到200-220度的bin中(蓝色的扇形区域)。( 图9

图9:有方向的插值方法,每一个扇形区域代表一个bin覆盖角度范围值。红色为一号bin,覆盖0-20度。顺时针方向依次标号,绿色为终点,340-360度。蓝色区域为相对应的两个方向的bin.


03

简述SVM的工作过程


SVM(Support Vector Machine)全称为支持向量机,在空间中就是将两个类别通过一个超平面分开,在二维空间可简单理解成为了找到y而y满足:

y的值决定了样本是正类还是负类。但是如何确定最优超平面,这里就引入了支持向量和最大间隔。我们的目标是引入超平面,使得距离超平面最近的点之间有最大间隔(图10)。

图10:红色的线为超平面,落在两侧的虚线上的点为支持向量,计算得到的

贸泽电子设计圈 贸泽电子(Mouser Electronics )为全球授权半导体和电子元器件授权分销商,分销750多家领先品牌,可订购500多万种在线产品,为设计工程师和采购人员提供一站式采购平台。
评论
  • 一、SAE J1939协议概述SAE J1939协议是由美国汽车工程师协会(SAE,Society of Automotive Engineers)定义的一种用于重型车辆和工业设备中的通信协议,主要应用于车辆和设备之间的实时数据交换。J1939基于CAN(Controller Area Network)总线技术,使用29bit的扩展标识符和扩展数据帧,CAN通信速率为250Kbps,用于车载电子控制单元(ECU)之间的通信和控制。小北同学在之前也对J1939协议做过扫盲科普【科普系列】SAE J
    北汇信息 2024-12-11 15:45 110浏览
  • 习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习笔记&记录学习习笔记&记学习学习笔记&记录学习学习笔记&记录学习习笔记&记录学习学习笔记&记录学习学习笔记记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记
    youyeye 2024-12-11 17:58 86浏览
  • 本文介绍瑞芯微RK3588主板/开发板Android12系统下,APK签名文件生成方法。触觉智能EVB3588开发板演示,搭载了瑞芯微RK3588芯片,该开发板是核心板加底板设计,音视频接口、通信接口等各类接口一应俱全,可帮助企业提高产品开发效率,缩短上市时间,降低成本和设计风险。工具准备下载Keytool-ImportKeyPair工具在源码:build/target/product/security/系统初始签名文件目录中,将以下三个文件拷贝出来:platform.pem;platform.
    Industio_触觉智能 2024-12-12 10:27 49浏览
  • 在智能化技术快速发展当下,图像数据的采集与处理逐渐成为自动驾驶、工业等领域的一项关键技术。高质量的图像数据采集与算法集成测试都是确保系统性能和可靠性的关键。随着技术的不断进步,对于图像数据的采集、处理和分析的需求日益增长,这不仅要求我们拥有高性能的相机硬件,还要求我们能够高效地集成和测试各种算法。我们探索了一种多源相机数据采集与算法集成测试方案,能够满足不同应用场景下对图像采集和算法测试的多样化需求,确保数据的准确性和算法的有效性。一、相机组成相机一般由镜头(Lens),图像传感器(Image
    康谋 2024-12-12 09:45 75浏览
  • 铁氧体芯片是一种基于铁氧体磁性材料制成的芯片,在通信、传感器、储能等领域有着广泛的应用。铁氧体磁性材料能够通过外加磁场调控其导电性质和反射性质,因此在信号处理和传感器技术方面有着独特的优势。以下是对半导体划片机在铁氧体划切领域应用的详细阐述: 一、半导体划片机的工作原理与特点半导体划片机是一种使用刀片或通过激光等方式高精度切割被加工物的装置,是半导体后道封测中晶圆切割和WLP切割环节的关键设备。它结合了水气电、空气静压高速主轴、精密机械传动、传感器及自动化控制等先进技术,具有高精度、高
    博捷芯划片机 2024-12-12 09:16 85浏览
  • 近日,搭载紫光展锐W517芯片平台的INMO GO2由影目科技正式推出。作为全球首款专为商务场景设计的智能翻译眼镜,INMO GO2 以“快、准、稳”三大核心优势,突破传统翻译产品局限,为全球商务人士带来高效、自然、稳定的跨语言交流体验。 INMO GO2内置的W517芯片,是紫光展锐4G旗舰级智能穿戴平台,采用四核处理器,具有高性能、低功耗的优势,内置超微高集成技术,采用先进工艺,计算能力相比同档位竞品提升4倍,强大的性能提供更加多样化的应用场景。【视频见P盘链接】 依托“
    紫光展锐 2024-12-11 11:50 72浏览
  • 习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习笔记&记录学习习笔记&记学习学习笔记&记录学习学习笔记&记录学习习笔记&记录学习学习笔记&记录学习学习笔记记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记
    youyeye 2024-12-12 10:13 34浏览
  • RK3506 是瑞芯微推出的MPU产品,芯片制程为22nm,定位于轻量级、低成本解决方案。该MPU具有低功耗、外设接口丰富、实时性高的特点,适合用多种工商业场景。本文将基于RK3506的设计特点,为大家分析其应用场景。RK3506核心板主要分为三个型号,各型号间的区别如下图:​图 1  RK3506核心板处理器型号场景1:显示HMIRK3506核心板显示接口支持RGB、MIPI、QSPI输出,且支持2D图形加速,轻松运行QT、LVGL等GUI,最快3S内开
    万象奥科 2024-12-11 15:42 86浏览
  • 首先在gitee上打个广告:ad5d2f3b647444a88b6f7f9555fd681f.mp4 · 丙丁先生/香河英茂工作室中国 - Gitee.com丙丁先生 (mr-bingding) - Gitee.com2024年对我来说是充满挑战和机遇的一年。在这一年里,我不仅进行了多个开发板的测评,还尝试了多种不同的项目和技术。今天,我想分享一下这一年的故事,希望能给大家带来一些启发和乐趣。 年初的时候,我开始对各种开发板进行测评。从STM32WBA55CG到瑞萨、平头哥和平海的开发板,我都
    丙丁先生 2024-12-11 20:14 68浏览
  • 全球知名半导体制造商ROHM Co., Ltd.(以下简称“罗姆”)宣布与Taiwan Semiconductor Manufacturing Company Limited(以下简称“台积公司”)就车载氮化镓功率器件的开发和量产事宜建立战略合作伙伴关系。通过该合作关系,双方将致力于将罗姆的氮化镓器件开发技术与台积公司业界先进的GaN-on-Silicon工艺技术优势结合起来,满足市场对高耐压和高频特性优异的功率元器件日益增长的需求。氮化镓功率器件目前主要被用于AC适配器和服务器电源等消费电子和
    电子资讯报 2024-12-10 17:09 99浏览
  • 应用环境与极具挑战性的测试需求在服务器制造领域里,系统整合测试(System Integration Test;SIT)是确保产品质量和性能的关键步骤。随着服务器系统的复杂性不断提升,包括:多种硬件组件、操作系统、虚拟化平台以及各种应用程序和服务的整合,服务器制造商面临着更有挑战性的测试需求。这些挑战主要体现在以下五个方面:1. 硬件和软件的高度整合:现代服务器通常包括多个处理器、内存模块、储存设备和网络接口。这些硬件组件必须与操作系统及应用软件无缝整合。SIT测试可以帮助制造商确保这些不同组件
    百佳泰测试实验室 2024-12-12 17:45 40浏览
  • 我的一台很多年前人家不要了的九十年代SONY台式组合音响,接手时只有CD功能不行了,因为不需要,也就没修,只使用收音机、磁带机和外接信号功能就够了。最近五年在外地,就断电闲置,没使用了。今年9月回到家里,就一个劲儿地忙着收拾家当,忙了一个多月,太多事啦!修了电气,清理了闲置不用了的电器和电子,就是一个劲儿地扔扔扔!几十年的“工匠式”收留收藏,只能断舍离,拆解不过来的了。一天,忽然感觉室内有股臭味,用鼻子的嗅觉功能朝着臭味重的方向寻找,觉得应该就是这台组合音响?怎么会呢?这无机物的东西不会腐臭吧?
    自做自受 2024-12-10 16:34 170浏览
  • 全球智能电视时代来临这年头若是消费者想随意地从各个通路中选购电视时,不难发现目前市场上的产品都已是具有智能联网功能的智能电视了,可以宣告智能电视的普及时代已到临!Google从2021年开始大力推广Google TV(即原Android TV的升级版),其他各大品牌商也都跟进推出搭载Google TV操作系统的机种,除了Google TV外,LG、Samsung、Panasonic等大厂牌也开发出自家的智能电视平台,可以看出各家业者都一致地看好这块大饼。智能电视的Wi-Fi连线怎么消失了?智能电
    百佳泰测试实验室 2024-12-12 17:33 46浏览
  • 时源芯微——RE超标整机定位与解决详细流程一、 初步测量与问题确认使用专业的电磁辐射测量设备,对整机的辐射发射进行精确测量。确认是否存在RE超标问题,并记录超标频段和幅度。二、电缆检查与处理若存在信号电缆:步骤一:拔掉所有信号电缆,仅保留电源线,再次测量整机的辐射发射。若测量合格:判定问题出在信号电缆上,可能是电缆的共模电流导致。逐一连接信号电缆,每次连接后测量,定位具体哪根电缆或接口导致超标。对问题电缆进行处理,如加共模扼流圈、滤波器,或优化电缆布局和屏蔽。重新连接所有电缆,再次测量
    时源芯微 2024-12-11 17:11 109浏览
  • 天问Block和Mixly是两个不同的编程工具,分别在单片机开发和教育编程领域有各自的应用。以下是对它们的详细比较: 基本定义 天问Block:天问Block是一个基于区块链技术的数字身份验证和数据交换平台。它的目标是为用户提供一个安全、去中心化、可信任的数字身份验证和数据交换解决方案。 Mixly:Mixly是一款由北京师范大学教育学部创客教育实验室开发的图形化编程软件,旨在为初学者提供一个易于学习和使用的Arduino编程环境。 主要功能 天问Block:支持STC全系列8位单片机,32位
    丙丁先生 2024-12-11 13:15 63浏览
我要评论
0