Étalonnage

Bien que de nombreux paramètres pour le code Vision Processing puissent être déterminés théoriquement, certains paramètres sont généralement mieux mesurés empiriquement, puis réintégrés dans le code (un processus connu sous le nom d’étalonnage). Cet article montrera comment effectuer l’étalonnage de la couleur (masquage) et de l’angle de vue (distance) à l’aide de NI Vision Assistant. Si vous utilisez C++ ou Java et que vous n’avez pas encore installé NI Vision Assistant, consultez l’article Installation de NI Vision Assistant.

Activer les clichés (Snapshots)

AXIS Camera's web interface.

Pour capturer des clichés à partir de la caméra Axis, vous devez d’abord activer le bouton Snapshot. Ouvrez un navigateur Web et accédez à l’adresse de la caméra (10.TE.AM.11), entrez le combo Nom d’utilisateur/Mot de passe FRC , puis cliquez sur Configuration-> Live View Config-> Layout. Cochez la case Show snapshot, puis cliquez sur Save.

Vérifier les paramètres de la caméra

Video & Image Setting page.

Selon la façon dont vous capturez le flux d’images dans votre programme, il peut être possible de diffuser à une résolution, une fréquence d’images et/ou une compression différentes de celles enregistrées dans la caméra et utilisées dans la vue en direct (Live). Avant d’effectuer un étalonnage, il est recommandé de vérifier que les paramètres de la caméra correspondent aux paramètres de votre code. Pour vérifier les paramètres de l’appareil photo, cliquez sur l’en-tête « Vidéo and Image » sur le côté gauche de l’écran, puis cliquez sur « Vidéo and Image ».

Capturer des images

Camera image after clicking the "Live View" button.

Cliquez sur le bouton « Live View » pour revenir à la page « Live View » et vous devriez maintenant voir un bouton « Snapshot ». Cliquer sur ce bouton ouvre une fenêtre contextuelle avec une capture d’image statique. Cliquez avec le bouton droit sur cette image, sélectionnez « Save Image », puis sélectionnez l’emplacement et le nom de fichier souhaités, puis enregistrez l’image.

Charger des images dans Vision Assistant

Open the image using the folder icon in the top left of the NI Vision Assistant.

Ouvrez NI Vision Assistant et sélectionnez l’option « Browse Images ». Sélectionnez l’icône « Open Images » dans le coin supérieur gauche de la barre d’outils, puis recherchez vos images. Répétez autant de fois que nécessaire pour charger toutes les images souhaitées.

Seuil de couleur (Threshold)

Setting up a color threshold on the image we took.

Cliquez sur Traiter les images en haut à droite, puis sélectionnez l’onglet couleur en bas à droite et cliquez sur l’icône « Color Threshold ».

Étalonnage HSV

HSV calibration to tune to the color of your light.

Choisissez l’option HSV dans le menu déroulant « Color Model ». Ensuite, ajustez les limites min-max sur chacune des trois valeurs HSV pour laisser passer le plus de pixels possibles de la cible tout en filtrant le reste. Si vous utilisez un éclairage de couleur verte, vous pouvez utiliser les valeurs HSV du code exemple comme point de départ. Si vous avez plusieurs images, vous pouvez utiliser les commandes en haut à gauche pour les choisir une à une. Utilisez les deux flèches centrales ou le glisseur pour modifier l’image d’aperçu dans la fenêtre supérieure gauche, puis cliquez sur la flèche la plus à droite pour en faire l’image active. Lorsque vous êtes satisfait des valeurs sélectionnées, notez les plages de teinte (Hue), de saturation et de valeur. Vous devrez les transcrire à l’endroit approprié dans le code de vision. Cliquez sur OK pour terminer et ajouter cet étape au script.

Il est important de prendre plusieurs exemples d’image, surtout sur le vrai terrain de jeu lors de la compétition, pour vérifier ou ajuster vos filtres HSV en fonction de l’éclairage réel. Un reflet inattendu d’un projecteur peut ressembler à une cible.

Afficher l’étalonnage d’angle/distance

L’angle de vue spécifié pour chaque modèle de caméra peut être trouvé dans leur fiche technique. Par contre, des tests empiriques ont démontré que ces chiffres peuvent être un peu décalés. Lorsqu’on utilise le champ de vision vertical, il est préférable d’effectuer notre propre étalonnage de caméra (bien que des valeurs empiriques pour chaque type de caméra soient incluses dans le code comme référence). Pour ce faire, définissez une équation où l’angle de vue, θ, est la seule inconnue. Utilisez alors une cible de taille connue à une distance connue, laissant l’angle de vue comme la seule inconnue. Prenons notre équation de l’article précédent, \(d = T_{\mathrm{ft}} \cdot \frac{\textit{FOV}_{\mathrm{pixel}}}{T_{\mathrm{pixel}}\tan\theta}\), et résolvez pour θ:

\[\tan\theta = T_{\mathrm{ft}} \cdot \frac{\textit{FOV}_{\mathrm{pixel}}}{T_{\mathrm{pixel}} \cdot d}\]
\[\theta = \arctan \left(T_{\mathrm{ft}} \cdot \frac{\textit{FOV}_{\mathrm{pixel}}}{T_{\mathrm{pixel}} \cdot d} \right)\]

Prise de mesures

Measuring the height of the selected portion.

Une façon de prendre les mesures requises consiste à utiliser les mêmes images du ruban rétroréfléchissant qui ont été utilisées pour l’étalonnage ci-dessus des couleurs. Nous pouvons utiliser Vision Assistant pour fournir la hauteur en pixels de la nuée (Blob) détectée. En mesurant la distance réelle entre la caméra et la cible, nous avons maintenant toutes les variables pour résoudre notre équation pour l’angle de vue.

Pour mesurer les particules dans l’image, cliquez sur l’onglet « Binary », puis sur l’icône « Particle Analysis ».

Sélection des mesures

Select "Bounding Rectangle Height".

Cliquez sur le bouton « Select Measurements ». Dans ce cas, nous nous intéressons uniquement à la hauteur du cadre de sélection. Cliquez sur le bouton X pour désélectionner toutes les mesures, puis cochez la case « Bounding Rect Height ». Cliquez sur OK pour enregistrer.

Mesurer la particule

Boxes at the bottom display the height for each of the detected particles.

Les mesures de chaque particule seront désormais affichées dans la fenêtre en bas de l’écran. Si votre image contient plusieurs particules, vous pouvez cliquer dans chaque case pour que Vision Assistant surligne la particule afin de vous assurer que vous avez la bonne. Cet exemple démontre le calcul en utilisant une seule image, mais il serait préférable d’effectuer le calcul sur plusieurs images à partir de plusieurs distances. Utilisez ensuite une technique telle que la moyenne ou l’ajustement des moindres carrés pour déterminer la valeur appropriée pour l’angle de vue. Vous pouvez utiliser les mêmes contrôles décrits dans la section des couleurs ci-dessus pour modifier l’image active.

Calculs

Comme vu à l’étape précédente, la particule représentant la cible verticale de 32 pouces de hauteur dans cet exemple mesurait 85 pixels de hauteur dans une image 640x480. L’image montrée a été prise à 18 pieds environ. Insérer ces mesures dans l’équation ci-dessus ….

\[\theta = \arctan \left(2.66 \cdot \frac{480}{2 \cdot 85 \cdot 18} \right) = 22.65^{\circ}\]

Selon ce que vous utilisez pour calculer l’arc tangente, votre réponse peut être en radians, assurez-vous de la convertir en degrés avant de l’insérer dans l’exemple de code dans la variable View Angle .

Note

Le code utilise « View Angle » et nous venons de calculer θ. Assurez-vous de multiplier θ par 2 si vous remplacez les constantes dans le code. La multiplication de notre résultat par 2 donne 45.3°. Cette image provient d’une caméra M1013, donc notre valeur est un peu différente de la mesure précédente de 29.1. Étant donné que le 18 pieds était une approximation, nous sommes proche de la vraie valeur et avons probablement effectué le calcul correctement.