2012-05-21 6 views
25

Zuerst möchte ich, dass Sie wissen, dass ich OpenCV wirklich mag. Ich benutze es seit sehr langer Zeit, und ich benutze es so sehr, dass ich an einer Hand abzählen kann, wie oft ich den letzten Monat in den Doc geschaut habe. Ich denke, dass dies wirklich die Art von Werkzeug ist, das Sie verwenden möchten, wenn Sie täglich mit Computer Vision arbeiten.Sollte ich aufhören, OpenCV zu verwenden?

Ich habe zwar ein wachsendes Gefühl, dass Opencv wirklich nicht für den Einsatz von Anwendungen geeignet ist. Ich arbeite an Tierprojekten, die von jedermann einfach installiert werden können.

Die letzte Version von OpenCV wird nicht mit exes ausgeliefert, und die Linux-Pakete sind so veraltet, dass ich es nicht einmal wagen würde, sie zu verwenden. Die beste Lösung ist daher die Zusammenstellung der meisten Fälle. Gleiches gilt für mobile Anwendungen oder Cloud Computing (even though the solution seem to exist).

SO meine Frage ist, wie geht es euch? Es gibt viele Computer Vision basierte Anwendungen überall auf der Welt, cloudbasierte, mobile basierte,. . . Welche Werkzeuge verwendest du?

Ich würde nach etwas suchen, das für ein Maximum von Plattformen verfügbar ist, aber vor allem leicht durch eine Anwendung auswechselbar!

Ich habe viel im Internet gesucht, aber immer wieder auf OpenCV zurückgreifen, da es das "beste" Werkzeug für Computer Vision ist.

Ich bin offen für jede Lösung/Sprache/Werkzeug/Framework.

Danke!

+0

obwohl ich auch auf opencv arbeite, habe ich die gleiche Art von Frage, wenn ich Anwendung mit opencv über Android ndk mache, biete es mir an, opencv manager etc für den Betrieb der App auf dem Handy zu downloaden, sieht es zu viel offensiv für Kunde, um eine App für den Betrieb eines anderen zu laden, und wenn es statisch konfigurieren, macht es die App sehr schwer wie 13-20 MB! – AHF

Antwort

40

OpenCV ist die beste Open Source Computer Vision Bibliothek, die zu diesem Zeitpunkt verfügbar ist.

Menschen mit in mehreren Plattformen und Geräten werden, und haben so I.

Den einzigen realiable Weg, ich weiß eine OpenCV Anwendung zu verteilen ist die Bibliothek selbst bauen und die OpenCV-Binärdateien zusammen mit der Anwendung versenden .

Es gibt Tools gibt, die helfen können Sie die Liste und die Bibliotheken, die von Ihrer Anwendung benötigt abrufen:

+0

Hallo, danke für die Hilfe! Ich werde mir das ansehen! Ich stimme natürlich auch für OpenCV, aber ich denke wirklich, dass es ein Stück Arbeit ist, es leicht zu verteilen – jlengrand

+0

In der Tat ist es, aber vor allem, weil OpenCV nicht für den Endnutzer gedacht ist. – karlphillip

+0

Daher meine Frage :). In meiner früheren Firma musste ich mich nie darum kümmern, da wir die Hardware zusammen mit der Software – jlengrand

10

Ich benutze OpenCV für PC, Linux und Android-Handys und Tablet-PC und die effizienteste Art, wie wir gefunden wird CMake zu kompilieren und das Projekt. Es ist beim ersten Mal etwas knifflig, aber es ist wirklich angenehm, Ihr Projekt automatisch zu erstellen. OpenCV wird mit einer Datei FindOpenCV.cmake geliefert, mit der cmake einen Link zu den OpenCV-Ordnern zu Ihrem Projekt finden kann.

Ich denke, OpenCV ist die beste Bibliothek, die Sie finden können, obwohl einige Algorithmen nicht schnell genug für ARM-Geräte wie Tablets und Telefone sind. Wir analysieren den vom Compiler generierten Assemblercode und versuchen dann, die Flaschenhals-OpenCV-Funktionen zu optimieren, indem wir beispielsweise Festkommaarithmetik verwenden.

Ich hoffe, Sie finden das hilfreich.

+0

Danke für die Information. In der Vergangenheit habe ich schon einige solcher Dinge für ARM-Geräte durchgeführt. Was ich wirklich vermisse, ist eine gute Dokumentation zu diesem Thema. Ich werde diese Dateien genauer betrachten – jlengrand

5

Nur um die bereits großen Antworten hinzuzufügen. Eine kleine Zusammenfassung, warum es macht durchaus Sinn, mit OpenCV zu bleiben:

  1. Es ist lose unter der BSD Lizenz
  2. Es verfügt über eine große und immer noch Entwicklungsteam
  3. Avid Support-Gruppen durch Stackoverflow oder Yahoo Gruppe
  4. wachsenden
  5. Preis, oder deren Fehlen :)

Um auch weitere Harfe auf, wie viel Sie mit OpenCV kostenlos zu bekommen, sollten Sie Ohloh's geschätzten Kosten für die 2.849.367 Zeilen Code. Es würde dich kosten ... ungefähr 45 Millionen Dollar, um für jemanden zu bezahlen, der es entwickelt.

Wenn Sie ein schnelles Ubuntu-Paket von OpenCV benötigen, ist Gijs Molenaar eine PPA von 2.3 verfügbar. Ich kann mir vorstellen, dass er bald 2.4 bekommt.

-1

Wenn Sie die neuesten Versionen von OpenCV benötigen, können Sie eine Rolling-Release-GNU/Linux-Distribution in Betracht ziehen. Wie Archlinux, Gentoo, Linux Mint Debian Edition (verwendet debian testing repo). Natürlich haben Rolling-Release-Distributionen Nachteile gegenüber Distributionen mit fester Release, aber Sie müssen die Vor- und Nachteile gegeneinander abwägen und eine auswählen.

Ich benutze ArchLinux. Es ist ziemlich stabil. OpenCV-Version - 2.4.9, die neueste.

0

Ich stimme anderen Nachrichten zu: Heute ist openCV die beste (und die einzige ...) Computer Vision-Bibliothek.

In Open-Source-Welt können Sie auch Scilab, Octave überprüfen, aber es ist kompliziert, eine endgültige Anwendung zu packen.

Vergessen Sie nicht, dass Sie eine gute propri- täre Bibliothek wie Halcon von MVTech haben.

Aber ich stimme auch zu, dass openCV seine kompilieren tools/lib etc verbessert werden muss ... Das warum für meine Anwendung, ich entscheide mich, openCV zu entfernen und Funktion neu zu schreiben, die ich brauche. Ich benutze openCV nur für Prototypen.

Ich bedauere auch die Wahl von C++, Core-Image-Prozess-Betreiber brauchen nur C in den meisten Fällen. Ich würde eine 2-Stufen-Bibliothek bevorzugen: Kern in C, obere Ebene in C++ (oder Python).

Bester Bezug

0

Die letzte Version von OpenCV Schiff nicht mit Verflossenen, Haben Sie binäre Installateure bedeuten? Nun, sie sind für einige Plattformen verfügbar und nicht für andere.

Wenn es um Leistung, Qualität und Preis (kostenlos) geht, kann keines der anderen Tools OpenCV entsprechen. Für diejenigen, die Programmiererfahrung haben, ist die anfängliche Lernkurve kein großes Problem.

Zugegeben, OpenCV hat keine PD/MAX-ähnliche Schnittstelle, wo Leute wie Künstler schnell etwas entwickeln können. Ich wünschte, ich hätte Zeit, daran zu arbeiten.

0

Sie sollten unbedingt die kostenlose Bibliothek verwenden, von der Sie sagen, dass Sie sie lieben, für die Sie sich die API auswendig gelernt haben und die die Probleme löst, die Sie lösen müssen.

Irgendwann Netzwerk-Effekte werden Sie wahrscheinlich auf eine neue Plattform zwingen, aber bis dahin konzentrieren Sie sich auf die Herstellung!