maskrcnn-sparsercnn-on-voc

mid term homework of DATA620004

https://github.com/ohmargin/maskrcnn-sparsercnn-on-voc

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
Last synced: 6 months ago · JSON representation ·

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
Created 9 months ago · Last pushed 9 months ago
Metadata Files
Readme Contributing License Code of conduct Citation

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. 外部图片泛化能力可视化

  1. 将三张包含 VOC 类别的外部图片放入 external_images/ 目录,命名为 image1.jpgimage2.jpgimage3.jpg
  2. 运行:

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

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

.github/workflows/deploy.yml actions
  • actions/checkout v2 composite
  • actions/setup-python v2 composite
.circleci/docker/Dockerfile docker
  • pytorch/pytorch ${PYTORCH}-cuda${CUDA}-cudnn${CUDNN}-devel build
docker/Dockerfile docker
  • pytorch/pytorch ${PYTORCH}-cuda${CUDA}-cudnn${CUDNN}-devel build
docker/serve/Dockerfile docker
  • pytorch/pytorch ${PYTORCH}-cuda${CUDA}-cudnn${CUDNN}-devel build
docker/serve_cn/Dockerfile docker
  • pytorch/pytorch ${PYTORCH}-cuda${CUDA}-cudnn${CUDNN}-devel build
requirements/albu.txt pypi
  • albumentations >=0.3.2
requirements/build.txt pypi
  • cython *
  • numpy *
requirements/docs.txt pypi
  • 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
requirements/mminstall.txt pypi
  • mmcv >=2.0.0rc4,<2.2.0
  • mmengine >=0.7.1,<1.0.0
requirements/multimodal.txt pypi
  • fairscale *
  • jsonlines *
  • nltk *
  • pycocoevalcap *
  • transformers *
requirements/optional.txt pypi
  • cityscapesscripts *
  • emoji *
  • fairscale *
  • imagecorruptions *
  • scikit-learn *
requirements/readthedocs.txt pypi
  • mmcv >=2.0.0rc4,<2.2.0
  • mmengine >=0.7.1,<1.0.0
  • scipy *
  • torch *
  • torchvision *
  • urllib3 <2.0.0
requirements/runtime.txt pypi
  • matplotlib *
  • numpy *
  • pycocotools *
  • scipy *
  • shapely *
  • six *
  • terminaltables *
  • tqdm *
requirements/tests.txt pypi
  • 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
requirements/tracking.txt pypi
  • mmpretrain *
  • motmetrics *
  • numpy <1.24.0
  • scikit-learn *
  • seaborn *
requirements.txt pypi
setup.py pypi