Design of a multi-view smart camera based on FPGA
Conception d’une caméra intelligente multi-vues à base de FPGA
Résumé
Vision systems are an integral part of our society and continue to fuel many areas of research and development. Multi-view systems increase the field of vision applications by their ability to capture a scene from different view angles. Stereoscopic vision, 3D or panoramic-view systems are concrete examples of multi-view applications and are already massively used in both heavy and consumer industries. For example, some film productions use special effects from dozens of synchronized cameras. Observation satellites use camera arrays to create high-resolution images. This versatility, the diversity or redundancy of visual information can be exploited in many domains and in particular for artificial intelligence applied to vision.Recent researches have demonstrated that classical vision algorithms have become obsolete since the emergence of convolutional neural networks (CNNs). However, CNNs remain extremely expensive in terms of computation, therefore, complex to implement on low power electronics. In theory, reprogrammable circuits (FPGA) have a significant potential to infer a convolutional network as close as possible to an image sensor with a data stream oriented model of computation, guaranteeing both low power consumption and high-speed of execution. In practice, they remain limited by their low density of logic elements and other factors inherent to the technology. As a result, a single FPGA can only support a subset of a network. In this thesis, we propose a multi-view hardware architecture to increase the integration factor of a network on this type of hardware target. Indeed, even in its simplest form, a multi-view convolutional neural network architecture has a better recognition capacity than its single-view counterpart. This fundamental principle poses the question of the balance between the quantitative and qualitative factors of a network, i.e., the density of parameters defining the complexity of a CNN and its level of performance in terms of recognition. This work demonstrates experimentally that the multi-view nature of the information allows to decrease the quantity of parameters of a network and as a consequence, its complexity. An embedded camera prototype is proposed to test this hypothesis in a realistic context. It is divided into two parts.The first one is composed of several reprogrammable camera heads capable of inferring a part of a CNN by supporting the throughput of an image sensor. These are driven and powered by the second part composed of a central FPGA that aggregates the data stream from each sensor and executes the rest of the neural network. Among other things, this camera is able to synchronize or to add delays for each shot with a time baseof the order of ten nanoseconds.
Les systèmes de vision font partie intégrante de notre société et continuent d’alimenter de nombreux axes de recherche et développement. Les systèmes multi-vues permettent d’étendre le champ des applications de vision par leur capacité à capturer une scène sous différents angles de vue. La vision stéréoscopique et la reconstruction 3D ou panoramique sont des exemples concrets d’applications multi-vues et sont déjà massivement employés dans l’industrie ou auprès du grand public. Par exemple, certaines productions cinématographiques utilisent des effets spéciaux à partir de dizaines de caméras synchronisées. Ou encore les satellites d’observation privilégient des matrices de caméras pour créer des images en haute-résolution. Cette versatilité, la diversité ou la redondance d’informations visuelles sont exploitables dans de nombreux domaines et en particuliers pour l’intelligence artificielle appliquée à la vision. Les dernières recherches ont démontré que les algorithmes de vision classiques sont devenus obsolètes face aux réseaux de convolutions (CNNs). Cependant, les CNNs restent extrêmement coûteux en calculs et complexes à mettre en œuvre sur des électroniques basse consommation. En théorie, les circuits reprogrammables (FPGA) possèdent un potentiel significatif pour inférer un réseau de convolutions au plus près d’un capteur d’image avec un modèle de calcul orienté flots de données, garantissant à la fois une consommation électrique limitée et une grande vitesse d’exécution. En pratique, ils restent limités par leur faible densité d’éléments logiques et par d’autres facteurs inhérents à cette technologie. Par conséquent, un FPGA ne peut supporter à lui seul qu’une faible partie d’un réseau. Dans cette thèse, nous proposons une architecture matérielle multi-vues pour augmenter le facteur d’intégration d’un réseau sur ce type de cible matérielle. En effet, même dans sa forme la plus simple,une architecture de réseau de convolutions multi-vues possède une meilleure capacité de reconnaissance que sa contrepartie mono-vue. Ce principe fondamental pose la question de l’équilibre entre les facteurs quantitatif et qualitatif d’un réseau, c’est-à-dire, la densité de paramètres définissant la complexité d’un CNN et son niveau de performance en termes de reconnaissance. Ce travail démontre de manière expérimentale que la nature multi-vues permet d’abaisser la quantité de paramètres d’un réseau et par conséquent, sa complexité. Un prototype de caméra embarquée est proposée pour tester cette hypothèse dans un contexte réaliste. Celle-ci est scindée en deux parties. La première est composée de plusieurs têtes de caméras reprogrammables capables d’inférer une partie d’un CNN en supportant le débit d’un capteur d’image. Celles-ci sont pilotées et alimentées par la seconde partie composée d’un FPGA central qui agrège les flots de données issues de chaque capteur et exécuter la suite du réseau de neurones. Entre autres, cette caméra peut synchroniser ou ajouter des délais pour chaque prise de vue avec une base de temps de l’ordre de la dizaine de nanosecondes.
Origine | Version validée par le jury (STAR) |
---|