¿Es esencial aprender C ++ como estudiante de visión por computadora?

Esta es la diferencia entre investigación y comercialización. En la escuela, no tiene que preocuparse por el costo, la capacidad de fabricación y la competitividad del producto.

Digamos que necesito que construyas una grabadora de video en el mercado de accesorios para la venta en tiendas como PepBoys. Necesita implementar la estabilización basada en imágenes. Necesita estimar la distancia al automóvil que está adelante o atrás usando una cámara de imágenes.

Entonces, su código prototipo de Matlab funciona bien. Sin embargo, Mathworks quiere $ 1k por licencia de tiempo de ejecución y, por cierto, necesita una máquina host de nivel i5. Esto no va a funcionar para el canal minorista objetivo.

Ahora, una versión en C igual puede funcionar a diario en una Raspberry Pi (después de trasladar los bucles internos a la GPU VideoCore 4 y muchas semanas de ajustes dolorosos de código de bajo nivel).

No es esencial ser honesto en la academia. Pero es muy recomendable y esencial si desea encontrar una carrera industrial y técnica. También muchas bibliotecas hoy en día se escriben con y sobre C / C ++ como openCV openMVG. C / C ++ en velocidad y rendimiento de memoria son superiores a matlab / python la mayor parte del tiempo, lo cual es de gran importancia en los problemas prácticos resueltos por las empresas.

Si tuviera que adivinar, es porque las empresas quieren construir sistemas de visión por computadora que sean rápidos, y C ++ es básicamente el rey de facto de los lenguajes de programación cuando se trata de rendimiento. Python y Matlab son buenos para la creación de prototipos, pero probablemente no serán lo suficientemente rápidos como para procesar muchas imágenes, o al menos, eso es lo que probablemente piensan, y esperaría que en su mayoría tengan razón.