¿Necesita ser un buen ingeniero de software para trabajar en cosas como visión por computadora, reconocimiento de voz, gráficos por computadora, aprendizaje automático?

No, hay una serie de tareas en proceso de crear una aplicación práctica de aprendizaje automático que no implique ingeniería de software. Cualquier solución empresarial empresarial tiene un equipo empresarial completo, por supuesto, pero además, un producto de aprendizaje automático exitoso requiere expertos en datos, gerentes de experimentos y al menos un filósofo. Obtener los conjuntos de datos de capacitación, prueba e implementación reunidos, probados, verificados y preparados requiere un conjunto específico de habilidades que está más cerca del control de calidad que de la ingeniería de software, y cualquier proyecto que valga la pena tendrá mucho más esfuerzo en la preparación de datos – particularmente porque cada vez salen mejores paquetes de software. Casi todo lo que se base en la percepción humana debería tener las clasificaciones verificadas mediante pruebas psicológicas (las pruebas doble ciego son imprescindibles en este contexto) y los ingenieros de software no son bien conocidos por su sensibilidad a los asuntos psicológicos. Y en última instancia, cualquier proyecto serio de IA debe ser examinado por ética, ontología y epistemología o podría haber malentendidos serios.

¡Si!
El modelo de un investigador que hace su trabajo y lo arroja por la pared a un equipo de desarrollo simplemente no funciona.
El investigador tiene que invertir en la entrega de extremo a extremo de su solución.
Como una vez que una persona no puede hacer todo, esto requiere la definición de interfaces útiles y una estrecha colaboración con un equipo de desarrollo
Sin embargo, para que esto funcione, un investigador debe conocer las buenas prácticas de software

No. Pero debe ser apasionado por su campo / industria y lo suficientemente persistente como para no dejar que los desafíos / fracasos lo desanimen.