Les fonctions implémentées la dernière fois sont les suivantes. 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. (Multiple)
Avec la mise en œuvre jusqu'à présent, il était possible de visualiser avec du son, mais il n'était pas possible de visualiser la chose réelle. Au contraire, il y a une histoire que vous pouvez comprendre en regardant l'image de la caméra, mais cette fois c'est peut-être une fonction qui semble dénuée de sens, mais j'ai décrit un programme qui visualise ce que vous reconnaissez. je pense
Je veux visualiser cela sur le Web plus tard, j'ai donc réalisé cette fonction afin qu'elle puisse être ignorée avec une prise à ce moment-là.
Cette fois, j'ai fait de la partie communication socket une fonction, donc je la posterai brièvement, le contenu est écrit en part3 et part4.
Partie client
detect.py
def socket1():
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())
Si le nombre de choses à reconnaître augmente, la fonction ici peut gérer même si le nombre de choses à reconnaître augmente en augmentant le nombre après socket et en changeant le nombre dans la partie data = '1'.
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(('', 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')
Partie reconnaissance
detect.py
if label1=="cell phone":
print("J'ai trouvé un smartphone")
cv2.imwrite('sumaho.jpg',im0)
img = cv2.imread('sumaho.jpg')
cv2.imshow('sumaho', img)
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")
cv2.imwrite('book.jpg',im0)
img = cv2.imread('book.jpg')
cv2.imshow('book', img)
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")
La partie serveur peut être gérée en modifiant la partie numérique de data3 = "'1'" et en augmentant l'instruction if.
img = cv2.imread('sumaho.jpg')
cv2.imshow('sumaho', img)
Ceci peut être réalisé en incorporant ce code après if label 1 == "":.
J'ai écrit jusqu'à part5 jusqu'à présent, et à l'exception de la fonction d'enregistrement, j'ai presque réalisé les fonctions que je veux réaliser avec yolov5, donc j'aimerais terminer la partie yolov5 pour le moment. Ensuite, j'aimerais créer un composant WebPart de visualisation. .. Si je propose une fonction qui semble être réalisée, j'écrirai cet article, donc la publication continue se terminera.
Recommended Posts