Deep Learning Framework: KotlinDL 0.4 mit PoseDetection API

JetBrains hat die Einführung neuer Modelle in ModelHub und einer High-Level API für die aktuelle Version 0.4 des Frameworks KotlinDL angekündigt.

In Pocket speichern vorlesen Druckansicht

(Bild: paul prescott/Shutterstock.com)

Lesezeit: 3 Min.
Von
  • Frank-Michael Schlede
Inhaltsverzeichnis

Das Deep Learning Framework KotlinDL 0.4 ist verfügbar. Zu den Neuerungen und Änderungen gehört unter anderem eine noch als experimentell bezeichnete High-Level API für die sogenannte "Pose Detection", mit deren Hilfe die Haltung (Pose) einer Person in einem Bild oder einem Video erkannt werden kann.

Die neue Deep-Learning-API für Kotlin steht im Repository Maven Central zum Download bereit. Die Macher hinter dieser Bibliothek haben eine ganze Reihe neuer Modelle eingeführt und führen die noch in der Entwicklung befindliche "Pose Detection" als die wichtigste Neuerung bei diesem Release des Frameworks auf.

Bei dieser Erkennung von Haltungen kommt ein ML-Modell zum Einsatz, um die Körperhaltung einer Person in einem Bild oder einem Video zu erkennen. Dazu ermittelt die Software die räumlichen Positionen der wichtigsten Körpergelenke (Keypoints).

Die Kotlin-Deep-Learning-API kann Körperhaltungen in Bildern und Videos erkennen und markieren.

(Bild: JetBrains)

JetBrains hat dafür die MoveNet-Familie von Erkennungsmodi mit einer neuen Posenerkennungs-API in KotlinDL entwickelt. Laut dem Blog-Artikel der Entwickler handelt es sich bei MoveNet um ein schnelles und genaues Modell, das 17 Keypoints am Körper erkennt. Das Modell wird auf ONNXModelHub in zwei Varianten angeboten: MoveNetSinglePoseLighting und MoveNetSinglePoseThunder. Dabei ist MoveNetSinglePoseLighting für latenzkritische Anwendungen gedacht, während MoveNetSinglePoseThunder für Anwendungen entwickelt wurde, die eine hohe Genauigkeit erfordern.

Der ModelHub von KotlinDL enthielt bis zu dieser Version 0.4 nur ein Model (SSD), das für die Lösung des Object-Detection-Problems geeignet war. Mit der neuen Version haben die JetBrains-Entwickler damit begonnen, die Fähigkeiten der Bibliothek zur Lösung des Object-Detection-Problems schrittweise zu erweitern. Dazu haben sie eine neue Familie von Objektdetektoren eingeführt, die als EfficientDet bezeichnet werden. Sie sollen über ein breites Spektrum von Ressourcenbeschränkungen hinweg eine viel bessere Effizienz als frühere Objektdetektoren erreichen können.

In den vorherigen Versionen von KotlinDL war die Unterstützung von Callbacks ziemlich einfach, aber nicht vollständig mit der Deep-Learning-Library Keras kompatibel. Das hatte zur Folge, dass Benutzer Schwierigkeiten bei der Implementierung ihrer neuronalen Netze, dem Aufbau des benutzerdefinierten Validierungsprozesses und der Überwachung des Trainings des neuronalen Netzes hatten.

Ein Callback-Objekt wurde bisher während der Kompilierung übergeben und war für jede Phase im Lebenszyklus des Modells eindeutig. Die Modellkompilierung kann sich jedoch an anderen Stellen im Code befinden als Fit/Predict/Evaluate. Das bedeutet, dass die Benutzer für unterschiedliche Zwecke unterschiedliche Callbacks erstellen müssen, was mit KotlinDL 0.4 nun möglich ist. Ein ausführliches Beispiel für die Unterstützung von multiplen Callbacks stellen die JetBrains-Entwickler auf GitHub bereit.

Der Artikel im Kotlin-Blog bietet bereits einen sehr umfassenden Überblick über die Neuerungen in KotlinDL 0.4. Entwickler, die weitere und tiefer gehende Informationen benötigen, finden diese in einer Readme-Datei und auf der Projektseite von KotlinDL. Dort finden sie auch einen “Quick Start Guide“, der detaillierte Informationen zu den grundlegenden und fortgeschrittenen Funktionen der Bibliothek enthält und auf die im Blogbeitrag erwähnten Themen näher eingeht.

(fms)