Amazing-Python-Scripts
56 строк · 1.5 Кб
1import cv22import numpy as np3
4
5yolo_net = cv2.dnn.readNet('yolov3.weights', 'yolov3.cfg')6
7
8class_names = []9with open('coco.names', 'r') as f:10class_names = f.read().strip().split('\n')11
12
13video_capture = cv2.VideoCapture('video_file.mp4')14
15while video_capture.isOpened():16ret, frame = video_capture.read()17if not ret:18break19
20height, width, _ = frame.shape21
22blob = cv2.dnn.blobFromImage(23frame, 0.00392, (416, 416), (0, 0, 0), True, crop=False)24yolo_net.setInput(blob)25
26layer_names = yolo_net.getUnconnectedOutLayersNames()27outs = yolo_net.forward(layer_names)28
29for out in outs:30for detection in out:31scores = detection[5:]32
33class_id = np.argmax(scores)34confidence = scores[class_id]35if confidence > 0.5 and class_id == 2:36center_x = int(detection[0] * width)37
38center_y = int(detection[1] * height)39bbox_width = int(detection[2] * width)40
41bbox_height = int(detection[3] * height)42
43x = int(center_x - bbox_width / 2)44y = int(center_y - bbox_height / 2)45cv2.rectangle(frame, (x, y), (x + bbox_width,46y + bbox_height), (0, 255, 0), 2)47
48resized_frame = cv2.resize(frame, (720, 480))49
50cv2.imshow('Car Tracking', frame)51
52if cv2.waitKey(1) & 0xFF == ord('q'):53break54
55video_capture.release()56cv2.destroyAllWindows()57