PaddleDetecion2.2版本,使用Faster-RCNN训练coco数据集报错,提示KeyError: 'image'
W1004 15:00:33.100414 17854 device_context.cc:404] Please NOTE: device: 0, GPU Compute Capability: 6.1, Driver API Version: 11.2, Runtime API Version: 10.2W1004 15:00:33.136669 17854 device_context.cc:422] device: 0, cuDNN Version: 7.6.
[10/04 15:00:34] ppdet.utils.checkpoint INFO: bbox_head.bbox_score.weight not used, shape [1024, 81] unmatched with [1024, 8] in model.
[10/04 15:00:34] ppdet.utils.checkpoint INFO: bbox_head.bbox_score.bias not used, shape [81] unmatched with [8] in model.
[10/04 15:00:34] ppdet.utils.checkpoint INFO: bbox_head.bbox_delta.weight not used, shape [1024, 320] unmatched with [1024, 28] in model.
[10/04 15:00:34] ppdet.utils.checkpoint INFO: bbox_head.bbox_delta.bias not used, shape [320] unmatched with [28] in model.
[10/04 15:00:34] ppdet.utils.checkpoint INFO: Finish loading model weights: /home/user/.cache/paddle/weights/faster_rcnn_r50_fpn_1x.pdparams
Traceback (most recent call last):
File "tools/train.py", line 141, in
main()
File "tools/train.py", line 137, in main
run(FLAGS, cfg)
File "tools/train.py", line 112, in run
trainer.train(FLAGS.eval)
File "/home/user/anaconda3/envs/paddle_env/lib/python3.7/site-packages/ppdet/engine/trainer.py", line 307, in train
outputs = model(data)
File "/home/user/anaconda3/envs/paddle_env/lib/python3.7/site-packages/paddle/fluid/dygraph/layers.py", line 902, in __call__
outputs = self.forward(*inputs, **kwargs)
File "/home/user/anaconda3/envs/paddle_env/lib/python3.7/site-packages/ppdet/modeling/architectures/meta_arch.py", line 27, in forward
out = self.get_loss()
File "/home/user/anaconda3/envs/paddle_env/lib/python3.7/site-packages/ppdet/modeling/architectures/faster_rcnn.py", line 95, in get_loss
rpn_loss, bbox_loss = self._forward()
File "/home/user/anaconda3/envs/paddle_env/lib/python3.7/site-packages/ppdet/modeling/architectures/faster_rcnn.py", line 72, in _forward
body_feats = self.backbone(self.inputs)
File "/home/user/anaconda3/envs/paddle_env/lib/python3.7/site-packages/paddle/fluid/dygraph/layers.py", line 902, in __call__
outputs = self.forward(*inputs, **kwargs)
File "/home/user/anaconda3/envs/paddle_env/lib/python3.7/site-packages/ppdet/modeling/backbones/resnet.py", line 572, in forward
x = inputs['image']
KeyError: 'image'
//--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
faster_rcnn_r50_fpn_1x_coco.yml文件内容如下:
_BASE_: [
'../datasets/coco_detection.yml',
'../runtime.yml',
'_base_/optimizer_1x.yml',
'_base_/faster_rcnn_r50_fpn.yml',
'_base_/faster_fpn_reader_coco.yml',
]
weights: output/faster_rcnn_r50_fpn_1x_coco/model_final
pretrain_weights: model/faster_rcnn_r50_fpn_1x_coco.pdparams
max_iters: 180000
LearningRate:
base_lr: 0.01
schedulers:
- !PiecewiseDecay
gamma: 0.1
milestones: [120000, 160000]
- !LinearWarmup
start_factor: 0.3333333333333333
steps: 500
OptimizerBuilder:
optimizer:
momentum: 0.9
type: Momentum
regularizer:
factor: 0.0001
type: L2
//--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
_base_/faster_fpn_reader_coco.yml文件内容如下:
worker_num: 1
_READER_: 'faster_fpn_reader.yml'
TrainReader:
dataset:
!COCODataSet
dataset_dir: dataset/coco
anno_path: annotations/instances_train2017.json
EvalReader:
dataset:
!COCODataSet
dataset_dir: dataset/coco
anno_path: annotations/instances_val2017.json
TestReader:
dataset:
!ImageFolder
anno_path: dataset/coco/annotations/instances_val2017.json
//--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
coco_detection.yml文件内容如下:
metric: COCO
num_classes: 80
TrainDataset:
!COCODataSet
image_dir: train2017
anno_path: annotations/instances_train2017.json
dataset_dir: dataset/coco
data_fields: ['image', 'gt_bbox', 'gt_class', 'is_crowd']
EvalDataset:
!COCODataSet
image_dir: val2017
anno_path: annotations/instances_val2017.json
dataset_dir: dataset/coco
TestDataset:
!ImageFolder
anno_path: annotations/instances_val2017.json
//-------------------------------------
测试了VOC数据集,也是报同样的错误。请朋友们帮忙分析一下。谢谢。
已经在群里面有回复了哦,解决以后记得把解决方法在这里也说一声哟
根据飞桨技术支持群中管理员给出的建议,怀疑是数据格式问题导致数据没有读到。image字段找不到,对应yml文件中的 data_fields:['image','gt_bbox','gt_class','is_crowd']。如果数据没有读到,则会报错。
//-----------------------------------------------------------------------------------------------------
由于个人能力问题,没能找到问题原因。
最后根据《PaddleX2.0快速上手-Faster RCNN目标检测》使用PaddleX2.0进行训练和预测。
项目链接:
https://aistudio.baidu.com/aistudio/projectdetail/2160245?channel=0&channelType=0&shared=1