目标检测与识别:打造汽车检测器
1. SVM与滑动窗口
检测到目标是一项了不起的成就,但我们还想更进一步:
- 检测图像中多个同类目标。
- 确定检测到的目标在图像中的位置。
为实现这些目标,我们将使用滑动窗口方法。其原理如下:
1. 选取图像的一个区域进行分类,然后向右移动预定义的步长。到达图像最右端时,将x坐标重置为0并向下移动一步,重复该过程。
2. 在每一步,使用基于词袋(BOW)训练的支持向量机(SVM)进行分类。
3. 记录所有通过SVM预测测试的区域。
4. 完成整个图像的分类后,缩小图像并重复滑动窗口过程,直到达到最小尺寸。
这个过程可以让我们在图像的不同区域和不同尺度下检测目标。但存在一个问题:可能会得到多个重叠且得分呈阳性的区域,这意味着一个目标可能被检测多次,导致检测结果不准确。这时就需要用到非极大值抑制(Non-Maximum Suppression)。
2. 汽车检测示例
我们将把所学概念应用到实际示例中,创建一个汽车检测器应用程序,该程序可以扫描图像并在汽车周围绘制矩形框。具体步骤如下:
1. 获取训练数据集。
2. 创建BOW训练器并创建视觉词汇。
3. 使用词汇训练SVM。
4. 在测试图像的图像金字塔上使用滑动窗口进行检测。
5. 对重叠的矩形框应用非极大值抑制。
6. 输出结果。
项目结构如下:
├── car_detector
│ ├── detector.py
│ ├── __init__.py
│ ├── non
超级会员免费看
订阅专栏 解锁全文
2005

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



