maskrcnn-sparsercnn-on-voc
mid term homework of DATA620004
Science Score: 44.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (2.6%) to scientific vocabulary
Repository
mid term homework of DATA620004
Basic Info
- Host: GitHub
- Owner: ohMargin
- License: apache-2.0
- Language: Python
- Default Branch: main
- Size: 61.1 MB
Statistics
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
- Releases: 0
Metadata Files
README.md
VOC 数据集上的 Mask R-CNN 和 Sparse R-CNN 实验
本项目基于 MMDetection 框架,在 VOC 数据集上训练和测试 Mask R-CNN 与 Sparse R-CNN 模型,并对比其检测与分割效果。
环境配置
请确保已正确安装 MMDetection 及其依赖环境,详细请参考README_ORI.md的内容,遵循MMDetection框架完成基本环节配置。
```bash
激活环境
conda activate mmdetection
安装依赖(如未安装)
pip install -r requirements.txt ```
数据集准备
本项目使用 VOC2007 和 VOC2012 数据集。请将数据集放在 mmdetection/data/VOCdevkit 目录下,结构如下:
mmdetection/data/VOCdevkit/
├── VOC2007/
│ ├── Annotations/
│ ├── ImageSets/
│ ├── JPEGImages/
│ ├── SegmentationClass/
│ └── SegmentationObject/
└── VOC2012/
├── Annotations/
├── ImageSets/
├── JPEGImages/
├── SegmentationClass/
└── SegmentationObject/
训练流程
训练 Mask R-CNN
这里需要对VOC处理成coco format,相应的voc2coco.py或许能够帮助到实现这一步。
bash
bash tools/train_mask_rcnn_voc.sh
- 配置文件:configs/pascal_voc/mask-rcnn_r50_fpn_1x_voc_coco-format.py
- 输出目录:work_dirs/mask_rcnn_voc_coco_format/
训练 Sparse R-CNN
bash
bash tools/train_sparse_rcnn_voc.sh
- 配置文件:configs/pascal_voc/sparse-rcnn_r50_fpn_1x_voc0712.py
- 输出目录:work_dirs/sparse_rcnn_voc/
测试流程
bash
bash tools/test_models_voc.sh
- 测试集:VOC2007 test
- 结果保存在各自 work_dirs 下
可视化分析
1. Mask R-CNN Proposal 与最终预测可视化
bash
python tools/visualize_mask_rcnn_proposals_and_masks.py
- 输入:测试集图片
- 输出:work_dirs/mask_rcnn_voc_coco_format/proposal_vis/,包含 proposal box 与最终检测/分割结果对比图
2. Mask R-CNN 与 Sparse R-CNN 检测/分割对比
bash
python tools/visualize_mask_and_sparse_rcnn_comparison.py
- 输入:测试集图片
- 输出:work_dirs/comparison_vis/,对比两种模型的检测与分割效果
3. 外部图片泛化能力可视化
- 将三张包含 VOC 类别的外部图片放入
external_images/目录,命名为image1.jpg、image2.jpg、image3.jpg - 运行:
bash
python tools/visualize_external_images.py
- 输出:work_dirs/external_images_vis/,展示两模型在外部图片上的检测与分割结果
4. TensorBoard 可视化
bash
python tools/visualize_tensorboard.py
- 输出:work_dirs/tensorboard_vis/
实验设置
- 数据集划分:VOC2007+2012 trainval 训练,VOC2007 test 测试
- 网络结构:
- Mask R-CNN:ResNet-50 + FPN
- Sparse R-CNN:ResNet-50 + FPN,6 阶段,100 proposal
- Batch Size:2
- Learning Rate:
- Mask R-CNN:0.01
- Sparse R-CNN:0.000025
- 优化器:
- Mask R-CNN:SGD(momentum=0.9, weight_decay=0.0001)
- Sparse R-CNN:AdamW(weight_decay=0.0001)
- 训练轮次:10 epoch(数据集重复3次,等效30 epoch)
- 损失函数:
- Mask R-CNN:CrossEntropyLoss、L1Loss
- Sparse R-CNN:FocalLoss、L1Loss、GIoULoss、CrossEntropyLoss
- 评价指标:mAP(VOC 11 points)
模型权重
- Mask R-CNN:
work_dirs/mask_rcnn_voc_coco_format/epoch_10.pth - Sparse R-CNN:
work_dirs/sparse_rcnn_voc/epoch_10.pth
可视化结果目录
- Proposal 可视化:
work_dirs/mask_rcnn_voc_coco_format/proposal_vis/ - 模型对比可视化:
work_dirs/comparison_vis/ - 外部图片可视化:
work_dirs/external_images_vis/ - TensorBoard:
work_dirs/tensorboard_vis/
其他说明
.gitignore已配置,避免大文件、数据、模型权重等被上传。- 如需复现实验,建议严格按照上述流程操作。
Owner
- Name: Jerry
- Login: ohMargin
- Kind: user
- Location: Handan Road 220, Yangpu District
- Company: Fudan University
- Repositories: 1
- Profile: https://github.com/ohMargin
A junior in Fudan University, school of Data Science, majoring in artificial intelligence
Citation (CITATION.cff)
cff-version: 1.2.0 message: "If you use this software, please cite it as below." authors: - name: "MMDetection Contributors" title: "OpenMMLab Detection Toolbox and Benchmark" date-released: 2018-08-22 url: "https://github.com/open-mmlab/mmdetection" license: Apache-2.0
GitHub Events
Total
- Push event: 2
- Create event: 2
Last Year
- Push event: 2
- Create event: 2
Dependencies
- actions/checkout v2 composite
- actions/setup-python v2 composite
- pytorch/pytorch ${PYTORCH}-cuda${CUDA}-cudnn${CUDNN}-devel build
- pytorch/pytorch ${PYTORCH}-cuda${CUDA}-cudnn${CUDNN}-devel build
- pytorch/pytorch ${PYTORCH}-cuda${CUDA}-cudnn${CUDNN}-devel build
- pytorch/pytorch ${PYTORCH}-cuda${CUDA}-cudnn${CUDNN}-devel build
- albumentations >=0.3.2
- cython *
- numpy *
- docutils ==0.16.0
- myst-parser *
- sphinx ==4.0.2
- sphinx-copybutton *
- sphinx_markdown_tables *
- sphinx_rtd_theme ==0.5.2
- urllib3 <2.0.0
- mmcv >=2.0.0rc4,<2.2.0
- mmengine >=0.7.1,<1.0.0
- fairscale *
- jsonlines *
- nltk *
- pycocoevalcap *
- transformers *
- cityscapesscripts *
- emoji *
- fairscale *
- imagecorruptions *
- scikit-learn *
- mmcv >=2.0.0rc4,<2.2.0
- mmengine >=0.7.1,<1.0.0
- scipy *
- torch *
- torchvision *
- urllib3 <2.0.0
- matplotlib *
- numpy *
- pycocotools *
- scipy *
- shapely *
- six *
- terminaltables *
- tqdm *
- asynctest * test
- cityscapesscripts * test
- codecov * test
- flake8 * test
- imagecorruptions * test
- instaboostfast * test
- interrogate * test
- isort ==4.3.21 test
- kwarray * test
- memory_profiler * test
- nltk * test
- onnx ==1.7.0 test
- onnxruntime >=1.8.0 test
- parameterized * test
- prettytable * test
- protobuf <=3.20.1 test
- psutil * test
- pytest * test
- transformers * test
- ubelt * test
- xdoctest >=0.10.0 test
- yapf * test
- mmpretrain *
- motmetrics *
- numpy <1.24.0
- scikit-learn *
- seaborn *