mirror of
https://github.com/modelec/detection_pot.git
synced 2026-01-19 00:57:28 +01:00
42 lines
1.2 KiB
Python
42 lines
1.2 KiB
Python
import cv2 as cv
|
|
import numpy as np
|
|
import tensorflow as tf
|
|
|
|
model = tf.saved_model.load('Pot-plante.tfrecord')
|
|
|
|
cap = cv2.VideoCapture(0)
|
|
if not cap.isOpened():
|
|
print("Cannot open camera")
|
|
exit()
|
|
|
|
while True:
|
|
ret, frame = cap.read()
|
|
if not ret:
|
|
print("Can't receive frame (stream end?). Exiting ...")
|
|
break
|
|
|
|
# Prétraiter l'image pour l'entrée du modèle
|
|
input_image = cv2.resize(frame, (300, 300))
|
|
input_image = input_image / 127.5 - 1.0 # Normalisation
|
|
|
|
# Effectuer la détection d'objets avec le modèle TensorFlow
|
|
detections = model(tf.convert_to_tensor(np.expand_dims(input_image, axis=0), dtype=tf.float32))
|
|
|
|
# Dessiner les boîtes englobantes sur l'image
|
|
for detection in detections['detection_boxes'][0].numpy():
|
|
ymin, xmin, ymax, xmax = detection
|
|
xmin = int(xmin * frame.shape[1])
|
|
xmax = int(xmax * frame.shape[1])
|
|
ymin = int(ymin * frame.shape[0])
|
|
ymax = int(ymax * frame.shape[0])
|
|
|
|
cv2.rectangle(frame, (xmin, ymin), (xmax, ymax), (0, 255, 0), 2)
|
|
|
|
# Afficher le cadre résultant
|
|
cv2.imshow("Object Detection", frame)
|
|
|
|
if cv2.waitKey(1) == ord("q"):
|
|
break
|
|
|
|
cap.release()
|
|
cv2.destroyAllWindows() |