Если вы внимательно изучили файл darknet.py
, вы найдете пример того, как извлечь объекты из данного изображения.Вы пробовали это?Если вы этого не сделали, я рекомендую вам сначала попробовать его, прежде чем переходить к видеороликам.
Тогда вам необходимо перейти к видеороликам. Вот ссылка на OpenCV
документацию, в которой объясняется, как читать видеофайлы и потоки.Из этого кода вы сможете извлечь кадры видео.
Затем вы можете использовать код в darkent.py
и передать ему кадры.
Если нет, существуют более темные оболочки, которыеможет быть полезным
Вот ссылка на один.Существует документация, которую вы можете прочитать и установить на свой компьютер.Он очень прост в использовании.У него уже есть пример того, как использовать его на изображениях.Вы можете изменить его и работать с видео.
import numpy as np
import cv2
import pyyolo
cap = cv2.VideoCapture('vtest.avi')
meta_filepath = "/home/rameshpr/Downloads/darknet_google_server/data/obj.data"
cfg_filepath = "/home/rameshpr/Downloads/darknet_google_server/cfg/yolo-lb.cfg"
weights_filepath = "/home/rameshpr/Downloads/darknet_google_server/backup/yolo-v3.weights"
meta = pyyolo.load_meta(meta_filepath)
net = pyyolo.load_net(cfg_filepath, weights_filepath, False)
while(cap.isOpened()):
ret, frame = cap.read()
if not ret:
break
yolo_img = pyyolo.array_to_image(frame)
res = pyyolo.detect(net, meta, yolo_img)
for r in res:
cv2.rectangle(frame, r.bbox.get_point(pyyolo.BBox.Location.TOP_LEFT, is_int=True),
r.bbox.get_point(pyyolo.BBox.Location.BOTTOM_RIGHT, is_int=True), (0, 255, 0), 2)
cv2.imshow('frame', frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
Попробуйте приведенный выше код после завершения установки pyyolo
.