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.
- ¿Qué habilidades se necesitan para ser un informático teórico?
- ¿Cuáles son los desafíos de Internet de las cosas para la informática teórica?
- ¿Quiénes son los mejores profesores que trabajan en Computación Cuántica?
- Cómo saber cuáles son las últimas áreas de investigación en informática
- ¿Cuáles son algunos buenos temas en criptografía que se están investigando actualmente en informática?
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.