Dans l'exercice 2 de Dernière fois, nous avons pratiqué les composants du système de «contrôle». Cette fois, nous expliquerons les composants du système d'analyse vidéo avec le thème de la "lecture du code à barres / QR code".
Créez une nouvelle application comme vous l'avez fait dans les exercices précédents.
Sélectionnez "Média" dans le menu en bas à gauche de l'écran de l'onglet "Configuration" pour ajouter un élément à utiliser comme entrée vidéo. Dans "Catégorie" Standard (USB) URL (fichier réseau) navigateur bureau Douane Peut être sélectionné, et dans "Type", vidéo voix Vidéo et audio Peut être sélectionné. Dans cet exercice, nous n'utiliserons que la vidéo (pas d'audio) de la caméra montée sur l'ordinateur portable ou la caméra connectée via USB, et réglerons comme indiqué dans l'écran ci-dessous. L'onglet Paramètres de cet élément offre une variété d'options, notamment: Dans cet exercice, augmentons la "fréquence d'images maximale" de la valeur par défaut de 2 à 5.
Une fois que vous avez ajouté la source vidéo, il est temps d'ajouter les composants d'analyse vidéo. Sélectionnez "Nouveau" dans le menu en bas à gauche de l'écran et ajoutez comme suit. Dans l'onglet "Paramètres" de l'analyse vidéo, définissez comme suit. En d'autres termes Image d'entrée: sélectionnez la source de la vidéo ajoutée à l'étape précédente Limiter le cycle d'analyse: désactivé Limiter le cycle de livraison: désactivé Enregistrer les résultats de l'analyse: Activé À.
Sélectionnez l'onglet Code dans l'onglet Configuration. Dans cet exercice, un module appelé "pyzbar" est utilisé pour lire le code à barres et le code QR, donc utilisez d'abord le script d'installation "Install.ps1". python -m pip install pyzbar Pour installer ce module. Vérifions si le script d'installation fonctionne correctement. Après avoir appuyé sur le bouton "Enregistrer" en haut de l'écran, sélectionnez "Exécuter le script d'installation" dans le menu en bas à gauche de l'écran. Comme indiqué ci-dessous, la boîte de dialogue d'exécution du script d'installation s'affiche, et si «Exécution terminée» s'affiche en bas à gauche de la boîte de dialogue, c'est correct. Cliquez sur le bouton "Fermer". Le code Python pour l'analyse vidéo est au début,
python
from pyzbar.pyzbar import decode
import cv2
import numpy as np
Et importez le module installé par le script d'installation et le module utilisé pour dessiner le code barre détecté avec une ligne. Maintenant, dans l'analyse vidéo, la fonction new_video_frame(self, video_frame, time_sec) L'image à analyser est notifiée côté Python, le processus d'analyse est effectué dans cette fonction et le résultat est notifié côté plateforme. Ici, l'image d'entrée est stockée dans l'argument video_frame en tant que type numpy.ndarray, et le temps écoulé (en secondes) depuis le début de l'application est stocké dans le type float dans time_sec. Considérant le cas où plusieurs codes-barres sont inclus dans l'image, cette fonction est implémentée comme suit.
python
def new_video_frame(self, video_frame, time_sec):
data = decode(video_frame)
for c in data:
self._sys.set_value({'value': [c.data.decode('utf-8'), c.type]})
points = c.polygon
pts = np.array(points, np.int32)
pts = pts.reshape((-1, 1, 2))
cv2.polylines(video_frame, [pts], True, (0, 255, 0), 2)
self._sys.set_video_frame(video_frame, time_sec)
La fonction set_value () sert à notifier le côté plateforme des nouvelles données comme indiqué dans l'exercice 1, et cette application organise la valeur du code à barres et le type de code à barres pour chaque code à barres détecté. Informez ce que vous avez fait. La fonction ** set_video_frame () ** est utilisée pour notifier à la plateforme l'image du résultat de l'analyse vidéo.
Définissez comme suit dans l'onglet "Afficher les éléments" dans l'onglet "Page d'utilisation". Dans l'onglet «Disposition», il y a deux éléments d'affichage, qui sont modifiés comme suit à titre d'exemple. Premièrement, "l'image de trame après analyse", qui est un composant de l'analyse vidéo, peut être laissée comme format d'expression par défaut de "image", et la taille et la position d'agencement du rectangle sont éditées. Ensuite, pour "Historique", sélectionnez "Tableau de l'historique des arrangements" comme format d'expression et modifiez le titre, l'en-tête, etc. dans les paramètres des options sur le côté droit de l'écran.
Appuyez sur le bouton "Enregistrer" en haut de l'écran, puis sur "Démarrer" l'application. Lorsque l'appareil photo lit le code à barres ou le code QR, le contenu est affiché sur l'écran «Mise en page». Si la caméra n'est pas mise au point et ne peut pas être lue correctement, vous pouvez l'ajuster à l'aide de l'application "Caméra" installée en standard sur Windows 10.
Au fait, comment obtenez-vous le nombre de pixels verticaux et horizontaux et la fréquence d'images de la vidéo à analyser? Dans la programmation des composants dans Limotte, ces informations sont passées à l'argument opt de la fonction \ _ \ _ init \ _ \ _ (). Par exemple, au début de la fonction new_video_frame () print(self._opt) Si vous l'écrivez et l'exécutez, ce qui suit sera affiché dans la fenêtre "Console" de l'onglet "Code" de l'onglet "Configuration".
{'__video__': {'width': 640, 'height': 480, 'frame_rate': 5.0, 'scale': 100.0, 'auto_scale': False, 'scaled_width': 640, 'scaled_height': 480, 'rotation': 0}, '__audio__': None, '__guid__': None, '__remotte__': None}
Vous pouvez voir que la valeur de la clé '\ _ \ _ video \ _ \ _' contient des attributs liés à la source.
Attention! En tant que spécification de plate-forme, les composants d'analyse vidéo et audio n'apparaissent pas sur la console lorsque print () est exécuté dans la fonction \ _ \ _ init \ _ \ _ (). </ font>
Dans cet exercice, nous avons expérimenté les composants du système «d'analyse vidéo». La fonction new_video_frame () donne une image de la plateforme, l'analyse, et sets_value () et [set_video_frame ()](https :: //www.remotte.jp/ja/user_guide/program/functions) Je veux apprendre à notifier le côté plateforme du résultat de l'analyse par une fonction. Dans le prochain exercice, nous traiterons des applications d'analyse vocale et créerons un «indicateur de niveau» pour la voix acquise à partir du microphone.
Recommended Posts