技术领域
本发明涉及图像处理、目标检测及深度学习技术领域,尤其是一种基于图像分区的道路行人小目标检测方法。
背景技术
行人检测是目标检测中一个重要的问题,其需要在视频或数字图像中检测行人的位置。行人检测作为目标检测问题的一个分支,涉及到检测特定的人类类别,其在视频监控、自动驾驶、人员识别、机器人等领域有着广泛的应用。
行人小目标检测问题在行人检测任务中一直是难点,主要是行人小目标在图像中模糊、分辨率低和携带的信息少,因此导致特征表达能力弱,在特征提取的过程中,能提取到的特征非常少,所以行人小目标的检测精度通常只有行人大目标的一半。一般的小目标检测方案主要包括:采用图像金字塔和多尺度滑动窗口,如MTCNN、FPN和Feature-FusedSSD等;采用数据增强手段,如过采样和复制粘贴小目标;采用不同的训练策略,如SNIP、SNIPER和SAN等:采用先放大特征再检测的检测策略,如GAN网络去检测小目标。这几种策略一般都是针对COCO或ImageNet等通用数据集或图片原始尺寸较小下进行的,如典型的Faster R-CNN模型输入通常是1000×600像素的图像,SSD模型的输入通常是300×300或512×512像素的图像,YOLO模型通常是在416×416或608×608像素的图像上运行。因此如果目标数据集的像素过大,直接使用上述方法一样很难检测到小目标,主要是由于小目标的尺寸一般小于32×32像素或其宽高是原图宽高的十分之一以下。同时,受制于硬件性能的情况下,将大图像的尺寸缩放到与模型大小相匹配后,小目标极有可能消失或仅占有几个像素;进一步,送入到检测模型中后,在模型的深层特征上基本很难提取到小目标的特征信息。
发明内容
本发明的目的在于:本发明提供了一种基于图像分区的道路行人小目标检测方法,克服现有方法在面对数据集像素过大的情况下检测小目标行人易漏检的问题,提高行人小目标的检测能力。
本发明采用的技术方案如下:
一种基于图像分区的道路行人小目标检测方法,包括如下步骤:
步骤1:构建行人分区数据集;
步骤2:使用步骤1的行人分区数据集训练输入大小为608×608的行人检测网络模型;
步骤3:输入待检测图像;
步骤4:对步骤3中的待检测图像进行分区,得到包含分区先后顺序的分区子图像;
步骤5:对步骤4中所有分区子图像按分区的先后顺序,使用步骤2中训练好的行人检测模型进行检测;
步骤6:对步骤5中的所有分区子图像的检测结果按步骤4中分区的先后顺序进行拼接,将分区子图像的检测结果还原到待检测图像上;
步骤7:输出检测结果。
优选地,所述步骤1中的行人分区数据集构建如下:
步骤1.1、将1024×2048大小的行人数据集CityPersons中每一张1024×2048的图像以608×608大小的窗口滑动,切割成多个小图像,相邻窗口之间具有20%的重叠,用于防止将小目标裁剪为更小的目标,并删除所切割子图像中相同区域大于20%的子图像,同时将图像标签对应裁剪为子标签,得到训练集23800张,验证集4000张。
优选地,所述步骤2中具体实施步骤如下:
步骤2.1、基于通用目标检测网络模型,采用步骤1中的数据集训练一个行人检测网络模型,同时采用K-means均值聚类对数据集的行人标注框进行聚类,自动生成一组更适合数据集的anchor,以使行人检测网络模型的检测效果更好,最终输出的anchor为[[2,13],[4,21],[6,30],[8,37],[9,46],[12,59],[16,78],[22,111],[38,187]];其他实验参数设置包括:行人检测模型的输入大小为608×608;总的训练epoch为1000;Batch Size为8;初始学习率为0.001;学习率按照epoch进行衰减,下降间隔数为1个epoch,调整倍数为0.9;优化器为Adam;参数初始化使用所采用目标检测模型的官方预训练权重进行初始化;
优选地,所述步骤4中的图像分区实施步骤如下:
步骤4.1、将1024×2048大小的待检测图像分割成对应的图像块,如608×608,切割是通过滑动窗口按顺序进行的,窗口大小为行人检测模型输入大小,滑动窗口重叠比率为0到0.95,如重叠比率为0.2时,一张1024×2048大小的图像将裁剪成8张608×608的小图像;
步骤4.2、按切割顺序将每个切割位置存入列表中,用于待检测图像中所有分区子图像检测结果的融合,其位置信息是相对于待检测图像左上角设定的,包含了切割左上角坐标x1,yl和右下角坐标x2,y2。
优选地,所述步骤5中的检测实施步骤如下:
步骤5.1、行人检测模型在检测阶段置信度阈值为0.5,非极大值抑制阈值为0.3下,对待检测图像分区后的所有子图像实施检测,按顺序输出所有的行人检测结果。
优选地,所述步骤6中的检测结果拼接实施步骤如下:
步骤6.1、将每个分区子图像的检测结果的左上角坐标x3,y3和右下角坐标x4,y4都加上步骤4.2中对应的切割左上角坐标x1,y1;
步骤6.2、对所有还原后的检测结果,使用非极大值抑制剔除其中重复检测的结果,最终得到1024×2048大小待检测图像中所有被检测到目标的左上角和右下角坐标信息。
综上所述,由于采用了上述技术方案,本发明的有益效果是:
1.本发明利用现有道路CityPersons数据集的每张图像,将其裁剪成多张608×608的小图像以及生成对应的目标边界框,避免了直接训练大图像时,小目标特征表达弱的问题,从而提高了目标检测的能力。
2.本发明将1024×2048的待检测图像先分区检测再拼接,避免了直接在大图像中检测小目标易漏检的问题,有效解决了直接检测小目标效果差的问题。
3.本发明将直接检测问题转化为分区检测再拼接问题,提升了检测算法针对大图像中小目标检测的鲁棒性,可适用范围更广,如行人、车辆、道路标识牌和交通信号灯等。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本发明的道路小目标行人检测流程图;
图2为本发明608×608的滑动窗对原图像的裁剪示例;
图3为本发明由608×608的滑动窗在重叠比例为0.2时对原图像的裁剪示例;
图4为本发明行人检测图像的标签;
图5为直接对检测图像进行行人检测的结果;
图6为本发明对检测图像先分区检测行人再合并检测结果。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明,即所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,术语“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以下结合实施例对本发明的特征和性能作进一步的详细描述。
实施例1
如图1-6所示,一种基于图像分区的道路行人小目标检测方法,包括如下步骤:
步骤1:构建行人分区数据集;
进一步,所述步骤1中的行人分区数据集构建如下:
步骤1.1、将1024×2048大小的行人数据集CityPersons中每一张1024×2048的图像以608×608大小的窗口滑动,如图2所示,切割成多个小图像,相邻窗口之间具有20%的重叠,用于防止将小目标裁剪为更小的目标,并删除所切割子图像中相同区域大于20%的子图像,如图3所示,同时将图像标签对应裁剪为子标签,如图4所示,得到训练集23800张,验证集4000张。
步骤2:使用步骤1的行人分区数据集训练输入大小为608×608的行人检测网络模型;
进一步,所述步骤2中具体实施步骤如下:
步骤2.1、基于通用目标检测网络模型,采用步骤1中的数据集训练一个行人检测网络模型,同时采用K-means均值聚类对数据集的行人标注框进行聚类,自动生成一组更适合数据集的anchor,以使行人检测网络模型的检测效果更好,最终输出的anchor为[[2,13],[4,21],[6,30],[8,37],[9,46],[12,59],[16,78],[22,111],[38,187]];其他实验参数设置包括:行人检测模型的输入大小为608×608;总的训练epoch为1000;Batch Size为8;初始学习率为0.001;学习率按照epoch进行衰减,下降间隔数为1个epoch,调整倍数为0.9;优化器为Adam;参数初始化使用所采用目标检测模型的官方预训练权重进行初始化;
步骤3:输入待检测图像。
步骤4:对步骤3中的待检测图像进行分区;
进一步,所述步骤4中的图像分区实施步骤如下:
步骤4.1、将1024×2048大小的待检测图像分割成对应的图像块,如608×608,切割是通过滑动窗口按顺序进行的,窗口大小为行人检测模型输入大小,滑动窗口重叠比率为0到0.95,如重叠比率为0.2时,一张1024×2048大小的图像将裁剪成8张608×608的小图像,如图3所示;
步骤4.2、按切割顺序将每个切割位置存入列表中,用于待检测图像中所有分区子图像检测结果的融合,其位置信息是相对于待检测图像左上角设定的,包含了切割左上角坐标x1,y1和右下角坐标x2,y2。
步骤5:对步骤4.1中所有分区子图像按步骤4.2中列表内的先后顺序,使用步骤2中训练好的行人检测模型进行检测。
进一步,所述步骤5中的检测实施步骤如下:
步骤5.1、行人检测模型在检测阶段置信度阈值为0.5,非极大值抑制阈值为0.3下,对待检测图像分区后的所有子图像实施检测,按顺序输出所有的行人检测结果。
步骤6:对步骤5中的所有分区子图像的检测结果按步骤4.2中列表内的先后顺序进行拼接,将分区子图像的检测结果还原到待检测图像上;
进一步,所述步骤6中的检测结果拼接实施步骤如下:
步骤6.1、将每个分区子图像的检测结果的左上角坐标x3,y3和右下角坐标x4,y4都加上步骤4.2中对应的切割左上角坐标x1,yl;将切割子图像的行人检测结果坐标信息还原到待检测图像上。由于切割子图像的左顶点x1,y1是相对于待检测图像左上角设定的,而x3,y3,x4,y4作为切割子图像内的行人检测结果,它们是相较于切割子图像左上角的,因此要将切割子图像内的行人检测结果还原到待检测图像上,则x3,y3,x4,y4都需要加上对应的切割子图像左上角坐标x1,y1。
步骤6.2、对所有还原后的检测结果,使用非极大值抑制剔除其中重复检测的结果,最终得到1024×2048大小待检测图像中所有被检测到目标的左上角和右下角坐标信息。
步骤7:输出检测结果。
根据附图进行效果分析:如图5和6所示,通过本发明的方法在行人检测模型训练阶段,利用现有道路CityPersons数据集的每张图像,将其裁剪成多张608×608的小图像以及生成对应的目标边界框,避免了直接训练大图像时,小目标特征表达弱的问题;在检测阶段,通过将1024×2048的待检测图像先分区检测再拼接的方式,避免了直接在大图像中检测小目标易漏检的问题,有效解决直接检测小目标效果差的问题,提升了行人小目标的检测效果,可适用范围更广,如行人、车辆、道路标识牌和交通信号灯等。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
机译: 一种基于车辆的地理语境建模系统和道路与天空的分区方法,该方法通过使用能够从当前上下文中提取道路和天空的组成图案的自适应模式匹配来进行地理环境建模和依赖于分区的自适应划分现在的情况
机译: 行人道路指南系统,行人道路指南服务方法,道路指南数据收集装置和道路指南数据收集方法
机译: 一种基于图像的特征和光流矢量的行人检测方法,摄像系统和机动车