Optical Flow – Cas d’utilisation typiques
Optical Flow bénéficie de cas d’utilisation tels que
- Le suivi d’objets pour l’analyse vidéo intelligente
- L’interpolation d’images vidéo, et extrapolation
- Estimation de la profondeur stéréo
- Reconnaissance d’actions vidéo
Pistage d’objets pour l’analyse vidéo intelligente
Il y a encore quelques années, l’analyse vidéo intelligente (IVA) nécessitait un visionnage physique et une analyse manuelle des vidéos capturées. Avec les développements rapides des techniques de vision par ordinateur et d’apprentissage profond, la plupart de ces analyses sont désormais automatisées. L’identification des objets/personnes/véhicules intéressants à partir des séquences de caméras de sécurité et leur suivi dans les images vidéo peuvent être réalisés à l’aide d’algorithmes de vision par ordinateur. Les GPU sont un choix naturel de plate-forme pour l’exécution de ces applications en raison de leur complexité de calcul élevée et des exigences de parallélisme. La méthode la plus courante consiste à détecter et identifier les objets/personnes/véhicules d’intérêt dans chaque image vidéo et à exécuter un algorithme pour corréler les objets dans des images successives afin de suivre leur mouvement. Cette méthode, bien que précise, souffre d’exigences extrêmement élevées en matière de complexité de calcul, car la détection/identification des objets est une opération à forte intensité de calcul (utilisant généralement l’inférence de réseaux neuronaux).
Le moteur de flux optique matériel allège considérablement les exigences en matière de complexité de calcul en aidant le suivi des objets. Par exemple, une fois qu’un objet est détecté/identifié par le détecteur, il peut être suivi dans des trames vidéo successives par un algorithme basé sur le flux optique matériel du GPU. Il n’est donc plus nécessaire d’exécuter l’algorithme de détection à chaque image, ce qui entraîne une réduction massive de la complexité de calcul. Le détecteur peut maintenant s’exécuter toutes les K images sans compromettre la précision (K > 1, typiquement K = 4). Cela laisse les cœurs CUDA du GPU libres pour exécuter l’inférence sur des canaux supplémentaires ou d’autres tâches intensives en calcul.
Optical Flow SDK 2.0 comprend une bibliothèque de traqueur d’objets basée sur le flux optique, ainsi que le code source et l’API prête à l’emploi. Dans nos expériences, le tracker d’objets basé sur le flux optique a montré qu’il pouvait réduire l’utilisation du GPU jusqu’à 80%, par rapport à certains des algorithmes les plus populaires, sans compromettre la précision du suivi.
Interpolation et extrapolation des trames vidéo
Le flux optique peut également être utilisé très efficacement pour interpoler ou extrapoler les trames vidéo en temps réel. Cela peut être utile pour améliorer la fluidité de la lecture vidéo, générer des vidéos au ralenti ou réduire la latence apparente dans l’expérience VR, comme utilisé par Oculus (détails)
La fonctionnalité de flux optique dans les GPU Turing et Ampere accélère ces cas d’utilisation en déchargeant le calcul intensif du vecteur de flux vers un moteur matériel dédié sur le silicium du GPU, libérant ainsi les cycles du GPU et du CPU pour d’autres tâches. Cette fonctionnalité matérielle est indépendante des cœurs CUDA.
FAQ
R : Après avoir téléchargé le SDK, veuillez vous référer au « ReadMe.txt » qui liste la version minimale requise du pilote d’affichage. Vous devez installer les bons pilotes, sinon le SDK ne pourra pas démarrer et c’est la première chose à vérifier en cas d’échec de l’initialisation.
R : L’application cliente doit interroger les capacités en utilisant l’API de capacité avant d’activer toute fonctionnalité.
R : Nous recommandons fortement à tous les développeurs d’applications de parcourir en détail les guides de programmation avant d’écrire toute application. En particulier, pour obtenir des conseils sur cette question, veuillez parcourir la section suivante de la documentation:
- « Directives pour une utilisation efficace de l’API NVOF » dans le guide de programmation de l’API NVOF, inclus dans le SDK Optical Flow
R : Le SDK Optical Flow fournit des échantillons spécifiquement conçus pour donner des performances optimales. Vous pouvez mesurer les performances en utilisant n’importe lequel de ces échantillons.
R : L’API NVOF expose des API qui permettent aux utilisateurs d’interroger les versions maximales d’API prises en charge par le pilote sous-jacent. En fonction de la version maximale de l’API prise en charge par le pilote, l’application peut lancer du code au moment de l’exécution compilé avec l’API appropriée.
R : Veuillez vous référer à la note d’application NVOFA incluse dans la documentation du SDK pour avoir une idée des performances. Les performances dépendent de nombreux facteurs, dont certains incluent : GPU utilisé et sa vitesse d’horloge, les paramètres utilisés(pour par exemple le préréglage, la taille de la grille et les fonctionnalités comme le ROI), la bande passante mémoire disponible, la conception de l’application.
Support
Notre communauté de forum est l’endroit où les développeurs peuvent poser des questions, partager des expériences et participer à des discussions avec NVIDIA et d’autres experts dans le domaine.
Consultez les forums ici.
Ressources supplémentaires
- NVIDIA Video Codec SDK
- DeepStream SDK for Intelligent Video Analytics
- Deep Learning Software
- GitHub – NVIDIA Optical flow in OpenCV
- Session GTC 2020 – NVIDIA Video Technologies : Video Codec et Optical Flow SDK
- Session GTC 2020 – Utiliser efficacement le Video Codec SDK et Optical Flow SDK sur les GPU NVIDIA
- NVIDIA DevBlog – 5 décembre 2019 – Accélérez OpenCV : Optical Flow Algorithms avec les GPU NVIDIA Turing
- NVIDIA Developer News – 23 août 2019 – Les chercheurs de VideoGorillas utilisent l’IA pour remasteriser du contenu archivé en résolution 4K et plus
- Oculus Developer blog – 23 mai, 2019 – ASW et Passthrough+ avec NVIDIA Optical Flow
- NVIDIA DevBlog – 13 février 2019 – Une introduction au SDK NVIDIA Optical Flow
.