Eine Szene analysieren
system/analyse-scene misst ein Bild und sagt Ihnen, auf welchen Wert ein fester Schwellwert
eingestellt werden müsste, um die Teile darin zu messen. Die Analyse berichtet; sie ändert nichts.
Sie liegt unter system/ und nicht in einem Modul, weil die Antwort das Bild betrifft. Zehn Module,
die auf dieselbe Kamera schauen, hätten dieselbe Frage zehnmal gestellt und dieselbe Antwort
zurückbekommen.
Was sie braucht
| Knoten | Typ | Standard | Bedeutung |
|---|---|---|---|
|
string |
|
Der zu analysierende Bildknoten. Ihr eigener, nicht der eines Moduls. |
|
uint16 |
0 |
Die zu analysierende Region; lauter Nullen bedeuten das ganze Bild. |
|
int32 |
0 |
Eine verkleinerte Kopie messen: Jeder Block von |
|
int32 |
256 |
Wie fein |
bin-size und histogram-bins sind verschiedene Stellschrauben. bin-size verkleinert das Bild,
das die Analyse misst, und will eine kleine Zahl. histogram-bins legt nur fest, wie die Grauwerte in
Klassen eingeteilt werden, und 256 - eine Klasse pro Grauwert - ist meist richtig.
|
Was sie meldet
output/recommended-settings ist die praktische Ausgabe: eine Liste von node=value-Zeilen, relativ
zum detect-area/input/ eines Moduls, mit dem einzustellenden Schwellwert, der Angabe, welche Seite das
Teil ist, und ob eine Region als die Form gemessen werden muss, die ihr Umriss einschließt. Nichts wird
für Sie geschrieben - lesen Sie die Zeilen und setzen Sie die Werte bewusst.
output/histogram ist das Mittel, um diesen Rat zu prüfen. Ein fester Schwellwert sollte im Tal
zwischen dem Buckel des Teils und dem des Hintergrunds liegen, und eine einzelne vorgeschlagene Zahl
kann Ihnen nicht zeigen, ob es ein Tal gibt, zwei oder gar keines. Es wird auf dem zugeschnittenen Bild
in voller Größe gezählt, vor jeder mit bin-size angeforderten Verkleinerung, und beschreibt daher das
Bild und nicht eine Neuabtastung davon.
Die übrigen Ausgaben beschreiben das Bild: parts-are-dark, parts-touching, region-count,
expected-region-count, illumination-spread, separability, feature-thickness und
area-sensitivity. output/findings sagt in Worten alles Wissenswerte, einschließlich der Fälle, in
denen kein Schwellwert funktionieren wird.
Die Ausgabe, die Sie zuerst lesen sollten
area-sensitivity beantwortet die Frage "Hält ein fester Schwellwert hier?". Sie gibt an, wie stark
sich die gemessene Fläche bewegt, wenn sich der Schwellwert um einen Grauwert verschiebt - kleiner
ist besser, und unter 0 gibt es nichts anzustreben.
| Wert | Was er bedeutet |
|---|---|
|
Eine harte Kante. Der Schwellwert liegt in einem leeren Tal; ein fester Schwellwert ist sicher. |
|
Immer noch komfortabel. |
|
Spröde. Ein Grauwert kostet 5 % des Messwerts. Ein fester Schwellwert ist hier nicht sicher einzustellen, und die Anwendung sagt das in |
|
Ein Bild, das überhaupt nicht stillhält. |
Die entscheidende Rechnung ist area-sensitivity × Drift in Grauwerten = relativer Fehler. Bei 0.05
verschiebt eine Lampe, die über eine Schicht um zehn Grauwerte altert, Ihren Messwert um die Hälfte.
Es kostet Sie nur etwas, wenn sich etwas bewegt
Ein hoher Wert unter einer stabilen Lampe ist ein konstanter Versatz: Er lässt sich aus einem absoluten Messwert herauskalibrieren und hebt sich vollständig auf, wenn Sie ein Teil mit einem anderen vergleichen. Er schadet, wenn sich die Beleuchtung oder der Schwellwert bewegt. Lesen Sie diese Zahl also zusammen damit, wie stabil Ihre Zelle tatsächlich ist.
Ein sprödes Bild beheben
Nichts in detect-area/input/ behebt es. Diese Anwendung bietet eine Schwellwertmethode, FIXED; es
gibt also keinen durchlaufenden oder adaptiven Schwellwert, hinter dem man sich verstecken könnte - ein
sprödes Bild wird an der Kamera behoben.
Die Empfindlichkeit ist ungefähr Umfang × Breite der Kantenrampe / (Kontrast × Fläche), woraus sich
drei Hebel ergeben. Arbeiten Sie die Tabelle von oben nach unten ab:
| Hebel | Was die Zahl erhöht | Was zu tun ist |
|---|---|---|
Kantenweichheit |
Defokussierung, Bewegungsunschärfe, Sensorrauschen bei hoher Verstärkung. Meist die größte Ursache und die am wenigsten vermutete - dieselbe Szene defokussiert, mit unveränderter Beleuchtung, lässt diese Zahl auf mehr als das Doppelte steigen. |
Neu fokussieren. Belichtungszeit verkürzen oder das Teil ruhigstellen, um Bewegungsunschärfe zu beseitigen. Verstärkung senken und stattdessen Licht hinzufügen. Bessere Optik. |
Kontrast |
Ein schmaler Grauwertabstand zwischen Teil und Hintergrund, sodass der Kantenübergang flach verläuft. |
Beleuchtung: Durchlicht, Winkel ändern, einen Diffusor oder Polarisator hinzufügen, den Hintergrund ändern. |
Merkmalsgröße |
Dünne oder filigrane Teile - viel Umfang bei sehr wenig Fläche. Liegt am Teil, nicht an Ihrem Aufbau. |
Mehr Pixel auf dem Teil: Vergrößerung, ein kürzerer Arbeitsabstand oder ein Sensor mit höherer Auflösung. |
Welcher Hebel Ihrer ist
Raten Sie nicht - die anderen Ausgaben benennen ihn, und sie haben in dieser Reihenfolge Vorrang voreinander:
-
illumination-spread, gemessen am Abstand zwischen Teil und Hintergrund. Variiert das Licht um mehr als etwa ein Drittel dieses Abstands, ist ungleichmäßige Beleuchtung das eigentliche Problem, und kein einzelner Schwellwert passt zum ganzen Bild. Beheben Sie das zuerst. -
feature-thickness. Unter etwa 8 px sind die Merkmale schlicht fein, und keine Lampenabstimmung ändert daran etwas - Sie brauchen mehr Pixel auf dem Teil. -
Erst dann ist es Kantenweichheit oder Kontrast.
output/findings sagt in Worten, welchen der drei es getroffen hat, den wichtigsten zuerst.