Study of an integrated pre-processing architecture for smart-imaging-systems, in the context of lowpower computer vision and embedded object detection
Etude d’une architecture intégrée de prétraitement du signal pour les imageurs intelligents, dans le contexte de la vision embarquée pour la détection des objets.
Résumé
Embedded Computer vision, as many real application scenarios of artificial intelligence, is facing hardware and power constraints with the rising of edge computing applications. For instance, the object detection problem, consisting in finding different objects of specific classes (types) in an image, turns out to be quite complicated to embed near the image sensor as two complex tasks are required: multi-scale localization and multi-class classification (i.e. identifying bounding boxes that perfectly enclose each object, whatever its size, and labeling the type of the detected object). Today these tasks are mainly often performed on general-purpose desktop machines. Nevertheless, attractive applications like autonomous-driving, augmented reality or video surveillance are urging the need for low-power, low-latency and compact low power devices.The state of the art has approached this challenge by optimizing specific sections of the complete processing-pipeline for a comparable object detection performance. A typical example in the last decade corresponds to minimizing the computing precision, hence the power, to a minimal value. Diminishing the bit-depth or image size has then been studied while implementing pre-processing steps that increase robustness against the loss in bit and image resolution. An algorithm that doesn’t require that kind of pre-processing stage to be programmable is obviously desirable in order to simplify its implementation (e.g. no memory access to learned weights). Another strategy has been to reduce power due to I/O communications amongst different chips or devices thanks to a more exhaustive integration of specialized circuitry and thanks to more efficient memory accesses and mathematical operations.In that context of near-sensor computing, this work points towards a more energy efficient detection pipeline. We target several specific key aspects:1. We try to assess if a dedicated-class-agnostic region proposal algorithm, based on pre-processed low-level features, could replace the typical sliding window approach for object localization in integrated smart imaging systems, allowing to target more efficiently objects in the image. Then, we propose a pipeline that takes into account near image sensor features extraction for Region Proposals with an algorithm called EdgeBoxes.2. We try to assess an optimal type of pre-processing (based on an efficient architecture) that would allow extracting low level features (oriented gradients), and give the best trade-off between power consumption, hardware complexity and object detection performance. Specifically, this architecture is fully compatible with region proposal algorithms beyond the sliding window.3. Finally, we try to assess if non-standard, or neuromorphic, image acquisition techniques can be exploited in order to further increase the detection efficiency in real case scenarios.Our methodology relies on behavioral simulations carried out thanks to a custom framework written in Python and C++ code. We propose a hierarchical model (and code architecture) of different image acquisition and processing techniques, and we study their performance through specific metrics related to runtime, memory usage, hardware complexity, I/O data-rate, localization performance and classification performance. We provide comparison with the state of the art and several benchmarks giving guidance to choose one or another architecture depending on the specific needs, and we conclude by stating which one would give, from our perspective, the best trade-offs.
Avec la croissance de l’utilisation d’objets connectés, les systèmes de vision embarqués, comme d’autres sujets de l’intelligence artificielle, font face à l’augmentation des contraintes en puissance et en complexité matérielle. Par exemple, la détection des objets définit le problème de localisation et de classification des différents objets présents dans une scène. Cependant, cette détection/classification devient très complexe lorsque ces objets sont de plusieurs types différents et présents à différentes échelles. Actuellement, cette détection des objets est faite en général à l’aide d’ordinateurs assez puissants. Néanmoins, plusieurs applications récentes, comme la conduite autonome, la réalité augmentée, et la surveillance par vidéo, nécessitent des systèmes fortement embarqués, donc compacts et à basse consommation tout en étant suffisamment rapides et performants en terme de détection.Ainsi, l’état de l’art donne des exemples d’optimisation de systèmes embarqués et intégrés pour la détection des objets. Par exemple, des travaux sur le sujet ont cherché à diminuer la précision des calculs, et ainsi la consommation, vers une valeur aussi minimale que possible. D’autres ont diminué la résolution d’image (et/ou la taille) par une codification par pixel en moins de bits. De plus, cette stratégie a bénéficié d’étapes du prétraitement pour augmenter la robustesse lors de la compression et minimiser la perte d’information. Parmi les types de prétraitement, nous pouvons trouver ceux qui n’ont pas besoin d’être programmables, qui ont aussi l’avantage potentiel d’être plus simples que, par exemple, des algorithmes qui ont besoin d’accès aux « poids » d’un réseau de neurones à convolution. Une autre stratégie a été de réduire la quantité de données transitant entre différents circuits, grâce à une intégration plus poussée d’algorithmes spécifiques de traitement d’image dans une même puce.Dans ce contexte de calcul proche capteur, cette thèse a comme objectif l’étude d’un type de prétraitement d’image et d’une architecture dédiée pour minimiser la consommation d’énergie pour des performances de localisation et de classification similaires à l’état de l’art. Nos objectifs principaux sont :1. Etudier l’intégration d’un algorithme d’extraction des gradients orientés pour la génération de régions proposées (inspiré par l’algorithme « EdgeBoxes ») qui ne dépend pas du type d’objet à détecter.2. Concevoir, au niveau système, une architecture de circuit mixte pour l’extraction des gradients orientés compressés. Cette architecture sera dédiée à la minimisation de la consommation, avec une complexité acceptable, tout en étant optimisée pour les étapes suivantes de génération des régions proposées.3. Finalement, étudier la viabilité d’application de systèmes d’imagerie non classiques (dit neuro-morphiques) pour augmenter l’efficacité de génération des régions proposés à basse puissance.La méthodologie proposée se base sur des simulations comportementales avec un environnement développé en Python et C++. Un modèle hiérarchique permettant de simuler différents systèmes de vision (classiques ou non) a été développé, avec ou sans prétraitement intégré proche capteur. Nous utilisons cet environnement pour obtenir des métriques liées à l’architecture de prétraitement, ou au performance des étapes de détection suivantes, tels que le temps d’exécution, l’utilisation de la mémoire, la complexité matérielle, la quantité des données générées, la performance de localisation et la performance de classification. Finalement, les résultats en performance ainsi que des comparaisons entre l’état de l’art et différentes versions de notre architecture sont présentés et discutés.
Origine | Version validée par le jury (STAR) |
---|