Étape 1 :
Le diagramme montre la sortie de toutes les étapes : de l’étalonnage, par le biais de détection, binarizing et bordures, la transformation de perspective et la comparaison avec une image de référence.
Détection de marqueurs et mettant l’accent tout en se déplaçant, se fait par simple couleur de suivi. C’est 50 x plus rapide que la routine complets d’interprétation. « openCV boîte englobante » permet d’obtenir un centre de gravité plus précis (Contours sont parfois délicats lorsque la luminosité est un peu sluggy). Une bounding box produit également la largeur de la borne, qui sert à garder le focus. La différence est indiquée dans la deuxième image par une ligne rouge pour les contours trouvé et une ligne verte qui représente le rectangle englobant.
La routine de la gamme utilise une valeur constante pour multiplier la largeur par. La constante est déterminée à une aire de répartition connue et comme tous les marqueurs ont la même taille, la largeur en pixels peut être utilisée pour s’étendant à travers l’image de la caméra. Variant n’est pas nécessaire d’ajuster la position et la direction, mais peut être utilisé pour tenir la distance. (Donc : plus pour le plaisir).
La routine de la fenêtre d’affichage indique également les coordonnées du centre. Aussi juste pour le plaisir (mais qui sait)
Le script utilise une routine de délai d’attente pour Pythons 'time.sleep ()' est juste fiable à très petits intervalles et délais précis sont nécessaires pour permettre des virages précis. Images sont saisies comme variable globale (permet d’économiser beaucoup de frappe et un petit peu de mémoire)
Lectures en mouvement sont réglés par les délais d’attente. La routine a produit plus d’une centaine de lectures en quelques secondes, créant une surcharge du serveur Web et de la mémoire de Pi
Après avoir comparé le signe, le script oblige une attente pour la dernière image obtenir le prochain cône dans la mémoire. Enfin, la routine de détection complète est utilisée pour comparer le signe avec les images de référence. Cette routine détecte le rectangle intérieur blanc, indiqué dans la troisième photo par un rectangle bleu.
Les étapes sont simples : trouver le plus petit contour rectangulaire, edge il, redresser perspective en se déformant, il binarize et comparez-le avec les images de référence sur disque.
Le script peut facilement être étendu avec toutes sortes de routines, comme une routine de la ligne qui suit. La routine d’évasion (coupure d’urgence lorsqu’un obstacle est rencontré tout en s’orientant vers un marqueur) doit encore être renseigné.
Un bon exemple d’utilisation de suivi d’objet en couleur dans le code se trouve à :
http://www.roborealm.com/tutorial/color_object_tracking_2/slide010.phpVery
On trouvera sur le site de Adrian Rosebrock à bonnes instructions sur la détection d’objet et de la couleur, suivi en Python et openCV :