imjoy-team / imjoy-interactive-segmentation

MIT License
13 stars 6 forks source link

Improvements for the trainer #26

Open oeway opened 3 years ago

oeway commented 3 years ago

Suggested by @Romain-Laine:

oeway commented 3 years ago

Noticed it will be a bit hard to implement with the interaction for moving nodes between folders. We support drag and drop, but when the list is too long, it's hard to drag a long way to another folder, it might be easier if we just add a Reload button, so the user can just move their files directly and we reload.

Romain-Laine commented 3 years ago

Hi Wei, It just occurred to me that another way to do it would be to allow user to open again data from the train folder, including its mask and objects, and be able to modify these and save again. Is this easier? This would not require to move data across folders, just load and edit the json file from a training data.

I'll also add another user request here too:

Romain

oeway commented 3 years ago

It just occurred to me that another way to do it would be to allow user to open again data from the train folder, including its mask and objects, and be able to modify these and save again. Is this easier?

This is already supported in the new PR https://github.com/imjoy-team/imjoy-interactive-segmentation/pull/27

This would not require to move data across folders, just load and edit the json file from a training data. Are you suggesting that we don't need the train folder at all? Simply provide a single folder with annotated and unannotated images?

I think it would work only if we have an automatic method to detect annotated images, or even regions in the image that are annotated. That would be nice, but we don't support that for now. we can simply know whether there is an annotation file, but detecting regions that are annotated can be more challenging.

The current design is to have a train folder to hold the annotated data, and you are not suppose to have unlabellled data inside. The issue is we cannot start a training with unlabelled data, or in another case, if the data is not completely annotated, it can cause confusion for the network.

What do you think?

oeway commented 3 years ago

automatic saving of the mask image when saving the json file, or on all the training data when the training is stopped/finished.

For generating mask images, we did not save it because different model may require a different mask. But perhaps you can just call the geojson_to_mask function yourself? Example here: https://github.com/imjoy-team/imjoy-interactive-segmentation/blob/4c920bd6b619407bfe2ddf321f4452a4517adbbd/interactive_trainer.py#L107-L109

Romain-Laine commented 3 years ago

It just occurred to me that another way to do it would be to allow user to open again data from the train folder, including its mask and objects, and be able to modify these and save again. Is this easier?

This is already supported in the new PR #27

This would not require to move data across folders, just load and edit the json file from a training data. Are you suggesting that we don't need the train folder at all? Simply provide a single folder with annotated and unannotated images?

I think it would work only if we have an automatic method to detect annotated images, or even regions in the image that are annotated. That would be nice, but we don't support that for now. we can simply know whether there is an annotation file, but detecting regions that are annotated can be more challenging.

The current design is to have a train folder to hold the annotated data, and you are not suppose to have unlabellled data inside. The issue is we cannot start a training with unlabelled data, or in another case, if the data is not completely annotated, it can cause confusion for the network.

What do you think?

No I was not suggesting to remove the train folder altogether. The current functionality with the new trainer is great! Thanks.

Romain-Laine commented 3 years ago

automatic saving of the mask image when saving the json file, or on all the training data when the training is stopped/finished.

For generating mask images, we did not save it because different model may require a different mask. But perhaps you can just call the geojson_to_mask function yourself? Example here:

https://github.com/imjoy-team/imjoy-interactive-segmentation/blob/4c920bd6b619407bfe2ddf321f4452a4517adbbd/interactive_trainer.py#L107-L109

OK, that's what I'll do. That's great. Thanks for your help!