[PYTHON] Détection de panneau d'arrêt Développement de la partie visualisation partie 1 Détection et enregistrement des objets * Cette fois, la chaise est détectée (le modèle n'est pas fabriqué par mes soins)

en premier

La dernière fois, j'ai écrit sur le modèle d'apprentissage de la détection des enseignes. Cette fois, j'écrirai un programme pour le détecter et le visualiser à l'aide du modèle détecté.

Fonctions que vous souhaitez réaliser

・ Enregistrez la vidéo estimée en utilisant la vidéo avec yolov5. -Visualiser la détection sur un autre système lorsqu'elle est détectée. ・ Enregistrez l'heure et les choses détectées. Je voudrais réellement réaliser ce domaine.

Réalisation de la fonction que vous souhaitez réaliser

Préface

En fait, j'en ai fait un simple en utilisant tensorflow, python et traitement auparavant, donc j'aimerais l'écrire en détournant ce programme. Le programme est posté sur github. * J'ai oublié comment créer un modèle d'apprentissage et comment exécuter ce modèle avec le programme d'étiquette. URL https://github.com/S-mishina/Personal-estimation Le sketch_190628a / sketch_190628a.pde de ce programme est la partie visualisation. Je publierai également l'ensemble du système ici. image.png De là, nous allons modifier yolov5.

Prenez des mesures lorsque quelque chose de spécifique est détecté.

Cette fois, je voulais l'implémenter facilement, donc quand j'ai trouvé quelque chose que je voulais détecter, je l'ai détecté. J'ai créé un programme qui émet une notification.

detect.py


label1 = str((names[int(c)]))  # add to string
if label1=="chair":
 print("Détecté une chaise.")

Eh bien, c'est un code simple, donc tout le monde peut le comprendre, mais pour le moment, quand yolo détecte un objet, il semble que ce qui est détecté est probablement enregistré dans des noms [int (c)]. Alors je l'ai converti en chaîne S'il correspond à ce que vous voulez détecter, il sera détecté OK, et s'il ne correspond pas, il sera détecté NG.

Outlook pour ce programme

Dans la perspective de cette fonction implémentée, je voudrais la connecter à un système qui peut visualiser si elle est détectée ou non par la communication par socket au lieu de la base de caractères.

Enregistrez l'heure et les choses détectées.

Cette fois, le but est de détecter la chaise, donc je voudrais écrire un programme qui enregistre quand la chaise est détectée. Importer une pièce

detect.py


import pathlib

Partie création de fichier

detect.py


#Initialisation
    set_logging()
    device = select_device(opt.device)
    if os.path.exists(out):
        shutil.rmtree(out)  #Supprimer le dossier de sortie
    os.makedirs(out)  #Créer un nouveau dossier de sortie
    d_today = datetime.date.today()
    
    f = pathlib.Path('daystext/'+ str(d_today) +'.txt')
    f.touch()

Partie d'enregistrement

detect.py


                    label1 = str((names[int(c)]))  # add to string
                    if label1=="chair":
                     print("Détecté une chaise.")
                    with open('daystext/'+str(d_today)+'.txt', 'a') as f:
                     dt_now = datetime.datetime.now()
                     f.write(str(dt_now)+"Détecté une chaise."+"\n")

Ce qui a été enregistré

2020-10-12 17:27:42.914446 Chaise détectée.
2020-10-12 17:27:42.941445 Chaise détectée.
2020-10-12 17:27:42.968444 Chaise détectée.
2020-10-12 17:27:42.996444 Chaise détectée.
2020-10-12 17:27:43.024443 Chaise détectée.
2020-10-12 17:27:43.051442 Chaise détectée.
2020-10-12 17:27:43.079441 Chaise détectée.
2020-10-12 17:27:43.108440 Chaise détectée.
2020-10-12 17:27:43.135454 Chaise détectée.
2020-10-12 17:27:43.162439 Chaise détectée.
2020-10-12 17:27:43.190452 Chaise détectée.
2020-10-12 17:27:43.218437 Chaise détectée.
2020-10-12 17:27:43.245436 Chaise détectée.
2020-10-12 17:27:43.274445 Chaise détectée.
2020-10-12 17:27:43.301448 Chaise détectée.
2020-10-12 17:27:43.329434 Chaise détectée.
2020-10-12 17:27:43.357433 Chaise détectée.
2020-10-12 17:27:43.384432 Chaise détectée.                  

Ce sera enregistré comme ça.

La partie pour enregistrer la vidéo

Cela semble être assez difficile ici, alors je reviendrai la prochaine fois pour le moment. Pardon.

À la prochaine fois

Cette fois, j'ai principalement écrit un programme qui améliore le programme par défaut de yolov5 et l'enregistre après avoir détecté un objet. La prochaine fois, j'aimerais écrire la partie à visualiser concrètement, alors merci.

Recommended Posts

Détection de panneau d'arrêt Développement de la partie visualisation partie 1 Détection et enregistrement des objets * Cette fois, la chaise est détectée (le modèle n'est pas fabriqué par mes soins)
Détection de panneau d'arrêt Développement de la partie visualisation partie 3 Notifier par la voix à l'aide de la communication par socket lorsqu'un objet est détecté
Détection de panneau d'arrêt Développement de la partie visualisation partie 2 Notifier un autre système par communication socket lorsqu'un objet est détecté
Détection de panneau d'arrêt Développement de la partie de visualisation partie 4 Notifier par la voix à l'aide de la communication socket lorsqu'un objet est détecté (éditions multiples)
Détection de panneau d'arrêt Développement de la partie de visualisation part5 Afficher ce qui a été détecté lorsqu'un objet a été détecté