将分辨率大的图片分割成图片切片,然后对每一小图片切片进行模型预测,再将得到的结果进行合并。
import cv2 as cv import supervision as sv from ultralytics import YOLO model_path=r'F:\python\yolov8\yolov8x.pt' model=YOLO(model_path) # 使用gpu计算 # model.cuda() box_annotator=sv.BoundingBoxAnnotator() # 语义分割注释 # mask_annotator=sv.MaskAnnotator() label_annotator=sv.LabelAnnotator() def callback(img_slice): results=model(img_slice)[0] return sv.Detections.from_ultralytics(results) def process_img(img,index): slicer = sv.InferenceSlicer(callback=callback) detections=slicer(img) annotated_frame=box_annotator.annotate(img.copy(),detections) # annotated_frame=mask_annotator.annotate(img.copy(),detections) annotated_frame=label_annotator.annotate(annotated_frame,detections) return annotated_frame sv.process_video(source_path='beach-1.mp4',target_path='beach_2_detected.mp4',callback=process_img)
posted on
浙公网安备 33010602011771号