Die zuletzt implementierten Funktionen sind wie folgt. Wenn ein Objekt auf Yolov5 erkannt wird ➡ Socket-Kommunikation wird ausgeführt. ➡ Audio wird abgespielt, wenn Socket-Kommunikation empfangen wird. (Mehrere)
Mit der bisherigen Implementierung war es möglich, mit Ton zu visualisieren, aber es war nicht möglich, die tatsächliche Sache zu visualisieren. Im Gegenteil, es gibt eine Geschichte, die Sie verstehen können, wenn Sie sich das Kamerabild ansehen, aber diesmal scheint es eine Funktion zu sein, die bedeutungslos zu sein scheint, aber ich habe ein Programm beschrieben, das visualisiert, was Sie erkennen. Ich denke
Ich möchte dies später im Web visualisieren, daher habe ich diese Funktion realisiert, damit sie zu diesem Zeitpunkt mit einem Socket übersprungen werden kann.
Dieses Mal habe ich den Socket-Kommunikationsteil zu einer Funktion gemacht, daher werde ich kurz darauf posten. Der Inhalt ist in Teil3 und Teil4 geschrieben.
Client-Teil
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())
Wenn die Anzahl der zu erkennenden Dinge zunimmt, kann die Funktion hier auch dann behandelt werden, wenn die Anzahl der zu erkennenden Dinge zunimmt, indem die Anzahl nach dem Socket erhöht und die Anzahl im Teil der Daten = '1' geändert wird.
server.py
#Erstellen Sie einen Socket-Server
from playsound import playsound
import socket
cont=1
# AF =Bedeutet IPv4
# TCP/Für IP SOCK_Verwenden Sie STREAM
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
#Geben Sie die IP-Adresse und den Port an
s.bind(('', 50007))
#1 Verbindung
s.listen(1)
#Warten Sie, bis Sie eine Verbindung hergestellt haben
while True:
#Wenn jemand besucht, geben Sie die Verbindung und Adresse ein
conn, addr = s.accept()
with conn:
while True:
#Empfange Daten
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')
Anerkennungsteil
detect.py
if label1=="cell phone":
print("Ich habe ein Smartphone gefunden")
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)+"Ich habe ein Smartphone gefunden"+"\n")
if label1=="book":
print("Ich habe ein Buch gefunden")
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)+"Ich habe ein Buch gefunden"+"\n")
Der Serverteil kann behandelt werden, indem der Nummernteil von data3 = "'1'" geändert und die if-Anweisung erhöht wird.
img = cv2.imread('sumaho.jpg')
cv2.imshow('sumaho', img)
Dies kann erreicht werden, indem dieser Code nach dem Einbetten von Label 1 == "": eingebettet wird.
Bisher habe ich bis zu Teil 5 geschrieben, und bis auf die Aufnahmefunktion habe ich fast die Funktionen realisiert, die ich mit yolov5 realisieren möchte. Daher möchte ich den Teil yolov5 vorerst beenden. Als Nächstes möchte ich ein Visualisierungswebpart erstellen. .. Wenn ich eine Funktion finde, die realisiert zu sein scheint, schreibe ich diesen Artikel, sodass die fortlaufende Veröffentlichung endet.
Recommended Posts