一种基于YOLOV4优化算法的车辆检测方法及系统与流程

文档序号:26310971发布日期:2021-08-17 13:49阅读:210来源:国知局
一种基于YOLOV4优化算法的车辆检测方法及系统与流程

本发明涉及图像检测技术领域,更具体的说是一种基于yolov4优化算法的车辆检测方法及系统。



背景技术:

随着当今社会的快速发展,机动车数量与日剧增,从而导致的交通拥堵现象日益严重。因此,人们提出了智能交通的概念。智能交通系统涵盖了物联网、大数据、人工智能和自动控制理论等技术领域,有效地将交通设施、车辆、驾驶员等要素关联起来,实现高效的管理。通过构建智能交通系统,来准确分析当前的交通环境,能够有效提高交通部门的运营效率。车辆检测是构建智能交通系统最重要的方面之一。

传统的车辆检测技术大多使用手工设计的特征,这种技术对场景依赖性强,而自然场景下环境的大多时候是复杂多变的,因而传统方法有一定的局限性,无法满足人们的需求。2006年以来,深度学习(deeplearning)作为机器学习(machinelearning)一个重要的新研究领域,已成为图像、音频或文本等数据的高效建模方法。同时,gpu芯片的研发以及硬件平台的快速发展,使计算机的计算能力稳步跃升,为深度学习技术承载了重要的开发环境。近年来,卷积神经网络(cnn)在图像检测任务中取得了令人瞩目的成就。为了高效处理大量的图像数据,基于卷积神经网络的计算框架不断涌现出来。因此,采用深度学习的方法进行车辆检测是非常有研究意义和应用前景的。



技术实现要素:

本说明书实施例的一个方面提供一种基于yolov4优化算法的车辆检测方法,包括:获取反映车辆状态的数据;所述反映车辆状态的数据包括以下至少一种:车辆的图片数据、车辆的视频数据;对获取到的所述反映车辆状态的数据进行处理;将处理后的所述反映车辆状态的数据输入车辆检测模型进行检测;基于车辆检测模型输出的结果评估车辆状态,所述车辆状态包括以下至少一种:车辆的识别结果、车辆的定位结果。

本说明书实施例的一个方面提供一种基于yolov4优化算法的车辆检测系统,包括:获取模块,用于获取反映车辆状态的数据;所述反映车辆状态的数据包括以下至少一种:车辆的图片数据、车辆的视频数据;处理模块,用于对获取到的所述反映车辆状态的数据进行处理;检测模块,用于将处理后的所述反映车辆状态的数据输入车辆检测模型进行检测;评估模块,用于基于车辆检测模型输出的结果评估车辆状态,所述车辆状态包括以下至少一种:车辆的识别结果、车辆的定位结果。

本说明书实施例的一个方面提供一种检测车辆状态的装置,所述装置包括至少一个存储介质和至少一个处理器,所述至少一个存储介质用于存储计算机指令;所述至少一个处理器用于执行所述计算机指令以实现所述基于yolov4优化算法的车辆检测方法对应的操作。

本说明书实施例的一个方面提供一种计算机可读存储介质,所述存储介质存储计算机指令,当计算机读取存储介质中的计算机指令后,实现所述基于yolov4优化算法的车辆检测方法。

附图说明

本说明书将以示例性实施例的方式进一步描述,这些示例性实施例将通过附图进行详细描述。这些实施例并非限制性的,在这些实施例中,相同的编号表示相同的结构,其中:

图1是根据本申请一些实施例所示的基于yolov4优化算法的车辆检测系统的应用场景示意图;

图2是根据本说明书的一些实施例所示的基于yolov4优化算法的车辆检测系统的模块图;

图3是根据本说明书的一些实施例所示的基于yolov4优化算法的车辆检测方法的流程图;

图4是根据本说明书的一些实施例所示的车辆检测模型的结构示意图;

图5是根据本说明书的一些实施例所示的车辆检测模型的深度可分离卷积的示意图。

具体实施方式

为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本说明书的一些示例或实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图将本说明书应用于其它类似情景。除非从语言环境中显而易见或另做说明,图中相同标号代表相同结构或操作。

应当理解,本说明书中所使用的“系统”、“装置”、“单元”和/或“模组”是用于区分不同级别的不同组件、元件、部件、部分或装配的一种方法。然而,如果其他词语可实现相同的目的,则可通过其他表达来替换所述词语。

如本说明书和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其它的步骤或元素。

本说明书中使用了流程图用来说明根据本说明书的实施例的系统所执行的操作。应当理解的是,前面或后面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各个步骤。同时,也可以将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。

本申请的实施例可以应用于各种移动设备,例如交通工具,包括但不限于自行车、电动车、汽车、摩托车、滑板车、平衡车等。本申请可以根据车辆的图像信息检测车辆,从而对车辆的状态进行检测,使用户能得到有无车辆的信息及车辆的位置。应当理解的是,本申请的系统及方法的应用场景仅仅是本申请的一些示例或实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图将本申请应用于其他类似情景。虽然本申请主要以车辆、特别是汽车为例进行了描述,但需要注意的是,本申请的原理也可应用于其他物品,如篮球、雨伞、玩具等,根据本申请的原理也可以确定这些物品的状态,有无物品及对物品进行定位。

在本申请中,车辆状态的预测仅作为示例。应当注意的是,检测有无车辆及车辆定位仅用于说明目的,并非旨在限制本申请的范围。在一些实施例中,本公开可以应用于其他类似的情景,例如但不限于车辆速度的预测、车辆行驶轨迹的获取等。

图1是根据本申请的一些实施例所示的示例性基于yolov4优化算法的车辆检测系统的应用场景示意图。应用场景100可以包括服务器110、网络120、车辆终端130、用户终端140、信息源150、存储设备160。

在一些实施例中,服务器110可以是单一服务器或服务器组。该服务器组可以是集中式或分布式的(例如,服务器110可以是分布式系统)。在一些实施例中,服务器110可以是本地的或远程的。例如,服务器110可以经由网络120访问存储在用户终端140和/或存储设备160中的信息和/或数据。又如此,服务器110可以直接连接到用户终端140和/或存储设备160以访问存储的信息和/或数据。又例如,存储设备160可以用作服务器110的后端数据存储器。在一些实施例中,服务器110可以在云平台上实施。仅作为示例,所述云平台可以包括私有云、公共云、混合云、社区云、分布云、内部云、多层云等或其任意组合。在一些实施例中,服务器110可以在本申请图2中描述的包含了一个或者多个组件的系统200上执行。

在一些实施例中,服务器110可以包括处理引擎112。处理引擎112可以处理信息和/或数据以执行本申请中描述的一个或以上功能。例如,处理引擎112可以使用训练后的状态检测模型确定车辆的状态。在一些实施例中,处理引擎112可包括一个或者以上处理引擎(例如,单芯片处理引擎或多芯片处理引擎)。仅作为示例,处理引擎112可以包括一个或以上硬件处理器,例如中央处理单元(cpu)、特定应用集成电路(asic)、特定应用指令集处理器(asip)、图像处理单元(gpu)、物理运算处理单元(ppu)、数字信号处理器(dsp)、现场可程序门阵列(fpga)、可程序逻辑装置(pld)、控制器、微控制器单元、精简指令集计算机(risc)、微处理器等或上述举例的任意组合。

网络120可以促进信息和/或数据的交换。在一些实施例中,应用场景100中的一个或以上组件(例如,服务器110、用户终端140、存储设备160和信息源150)可以通过网络120,发送/获得信息和/或数据到/从场景100中的其他组件。例如,处理引擎112可以经由网络120从存储设备160和/或用户终端140获得车辆的状态数据。在一些实施例中,网络120可以是有线网络或无线网络中的任意一种,或其组合。仅作为示例,网络120可以包括电缆网络、有线网络、光纤网络、远程通信网络、内部网络、因特网、局域网(lan)、广域网(wan)、无线局域网(wlan)、城域网(man)、公共交换电话网络(pstn)、蓝牙网络、紫蜂网络、近场通讯(nfc)网络等或上述举例的任意组合。在一些实施例中,网络120可以包括一个或多个网络接入点。例如,网络120可以包括有线或无线网络接入点,如基站和/或互联网交换点120-1、120-2、......,通过这些接入点,场景100的一个或以上部件可以连接到网络120以交换数据和/或信息。

车辆终端130可以获取多种与车辆相关的数据。这些与车辆相关的数据中的一部分可以反映车辆的状态。例如,车辆终端130可以上传多种车辆相关的数据,包括但不限于车辆车速、行驶环境、停车环境等。又例如,车辆终端130可以通过图像采集设备获取车辆的图像数据。当车辆为汽车时,图像采集设备可以包括安装在车厢内的摄像头(如,行车记录仪)和/或车辆外部搭载的摄像头(如,搭载在车身上的摄像头)。在一些实施例中,通过图像采集设备可以获得车厢内图像数据和/或车辆外观图像数据,其中车厢内图像数据可以包括内饰(如,方向盘套、座椅、内部摆件、收纳箱等)的图像数据;车辆外观图像数据可以包括外饰(如,车身、拉手、风挡玻璃、前后保险杠等)的图像数据。例如,通过车厢内的行车记录仪可以采集车厢内图像,通过车辆外部搭载的摄像头可以采集车辆外观图像。又例如,当所述车辆为自行车、电动车、滑板车、平衡车等,可以通过搭载在车身上的摄像头采集车辆外观图像数据(如,车身、把手、坐垫、脚踏等的图像数据)。在一些实施例中,用户也可以通过车辆终端130上传车辆的数据。在一些实施例中,车辆终端130可以获取反映车辆使用场景环境的数据。例如,车辆终端130可以获取车辆所在位置的天气信息、路况信息等。在一些实施例中,车辆终端130可以是一带有定位技术的装置,以确定车辆的位置,并发送给车辆清洁计划确定系统100中的一个或多个设备,例如服务器110。

在一些实施例中,用户终端140可以与场景100的用户(如共享汽车的汽车提供方、用户、打车平台的司机、平台方、打车客户等)相关。用户终端140可以包括移动设备140-1、平板电脑140-2、膝上型计算机140-3、机动车辆140-4中的内置设备等,或其组合。在一些实施例中,移动设备140-1可以包括智能家居设备、可穿戴设备、智能移动设备、虚拟现实设备、增强现实设备等,或其任意组合。在一些实施例中,智能家居设备可以包括智能照明设备、智能电器控制设备、智能监控设备、智能电视、智能摄像机、对讲机等,或其任意组合。在一些实施例中,可穿戴设备可以包括智能手镯、智能鞋袜、智能眼镜、智能头盔、智能手表、智能服饰、智能背包、智能配件等或其任意组合。在一些实施例中,智能移动设备可以包括智能电话、个人数字助理(pda)、游戏设备、导航设备、pos机等,或其任意组合。在一些实施例中,虚拟现实设备和/或增强现实设备可以包括虚拟现实头盔、虚拟现实眼镜、虚拟现实眼罩、增强现实头盔、增强现实眼镜、增强现实眼罩等,或其任意组合。例如,虚拟现实设备和/或增强现实设备可以包括googleglasstm,riftcontm,fragmentstm,gearvrtm等。在一些实施例中,用户终端140可以是一带有定位技术的装置,以确定车辆使用者和/或用户终端140的位置,并发送给场景100中的一个或多个设备,例如服务器110。

当本方案应用于如共享汽车的管理等场景时,运维人员可以通过用户终端140接入共享车辆运维平台,进行与车辆运维相关的操作。例如,运维人员可以通过用户终端140查看车辆信息,上报有问题或故障的车辆信息等。在一些实施例中,用户终端140可以接收服务器110发送的车辆状态信息,引导运维人员对相关车辆进行维护。在一些实施例中,用户终端140也可以是专门配备的装置。本实施例中对此不进行限定。

存储设备160可以存储数据和/或指令。在一些实施例中,存储设备160可以存储从用户终端140和/或服务器110获得的数据。例如,存储设备160可以存储从用户终端140获得的反映车辆状态的数据。在一些实施例中,存储设备160可以存储数据和/或指令,服务器110可以执行或使用该数据和/或指令来完成本申请中描述的示例性方法。例如,存储设备160可以存储指令,处理引擎112可以执行所述指令,以基于车辆图片来预测车辆状态。在一些实施例中,存储设备160可以包括大容量存储器、可移动存储器、易失性读写存储器、只读存储器(rom)等或其任意组合。示例性的大容量储存器可以包括磁盘、光盘、固态驱动等。示例性的可移动存储器可以包括闪存驱动器、软盘、光盘、存储卡、压缩盘、磁带等。示例性的易失性读写存储器可以包括随机存取存储器(ram)。示例性的随机存取存储器可包括动态随机存取存储器(dram)、双倍速率同步动态随机存取存储器(ddrsdram)、静态随机存取存储器(sram)、闸流体随机存取存储器(t-ram)和零电容随机存取存储器(z-ram)等。示例性的只读存储器可以包括掩模只读存储器(mrom)、可编程只读存储器(prom)、可擦除可编程只读存储器(perom)、电子可擦除可编程只读存储器(eeprom)、光盘只读存储器(cd-rom)和数字通用磁盘只读存储器等。在一些实施例中,所述存储设备160可以在云平台上实现。仅作为示例,所述云平台可以包括私有云、公共云、混合云、社区云、分布云、内部云、多层云等或其任意组合。

在一些实施例中,存储设备160可以连接到网络120以与场景100中的一个或以上组件(例如,服务器110、用户终端140、信息源150)通信。场景100中的一个或以上组件可以经由网络120访问存储设备160中存储的数据或指令。在一些实施例中,存储设备160可以直接连接到场景100中的一个或以上组件(例如,服务器110、用户终端140、信息源150)或与之通信。在一些实施例中,存储设备160可以是服务器110的一部分。

信息源170是为基于yolov4优化算法的车辆检测系统提供其他信息的一个源。在一些实施例中,信息源170可以用于为系统提供天气信息、路况信息、用户信息等。信息源170可以是一个单独的中央服务器的形式存在,也可以是以多个通过网络连接的服务器的形式存在,还可以是以大量的个人设备形式存在。当信息源170以大量个人设备形式存在时,这些设备可以通过一种用户生成内容(user-generatedcontents)的方式,例如向云端服务器上传文字、语音、图像、视频等,从而是云端服务器连通与其连接的众多个人设备一起组成信息源170。

状态检测模型可以指基于处理设备而进行的若干方法的集合。这些方法可以包括大量的参数。在执行模型时,所使用的参数可以是被预先设置好的,也可以是可以动态调整的。一些参数可以通过训练的方法获得,一些参数可以在执行的过程中获得。关于本说明书中涉及模型的具体说明,可参见本说明书的相关部分。

需要说明的是,本说明书的基于yolov4优化算法的卷积神经网络模型可以采用的一种运行环境为:服务器硬件配置为3张nvidiageforcegtx2080ti独立显卡,系统环境为ubuntu18.04。车辆检测算法采用pytorch框架实现,使用pytorch1.6版本,cuda(computeunifieddevicearchitecture)版本为10.0。车辆识别算法基于keras框架,使用keras2.2.4版本,cuda(computeunifieddevicearchitecture)版本为10.0,cudnn7.1。

图2是根据本说明书的一些实施例所示的基于yolov4优化算法的车辆检测系统的模块图。

如图2所示,基于yolov4优化算法的车辆检测系统可以包括获取模块210、处理模块220、检测模块230、评估模块240。

在一些实施例中,构建模块用于获取反映车辆状态的数据;所述反映车辆状态的数据包括以下至少一种:车辆的图片数据、车辆的视频数据。

在一些实施例中,处理模块220用于对获取到的所述反映车辆状态的数据进行处理。

在一些实施例中,检测模块230用于将处理后的所述反映车辆状态的数据输入车辆检测模型进行检测。

在一些实施例中,评估模块240用于基于车辆检测模型输出的结果评估车辆状态,所述车辆状态包括以下至少一种:车辆的识别结果、车辆的定位结果。

在一些实施例中,基于yolov4优化算法的车辆检测系统还可以包括训练模块250,训练模块250用于根据采集获得的数据对构建的所述状态检测模型进行训练,获得训练完毕的所述状态检测模型。

在一些实施例中,可以训练得到状态检测模型来分析采集到的车辆的图像,确定车辆的状态。所述状态检测模型的输入为车辆的图像数据,模型的输出为车辆状态。在一些实施例中,所述状态检测模型可以是机器学习模型,包括但不限于分类与逻辑回归(logisticregression)模型、k-最近邻算法(k-nearestneighbor,knn)模型、朴素贝叶斯(naivebayes,nb)模型、支持向量机(supportvectormachine,svm)、决策树(decisiontree,dt)模型、随机森林(randomforests,rf)模型、回归树(classificationandregressiontrees,cart)模型、梯度提升决策树(gradientboostingdecisiontree,gbdt)模型、xgboost(extremegradientboosting)、轻量级梯度提升机器(lightgradientboostingmachine,lightgbm)、梯度提升机(gradientboostingmachines,gbm)、lasso(leastabsoluteshrinkageandselectionoperator,lasso)、人工神经网络(artificialneuralnetworks,ann)模型等。在一些实施例中,训练的样本图像可以包括已有的车辆图像。已有的车辆图像可以通过各种方式获取,比如,历史行车记录仪采集的车辆图像、历史用户上传的车辆图像等。在一些实施例中,可以对已有的车辆图像进行数据增强,以增加样本图像的数量。数据增强的方法包括但不限于翻转、旋转、缩放、裁剪、平移、添加噪声等。在一些实施例中,可以标记样本图像的状态数据,标记可以通过人工或计算机程序进行。比如,可以根据历史用户对车辆的评分进行统计等等。仅作为示例,可以以样本图像作为输入,以对应的车辆状态作为正确标准(groundtruth)对模型进行训练。同时可以根据模型的预测输出(例如,预测的车辆状态)与正确标准之间的差异反向调整模型参数。当满足某一预设条件时,例如,训练样本图像数达到预定的数量,模型的预测正确率大于某一预定正确率阈值,或损失函数(lossfunction)的值小于某一预设值,训练过程将停止,并将训练后的模型指定为所述状态检测模型。关于本说明书中的状态检测模型的更多细节说明参见图4,此处不再赘述。

应当理解,图2所示的系统及其模块可以利用各种方式来实现。例如,在一些实施例中,系统及其模块可以通过硬件、软件或者软件和硬件的结合来实现。其中,硬件部分可以利用专用逻辑来实现;软件部分则可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域技术人员可以理解上述的方法和系统可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、cd或dvd-rom的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本说明书的系统及其模块不仅可以有诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用例如由各种类型的处理器所执行的软件实现,还可以由上述硬件电路和软件的结合(例如,固件)来实现。

需要注意的是,以上对于基于yolov4优化算法的车辆检测系统200及其模块的描述,仅为描述方便,并不能把本说明书限制在所举实施例范围之内。可以理解,对于本领域的技术人员来说,在了解该系统的原理后,可能在不背离这一原理的情况下,对各个模块进行任意组合,或者构成子系统与其他模块连接。例如,图2中获取模块210、处理模块220、检测模块230、评估模块240、训练模块250可以是一个系统中的不同模块,也可以是一个模块实现上述的两个模块的功能。又例如,基于yolov4优化算法的车辆检测系统200中各个模块可以共用一个存储模块,各个模块也可以分别具有各自的存储模块。诸如此类的变形,均在本说明书的保护范围之内。

图3是根据本说明书的一些实施例所示的实施例所示的车辆状态确定方法的流程图。如图3所示,该流程300可以包括以下步骤:

步骤310,用于获取反映车辆状态的数据;所述反映车辆状态的数据包括以下至少一种:车辆的图片数据、车辆的视频数据。

具体的,该步骤可以由获取模块210执行。

在一些实施例中,反映车辆状态的数据可由专门的人员进行采集并存放于场景100中的信息源内,反映车辆状态的数据的采集包括采集车辆视频、视频分割、提取车辆图片,在一些实施例中,可以采用半自动标注脚本生成xml、人工进行修正。在一些实施例中,反映车辆状态的数据构成的数据集可以包含了晴天、阴天、夜晚和目标遮挡等几种自然场景的图片数据。如在一些实施例中,可以截取不少于10000张图片,格式为jpg,大小为1920x1080。

步骤320,对获取到的所述反映车辆状态的数据进行处理。

具体的,该步骤可以由处理模块220执行。

为了保障检测结果的准确性,在一些实施例中,需要对采集到的数据进行处理,如在一些实施例中,由于数据集中的图片存在侧身车辆,对检测会造成一定的影响,因此需要对数据集进行数据增强先搜集一部分含有侧身车辆的图片,如可把侧身车辆从图中抠出来,随机的选择2到3个侧身车辆,以不同尺度粘贴到不含侧身车辆的图片的空白处,同时更新位置信息到xml中。

步骤330,将处理后的所述反映车辆状态的数据输入车辆检测模型进行检测。

具体的,该步骤可以由检测模块230执行。

在一些实施例中,所述车辆检测模型为基于yolov4优化算法的卷积神经网络模型,所述卷积神经网络模型的输入为反映所述车辆状态的数据,所述卷积神经网络模型的输出为所述车辆状态。

所述车辆检测模型依次包括主干特征提取网络层、增强特征提取网络层、预测网络层。在一些实施例中,所述主干特征提取网络层用于对输入的所述反映车辆状态的数据进行初步的特征提取,得到若干有效特征层;在一些实施例中,所述增强特征提取网络层用于对所述主干特征提取网络层得到的所述若干有效特征层进行特征融合操作,得到融合后的特征层;在一些实施例中,所述预测网络层用于对所述融合后的特征层进行预测,得到预测结果。

在一些实施例中,如图4所示为车辆检测模型的具体结构示意图,主干特征提取网络,对应图中的mobilenetv3,作用是对输入的图片进行初步的特征提取,这样可以得到三个初步的有效特征层,增强特征提取网络,对应图中的spp、panet,作用是加强特征提取,通过对a得到的三个特征层进行特征融合操作,从而增强模型对不同缩放尺度目标的检测,预测网络,对应图中的三个yolohead,作用是利用b得到的特征层来获得预测结果。

在一些实施例中,所述主干特征提取网络层采用优化的mobilenetv3网络结构,所述优化的mobilenetv3网络结构具体如下:

可知,优化的mobilenetv3网络结构包括11个mb3block,同时每个block的通道数均匹配yolov4的输入尺寸,第一列表示每层特征经历的block结构,cbh表示一个由conv2d、batchnormalization、hard-swish组成的block,mb3block表示一个由倒置残差模块、se注意力机制、膨胀卷积和深度可分离卷积组成的block,第二列表示膨胀系数,第三列表示输入block时特征层的通道数,第四列表示是否使用se注意力机制,第五列表示激活函数的种类,h表示hard-swish激活函数,r表示relu激活函数,第六列表示步长。

在一些实施例中,为了进一步优化网络结构,优化的mobilenetv3网络结构的卷积为深度可分离卷积,所述深度可分离卷积是一个可分解卷积的操作,包含depthwise卷积和pointwise卷积两部分。如图5所示,深度可分离卷积是一个可分解卷积的操作,包含depthwise卷积和pointwise卷积两部分,即将一个完整的卷积分为两个步骤进行。与普通卷积不同的是,depthwise卷积的每个卷积核只负责一个输入的通道,而普通卷积的每个卷积核同时操作输入的每个通道。同样对于一个6x6x3的输入,输入的每一个通道只和一个3x3的卷积核进行卷积操作,最后生成3个4x4的featuremap。如图5所示,其中一个filter仅包含一个3x3的卷积核,所以卷积部分的参数量为p_depthwise=3x3x3=27。

在一些实施例中,所述卷积神经网络模型使用的激活函数为relu激活函数和leakyrelu激活函数中的至少一个。

其中,relu激活函数和leakyrelu激活函数的计算公式如公式1和公式2:

其中λ为一个很小的数值,这样保留了一些负轴的值,使得负轴的信息不会全部丢失。

步骤340,将处理后的所述反映车辆状态的数据输入车辆检测模型进行检测。

具体的,该步骤可以由评估模块240执行。

在车辆检测任务中,需要同时做到车辆定位与识别,因此评价指标要素复杂。

由于本章只对一类物体检测,所以采用ap(averageprecision)来评估实验的结果。这里采用iou的方式来度量预测框的准确度,一般情况下,当iou>0.5,就认为检测正确,对于精度要求比较高的情况,阈值也可以设为0.75、0.9等。ap就是p-r曲线所围成的面积。

由于涉及的目标只有车辆,那么分类目标只有两类,是车(正样本,positive)和非车(负样本,negative),对其做如下定义:

tp(truepositives):当iou>0.5时,即正确的将车识别为车。

fp(falsepositives):当iou<0.5时,即错误的将非车识别为车。

fn(falsenegatives):表示漏检的车辆。

p-r(precision-recall)曲线的横纵轴分别为precision(准确率)和recall(召回率),计算公式3和公式4。

在一些实施例中,可以通过训练模块250对基于yolov4优化算法的卷积神经网络模型进行训练,所述基于yolov4优化算法的卷积神经网络模型可以由历史车辆状态相关数据进行训练后得到。仅作为示例,可以以历史基础信息作为输入,以所述历史基础信息对应的适当车辆状态状态作为正确标准(groundtruth)对模型进行训练。同时可以根据模型的预测输出与正确标准之间的差异反向调整模型参数。当满足某一预设条件时,例如,训练样本数达到预定的数量,模型的预测正确率大于某一预定正确率阈值,或损失函数(lossfunction)的值小于某一预设值,训练过程将停止,并将训练后的模型指定为所述基于yolov4优化算法的卷积神经网络模型。在一些实施例中,对基于yolov4优化算法的卷积神经网络模型进行训练时,可以将学习率的初始值设为0.0001,随epoch次数不断减小,优化器选择adam进行优化。

本说明书实施例还提供一种基于yolov4优化算法的车辆检测装置,包括至少一个存储介质和至少一个处理器,所述至少一个存储介质用于存储计算机指令;所述至少一个处理器用于执行前述的检测车辆状态的方法,所述方法包括:获取反映车辆状态的数据;所述反映车辆状态的数据包括以下至少一种:车辆的图片数据、车辆的视频数据;对获取到的所述反映车辆状态的数据进行处理;将处理后的所述反映车辆状态的数据输入车辆检测模型进行检测;基于车辆检测模型输出的结果评估车辆状态,所述车辆状态包括以下至少一种:车辆的识别结果、车辆的定位结果。

本说明书实施例还提供一种计算机可读存储介质。所述存储介质存储计算机指令,当计算机读取存储介质中的计算机指令后,计算机实现前述的检测车辆状态的方法,所述方法包括:获取反映车辆状态的数据;所述反映车辆状态的数据包括以下至少一种:车辆的图片数据、车辆的视频数据;对获取到的所述反映车辆状态的数据进行处理;将处理后的所述反映车辆状态的数据输入车辆检测模型进行检测;基于车辆检测模型输出的结果评估车辆状态,所述车辆状态包括以下至少一种:车辆的识别结果、车辆的定位结果。

本说明书实施例可能带来的有益效果包括但不限于:本说明书实施例以压缩模型提高速度为目标,构建快速高效的车辆检测模型。通过从算法框架和数据扩增策略等方面进行改进,最终在检测精度与yolov4相差不大的情况下,使车辆检测模型的推理速度提高了37%。需要说明的是,不同实施例可能产生的有益效果不同,在不同的实施例里,可能产生的有益效果可以是以上任意一种或几种的组合,也可以是其他任何可能获得的有益效果。

上文已对基本概念做了描述,显然,对于本领域技术人员来说,上述详细披露仅仅作为示例,而并不构成对本说明书的限定。虽然此处并没有明确说明,本领域技术人员可能会对本说明书进行各种修改、改进和修正。该类修改、改进和修正在本说明书中被建议,所以该类修改、改进、修正仍属于本说明书示范实施例的精神和范围。

同时,本说明书使用了特定词语来描述本说明书的实施例。如“一个实施例”、“一实施例”、和/或“一些实施例”意指与本说明书至少一个实施例相关的某一特征、结构或特点。因此,应强调并注意的是,本说明书中在不同位置两次或多次提及的“一实施例”或“一个实施例”或“一个替代性实施例”并不一定是指同一实施例。此外,本说明书的一个或多个实施例中的某些特征、结构或特点可以进行适当的组合。

此外,本领域技术人员可以理解,本说明书的各方面可以通过若干具有可专利性的种类或情况进行说明和描述,包括任何新的和有用的工序、机器、产品或物质的组合,或对他们的任何新的和有用的改进。相应地,本说明书的各个方面可以完全由硬件执行、可以完全由软件(包括固件、常驻软件、微码等)执行、也可以由硬件和软件组合执行。以上硬件或软件均可被称为“数据块”、“模块”、“引擎”、“单元”、“组件”或“系统”。此外,本说明书的各方面可能表现为位于一个或多个计算机可读介质中的计算机产品,该产品包括计算机可读程序编码。

计算机存储介质可能包含一个内含有计算机程序编码的传播数据信号,例如在基带上或作为载波的一部分。该传播信号可能有多种表现形式,包括电磁形式、光形式等,或合适的组合形式。计算机存储介质可以是除计算机可读存储介质之外的任何计算机可读介质,该介质可以通过连接至一个指令执行系统、装置或设备以实现通讯、传播或传输供使用的程序。位于计算机存储介质上的程序编码可以通过任何合适的介质进行传播,包括无线电、电缆、光纤电缆、rf、或类似介质,或任何上述介质的组合。

本说明书各部分操作所需的计算机程序编码可以用任意一种或多种程序语言编写,包括面向对象编程语言如java、scala、smalltalk、eiffel、jade、emerald、c++、c#、vb.net、python等,常规程序化编程语言如c语言、visualbasic、fortran2003、perl、cobol2002、php、abap,动态编程语言如python、ruby和groovy,或其他编程语言等。该程序编码可以完全在用户计算机上运行、或作为独立的软件包在用户计算机上运行、或部分在用户计算机上运行部分在远程计算机运行、或完全在远程计算机或处理设备上运行。在后种情况下,远程计算机可以通过任何网络形式与用户计算机连接,比如局域网(lan)或广域网(wan),或连接至外部计算机(例如通过因特网),或在云计算环境中,或作为服务使用如软件即服务(saas)。

此外,除非权利要求中明确说明,本说明书所述处理元素和序列的顺序、数字字母的使用、或其他名称的使用,并非用于限定本说明书流程和方法的顺序。尽管上述披露中通过各种示例讨论了一些目前认为有用的发明实施例,但应当理解的是,该类细节仅起到说明的目的,附加的权利要求并不仅限于披露的实施例,相反,权利要求旨在覆盖所有符合本说明书实施例实质和范围的修正和等价组合。例如,虽然以上所描述的系统组件可以通过硬件设备实现,但是也可以只通过软件的解决方案得以实现,如在现有的处理设备或移动设备上安装所描述的系统。

同理,应当注意的是,为了简化本说明书披露的表述,从而帮助对一个或多个发明实施例的理解,前文对本说明书实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。但是,这种披露方法并不意味着本说明书对象所需要的特征比权利要求中提及的特征多。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。

一些实施例中使用了描述成分、属性数量的数字,应当理解的是,此类用于实施例描述的数字,在一些示例中使用了修饰词“大约”、“近似”或“大体上”来修饰。除非另外说明,“大约”、“近似”或“大体上”表明所述数字允许有±20%的变化。相应地,在一些实施例中,说明书和权利要求中使用的数值参数均为近似值,该近似值根据个别实施例所需特点可以发生改变。在一些实施例中,数值参数应考虑规定的有效数位并采用一般位数保留的方法。尽管本说明书一些实施例中用于确认其范围广度的数值域和参数为近似值,在具体实施例中,此类数值的设定在可行范围内尽可能精确。

针对本说明书引用的每个专利、专利申请、专利申请公开物和其他材料,如文章、书籍、说明书、出版物、文档等,特此将其全部内容并入本说明书作为参考。与本说明书内容不一致或产生冲突的申请历史文件除外,对本说明书权利要求最广范围有限制的文件(当前或之后附加于本说明书中的)也除外。需要说明的是,如果本说明书附属材料中的描述、定义、和/或术语的使用与本说明书所述内容有不一致或冲突的地方,以本说明书的描述、定义和/或术语的使用为准。

最后,应当理解的是,本说明书中所述实施例仅用以说明本说明书实施例的原则。其他的变形也可能属于本说明书的范围。因此,作为示例而非限制,本说明书实施例的替代配置可视为与本说明书的教导一致。相应地,本说明书的实施例不仅限于本说明书明确介绍和描述的实施例。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1