Einzelnen Beitrag anzeigen

hanvas

Registriert seit: 28. Okt 2010
168 Beiträge
 
Delphi 11 Alexandria
 
#19

AW: Neuronale Netze - Erklärung für 'nen 13-Jährigen gesucht :D

  Alt 15. Jul 2015, 12:45

Ich suche nach einer Art Mustererkennung in Bildern. Beispielsweise Farben oder Formen.

Wäre sowas mit neuronalen Netzen denkbar?
Natürlich kann man so etwas mit neuronalen Netzen machen.

Aber bei speziellen Problemen gibt es bessere und oft auch einfachere (im Sinne von einfacher zu Verstehen, nicht im Sinne von einfacher zu implementieren) Lösungen


Beispiel: Es gibt Bilder, die immer einen roten Kreis ähnlicher Größe haben, aber an unterschiedlichen Positionen.

Könnte ein neuronales Netz diese Ähnlichkeiten erkennen und von Bildern unterscheiden, die keinen roten Kreis haben?
Die Stärken von neuralen Netzwerken liegen darin das diese eine gewisse Abstraktionsfähigkeit haben. Mit anderen Worten, wenn Dein Ausgangsmaterial verrauscht ist und viele Bildstörungen hat die mit "normalen" Methoden der Bildbearbeitung nicht in den Griff zu bekommen sind (man kann sehr viel Bildstörungen in den Griff bekommen) dann wären neuronale Netzwerke tatsächlich eine gute Wahl, auch dann wenn es mal rote Kreise, mal orange Ellipsen und ab und zu Rechtecke mit abgerundeten Ecken sind könnte ein neuronales Netz durchaus erkennen.

Wenn Du hingegen saubere unverrauschte Bilder hast dann ist deine Frage tatsächlich nur die ist "hat roten Kreis", dann hast Du ein gutes Beispiel dafür das andere Lösungen unter Umständen besser geeignet sind.

Am zuverlässigsten wäre dann dein Problem gelöst wenn Du deine Bilder mit Hilfe der Hough-Transformation analysierst. (https://de.wikipedia.org/wiki/Hough-Transformation). Die (generalisierte) Hough - Transformation wäre auch in der Lage beliebige Formen zu finden so lange diese mathematisch beschreibbar sind.

Du bekämst als Ergebnis eine Liste mit Kreisen bei denen Du dann nur noch testen müsstest ob diese tatsächlich rot sind. Eine fast fertige Implementierung findest Du in den Beispielen zu https://github.com/Laex/Delphi-OpenCV.

Kann man sowas mit Hagens Komponente realisieren?

Mein Ansatz wäre die Bilder zu vereinfachen, was die Pixelanzahl angeht (Skalieren auf eine bestimmte Größe) und dann für jedes Pixel ein "Neuron" zu erzeugen. Dann würde ich das Netz mit bekannten Bildern trainieren (falschen und richtigen).
Ist das zu naiv gedacht oder könnte das gehen?
Prinzipell wäre das schon möglich. Aber es kommt wirklich auf die ganz konkrete Frage an um sagen zu können welche Architektur die geeignetste wäre.

cu Ha-Jö
  Mit Zitat antworten Zitat