In meinen Projekten, so auch bei CulinAIBot, nutze ich YoloV8x von Ultralytics für die Objekt Detection, denn ich will sehr genau entscheiden können, welche Pixel auf dem Bild, zu welchem Teil gehören.
Für die Objekterkennung nutze ich das YOLOv8x-Extremmodell, da es schnell und einfach trainierbar ist. Außerdem basiert es auf PyTorch, einer Bibliothek, die für maschinelles Lernen und insbesondere für die Objekterkennung verwendet wird. Ein Vorteil von YoloV8x ist, dass es die wichtigen Methoden für das Trainieren und Testen des Modelles mitbringt.
Als Umgebung für das Training dieser Modelle haben ich meinen PC (mit 2x RTX3090) genutzt, weil der Code für YoloV8x sehr performant läuft und ich somit sehr schnell Trainingserfolge erzielen konnte. Hierbei habe ich folgende Einstellungen getroffen: Epoche=100, Batch size= 100, optimizer=adam, learning rate= 0.1, Bildgröße=640.
Als Trainings- und Validation-Split wähle ich in meinem Projekten immer 90% (Training) / 10% (Validation).
Der Test der Erkennung der Lebensmittel in der Küche zeigt, dass diese mit dem CulinAIBot.pt Model in Echtzeit über die Kamera des CulinAIBot möglich ist. Wo hingegen vor zwei Jahren mit Yolo5 noch 1000 Bilder pro Klasse nötig waren um eine Genauigkeit von > 85% zu erreichen, sind mit Yolo8 zum Training der ersten 15 Klassen gerade mal 100 Bilder in denen die Lebensmittel und weiteren Objekte gemeinsam enthalten waren, um eine Trainingsgenauigkeit von 95% zu erreichen. Für die aktuell 53 Klassen nutze ich 1020 Bilder um diese Trainingsgenauigkeit zu erreichen. Dadurch ist auch die Trainingszeit erheblich reduziert.
![]() |
Erkannte Objekte
![]() | ![]() |
![]() | ![]() |
![]() | ![]() |
![]() | ![]() |