[PYTHON] 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)

Jusqu'à la dernière fois

La dernière fois, j'ai écrit un programme pour notifier par la voix quand une chaise est détectée en se concentrant sur le smartphone. Cependant, même si quelque chose d'autre qu'un livre est détecté, il n'était pas possible de le notifier avec le programme précédent, donc cette fois il s'agit d'un smartphone C'est un programme qui essaie de vous avertir lorsque quelque chose d'autre que cela est détecté.

Fonctions implémentées cette fois

Lorsqu'un objet est détecté sur le Yolov5 ➡ La communication par socket est effectuée ➡ L'audio est lu lorsque la communication par socket est reçue.

Pièce de montage

(La partie de notification de socket est transformée en fonction)

detect.py


def socket1():
    host = "192.168.10.4" #Adresse IP du serveur lancé par Processing
    port = 10001       #Numéro de port défini dans Traitement
    with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s2:
                         s2.connect(('127.0.0.1', 50007))
                         BUFFER_SIZE=1024
                         data1='1'
                         s2.send(data1.encode())
                         print(s2.recv(BUFFER_SIZE).decode())

def socket2():
    host = "192.168.10.4" #Adresse IP du serveur lancé par Processing
    port = 10001       #Numéro de port défini dans Traitement
    with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s2:
                         s2.connect(('127.0.0.1', 50007))
                         BUFFER_SIZE=1024
                         data1='2'
                         s2.send(data1.encode())
                         print(s2.recv(BUFFER_SIZE).decode())

(Partie reconnaissance)

detect.py


                    if label1=="cell phone":
                     print("J'ai trouvé un smartphone")
                     socket1()
                     with open('daystext/'+str(d_today)+'.txt', 'a') as f:
                         dt_now = datetime.datetime.now()
                         f.write(str(dt_now)+"J'ai trouvé un smartphone"+"\n")
                    if label1=="book":
                     print("J'ai trouvé un livre")
                     socket2()
                     with open('daystext/'+str(d_today)+'.txt', 'a') as f:
                         dt_now = datetime.datetime.now()
                         f.write(str(dt_now)+"J'ai trouvé un livre"+"\n")

Partie serveur

server.py


#Créer un serveur socket
from playsound import playsound
import socket
cont=1
# AF =Signifie IPv4
# TCP/Pour IP, SOCK_Utilisez STREAM
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
    #Spécifiez l'adresse IP et le port
    s.bind(('127.0.0.1', 50007))
    #1 connexion
    s.listen(1)
    #Attendez de vous connecter
    while True:
        #Lorsqu'un internaute visite, saisissez la connexion et l'adresse
        conn, addr = s.accept()
        with conn:
            while True:
                #Recevoir des données
                data = conn.recv(1024)
                if not data:    
                    break
                else:
                 data2=str(data)
                 data3=(data2.replace('b', ''))
                 conn.sendall(b'Received: ' + data)
                if data3 == "'1'":
                        playsound('2.wav')
                if data3 == "'2'":
                        playsound('3.wav')

problème

La spécification est que lorsque vous envoyez une socket, elle sera envoyée deux fois, et vous parlerez deux fois. Le défi est de l'améliorer à l'avenir.

À la prochaine fois

・ Puisque ce programme a quelques problèmes, il est nécessaire de l'améliorer afin de résoudre les problèmes à l'avenir. Donc, écrivez un programme pour améliorer cela à l'avenir. Je vais. ・ Nous prévoyons de coopérer avec le GPS afin d'arrêter ce système et de l'adapter à la détection de signe pour développer un meilleur système. La prochaine fois, j'écrirai sur ce domaine, mais la prochaine fois, ce sera un peu lourd, donc la mise à jour sera peut-être un peu interrompue, mais merci.

Recommended Posts

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 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 part5 Afficher ce qui a été détecté lorsqu'un objet a été 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é
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 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)