Пример простого скрипта на Python, который обрабатывает видео и собирает в список объекты, которые в нем распознаны. Видео разбивается на отдельные кадры с помощью библиотеки «openvc» и далее каждый кадр обрабатывается детекцией с помощью модуля «ultralytics YOLO», обнаруженные на кадре объекты собираются в список и уникализируются при добавлении, чтобы не было дублей. В итоге получаем все объекты, распознанные на протяжении всего видео в едином списке:
# Устанавливаем необходимые модули (при необходимости)
!pip install opencv-python
!pip install ultralytics# подключаем необходимые модули
import cv2
from ultralytics import YOLO
# загрузка модели
model = YOLO('yolov8n.pt')
# открытие видеофайла (или 0 для веб-камеры)
video_path = "video.mp4"
cap = cv2.VideoCapture(video_path)
class_names = []
while cap.isOpened():
success, frame = cap.read()
if not success:
break
# распознавание объектов на текущем кадре, conf - порог уверенности
results = model(frame, conf=0.5)
# собираем распознанные классы в список
for result in results:
class_names_map = result.names
for box in result.boxes:
class_id = int(box.cls[0])
class_name = class_names_map[class_id]
confidence = float(box.conf[0])
if class_name not in class_names:
class_names.append(class_name)
cap.release()
cv2.destroyAllWindows()
# выводим собранный список классов распознанных объектов
print(class_names)