8

Algorithmus für eine Zeichnung und Lackierroboter -Ein Algorithmus für einen Zeichnungs- und Lackierroboter - irgendwelche Tipps?

Hallo

ich ein Stück Software schreiben will, die ein Bild analysiert und erzeugt dann ein Bild, das ein menschliches Auge wahrnimmt, in dem Originalbild erfaßt, was unter Verwendung von ein Minimum an Bezierpfad-Objekten mit variierender Farbe und Opazität.

Im Gegensatz zu dem bisherigen twitter Superkompressions Wettbewerb (see: stackoverflow.com/questions/891643/twitter-image-encoding-challenge), ist mein Ziel, ein Replikat zu erstellen, die das Bild treu ist, sondern die menschliche Erfahrung des Blicks auf dem Bild zu replizieren.

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

Wenn ich sage "wie von einem Menschen wahrgenommen", meine ich das in einem sehr begrenzten Sinne. Ich versuche nicht, die Bedeutung eines Bildes zu analysieren, ich muss nicht wissen, was ein Bild ist, ich interessiere mich nur für die wichtigsten visuellen Merkmale, die ein menschliches Auge bemerken würde, in dem Maße, wie dies durch ein Algorithmus, der keine Kapazität hat, zu konzeptualisieren, was er tatsächlich beobachtet.

Warum dieses ungewöhnliche Kriterium der menschlichen Wahrnehmung über fotografische Genauigkeit?

Diese Software würde verwendet, um einen Zeichnungs- und Lackierroboter zu fahren, der mit einem menschlichen Künstler zusammenarbeiten wird (see: video.google.com/videosearch?q=mr%20squiggle).

Anstatt die vom Menschen gemachten Markierungen, die nicht fotografisch perfekt sind, als Fehler zu behandeln, sollte der Algorithmus versuchen, das bereits auf der Leinwand vorhandene in das endgültige Bild einzubeziehen.

So sind relative Helligkeit, Farbton, Sättigung, Größe und Position viel wichtiger als fotografisch identisch mit dem Original. Die Aufrechterhaltung der Topologie der Features, Farbblock, Gradienten, konvexe und konkave Kurve wird wichtiger sein, die genaue Größe Form und Farbe dieser Funktionen

Immer noch mit mir?

Mein Problem ist, dass ich ein wenig an dem "wenn du einen Hammer hast, sieht alles wie ein Nagel" -Syndrom aus. Ich scheint es, die Art und Weise, dies zu tun ist, einen genetischen Algorithmus mit so etwas wie der Vergleich der Wavelet mit transformiert (siehe: grail.cs.washington.edu/projects/query/) verwendet von retrievr (siehe: labs.systemone.at/retrievr/) zu passgenaue Lösungen zu wählen.

Aber der Hauptgrund, warum ich dies als die Antwort sehe, ist, dass dies die Techniken sind, die ich kenne, es gibt wahrscheinlich viel elegantere Lösungen mit Techniken, über die ich jetzt nichts weiß.

Es wäre besonders interessant zu berücksichtigen, auf welche Weise das menschliche Sehsystem ein Bild analysiert, so dass besondere Aufmerksamkeit auf gerade Linien und Winkel, kontrastreiche Ränder und große Blöcke ähnlicher Farben gelegt werden muss.

Haben Sie Vorschläge für Dinge, die ich über Vision, Bildalgorithmen, genetische Algorithmen oder ähnliche Projekte lesen sollte?

Danke

Mat

PS. Einige der obigen Schreibweisen können für Sie und Ihre Rechtschreibprüfung falsch erscheinen. Es sind nur Variationen der internationalen Schreibweise, die sich von dem Standard in Ihrem Land unterscheiden können: z. Australischer Standard: Farbe gegen amerikanischen Standard: Farbe

+0

Zum Vorteil der neuen Benutzer möchte ich darauf hinweisen, dass diese Frage nicht existieren würde, wenn sie heute gepostet wird. Es ist sehr weit gefasst, verlangt allgemeine Empfehlungen und hat keine eindeutige Antwort. Es existiert wahrscheinlich immer noch für historische Zwecke, also verwenden Sie dies nicht als Vorlage für eine gute Frage –

Antwort

3

Es gibt ein Modell, das als Algorithmus implementiert werden kann, um eine Ausprägungskarte für ein Bild zu berechnen und zu bestimmen, welche Teile des Bildes die meiste Aufmerksamkeit von einem Menschen erhalten würden.

Das Modell itti koch Modell genannt wird
Sie können ein Startin Papier here
und mehr Ressourcen und c finden ++ Sourcecode here

+0

danke, das ist sehr interessant –

+0

eine nette Sache über Metafilter ist, dass Sie mehrere richtige Antworten zuweisen können, hier habe ich nur eine Wahl. Ich würde –

+0

(Fortsetzung) ..wäre gern jedem die grüne Zecke gegeben haben, aber das ist die Antwort, die mir die interessantesten Richtungen gegeben hat, um zu erforschen, dank Ihnen allen –

1

Das ist eine ziemlich große Aufgabe. Vielleicht interessieren Sie sich für die Vektorisierung von Bildern (ich weiß nicht, wie es offiziell heißt), mit der gerasterte Bilder aufgenommen werden (z. B. Bilder, die Sie mit einer Kamera aufnehmen), und gibt eine Reihe von Bezier-Linien aus Bild, das Sie einfügen. Da gute Algorithmen oft sehr hochwertige (lese: komplexe) Zeilensätze ausgeben, wären Sie auch an Vereinfachungsalgorithmen interessiert, die enorm helfen können.

+0

Dank rcix, Ich beabsichtige, etwa drei Monate auf diese Erfahrung, schlägt vor, es wird länger als das sein. –

1

Leider bin ich nicht neben meiner Bibliothek, oder ich könnte eine Reihe von Büchern über Wahrnehmungspsychologie empfehlen. Das erste, was Sie beachten müssen, ist die Physiologie des menschlichen Auges ist so, dass, wenn wir ein Bild oder eine Szene untersuchen, wir nur sehr kleine Bits auf einmal erfassen, wie unsere Augen schnell herumfliegen. Unser Verstand packt die verschiedenen Teile zusammen, um zu versuchen, ein Ganzes zu bilden.

Sie könnten damit beginnen, einen Algorithmus für den Pfad eines Augapfels zu finden, während er herumrennt. Vielleicht ist es zum Kontrast angezogen?

Als nächstes passen unsere Augen die "Belichtung" abhängig vom Kontext an. Es ist wie bei Bildern mit hoher Dynamik, wenn sie nicht durch Mehrfachbelichtungen einer ganzen Szene zusammengefügt werden, sondern durch viele kleine Bilder, von denen jedes für sich allein ausbalanciert ist, sich aber in seine Umgebung einfügt, um eine hohe Dynamik zu erzeugen.

Jetzt gab es einen Befund in einem Affengehirn, dass es ein einzelnes Neuron gibt, das aufleuchtet, wenn es oben links in seinem Sichtfeld eine Diagonale gibt. Ähnliche Neuronen können für vertikale Linien und horizontale Linien in verschiedenen Bereichen des Gesichtsfeldes dieses Affen gefunden werden. Die "Diagonalität" bestimmt die Häufigkeit, mit der das Neuron feuert.

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

Es gibt etwas, was Menschen tun können, das ich noch nie in einem Computerprogramm gesehen habe. Es ist etwas, das man "Schließung" nennt, wo ein Mensch Informationen über etwas, das er sieht, ausfüllen kann, das im Bild nicht existiert. ein Beispiel:

  * 






*     * 

ist das ein Dreieck? Wenn Sie wussten, dass es im Voraus war, dann könnten Sie wahrscheinlich ein Programm machen, um die Punkte zu verbinden. Aber was ist, wenn es nur Punkte sind? Wie kannst du das wissen? Ich würde das hier nicht versuchen, wenn ich nicht wirklich clever damit umgehen könnte.

Es gibt viele andere Fakten über die menschliche Wahrnehmung, die Sie verwenden könnten. Viel Glück, Sie haben keine einfache Aufgabe ausgewählt.

+0

Sie haben mir eine wirklich gute Idee, , wenn ich die Künstler Blick auf das Quellbild verfolgen konnte, konnte ich die wichtigsten Bereiche des Bildes, die Aufmerksamkeit erregen, Menschen Gesichter, etc, und verwenden Sie diese, um festzustellen, welche Teile des Bildes müssen mit größerer Sorgfalt reproduziert werden. Ich glaube, ich würde das Dreieck verlassen, wie es ist, drei Sterne, die mein Ziel, die besagt, einen besseren Weg schon sagt, ein Bild zu reproduzieren, die die Eigenschaften behält, die den größten Teil der Erfahrung des Bildes vermitteln. Ich kann nicht die Erfahrung des Sehens das Bild um Diagramm hoffe, dass ich es dem Betrachter überlassen werde das Dreieck in den drei Sterne zu finden –

3

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

+0

Sie dave danken, das ist wirklich interessant –

+0

Wie viele der Pionier Künstler mit der Technologie arbeiten, begann er Ich arbeite in den 70er Jahren daran, was ihn in die Geschichtsbücher bringt. Wenn Sie es schaffen, ihn irgendwo zu sehen, ist er bereit, mit anderen Programmierern über den Prozess zu sprechen. –

0

Ich denke, eine Sache, die Ihnen in dieser enormen Aufgabe, menschliches Zutun ist helfen könnte. Ich meine Daten. als ob du viele Leute sitzen hättest, die auf zufällige Punkte starren (wie aus dem vorherigen Post) und sie verbinden, wie sie richtig sehen. Sie könnten diese Daten nutzen.