разрешите представиться всем, мне 17 лет, я хочу научиться для своего проекта, я хочу добавить простой механизм. для моего проекта, в котором обнаружены небиоразлагаемые вещества, он разблокирует электромагнитный замок. Кстати, я использую pycharm и python в качестве компьютерного языка. позвольте мне услышать ваши мысли и обсуждение моего простого кода. TY!
Я пытаюсь запрограммировать свой проект, используя базовый механизм с использованием Соленоидной блокировки и механизма разблокировки. Как только элемент идентифицирован, весь код работает; Я просто хочу добавить, что когда объект найден, он печатает // Bottle.identified... Этот отпечаток автоматически откроет соленоид после 5-8 секундного ожидания. Я пытаюсь смотреть обучающие материалы на YouTube, но мне хотелось бы знать, есть ли у вас какие-либо мнения или полезные предложения.
import cv2
import supervision as sv
from ultralytics import YOLO
import numpy as np
model = YOLO('yolov8n.pt')
bounding_box_annotator = sv.BoxAnnotator()
label_annotator = sv.LabelAnnotator()
cap = cv2.VideoCapture(0)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 480)
cap.set(cv2.CAP_PROP_FRAME_WIDTH, 640)
print("Camera initialized and ready.")
CONFIDENCE_THRESHOLD = 0.4
object_class_ids = [39, 44, 42, 41]
while True:
ret, frame = cap.read()
if not ret:
print("Failed to capture frame. Exiting.")
break
results = model.predict(frame)
detections = sv.Detections.from_ultralytics(results[0])
confidence_mask = detections.confidence > CONFIDENCE_THRESHOLD
class_mask = np.isin(detections.class_id, object_class_ids)
filtered_mask = np.logical_and(confidence_mask, class_mask)
filtered_detections = detections[filtered_mask]
if len(filtered_detections) > 0:
print(f"Filtered detections: {filtered_detections}")
annotated_image = bounding_box_annotator.annotate(scene=frame, detections=filtered_detections)
annotated_image = label_annotator.annotate(scene=annotated_image, detections=filtered_detections)
else:
annotated_image = frame
cv2.imshow('Camera Feed with Annotations', annotated_image)
if cv2.waitKey(1) & 0xFF == ord('q'):
print("'q' pressed, closing...")
break
cap.release()
cv2.destroyAllWindows()
Подробнее здесь: https://stackoverflow.com/questions/790 ... k-response
Подключение ОБНАРУЖЕНИЯ ОБЪЕКТОВ YOLOv8 с автоматической разблокировкой/блокировкой соленоида ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение