Étape 7: Créer et configurer le système informatique de la Vision (CVS)
La bibliothèque OpenCV est là s’effectue toutes les opérations de traitement de la vidéo et les informations extraites de ce traitement soient fait en plateforme robotique de décisions et d’autres composants qui permettent au système dynamique. Sa version est la OpenCV-2.2.8 étant de présenter des exemples et toutes les fonctions disponibles dans les versions pour Windows, MAC et Linux.
Il était nécessaire de procéder à l’installation avec la commande :
Mise à jour du système : sudo apt-get update
Installer les mises à jour : sudo apt-get upgrade
Installer la librairie OpenCV : sudo apt-get installer python-opencv
Le CVS (Computer Vision System) :
L’illustration de cette étape représente l’ensemble des fonctions du système. Ces fonctions sont exécutées séquentiellement, à plusieurs reprises et pour des valeurs réelles des caractéristiques dynamiques de l’objet (coordonnées et taille), jusqu'à six fois (ou six variantes) une seconde fois. C’est à dire, chaque seconde sont générés jusqu'à six valeurs qui seront traitées et comparées, rationalisation de la plate-forme.
Utilisez la figure de cette étape pour la description de chaque étape :
- Tout d’abord il était nécessaire de capturer (ou recevoir) l’image ou, plus précisément l’image contenant l’image (frame). La taille est de 160 x 120 pixels. Le cadre dans son ensemble (par exemple, 640 pixels en largeur et 480 pixels de haut), provoqué des ralentissements dans le processus de reconnaissance lorsque l’image a été transmise à distance. Le système par défaut est la couleur RVB, ce système de couleur est représenté dans le cadre de webcam obtenu à travers les couleurs fondamentales : rouge (Red), vert (Green) et bleu (bleu). Ces couleurs sont représentées sur un vecteur de dimension de pixel par pixel, par exemple, la couleur rouge est représenté 0com valeurs (0, 255, 0), respectivement représentées pour chaque canal. Autrement dit, chaque pixel possède sa valeur RGB représentée par trois octets (rouge, vert et bleu).
- Après l’image capturée, a entrepris la conversion de système de couleur RVB de la couleur HSV (hue, saturation et valeur) , étant donné que ce modèle décrit semblable à la reconnaissance par les couleurs de le œil humain. Étant donné que le système RVB (rouge, vert et bleu) a les couleurs basés sur des combinaisons des couleurs primaires (rouge, vert et bleu) et le système HSV définit les couleurs comme leur couleur, éclat et brillance (teinte, saturation et valeur), facilitant l’extraction de l’information. Dans le diagramme l’étape 2 montre la conversion de RVB en VHS, en utilisant le "cvtColor" native OpenCV, qui convertit l’image d’entrée d’une couleur d’entrée à une autre fonction.
- Avec une image en modèle TSV , il était nécessaire de trouver les valeurs correctes de HSV minimale et maximale couleur de l’objet qui sera suivie. Pour enregistrer ces valeurs, ont fait deux vecteurs avec un minimum de VHS et VHS maximale objet color comme valeurs : luminosité Minimum de saturation (62) minimum Minimum de teinte (42) (63) luminosité maximale de Saturation maximale (255) Maximum Hue (92) (235). Donc la prochaine étape pour générer une image binaire, l’information pertinente peut être limitée que dans le contexte de ces valeurs. Ces valeurs sont nécessaires pour limiter le modèle de couleur de l’objet. Une fonction de comparaison des valeurs de pixel avec les valeurs standard du vecteur inséré a été utilisée. Le résultat est une image binaire ne prévoyant qu’une seule valeur de chaque pixel.
- Après avoir fait la segmentation, résultant dans l’image binaire, il est à noter que les bruits sont toujours présents dans le cadre. Ces bruits sont des éléments qui nuisent à la segmentation (y compris l’obtention de la taille réelle) de l’objet. Difficulté (ou tenter de fixer) ce problème, il était nécessaire d’appliquer une transformation morphologique par des exploitants dans le cadre, afin que les pixels ont été supprimés qui ne respectait pas la norme souhaitée. Pour ce faire, l’opérateur morphologique l’érosion, qui a effectué un « propre » dans le cadre, en réduisant le bruit qu’il contenue a été utilisé.
- Puis, il servait à la fonction de "Moments" , qui permet de calculer les moments de contour positif (blanc) à l’aide d’une intégration de tous les pixels présents dans le contour. Cette fonctionnalité n’est possible que dans un cadre déjà binarizado et sans bruit, afin que la taille du contour de l’objet n’est pas modifiée par Eparses pixels dans l’image, qui entravent et causent la redondance dans l’information.
moments = cv2.moments (imgErode, True)Dans l’exemple proposé, il était nécessaire de trouver la zone du contour et ses coordonnées dans le cadre à effectuer les calculs de repositionnement du châssis. Le calcul de la surface de l’objet effectue la somme binaire de positif, générant la variable M00 et enregistré dans la variable "zone" :
zone = moments ['m00']
La spécificité du contour fait référence à un objet, pas un polygone. Cette valeur se trouve une superficie approximative de pixels positifs (blanc) qui composent l’objet. Si cette valeur est null, est ignoré l’existence d’une couleur de l’objet traité (si la couleur « verte ») dans le cadre. L’utilisation de cette fonctionnalité aideront à accomplir le mouvement du robot s’approcher et éloigner de l’objet cible, en essayant de traiter le problème de la profondeur. Autrement dit, le fait que l’objet est s’approcher ou éloigner trop des châssis.Et de la cible zone était possible, de définir les coordonnées de l’objet dans ce cadre. Pour les coordonnées de l’objet a été utilisés paramètres obtenus fonction de Moments qui trouve ses coordonnées. Mais c’était coordonnée fondée sur le centre de gravité de l’objet, est trouvé seulement si la zone de l’objet est supérieure à zéro. L’utilisation de cette fonctionnalité était important de faire le mouvement d’ajustement horizontal et vertical du robot afin d’augmenter le degré de liberté et de minimiser les restrictions des déplacements de l’objet à identifier. À l’aide de la zone du paramètre objet et combiné avec M00 x et y paramètres Moments de fonction, il était possible de trouver les coordonnées (x, y).
Les valeurs reçues dans les coordonnées (x, y) renvoie ainsi à la mise en place de la segmentation a trouvé de l’objet par rapport à la trame et de faciliter l’interprétation de l’information qui est tracée d’après les informations de coordination, une fonction qui dessine un cercle dans le centre de gravité a été appliqué à l’objet.
Le résultat :
Étape 6 sera en démonstration au cours des prochaines étapes qu'il sera nécessaire d’expliquer la configuration des moteurs et autres pièces avant de procéder à la présente partie.
Le script attaché « SVC.py » vous permet de commencer à comprendre comment le système fonctionne. Si des problèmes donnent votre Pi de framboise, je recommande examinant les bibliothèques installées ou contact.
Comment faire pour exécuter un python script dans Raspberry Pi?? cliquez ici!
Nous allons procéder avec le robot de l’Assemblée ? Se mettre au travail !