Отслеживание объектов на видео с использованием bbox, opencv и python
Я пытаюсь создать робота, который может следовать за человеком, которого я выбрал, для этого я использую raspberry pi с python и openCV.
Я хочу создать bbox вокруг человека, и я хочу, чтобы моя камера отслеживала этого человека, я нашел фрагменты кода в Интернете и попытался собрать их вместе, но когда я запускаю код, он дает мне изображение, я могу выбрать объект, но он не обновляет кадры, и изображение останавливается.
Это также дает мне ошибку, когда я нажимаю пробел или другую клавишу: "ok = tracker.init(image, bbox) NameError: name 'tracker' не определено"
Может кто-нибудь дать мне совет? Вот код только для отслеживания объекта:
from picamera import PiCamera
import time
import cv2
import numpy as np
# initialize the camera and grab a reference to the raw camera capture
camera = PiCamera()
camera.resolution = (640, 480)
camera.framerate = 32
rawCapture = PiRGBArray(camera, size=(640, 480))
while True:
for frame in camera.capture_continuous(rawCapture, format="bgr", use_video_port=True):
image = frame.array
bbox = cv2.selectROI(image, False)
ok = tracker.init(image, bbox)
cv2.imshow("Camera Output", image)
#rawCapture.truncate(0)
ok, bbox = tracker.update(image)
fps = cv2.getTickFrequency() / (cv2.getTickCount() - timer)
if ok:
p1 = (int(bbox[0]), int(bbox[1]))
p2 = (int(bbox[0] + bbox[2]), int(bbox[1] + bbox[3]))
cv2.rectangle(frame, pi, p2, (255, 0, 0), 2, 1)
else:
cv2.putText(image, "Tracking failure detected", (100, 80),
cv2.FONT_HERSHEY_SIMPLEX, 0.75, (0, 0, 255), 2)
cv2.putText(frame, tracker_type + "Tracker", (100, 20),
cv2.FONT_HERSHEY_SIMPLEX, 0.75, (50, 170, 50), 2);
cv2.putText(image, "FPS:" ++ str(int(fps)), (100, 50),
cv2.FONT_HERSHEY_SIMPLEX, 0.75, (50, 170, 50), 2);
cv2.imshow("Tracking", image)
k = cv2.waitKey(5) #& 0xFF
if "q" == chr(k & 255):
break```
1 ответ
Итак, метод tracker
не определено. Я нашел это, что инициализирует метод. Вы можете сделать это так:
tracker = cv2.TrackerKCF_create()
Это с учетом того, что вы хотите реализовать opencv
функция