2012-05-21 17 views
25

Antes que nada, quiero que sepas que realmente me gusta OpenCV. Lo he estado utilizando durante mucho tiempo, y lo uso tanto que puedo contar con una mano la cantidad de veces que tuve que mirar el documento el mes pasado. Creo que este es realmente el tipo de herramienta que desea utilizar cuando se trabaja a diario con la visión de la computadora.¿Debo dejar de usar OpenCV?

Creo que tengo una sensación creciente de que Opencv realmente no es adecuado para aplicaciones de uso. Estoy trabajando en proyectos de mascotas que están diseñados para ser instalados por cualquiera, fácilmente.

La última versión de OpenCV no viene con versiones anteriores, y los paquetes de Linux están tan desactualizados que ni siquiera me atrevo a usarlos. La mejor solución es, por lo tanto, la mayoría de los casos de compilación. Lo mismo cuando se piensa en aplicaciones móviles o en la computación en la nube (even though the solution seem to exist).

Así que mi pregunta es, ¿cómo están ustedes? Hay muchas aplicaciones basadas en la visión por computadora en todas partes a mi alrededor, basadas en la nube, basadas en dispositivos móviles,. . . ¿Qué herramientas usas?

Estaría buscando algo que esté disponible para un máximo de plataformas, ¡pero sobre todo fácil de usar a través de una aplicación!

He buscado mucho en Internet, pero siempre recurro a OpenCV como la "mejor" herramienta para la visión por computadora.

Estoy abierto a cualquier solución/lenguaje/herramienta/framework.

Gracias!

+0

aunque estoy trabajando en opencv también, tengo el mismo tipo de pregunta que si estoy haciendo una aplicación usando opencv a través de Android ndk, me ofrecen descargar el administrador de Opencv, etc. para ejecutar la aplicación en el móvil, parece demasiado ofensivo para cliente para descargar una aplicación para ejecutar otra, y si la configura estáticamente hace que la aplicación sea muy pesada, ¡como 13-20 mb! – AHF

Respuesta

40

OpenCV es la mejor biblioteca de código abierto de Computer Vision disponible en este momento.

La gente ha estado utilizando en varias plataformas y dispositivos, y así tienen I.

La única manera que sé realiable para distribuir una aplicación OpenCV es construir la biblioteca de sí mismo y enviar los binarios OpenCV junto con su solicitud .

Existen herramientas por ahí que pueden ayudar a que la lista y recuperar las bibliotecas que necesita su aplicación:

+0

Hola, gracias por la ayuda! ¡Lo veré! También voté por OpenCV con seguridad, aunque creo que realmente es un gran trabajo distribuirlo fácilmente – jlengrand

+0

De hecho lo es, pero principalmente porque OpenCV no es para el usuario final. – karlphillip

+0

De ahí mi pregunta :). En mi empresa anterior, nunca tuve que preocuparme por esto, ya que cuando enviamos el hardware junto con el software – jlengrand

10

utilizo OpenCV para PC, teléfonos y tabletas Android y Linux, y la manera más eficiente que encontramos es el uso de CMake para compilar y construir el proyecto. Es un poco complicado la primera vez, pero es realmente cómodo construir tu proyecto automáticamente. OpenCV viene con un archivo FindOpenCV.cmake que permite a cmake encontrar un enlace a las carpetas de OpenCV para su proyecto.

Creo que OpenCV es la mejor biblioteca que puedes encontrar, aunque algunos algoritmos no son lo suficientemente rápidos para dispositivos ARM como tabletas y teléfonos. Lo que hacemos es analizar el código ensamblador generado por el compilador y luego tratar de optimizar las funciones OpenCV de cuello de botella, por ejemplo, usando aritmética de punto fijo.

Espero que te sea útil.

+0

Gracias por la información. Ya realicé algunas de esas cosas en el pasado para dispositivos ARM. Lo que realmente echo de menos en realidad es una buena documentación sobre el tema. Voy a mirar más profundo en estos archivos – jlengrand

5

Solo para agregar a las ya excelentes respuestas. Un pequeño resumen de por qué tiene sentido completo para quedarse con OpenCV:

  1. Está vagamente bajo licencia BSD
  2. Tiene una gran y creciente equipo de desarrollo
  3. grupos de apoyo de Avid a través de StackOverflow o yahoo Grupo
  4. precio, o falta de ella :)

para más arpa también de la cantidad que obtiene de forma gratuita con OpenCV, consideran Ohloh's costo estimado de las 2,849,367 líneas de código. Le costaría ... aproximadamente 45 millones de dólares pagar para que otra persona lo desarrolle.

En una nota lateral, si necesita un paquete rápido de Ubuntu OpenCV, Gijs Molenaar tiene un PPA de 2.3 disponible. Me imagino que pronto obtendrá 2.4.

-1

Si necesita las versiones más recientes de OpenCV, puede considerar una distribución Gnu/Linux de liberación continua. Al igual que Archlinux, Gentoo, Linux Mint Debian Edition (utiliza el repositorio de prueba de Debian). Por supuesto, las distribuciones de lanzamiento rodante tienen desventajas sobre las distribuciones de lanzamiento fijo, pero depende de usted sopesar los pros y los contras y elegir uno.

Estoy usando ArchLinux. Es bastante estable. OpenCV versión - 2.4.9, la última.

0

Estoy de acuerdo con otro mensaje: hoy, openCV es la mejor (y la única ...) biblioteca de visión por computadora.

En el mundo del código abierto, también puede consultar Scilab, Octave, pero es complicado empaquetar una aplicación final.

No olvide que tiene algunas buenas habilidades como Halcon de MVTech.

Pero también estoy de acuerdo en que openCV necesita mejorar sus herramientas de compilación/lib, etc ... Por eso, para mi aplicación, decido eliminar openCV y reescribir la función que necesito. Uso openCV solo para prototipos.

También lamento la elección de C++, el operador del proceso de imagen central solo necesita C en la mayoría de los casos. Preferiría una biblioteca de 2 niveles: core en C, nivel superior en C++ (o python).

mejor relación

0

La última versión de OpenCV no se distribuye con exes, Quiso decir instaladores binarios? Bueno, están disponibles para algunas plataformas y no para otras.

Cuando se trata de rendimiento, calidad y precio (gratis), ninguna de las otras herramientas puede coincidir con OpenCV. Para aquellos que tienen experiencia en programación, la curva de aprendizaje inicial no es un gran problema.

Es cierto que OpenCV no tiene una interfaz similar a la de PD/MAX donde personas como los artistas pueden prototipar rápidamente algo. Ojalá tuviera tiempo para trabajar en eso.

0

Debería seguir usando la biblioteca gratuita que dice que le encanta, para la que ha memorizado la API, y que resuelve los problemas que necesita resolver.

¡Los efectos de red de algún día probablemente te obliguen a una nueva plataforma, pero hasta entonces, concéntrate en hacer!