¿Cuáles son las limitaciones prácticas de la visión por computadora móvil?

En la mayoría de los casos, el problema se trata de limitaciones computacionales, lo que a su vez significa que los algoritmos de visión por computadora que se ejecutan en dispositivos móviles deben diseñarse e implementarse cuidadosamente.

El problema es que la mayoría de los dispositivos móviles tienen procesadores débiles y pequeñas RAM.

Los procesadores móviles pueden tener 8 o más núcleos, pero en la mayoría de los casos, probablemente 4 de esos núcleos son núcleos menos potentes y de bajo consumo diseñados para extender la vida útil de la batería y reducir el sobrecalentamiento de un dispositivo.

Solo unos pocos núcleos son potentes y esto significa que el rendimiento general puede verse limitado por el núcleo más débil.


Por ejemplo:

Si obtengo una operación de convolución básica y la extiendo entre los 8 núcleos que usan OpenMP, cada núcleo obtendrá partes iguales de carga de trabajo, pero los núcleos potentes harán el trabajo más rápido y todo el proceso tendrá que esperar a los más débiles. núcleos para terminar.

Es posible hacer una distribución dinámica de la carga de trabajo a diferentes núcleos, de modo que cuanto más poderoso es un núcleo, más carga de trabajo tiene que obtener. Pero a veces, la mayoría de las veces, la sobrecarga de ese proceso de distribución dinámica puede ralentizar aún más el programa general.

Si los núcleos fueran iguales y muchos, entonces extender el trabajo a diferentes núcleos puede resultar en una aceleración sustancial. Esto significa que las GPU con igual de débil pero muchos núcleos pueden hacer un mejor trabajo al acelerar los algoritmos de visión por computadora móvil.

Tampoco es fácil exprimir una gran red neuronal (NN) en pequeñas RAM en dispositivos móviles. Principalmente, un NN requiere que esté completamente cargado en la memoria. No es como algunos algoritmos de árbol en los que puede cargar una pequeña porción y solo cargar porciones adicionales del almacenamiento a pedido.

Apuesto a que si las redes más pequeñas se organizan en forma de árbol, es posible cargar solo los módulos NN activos en la memoria, mejorando así la eficiencia de la memoria.

Un enfoque basado en árbol también puede ser computacionalmente más barato que una implementación ingenua de NN.


Con el diseño del sistema de visión por computadora móvil / incrustado, se necesita mucho trabajo para asegurar que el modelo tenga:

  • Baja huella de memoria. No es fácil si tiene la tarea de exprimir una red neuronal profunda (DNN) y hacerla funcionar con la menor cantidad de memoria posible. En la mayoría de los casos, lo mejor es reducirlo y establecer algunos pesos cerca de cero a cero.
  • Bajos gastos computacionales. Esto significa un uso inteligente de los enfoques heurísticos, especialmente los árboles. Como he escrito anteriormente, es posible usar NN más pequeños como nodos en un árbol y la ruta tomada por una señal a través de esa estructura puede determinar la etiqueta de la entrada.
  • Alta precisión. Es difícil mantener una alta precisión cuando los modelos se podan o adelgazan, por lo tanto, uno tiene que hacer un tipo de esfuerzo para alcanzar un punto óptimo entre tener alta precisión, consumir menos memoria y usar menos potencia de cálculo.

Por lo tanto, las limitaciones prácticas para los algoritmos de visión por computadora móvil es que tienen que ser más pequeños y menos potentes que sus homólogos basados ​​en la nube.

Pero el lado positivo es que estos sistemas móviles de visión por computadora pueden ejecutarse en el dispositivo.

  • Haciéndolos más confiables por los usuarios y porque no tienen que enviar datos de los usuarios a los servidores para su procesamiento.
  • También puede ser más seguro y requiere menos cifrado porque están en el dispositivo.
  • Puede ejecutarse incluso cuando no hay Internet o si Internet es deficiente.
  • Cuando se implementan correctamente, pueden ejecutarse más rápido que las soluciones basadas en la nube.
  • No hay granjas de servidores para mantener.

Gracias por el A2A.

Espero que esto ayude.

La mayor limitación es el poder. No puede simplemente colocar una CPU o GPU más grande, o más núcleos, en un dispositivo móvil, ya que consumen energía y generan calor. La visión por computadora (CV) exige mucha potencia de procesamiento, y si se combina con redes neuronales (NN), la demanda solo aumentará. Afortunadamente, algunas personas muy brillantes están trabajando en reempaquetar modelos NN para que funcionen de manera más eficiente. Aún así, ejecutar una aplicación de CV impulsada por NN de forma continua, como lo hace actualmente el reconocimiento de voz (“hey, Siri”) va a ser difícil.

Además, si puede descargar los datos lo suficientemente rápido, puede realizar algún procesamiento en la nube, pero eso exigirá el rendimiento de la red. Veremos cuándo y cómo procede la innovación en redes móviles, pero aparentemente se ha ralentizado.

Con el aprendizaje profundo, puede hacer muchas cosas como el reconocimiento / segmentación / estilo, ya que los parámetros largos de su red se ajustan a la memoria y no requiere teraflops de cómputos.

More Interesting

¿Puede el intercambio falso conducir a resultados no válidos en CPU de múltiples núcleos y multiprocesadores o es solo una cuestión de degradación del rendimiento?

¿Vale la pena hacer un doctorado en seguridad de redes en Alemania?

¿Cuáles son los mejores grupos de investigación de visión por computadora en Europa?

¿Cuáles son las diferentes áreas en las que un estudiante de informática de segundo año puede realizar su pasantía de verano?

¿Cómo se gana el premio al mejor artículo en una conferencia de informática?

¿Cuáles son algunas de las grandes ideas de proyectos para un estudiante de informática?

¿Cuáles son algunos de los grandes proyectos implementados utilizando los conceptos de la teoría de gráficos?

¿En qué áreas de investigación es fuerte el departamento de CS de USC?

¿La investigación académica de CS es realmente valiosa? No he encontrado casi nada valioso o innovador en ellas (excepto casos muy raros en los que los autores tienen una conexión muy estrecha con la industria).

Ciencias de la Computación: ¿Cuán competitivo es el premio al mejor trabajo estudiantil en SODA?

¿Con qué frecuencia se utilizan los algoritmos en la ingeniería de software?

¿Cómo debo seleccionar un tema de trabajo de investigación único y excelente en informática?

¿Por qué la teoría de la complejidad computacional es un campo importante y cuáles son algunos sistemas / productos interesantes que se crean a partir de ella?

¿Cuál es la mejor manera de mantenerse al día con los últimos avances / avances en el campo de la informática?

¿Cuáles son los tipos correctos de aplicaciones móviles?