stringtranslate.com

CV físico

PhyCV es la primera biblioteca de visión artificial que utiliza algoritmos derivados directamente de las ecuaciones de la física que rigen los fenómenos físicos. Los algoritmos que aparecen en la primera versión emulan la propagación de la luz a través de un medio físico con propiedades difractivas naturales y diseñadas seguidas de una detección coherente. A diferencia de los algoritmos tradicionales que son una secuencia de reglas empíricas hechas a mano, los algoritmos inspirados en la física aprovechan las leyes físicas de la naturaleza como planos. Además, estos algoritmos pueden, en principio, implementarse en dispositivos físicos reales para un cálculo rápido y eficiente en forma de computación analógica. [1] Actualmente, PhyCV tiene tres algoritmos: Phase-Stretch Transform (PST) , Phase-Stretch Adaptive Gradient-Field Extractor (PAGE) y Vision Enhancement via Virtual diffraction and coherent Detection (VEViD). Todos los algoritmos tienen versiones para CPU y GPU. PhyCV ahora está disponible en GitHub y se puede instalar desde pip.

Historia

Los algoritmos de PhyCV están inspirados en la física del estiramiento temporal fotónico [2] [3] (una técnica de hardware para la adquisición de datos ultrarrápida y de un solo disparo). PST es un algoritmo de detección de bordes que se convirtió en código abierto en 2016 y tiene más de 800 estrellas y más de 200 bifurcaciones en GitHub. PAGE es un algoritmo de detección de bordes direccionales que se convirtió en código abierto en febrero de 2022. PhyCV fue desarrollado y convertido en código abierto originalmente por Jalali-Lab @ UCLA en mayo de 2022. En la versión inicial de PhyCV, el código abierto original de PST y PAGE se refactoriza y mejora significativamente para que sea modular, más eficiente, acelerado por GPU y orientado a objetos. VEViD es un algoritmo de mejora del color y de poca luz que se agregó a PhyCV en noviembre de 2022.

Fondo

Transformación de estiramiento de fase (PST)

La transformada de estiramiento de fase (PST) es un algoritmo de detección de bordes y texturas computacionalmente eficiente con un rendimiento excepcional en imágenes con problemas visuales. [4] [5] [6] El algoritmo transforma la imagen emulando la propagación de la luz a través de un dispositivo con una propiedad difractiva diseñada seguida de una detección coherente. Se ha aplicado para mejorar la resolución de imágenes de resonancia magnética , [7] extraer vasos sanguíneos en imágenes de retina, [8] identificar delfines, [9] y tratar aguas residuales, [10] obtener imágenes biológicas de moléculas individuales, [11] y clasificar vehículos aéreos no tripulados mediante imágenes micro Doppler. [12]

Extractor de campo de gradiente adaptativo de estiramiento de fase (PAGE)

El extractor de campo de gradiente adaptativo de estiramiento de fase (PAGE) es un algoritmo inspirado en la física para detectar bordes y sus orientaciones en imágenes digitales a varias escalas. [13] [14] El algoritmo se basa en las ecuaciones de difracción de la óptica. Metafóricamente hablando, PAGE emula la física de la propagación difractiva birrefringente (dependiente de la orientación) a través de un dispositivo físico con una estructura difractiva específica. La propagación convierte una imagen de valor real en una función compleja. La información relacionada está contenida en los componentes reales e imaginarios de la salida. La salida representa la fase de la función compleja.

Mejora de la visión mediante difracción virtual y detección coherente (VEViD)

Mejora de la visión mediante difracción virtual y detección coherente (VEViD) es un algoritmo eficaz e interpretable de mejora del color y de la poca luz que reimagina una imagen digital como un campo de luz metafórico que varía espacialmente y luego somete el campo a procesos físicos similares a la difracción y la detección coherente. [15] El término “virtual” captura la desviación del mundo físico. El campo de luz se pixela y la propagación imparte una fase con una dependencia arbitraria de la frecuencia que puede ser diferente del comportamiento cuadrático de la difracción física. VEViD se puede acelerar aún más mediante aproximaciones matemáticas que reducen el tiempo de cálculo sin sacrificar apreciablemente la calidad de la imagen. Una aproximación de forma cerrada para VEViD, que llamamos VEViD-lite, puede alcanzar hasta 200 FPS para la mejora de video 4K.

PhyCV al límite

PhyCV, que presenta baja dimensionalidad y alta eficiencia, es ideal para aplicaciones informáticas de borde. En esta sección, demostramos cómo ejecutar PhyCV en NVIDIA Jetson Nano en tiempo real.

Kit para desarrolladores NVIDIA Jetson Nano

NVIDIA Jetson Nano Developer Kit es una plataforma de tamaño pequeño y de bajo consumo de energía para aplicaciones informáticas de borde. Está equipada con una GPU de arquitectura NVIDIA Maxwell con 128 núcleos CUDA , una CPU ARM Cortex-A57 de cuatro núcleos, 4 GB de RAM LPDDR4 de 64 bits y admite codificación y decodificación de video con una resolución de hasta 4K. Jetson Nano también ofrece una variedad de interfaces para conectividad y expansión, lo que lo hace ideal para una amplia gama de aplicaciones de IA e IoT. En nuestra configuración, conectamos una cámara USB a Jetson Nano para adquirir videos y demostrar el uso de PhyCV para procesar los videos en tiempo real.

PhyCV en tiempo real en Jetson Nano

Utilizamos Jetson Nano (4 GB) con NVIDIA JetPack SDK versión 4.6.1, que viene con Python 3.6, CUDA 10.2 y OpenCV 4.1.1 preinstalados. Además, instalamos PyTorch 1.10 para habilitar PhyCV acelerado por GPU. Demostramos los resultados y las métricas de ejecutar PhyCV en Jetson Nano en tiempo real para tareas de detección de bordes y mejora con poca luz. Para videos de 480p, ambas operaciones alcanzan más de 38 FPS, lo que es suficiente para la mayoría de las cámaras que capturan videos a 30 FPS. Para videos de 720p, la mejora con poca luz de PhyCV puede funcionar a 24 FPS y la detección de bordes de PhyCV puede funcionar a 17 FPS.

Reflejos

Arquitectura de código modular

Arquitectura de código modular de los algoritmos PhyCV.

El código de PhyCV tiene un diseño modular que sigue fielmente el proceso físico a partir del cual se originó el algoritmo. Tanto los módulos PST como PAGE de la biblioteca PhyCV emulan la propagación de la señal de entrada (imagen digital original) a través de un dispositivo con una propiedad difractiva diseñada seguida de una detección coherente (de fase). La propagación dispersiva aplica un núcleo de fase al dominio de frecuencia de la imagen original. Este proceso tiene tres pasos en general: cargar la imagen, inicializar el núcleo y aplicar el núcleo. En la implementación de PhyCV, cada algoritmo se representa como una clase en Python y cada clase tiene métodos que simulan los pasos descritos anteriormente. La arquitectura del código modular sigue la física detrás del algoritmo. Consulte el código fuente en GitHub para obtener más detalles.

Aceleración de GPU

PhyCV admite la aceleración de GPU. Las versiones de GPU de PST y PAGE se basan en PyTorch acelerado por el kit de herramientas CUDA . La aceleración es beneficiosa para aplicar los algoritmos en el procesamiento de imágenes y videos en tiempo real y otras tareas de aprendizaje profundo. A continuación, se muestra el tiempo de ejecución por cuadro de los algoritmos PhyCV en CPU (Intel i9-9900K) y GPU (NVIDIA TITAN RTX) para videos en diferentes resoluciones. Tenga en cuenta que la mejora de poca luz de PhyCV funciona en el espacio de color HSV, por lo que el tiempo de ejecución también incluye la conversión de RGB a HSV. Sin embargo, para todos los tiempos de ejecución que utilizan GPU, ignoramos el tiempo de traslado de datos de CPU a GPU y solo contamos el tiempo de operación del algoritmo.

Instalación y ejemplos

Consulte el archivo README de GitHub para obtener una documentación técnica detallada.

Limitaciones actuales

Cuello de botella de E/S (entrada/salida) para el procesamiento de vídeo en tiempo real

Cuando se trabaja con transmisiones de video en tiempo real desde cámaras, los fotogramas se capturan y almacenan en búfer en la CPU y deben trasladarse a la GPU para ejecutar los algoritmos PhyCV acelerados por la GPU. Este proceso consume mucho tiempo y es un cuello de botella común para los algoritmos de procesamiento de video en tiempo real.

Falta de adaptabilidad de parámetros para diferentes imágenes

Actualmente, los parámetros de los algoritmos PhyCV deben ajustarse manualmente para diferentes imágenes. Si bien un conjunto de parámetros preseleccionados funciona relativamente bien para una amplia gama de imágenes, la falta de adaptabilidad de los parámetros para diferentes imágenes sigue siendo una limitación por ahora.

Véase también

Referencias

  1. ^ Ingeniería de características basada en la física. Jalali et al. Óptica, fotónica y tecnología láser, 2019
  2. ^ Conversión de analógico a digital con tiempo extendido. Bhushan et al., Electronic Letters Techniques, 1998
  3. ^ El estiramiento temporal y sus aplicaciones. Mahjoubfar et al. Nature Photonics, 2017
  4. ^ Detección de bordes de imágenes inspirada en la física. Asghari et al. Simposio mundial sobre procesamiento de señales e información del IEEE, 2014
  5. ^ Detección de bordes en imágenes digitales mediante estiramiento de fase dispersiva. Asghari et al. International Journal of Biomedical Imaging, 2015
  6. ^ Mejora de características en imágenes para personas con discapacidad visual. Suthar et al. IEEE Access, 2018
  7. ^ Superresolución rápida en imágenes de resonancia magnética mediante transformación de estiramiento de fase, regresión de punto anclado y aprendizaje de datos cero. He et al. Conferencia internacional IEEE sobre procesamiento de imágenes, 2019
  8. ^ Una transformación de estiramiento de fase de flujo local para la detección robusta de vasos retinianos. Challoob et al. En la Conferencia internacional sobre conceptos avanzados para sistemas de visión inteligente, 2020
  9. ^ Método de identificación de delfines basado en PST mejorado. Wang et al. En 2021 IEEE/ACIS 6th International Conference on Big Data, Cloud Computing, and Data Science (BCD), 2021
  10. ^ Segmentación de imágenes de contraste de fases de lodos activados mediante transformación de estiramiento de fase. Ang et al. Microscopy, 2019
  11. ^ Transformada de estiramiento de fase para microscopía de localización de súper resolución. Ilovitsh et al. En Biomedical Optics Express, 2016
  12. ^ Clasificación de drones mediante imágenes micro-Doppler mejoradas por bordes basadas en CNN. Singh et al. Traitement du Signal, 2021
  13. ^ Extractor de gradiente de campo adaptativo de estiramiento de fase (página). Suthar et al. Coding Theory, 2020
  14. ^ Extractor de campo de gradiente adaptativo de estiramiento de fase (PAGE). MacPhee et al. arXiv preprint arXiv:2202.03570, 2022
  15. ^ VEViD: mejora de la visión mediante difracción virtual y detección coherente. Jalali et al. eLight, 2022