---
title: "Ein Objekt anlegen"
product: "LumiScan Object Finder"
component: "lumiscan-object-finder-de"
version: "1.1.0"
display_version: "1.1.0.7"
latest_version: true
language: "de"
url: "https://docs.hdvisionsystems.com/de/lumiscan-object-finder-de/1.1.0/lumiscan-object-finder/creating-an-object.html"
---

# Ein Objekt anlegen – LumiScan Object Finder

`system/create-object` schneidet ein Rechteck aus einem Live-Kamerabild aus und speichert es als Objekt. So lernen Sie ein Objekt mit der echten Kamera, in der echten Beleuchtung, im echten Arbeitsabstand ein.

Es ist eine **anwendungsweite** Operation, keine modulbezogene: Sie schreibt in das eine Objektverzeichnis, das alle Module teilen, sodass ein einmal eingelerntes Objekt von jedem Modul gefunden werden kann.

## Eingaben

| Knoten | Bedeutung |
| --- | --- |
| `input/input-image-address` | Adresse des Bildknotens, aus dem ausgeschnitten wird. |
| `input/object-id` | Der Name des Objekts. Wird zu `<object-id>.png` und erscheint auf `system/objects`. Ein bestehendes Objekt dieses Namens wird **überschrieben**. |
| `input/crop/startX`, `startY` | Linke obere Ecke der auszuschneidenden Region. |
| `input/crop/width`, `height` | Größe der Region. Beide müssen größer als 0 sein. |

## Ein Objekt einlernen

1. Legen Sie das Teil in der Orientierung vor die Kamera, in der es tatsächlich ankommt.
2. Setzen Sie `object-id` auf den Namen des Objekts.
3. Setzen Sie den Ausschnitt um das Teil und schreiben Sie auf `execute`.

```
system/create-object/input/input-image-address = hdvisionsystems/lumiscan-cam-driver/camera1/output/image
system/create-object/input/object-id           = screw-m6
system/create-object/input/crop/startX         = 820
system/create-object/input/crop/startY         = 400
system/create-object/input/crop/width          = 160
system/create-object/input/crop/height         = 120
write system/create-object/execute
```

Das Bild wird nach `<object-dir>/screw-m6.png` geschrieben, und `system/objects` übernimmt es sofort.

## Mehrere Orientierungen

Der Detektor dreht das Bild nicht, also ist ein Objekt ein Erscheinungsbild. Ein Teil, das in mehr als einer Orientierung ankommt, braucht **ein Objekt pro Orientierung** - `screw-m6-front`, `screw-m6-tilted` - und einen `find-object`-Durchlauf für jedes.

> [!TIP]
> **Beginnen Sie mit den Orientierungen, in denen das Teil wirklich ankommt.** Jede zusätzliche Ansicht kostet etwas Matching-Zeit und bringt Toleranz gegenüber genau dieser Orientierung - Ansichten, die Sie nie sehen werden, bringen nichts.

## Wie eng der Ausschnitt sein sollte

Lassen Sie **einige Pixel Hintergrund** um das Teil - aber nur wenige. Beide Richtungen kosten etwas, und die zu enge Seite ist diejenige, die unbemerkt fehlschlägt.

Der Detektor stützt sich auf Gradienten, und eine Kante existiert nur dort, wo auf der anderen Seite etwas anderes ist. Schneiden Sie genau entlang der Silhouette des Teils, ist auf der anderen Seite nichts, und die Kontur erzeugt **überhaupt keine Merkmale**. Der Detektor glättet mit 7x7 und wendet dann einen 3x3-Sobel an, beide mit nach außen replizierten Randpixeln. Daher verwirft er den äußersten Ring des Bildes und berechnet etwa 4 Pixel von jedem Rand nach innen abgeschwächte Gradienten.

> [!WARNING]
> Ein Ausschnitt, der an der Silhouette endet, verbirgt die Kontur des Teils vor dem Detektor. Entweder wird das Objekt **rundweg abgelehnt** - gemeldet als fehlgeschlagener Durchlauf, der es benennt, denn eine Vorlage muss eine Mindestzahl starker Gradientenpunkte liefern - oder es wird angenommen, aber nur auf die inneren Details des Teils gestützt. Der Detektor verkleinert die Vorlage auf die Region, in der er Merkmale gefunden hat, und matcht dann auf weniger, als das Bild zeigt; ein Teil, das sich vor allem durch seine Kontur auszeichnet, matcht dann schlecht.

Etwa **5 Pixel Rand genügen**, und mehr bringt nichts. Hintergrund innerhalb der Vorlage ist Hintergrund, den der Detektor dann zu sehen erwartet. Ein zu weiter Ausschnitt, der eine Werkbankkante oder ein benachbartes Teil einschließt, macht das Matching also weniger zuverlässig. Streben Sie ein dünnes, gleichmäßiges Band der Oberfläche an, auf der das Teil normalerweise liegt.

Bei Erfolg meldet `output/object-path` die geschriebene Datei, relativ zum Konfigurationsverzeichnis, und `system/objects` wird aktualisiert. Jedes Modul trainiert vor seiner nächsten Erkennung neu, sodass eine neue Ansicht sofort nutzbar ist.

## Fehler

Der gesamte Ausschnitt muss innerhalb des Bildes liegen. Eine Region, die darüber hinausgeht, wird abgelehnt; die Meldung nennt den Rand und die Bildgröße:

```
error: Crop region does not fit inside the 1920x1080 image: crop/startY + crop/height
(1000 + 200 = 1200) exceeds the image height 1080
```

`object-id` wird relativ zum Konfigurationsverzeichnis interpretiert. Ein absoluter Pfad oder einer, der mit `..` hinausführt, wird mit Status `-2` abgelehnt.

`output/object-path` wird geleert, wenn ein Durchlauf beginnt, sodass ein fehlgeschlagener Durchlauf nie einen Pfad auf eine Vorlage hinterlässt, die er nicht geschrieben hat. Siehe [Ausführungsstatus](https://docs.hdvisionsystems.com/de/lumiscan-object-finder-de/1.1.0/lumiscan-object-finder/execution-status.html).

Fehler sind Schritt für Schritt unter [Fehlerbehebung](https://docs.hdvisionsystems.com/de/lumiscan-object-finder-de/1.1.0/troubleshooting.html) beschrieben:

- [Die Ausschnittsregion passt nicht in das Bild](https://docs.hdvisionsystems.com/de/lumiscan-object-finder-de/1.1.0/troubleshooting.html#faq-crop-does-not-fit)
- [Der Durchlauf schlägt fehl und benennt das Objekt](https://docs.hdvisionsystems.com/de/lumiscan-object-finder-de/1.1.0/troubleshooting.html#faq-object-refused-bin-size)
- [Statuscode `-2` (ungültige Eingabe)](https://docs.hdvisionsystems.com/de/lumiscan-object-finder-de/1.1.0/troubleshooting.html#ts-status-minus-2)
