Skip to content
This repository was archived by the owner on Nov 2, 2024. It is now read-only.

Commit 09de49f

Browse files
committed
docs(bounding-box regression): 训练及实现解析
1 parent 37a64c4 commit 09de49f

File tree

4 files changed

+28
-14
lines changed

4 files changed

+28
-14
lines changed

Diff for: docs/index.md

+4-2
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@
1111
1. 数据集创建
1212
2. 卷积神经网络训练
1313
3. 分类器训练
14-
4. 目标检测器实现
14+
4. 边界框回归器训练
15+
5. 目标检测器实现
1516

1617
**本仓库最终实现一个汽车类别目标检测器**
1718

@@ -20,7 +21,8 @@
2021
1. 区域建议生成:`selectivesearch`算法实现,生成类别独立的区域建议
2122
2. 特征提取:卷积神经网络`AlexNet`实现,从每个区域建议中提取固定长度的特征向量
2223
3. 线性`SVM`实现,输入特征向量,输出每类成绩
23-
4. 非最大抑制方法实现,得到最终的候选建议
24+
4. 使用类指定的边界框回归器计算候选建议的坐标偏移
25+
5. 非最大抑制方法实现,得到最终的候选建议
2426

2527
*关于区域建议算法`selectivesearch`实现,在训练阶段使用高质量模式,在测试阶段使用快速模式*
2628

Diff for: docs/工程解析.md

+3-12
Original file line numberDiff line numberDiff line change
@@ -9,25 +9,16 @@
99
├── LICENSE
1010
├── mkdocs.yml
1111
├── py
12+
│   ├── bbox_regression.py # 边界框回归器训练
1213
│   ├── car_detector.py # 检测器实现
1314
│   ├── finetune.py # 卷积神经网络微调训练
1415
│   ├── __init__.py
1516
│   ├── linear_svm.py # 分类器训练
1617
│   ├── requirements.txt # python工程依赖
1718
│   ├── selectivesearch.py # 选择性搜索算法实现
1819
│   └── utils
19-
│   ├── data
20-
│   │   ├── create_classifier_data.py # 创建分类器训练数据
21-
│   │   ├── create_finetune_data.py # 创建模型微调训练数据
22-
│   │   ├── custom_batch_sampler.py # 自定义批量采样器
23-
│   │   ├── custom_classifier_dataset.py # 自定义分类器数据集类
24-
│   │   ├── custom_finetune_dataset.py # 自定义微调数据集类
25-
│   │   ├── custom_hard_negative_mining_dataset.py # 自定义负样本挖掘数据集类
26-
│   │   ├── __init__.py
27-
│   │   ├── pascal_voc_car.py # 解析VOC car数据集
28-
│   │   ├── pascal_voc.py # 下载并解析VOC数据集
29-
│   ├── __init__.py
30-
│   └── util.py # 常用辅助函数
20+
│   ├── data # 创建数据/自定义数据处理类
21+
│   └── util.py # 辅助函数
3122
├── README.md
3223
└── requirements.txt
3324
```

Diff for: docs/边界框回归器训练.md

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
2+
# 边界框回归器训练
3+
4+
使用`SVM`分类器对候选建议进行分类后,使用对应类别的边界框回归器(`bounding-box regression`)预测其坐标偏移值,这一操作能够进一步提高检测精度
5+
6+
## 定义
7+
8+
参考:[[R-CNN]边界框回归](https://blog.zhujian.life/posts/dd3aa53a.html)
9+
10+
通过提高`IoU`阈值(`>0.6`)过滤正样本候选建议,将候选建议和标注边界框之间的转换看成线性回归问题,并通过岭回归(`ridge regression`)来训练权重$w$
11+
12+
## 数据集
13+
14+
* 相关实现:[create_bbox_regression_data.py](https://github.com/zjZSTU/R-CNN/blob/master/py/utils/data/create_bbox_regression_data.py)
15+
16+
利用微调数据集的正样本(`IoU>=0.5`),再进一步提取`IoU>0.6`的候选建议
17+
18+
## 小结
19+
20+
并没有训练得到很好的边界框回归器,不知道是不是数据不够大,或者`IoU`阈值可以进一步提高

Diff for: mkdocs.yml

+1
Original file line numberDiff line numberDiff line change
@@ -34,4 +34,5 @@ nav:
3434
- 数据集创建: './数据集创建.md'
3535
- 微调模型: './微调模型.md'
3636
- 分类器训练: './分类器训练.md'
37+
- 边界框回归器训练: './边界框回归器训练.md'
3738
- 检测器实现: './检测器实现.md'

0 commit comments

Comments
 (0)