microsoft / aerial_wildlife_detection

Tools for detecting wildlife in aerial images using active learning
MIT License
226 stars 58 forks source link

Way to export null annotations #51

Closed MattSkiff closed 3 years ago

MattSkiff commented 3 years ago

Hi Ben,

I have got about 6.5k labelled patches, of which only about 500 have annotations. The rest are empty. When these annotations are exported using the utility script export_YOLO_dataset.py, only the images that have annotations are created as annotation files (i.e. so 500 txt files are created). What would be really helpful is if the project also exported the other 6k null annotations as empty txt files.

Unfortunately, since I have 18k image patches in my project on AIDE, I can not just use the difference between the img file names and the txt file names to solve this problem (as I don't know which images have been viewed and marked with no annotations and which ones I have not seen in AIDE).

I know AIDE keeps track of this somewhere (since it only shows new images for annotation when Image Order is 'automatic') . I have tried accessing the postgre databases, but the ability to connect to the non-empty database that (I assume) has tables in it seems to be disabled and I don't want to risk accidentally dropping it.

Do you know if this is resolvable? Even a high level pointer would be really helpful!

Many thanks, Matthew

bkellenb commented 3 years ago

Hello Matthew,

AIDE does indeed keep track of the information on whether an image has been viewed (and by whom). This is done through the relation image_user. I like this suggestion; could come in handy indeed! I have thus modified the projectCreation/export_YOLO_dataset.py script and implemented it accordingly. You can now enable the export of unannotated images (i.e., creation of empty annotation files) as follows:

python projectCreation/export_YOLO_dataset.py --project <proj> --include_empty 1

Note that this currently ignores which user(s) viewed the images; it only creates empty annotation files for images that have not been viewed by anyone at this point.

Cheers!