2009-12-17 6 views
5

Ich suche nach einer einfachen Möglichkeit, synthetische Videos zu generieren, um Computer Vision Software zu testen.Simulation und synthetische Videogeneration zur Auswertung von Computer Vision Algorithmen

Derzeit ist mir nur ein Werkzeug bekannt, das diese Anforderung erfüllt: ObjectVideo Virtual Video (OVVV). Es ist ein HalfLife 2 Mod, der es ermöglicht, Kameras in einer virtuellen Welt zu simulieren.

Aber ich suche nach einer offeneren (wie in Open Source) und vielleicht tragbaren Lösung. Eine Möglichkeit wäre, die benötigte Funktionalität auf einem der zehn Open-Source-3D-Engines zu implementieren. Allerdings wäre es großartig, wenn jemand eine Bibliothek oder ein Tool kennt, das bereits so etwas wie OVVV implementiert.

Auch wenn Sie keine fertige Lösung haben: Wie würden Sie das Problem angehen?

PS: Der Grund, warum ich hier frage, ist, dass ich meine Bemühungen für dieses Problem minimieren möchte. Es ist nicht so, dass ich keine Ahnung hatte, wie ich es machen soll. Aber meine Lösungen würden erfordern, dass ich zu viel Zeit in das investiere. Also ich suche hier konkrete Tipps ... :-)

+1

6 Jahre sind vergangen. Machine Vision ist heißer als je zuvor. Vielleicht gibt es bessere Antworten? – GroovyDotCom

Antwort

0

habe ich gesehen Ogre für genau diesen Zweck verwendet.

+0

Haben Sie einen Hinweis auf das Projekt, das Ogre verwendet hat? – f3lix

+0

Diese (glaube ich), http://www.youtube.com/watch?v=cODfGcFmpuc – Jacob

+0

Aus dem entsprechenden Papier: "Wir haben eine benutzerdefinierte Flugsimulationsumgebung basierend auf Matlab/Simulink und OpenSceneGraph erstellt" Es wurde nicht gelesen durch das ganze Papier, aber wie es scheint, das ist alles, was sie über die Implementierung der Simulation sagen.Nichts über das Simulieren von Kamerarauschen und Artefakten oder die Generierung von Groundtruth. Und der großartige "Flugsimulations" - Videoclip vom Anfang des Youtube - Videos stammt aus einem Demo - Video einer Firma, die 3D - Modelle verkauft ... also hat eigentlich nichts mit ihrer Arbeit zu tun: --( – f3lix

1

Wenn ich in Ihrer Situation wäre, würde ich wahrscheinlich POV-Ray verwenden, da es möglich ist, Code in einer beliebigen Sprache zu schreiben, um .pov-Dateien zu erzeugen, um sie zu füttern. Dies ist ideal, wenn präzise Geometrie, Beleuchtung, Texturen und komplexe exakte Bewegungen wichtig sind. POV-Ray kann vollständig von der Befehlszeile oder programmgesteuert mit einem Aufruf von system() oder einem gleichwertigen Programm ausgeführt werden.

Obwohl POV-Ray ist nicht Open Source im üblichen Sinne, es ist kostenlos und Sie können die Quelle dafür erhalten.

+0

Zuletzt habe ich (vor ein oder zwei Jahren) nachgesehen, dass POV-Ray's Animationssystem etwas peinlich ist, basierend auf eine Timing-Variable.Es ist auch ziemlich langsam für Videozwecke, da es rein Raytracing ist.Es ist Wenn sie realistische Optik, Post-Processing und/oder atmosphärische Rendering benötigen, stimme ich damit überein, dass dies der richtige Weg ist .. – BobMcGee

+0

Ah, wenn es muss in Echtzeit generiert werden, dann ist das out. (Oder warten Sie fünf Jahre, bis die Technologie noch schneller wird ...) – DarenW

1

Wie wäre es mit einer der Open Source Game Engines? Wenn ich mich recht erinnere, ist die Quake-Engine jetzt in der Public Domain und kann für Ihre Bedürfnisse ausreichen.

Die meisten Engines bieten Scripting-Funktionen (oft Lua), die für AI- und Objektverhalten gedacht sind, aber leicht die Programmierbarkeit bieten können, die Sie benötigen.

Edit: Tricks für die Anwendung Rauschen/Verzerrung und andere Post-Processing-Effekte programmatisch Video

A in AviSynth geschrieben kurzes Skript blur liefern, Verzerrung, Kontrast/Frame-Rate ändert, Lärm hinaus und eine Vielzahl anderer möglicher Effekte. Diese Effekte werden im laufenden Betrieb Frame für Frame bereitgestellt, , so dass Sie die Ausgabe nicht in eine große Videodatei zum Testen "" rendern müssen. Videoprogramme behandeln die Skriptdateien wie ein normales Video, allerdings mit mehr CPU-Anforderungen während der Wiedergabe. Sie können also Ihrem Computer-Vision-Paket eine Reihe von AviSynth-Skripten zum Testen zuführen, die alle von der gleichen Videoquelle gespeist werden, aber unterschiedliche Rauschpegel, Unschärfen usw. anwenden. KONTROLLIERT viel Zeit und Speicherplatz beim Testen!

Ihre Seite ist kurz down, denke ich, aber Sie können die Pakete zu DL es überall finden, da es Open Source und weit verbreitet ist.