DPM(Deformable Parts Model)之hog31维特征

本文介绍了一种改进的HOG特征提取方法,该方法通过调整每个cell内的特征维度至18+9+4=31维,并利用PCA选择关键特征,以达到与传统HOG方法相同的效果。

作者对HOG进行了很大的改动。作者没有用4*9=36维向量,而是对每个8x8的cell提取18+9+4=31维特征向量。作者还讨论了依据PCA(Principle Component Analysis)可视化的结果选9+4维特征,能达到HOG 4*9维特征的效果。

这里很多就不细说了。开题一个字都还没写,要赶着开题……主要是features.cc。有了下面这张图,自己慢慢研究下:

### DPM 方法概述 Deformable Parts Model (DPM) 是一种用于目标检测的强大模型,尤其擅长处理具有复杂结构的对象。该方法基于部件模型的概念,在整体对象的基础上增加了多个可变形的部分来描述对象的不同部位及其相对位置关系[^2]。 - **根过滤器**:表示整个物体的整体外观。 - **部分过滤器**:捕捉组成物体的关键组成部分。 - **空间约束**:定义各部分相对于根的位置分布规律。 这种设计使得 DPM 对于姿态变化较大的目标(如人体)有着良好的鲁棒性和适应能力。 ### HOG+SVM 应用解析 Histograms of Oriented Gradients (HOG)+Support Vector Machine (SVM) 组合是一种经典而有效的传统计算机视觉技术,广泛应用于各种场景下的目标识别任务中。其工作原理如下: - **特征提取阶段**:利用 HOG 描述符计算输入图片内每个像素周围的梯度直方图,从而获取关于轮廓和纹理的信息;这些统计量能够很好地反映局部形态学特性,并且对于光照条件不敏感[^4]。 - **训练分类器环节**:借助 SVM 来区分正负样本之间的差异,即学会如何根据上述特征向量判断测试样本属于哪一类(例如是否为人形)。经过充分的学习过程之后,最终可以构建起一个高效的决策边界用来预测未知实例所属类别。 ```python import cv2 from skimage.feature import hog from sklearn.svm import LinearSVC # 加载预训练好的线性支持向量机模型 svm_detector = LinearSVC() def detect_objects(image_path): img = cv2.imread(image_path, 0) fd, _ = hog(img, orientations=9, pixels_per_cell=(8, 8), cells_per_block=(2, 2), visualize=True) prediction = svm_detector.predict([fd]) return 'Person' if prediction == 1 else 'Not Person' ``` ### 性能对比分析 当把 DPMHOG+SVM 放在一起考量时,两者各有千秋: | 方面 | DPM | HOG+SVM | | --- | --- | --- | | 复杂度 | 较高,因为涉及到多尺度扫描窗口以及复杂的部件间连接机制 | 相对较低,主要集中在单个固定大小的滑动窗操作上 | | 准确率 | 高精度定位能力强,特别是在面对遮挡或角度变换的情况下表现优异 | 中等到高的准确性,但在极端条件下可能不如前者稳定 | | 计算效率 | 运行时间较长,尤其是在大规模数据集上的实时性能较差 | 更加高效快速,适合在线应用场景 | 综上所述,虽然两种方案都能有效完成特定类型的任务,但对于具体的应用环境而言,则需权衡不同因素做出合理的选择。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值