Einige Ideen:
1) Mehrere Bilder: Statt nur ein. Als Rodrigo kommentiert und Brad Larson versucht, mit seiner Methode zu umgehen, das Problem mit dem Benutzer nur ein Bild für die Eingabe ist, dass Sie notwendigerweise Informationen fehlen, um eine Triangulation und bilden eine Punktwolke in 3D. Mit 4 Bildern aus einem etwas anderen Blickwinkel können Sie bereits Teile des Objekts rekonstruieren. Der Vergleich von Punktwolken würde das Unterfangen für jeden ML-Algorithmus, neuronale Netzwerke (NN), Support Vector Machine (SVM) oder andere viel einfacher machen. Ein gebräuchlicher Standard zur Erstellung von Punktwolken ist ASTM E2807, der das Dateiformat e57 verwendet.
Auf der anderen Seite kann ein 3D-Vision-Algorithmus schwer auf dem Gerät des Benutzers sein, und ist nicht am einfachsten zu implementieren.
2) Künstliches Bildtraining: Durch Training auf vorberechneten künstlichen Bildern, wie Brad Larson vorgeschlagen hat, übernehmen Sie einen Großteil der Berechnungen, zum Nutzen des Benutzers. Sei dir bewusst, dass du wahrscheinlich "features" aus den Bildern extrahieren solltest, nicht das komplette Bild, um sowohl zu trainieren als auch zu klassifizieren. Das Problem bei dieser Methode besteht darin, dass Sie möglicherweise sehr empfindlich auf Beleuchtung und Hintergrundkontext reagieren. Sie sollten darauf achten, CAD-Bilder zu erzeugen, die für alle Objekte die gleichen Beleuchtungsbedingungen haben, damit der Klassifikator bestimmte Aspekte der "Bilder", die nicht zum Objekt gehören, nicht überzeichnet.
Dieser Aspekt ist, wo Lösung 1) viel stabiler ist, ist es weniger anfällig für den visuellen Kontext.
3) Maßstab: Die Größe Ihres Objekts ist ein wichtiger Deskriptor. Sie sollten daher Ihrem Objektdeskriptor vor dem Training Skaleninformationen hinzufügen. Sie könnten den Benutzer bitten, Bilder mit einem Referenzobjekt zu machen.Alternativ können Sie den Benutzer bitten, eine Faustregel der Objektgröße ("Was sind die ungefähren Abmessungen des Objekts, in [cm]?") Zu machen. Durch die Angabe der Größe könnte Ihr Algorithmus erheblich schneller und genauer werden.
Was Sie fragen, ist nicht trivial, um es gelinde auszudrücken. Sie können dies möglicherweise vereinfachen, indem Sie es eher als 2D-Bildklassifizierungsproblem behandeln. Vielleicht könntest du die Erzeugung einer Bank von 2-D Trainingsbildern aus diesen Teilen in verschiedenen Winkeln beschreiben. Sie müssten sicherstellen, dass diese Trainingsbilder denen ähneln, die jemand unter verschiedenen Lichtbedingungen in einem Teil der realen Welt sehen würde, sodass Sie ein ziemlich realistisches Rendering mit einer Vielzahl von Hintergründen benötigen. Kombinationen von Materialien, Behandlungen usw. würden zu einer großen Matrix möglicher Klassen führen. –
Ich kann mehrere Png-Dateien mit einem Skript exportieren, das ich bereits habe, aber ich habe nicht gedacht, dass ich zu diesen Bildern realistische Hintergründe und Beleuchtung hinzufügen musste, um es erfolgreicher zu machen, Sie machen einen ziemlich guten Punkt. Danke vielmals. –
Warum kann es nicht möglich sein, den Lernalgorithmus der Maschine so zu gestalten, dass er verschiedene Umgebungslicht-Renderings selbst erzeugt und trainiert und es sich so offensichtlich anfühlt, warum viele Leute nicht daran gedacht haben? –