CN115797631A - 一种不同行驶方向的道路范围1+1分割方法 - Google Patents
一种不同行驶方向的道路范围1+1分割方法 Download PDFInfo
- Publication number
- CN115797631A CN115797631A CN202211525511.6A CN202211525511A CN115797631A CN 115797631 A CN115797631 A CN 115797631A CN 202211525511 A CN202211525511 A CN 202211525511A CN 115797631 A CN115797631 A CN 115797631A
- Authority
- CN
- China
- Prior art keywords
- mask
- area
- ratio
- road
- frame
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 35
- 230000011218 segmentation Effects 0.000 claims abstract description 32
- 238000013136 deep learning model Methods 0.000 claims abstract description 7
- 230000006870 function Effects 0.000 claims description 13
- 238000013135 deep learning Methods 0.000 claims description 12
- 230000010339 dilation Effects 0.000 claims description 11
- 238000001914 filtration Methods 0.000 claims description 8
- 239000011159 matrix material Substances 0.000 claims description 7
- 230000008569 process Effects 0.000 claims description 5
- 238000012935 Averaging Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 10
- 238000005516 engineering process Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02T—CLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO TRANSPORTATION
- Y02T10/00—Road transport of goods or passengers
- Y02T10/10—Internal combustion engine [ICE] based vehicles
- Y02T10/40—Engine management systems
Landscapes
- Traffic Control Systems (AREA)
- Image Analysis (AREA)
Abstract
一种不同行驶方向的道路范围1+1分割方法,利用深度学习模型得到图像中道路的粗糙分割掩码mask_dl;利用传统算法获取图像的纹理特征;得到优化后的掩码mask;对优化后的mask进行逐级的膨胀;提取每个mask_dk中的所有离散区域,得到comp_map_mask_dk;为该帧图像中道路分割的comp_map_road_mask;计算视频流中第一帧图像不同ID区域的正确行驶方向;进行前后帧车道范围内ID的匹配。本发明通过不断合并优化后的分割掩码内部的区域得到包含不同行驶方向的分割掩码,根据预先定义的正确行驶方向以及不同帧之间分割掩码的重叠关系对视频帧中的道路分割掩码进行匹配,并完成逆行判断。
Description
技术领域
本发明属于智能交通系统技术领域,具体地,涉及一种不同行驶方向的道路范围1+1分割方法。
背景技术
传统的道路交通管制方法存在着人力成本高、作业效率低、容易受气候条件影响等一系列问题。而随着计算机视觉算法的不断成熟,基于机器学习和深度学习的交通执法管理系统具有全自动化、全天候、高速度响应的优势。道路范围的分割作为交通执法管理系统中的基础,其作用是对道路范围和非道路范围之间进行区分,以协助后续的决策。
目前现有的道路范围分割技术主要包括基于传统算法的和基于深度学习算法的两种。基于传统算法的道路分割容易受外界光照强度、背景复杂度等因素的影响。而基于深度学习算法的道路分割在训练阶段需要满足数据量大、数据覆盖场景丰富等要求。并且基于深度学习算法的道路分割很难将不同行驶方向的道路进行区分,因此诸如在判断是否有逆行、获取某段道路范围内的行驶方向等任务中仅依赖基于深度学习算法的道路分割很难满足需求。
发明内容
发明目的:本发明的目的是提供一种不同行驶方向的道路范围1+1分割方法,解决现有技术中基于传统算法的和基于深度学习算法均难达到道路准确分割的问题。
技术方案:本发明提供了一种不同行驶方向的道路范围1+1分割方法,包括如下步骤:
步骤S1:针对视频流中的某一帧图像,利用深度学习模型得到该图像中道路的粗糙分割掩码mask_dl;
步骤S2:利用传统算法获取该图像的纹理特征,纹理特征中平滑的零碎区域组成道路的初始掩码mask_texture;
步骤S3:利用mask_dl去除mask_texture中道路范围之外的掩码,得到优化后的掩码mask;
步骤S4:对优化后的mask进行逐级的膨胀,使得mask中离散的区域进行合并,得到不同膨胀核对应的mask_dk;
步骤S5:提取每个mask_dk中的所有离散区域,并为这些区域赋予不同的ID,得到comp_map_mask_dk;
步骤S6:终止膨胀时前一级膨胀核对应的comp_map_mask_dk为该帧图像中道路分割的comp_map_road_mask;
步骤S7:计算视频流中第一帧图像不同ID区域的正确行驶方向;
步骤S8:进行前后帧车道范围内ID的匹配,以及判断是否有逆行的车辆,并更新后一帧ID范围内的正确行驶方向。
进一步的,上述的不同行驶方向的道路范围1+1分割方法,所述步骤S1,包括:通过训练少量数据的深度学习分割模型得到道路的大致范围。
进一步的,上述的不同行驶方向的道路范围1+1分割方法,所述步骤S2,包括:利用灰度共生矩阵得到道路的纹理特征。
进一步的,上述的不同行驶方向的道路范围1+1分割方法,上述利用灰度共生矩阵获取纹理特征对应掩码的步骤具体包括:
S21:对原始帧图像进行灰度化,并设置不同的像素区间对灰度图进行二值化,灰度图中像素属于该区间,则该区间的值为1,否则为0,得到不同的mask_b,接着对所有的mask_b进行滤波,使得每个mask_b中周围1越多的位置值越大,值越大的位置代表该位置所属区域的纹理越平滑;
S22:将滤波后的每个mask_b中的值归一化到像素值范围0-255,并对所有的mask_b进行直方图统计,直方图中每个值的索引代表了一个平滑区域的大小,而每个值代表了该大小区域的个数,因此最大值对应的平滑区域是个数最多的平滑区域,将mask_b中等于最大值索引的位置置1,其余位置置0得到最终二值化的mask_texture。
进一步的,上述的不同行驶方向的道路范围1+1分割方法,所述步骤S3,包括:将初始掩码mask_texture中mask_dl为0的部分置0。
进一步的,上述的不同行驶方向的道路范围1+1分割方法,所述步骤S4,包括:利用K=10,20,以此类推等不同的膨胀核对初始掩码mask_texture进行膨胀。
进一步的,上述的不同行驶方向的道路范围1+1分割方法,所述步骤S5,包括:得到comp_map_mask_dk的步骤具体包括:
S51:利用opencv中的findContours函数和convexHull函数获取mask_dk二值化后掩码中所有离散区域的外轮廓,以及外轮廓对应的凸包;
S52:利用opencv中的fillPoly函数分别为每个外轮廓对应的凸包进行区域填充,并为所有的填充区域赋予不同的ID得到comp_map_mask_dk。
进一步的,上述的不同行驶方向的道路范围1+1分割方法,所述步骤S6,包括:判断终止膨胀的步骤具体包括:
S61:记每一个comp_map_mask_dk中各元素的区域为component_i;
S62:每一级膨胀,计算对应的comp_map_mask_dk中最大的n_empty_ratio,n_empty_ratio为component_i_2的面积 - component_i_2中包含的component_i_1的面积/component_i_2的面积 ,并与前一级对应的comp_map_mask_dk中最大的n_empty_ratio比较;
S63:每一级膨胀,计算对应的comp_map_mask_dk中最大的component_i_2_ratio,component_i_2_ratio为component_i_2的面积 / comp_map_mask_dk中所有component_i_2的面积和;
S64:若n_empty_ratio的比值和component_i_2_ratio的比值两者中有其一个大于给定的阈值,则视为存在不属于同一行驶方向的区域进行了合并,即终止膨胀,否则,继续膨胀过程。
进一步的,上述的不同行驶方向的道路范围1+1分割方法,所述步骤S7,包括:取当前帧下每个ID区域内所有车辆行驶方向偏转角的均值记为对应ID区域的正确行驶方向。
进一步的,上述的不同行驶方向的道路范围1+1分割方法,上述步骤S8中前后帧车道范围内ID的匹配,以及计算后一帧ID范围内正确的行驶方向具体的包括:
S81:依次取视频流中的前后两帧,分别求当前帧的ID_2中每个元素与前一帧的ID_1中每个元素的occupancy1_ratio和occupancy2_ratio,occupancy1_ratio为ID_2中元素与ID_1中元素的面积的交集 / ID_1中元素的面积,occupancy2_ratio为ID_2中元素与ID_1中元素的交集/ ID_2中元素的面积;
S82:依次取视频流中的前后两帧,计算前一帧的ID_1中每个元素的面积组成的size_1和当前帧的ID_2中每个元素的面积组成的size_2;
S83:根据得到的occupancy1_ratio和occupancy2_ratio以及给定的阈值occupancy_ratio分别为ID_1中每个元素寻找ID_2中匹配的元素,以及为ID_2中每个元素寻找ID_1中匹配的元素;
S84:若ID_1中每个元素和ID_2中每个元素均未找到匹配的元素,则重新将当前帧的所有ID设为参考ID,并将每个ID区域内所有车辆行驶方向偏转角的均值记为对应ID区域的正确行驶方向,若ID_1中或ID_2中存在没有找到匹配对象的元素,并且其面积比大于给定的阈值iso_size_ratio,则重新将当前帧的ID设为参考ID,并将每个ID区域内所有车辆行驶方向偏转角的均值记为对应ID区域的正确行驶方向,面积比=该元素的面积 / 该元素所属帧中所有元素的面积和;
S85:根据得到的size_2以及给定的阈值combined_size_ratio,判断当前帧的ID_2中是否有合并后元素过大的情况,若合并后的元素面积比上当前帧的所有元素面积和大于给定的阈值combined_size_ratio,则重新将当前帧的所有ID设为参考ID,并将每个ID区域内所有车辆行驶方向偏转角的均值记为对应ID区域的正确行驶方向;
S86:根据ID_2中每个元素和ID_1中元素的匹配关系获得新的new_ID_2 ,并判断new_ID_2 中每个元素的凸包面积比上每个元素的面积convex_fat_ratio是否大于给定的阈值,若存在某个元素的convex_fat_ratio大于给定的阈值,则重新将当前帧的所有ID设为参考ID,并将每个ID区域内所有车辆行驶方向偏转角的均值记为对应ID区域的正确行驶方向;
S87:若以上情况均没有导致重新将当前帧的所有ID设为参考ID,则更新当前帧的ID_2为new_ID_2;S88:对new_ID_2中每个ID区域内所有车辆行驶方向偏转角与上一帧该ID区域的正确行驶方向估计值作差再取绝对值,绝对值大于给定阈值的车辆认定为逆行车辆;
S89:将当前ID区域内逆行车辆滤除后,对该ID区域内剩余车辆行驶方向偏转角求均值,该均值与上一帧该ID区域的正确行驶方向估计值进行加权平均,以该加权平均值作为当前ID区域的正确行驶方向。
上述技术方案可以看出,本发明具有如下有益效果:本发明所述的不同行驶方向的道路范围1+1分割方法,为了获得更好的道路范围分割效果,以及将不同行驶方向的道路进行区分,本发明通过结合深度学习算法和传统算法对道路范围进行分割。具体地,首先通过深度学习算法得到粗糙的道路分割掩码,同时利用传统算法中的纹理提取获得道路的纹理信息,并根据纹理阈值得到零碎的道路分割掩码;然后利用粗糙的道路分割掩码对零碎的道路分割掩码进行优化;接着,通过不断合并优化后的分割掩码内部的区域得到包含不同行驶方向的分割掩码。最终,根据预先定义的正确行驶方向以及不同帧之间分割掩码的重叠关系对视频帧中的道路分割掩码进行匹配,并完成逆行判断。
附图说明
图1为本发明所述原始视频流图;
图2为本发明所述深度学习粗糙分割掩码mask_dl;
图3为本发明所述纹理特征初始分割掩码mask_texture;
图4为本发明所述优化掩码mask;
图5为本发明所述不同ID区域的comp_map_road_mask;
图6为本发明所述初始帧的ID展示图;
图7为本发明所述ID匹配前后的展示图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
实施例
本发明的一种不同行驶方向的道路范围1+1分割方法,包括如下步骤:
步骤S1:针对视频流中的某一帧图像,利用深度学习模型得到该图像中道路的粗糙分割掩码mask_dl;
步骤S2:利用传统算法获取该图像的纹理特征,纹理特征中较平滑的零碎区域组成道路的初始掩码mask_texture;
步骤S3:利用mask_dl去除mask_texture中道路范围之外的掩码,得到优化后的掩码mask;
步骤S4:对优化后的mask进行逐级的膨胀,使得mask中离散的区域进行合并,得到不同膨胀核对应的mask_dk;
步骤S5:提取每个mask_dk中的所有离散区域,并为这些区域赋予不同的ID,得到comp_map_mask_dk;
步骤S6:终止膨胀时前一级膨胀核对应的comp_map_mask_dk为该帧图像中道路分割的comp_map_road_mask;
步骤S7:计算视频流中第一帧图像不同ID区域的正确行驶方向;
步骤S8:进行前后帧车道范围内ID的匹配,以及判断是否有逆行的车辆,并更新后一帧ID范围内的正确行驶方向。
其中,上述步骤S1中,包括:通过训练少量数据的深度学习分割模型得到道路的大致范围。上述步骤S2中,包括:利用灰度共生矩阵得到道路的纹理特征。
上述利用灰度共生矩阵得到道路的纹理特征步骤包括:
S21:对原始帧图像进行灰度化,并设置不同的像素区间对灰度图进行二值化(灰度图中像素属于该区间,则该区间的值为1,否则为0)得到不同的mask_b,接着对所有的mask_b进行滤波,使得每个mask_b中周围1越多的位置值越大。值越大的位置代表该位置所属区域的纹理越平滑;
S22:将滤波后的每个mask_b中的值归一化到像素值范围(0-255),并对所有的mask_b进行直方图统计,直方图中每个值的索引代表了一个平滑区域的大小,而每个值代表了该大小区域的个数。因此最大值对应的平滑区域是个数最多的平滑区域。将mask_b中等于最大值索引的位置置1,其余位置置0得到最终二值化的mask_texture。
上述步骤S3,包括:将初始掩码mask_texture中mask_dl为0的部分置0。
上述步骤S4,包括:利用K=10,20,依次类推等不同的膨胀核对初始掩码mask_texture进行膨胀。
上述步骤S5,得到comp_map_mask_dk的步骤包括:
S51:利用opencv中的findContours函数和convexHull函数获取mask_dk二值化后掩码中所有离散区域的外轮廓,以及外轮廓对应的凸包;
S52:利用opencv中的fillPoly函数分别为每个外轮廓对应的凸包进行区域填充,并为所有的填充区域赋予不同的ID得到comp_map_mask_dk。
上述步骤S6,包括:判断终止膨胀的步骤包括:
S61:记每一个comp_map_mask_dk中各元素的区域为component_i(i=0,1,2....n,n为离散区域的个数);
S62:每一级膨胀,计算对应的comp_map_mask_dk中最大的n_empty_ratio((component_i_2的面积 - component_i_2中包含的component_i_1的面积)/ component_i_2的面积 ),并与前一级对应的comp_map_mask_dk中最大的n_empty_ratio比较;
S63:每一级膨胀,计算对应的comp_map_mask_dk中最大的component_i_2_ratio,component_i_2_ratio为component_i_2的面积 / comp_map_mask_dk中所有component_i_2的面积和;
S64:若n_empty_ratio的比值和component_i_2_ratio的比值两者中有其一个大于给定的阈值,则视为存在不属于同一行驶方向的区域进行了合并,即终止膨胀。否则,继续膨胀过程。
上述步骤S7,包括:取当前帧下每个ID区域内所有车辆行驶方向偏转角的均值记为对应ID区域的正确行驶方向。
上述步骤S8,包括:进行前后帧车道范围内ID的匹配,以及判断是否有逆行的车辆,并更新后一帧ID范围内的正确行驶方向的步骤包括:
S81:依次取视频流中的前后两帧,分别求当前帧的ID_2中每个元素与前一帧的ID_1中每个元素的occupancy1_ratio(ID_2中元素与ID_1中元素的面积的交集 / ID_1中元素的面积)和occupancy2_ratio(ID_2中元素与ID_1中元素的交集 / ID_2中元素的面积);
S82:依次取视频流中的前后两帧,计算前一帧的ID_1中每个元素的面积组成的size_1,和当前帧的ID_2中每个元素的面积组成的size_2;
S83:根据得到的occupancy1_ratio和occupancy2_ratio以及给定的阈值occupancy_ratio分别为ID_1中每个元素寻找ID_2中匹配的元素,以及为ID_2中每个元素寻找ID_1中匹配的元素;
S84:若ID_1中每个元素和ID_2中每个元素均未找到匹配的元素,则重新将当前帧的所有ID设为参考ID,并将每个ID区域内所有车辆行驶方向偏转角的均值记为对应ID区域的正确行驶方向。若ID_1中或ID_2中存在没有找到匹配对象的元素,并且其面积比(该元素的面积 / 该元素所属帧中所有元素的面积和)大于给定的阈值iso_size_ratio,则重新将当前帧的ID设为参考ID,并将每个ID区域内所有车辆行驶方向偏转角的均值记为对应ID区域的正确行驶方向;
S85:根据得到的size_2以及给定的阈值combined_size_ratio,判断当前帧的ID_2中是否有合并后元素过大的情况。具体的,若合并后的元素面积比上当前帧的所有元素面积和大于给定的阈值combined_size_ratio,则重新将当前帧的所有ID设为参考ID,并将每个ID区域内所有车辆行驶方向偏转角的均值记为对应ID区域的正确行驶方向;
S86:根据ID_2中每个元素和ID_1中元素的匹配关系获得新的new_ID_2 ,并判断new_ID_2 中每个元素的凸包面积比上每个元素的面积(convex_fat_ratio)是否大于给定的阈值,若存在某个元素的convex_fat_ratio大于给定的阈值,则重新将当前帧的所有ID设为参考ID,并将每个ID区域内所有车辆行驶方向偏转角的均值记为对应ID区域的正确行驶方向;
S87:若以上情况均没有导致重新将当前帧的所有ID设为参考ID,则更新当前帧的ID_2为new_ID_2;
S88:对new_ID_2中每个ID区域内所有车辆行驶方向偏转角与上一帧该ID区域的正确行驶方向估计值作差再取绝对值,绝对值大于给定阈值的车辆认定为逆行车辆;
S89:将当前ID区域内逆行车辆滤除后,对该ID区域内剩余车辆行驶方向偏转角求均值,该均值与上一帧该ID区域的正确行驶方向估计值进行加权平均,以该加权平均值作为当前ID区域的正确行驶方向。
下面以判断是否有车辆逆行任务中对不同行驶方向的道路进行分割为例,详细描述本实施例的不同行驶方向的道路范围1+1分割。
首先,针对视频流中的每一帧图像(如图1所示),利用深度学习模型(该深度学习模型是通过少量的数据训练得到的,该模型能获取道路的大致范围,但不能将不同的车道进行区分)得到该图像中道路的粗糙分割掩码mask_dl(如图2所示);同时利用传统算法(如灰度共生矩阵)获取该图像的纹理特征,根据道路中车道纹理平滑的特点保留纹理特征中较平滑的零碎区域,这些零碎区域组成的掩码即为道路的初始掩码mask_texture(如图3所示);接着利用mask_dl去除mask_texture中道路范围之外的掩码,从而得到优化后的掩码mask(如图4所示)。具体地,获得初始掩码mask_texture的过程如下:对原始帧图像进行灰度化,并设置不同的像素区间对灰度图进行二值化(灰度图中像素属于该区间,则该区间的值为1,否则为0)得到不同的mask_b,接着对所有的mask_b进行滤波,使得每个mask_b中周围1越多的位置值越大。值越大的位置代表该位置所属区域的纹理越平滑。将滤波后的每个mask_b中的值归一化到像素值范围(0-255),并对所有的mask_b进行直方图统计,直方图中每个值的索引代表了一个平滑区域的大小,而每个值代表了该大小区域的个数。因此最大值对应的平滑区域是个数最多的平滑区域。将mask_b中等于最大值索引的位置置1,其余位置置0得到最终二值化的mask_texture。
然后,对优化后的mask进行逐级(膨胀核k=10,20,......)的膨胀,使得mask中离散的区域进行合并,得到不同膨胀核对应的mask_dk。提取每个mask_dk中的所有离散区域,并为这些区域赋予不同的ID,得到comp_map_mask_dk。当comp_map_mask_dk中不属于同一行驶方向的ID区域刚开始聚集在一起时终止膨胀。具体地,逐级膨胀过程中,每次以不同的膨胀核对优化后的mask进行膨胀,得到不同的mask_dk(k=10,20,......)。得到的mask_dk利用opencv中的findContours函数和convexHull函数获取二值化后掩码中所有离散区域的外轮廓以及外轮廓对应的凸包。并利用opencv中的fillPoly函数分别为每个外轮廓对应的凸包进行区域填充并为所有的填充区域赋予不同的ID得到comp_map_mask_dk。记每一个comp_map_mask_dk中各元素的区域为component_i(i=0,1,2....n, n为离散区域的个数),后一级膨胀核对应的comp_map_mask_dk中的component_i_2是由前一级膨胀核对应的comp_map_mask_dk中若干个component_i_1组成的。当某一级膨胀核对应的comp_map_mask_dk中最大的n_empty_ratio((component_i_2的面积 - component_i_2中包含的component_i_1的面积)/ component_i_2的面积 )比上前一级膨胀核对应的comp_map_mask_dk中最大的n_empty_ratio大于给定的阈值,或某一级膨胀核对应的comp_map_mask_dk中最大的component_i_2_ratio大于给定的阈值时,component_i_2_ratio为component_i_2的面积 / comp_map_mask_dk中所有component_i_2的面积和,视为存在不属于同一行驶方向的区域进行了合并,即终止膨胀。逐级膨胀的目的是恰好找到一个comp_map_mask_dk使得comp_map_mask_dk中属于同一行驶方向的ID区域尽可能的聚集在一起,而不属于同一行驶方向的ID区域是分离的。终止膨胀时的前一级膨胀核对应的comp_map_mask_dk即为该帧图像中道路分割的comp_map_road_mask(如图5所示)。
接着,为视频流中第一帧图像中不同ID区域计算正确行驶方向。具体地,取当前帧下每个ID区域内所有车辆行驶方向偏转角(通过SORT目标追踪算法获取车辆行驶方向,在像素坐标系下水平方向到车辆运动方向矢量的偏转角度,顺时针为负,逆时针为正,值域为-180度到180度)的均值记为对应ID区域的正确行驶方向。
进一步进行前后帧车道范围内ID的匹配(如图6所示)。依次取视频流中的前后两帧,分别求当前帧的ID_2中每个元素与前一帧的ID_1中每个元素的occupancy1_ratio(ID_2中元素与ID_1中元素的面积的交集 / ID_1中元素的面积)和occupancy2_ratio(ID_2中元素与ID_1中元素的交集 / ID_2中元素的面积);前一帧的ID_1中每个元素的面积组成的size_1,和当前帧的ID_2中每个元素的面积组成的size_2。根据得到的occupancy1_ratio和occupancy2_ratio以及给定的阈值occupancy_ratio分别为ID_1中每个元素寻找ID_2中匹配的元素,以及为ID_2中每个元素寻找ID_1中匹配的元素。若ID_1中每个元素和ID_2中每个元素均未找到匹配的元素,则重新将当前帧的所有ID设为参考ID,并将每个ID区域内所有车辆行驶方向偏转角的均值记为对应ID区域的正确行驶方向。若ID_1中或ID_2中存在没有找到匹配对象的元素,并且其面积比(该元素的面积 / 该元素所属帧中所有元素的面积和)大于给定的阈值iso_size_ratio,则重新将当前帧的ID设为参考ID,并将每个ID区域内所有车辆行驶方向偏转角的均值记为对应ID区域的正确行驶方向。接着,根据4中得到的size_2以及给定的阈值combined_size_ratio,判断当前帧的ID_2中是否有合并后元素过大的情况。具体的,若(合并后的元素面积 / 当前帧的所有元素面积和)大于给定的阈值combined_size_ratio,则重新将当前帧的所有ID设为参考ID,并将每个ID区域内所有车辆行驶方向偏转角的均值记为对应ID区域的正确行驶方向。最后,根据ID_2中每个元素和ID_1中元素的匹配关系获得新的new_ID_2 ,并判断new_ID_2 中每个元素的convex_fat_ratio(每个元素的凸包面积 / 每个元素的面积)是否大于给定的阈值,若存在某个元素的convex_fat_ratio大于给定的阈值,则重新将当前帧的所有ID设为参考ID,并将每个ID区域内所有车辆行驶方向偏转角的均值记为对应ID区域的正确行驶方向。若以上情况均没有导致重新将当前帧的所有ID设为参考ID,则更新当前帧的ID_2为new_ID_2。同时对new_ID_2中每个ID区域内所有车辆行驶方向偏转角与上一帧该ID区域的正确行驶方向估计值作差再取绝对值,绝对值大于给定阈值的车辆认定为逆行车辆。将当前ID区域内逆行车辆滤除后,对该ID区域内剩余车辆行驶方向偏转角求均值,该均值与上一帧该ID区域的正确行驶方向估计值进行加权平均(权重值之和为1),以该加权平均值作为当前ID区域的正确行驶方向。
后续依以上步骤迭代,进行ID的匹配以及车辆逆行的判断,并不断更新视频流不同帧图像中道路的正确行驶方向。
如下图1所示为视频流帧对应的图像,其中包含道路区域和背景区域。图2是经过少量数据训练的深度网络得到的分割掩码mask_dl,其能分割出道路的大致范围,但是会存在不同行驶方向的道路分不开的问题。图3是提取纹理特征后保留平滑区域得到的初始掩码mask_texture,其包含背景和道路区域的掩码。图4是将mask_texture中mask_dl值为0的区域置0后的掩码mask,它去掉了背景区域的掩码。图5是终止膨胀时的前一级膨胀核对应的comp_map_mask_dk,其中不同的图像标记代表了不同的ID区域。图6为视频流初始帧的道路ID匹配前后示意图,该示意图是将同一ID赋予了相同的rgb值,图中左边区域为匹配前该帧自身的ID示意图,右边是将当前帧的ID作为参考ID的示意图。图7是初始帧之后某一帧帧的道路ID匹配前后示意图,左边区域为匹配前该帧自身的ID示意图,右边是跟前一帧匹配后更新的ID示意图,由图可以看出更新前该帧从左到右ID的分别是纯色无倾斜线标记的至有倾斜线标记的,而更新后从左到右ID的标记依次是有倾斜线标记的至纯色无倾斜线标记的。当知道了第一帧的正确行驶方向和每一帧中车辆的速度后,就能对车辆是否逆行进行判断,并获得和更新所有ID区域对应的的正确行驶方向。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进,这些改进也应视为本发明的保护范围。
Claims (10)
1.一种不同行驶方向的道路范围1+1分割方法,其特征在于:包括如下步骤:
步骤S1:针对视频流中的某一帧图像,利用深度学习模型得到该图像中道路的粗糙分割掩码mask_dl;
步骤S2:利用传统算法获取该图像的纹理特征,纹理特征中平滑的零碎区域组成道路的初始掩码mask_texture;
步骤S3:利用mask_dl去除mask_texture中道路范围之外的掩码,得到优化后的掩码mask;
步骤S4:对优化后的mask进行逐级的膨胀,使得mask中离散的区域进行合并,得到不同膨胀核对应的mask_dk;
步骤S5:提取每个mask_dk中的所有离散区域,并为这些区域赋予不同的ID,得到comp_map_mask_dk;
步骤S6:终止膨胀时前一级膨胀核对应的comp_map_mask_dk为该帧图像中道路分割的comp_map_road_mask;
步骤S7:计算视频流中第一帧图像不同ID区域的正确行驶方向;
步骤S8:进行前后帧车道范围内ID的匹配,以及判断是否有逆行的车辆,并更新后一帧ID范围内的正确行驶方向。
2.根据权利要求1所述的不同行驶方向的道路范围1+1分割方法,其特征在于:所述步骤S1,包括:通过训练少量数据的深度学习分割模型得到道路的大致范围。
3.根据权利要求1所述的不同行驶方向的道路范围1+1分割方法,其特征在于:所述步骤S2,包括:利用灰度共生矩阵得到道路的纹理特征。
4.根据权利要求3所述的不同行驶方向的道路范围1+1分割方法,其特征在于:上述利用灰度共生矩阵获取纹理特征对应掩码的步骤具体包括:
S21:对原始帧图像进行灰度化,并设置不同的像素区间对灰度图进行二值化,灰度图中像素属于该区间,则该区间的值为1,否则为0,得到不同的mask_b,接着对所有的mask_b进行滤波,使得每个mask_b中周围1越多的位置值越大,值越大的位置代表该位置所属区域的纹理越平滑;
S22:将滤波后的每个mask_b中的值归一化到像素值范围0-255,并对所有的mask_b进行直方图统计,直方图中每个值的索引代表了一个平滑区域的大小,而每个值代表了该大小区域的个数,因此最大值对应的平滑区域是个数最多的平滑区域,将mask_b中等于最大值索引的位置置1,其余位置置0得到最终二值化的mask_texture。
5.根据权利要求1所述的不同行驶方向的道路范围1+1分割方法,其特征在于:所述步骤S3,包括:将初始掩码mask_texture中mask_dl为0的部分置0。
6.根据权利要求1所述的不同行驶方向的道路范围1+1分割方法,其特征在于:所述步骤S4,包括:利用K=10,20,以此类推等不同的膨胀核对初始掩码mask_texture进行膨胀。
7.根据权利要求4所述的不同行驶方向的道路范围1+1分割方法,其特征在于:所述步骤S5,包括:得到comp_map_mask_dk的步骤具体包括:
S51:利用opencv中的findContours函数和convexHull函数获取mask_dk二值化后掩码中所有离散区域的外轮廓,以及外轮廓对应的凸包;
S52:利用opencv中的fillPoly函数分别为每个外轮廓对应的凸包进行区域填充,并为所有的填充区域赋予不同的ID得到comp_map_mask_dk。
8.根据权利要求1所述的不同行驶方向的道路范围1+1分割方法,其特征在于:所述步骤S6,包括:判断终止膨胀的步骤具体包括:
S61:记每一个comp_map_mask_dk中各元素的区域为component_i;
S62:每一级膨胀,计算对应的comp_map_mask_dk中最大的n_empty_ratio,n_empty_ratio为component_i_2的面积 - component_i_2中包含的component_i_1的面积/component_i_2的面积 ,并与前一级对应的comp_map_mask_dk中最大的n_empty_ratio比较;
S63:每一级膨胀,计算对应的comp_map_mask_dk中最大的component_i_2_ratio,component_i_2_ratio为component_i_2的面积 / comp_map_mask_dk中所有component_i_2的面积和;
S64:若n_empty_ratio的比值和component_i_2_ratio的比值两者中有其一个大于给定的阈值,则视为存在不属于同一行驶方向的区域进行了合并,即终止膨胀,否则,继续膨胀过程。
9.根据权利要求1所述的不同行驶方向的道路范围1+1分割方法,其特征在于:所述步骤S7,包括:取当前帧下每个ID区域内所有车辆行驶方向偏转角的均值记为对应ID区域的正确行驶方向。
10.根据权利要求1所述的不同行驶方向的道路范围1+1分割方法,其特征在于:上述步骤S8中前后帧车道范围内ID的匹配,以及计算后一帧ID范围内正确的行驶方向具体的包括:
S81:依次取视频流中的前后两帧,分别求当前帧的ID_2中每个元素与前一帧的ID_1中每个元素的occupancy1_ratio和occupancy2_ratio,occupancy1_ratio为ID_2中元素与ID_1中元素的面积的交集 / ID_1中元素的面积,occupancy2_ratio为ID_2中元素与ID_1中元素的交集/ ID_2中元素的面积;
S82:依次取视频流中的前后两帧,计算前一帧的ID_1中每个元素的面积组成的size_1和当前帧的ID_2中每个元素的面积组成的size_2;
S83:根据得到的occupancy1_ratio和occupancy2_ratio以及给定的阈值occupancy_ratio分别为ID_1中每个元素寻找ID_2中匹配的元素,以及为ID_2中每个元素寻找ID_1中匹配的元素;
S84:若ID_1中每个元素和ID_2中每个元素均未找到匹配的元素,则重新将当前帧的所有ID设为参考ID,并将每个ID区域内所有车辆行驶方向偏转角的均值记为对应ID区域的正确行驶方向,若ID_1中或ID_2中存在没有找到匹配对象的元素,并且其面积比大于给定的阈值iso_size_ratio,则重新将当前帧的ID设为参考ID,并将每个ID区域内所有车辆行驶方向偏转角的均值记为对应ID区域的正确行驶方向,面积比=该元素的面积 / 该元素所属帧中所有元素的面积和;
S85:根据得到的size_2以及给定的阈值combined_size_ratio,判断当前帧的ID_2中是否有合并后元素过大的情况,若合并后的元素面积比上当前帧的所有元素面积和大于给定的阈值combined_size_ratio,则重新将当前帧的所有ID设为参考ID,并将每个ID区域内所有车辆行驶方向偏转角的均值记为对应ID区域的正确行驶方向;
S86:根据ID_2中每个元素和ID_1中元素的匹配关系获得新的new_ID_2 ,并判断new_ID_2 中每个元素的凸包面积比上每个元素的面积convex_fat_ratio是否大于给定的阈值,若存在某个元素的convex_fat_ratio大于给定的阈值,则重新将当前帧的所有ID设为参考ID,并将每个ID区域内所有车辆行驶方向偏转角的均值记为对应ID区域的正确行驶方向;
S87:若以上情况均没有导致重新将当前帧的所有ID设为参考ID,则更新当前帧的ID_2为new_ID_2;S88:对new_ID_2中每个ID区域内所有车辆行驶方向偏转角与上一帧该ID区域的正确行驶方向估计值作差再取绝对值,绝对值大于给定阈值的车辆认定为逆行车辆;
S89:将当前ID区域内逆行车辆滤除后,对该ID区域内剩余车辆行驶方向偏转角求均值,该均值与上一帧该ID区域的正确行驶方向估计值进行加权平均,以该加权平均值作为当前ID区域的正确行驶方向。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211525511.6A CN115797631B (zh) | 2022-12-01 | 2022-12-01 | 一种不同行驶方向的道路范围1+1分割方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211525511.6A CN115797631B (zh) | 2022-12-01 | 2022-12-01 | 一种不同行驶方向的道路范围1+1分割方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115797631A true CN115797631A (zh) | 2023-03-14 |
CN115797631B CN115797631B (zh) | 2023-12-01 |
Family
ID=85444207
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211525511.6A Active CN115797631B (zh) | 2022-12-01 | 2022-12-01 | 一种不同行驶方向的道路范围1+1分割方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115797631B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140111541A1 (en) * | 2007-03-08 | 2014-04-24 | Sync-Rx, Ltd. | Automatic identification of a tool |
WO2015010451A1 (zh) * | 2013-07-22 | 2015-01-29 | 浙江大学 | 一种从单幅图像检测道路的方法 |
CN105718870A (zh) * | 2016-01-15 | 2016-06-29 | 武汉光庭科技有限公司 | 自动驾驶中基于前向摄像头的道路标线提取方法 |
CN106570495A (zh) * | 2016-11-19 | 2017-04-19 | 南宁市浩发科技有限公司 | 一种复杂环境下的道路检测方法 |
WO2020000251A1 (zh) * | 2018-06-27 | 2020-01-02 | 潍坊学院 | 基于摄像机协同接力的路口违章视频识别方法 |
CN111191654A (zh) * | 2019-12-30 | 2020-05-22 | 重庆紫光华山智安科技有限公司 | 道路数据生成方法、装置、电子设备及存储介质 |
US20200193609A1 (en) * | 2018-12-18 | 2020-06-18 | Qualcomm Incorporated | Motion-assisted image segmentation and object detection |
CN111369572A (zh) * | 2020-02-28 | 2020-07-03 | 清华大学深圳国际研究生院 | 一种基于图像修复技术的弱监督语义分割方法和装置 |
KR102144706B1 (ko) * | 2020-03-11 | 2020-08-14 | 아주대학교산학협력단 | 합성곱 신경망 기반의 도로 검출 장치 및 방법 |
US20210225002A1 (en) * | 2021-01-28 | 2021-07-22 | Intel Corporation | Techniques for Interactive Image Segmentation Networks |
-
2022
- 2022-12-01 CN CN202211525511.6A patent/CN115797631B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140111541A1 (en) * | 2007-03-08 | 2014-04-24 | Sync-Rx, Ltd. | Automatic identification of a tool |
WO2015010451A1 (zh) * | 2013-07-22 | 2015-01-29 | 浙江大学 | 一种从单幅图像检测道路的方法 |
CN105718870A (zh) * | 2016-01-15 | 2016-06-29 | 武汉光庭科技有限公司 | 自动驾驶中基于前向摄像头的道路标线提取方法 |
CN106570495A (zh) * | 2016-11-19 | 2017-04-19 | 南宁市浩发科技有限公司 | 一种复杂环境下的道路检测方法 |
WO2020000251A1 (zh) * | 2018-06-27 | 2020-01-02 | 潍坊学院 | 基于摄像机协同接力的路口违章视频识别方法 |
US20200193609A1 (en) * | 2018-12-18 | 2020-06-18 | Qualcomm Incorporated | Motion-assisted image segmentation and object detection |
CN111191654A (zh) * | 2019-12-30 | 2020-05-22 | 重庆紫光华山智安科技有限公司 | 道路数据生成方法、装置、电子设备及存储介质 |
CN111369572A (zh) * | 2020-02-28 | 2020-07-03 | 清华大学深圳国际研究生院 | 一种基于图像修复技术的弱监督语义分割方法和装置 |
KR102144706B1 (ko) * | 2020-03-11 | 2020-08-14 | 아주대학교산학협력단 | 합성곱 신경망 기반의 도로 검출 장치 및 방법 |
US20210225002A1 (en) * | 2021-01-28 | 2021-07-22 | Intel Corporation | Techniques for Interactive Image Segmentation Networks |
Non-Patent Citations (2)
Title |
---|
MUNA KHAYYAT;: "Arabic Handwritten Text Line Extraction by Applying an Adaptive Mask to Morphological Dilation", 《2012 10TH IAPR INTERNATIONAL WORKSHOP ON DOCUMENT ANALYSIS SYSTEMS》 * |
李昕蔚;丁正彦;尚岩峰;祝永新;汪辉;钟雪霞;田犁;黄尊恺;封松林;: "一种针对路口监控图像的区域分割方法", 计算机应用与软件, no. 03 * |
Also Published As
Publication number | Publication date |
---|---|
CN115797631B (zh) | 2023-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106682586A (zh) | 一种复杂光照条件下基于视觉的实时车道线检测的方法 | |
CN104732211B (zh) | 一种基于自适应阈值的交通标志检测方法 | |
CN107895151A (zh) | 一种强光照条件下基于机器视觉的车道线检测方法 | |
CN104952256A (zh) | 一种基于视频信息的交叉口处车辆的检测方法 | |
CN110782409B (zh) | 一种去除多运动物体阴影的方法 | |
CN112819840B (zh) | 一种融合深度学习与传统处理的高精度图像实例分割方法 | |
CN102915544A (zh) | 基于纹理检测和颜色分割的视频图像运动目标提取方法 | |
CN113516853B (zh) | 一种针对复杂监控场景的多车道车流量检测方法 | |
CN109886168B (zh) | 一种基于层阶的地面交通标志识别方法 | |
CN110706235A (zh) | 一种基于双级级联分割的远红外行人检测方法 | |
CN112464731A (zh) | 一种基于图像处理的交通标志检测识别方法 | |
CN116229423A (zh) | 基于改进的Canny边缘检测算法和SVM的无人驾驶中的小目标检测方法 | |
Do et al. | Speed limit traffic sign detection and recognition based on support vector machines | |
CN112446417B (zh) | 基于多层超像素分割的纺锤形果实图像分割方法及系统 | |
CN107292898A (zh) | 一种基于hsv的车牌阴影检测和去除方法 | |
CN117173416B (zh) | 基于图像处理的铁路货运车号图像清晰化处理方法 | |
CN107832732B (zh) | 基于三叉树遍历的车道线检测方法 | |
CN107977608B (zh) | 一种应用于公路视频图像道路区域提取的方法 | |
CN109816003A (zh) | 一种基于改进hog-lbp特征的智能车辆前方多目标分类方法 | |
CN112381844B (zh) | 基于图像分块的自适应orb特征提取方法 | |
CN103065145A (zh) | 一种车辆运动阴影消除方法 | |
CN110414386B (zh) | 基于改进scnn网络的车道线检测方法 | |
CN115797631B (zh) | 一种不同行驶方向的道路范围1+1分割方法 | |
CN110751150A (zh) | 一种基于fpga的二值神经网络车牌识别方法及系统 | |
CN111985482B (zh) | 一种基于深度学习的多模式多场景的自动车牌识别方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |