L'IA de caméra avancée sur le bord en 2025

Votre voyage vers l'IA caméra haute performance sur le bord commence avec le matériel. Vous devriez choisir un HiSilicon SoC avec un powerf

Avancé

Votre voyage vers l'IA caméra haute performance sur le bord commence avec le matériel. Vous devriez choisir un SoC HiSilicon avec un NPU puissant. Ce choix est la base de votre succès.

La clé pour débloquer des performances d'IA maximales est un pipeline de données zéro copie. Cette méthode efficace permet au processeur d'image sur le SoC d'alimenter directement le NPU.

La maîtrise de ce processus implique trois idées fondamentales. Vous devez comprendre l'architecture de pipeline, le réglage d'image intelligent et l'optimisation du modèle NPU.

Les clés à emporter

  • Choisissez un SoC HiSilicon avec un NPU puissant. Ce choix de matériel est important pour une bonne caméra AI.
  • Créez un pipeline de données à copie zéro. Cela relie l'ISP et NPU directement. Cela rend votre IA plus rapide et utilise moins d'énergie.
  • Accordez l'ISP pour votre modèle d'IA. Cela signifie ajuster les paramètres de la caméra pour aider l'IA à mieux voir, pas seulement pour les yeux humains.
  • Optimisez votre modèle d'IA pour le NPU. Utilisez la quantification INT8 pour rendre votre modèle plus petit et plus rapide. Cela l'aide à bien fonctionner sur les appareils de pointe.

LA PILE D'AI DE CAMÉRA MODERNE:

LE

Sur un SoC mobile moderne, vous ne travaillez pas avec un seul processeur. Vous dirigez un orchestre deAccélérateurs matériels spécialisés. Comprendre comment ces pièces fonctionnent ensemble est crucial pour construire un système d'IA de caméra puissant sur le bord. Les deux acteurs les plus importants de cet orchestre sont le processeur de signal d'image (ISP) et le Neural Processing Unit (NPU).

RÔLE DU FSI DANS PRE-PROCESSING:

Pensez à l'ISP comme assistant intelligent de la NPU. Son travail est plus que simplement faire des images bien paraître. Dans un pipeline d'IA, l'ISP agit comme un accélérateur matériel pour le prétraitement. Il prépare parfaitement les données d'image pour le réseau neuronal. Par exemple, votre modèle d'IA peut nécessiter une petite image 224x224 pixels, mais votre appareil photoCapteurCapture une grande image 4K.Le FAI utilise un tuyau de sortie dédié pour redimensionner l'image directement, Vous évitant de faire cette étape lente dans le logiciel. Il gère également des tâches telles que la conversion des espaces de couleur pour correspondre à ce que votre réseau de neurones attend.

L'ARCHITECTURE DA VINCI DU NPU:

L'unité de traitement neuronal est le cerveau de votre opération d'IA.L'architecture Da Vinci NPU de HiSilicon fournit la puissance brute pour l'inférence AI.Sa conception offre des performances incroyables pour les charges de travail complexes d'IA.

Le cœur de l'architecture de Da Vinci est son unité de calcul «3D Cube». Ce noyau d'IA spécialisé est conçu pour accélérer les mathématiques matricielles qui constituent la base de tous les calculs de réseau de neurones.

Cette structure unique permet au NPU d'effectuer des milliers d'opérations en un seul cycle d'horloge.Il prend en charge plusieurs précisions de données, ce qui le rend flexible pour différentes étapes du développement de l'IA et assure une inférence efficace et de faible puissance. C'est le moteur qui fournit l'accélération matérielle pour l'inférence AI.

LE PONT DE DONNÉES ISP-NPU:

La vraie magie se produit lorsque l'ISP et NPU travaillent ensemble. Ils forment un pont de données direct sur le SoC, créant une puissante boucle de rétroaction. Voici comment cela fonctionne:

  1. Le NPU utilise sa puissance de traitement de vision pour détecter une personne dans le cadre.
  2. Il indique au FAI l'emplacement exact de cette personne.
  3. Le FAI ajuste ensuite ses propres paramètres, comme l'exposition et la mise au point, sur cette zone spécifique pour capturer une image beaucoup plus claire de la personne.
  4. Cette image améliorée est renvoyée au NPU pour une analyse plus précise de l'IA.

Cette collaboration étroite améliore les performances globales du système et la précision finale de votre IA.

À L'INTÉRIEUR DU SOC MOBILE:

À L'INTÉRIEUR

Vous avez les composants clés: leISP et NPU. Maintenant, vous devez les connecter à l'intérieur du SoC mobile. Cette section vous donne les étapes pratiques pour créer un pipeline de données hautes performances. Vous apprendrez à configurer le matériel, gérerMémoireEfficacement, et lier les composants ensemble dans le code. Ce processus est essentiel pour votre application AI de caméra sur le bord.

CONFIGURER LA SORTIE FAI:

Votre première étape consiste à dire au FAI comment préparer les données d'image pour votre modèle d'IA. Votre réseau de neurones a des besoins d'entrée spécifiques. Par exemple, il pourrait s'attendre à une image de 224x224 pixels dans un format couleur BGR. Vous devez configurer un canal de sortie de FAI pour correspondre exactement à ces exigences.

Vous pouvez y parvenir en utilisant lePlateforme de processus de médias HiSilicon(MPP) API. Voici un guide simple:

  1. Définir les attributs de canalVous créez une structure dans votre code pour contenir les paramètres.
  2. Définir la résolutionVous spécifiez la largeur et la hauteur exactes dont votre réseau de neurones a besoin.
  3. Définir le format des pixelsVous choisissez le format de couleur correspondant au calque d'entrée de votre modèle.
  4. Appliquer la configuration: Vous appelez une fonction commeHI_MPI_VI_SetChnAttr()Pour appliquer ces paramètres à un canal spécifique de FAI sur le SoC mobile.

Cette configuration directe décharge tout le travail de prétraitement vers le matériel du FAI. Votre code d'application principal reçoit des données qui sont déjà parfaites pour l'inférence IA.

GESTION EFFICACE DE LA MÉMOIRE:

Une mauvaise gestion de la mémoire peut paralyser les performances de votre application. Sur un SoC basé sur ARM, vous devez manipuler la mémoire avec soin pour éviter les problèmes courants.

  • FragmentationAllouer et libérer de la mémoire peut laisser de petites lacunes inutilisables. Finalement, vous ne pouvez pas trouver un bloc assez grand, même avec suffisamment de mémoire libre totale.
  • Fuites de mémoireL'oubli de libérer de la mémoire allouée consomme lentement toutes les ressources disponibles, entraînant des pannes du système.
  • Références perduesLes pointeurs vers la mémoire peuvent être perdus, ce qui rend impossible de libérer la mémoire plus tard.

Pour éviter ces problèmes, vous ne devez pas utiliserAllocation de mémoire dynamique standard. Au lieu de cela, vous devez allouer de la mémoire à partir d'un pool de mémoire tampon vidéo (VB) dédié sur le SoC. Cela vous donne un bloc de mémoire physique contigu.

Le NPU fonctionne mieux avec ce type de mémoire. Pour un accès optimal aux données, le NPU utiliseÉclats de mémoire. Cette méthode nécessite que les données soient dans un seul bloc ininterrompu. Utiliser une fonction commeHI_MPI_VB_GetBlockDe la bibliothèque HiSilicon MPP assure que vos données sont parfaitement alignées pour le NPU. Cette technique est fondamentale pour créer une application de puce IA mobile rapide et stable qui offre des performances constantes et à faible consommation.

LIAISON DU PIPELINE DANS LE CODE:

La dernière étape consiste à créer la connexion de données physique sur le SoC. Vous dites au SoC mobile d'envoyer la sortie du FAI directement à l'entrée du NPU. Cette "liaison" crée le pipeline de copie zéro. Il élimine le besoin de la CPU pour copier des données, ce qui permet d'économiser du temps et de l'énergie.

Vous utilisez une seule fonction puissante pour établir cette connexion:HI_MPI_SYS_Bind. Cette fonction prend la source (canal ISP) et la destination (NPU) comme arguments.

Voici à quoi ressemble le code en C/C:

// Définir la source des données (canal de sortie vidéo du FAI)
MPP_CHN_S stSrcChn;
StSrcChn. enModId = HI_ID_VI; // ID de module pour l'entrée vidéo
StSrcChn. s32DevId = 0; // ID de périphérique
StSrcChn. s32ChnId = 0; // ID de canal

// Définition de la destination des données (NPU)
MPP_CHN_S stDestChn;
StDestChn. enModId = HI_ID_NNIE; // ID de module pour moteur d'inférence de réseau neuronal
StDestChn. s32DevId = 0; // ID de périphérique
StDestChn. s32ChnId = 0; // ID de canal

// Liaison directe du canal FAI au NPU
HI _ S32 s32Ret = HI_MPI_SYS_Bind(& stSrcChn, & stDestChn);

Si (s32Ret = = HI_SUCCESS) {
// Le pipeline zéro-copie est maintenant actif!
// Le FAI alimentera automatiquement le NPU.
}

Avec ce simple appel, vous avez orchestré le matériel sur le SoC mobile. Le FAI alimente maintenant directement le NPU, permettant une performance d'inférence AI maximale pour votre réseau de neurones. C'est le cœur du développement moderne de l'IA intégrée.

AI-AWARE ISP TUNING:

La construction du pipeline n'est que la première étape. Vous devez maintenant régler le FAI avec votre modèle d'IA à l'esprit. Le réglage traditionnel des FAI rend les images belles à l'œil humain. Cependant, le réglage de l'IA optimise les données d'image pour votre réseau neuronal. Ce changement de pensée est essentiel pour atteindre les meilleures performances d'IA sur votreSoC mobile.

DÉCHARGEMENT PRE-PROCESSING TÂCHES:

Vous pouvez utiliser le FAI pour faire plus que simplement redimensionner des images. Considérez-le comme un pré-processeur dédié à votre application d'IA. Le FAI peut gérer des tâches complexes telles que la correction de distorsion géométrique à partir d'un objectif grand angle. Cela garantit que votre réseau de neurones reçoit une image propre et non déformée. Le déchargement de ces tâches au FAI libère des ressources CPU et crée un système plus efficace pour votre périphérique périphérique périphérique.

OPTIMISATION POUR LA PRÉCISION AI:

Une image qui vous semble parfaite pourrait confondre votre modèle d'IA. Les paramètres qui améliorent la vision humaine peuvent parfois nuire à la vision de la machine. Par exemple, une réduction de bruit agressive peut supprimer des détails importants dont votre modèle a besoin pour une inférence précise.

Des études montrent que la modification des paramètres du FAI à partir d'une configuration standard peut réduire les performances de détection des objets. La clé est de trouver le bon équilibre pour votre tâche spécifique d'IA.

  • Différentes architectures de réseaux de neurones réagissent différemment aux changements de FAI. Une dorsale ResNet50, par exemple, peut être plus sensible au flou de la réduction du bruit.
  • Vous pouvez améliorer la robustesse du modèle en entraînant votre IA avec des images auxquelles divers paramètres de FAI sont appliqués.
  • Il y a une limite à cette amélioration. Votre modèle aura toujours besoin d'un niveau minimum de netteté pour bien performer.

Votre objectif est de régler les paramètres ISP comme le contraste, la saturation et le dénoisage pour maximiser la précision de l'inférence, pas seulement l'attrait visuel. Cette approche de co-conception améliore les performances globales du système.

LA BOUCLE DE RÉTROACTION AI-TO-ISP:

La technique la plus avancée consiste à créer une boucle de rétroaction où l'IA contrôle directement le FAI. Le NPU analyse une trame et indique au FAI comment ajuster pour la suivante. Cela crée un système de vision intelligent et autocorrecteur sur le SoC. Par exemple,Un système "Infinite-ISP" utilise cette méthode pour effectuer des ajustements en temps réel.

  • Balance des blancs automatique (AWB)Le NPU peut aider le FAI à ignorer les zones surexposées pour calculer une balance des blancs plus précise.
  • Exposition automatique (AE)L'IA peut analyser l'histogramme de l'image et dire au FAI d'ajuster le gain numérique, en corrigeant la luminosité pour une meilleure analyse.

Cette boucle étroite entre le NPU et l'ISP garantit que la caméra capture toujours les meilleures données possibles pour votre IA.

OPTIMISATION DU MODÈLE NPU:

Votre pipeline de données est construit. Vous devez maintenant optimiser votre modèle d'IA pour l'unité de traitement neuronal. Un modèle formé sur un serveur puissant ne fonctionnera pas efficacement sur unDispositif de bord de faible puissanceSans changements. Vous devez rendre votre modèle plus petit et plus rapide pour obtenir les meilleures performances du SoC mobile. Ce processus implique la quantification, l'utilisation des bons opérateurs et des tests minutieux.

QUANTIZATION DU MODÈLE INT8:

Vous pouvez accélérer considérablement votre modèle en modifiant son type de données. La plupart des réseaux de neurones profonds sont formés à l'aide de nombres à virgule flottante 32 bits (FP32). La quantification est le processus de conversion de votre modèle pour utiliser des entiers 8 bits (INT8). CeciRend votre modèle quatre fois plus petit et augmente considérablement la vitesse d'inférence. Ceci est essentiel pour les charges de travail AI exigeantes sur le SoC.

Un test de benchmark AI montre un saut de performance massif.Un modèle fonctionnant à 12 images par seconde avec FP32 peut atteindre 30 images par seconde avec INT8.

PrécisionFPS (images par seconde)
FP3212
INT830

Vous pouvez utiliserDes outils comme le convertisseur TensorFlow LitePour réaliser cette optimisation. L'outil analyse votre modèle et le convertit au format INT8, en le préparant pour le NPU.

# Cet exemple montre comment convertir un modèle en INT8
Importation tensorflow en tant que tf
Converter = tf.lite.TFLiteConverter.from_saved_model(saved_model_dir)
Converter. optimisations = [tf.lite.Optimize.DEFAULT]
#... D'autres paramètres pour appliquer la quantification INT8
Tflite_quant_model = converter.convert()

UTILISATION D'OPÉRATEURS NPU-FRIENDLY:

Le NPU est un processeur spécialisé. Il est conçu pour accélérer des opérations mathématiques spécifiques utilisées dans les réseaux de neurones. Pour atteindre des performances maximales, votre modèle d'IA doit utiliser ces opérateurs «NPU-friendly».

Architecture npu Da Vinci de HiSiliconFournit l'accélération matérielle pour les opérations de base, y compris:

  • Convolution
  • La mise en commun
  • Activation
  • Lien complet

Si votre modèle utilise des opérateurs qui ne figurent pas dans cette liste, ils s'exécuteront sur le processeur plus lent. Cela crée un goulot d'étranglement. Vous devez modifier votre réseau de neurones pour remplacer les opérateurs non pris en charge par des opérateurs accélérés par du matériel. Par exemple, vous pouvez utiliser des techniques telles queFusion opérateurPour combiner plusieurs opérations simples en une seule, NPU-friendly.

PROFIL ET DEBUGGING:

L'optimisation n'est pas une étape ponctuelle. Vous devez tester et vérifier vos modifications. Les outils de profilage vous aident à analyser les performances de votre modèle sur le matériel. Ils vous montrent exactement combien de temps chaque couche de votre modèle prend pour s'exécuter pendant l'inférence.

À l'aide d'un outil de benchmark AI, vous pouvez identifier les couches qui s'exécutent sur le NPU et celles qui retombent sur le CPU. Cette information est critique. Il vous aide à trouver les goulots d'étranglement et à confirmer que votre quantification et les changements d'opérateur ont réussi. Cette dernière vérification garantit que vous obtenez les meilleures performances d'IA possibles pour votre application Edge.

L'AVENIR DE LA FUSION ISP-NPU:

Le lien étroit entre l'ISP et NPU n'est que le début. Vous assistez à une révolution dans la façon dont les systèmes de vision par ordinateur sont conçus. L'avenir se dirige vers une fusion complète de ces composants, créant des systèmes d'IA de caméra plus intelligents, plus rapides et plus efficaces. Cette évolution suit la cléLes tendances de la technologie des puces aiQui redéfinira ce qui est possible sur le bord.

INTÉGRATION DE MATÉRIEL PLUS SERRÉE:

Les concepteurs de puces rapprochent physiquement le FAI et l'unité de traitement neuronal sur le SoC mobile. Cette intégration plus étroite sur le silicium raccourcit le trajet de déplacement des données. Le résultat est une augmentation significative de la performance et une réduction de la consommation d'énergie. Cela rend l'ensemble du SoC basé sur ARM plus efficace. Vous obtenez une inférence plus rapide avec moins de batterie, un objectif critique pour toutes les applications mobiles et de faible puissance. Cette intégration est une étape essentielle vers la prochaine générationPuces d'inférence de faible puissance.

AI-DRIVEN PIPELINES DE FSI:

Le prochain grand saut est un pipeline de FAI entièrement piloté par l'IA. Au lieu de régler le FAI, un réseau de neurones le fera automatiquement. L'IA ajustera les paramètres d'image en temps réel pour capturer les meilleures données pour une tâche de vision spécifique. Des recherches récentes montrent que cela se produit déjà.

Un réseau neuronal profond peut agir comme un proxy, à la recherche des paramètres ISP idéal pour maximiser la qualité d'image ou la précision des tâches.

Des projets pionniers démontrent ce concept:

  • ParamISPUtilise un module neuronal pour contrôler les fonctions du FAI en fonction des paramètres de la caméra tels que l'exposition et la sensibilité.
  • AdaptiveISPUtilise l'apprentissage par renforcement pour construire le meilleur pipeline ISP pour la détection d'objets, en augmentant les performances.

CAS D'UTILISATION DE BORD ÉMERGENTS:

Cette fusion puissante débloque une nouvelle vague d'applications pour les appareils de pointe d'IA. Vos futurs produits auront des capacités de vision qui ressemblent à de la science-fiction aujourd'hui. Les caméras domestiques intelligentes ne se contenteront pas de détecter les mouvements; elles comprendront le contexte et l'identité avec une précision incroyable. Dans l'automobile, les voitures percevront les conditions routières avec plus de clarté, ce qui rendra la conduite plus sûre. Ces systèmes à faible consommation d'énergie apporteront l'IA avancée du cloud directement à la périphérie, permettant une prise de décision puissante et en temps réel partout.


Vous avez maintenant les clés de la performance supérieure. Vous construisez un pipeline zéro-copie sur le soc mobile, ajustez le FAI pour votre réseau neuronal et optimisez votre modèle pour le npu.

Maîtriser cette synergie sur le soc mobile déverrouille les meilleurs résultats de la caméra ai.

L'avenir du bord est un soc entièrement piloté par l'IA. Vous devriez adopter ce nouveau design pour votre prochain projet neuronal ai.

FAQ

Pourquoi un pipeline zéro-copie est-il si important?

Vous avez besoin d'un pipeline zéro-copie pour la vitesse et l'efficacité. Il empêche le CPU de copier des données entre l'ISP et NPU. Cette liaison matérielle directe permet d'économiser de l'énergie et de faire fonctionner votre application AI beaucoup plus rapidement sur l'appareil périphérique.

Ai-je besoin d'une puce spéciale pour cela?

Oui, vous obtenez les meilleurs résultats avec un SoC mobile spécifique. Vous devriez choisir une puce avec un NPU puissant et un FAI que vous pouvez relier ensemble.Puces de HiSiliconSont un excellent exemple pour cette tâche.

Qu'est-ce que la quantification INT8?

La quantification rend votre modèle d'IA plus petit et plus rapide. Vous modifiez les mathématiques du modèle des nombres complexes de 32 bits aux entiers simples de 8 bits.

Ce simple changement peut rendre votre modèle deux fois plus rapide sur le NPU!

Ce processus est-il difficile à apprendre?

Cela semble complexe au premier abord. Cependant, les étapes principales sont simples. Vous utilisez des fonctions d'API spécifiques commeHI_MPI_SYS_Bind. Les outils des fabricants de puces vous aident à construire votre pipeline étape par étape. Vous pouvez maîtriser ce processus.

Related Articles