Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
CSDN 技术社区
skill_tree_opencv
提交
f5a6bd34
S
skill_tree_opencv
项目概览
CSDN 技术社区
/
skill_tree_opencv
通知
25
Star
9
Fork
1
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
2
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
S
skill_tree_opencv
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
2
Issue
2
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
f5a6bd34
编写于
12月 13, 2021
作者:
F
feilong
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
format
上级
3cb84157
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
10 addition
and
14 deletion
+10
-14
data/1.OpenCV初阶/6.视频分析/2.目标跟踪/obj_tracker.md
data/1.OpenCV初阶/6.视频分析/2.目标跟踪/obj_tracker.md
+10
-14
未找到文件。
data/1.OpenCV初阶/6.视频分析/2.目标跟踪/obj_tracker.md
浏览文件 @
f5a6bd34
...
...
@@ -13,6 +13,7 @@
![](
pic/t_and_t+1_match.png
)
匹配过程中,目标可以分为以下三大类:
1.
`matched_tracks`
,t帧目标出现,t+1帧该目标仍然出现,算法匹配上。
2.
`unmatched_tracks`
,t帧目标出现,t+1帧该目标消失,算法未匹配上。
3.
`unmatched_detections`
,t帧目标不存在,t+1帧该目标出现,新增检测目标。
...
...
@@ -23,13 +24,13 @@
之所以要考虑以上2点,主要原因是对于连续视频帧而言,大部分检测算法基本无法做到100%连续、稳定检测,出现短暂的误检、漏检非常正常。
<br>
<br
/
>
## 题目上下文说明
**题目上下文说明**
:
现假设有以下跟踪代码,
```
```
python
# 定义跟踪算法类
class
Tracker
(
object
):
# 初始化参数
...
...
@@ -71,6 +72,7 @@ class Tracker(object):
```
其中:
1.
`self.max_age`
代表跟踪算法允许出现的最大漏检帧数
2.
`self.min_hints`
代表跟踪算法要求的最低连续匹配帧数
3.
`self.trackers`
代表跟踪算法维持的目标集合(已生成track-id)
...
...
@@ -81,12 +83,9 @@ class Tracker(object):
请你根据上面陈述补充TO-DO部分代码。
<br>
## 正确答案
```
```
python
# 更新matched_tracks
for
m
in
matched
:
self
.
trackers
[
m
[
1
]].
update
(
dets
[
m
[
0
],
:])
...
...
@@ -110,9 +109,9 @@ class Tracker(object):
self
.
trackers
.
pop
(
i
)
```
## 未考虑unmatched_detections
```
```
python
# 更新matched_tracks
for
m
in
matched
:
self
.
trackers
[
m
[
1
]].
update
(
dets
[
m
[
0
],
:])
...
...
@@ -131,10 +130,9 @@ class Tracker(object):
self
.
trackers
.
pop
(
i
)
```
## 未考虑移除长时间未检测到的缓存数据
```
```
python
# 更新matched_tracks
for
m
in
matched
:
self
.
trackers
[
m
[
1
]].
update
(
dets
[
m
[
0
],
:])
...
...
@@ -152,10 +150,9 @@ class Tracker(object):
ret
.
append
(
np
.
concatenate
((
d
,[
trk
.
id
+
1
])).
reshape
(
1
,
-
1
))
```
## 未考虑需要连续检出并匹配self.min_hints次才生效
```
```
python
# 更新matched_tracks
for
m
in
matched
:
self
.
trackers
[
m
[
1
]].
update
(
dets
[
m
[
0
],
:])
...
...
@@ -178,4 +175,3 @@ class Tracker(object):
if
(
trk
.
time_since_update
>
self
.
max_age
):
self
.
trackers
.
pop
(
i
)
```
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录