视觉单词模型:原理、应用与发展
1. 视觉单词模型基础
1.1 星座模型中的单词共享
星座模型中,不同图像部分会关联特定的视觉单词。例如,在动物图像训练集中,某些视觉单词主要与动物面部下部相关,还有部分单词与动物侧面的腿部、物体的轮子等相关。
1.2 推理过程
在推理时,需要计算新图像数据在每个可能对象下的似然。给定新图像数据 ${f_j,x_j}
{j = 1}^{J}$,对于每个可能的对象 $w \in {1…N}$,其似然计算如下:
$$
Pr(f,X|w = n) = \prod
{j = 1}^{J} \sum_{m = 1}^{M} Pr(p_j = m|w = n)Pr(f_j|p_j = m)Pr(x_j|p_j = m) = \prod_{j = 1}^{J} \sum_{p_j = 1}^{M} Cat_{p_j}[\pi_n]Cat_{f_j}[\lambda_{p_j}]Norm_{x_{ij}}[\mu_{p_j},\Sigma_{p_j}]
$$
同时,定义合适的先验 $Pr(w)$,并使用贝叶斯规则计算后验分布:
$$
Pr(w = n|f,X) = \frac{Pr(f,X|w = n)Pr(w = n)}{\sum_{n = 1}^{N} Pr(f,X|w = n)Pr(w = n)}
$$
2. 场景模型
2.1 模型提出背景
星座模型假设图像中只有单个对象,但实际图像通常包含多个空间偏移的对象。场景模型应运而生,场景决定了不同对象出现的相对可能性。例如,办公室场景可能包含桌子、电脑和椅子,但不太可能包含老虎或冰山。
2.2 模型变量与公式
引入新的变量集 ${s_i}
{i = 1}^{I} \in {1…C}$ 表示场景选择,相关概率公式如下:
- $Pr(w
{ij}|s_i = c) = Cat_{w_{ij}}[\varphi_c]$
- $Pr(p_{ij}|w_{ij} = n) = Cat_{p_{ij}}[\pi_{wn}]$
- $Pr(f_{ij}|p_{ij} = m) = Cat_{f_{ij}}[\lambda_m]$
- $Pr(x_{ij}|p_{ij} = m) = Norm_{x_{ij}}[\mu^{(w)}_n + \mu^{(p)}_m,\Sigma^{(w)}_n + \Sigma^{(p)}_m]$
每个单词有对象标签 ${w_{ij}} {i = 1,j = 1}^{I,J}$,场景标签 ${s_i}$ 决定每个对象出现的相对倾向,其概率存储在分类参数 ${\varphi_c} {c = 1}^{C}$ 中。每个对象类型有正态分布的位置,每个对象定义了共享部分的概率分布,部分位置相对于对象位置测量。
2.3 学习与推理算法
学习和推理算法的原理与星座模型相同,通过吉布斯采样从隐藏变量 $w_{ij}$ 和 $p_{ij}$ 的后验分布中生成一系列样本,并根据样本更新均值和协方差。
2.4 场景模型示例
场景模型能将场景解析为多个可能共现且空间配置合理的对象。例如,在街道图像和办公室场景图像的解析中,场景模型比词袋模型表现更好,词袋模型因缺乏空间信息会出现一些基本错误。
3. 应用案例
3.1 Video Google
3.1.1 系统概述
Video Google 基于词袋模型,能根据视觉查询高效检索电影帧。用户在视频帧中绘制感兴趣对象的边界框,系统返回包含相同对象的其他图像。
3.1.2 操作步骤
- 特征定位 :识别视频每帧中的特征位置,并在多帧中跟踪这些特征位置,若无法跟踪则舍弃。
- 特征描述 :使用每个跟踪的平均 SIFT 描述符表示特征邻域内的图像内容。
- 视觉单词生成 :使用 K - means 对描述符进行聚类,创建约 6,000 - 10,000 个可能的视觉单词。
- 特征分配 :根据特征到最近聚类的距离将每个特征分配到一个视觉单词。
- 图像表征 :用包含每个视觉单词出现频率的向量表征每个图像或区域。
- 查询检索 :系统接收到查询后,将识别区域的向量与剩余视频流中每个潜在区域的向量进行比较,检索最接近的区域。
3.1.3 优化措施
- 单词筛选 :丢弃频率最高的 5% 和最低的 10% 的单词,消除常见且无区分度的单词和罕见且检索效率低的单词。
- 距离加权 :使用词频 - 逆文档频率方案对距离度量进行加权,单词在数据库中越罕见且在该区域使用越频繁,权重越高。
- 空间一致性重排 :若视觉单词的空间排列相似,则匹配更可靠,最终检索结果根据与查询的空间一致性重新排序。
3.2 动作识别
3.2.1 操作步骤
- 特征点检测 :使用 Harris 角点检测器的时空扩展在视频帧中查找兴趣点,并在每个点周围的多个尺度上提取描述符,消除镜头边界处的检测结果。
- 描述符计算 :计算围绕这些特征点的时空体积的基于直方图的描述符,可基于方向梯度直方图(HOG)描述符或局部运动直方图。
- 聚类与特征表示 :使用 K - means 算法对训练数据中的 100,000 个描述符子集进行聚类,创建 4000 个聚类,测试和训练数据中的每个特征用最近聚类中心的索引表示。
- 特征分箱 :将量化后的特征索引在多个不同的时空窗口中进行分箱。
- 动作分类 :基于一对多的二分类器进行动作决策,每个动作单独考虑并判断是否存在,核化二分类器结合两种不同特征类型和不同时空窗口的信息。
3.2.2 实验结果
在 KTH 数据库上,该方法对六种动作的分类准确率平均达到 91.8%,主要混淆发生在慢跑和跑步之间。在包含电影序列中八种不同动作的更复杂数据库上,性能有所下降,但仍显著优于随机猜测。
4. 总结与展望
4.1 模型优缺点
词袋特征模型、潜在狄利克雷分配和单作者 - 主题模型能有效识别对象,但无法明确对象在图像中的位置。星座模型允许对象部分具有空间关系,场景模型将场景描述为位移部分的集合,在一定程度上弥补了这一不足。
4.2 发展趋势
近年来,动作识别算法的测试数据从专门捕获的数据库逐渐发展到电影片段和完全无约束的视频片段。当前的主导方法是基于能捕捉场景上下文和动作本身的视觉单词。同时,研究重点逐渐转向解决管道中的各种弱点,如初始向量量化步骤的随意性和规则模式问题,并且新的对象识别和场景识别数据库不断发布。
4.3 问题探讨
- 开发一种判别方法,将对象类别的概率建模为单词频率的函数。
- 证明在已知部分标签 ${p_{ij}}_{i = 1,j = 1}^{I,J}$ 的情况下,学习潜在狄利克雷分配模型的相关关系。
- 证明似然项和先验项分别由特定公式给出。
- 修改潜在狄利克雷分配的图形模型,以包含超参数 $\alpha$ 因对象标签 $w$ 不同而不同的情况。
- 写出允许每个文档有多个作者的作者 - 主题模型的生成方程,并绘制相关图形模型。
- 考虑如何修改作者 - 主题模型,使相邻视觉单词具有相同的部分标签,以及这对吉布斯采样过程的影响。
- 绘制场景模型的图形模型。
- 开发一个基于离散观察特征推断连续变量的生成模型(即使用视觉单词的回归模型)。
5. 相关模型与方法总结
5.1 词袋模型相关研究
- Sivic 和 Zisserman 引入“视觉单词”概念并与文本检索建立联系。
- Csurka 等人将词袋方法应用于对象识别。
- Sivic 等人利用概率潜在语义分析和潜在狄利克雷分配进行对象类别的无监督学习,并扩展到学习对象类别的层次结构。
- Li 和 Perona 构建了类似原始作者 - 主题模型的场景类别学习模型。
- Sudderth 等人扩展了作者 - 主题模型,包含对象空间布局信息,并对模型进行简化和扩展以处理不同数量的对象和部分。
5.2 词袋模型应用领域
词袋模型的应用包括对象识别、视频搜索、场景识别、动作识别、纹理分类和面部属性标注等。
5.3 词袋模型变体
判别方法通常比生成模型性能更好。Grauman 和 Darrell 引入金字塔匹配核,将高维特征空间中的无序数据映射到多分辨率直方图,并在该空间中计算加权直方图交集,Lazebnik 等人将此思想扩展到图像的空间域。
5.4 管道优化与研究趋势
Yang 等人和 Zhang 等人对管道的各个部分(如匹配核、兴趣点检测器、聚类方法)对对象识别结果的影响进行了定量比较。当前研究重点是解决管道中的弱点,如初始向量量化的随意性和规则模式问题,同时新的数据库不断发布以推动研究向更现实的规模发展。
6. 流程图
graph LR
classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px;
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
classDef decision fill:#FFF6CC,stroke:#FFBC52,stroke-width:2px;
A([开始]):::startend --> B(特征定位):::process
B --> C(特征描述):::process
C --> D(视觉单词生成):::process
D --> E(特征分配):::process
E --> F(图像表征):::process
F --> G{是否有查询}:::decision
G -- 是 --> H(查询检索):::process
G -- 否 --> F
H --> I(优化措施):::process
I --> J([结束]):::startend
该流程图展示了 Video Google 系统的主要操作步骤,从特征定位开始,经过一系列处理步骤,最终根据是否有查询进行检索和优化。
7. 表格
| 应用场景 | 操作步骤 | 优化措施 |
|---|---|---|
| Video Google | 特征定位、特征描述、视觉单词生成、特征分配、图像表征、查询检索 | 单词筛选、距离加权、空间一致性重排 |
| 动作识别 | 特征点检测、描述符计算、聚类与特征表示、特征分箱、动作分类 | 无 |
此表格总结了 Video Google 和动作识别两个应用场景的操作步骤和优化措施,方便对比和理解。
8. 模型深入分析
8.1 星座模型与场景模型对比
| 模型 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|
| 星座模型 | 允许对象部分具有空间关系,能一定程度上描述对象结构 | 假设图像中只有单个对象,无法处理多对象场景 | 图像中对象单一的情况 |
| 场景模型 | 能处理包含多个空间偏移对象的场景,考虑了场景对对象出现概率的影响 | 模型复杂度相对较高 | 真实世界中常见的多对象场景 |
8.2 不同模型在动作识别中的表现
在动作识别领域,不同模型有着不同的表现。早期在专门捕获的数据库中,基于视觉单词的模型就能取得较好的效果。随着数据复杂度的增加,如在电影片段和无约束视频片段中,基于能捕捉场景上下文和动作本身的视觉单词的模型逐渐成为主导。而使用显式部分的模型在某些特定场景下可能表现更好,但在复杂场景下适应性较差。
9. 操作步骤详细解析
9.1 Video Google 操作流程解析
graph LR
classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px;
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
classDef decision fill:#FFF6CC,stroke:#FFBC52,stroke-width:2px;
A([开始]):::startend --> B(识别视频帧特征位置):::process
B --> C{能否跟踪特征位置}:::decision
C -- 是 --> D(计算平均 SIFT 描述符):::process
C -- 否 --> B
D --> E(K - means 聚类生成视觉单词):::process
E --> F(特征分配到视觉单词):::process
F --> G(用向量表征图像或区域):::process
G --> H{是否有查询}:::decision
H -- 是 --> I(比较向量进行检索):::process
H -- 否 --> G
I --> J(单词筛选):::process
J --> K(距离加权):::process
K --> L(空间一致性重排):::process
L --> M([结束]):::startend
这个流程图详细展示了 Video Google 系统从特征定位到最终检索结果重排的整个操作流程。具体步骤如下:
1.
特征定位
:识别视频每帧中的特征位置,并尝试在多帧中跟踪这些位置。如果无法跟踪,则返回重新识别特征位置。
2.
特征描述
:对于能够跟踪的特征位置,计算其平均 SIFT 描述符。
3.
视觉单词生成
:使用 K - means 算法对描述符进行聚类,生成约 6,000 - 10,000 个视觉单词。
4.
特征分配
:根据特征到最近聚类中心的距离,将每个特征分配到一个视觉单词。
5.
图像表征
:用包含每个视觉单词出现频率的向量来表征每个图像或区域。
6.
查询判断
:判断是否有用户的查询。如果有,则进行下一步;如果没有,则继续等待查询。
7.
查询检索
:将识别区域的向量与剩余视频流中每个潜在区域的向量进行比较,检索最接近的区域。
8.
优化处理
:
-
单词筛选
:丢弃频率最高的 5% 和最低的 10% 的单词。
-
距离加权
:使用词频 - 逆文档频率方案对距离度量进行加权。
-
空间一致性重排
:根据视觉单词的空间排列与查询的一致性对检索结果进行重排。
9.2 动作识别操作流程解析
graph LR
classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px;
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
classDef decision fill:#FFF6CC,stroke:#FFBC52,stroke-width:2px;
A([开始]):::startend --> B(查找视频帧兴趣点):::process
B --> C(提取多尺度描述符):::process
C --> D{是否在镜头边界}:::decision
D -- 是 --> B
D -- 否 --> E(计算直方图描述符):::process
E --> F(K - means 聚类):::process
F --> G(特征用聚类索引表示):::process
G --> H(特征分箱):::process
H --> I(一对多二分类):::process
I --> J([结束]):::startend
该流程图展示了动作识别的操作流程,具体步骤如下:
1.
特征点检测
:使用 Harris 角点检测器的时空扩展在视频帧中查找兴趣点。
2.
描述符提取
:在每个兴趣点周围的多个尺度上提取描述符。
3.
边界判断
:判断检测结果是否在镜头边界。如果是,则返回重新查找兴趣点;如果不是,则进行下一步。
4.
描述符计算
:计算围绕这些特征点的时空体积的基于直方图的描述符。
5.
聚类处理
:使用 K - means 算法对训练数据中的 100,000 个描述符子集进行聚类,创建 4000 个聚类。
6.
特征表示
:测试和训练数据中的每个特征用最近聚类中心的索引表示。
7.
特征分箱
:将量化后的特征索引在多个不同的时空窗口中进行分箱。
8.
动作分类
:基于一对多的二分类器进行动作决策,每个动作单独考虑并判断是否存在。
10. 未来研究方向
10.1 模型改进
- 进一步优化现有模型,减少初始向量量化步骤的随意性,提高模型对规则模式的处理能力。
- 探索新的模型结构,结合更多的上下文信息和语义信息,提高模型的性能和泛化能力。
10.2 应用拓展
- 将视觉单词模型应用到更多的领域,如医疗图像分析、自动驾驶等。
- 开发基于视觉单词模型的实时应用系统,提高系统的响应速度和处理效率。
10.3 数据资源
- 构建更多大规模、高质量的数据集,包含更丰富的场景和对象信息,以推动模型的发展。
- 研究数据增强和数据预处理技术,提高数据的利用率和模型的训练效果。
11. 问题解答思路探讨
11.1 判别方法开发
可以考虑使用逻辑回归、支持向量机等常见的判别模型,将对象类别的概率建模为单词频率的函数。具体步骤如下:
1. 收集训练数据,包含视觉单词频率和对应的对象类别标签。
2. 选择合适的判别模型,如逻辑回归。
3. 使用训练数据对模型进行训练,调整模型参数。
4. 使用测试数据对训练好的模型进行评估,根据评估结果进行模型优化。
11.2 潜在狄利克雷分配模型证明
对于证明在已知部分标签 ${p_{ij}}_{i = 1,j = 1}^{I,J}$ 的情况下学习潜在狄利克雷分配模型的相关关系,可以从模型的定义和概率公式出发,利用概率论和统计学的知识进行推导。具体过程可能涉及到贝叶斯定理、期望最大化算法等。
11.3 似然项和先验项证明
证明似然项和先验项分别由特定公式给出,需要深入理解模型的概率分布和假设,结合概率论的基本原理进行推导。可以参考相关的文献和资料,学习类似模型的证明方法。
11.4 图形模型修改
修改潜在狄利克雷分配的图形模型以包含超参数 $\alpha$ 因对象标签 $w$ 不同而不同的情况,需要在原有的图形模型基础上,对与 $\alpha$ 相关的节点和边进行调整。可以先画出原有的图形模型,然后根据新的条件进行修改。
11.5 生成方程和图形模型绘制
写出允许每个文档有多个作者的作者 - 主题模型的生成方程,并绘制相关图形模型,需要明确模型的生成过程和变量之间的关系。可以先定义模型的变量和参数,然后根据生成过程写出生成方程,最后根据方程绘制图形模型。
11.6 作者 - 主题模型修改
考虑如何修改作者 - 主题模型,使相邻视觉单词具有相同的部分标签,可以在模型中引入相邻关系的约束条件。这可能会影响吉布斯采样过程,需要对采样步骤进行相应的调整。具体来说,可以在采样时增加对相邻部分标签的考虑,提高采样的准确性。
11.7 场景模型图形绘制
绘制场景模型的图形模型,需要明确模型中的变量和它们之间的依赖关系。可以先列出模型的变量和概率公式,然后根据这些信息绘制图形模型,清晰地展示变量之间的关系。
11.8 回归模型开发
开发一个基于离散观察特征推断连续变量的生成模型(即使用视觉单词的回归模型),可以借鉴现有的回归模型和生成模型的思想。例如,可以使用线性回归、神经网络等模型,将视觉单词作为输入,连续变量作为输出,进行模型的训练和预测。
超级会员免费看
1273

被折叠的 条评论
为什么被折叠?



