Image Capturing Program – Annotation Acceleration

Als Teil des SmartCart Projektes wurde ein Programm entwickelt, dass für jedes aufgenommene Bild ein Label inkl. Bounding Box vorschlagen kann.

Beschreibung

Da für das SmartCart Projekt ein Objekterkennungsmodell trainiert werden musste, bedarf es an einem großen und diversen Datenset, dass alle Objektklassen, die die Kamera erkennen sollte, beinhaltet. Nach ausgiebiger Recherche stellt sich heraus, das ein solches Datenset noch nicht existierte. Daher wurden zuerst insgesamt 500 Bilder insgesamt über alle Klassen aufgenommen und gelabelt. Jedoch wurde ein noch diverseres und größeres Datenset für das Training benötigt. Um dies zu beschleunigen wurde ein Programm entwickelt, dass bereits einen Labelvorschlag für jeden Frame eines Videostreams vorschlägt.

Entwicklung

Zuerst wurde basierend auf dem bereits vorhandenen Datenset ein FasterRCNN trainiert. Dieses TensorFlow Modell wurde in ein Python Skript integriert. Das Skript hatte die Funktion, die Webcam des Laptops zu öffnen und real-time Objekterkennung auf dem Video Stream auszuführen. Mit einem Tipp auf die Leertaste konnte ein Bild ohne Labels aufgenommen werden, mit einem Tipp auf die Taste A konnten das Bild sowie alle Annotationen im Pascal VOC Format abgespeichert werden. So konnten innerhalb über 3500 Bilder erstellt und gelabelt werden. Diese wurde im Folgenden noch auf die korrekten Labels überprüft und dann dem Datenset hinzugefügt.

Ergebnis

Das Programm kann auf Unix-basierten Systemen mit ausreichender CPU Performance genutzt werden. Es ist zum freien Download auf GitHub verfügbar, muss jedoch auf die individuellen Anforderungen (Klassen, Labels, etc.) angepasst werden.

GitHub Link zum Projekt: https://github.com/leonsick/Image-Capturing-Program