Bilderkennung Programmieren?

5 Antworten

Hallo alberttomasusw,

ein NN wird eine durchgehende Linie schon erkenne können, allerdings könntest Du diese auch mit einer sehr simplen Prüfung erreichen.

Du prüfst für jeder vertikale Bildlinie ob sich dort genau ein weißes Pixel befindet. Dann prüfst Du noch ob diese weißen Pixel mit ihren Nachbarn jeweils zusammenhängen.

Gruß


alberttomasusw 
Fragesteller
 03.03.2019, 20:18

Ja was du da beschreibst hoert sich so an wie man exakt gleiche Bilder erkennen koennte. Ich will etwas bauen das aehnliche Bilder erkennt.

0
AldoradoXYZ  03.03.2019, 20:19
@alberttomasusw

Was verstehst Du unter gleich? Der beschriebene Algorithmus erkennt alle Bilder positiv, die eine weiße Linie enthalten, die durchgehend von links nach rechts geht.

Was bedeutet also "ähnlich"? Hast Du ein Beispiel?

Gruß

0
alberttomasusw 
Fragesteller
 03.03.2019, 20:25
@AldoradoXYZ

Zum Beispiel wenn eine Linie an verschiedenen stellen andere zacken hat aber im groben gesehen aehnlich aussieht soll das erkannt werden. Ich denke man wird da irgendetwas einbauen muessen das Punkte vergibt wenn beim Bild welches beobachtet wird Aehnlichkeiten auftauchen und je nachdem wenn die Punktzahl ein bestimmten Wert erreicht koennte man sagen das es ein aehnliches Bild ist.

0
AldoradoXYZ  03.03.2019, 20:31
@alberttomasusw

Andere Zacken? Das sind halt anders verbundene weiße Punkte. Solange in jeder vertikalen Linie genau ein weißer Punkt ist, ist doch alles ok.

Du hast offenbar nur folgende Regeln:

  • Ein Punkt pro vertikale Linie (genau ein y für jedes x)
  • Jeder Punkt (außer Start und Ende) müssen zwei direkten Nachbarn besitzen

Gruß

0
alberttomasusw 
Fragesteller
 03.03.2019, 21:30
@AldoradoXYZ

Danke, ich glaub ich verstehe jetzt besser was du meinst. Im Prinzip werde ich auch nicht drum herum kommen in diesem Gebiet viele einzelne Test zu machen.

0
AldoradoXYZ  03.03.2019, 21:33
@alberttomasusw

Mh, ich sehe noch immer nicht wie Du auf "viele einzelne Tests" kommst.

Es sind doch recht wenige, einfache Bedingungen.

Ansonsten vielleicht noch 1-2 Beispielbilder?

Gruß

0
alberttomasusw 
Fragesteller
 03.03.2019, 21:42
@AldoradoXYZ
ich sehe hier keine Moeglilchkeit im Kommentar ein Bild ein zu fuegen, 
sonst koennte ich noch ein Bild zeigen das aehnlich aussieht.

Jedoch werde ich schon etwas mehr Erkennung programmieren muessen. 
Das Program soll nicht einfach nur erkennen ob eine weise Linie in einem 
schwarzen Bild zu sehen ist. Es soll erkennen ob diese weise Linie von 
Bild A aehnlich aussieht wie die weise Linie in Bild B. Also ich denke das
koennte man ein wenig vergleichen wie das erkennen von Zahlen in Bildern, wo
die Zahlen per hand geschrieben werden und immer bisjen anders aussehen
koennen, aber halt weitgehend erkannt werden sollen.
0
AldoradoXYZ  03.03.2019, 22:02
@alberttomasusw

Ah, ok verstehe. Der Verlauf der Linie soll auch "ähnlich" sein.

Du kannst die mittlere Abweichung der Linien berechnen. Dann stellst Du einen gewissen Schwellenwert ein.

Ansonsten ja, das kann ein NN natürlich auch ganz gut. Aber die Berechnung ist so simpel, dass das mit einfacher Logik auch geht.

Interessant sind Fälle wo die selbe Linie einfach x Pixel verschoben ist. Ziemlich ähnlich und sollte daher positiv erkannt werden. Wird bei automatischer Chartanalyse auch gemacht um die verschiedenen Muster zu erkennen.

Gruß

0
alberttomasusw 
Fragesteller
 03.03.2019, 22:08
@AldoradoXYZ

Ja ich denke auch das man es mit ein paar Vergleichsfunktionen bauen koennte. Ich werde da bisjen rumtesten. NN ist aber auch ein interessantes Gebiet wo ich mal vielleicht was bauen will, wobei es bestimmt mittlerweile schon viele fertige NN Sachen kostenlos gibt mit denen man arbeiten koennte. Aber der Anfang, der Einstieg ist immer das schwierigste, ich will beim Anfang schon so gut wie jede Kleinigkeit nachvollziehen koennen und das ist selbstbauen ein guter Lehrweg.

0
alberttomasusw 
Fragesteller
 03.03.2019, 22:10
@AldoradoXYZ

Wenn du zufaellig Sachen kennst fuer automatische Chartanalyse wuerde ich mich auch drueber freuen. Ich will zwar am liebsten alles selber bauen, aber ich schaue mir auch gerne fertige Sachen an.

0

Die Erkennung selbst ist einfach. Ebenso ist es einfach ein Bild zu finden, welches exakt gleich ist.

Das wäre dann einfach das Vergleichen von 2 2D-Arrays auf Gleichheit.

Interessanter ist da vmtl. eher die Linienerkennung.

Eine Möglichkeit: https://de.wikipedia.org/wiki/Hough-Transformation

Problematisch wird es Bilder zu erkennen, die ähnlich aber nicht gleich sind.

Wenn dich sowas interessiert: https://www.amazon.de/Digitale-Bildverarbeitung-algorithmische-Einführung-X-media-press/dp/3642046037


alberttomasusw 
Fragesteller
 03.03.2019, 20:18

Danke fuer die Links ich. Ich will versuchen aehnliche Bilder erkennen zu koennen.

0

Hallo, zwar etwas spät, aber du kannst eine Fourier Transformation Drüberlaufen lassen und dann das Fourier Transformierte Bild mit einer Weichzeichnerfunktion weichzeichnen und dann die werte von beiden Transformierten Weichgezeichneten Multiplizieren und dann das Integral davon bilden. Und dann hast du eine Fuzzy Logische Einschätzung dafür, wie ähnlich die Bilder sind. Je höher des do ähnlicher.