¿Cuál es la importancia del procesamiento de imágenes en tiempo real en los teléfonos inteligentes?

Es bueno tenerlo, pero aún no es suficiente para hacer cosas avanzadas.

Bono son

  • Hardware ampliamente disponible
  • Excelente relación calidad / precio
  • Muy buenas camaras
  • Acceso directo a la imagen

Lo que lo hace a menudo no práctico

  • GPU no compatible
  • Largo tiempo de acceso al sistema de archivos o al búfer de pantalla
  • No es de uso general

En general, los teléfonos tienen una GPU muy especializada que está optimizada para decodificar y codificar videos o realizar operaciones simples como filtros, recortar y reescalar.

La CPU a menudo no está optimizada en absoluto para manejar imágenes. Tomar una imagen del búfer de la pantalla y luego mostrarla puede demorar unos pocos milisegundos, dejando un tiempo muy limitado para elaborarla en tiempo real. Por ejemplo, el búfer de pantalla tiene un tiempo de acceso de 10 a 15 ms, y el requisito de tiempo real es de 20 ms como máximo.

Algunas funciones como el reconocimiento facial, la sonrisa y otras funcionan en tiempo real porque están desarrolladas con una interfaz nativa para la GPU. Eso significa que se omite el SO y se compila el código exactamente para apuntar a esa GPU.

Lanzar una aplicación que utiliza interfaces nativas es una carga, ya que hay cientos de modelos de GPU, incluso menos de 5 cubren más del 90% del mercado.

Las cámaras son excelentes en comparación con cámaras web u otro hardware similar en precio. El procesador que tiene acceso directo a la cámara ayuda a hacer cosas complejas como la detección de movimiento en tiempo real o hacer un mapa vectorial. Aún así, mostrar el resultado en la pantalla lo ralentiza mucho.

Los procesadores multinúcleo también son muy buenos en algoritmos paralelizables, como detección de bordes, extracción de características y seguimiento de movimiento.