FAQ
Kurze Antworten auf häufige Fragen zu LumiScan Object Finder. Jeder Eintrag verweist auf die Seite mit den Details.
Jeder Eintrag hat einen festen Anker (zum Beispiel #faq-pixel-formats). Probleme, Fehlermeldungen und Statuscodes sind Schritt für Schritt unter Fehlerbehebung beschrieben.
|
Voraussetzungen und Einrichtung
Auf welchen Plattformen läuft der Object Finder, und welchen Data Layer verwendet er?
- Antwort
-
Auf ctrlX OS (ctrlX CORE oder ctrlX IPC) verwendet er den ctrlX Data Layer; auf einem PC mit Windows 11 oder Ubuntu 24.04 verwendet er LumiScan Keryx, den Data Layer von HD Vision Systems für PCs. Die Knotenadressen, Typen und die Art, wie die Methoden aufgerufen werden, sind auf beiden gleich, sodass ein für den einen geschriebenes Programm auch mit dem anderen funktioniert. Nur die Namen der Ergebnisse eines Methodenaufrufs unterscheiden sich, zum Beispiel
DL_TOO_MANY_OPERATIONSauf dem ctrlX Data Layer undTooManyOperationsbei LumiScan Keryx. - Mehr
Welche Bildquelle braucht der Object Finder?
- Antwort
-
Die Anwendung kommuniziert nicht selbst mit einer Kamera. Sie liest den Bildknoten einer anderen Anwendung, die auf demselben Gerät läuft - demselben ctrlX CORE oder ctrlX IPC oder demselben PC (ein Zugriff auf einen entfernten Data Layer wird nicht unterstützt), normalerweise LumiScan Cam Driver, zum Beispiel
hdvisionsystems/lumiscan-cam-driver/camera1/output/image. Jede Anwendung funktioniert, wenn ihr Bildknotendata(rohe, unkomprimierte uint8-Pixeldaten),width,heightundpixel-type(Name des GenICam-Pixelformats) bereitstellt. - Mehr
Welche Pixelformate werden unterstützt?
- Antwort
-
Mono8,Mono12,RGB8,RGB12,BGR8,BGR12,BayerGR8,BayerGR12,BayerRG8undBayerRG12. Bayer-Bilder werden vor dem Matching in Farbe umgewandelt und 12-Bit-Bilder auf 8 Bit herunterskaliert. Jedes andere Pixelformat wird mit Statuscode-3abgelehnt. - Mehr
Objekte einlernen
Wie lerne ich ein Objekt von der Live-Kamera ein?
- Antwort
-
Verwenden Sie
system/create-object; es ist anwendungsweit, sodass ein einmal eingelerntes Objekt von jedem Modul gefunden werden kann:-
Legen Sie das Teil vor die Kamera, in der Beleuchtung, die die Installation verwenden wird.
-
Setzen Sie
system/create-object/input/input-image-address,input/object-id(zum Beispielscrew-m6) undinput/crop/startX,startY,width,height(Breite und Höhe größer als 0). -
Schreiben Sie auf
system/create-object/executeund prüfen Sie, oboutput/status-code1ist. -
Das Bild wird als
<object-id>.pnggespeichert,output/object-pathnennt die Datei, undsystem/objectslistet das neue Objekt. Ein bestehendes Objekt mit derselben ID wird überschrieben.
-
- Mehr
-
Ein Objekt anlegen, Anleitung: Ein Teil in einem Kamerabild finden
Wie eng soll ich beim Einlernen eines Objekts ausschneiden?
- Antwort
-
Lassen Sie etwa 5 Pixel Hintergrund um das Teil; mehr bringt nichts. Ein Ausschnitt, der an der Silhouette endet, verbirgt die Kontur vor dem Detektor: Das Objekt wird entweder als fehlgeschlagener Durchlauf abgelehnt, der es benennt, oder angenommen, aber nur auf die inneren Details des Teils gestützt. Ein zu weiter Ausschnitt, der eine Werkbankkante oder ein benachbartes Teil einschließt, macht das Matching weniger zuverlässig, denn Hintergrund im Bild ist Hintergrund, den der Detektor dann zu sehen erwartet.
- Mehr
Wie wechsle ich zu einem anderen Objektverzeichnis?
- Antwort
-
Schreiben Sie
system/set-object-dir/input/object-dirund schreiben Sie aufsystem/set-object-dir/execute. Schreiben Sie nicht direkt aufsystem/object-dir: Das ändert den angezeigten Wert, aber nicht das Verzeichnis, das die Anwendung liest. Das Verzeichnis muss im Konfigurationsverzeichnis bereits existieren; absolute Pfade und Pfade, die mit..hinausführen, werden mit Status-2abgelehnt. Ein abgelehnter Aufruf ändert nichts, und die Wahl wird gespeichert. - Mehr
Finden und Abstimmen
Wie führe ich eine Suche aus und lese das Ergebnis?
- Antwort
-
Setzen Sie
<module>/find-object/input/input-image-addressundinput/object-id, schreiben Sie auf<module>/find-object/execute(ein blockierender Aufruf) und lesen Sieoutput/status-code.input/object-idist erforderlich: Ein leerer Wert wird mit-2abgelehnt. Jeder Durchlauf sucht nach einem Objekt; um gemischte Teile zu sortieren, führen Sie ihn einmal pro Objekt aus und vergleichen die Scores. Bei1lesen Sieoutput/result:matchesist nach Score sortiert, sodassmatches[0]der beste ist. Jeder Treffer liefert die linke obere Eckex,y,widthundheightder Vorlage, die übereingestimmt hat, denscore(0 bis 1) und dieobject_id. Das Rechteck ist achsenparallel; das Ergebnis enthält keine Rotation. - Mehr
Wie wähle ich den Konfidenz-Schwellwert?
- Antwort
-
Messen statt raten. Setzen Sie
input/confidence-thresholdniedrig (0.4), führen Sie die Suche mit echten Teilen aus, notieren Sie die Scores inoutput/resultund setzen Sie den Schwellwert etwas unter den schlechtesten Score, den ein echtes Teil erzeugt. Der Standardwert ist0.6; ein Schwellwert ab0.9lehnt in der Regel alles ab. Liegen die echten Scores nahe am Schwellwert oder sind die Bilder verrauscht, setzen Sieinput/preprocess/blur-sigma-xauf1.0(die Glättung ist standardmäßig aus) und messen Sie erneut. - Mehr
Wie kann ich die Suche beschleunigen?
- Antwort
-
-
Schränken Sie den Bereich mit
input/cropein; das kostet keine Präzision. -
Erhöhen Sie
input/preprocess/bin-size. Auf einem 1920x1080-Bild mit einem 128x128-Objekt war2gemessen etwa 6x und4etwa 14x schneller. Positionen werden aufbin-sizePixel quantisiert, und ein zu weit gebinntes Objekt wird abgelehnt. -
Suchen Sie nach weniger Objekten; jedes
executeverarbeitet das ganze Bild erneut. -
Halten Sie die Einstellungen zwischen Durchläufen stabil: Der Detektor wird beim ersten Durchlauf kompiliert und bei jeder Änderung einer Eingabe neu aufgebaut, was weit mehr kostet als eine Erkennung.
-
input/pyramidzu erhöhen macht die Suche nicht schneller; gemessen ist sie etwas langsamer.
-
- Mehr
Kann der Object Finder jedes Bild durchsuchen, das eine Kamera streamt?
- Antwort
-
Ja, als experimentelle Funktion. Ein Modul abonniert den Stream einer Kamera und durchsucht jedes Bild mit den Eingaben von
find-object(alle außerinput/input-image-address); es veröffentlicht ein Ergebnis pro Bild auf<module-id>/control/subscribe/output/stream/result:-
Stellen Sie sicher, dass der Stream des Cam Driver läuft.
-
Schreiben Sie den Stream-Ordner der Kamera, zum Beispiel
hdvisionsystems/lumiscan-cam-driver/camera1/control/publish/output/stream, auf<module-id>/control/subscribe/input/address. -
Setzen Sie
control/subscribe/input/enableauftrueund schreiben Sie aufcontrol/subscribe/execute.enableallein zu schreiben startet nichts. -
Warten Sie, bis
control/subscribe/output/stream/activetrueist. -
Was
control/subscribe/executeanwendet, wird in<module-id>.jsongespeichert, sodass ein Modul, das gestreamt hat, nach einem Neustart wieder streamt. Für eine SPS schalten Siecontrol/subscribe/input/keep-latest-outputein und lesenfind-object/output/result.
-
- Mehr
-
Objekte auf einem Bild-Stream finden (experimentell), Streams (experimentell)
Statuscodes und Fehler
Woher weiß ich, ob eine Operation funktioniert hat, und wo steht der Grund für einen Fehler?
- Antwort
-
Prüfen Sie das Vorzeichen von
output/status-code: größer als 0 ist Erfolg,0bedeutet, dass die Operation seit dem Start der Anwendung nicht gelaufen ist, kleiner als 0 bedeutet, dass sie fehlgeschlagen ist und nichts erzeugt hat. Der Grund steht aufoutput/status-text, der mitok:odererror:beginnt; ungültige Eingaben werden gemeinsam gemeldet, jede mit Nennung der Eingabe und ihres Werts. Ein fehlgeschlagener Schreibvorgang aufexecuteantwortet nur mit einem Statuscode (über REST ein bloßes400), lesen Sie also anschließendoutput/status-text; der Text steht auch im Anwendungsprotokoll: auf ctrlX OS im ctrlX Logbook oder mitjournalctl, auf einem PC in der Konsolenausgabe der Anwendung.-1(busy) bedeutet, dass eine andere Operation desselben Moduls noch lief; es wurde nichts getan. - Mehr
Fehlerbehebung
Probleme und Fehlermeldungen sind Schritt für Schritt unter Fehlerbehebung beschrieben:
Module, Lizenzierung und Support
Welche Lizenz brauche ich, und wie viele Module deckt sie ab?
- Antwort
-
Eine Lizenz deckt zehn Module ab; das elfte Modul belegt eine zweite Lizenz desselben Schlüssels, und ein Modul wird mit Status
-11abgelehnt, wenn keine Lizenz auf dem Gerät es abdeckt. Bezugswege:-
Bei HD Vision Systems gekauft: Die Lizenz ist auf einem LumiScan Key (Windows 11 oder Ubuntu 24.04). Pro Gerät, auf dem die Software gleichzeitig läuft, ist ein LumiScan Key nötig; Keys können zwischen Geräten getauscht werden.
-
Im ctrlX Store für Windows 11 gekauft: ctrlX WORKS plus ein LumiScan Key.
-
Im ctrlX Store für ctrlX OS (ctrlX CORE oder IPC) gekauft: eine ctrlX-Lizenz, kein Key.
-
- Mehr
Wo finde ich weitere Antworten oder bekomme Support?
- Antwort
-
Siehe die übergreifende LumiScan-FAQ. Wenden Sie sich an den Customer Success von HD Vision Systems unter customer.success@hdvisionsystems.com oder +49 6221 6721905; für Lizenzen an licenses@hdvisionsystems.com.
- Mehr