算法集锦 | 自动驾驶 |道路车辆检测算法
滑动窗口咱们建立了多个维度的滑动窗口,范畴从64x64到256x256像素,以测试图象与分类器,并只保存正向的展望。咱们凡是会将较大的窗口从屏幕底部滑动,由于这将对应于车辆看起来最大的位置。更小的窗口在屏幕上会滑得更高。别的,咱们还可以设置装备摆设单位格堆叠,并将其设置为1,以实现最大笼盖(即每14个像素x标准堆叠,此中标准1的最小窗口为64x64)。咱们再也不试图在y标的目的350像素如下(即屏幕上图象的更高部门)检测车辆。下图是堆叠滑动窗口的例子,单位格堆叠设置为4:
输热值图与阙值
分类器有时会对现实上不是车辆的图象举行毛病分类。为了防止在视频中高亮显示,咱们操纵了多尺寸滑动窗口所发生的冗余,并计较了分类器展望的车辆在图象中呈现的所有窗口的次数。咱们起首利用scipy.ndimage标识表记标帜具备堆叠窗口的工具。然后,咱们经由过程肯定被检测工具可以或许容纳的最小鸿沟框来提取每一个标签的位置。
咱们设置了一个阙值,并只保存图象中知足阈值的区域。经由过程实行,咱们发明阈值设置为4,就足以得到靠得住的成果。下图阐明了热图和阈值事情道理:
第一个min热图暗示原始分类器的原始检测成果,而第二个则显示阈值区域,此中赤色的强度線上百家樂,跟着堆叠窗口数目的增长而增长。右侧的最后一张min图片显示了咱们的分类器展望车辆的所有窗口。在这个例子中,咱们现实上利用了LinearSVC,但它比rbf SVC更易犯错。
帧聚合
为了进一步增强咱们的算法,咱们决议腻滑所有检测到的窗口为n帧。为此,咱们在帧(n-1)*f+1到n*f之间堆集所有检测到的窗口,此中n是一个正标量,暗示咱们地点的帧组。咱们已建立了如下类来封装检测工具:
1class DetectedObject: 2 """ 3 The DetectedObject class encapsulates information about an object identified by our detector 4 """ 5 def __init__(self, bounding _box, img_patch, frame_nb): 6 self.bounding _box = bounding_box 7 sel日本藤素,f.img _patch = img_patch 8 self.frame _nb = frame_nb 9 self.centroid = (int((bounding _box + bounding_box[ 1][ 0]) / 2), int((bounding _box + bounding_box[ 1][ 1]) / 2)) 10 self.similar_objects = []
每当咱们在组中确当前或下一个帧上检测到一个新工具时,咱们城市查抄曩昔是不是检测到雷同的工具,若是是如许,咱们会追加雷同的工具,从而在多个帧上增长这个工具的计数。在第n*f帧中,咱们只保存检测到的数目跨越m的工具(及其联系关系的鸿沟框),从而在管道中实现某种两重过滤(第一个过滤是堆叠鸿沟框的数目标阈值)。
鄙人图中,你可以看到,在一秒摆布的时候内,咱们有一个零丁的鸿沟框笼盖了两辆车。但随即,两辆车被别离开,并零丁用边框标识。
原文链接:
制冷打浆机,
台湾包车自由行游览,
揭阳防水,
頁:
[1]