Detectron2 Cannot find field 'gt_masks' in the given Instances!
Nobody has claimed this yet.
- Dominant language
- Jupyter Notebook
- Stars
- 9.7k
- Forks
- 1.5k
- PR merge metrics
- No merged PRs in 30d
Description
Search before asking
- I have searched the Roboflow Notebooks issues and found no similar bug report.
Notebook name
Train Detectron2 Segmentation on Custom Data
Bug
I have created a COCO json data using Roboflow and using that dataset in colab. In my roboflow, it clearly states that y dataset has exactly 2 classes.
But when run the below Detectron2 code to train m object detection model,
from detectron2.engine import DefaultTrainer
cfg = get_cfg()
cfg.merge_from_file(model_zoo.get_config_file("COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_3x.yaml"))
cfg.DATASETS.TRAIN = ("my_dataset_train",)
cfg.DATASETS.TEST = ()
cfg.DATALOADER.NUM_WORKERS = 2
cfg.MODEL.WEIGHTS = model_zoo.get_checkpoint_url("COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_3x.yaml") # Let training initialize from model zoo
cfg.SOLVER.IMS_PER_BATCH = 2 # This is the real "batch size" commonly known to deep learning people
cfg.SOLVER.BASE_LR = 0.00025 # pick a good LR
cfg.SOLVER.MAX_ITER = 300
cfg.SOLVER.STEPS = [] # do not decay learning rate
cfg.MODEL.ROI_HEADS.BATCH_SIZE_PER_IMAGE = 128 # The "RoIHead batch size"
cfg.MODEL.ROI_HEADS.NUM_CLASSES = 2 # has two classes(crop & weed).
os.makedirs(cfg.OUTPUT_DIR, exist_ok=True)
trainer = DefaultTrainer(cfg)
trainer.resume_or_load(resume=False)
trainer.train()
While running the code, it shows my dataset has 3 categories which is wrong.
This eventually leads the training code to get the below error;
AttributeError: Cannot find field 'gt_masks' in the given Instances!
Please, I need help as I have been stuck on this for the past 48 hours.
Environment
- Google Colab
Minimal Reproducible Example
No response
Additional
No response
Are you willing to submit a PR?
- Yes I'd like to help by submitting a PR!
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Open the “Train Detectron2 Segmentation on Custom Data” notebook in Google Colab and inspect the dataset registration, COCO JSON categories, and segmentation fields used by the shown training configuration. Reproduce the run with the reported two-class dataset and compare the registered categories and annotations with the training output. Done means the dataset reports two classes and training no longer raises the gt_masks error.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- jupyter-notebook, python
- Domain
- computer-vision, machine-learning
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100