¿Qué puede hacer un ingeniero de software para tener un gran impacto en un proyecto de auto sin conductor?

La mayoría de los investigadores de visión artificial y aprendizaje automático no están capacitados para optimizar su código para obtener el máximo rendimiento. Es muy raro que estas personas conozcan OpenMP o Cuda, a menudo incluso C / C ++. Esto se debe a que las comunidades de investigación de CV y ​​ML están completamente enfocadas en problemas algorítmicos y precisión. La mayoría de los investigadores no conocen mucha programación más allá de MATLAB o Python. El rendimiento en tiempo real o un conocimiento profundo de las compensaciones de precisión de velocidad es increíblemente raro para estas comunidades. De hecho, aquellos que poseen estas habilidades raras terminan escribiendo bibliotecas de código abierto como Caffe en las que confía toda la comunidad.

Por otro lado, los ingenieros de software ordinarios no entienden los patrones algorítmicos comunes que se encuentran en el software CV y ​​ML, por lo que hay un punto muerto completo en la transferencia de prototipos de investigación al cuerpo de ingeniería en muchas grandes empresas. Los ingenieros de software NECESITAN que el código ya esté optimizado para el rendimiento cuando se lo entregan los investigadores, mientras que los investigadores tampoco quieren pasar su tiempo haciendo la optimización del código, incluidas las optimizaciones de nivel de algoritmo (considerado por muchos doctores como un desafío intelectual menor). , y no da como resultado patentes / publicaciones) o no tengo el conjunto de habilidades para optimizar en absoluto como dije anteriormente.

Si puede posicionarse como alguien que ha trabajado con algunos proyectos de visión / aprendizaje, puede mirar el código de investigación e identificar los patrones habituales de procesamiento de datos visuales, y encontrar formas de optimizarlo, a nivel algorítmico y de implementación -nivel tal vez en una plataforma de baja potencia como una GPU móvil o un procesador integrado multinúcleo, ¡será muy valioso para convertir realmente el código de investigación en productos aptos para el envío y podrá tener un gran impacto!

PD: Por optimizar me refiero a usar menos recursos computacionales: ciclos de reloj, menos núcleos, capacidad de almacenamiento, accesos a la memoria mientras se mantiene la precisión “suficiente”.

Autos normales + Software = Autos autónomos 🙂

Hay muchas abstracciones que facilitan la contribución de los ingenieros de software, por ejemplo, considere las siguientes tareas:

  1. Dadas las dimensiones del automóvil, las dimensiones de la ranura de estacionamiento, las ubicaciones y dimensiones de los objetos laterales, etc. ¿Cómo se puede calcular eficientemente la posición de destino del vehículo, en términos de x, y, ángulo, para esta ranura de estacionamiento?
  2. Luego, dada la posición actual (x, y, ángulo) y la posición objetivo (x, y, ángulo) de la plaza de estacionamiento, ¿cómo puede construir eficientemente un camino entre la ubicación actual y la posición objetivo?
  3. Luego, dada una ruta de este tipo, ¿cómo puede calcular eficientemente la serie de ángulos que se deben establecer en la rueda motriz en cada paso de la ruta?
  4. Luego, da tales series de ángulos, ¿cómo puedes suavizar el camino general?

Todas estas tareas son tareas de software puro que solo dependen de su conocimiento del lenguaje de programación , algoritmos y matemáticas .

También es obvio que la robótica, la mecánica o cualquier técnica que no sea de software se presente antes y después de estas tareas y no en el medio, debe ser la siguiente:

  1. Lea los datos del sensor y conviértalos en objetos (no solo software)
  2. Calcular la posición objetivo (software puro)
  3. Calcular ruta (software puro)
  4. Calcular los ángulos de las ruedas motrices (software puro)
  5. Suavizado de ruta (software puro)
  6. Mueva el vehículo de acuerdo con la ruta final (no es un software puro)

Todas estas tareas complejas de software residen solo en el estacionamiento. Pero el mismo concepto generaliza para todo el proyecto, y aquí hay algunos ejemplos:

  1. Filtros de partículas para localización. (software puro)
  2. Filtro de Kalman para suavizar el camino. (software puro)
  3. A * para encontrar el camino. (software puro)
  4. Herramientas de visualización de datos para análisis. (software puro)
  5. Y más…

Autos normales + Software = Autos autónomos 🙂

En una pregunta anterior, alguien había preguntado ¿por qué no estamos recopilando datos de automóviles ahora para beneficiar a los automóviles autónomos en el futuro? Creo que es un buen lugar para comenzar.

Creo que hay muchos datos; como datos de ubicación, datos meteorológicos, datos del estado de la carretera, datos de congestión, etc., que deberíamos estar mirando ahora para ayudarnos a coordinar mejor la automatización en el futuro.

Estoy seguro de que solo estoy tocando la punta del iceberg, pero realmente hay mucho potencial en los datos que podemos agregar hoy.

More Interesting

¿Cómo madura uno de un ingeniero de software a un ingeniero de software senior en las principales compañías web como Google y Facebook?

¿Cómo es ser escritor de un sitio de noticias basado en ingresos por clic?

¿Puedo obtener ingresos razonables al ejercer como contador público en una ciudad como Bangalore?

¿El trabajo independiente y el autoempleo reemplazarán los trabajos perdidos en la Gran Recesión?

¿Debo optar por descifrar el GATE para conseguir un trabajo en la unidad del sector público, o debería unirme a la compañía de la que tengo una oferta y elegir CAT?

¿Qué piensa sobre los mejores 100 empleos de US News and World Report en los Estados Unidos para 2016?

¿Puedo conseguir el trabajo soñado en una empresa de TI con menos del 65% en mi ingg y 3 atkts muertos?

¿Existe una demanda de personas que tengan calificaciones actuariales y contables?

¿Cuáles son los documentos CT1 a CT8 en estudios actuariales?

¿La certificación MS Excel es una buena opción para alguien que trabajó en el campo del software durante 3 años?

¿Los candidatos presidenciales no tienen trabajos diarios? ¿Cómo pueden servir a sus electores si están haciendo campaña todo el tiempo?

Cómo evitar que los empleados exijan un salario

¿Cuál será el perfil de trabajo de un oficial de IES en varios campos para un ingeniero mecánico?

¿Cuáles son las oportunidades después de B.Tech de la ingeniería electrónica?

¿Qué especialidad es mejor para el empleo: finanzas o gestión de la tecnología de la información?