Spatio-temporal LBP: VLBP and LBP-TOP 视频动态纹理特征提取系统
项目介绍
本项目是一个基于 MATLAB 开发的高级计算机视觉工具,专门用于从视频序列或三维体素数据中提取时空纹理特征。通过实现体积局部二值模式(VLBP)和基于三个正交平面的局部二值模式(LBP-TOP),系统能够捕捉视频中的静态空间分布和动态演变信息。该系统不仅提供了特征提取的核心算法,还内置了合成数据生成与多维度结果可视化功能,适用于人脸表情分析、步态识别及行为监测等研究场景。
功能特性
- 时空特征提取:完整实现 LBP-TOP 算法,从 XY(空间)、XT(水平运动)和 YT(垂直运动)三个维度描述视频特征。
- 优化算法实现:包含 VLBP 的高效简化版本,通过跨帧采样和空间邻域比较,平衡了计算复杂度和特征表达能力。
- 合成数据模拟:内置动态视频生成器,可产生具有运动轨迹和随机噪声的合成序列,便于算法验证。
- 多维可视化方案:提供包括原始帧、时空映射图、直方图统计以及三维剖面图在内的完整可视化展示。
- 灵活参数配置:支持自定义空间半径、时间半径以及采样点数,以适应不同的纹理尺度。
系统要求
- 运行环境:MATLAB R2016b 或更高版本。
- 依赖工具箱:Image Processing Toolbox(用于图像显示与基础处理)。
- 硬件建议:由于涉及三维矩阵运算,建议配备 8GB 以上内存。
运行逻辑与功能说明
主程序按照以下严格的逻辑顺序执行,确保特征提取流程的完整性:
- 参数初始化:
设定 LBP 算子的基本参数,包括在 X、Y、T 三个轴向上的半径(R)和采样点数(P)。默认配置为单位半径和 8 点采样。
- 动态视频合成:
程序会自动生成一个 64x64 像素、共 20 帧的模拟视频卷。该视频模拟了一个在平面内做椭圆轨迹运动的圆形目标,并通过加入正态分布随机噪声来模拟真实的传感器采集环境,数据最后经过归一化处理。
- LBP-TOP 特征计算:
系统将视频卷分解为三个正交平面。在 XY 平面(空间帧)计算每一帧的纹理;在 XT 平面(沿 X 轴的时间切面)捕捉水平方向的变化;在 YT 平面(沿 Y 轴的时间切面)捕捉垂直方向的变化。最后将三个平面的 LBP 直方图进行归一化并级联成一个特征向量。
- VLBP 特征计算:
执行体积 LBP 特征提取。该实现选取当前像素点及其在前后相邻帧中相同位置的点进行时间编码,并结合当前帧内的上下左右四个空间邻域点进行 6 位二进制编码,最终形成反映三维局部结构的统计分布。
- 结果综合呈现:
自动生成可视化窗口,对比展示中间帧原始图像、XT/YT 特征映射效果图、各算法生成的直方图特征分布以及视频卷的三维切片示意图。
关键算法实现细节
LBP-TOP 提取算法
该算法通过循环遍历视频空间和时间切片,对每一层切片调用 2D LBP 计算函数。直方图统计采用
histcounts 进行,范围严格设定在采样点数决定的编码区间内,确保了特征维度的稳定性。
2D LBP 计算算子
采用基于圆周采样的计算方法。程序根据给定的半径和采样点数计算偏移坐标,并利用最近邻索引逻辑(Nearest Neighbor)处理子像素偏移。通过比较邻域点与中心点的像素值,利用位权累加生成二进制编码映射图。
简化 VLBP 实现
为了降低计算维度,本项目在 VLBP 实现中采用了一种有效的 6 位编码策略。它不仅比较了当前帧的 4 邻域空间纹理(位权 4-32),还整合了时间轴上 $T-R_t$ 和 $T+R_t$ 位置的灰度差异(位权 1-2)。这种方法在保持时间敏感性的同时,极大减少了特征维数。
数据可视化技术
利用 MATLAB 的
slice 函数构建三维剖面视图,直观展示视频数据在时空连续体中的结构。通过
imagesc 渲染 XT 和 YT 映射图,可以清晰观察到目标随时间运动留下的纹理轨迹。