Práctica de razonamiento de IA 丨 Descifrado de diseño de mejores prácticas de detección de objetos de rendimiento extremo multicanal

Resumen: El descifrado de diseño de mejores prácticas de detección de objetivos de rendimiento extremo multicanal basado en CANN.

Este artículo es compartido por la comunidad HUAWEI CLOUD " Mejores prácticas de razonamiento de IA basado en CANN 丨 Descifrado de diseño de aplicaciones de detección de objetivos de rendimiento extremo multicanal ", autor: Shengteng CANN.

En el campo actual de la inteligencia artificial, los modelos más populares son, sin duda, varios modelos "advenedizos" representados por ChatGPT, que son tan altos que no se pueden tocar. Pero en la vida diaria de las personas, las necesidades de aplicación más prácticas son la detección de objetivos "potentes" que representa el modelo Yolo, que se implementan de diversas maneras todos los días y se aplican a todos los aspectos de nuestra vida diaria.

La detección de objetos es una tecnología clave en el campo de la visión artificial, su tarea es encontrar todos los objetos de interés en la imagen y determinar sus categorías y ubicaciones. A medida que la inteligencia artificial penetra sutilmente en la vida de las personas, todos los ámbitos de la vida compiten para abrir espacio en el mercado mediante la introducción de tecnologías como la detección de objetivos, y también surgen varias necesidades de inteligencia artificial para la detección de objetivos, como:

  • En el campo del transporte, la detección de objetos se puede utilizar para detectar peatones, vehículos, señales de tráfico y otros objetos en la carretera para mejorar la seguridad de conducción y la comodidad del tráfico.
  • En el campo de la seguridad, la detección de objetos se puede utilizar para detectar características clave, comportamientos específicos u objetos sospechosos para descubrir e identificar rápidamente las amenazas de seguridad.
  • En el campo médico, la detección de objetivos se puede utilizar para identificar partes del cuerpo, lesiones, electrocardiogramas, imágenes de TC, etc., para ayudar rápidamente al diagnóstico.
  • En el campo de la vida, la detección de objetos se puede utilizar en compras inteligentes, hogares inteligentes y otros escenarios para mejorar la comodidad de la vida de las personas.

Sin embargo, el umbral para el desarrollo de aplicaciones de IA es alto y el ciclo es largo. El costo de comprender varias pilas de software de IA es alto, la integración de los modelos de algoritmos de IA y el negocio es difícil, y los requisitos de habilidades para los desarrolladores también son altos. Cómo mejorar la eficiencia de desarrollo de las aplicaciones de razonamiento de IA y reducir el umbral de desarrollo es una necesidad urgente para mejorar el status quo. Con este fin, los expertos técnicos de Ascend CANN diseñaron y desarrollaron las mejores prácticas para aplicaciones de detección de objetivos, lo que permitió a los desarrolladores implementar rápidamente aplicaciones de detección de objetivos en la plataforma Ascend y obtener fácilmente docenas o incluso cientos de resultados de detección. Echemos un vistazo más de cerca a las ideas de diseño de esta práctica.

Descomposición de aplicación básica

Comenzamos con un escenario básico de aplicación de inferencia de detección de objetivos. El proceso de inferencia generalmente incluye las siguientes partes:

Proceso de negocio de inferencia de GPU AI

  1. La entrada de datos es el flujo de datos de video obtenido por la cámara, generalmente en formato H.264.
  2. Luego use el software FFmpeg para desenmarcar y decodificar la transmisión continua de video.
  3. La siguiente etapa es preprocesar la imagen decodificada, generalmente usando OpenCV para escalar la imagen para obtener las especificaciones de imagen requeridas por el modelo.
  4. En el enlace de inferencia del modelo, los usuarios pueden elegir entre muchos métodos, y el típico es usar TensorRT para el desarrollo de aplicaciones de inferencia.
  5. El procesamiento posterior de la detección de objetivos requiere cálculo NMS, marco de imagen y otras operaciones.
  6. En la fase de salida de datos, el usuario implementa un formulario de presentación de resultados según sea necesario.

Adaptación de la función de razonamiento

Para migrar la aplicación de detección de objetos presentada anteriormente a la plataforma Ascend, los desarrolladores solo deben prestar atención a la adaptación del enlace "razonamiento", que incluye los siguientes dos pasos:

  1. Convierta el archivo del modelo de inferencia (modelo onnx o modelo pb) en un archivo om fuera de línea exclusivo de la plataforma Ascend a través de la herramienta ATC.
  2. Utilice el lenguaje AscendCL para desarrollar la lógica de carga y ejecución del modelo.

Proceso de negocio de razonamiento de IA basado en CANN

Después de completar los dos pasos anteriores, las funciones de la aplicación de inferencia se han migrado a la plataforma Ascend. En este momento, si el rendimiento general del razonamiento no cumple con las expectativas ideales, es necesario ingresar a la etapa de optimización y mejora del rendimiento.

Método de mejora del rendimiento 1: habilite capacidades eficientes de codificación y decodificación del hardware DVPP

DVPP (Preprocesamiento de visión digital, preprocesamiento de visión digital) es la unidad de procesamiento de imágenes integrada del procesador Ascend AI, que proporciona potentes capacidades de aceleración de hardware de procesamiento de medios a través de la interfaz de procesamiento de datos de medios AscendCL, que incluye principalmente las siguientes funciones:

  • VPC (Vision Preprocessing Core): procesa imágenes en YUV, RGB y otros formatos, incluido escalado, matizado, conversión de gama de colores, etc.
  • JPEGD (JPEG Decoder): formato de compresión JPEG → decodificación de imágenes en formato YUV.
  • JPEGE (Codificador JPEG): Codificación de imágenes en formato YUV→formato de compresión JPEG.
  • VDEC (decodificador de video): formato H264/H265 → decodificación de transmisión de video en formato YUV/RGB.
  • VENC (codificador de video): formato YUV420SP → Codificación de transmisión de video en formato H264/H265.
  • PNGD (decodificador PNG): formato PNG → decodificación de imágenes en formato RGB.

Posición de DVPP en la arquitectura lógica del procesador Ascend 310 AI

Los desarrolladores pueden realizar la decodificación y el procesamiento de imágenes por hardware a través de DVPP para mejorar la eficiencia del procesamiento de imágenes. Además, DVPP y AI Core, la unidad informática para realizar el razonamiento, son unidades de hardware completamente independientes, por lo que no hay necesidad de preocuparse por el impacto en el rendimiento de la ejecución del razonamiento después de usar DVPP.

Proceso de negocio de razonamiento de IA basado en CANN: uso de DVPP para el preprocesamiento de datos

Método de mejora del rendimiento 2: aumente el paralelismo de datos antes y después del razonamiento, de modo que los pasos de razonamiento se puedan realizar de forma continua

La plataforma Ascend adopta una arquitectura informática heterogénea, por lo que para aprovechar al máximo la superpotencia del núcleo informático AI Core, es necesario garantizar que los datos necesarios para la informática AI Core puedan suministrarse de forma continua e ininterrumpida, y al mismo tiempo tiempo de salida sin esperas. Para realizar esta capacidad, la canalización paralela del módulo de razonamiento se puede aumentar a través del mecanismo de cola entre el preprocesamiento de datos → razonamiento del modelo, razonamiento del modelo → módulos de posprocesamiento de datos.

Proceso de negocio de razonamiento de IA basado en CANN: aumente el flujo de procesamiento paralelo de razonamiento a través de la cola

Del mismo modo, las colas también se pueden usar entre la división de cuadros de video FFmpeg y el procesamiento DVPP para aumentar aún más el paralelismo. Sin embargo, debe tenerse en cuenta que los datos de la cola en el lado de la inferencia consumirán memoria de hardware, por lo que debe configurarse de manera razonable.

Método de mejora del rendimiento 3: simultaneidad de subprocesos múltiples, lanzamiento continuo del rendimiento de AI Core

Multi-threading es un medio importante para mejorar la utilización de los recursos de hardware. Con el soporte de multi-threading, se puede realizar la entrada de video de múltiples canales y diferentes fuentes; para escenarios con múltiples tarjetas en el servidor, también admite la ejecución paralela de múltiples tarjetas, liberando completamente el poder del software y hardware de Ascend.

Proceso de negocio de razonamiento de IA basado en CANN: simultaneidad de subprocesos múltiples

Con base en las mejores prácticas de detección de objetos, los desarrolladores pueden migrar fácilmente las aplicaciones de razonamiento de IA existentes a la plataforma Ascend y lograr fácilmente un alto rendimiento. Los desarrolladores también pueden consultar esta práctica para comenzar rápidamente con el desarrollo de IA y jugar con aplicaciones de inferencia en la plataforma Ascend. En el futuro, CANN seguirá centrándose en mejorar la facilidad de uso del desarrollo de aplicaciones y seguirá satisfaciendo las demandas de los desarrolladores.

Haga clic en Enlace para obtener el código fuente de mejores prácticas para la detección de objetos de alto rendimiento multicanal.

 

Haga clic para seguir y conocer las nuevas tecnologías de Huawei Cloud por primera vez~

Los graduados de la Universidad Popular Nacional robaron la información de todos los estudiantes de la escuela para construir un sitio web de puntuación de belleza, y han sido detenidos criminalmente.La nueva versión de Windows de QQ basada en la arquitectura NT se lanza oficialmente.Estados Unidos restringirá el uso de China de Amazon, Microsoft y otros servicios en la nube que brindan capacitación en modelos de IA. Se anunciaron proyectos de código abierto para detener el desarrollo de funciones LeaferJS , el puesto técnico mejor pagado en 2023, lanzado: Visual Studio Code 1.80, una biblioteca de gráficos 2D de código abierto y potente , compatible funciones de imagen de terminal . El número de registros de subprocesos ha superado los 30 millones. "Cambio" deepin adopta Asahi Linux para adaptarse a la clasificación de la base de datos Apple M1 en julio: Oracle aumenta, abriendo el puntaje nuevamente
{{o.nombre}}
{{m.nombre}}

Supongo que te gusta

Origin my.oschina.net/u/4526289/blog/10086983
Recomendado
Clasificación