本文共 3049 字,大约阅读时间需要 10 分钟。
YOLOv9?????????????
?????????????YOLOv8??????????????YOLOv9??????????????????????????
YOLOv9???????????????????15%?????40%??????????????
????YOLOv9???????
??????????
???????????????
pip install opencv-python ultralytics
???????
??????YOLOv9??
import cv2from ultralytics import YOLO
????????
??YOLOv9???
model = YOLO("yolov9c.pt") ??????????????????????????????????
https://docs.ultralytics.com/de/models/yolov9/#impact-on-lightweight-models
?????????????
???????predict() ? predict_and_detect()?
def predict(chosen_model, img, classes=[], conf=0.5): if classes: results = chosen_model.predict(img, classes=classes, conf=conf) else: results = chosen_model.predict(img, conf=conf) return resultsdef predict_and_detect(chosen_model, img, classes=[], conf=0.5, rectangle_thickness=2, text_thickness=1): results = predict(chosen_model, img, classes, conf) for result in results: for box in result.boxes: cv2.rectangle(img, (int(box.xyxy[0][0]), int(box.xyxy[0][1])), (int(box.xyxy[0][2]), int(box.xyxy[0][3])), (255, 0, 0), rectangle_thickness) cv2.putText(img, f"{result.names[int(box.cls[0])}", (int(box.xyxy[0][0]), int(box.xyxy[0][1]) - 10), cv2.FONT_HERSHEY_PLAIN, 1, (255, 0, 0), text_thickness) return img, results predict() ?????????
chosen_model??????????img?????????classes??????????????conf??????????????????????????????????????????????????
predict_and_detect() ??? predict() ????????????????????????
????YOLOv9????????
??????????
image = cv2.imread("YourImagePath")result_img, _ = predict_and_detect(model, image, classes=[], conf=0.5) ?????????????????????????????????????????ID?
https://github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/datasets/coco.yaml
???YOLOv9?????
???????????
video_path = r"YourVideoPath"cap = cv2.VideoCapture(video_path)while True: success, img = cap.read() if not success: break result_img, _ = predict_and_detect(model, img, classes=[], conf=0.5) cv2.imshow("Image", result_img) cv2.waitKey(1) ????????
???????????
def create_video_writer(video_cap, output_filename): frame_width = int(video_cap.get(cv2.CAP_PROP_FRAME_WIDTH)) frame_height = int(video_cap.get(cv2.CAP_PROP_FRAME_HEIGHT)) fps = int(video_cap.get(cv2.CAP_PROP_FPS)) fourcc = cv2.VideoWriter_fourcc(*'MP4V') writer = cv2.VideoWriter(output_filename, fourcc, fps, (frame_width, frame_height)) return writeroutput_filename = "YourFilename"writer = create_video_writer(cap, output_filename)video_path = r"YourVideoPath"cap = cv2.VideoCapture(video_path)while True: success, img = cap.read() if not success: break result_img, _ = predict_and_detect(model, img, classes=[], conf=0.5) writer.write(result_img) cv2.imshow("Image", result_img) cv2.waitKey(1)writer.release() YOLOv9????????????????????????????????????????????????????????????????
转载地址:http://nesfk.baihongyu.com/