¿Cuál es el lenguaje de programación que debo elegir para realizar una investigación en el área de Visión por Computador?

Soy un desarrollador de software y estudiante de ciencias de la computación que tomo un curso en CV, intentaré aclarar su decisión:

Te sugiero que estudies Matlab en lugar de cualquier idioma que sugieras, y que realices tu investigación allí. Para una investigación, desea dedicar menos tiempo a la programación y centrarse en su objetivo de investigación . no quiere ocuparse de la programación multitarea para procesar matrices enormes. Matlab hace esto por ti. En Matlab también puede examinar los resultados de manera muy conveniente, porque este software está orientado a la investigación. Verás las frutas mucho más rápido.

Sin embargo, si desea probar sus conclusiones en un entorno más práctico, puede examinar la biblioteca de OpenCV aquí: OpenCV | OpenCV. Le sugiero para ese propósito que aprenda Python, ya que es muy intuitivo, fácil de aprender, tiene la fuerza de los lenguajes OOP (JAVA, C #) y los lenguajes funcionales (Lisp), y también ahorra tiempo de programación. OpenCV está disponible para Python.


Le daré un ejemplo de cuándo usar Matlab y cuándo usar no Matlab:

Si desea contar los peatones en alguna región (detección de cambio simple) puede usar non-matlab. Si desea rastrear a los peatones, OpenCV también tiene esta capacidad y puede usarla. ¿Detección de rostro? OpenCV también. Cualquier tarea de nivel de aplicación que pueda hacer en un entorno que no sea de Matlab

Sin embargo, si desea cambiar la forma en que funciona un algoritmo, por ejemplo, cambiar el histograma de color en un histograma de gradientes, debe investigar en Matlab. Si inventa una nueva forma de segmentar el rostro humano para mejorar la detección de rostros: Matlab.


Espero que la diferencia sea clara.

Una gran cantidad de bibliotecas / código de código abierto para visión por computadora está disponible en C ++ y cada vez más en Python. MATLAB permite la creación rápida de prototipos de muchos tipos de soluciones de visión, y es muy fácil de aprender; quizás de 4 a 5 horas en total para aprender el 95% de las habilidades que necesitarás.

Por lo general, los investigadores de CV (especialmente la comunidad CVPR / ECCV / ICCV) se centran en algoritmos y no se preocupan por los detalles de implementación o los artefactos de implementación como la velocidad, por lo que no importa qué idioma use siempre que pueda explotar cualquier información relevante código de código abierto que necesitas! Esto podría y debería cambiar a medida que el CV se vuelva más maduro y comience a formar parte de los productos comerciales.

Para puestos de CV industriales, conocer C ++ y posiblemente Python en estos días se considera importante. Por lo tanto, le recomendaría comenzar con C ++. Si eres un estudiante y tienes mucho tiempo de lado, entonces aprender Python para la creación de prototipos tampoco puede dañar, será beneficioso a largo plazo. Si no tiene mucho tiempo, simplemente siga un tutorial en línea de MATLAB y pruebe primero cualquier idea compleja, ya que es mucho más rápido crear prototipos allí.

Nunca he oído hablar de ningún investigador de CV que use Java o C #, y si bien estos lenguajes tienen sus propias fortalezas, la falta de código abierto y bibliotecas significa que no debe trabajar con ellos a menos que tenga una aplicación que lo requiera absolutamente.

Desde mi experiencia personal, recomiendo Matlab y C ++ como los mejores lenguajes de programación para trabajar en proyectos de visión por computadora. Ahora, si no conoce Matlab, puede comenzar con C ++, pero en Matlab puede hacer un prototipo muy rápido, lo que es deseable si está investigando. Con respecto a los gráficos por computadora, diría que C ++ es una mejor opción.

More Interesting

¿Cómo puedo aprender la teoría del lenguaje de programación?

¿Cuáles son las conferencias de alto nivel o los expertos en informática afectiva?

Arquitectura de la computadora: ¿Cómo cambiará el chip coprocesador de 50 núcleos de Intel recientemente anunciado al mercado de servidores y HPC?

¿Qué son la minería de datos, la ciencia de datos, la inteligencia / análisis de negocios y la investigación operativa?

¿Cómo es ser un estudiante graduado en ciencias de la computación en la USC?

¿Sobre qué temas puede investigar un estudiante de informática?

Estoy haciendo un gran proyecto escolar sobre visión por computadora y robótica. ¿Cuáles son algunos libros no técnicos que podría leer sobre estas áreas temáticas?

¿Debería todo científico de la computación comenzar a trabajar en el aprendizaje automático porque una vez que producimos máquinas que pueden pensar como humanos, todo lo demás puede hacerse mediante máquinas?

¿Es que SOP en GRE para informática requiere un gran trabajo de investigación o un muy buen proyecto?

¿Cuáles son las mejores ideas de temas de investigación de doctorado en seguridad informática en la nube para un nuevo estudiante? ¿Por qué?

¿Google Research es el 'Bell Labs' del siglo XXI? Por qué o por qué no ?

¿Qué significaría si P = NP? ¿Cómo podrías intentar probarlo? ¿Cómo cambiaría el mundo?

A un alto nivel, ¿cuáles son las principales diferencias entre los proyectos académicos y los de la industria para la visión por computadora?

¿Es la informática teórica una rama / subconjunto propio de las matemáticas?

¿Cuál es la importancia de la investigación algorítmica de la teoría de juegos?