Présentation du projet Vision sur carte SABRE i.MX_6

Download Report

Transcript Présentation du projet Vision sur carte SABRE i.MX_6

INF-4101
Optimisation des temps de calcul et processeur
Projet Vision sur carte SABRE i.MX_6
Rostom KACHOURI
Département IT (Informatique et TELECOMS) – ESIEE
INF-4101
Introduction
Rostom KACHOURI
Département IT (Informatique et TELECOMS) – ESIEE
Contexte
Implantation optimisée d’algorithmes :
Traitement des données en respectant des contraintes de
l’application et des ressources disponibles
Latence : délai entre une action et le déclenchement d'une
réaction, à savoir un retardement.
Cadence : rythmique régulier et cyclique, concernant les
actions successives.
Mémoire : en termes de taille (encombrement).
Minimisation des composants logiciels et matériels
Applications : sécurité,
compression, …
R. Kachouri
contrôle
industriel,
imagerie
médicale,
3
Carte SABRE i.MX_6
R. Kachouri
4
Applications « Temps réel »
Évaluation du coût
A partir de l’algorithme :
•
coût en termes de nombres d’oppérations (+ , x, …) à implanter
•
coût en terme de cycles d’accès aux données à traiter
•
coût en termes de taille (encombrement) : traitement mémoire
A l’aide d’outils de profilage :
•
Outil Gprof par exemple
Objectif
L’objectif de ce projet est d’implanter et optimiser une chaîne de
traitement d’image sur la carte SABRE IMX6 (ARM_Cortex-A9) en
mettant en œuvre des techniques d’optimisations présentées en cours :
•
optimisation algorithmique (algorithme de complexité inférieure au
sens mathématique, des structures de données adaptées)
•
optimisation pour les processeurs RISC (déroulage de boucle),
•
optimisation pour une utilisation efficace des ressources matérielles
(accès aux données, gestion de la mémoire, multi-thread).
R. Kachouri
6
Projet Vision sur carte SABRE
i.MX_6
Host Linux© PC
Video Input
Video Output
SSH
Code C (Open CV)
Target
Application
R. Kachouri
SABRE i.MX_6
7
INF-4101
Image numérique
Rappel
Rostom KACHOURI
Département IT (Informatique et TELECOMS) – ESIEE
Image numérique
C’est une matrice de X×Y pixels (picture element) correspondant à
l’échantillonnage et la quantification d’un signal acquis avec une caméra.
Chaque pixel est associé à un niveau de gris n ou des niveaux de composante
couleur codé sur N bits et qui représentent respectivement le niveau de luminosité
ou de couleur de la zone correspondante dans la scène observée.
Chaque pixel est localisé par ses coordonnées x et y dans l’image.
R. Kachouri
9
Image couleur
Une image couleur correspond à la synthèse additive de 3 images,
rouge, vert et bleu. Chaque pixel est donc codé sur 3×N bits.
R. Kachouri
10
Image à niveaux de gris
(intensité ou luminance)
Gris = 0.3*R + 0.59*G + 0.11*B;
Chaque pixel est codé sur N bits, ce qui lui confère des valeurs entières
comprises entre 0 (noir) et 2^N-1 (blanc).
R. Kachouri
11
Image binaire
Dans une image binaire, les pixels sont représentés par deux états
logiques 0 (noir) et 1 (blanc). C’est un codage de l’image sur 1 bit.
R. Kachouri
12
Image numérique codé sur 8 bits
R. Kachouri
13
INF-4101
Opérateurs à
implanter
Rostom KACHOURI
Département IT (Informatique et TELECOMS) – ESIEE
Présentation des opérateurs
Acquisition du
Affichage des
flux video
contours détectés
Conversion RGB
niveaux de gris
R. Kachouri
Filtre Médian
Filtre Sobel
Filtrage non linéaire
Détection de contours
15
Chaîne de traitement d’image à
implanter
La chaîne de traitement d’image à implanter est composée d’une suite
d’opérateurs qui réalise l’application de détection de contours à partir
d’un flux. Ces opérateurs sont :
•
Acquisition du flux video (OpenCV),
•
Conversion RGB
•
Filtrage non linéaire des images « Filtre médian »,
•
Détection de contours « Filtre de Sobel » (présenté en TP DLX),
•
Affichage des contours détectés (OpenCV).
R. Kachouri
niveaux de gris,
16
Présentation des opérateurs
Acquisition du
Affichage des
flux video
contours détectés
Conversion RGB
niveaux de gris
R. Kachouri
Filtre Médian
Filtre Sobel
Filtrage non linéaire
Détection de contours
17
Détection de contours
« Filtre de Sobel »
R. Kachouri
18
Sobel x
|-1 -2 -1|
| 0 0 0|
| 1 2 1|
R. Kachouri
Gx
19
Sobel y
|-1 0 1|
|-2 0 2|
|-1 0 1|
R. Kachouri
Gy
20
Sobel
|-1 -2 -1|
| 0 0 0|
| 1 2 1|
R. Kachouri
|-1 0 1|
|-2 0 2|
|-1 0 1|
21
Convolution
Noyau de
convolution
Pixel source +
Pixels voisins
Pixel résultat
Convolution : Somme de produit
R. Kachouri
22
Convolution
R. Kachouri
23
Convolution
R. Kachouri
24
Convolution
Filtrage linéaire
Parcours d’un noyau de convolution K sur une image I
R. Kachouri
25
Effet de bord
Bord non traité (mis a zéro, recopie ou aucun traitement).
Zero-padding : les valeurs du signal en dehors de l’image sont égales à zéro.
Symétrie : les valeurs du signal en dehors de l’image sont obtenues par symétrie
(effet miroir).
R. Kachouri
26
Présentation des opérateurs
Acquisition du
Affichage des
flux video
contours détectés
Conversion RGB
niveaux de gris
R. Kachouri
Filtre Médian
Filtre Sobel
Filtrage non linéaire
Détection de contours
27
R. Kachouri
28
Filtrage non linéaire: Filtre médian
Filtrage non linéaire: Filtre médian
Filtrage non linéaire: Filtre médian
Lissage robuste
Préserve les contours.
Principe : Remplacer la valeur du pixel central par la valeur médiane de la
répartition (luminances triées dans l'ordre croissant) des niveaux de gris des pixels
situés à l'intérieur de cette fenêtre.
Utile pour contrer l’effet d’un bruit Poivre & Sel.
R. Kachouri
30
INF-4101
Optimisation
Rostom KACHOURI
Département IT (Informatique et TELECOMS) – ESIEE
INF-4101
Optimisation
algorithmique
Rostom KACHOURI
Département IT (Informatique et TELECOMS) – ESIEE
Convolution linéaire (Sobel)
Convolution avec noyau classique
(Taille images en pixels)² x (Taille noyau)²
Convolution séparée
Convolution avec noyau séparée
(Taille images en pixels)² x 2(Taille noyau)
R. Kachouri
33
Convolution non linéaire (Médian)
Tri à bulles
R. Kachouri
34
INF-4101
Optimisation RISC
(déroulage de boucle)
Rostom KACHOURI
Département IT (Informatique et TELECOMS) – ESIEE
INF-4101
Optimisation
ressources matérielles
Rostom KACHOURI
Département IT (Informatique et TELECOMS) – ESIEE
INF-4101
Optimisation …
Rostom KACHOURI
Département IT (Informatique et TELECOMS) – ESIEE
INF-4101
Evaluation
Rostom KACHOURI
Département IT (Informatique et TELECOMS) – ESIEE
Organisation et évaluation
Le travail est à réaliser par équipe de 2 personnes.
1L’implantation sera validée par les enseignants lors de la dernière
séance de projet.
2-
Rédigez un rapport qui va présenter :
•
L’architecture des systèmes utilisés,
•
Les algorithmes et les implantations réalisées,
•
Les explications
d’implantation,
et
justifications
des
choix
algorithmiques
et
•
Les résultats obtenus pendant toutes les étapes du développement du
projet (images, copie écran, …),
•
Les graphes, courbes et tableaux montrant les résultats de profilage et
les gains de temps d’exécutions en % pour chaque opérateur et l’ensemble de
l’application,
•
Le code des opérateurs avec les commentaires.
3Une soutenance de 15 minutes (stricte) par binôme sera organisée
après la fin des projets (présentation en ppt devant l’ensemble des élèves).
R. Kachouri
39