|
@@ -1,2 +1,93 @@
|
|
|
# abandoned-object-detection-algo
|
|
|
|
|
|
+## 基于双背景混合高斯建模的遗留物检测
|
|
|
+
|
|
|
+### 混合高斯建模
|
|
|
+
|
|
|
+##### 基本原理:
|
|
|
+
|
|
|
+假设数据由多个高斯分布的线性组合生成;
|
|
|
+
|
|
|
+在视频图像中,利用一定数量的帧图像,为每个像素初始化**由多个高斯分布线性组合的模型**;
|
|
|
+
|
|
|
+对于每个新的检测帧,通过比对与初始化模型差异,判断是否属于**前景**,再根据策略进行**背景更新**
|
|
|
+
|
|
|
+##### 双背景建模:
|
|
|
+
|
|
|
+图中左边部分描述了双背景建模、前景检测以及遗留物提取的过程
|
|
|
+
|
|
|
+长时间背景(Long-Term background):预设较慢的更新速度,使得大部分新增加的物体都会被认为是前景;
|
|
|
+
|
|
|
+短时间背景(Short-Term background):预设较快的更新速度,使得短暂静止的物体不会被检测为前景;
|
|
|
+
|
|
|
+两者之差就认为是遗留物
|
|
|
+
|
|
|
+![alt text](image.png)
|
|
|
+
|
|
|
+##### 背景建模基本参数:
|
|
|
+
|
|
|
+```cpp
|
|
|
+double short_term_rate = 0.01; // short-term 更新速度
|
|
|
+int short_term_history = 200; // short-term history 初始化所采用的帧数
|
|
|
+double long_term_rate = 0.0005; // long-term 更新速度
|
|
|
+int long_term_history = 5000; // long-term history 初始化所采用的帧数
|
|
|
+```
|
|
|
+
|
|
|
+##### 遗留物判断逻辑:
|
|
|
+
|
|
|
+将每一个从双背景消除中提取出来的前景物,绘制一个候选框
|
|
|
+
|
|
|
+为每一个候选框构建以下结构体
|
|
|
+
|
|
|
+```cpp
|
|
|
+struct proposal{
|
|
|
+ int x, y, w, h;
|
|
|
+ int life; // 生命周期,以帧为单位
|
|
|
+ int status; // 状态,用于处理
|
|
|
+};
|
|
|
+```
|
|
|
+
|
|
|
+1. 初始化proposal list;
|
|
|
+
|
|
|
+2. 出现新的proposal时,设定life=10, status=0;
|
|
|
+
|
|
|
+3. 将该proposal与list中的每个候选框进行iou匹配:
|
|
|
+
|
|
|
+ if iou < iou_threshold:
|
|
|
+
|
|
|
+ set proposal.status = -1;认为有重复
|
|
|
+
|
|
|
+ list[i].life++; list中重叠的候选框life+1,即重复出现一帧
|
|
|
+
|
|
|
+ if list[i].status==2:
|
|
|
+
|
|
|
+ continue; 表明该框曾经被判定为遗留物,不需要再次检测
|
|
|
+
|
|
|
+ else: set list[i].status = 1;表明该框处于活跃状态
|
|
|
+
|
|
|
+ if proposal.status==0;
|
|
|
+
|
|
|
+ list.push(proposal);
|
|
|
+
|
|
|
+4. 遍历list:
|
|
|
+
|
|
|
+ if list[i].status==1 and list[i].life > life_threshold: 认为该框存在一定时间,视为遗留物
|
|
|
+
|
|
|
+ detect(list[i]);
|
|
|
+
|
|
|
+ list[i].status=2;
|
|
|
+
|
|
|
+ else:
|
|
|
+
|
|
|
+ list[i].life--
|
|
|
+
|
|
|
+ if list[i].life==0: 认为该框不活跃,即没有重复出现该候选框
|
|
|
+
|
|
|
+ list.erase(i); 移除
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|