一、处理逻辑
- 背景建模得到前景 ----> 二值化标记 ---> 合并重叠框
- 由于二值化标记的局限,导致出现了很多的重叠框;
重叠框过多,在合并重叠框Merge这一步的时候举步维艰。时间消耗过长。- 计算包围框,不在Merge的范围内!计算包围框时间过长了。
- 原因分析 + 证据证明!!!
1. 证据辅助过程
现象描述的准确文件:
① 找到超过3W点时,崩溃的数据。即找到当时耗时间过长的数据段,仔细分析问题。 fg格式文件准备。
② 时间间消耗证明过程。每帧是多少时间,多少点数,时间消耗。
③ fg到Meanshift到底得到了多少个标签?(非重复标签?)又得到了到底多少个框框?其中框框是个什么情况?重叠非重叠?需要处理多少个重叠的情况?
④ Merge这一步,面对这么多个重叠的框框,需要多少时间去处理?效率怎么样?
⑤ 这两个模块到底面临了多大的限制?局限性?天花板?
⑥ 如何解决这个局限性?
时间消耗过长的现象描述:
来了一个异常帧之后,由于前景点较多。在漂移半径较小的情况下,出现了很多这样的分割区域。
- 有1300多个分割区域。(①CCL二值图标记的时间消耗;②二值图标记的标签个数问题)
- 时间消耗不是主要的,关键是标签个数是一大缺陷;导致了后续的问题
- 后续的计算包围框的算法效率太低。
- 29W个点,以及56W个点的move_points,要遍历
- for 1:max_classID=1300
for 1:move_points.size() 56W/29W
- for 1:max_classID=1300
2. 参考opencv源码 connectedComponentWithStats函数
OpenCV—连通域分析connectedComponentsWithStats()_i_chaoren的博客-CSDN博客_cv::connectedcomponentswithstats
其中,自带了这部分后处理。除了标记,也直接给出了每个标记的区域信息,rect,area,centroid等信息。
2.1 opencv源码探析
文档位置: