image tagger to train image tag recognition

For the second part of the machine learning workshop I need to tag images. My first solution was to display the image in fullscreen and then copy it to a folder named by the tag manually. But this workflow feels very inefficient. So I build a pygame-based tool for this: https://github.com/mfa/image-tagger.

The tags are given by a yaml file (the tagset) and saved for each image when the next image is shown (right arrow key). When the tagging is finished the files with a specific tag are copied via a simple python script, i.e. https://github.com/mfa/image-tagger/blob/main/copy_filtered.py.

By using pygame I learned a lot about events and image redrawing. Because the drawing performance isn't that important here I haven't optimized on that. Limiting the fps by clock.tick(30) was primarily to eliminate unnecessary CPU usage.

Screenshot of current state of the tool:

screenshot