Annotation von Orientierungspunkten von Ohren zur Datensatzgenerierung
Überblick
Dies ist ein Forschungsprojekt, das ich in enger Zusammenarbeit mit Astrivis durchgeführt habe. Ein Ziel dieses Projekts war es, ein internes Tool zur schnellen Kennzeichnung von Orientierungspunkten in Fotos von Ohren zu erstellen, um einen annotierten Datensatz zu generieren. Das zweite Ziel war es, den erstellten Datensatz zu verwenden, um ein Convolutional Neural Network (CNN) zu trainieren, das die oben genannten Orientierungspunkte vorhersagen kann.
Problemstellung
Die Annotation von Datensätzen ist ein mühseliger und zeitaufwändiger Prozess. Abhängig von den zu annotierenden Daten kann es jedoch sinnvoll sein, eine dedizierte Anwendung zu entwickeln, die Heuristiken und Domänen-spezifisches Wissen verwendet, um diesen Prozess zu beschleunigen.
Für dieses Projekts war ein Annotierungs-Tool erforderlich, um Orientierungspunkte in einer Sammlung von Ohrfotos schnell zu annotieren. Dieser Datensatz sollte dann verwendet werden, um ein Convolutional Neural Network (CNN) zu trainieren, um diese Orientierungspunkte vorherzusagen.
Sobald solche gelernten Modelle initialisiert sind, ist es möglich, sie in den Annotationsprozess zu integrieren und dadurch die Geschwindigkeit der Kennzeichnung weiter zu verbessern.
Ansatz
Im spezifischen Fall von Ohren kann man die Tatsache nutzen, dass die Orientierungspunkte normalerweise entlang der Konturen des Ohrs in geordneter Weise vorkommen. Zu diesem Zweck wurde ein einfacher Spline-Fitting-Ansatz eingeführt, der helfen würde, noch nicht markierte Orientierungspunkte auf der Basis von bereits markierten Orientierungspunkten auszurichten.
Nach der Erstellung eines initialen Datensatzes wurde ein kleines CNN-Modell trainiert, um Orientierungspunkte vorherzusagen und anschließend in die Annotationssoftware integriert. Dies führte zu einer weiteren Erhöhung der Annotationsgeschwindigkeit und verringerte die Zeit für das Markieren der Orientierungspunkte jedes Ohrs erheblich.
Verwendete Technologien
Dieses Projekt wurde in Python unter Verwendung von NiceGUI zur Erstellung der UI für die interne Anwendung implementiert.