Are you sure you want to delete this task? Once this task is deleted, it cannot be recovered.
jay-z20 b68c7d2c9c | 2 years ago | |
---|---|---|
data | 2 years ago | |
images | 2 years ago | |
layers | 2 years ago | |
logs | 2 years ago | |
outputs | 2 years ago | |
utils | 2 years ago | |
README.md | 2 years ago | |
backbone.py | 2 years ago | |
eval.py | 2 years ago | |
name_adapter.py | 2 years ago | |
requirments.txt | 2 years ago | |
run.sh | 2 years ago | |
shape_spec.py | 2 years ago | |
train.py | 2 years ago | |
yolact.py | 2 years ago |
论文:YOLACT: Real-time Instance Segmentation
使用 Paddle 复现
本项目基于paddlepaddle框架复现YOLACT,YOLACT是一种新的实例分割网络,由于没有使用两阶段方法中的pooling操作使得可以获得无损失的特征信息,并且在大目标的分割场景下性能表现更优秀
论文地址:
https://arxiv.org/pdf/1904.02689.pdf
参考项目:
https://github.com/dbolya/yolact
https://github.com/PaddlePaddle/PaddleDetection
https://github.com/PaddlePaddle/PaddleSeg
COCO test-dev2017
Image Size | Backbone | mAP | download |
---|---|---|---|
550 | Resnet50-FPN | 28.9 | 百度网盘 提取码: 6jjs |
COCO2017-完整数据集:
https://aistudio.baidu.com/aistudio/datasetdetail/97273
pip install -r requirments.txt
硬件:GPU、CPU
框架:
aistudio 默认 2.1 版本
Name: paddlepaddle-gpu
Version: 2.1.2.post101
修改训练数据配置文件
修改配置文件 data/config.py
dataset_base = Config({
'name': 'Base Dataset',
# Training images and annotations
'train_images': '/home/aistudio/train2017/', # 修改为训练数据文件夹
'train_info': 'path_to_annotation_file',
# Validation images and annotations.
'valid_images': '/home/aistudio/val2017/', # 修改为验证数据文件夹
'valid_info': 'path_to_annotation_file',
# Whether or not to load GT. If this is False, eval.py quantitative evaluation won't work.
'has_gt': True,
# A list of names for each of you classes.
'class_names': COCO_CLASSES,
# COCO class ids aren't sequential, so this is a bandage fix. If your ids aren't sequential,
# provide a map from category_id -> index in class_names + 1 (the +1 is there because it's 1-indexed).
# If not specified, this just assumes category ids start at 1 and increase sequentially.
'label_map': None
})
coco2017_dataset = dataset_base.copy({
'name': 'COCO 2017',
'train_info': '/home/aistudio/annotations/instances_train2017.json', # 修改为 train 据标注
'valid_info': '/home/aistudio/annotations/instances_val2017.json', # 修改为 val 数据标注
'label_map': COCO_LABEL_MAP
})
coco2017_testdev_dataset = dataset_base.copy({
'name': 'COCO 2017 Test-Dev',
'valid_images': '/home/aistudio/test2017/', # coco test-dev2017 测试数据集文件夹
'valid_info': '/home/aistudio/annotations/image_info_test-dev2017.json', # image_info_test-dev2017.json 文件
'has_gt': False,
'label_map': COCO_LABEL_MAP
})
预测
python eval.py --trained_model yolact_resnet50_54_800000.dpparams --output_coco_json --dataset=coco2017_testdev_dataset --cuda=True
result
文件夹中mask_detections.json
生成结果
训练
python train.py --config=yolact_resnet50_config --batch_size=8
├─data # 数据加载和配置
|--config.py # 配置文件
├─layers # 中间处理过程和 loss
|--modules
|--multibox_loss.py # 训练的 loss
├─logs # 训练日志 每 10 个 epoch 打印
├─utils # 工具包(计时、日志记录、数据增强)
|--weights # 模型保存目录
│--backbone.py # backbone(resnet 实现)
│--eval.py # 预测和评估
│--yolact.py # model 实现
│--README.md # 中文readme
│--requirement.txt # 依赖
│--train.py # 训练
下载 yolact_resnet50_54_800000.dpparams 并保存到 eval.py 相同目录下
python eval.py --trained_model yolact_resnet50_54_800000.dpparams --output_coco_json --dataset=coco2017_testdev_dataset --cuda=True
cd results
cp mask_detections.json detections_test-dev2017_yolact_results.json
zip detections_test-dev2017_yolact_results.zip detections_test-dev2017_yolact_results.json
在 coco
官网提交结果
Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.289
Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.477
Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.301
Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.093
Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.301
Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.460
Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.273
Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.395
Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.407
Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.188
Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.439
Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.594
Dear OpenI User
Thank you for your continuous support to the Openl Qizhi Community AI Collaboration Platform. In order to protect your usage rights and ensure network security, we updated the Openl Qizhi Community AI Collaboration Platform Usage Agreement in January 2024. The updated agreement specifies that users are prohibited from using intranet penetration tools. After you click "Agree and continue", you can continue to use our services. Thank you for your cooperation and understanding.
For more agreement content, please refer to the《Openl Qizhi Community AI Collaboration Platform Usage Agreement》