yolact
yolact copied to clipboard
The way `--output_coco_json` works right now is it operates on a dataset (which doesn't need to have ground truth). So you need to give a `--dataset` parameter instead of an `--image` parameter. The dataset you use doesn't need annotations, simply create a COCO dataset with just images and an empty annotation array and follow the dataset definition of `coco2017_testdev_dataset`.
Hi, thanks for your code. it works well with my dataset. But I have a problem of outputting the json file of eval.py. I have create a json file with empty annotation based on the test image (more than one), so I used this json file on the coco2017_testdev_dataset, but it did not give a path for imaging, just path for json file. I think I did not really understand how I can use --dataset, can u explain more?? thanks a lot.
The way --output_coco_json
works right now is it operates on a dataset (which doesn't need to have ground truth). So you need to give a --dataset
parameter instead of an --image
parameter. The dataset you use doesn't need annotations, simply create a COCO dataset with just images and an empty annotation array and follow the dataset definition of coco2017_testdev_dataset
.
For single images, this is kind of cumbersome, but for large batches it probably works fine? This feature was intended for submission to the COCO eval servers so that's why it's so roundabout. Let me know if this is indeed too cumbersome, and I can add --output_coco_json
support to --image
.
Originally posted by @dbolya in https://github.com/dbolya/yolact/issues/230#issuecomment-560542964
Hi @dbolya ,
Same here, is there a way to get a single json file (COCO format) per image as output of the inference?
Thank you :)
Hi @PL-96, @linyingyingkarina
I could use the dataset parameter as suggested and it gave me two files: mask_detections.json bbox_detections.json
How can i get single file per image from these two files? Do i use coco2labelme.py for this?
Here is my eval command:
python eval.py --trained_model=weights/yolact_base_540_20000.pth --score_threshold=0.6 --top_k=50 --dataset=my_custom_dataset --output_coco_json
Hi @PL-96,
I am getting the segmentation in encoded format:
Is there a way to deal with it?
You want to get image file from json file? you may get some help from #536
Hi @PL-96
No, here is what i want to do:
Manual annotation - drawing polygons is a painful task. I have trained the YOLACT model on few images and it is predicting good polygons on the remaining. However the categories are false, so i need to open the annotations in labelme and correct the labels. Once the labels are corrected, i will retrain the model on the additional images (now i will have many images to train).
For this purpose, i need the 'eval.py' to output single json file for each image (i know we can add --dataset parameter to get a single json - but that is one file for the entire dataset, i need per image)
Thanks
Hi @PL-96
No, here is what i want to do:
Manual annotation - drawing polygons is a painful task. I have trained the YOLACT model on few images and it is predicting good polygons on the remaining. However the categories are false, so i need to open the annotations in labelme and correct the labels. Once the labels are corrected, i will retrain the model on the additional images (now i will have many images to train).
For this purpose, i need the 'eval.py' to output single json file for each image (i know we can add --dataset parameter to get a single json - but that is one file for the entire dataset, i need per image)
Thanks
hi, can I know how u generate my_custom_dataset to meet the demand of the dataset parameter?
Hi @linyingyingkarina
I am generating mask images , drawing polygons on it and converting to MSCOCO format.
Hi @linyingyingkarina
I am generating mask images , drawing polygons on it and converting to MSCOCO format.
but I think the testing dataset do not need mask images, do it ?? thx.
Using masks, i am generating the polygons and then dumping into the json format which yolact requires.
Hi @piseabhijeet
Sorry I don't know how to generate single json. But maybe you can write python script to extract per image information from the entire folder json file. In my thought, output json ->mask->coco may work. If you have solved the problem, please let me konw how. thanks
Hi @PL-96 No, here is what i want to do: Manual annotation - drawing polygons is a painful task. I have trained the YOLACT model on few images and it is predicting good polygons on the remaining. However the categories are false, so i need to open the annotations in labelme and correct the labels. Once the labels are corrected, i will retrain the model on the additional images (now i will have many images to train). For this purpose, i need the 'eval.py' to output single json file for each image (i know we can add --dataset parameter to get a single json - but that is one file for the entire dataset, i need per image) Thanks
hi, can I know how u generate my_custom_dataset to meet the demand of the dataset parameter?
the same as coco2017_testdev_dataset, and set 'has_gt' to False.
Hi @PL-96
Thank you for the prompt response. Sure will do.
Hi @PL-96 No, here is what i want to do: Manual annotation - drawing polygons is a painful task. I have trained the YOLACT model on few images and it is predicting good polygons on the remaining. However the categories are false, so i need to open the annotations in labelme and correct the labels. Once the labels are corrected, i will retrain the model on the additional images (now i will have many images to train). For this purpose, i need the 'eval.py' to output single json file for each image (i know we can add --dataset parameter to get a single json - but that is one file for the entire dataset, i need per image) Thanks
hi, can I know how u generate my_custom_dataset to meet the demand of the dataset parameter?
the same as coco2017_testdev_dataset, and set 'has_gt' to False.
Hi @PL-96 No, here is what i want to do: Manual annotation - drawing polygons is a painful task. I have trained the YOLACT model on few images and it is predicting good polygons on the remaining. However the categories are false, so i need to open the annotations in labelme and correct the labels. Once the labels are corrected, i will retrain the model on the additional images (now i will have many images to train). For this purpose, i need the 'eval.py' to output single json file for each image (i know we can add --dataset parameter to get a single json - but that is one file for the entire dataset, i need per image) Thanks
hi, can I know how u generate my_custom_dataset to meet the demand of the dataset parameter?
the same as coco2017_testdev_dataset, and set 'has_gt' to False.
![]()
I added the image path
Hi @PL-96 No, here is what i want to do: Manual annotation - drawing polygons is a painful task. I have trained the YOLACT model on few images and it is predicting good polygons on the remaining. However the categories are false, so i need to open the annotations in labelme and correct the labels. Once the labels are corrected, i will retrain the model on the additional images (now i will have many images to train). For this purpose, i need the 'eval.py' to output single json file for each image (i know we can add --dataset parameter to get a single json - but that is one file for the entire dataset, i need per image) Thanks
hi, can I know how u generate my_custom_dataset to meet the demand of the dataset parameter?
the same as coco2017_testdev_dataset, and set 'has_gt' to False.
![]()
I added the image path
thanks, I did so. but the output json file had way more bbox information than the image show. the image prediction only show 5 bbox. but in the json file there is 100. do u know why?? the mask json file had same problem
@piseabhijeet Hi. Thanks sharing your tip.
Do you know that generating .json
file from my_image.png
?
I typed python eval.py --trained_model=weights/yolact_base_540_20000.pth --score_threshold=0.6 --top_k=50 --dataset=my_custom_dataset --output_coco_json
but show me NameError: name 'my_image' is not defined..
Can you help me?
I hope to make json files from my images dataset.. and I will convert output_json
to labelme json style
then read and modify it on labelme
Hi @PL-96, @linyingyingkarina
I could use the dataset parameter as suggested and it gave me two files: mask_detections.json bbox_detections.json
How can i get single file per image from these two files? Do i use coco2labelme.py for this?
What does it mean by empty annotation array? Could you please explain.
Hi @PL-96, @linyingyingkarina I could use the dataset parameter as suggested and it gave me two files: mask_detections.json bbox_detections.json How can i get single file per image from these two files? Do i use coco2labelme.py for this?
What does it mean by empty annotation array? Could you please explain. Did you find the answer?
Hi @PL-96, @linyingyingkarina I could use the dataset parameter as suggested and it gave me two files: mask_detections.json bbox_detections.json How can i get single file per image from these two files? Do i use coco2labelme.py for this?
What does it mean by empty annotation array? Could you please explain. Did you find the answer?
Did not receive any answer
Hi @PL-96, @linyingyingkarina I could use the dataset parameter as suggested and it gave me two files: mask_detections.json bbox_detections.json How can i get single file per image from these two files? Do i use coco2labelme.py for this?
What does it mean by empty annotation array? Could you please explain. Did you find the answer?
Did not receive any answer
thanks for replying, I create an empty json file;
but I get the error:
if you know how to solve this issue, please share;
I'm facing the same error, Could somebody help.
Hi @PL-96, @linyingyingkarina I could use the dataset parameter as suggested and it gave me two files: mask_detections.json bbox_detections.json How can i get single file per image from these two files? Do i use coco2labelme.py for this?
What does it mean by empty annotation array? Could you please explain. Did you find the answer?
Did not receive any answer
thanks for replying, I create an empty json file;
but I get the error:
if you know how to solve this issue, please share;
I'm facing the same error, Could somebody help.
I modified the code and get the json file now.
Hi @PL-96,
I am getting the segmentation in encoded format:
Is there a way to deal with it?
I'm currently facing a similar issue, Did you find a solution for the encoded format ?