Frage

Algorithmus für eine Zeichnung und Lackierroboter -

Hallo

Ich möchte ein Stück Software schreiben, die ein Bild analysiert und erzeugt dann ein Bild, das ein menschliches Auge wahrnimmt, in dem Originalbild erfasst, was, variierend von Farbe und Opazität ein Minimum von Bezier-Pfadobjekte zu verwenden.

Im Gegensatz zu dem bisherigen twitter Super Kompression Wettbewerb ( zu sehen: stackoverflow.com/questions/891643/ twitter-Bild-Codierung-Herausforderung ) , mein Ziel ist nicht, eine Kopie zu erstellen, die das Bild treu ist, sondern die menschliche Erfahrung des Blicks auf dem Bild zu replizieren.

Als Beispiel wenn das Originalbild zeigt einen roten Ballon in der linken oberen Ecke, und die Wiedergabe hat etwas, das in der linken oberen Ecke wie ein roter Ballon sieht dann werde ich mein Ziel erreicht habe, auch wenn der Ballon in die Wiedergabe nicht ganz in der gleichen Position ist und nicht ganz die gleiche Größe oder Farbe.

Wenn ich sage „wie er von einem Menschen wahrgenommen“, meine ich dies in einem sehr begrenzten Sinne. i versucht, mich nicht die Bedeutung eines Bildes zu analysieren, brauche ich nicht zu wissen, was ein Bild ist, ich bin daran interessiert sind nur in den wichtigsten visuellen Merkmale ein menschliches Auge bemerken würde, soweit, dass dies durch eine automatisiert werden kann Algorithmus, der nicht die Fähigkeit hat zu konzipieren, was es tatsächlich beobachtet wird.

Warum diese ungewöhnlichen Kriterien der menschlichen Wahrnehmung über fotografische Genauigkeit?

Diese Software verwendet werden würde, eine Zeichnung und Lackierroboter zu fahren, die mit einem menschlichen Künstler zusammenarbeiten werden ( sehen. video.google.com/videosearch?q=mr%20squiggle )

Anstatt durch die menschliche gemachte Markierung behandelt wird, die nicht unbedingt fotografisch perfekt sind als Fehler zu sein, sollte der Algorithmus versuchen zu übernehmen, was auf der Leinwand ist bereits in das endgültige Bild.

So relative Helligkeit, Farbton, Sättigung, Größe und Position ist viel wichtiger als auf den ursprünglichen fotografisch identisch ist. Die Aufrechterhaltung der Topologie der Merkmale, Farbblock, Gradienten, konvexe und konkave Kurve wird mehr wichtig, die genaue Größe Form und Farbe dieser Merkmale

Immer noch mit mir?

Mein Problem ist, dass ich ein wenig von dem Leiden „wenn Sie nur ein Hammer alles wie ein Nagel aussieht“ -Syndrom. Für mich ist es die Art und Weise, dies zu tun scheint, wird mit Hilfe eines genetischen Algorithmus mit so etwas wie den Vergleich von Wavelet-Transformationen (siehe auch: grail.cs.washington.edu/projects/query/ ) (siehe auch: labs.systemone.at/retrievr/ ) passgenaue Lösungen zu wählen.

Aber der Hauptgrund, warum ich dies als Antwort sehen ist, dass diese das sind die Techniken, die ich kenne, es mit Hilfe von Techniken wahrscheinlich viel elegantere Lösungen sind ich nicht jetzt etwas über.

Es wäre besonders interessant sein zu berücksichtigen, die Art und Weise der menschliche Sehsystem ein Bild analysiert, so vielleicht besondere Aufmerksamkeit muss gerade Linien zu bezahlen, und Winkel, hohe Kontrast Grenzen und große Blöcke von ähnlichen Farben.

Haben Sie Vorschläge für Dinge, die ich auf Bildverarbeitung, Bild Algorithmen, genetische Algorithmen oder ähnliche Projekte lesen sollte?

Danke

Mat

PS. Einige der Rechtschreibung oben kann falsch erscheinen Sie und Ihre Rechtschreibprüfung. Es ist nur internationale Schreibvarianten, die von der Norm in Ihrem Land unterscheiden können: z Australian Standard: Farbe vs amerikanischen Standard: Farbe

War es hilfreich?

Lösung

Es ist ein Modell, das als Algorithmus implementiert kann eine Salienzenkarte für ein Bild zu berechnen, zu bestimmen, welche Teile des Bildes würde die meiste Aufmerksamkeit von einem Menschen erhalten.

Das Modell itti koch Modell
genannt wird Sie können eine Startin Papier finden hier
Und mehr Ressourcen und c ++ Quellcode hier

Andere Tipps

Ich kann Ihre Frage nicht direkt beantworten, aber Sie sollten wirklich einen Blick auf Künstler / Programmierer (Lisp) nehmen Harold Cohen 's Lackiermaschine Aaron .

Das ist ganz eine große Aufgabe. Sie könnten in Bild Vektorisierung interessiert sein (nicht wissen, was es offiziell genannt wird), die in gerasterte Bilder (wie zB Bilder, die Sie mit einer Kamera nehmen) zu nehmen verwendet wird, und gibt eine Reihe von Bezier-Linien (glaube ich), die die ungefähre Bild Sie setzen Da gute Algorithmen oft Ausgang sehr hohe Qualität (sprich: Komplex). Zeile setzt man auch in Vereinfachungs Algorithmen interessiert sein würde, die enorm helfen können.

Leider bin ich nicht neben meine Bibliothek, oder ich könnte eine Reihe von Büchern über Wahrnehmungspsychologie reccomend.

Das erste, was man beachten muss, ist die Physiologie des menschlichen Auges ist so, dass, wenn wir ein Bild oder eine Szene zu untersuchen, sind wir nur sehr kleine Bits gleichzeitig erfassen, wie unsere Augen dart um schnell. Unser Geist Peices die verschiedenen Teile zusammen, um zu versuchen und ein Ganzes zu bilden.

Sie können von der Suche nach einem Algorithmus für den Pfad eines Augapfels beginnen, wie es Darts um. Vielleicht ist es angezogen, um den Kontrast?

Als nächstes ist, dass unsere Augen die „Belichtung“ je nach Kontext anzupassen. Es ist wie jene High Dynamic Range-Bilder, wenn sie von zusammen nicht mehrere Belichtungen einer ganzen Szene peiced wurden, aber durch viele kleine Bilder, die jeweils ausgewogen auf seine eigene, sondern vermischt in seiner Umgebung einen hohen Dynamikbereich zu bilden.

Nun gab es eine Feststellung in einem Affenhirn, dass es ein einzelne Neuron ist, die aufleuchtet, wenn es in der oberen linken Ecke seines Sichtfeldes eine diagonale Linie ist. Ähnliche Neuronen können für vertikale Linien und horizontale Linien in verschiedenen Bereichen des betreffenden Affen Sichtfeld zu finden. Die „diagonalness“ bestimmt die Häufigkeit, mit der das Neuron feuert.

man könnte spekuliert, dass andere Neuronen gefunden werden könnten und auf andere Qualitäten wie Rötung abgebildet, oder texturedness, und andere Dinge.

Es gibt Menschen etwas tun können, dass ich nicht ein Computerprogramm jemals in der Lage zu tun gesehen. es ist etwas, „closure“ genannt, wo ein Mensch über etwas Informationen zu füllen ist in der Lage, die sie zu sehen sind, die nicht wirklich im Bild vorhanden ist. ein Beispiel:

          *






*                    *

ist, dass ein Dreieck? Wenn Sie weiß, dass es im Voraus war, dann könnte man wahrscheinlich ein Programm macht die Punkte zu verbinden. Aber was, wenn es nur Pünktchen? Wie kannst du das wissen? Ich würde dieses ein nicht versuchen, wenn ich mit, dass man einige wirklich clevere Art und Weise des Umgangs hatte.

Es gibt viele andere Fakten über die menschliche Wahrnehmung Sie nutzen können könnten. Viel Glück, Sie haben eine einfache Aufgabe nicht übernommen.

Ich denke, eine Sache, die Ihnen in dieser enormen Aufgabe, menschliches Zutun ist helfen könnte. ich meine Daten. wie man sie viele Leute sitzen starrt auf zufällige Punkte (wie aus dem vorherigen Post) und verbinden Sie haben konnten, wie sie richtig zu sehen. Sie können diese Daten nutzen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top