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é.
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.
(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')
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.
・ 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