实例分割
实例分割1、模型介绍2、实例分割:图像效果预览3、实例分割:视频效果预览4、实例分割:实时检测4.1、USB摄像头效果预览4.2、CSI摄像头效果预览资料参考
使用Python演示Ultralytics :Instance Segmentation在图像、视频、实时检测的效果。
1、模型介绍
实例分割比物体检测更进一步,它涉及识别图像中的单个物体,并将它们与图像的其他部分分割开来。
实例分割模型的输出是一组勾勒出图像中每个物体的遮罩或轮廓,以及每个物体的类标签和置信度分数。当你不仅需要知道物体在图像中的位置,还需要知道它们的具体形状时,实例分割就非常有用了。
2、实例分割:图像
使用yolo26n-seg_ncnn_model预测ultralytics26文件夹下的图片。
进入代码文件夹:
cd /home/jetson/ultralytics/yahboom_demo
运行代码:
xxxxxxxxxx python3 02.segmentation_image.py
效果预览
yolo识别输出的图片位置:/home/jetson/ultralytics/output/

示例代码:
x from ultralytics import YOLO # Load a model model = YOLO ( "/home/jetson/ultralytics/yolo26n-seg.engine" ) # pretrained yolo26n model from ultralytics # Run batched inference on a list of images results = model ( "/home/jetson/ultralytics/assets/zidane.jpg" ) # return a list of Results objects # Process results list for result in results : # boxes = result.boxes # Boxes object for bounding box outputs masks = result . masks # Masks object for segmentation masks outputs # keypoints = result.keypoints # Keypoints object for pose outputs # probs = result.probs # Probs object for classification outputs # obb = result.obb # Oriented boxes object for OBB outputs result . show () # display to screen result . save ( filename = "/home/jetson/ultralytics/output/zidane_output.jpg" ) # save to disk
3、实例分割:视频
使用yolo26n-seg_ncnn_model预测ultralytics26文件夹下的视频(非ultralytics自带视频)。
进入代码文件夹:
xxxxxxxxxx cd /home/jetson/ultralytics/yahboom_demo
运行代码:
xxxxxxxxxx python3 02.segmentation_video.py
效果预览
yolo识别输出的视频位置:/home/jetson/ultralytics/output/

示例代码:
xxxxxxxxxx import cv2 from ultralytics import YOLO # Load the YOLO model model = YOLO ( "/home/jetson/ultralytics/yolo26n-seg.engine" ) # Open the video file video_path = "/home/jetson/ultralytics/ultralytics/videos/people_animals.mp4" cap = cv2 . VideoCapture ( video_path ) # Get the video frame size and frame rate frame_width = int ( cap . get ( cv2 . CAP_PROP_FRAME_WIDTH )) frame_height = int ( cap . get ( cv2 . CAP_PROP_FRAME_HEIGHT )) fps = int ( cap . get ( cv2 . CAP_PROP_FPS )) # Define the codec and create a VideoWriter object to output the processed video output_path = "/home/jetson/ultralytics/output/02.people_animals_output.mp4" fourcc = cv2 . VideoWriter_fourcc ( * 'mp4v' ) # You can use 'XVID' or 'mp4v' depending on your platform out = cv2 . VideoWriter ( output_path , fourcc , fps , ( frame_width , frame_height )) # Loop through the video frames while cap . isOpened (): # Read a frame from the video success , frame = cap . read () if success : # Run YOLO inference on the frame results = model ( frame ) # Visualize the results on the frame annotated_frame = results [ 0 ]. plot () # Write the annotated frame to the output video file out . write ( annotated_frame ) # Display the annotated frame cv2 . imshow ( "YOLO Inference" , cv2 . resize ( annotated_frame , ( 640 , 480 ))) # Break the loop if 'q' is pressed if cv2 . waitKey ( 1 ) & 0xFF == ord ( "q" ): break else : # Break the loop if the end of the video is reached break # Release the video capture and writer objects, and close the display window cap . release () out . release () cv2 . destroyAllWindows ()
4、实例分割:实时检测
4.1、USB摄像头
使用yolo26n-seg_ncnn_model预测USB摄像头画面。
进入代码文件夹:
xxxxxxxxxx cd /home/jetson/ultralytics/yahboom_demo
运行代码:点击预览画面,按q键可以终止程序!
xxxxxxxxxx python3 02.segmentation_camera_usb.py
效果预览
yolo识别输出的视频位置:/home/jetson/ultralytics/output/

示例代码:
xxxxxxxxxx import cv2 from ultralytics import YOLO # Load the YOLO model model = YOLO ( "/home/jetson/ultralytics/yolo26n-seg.engine" ) # Open the cammera cap = cv2 . VideoCapture ( 0 ) cap . set ( 6 , cv2 . VideoWriter . fourcc ( 'M' , 'J' , 'P' , 'G' )) cap . set ( cv2 . CAP_PROP_FRAME_WIDTH , 640 ) cap . set ( cv2 . CAP_PROP_FRAME_HEIGHT , 480 ) # Get the video frame size and frame rate frame_width = int ( cap . get ( cv2 . CAP_PROP_FRAME_WIDTH )) frame_height = int ( cap . get ( cv2 . CAP_PROP_FRAME_HEIGHT )) fps = int ( cap . get ( cv2 . CAP_PROP_FPS )) # Define the codec and create a VideoWriter object to output the processed video output_path = "/home/jetson/ultralytics/output/02.segmentation_camera_usb.mp4" fourcc = cv2 . VideoWriter_fourcc ( * 'mp4v' ) # You can use 'XVID' or 'mp4v' depending on your platform out = cv2 . VideoWriter ( output_path , fourcc , fps , ( frame_width , frame_height )) # Loop through the video frames while cap . isOpened (): # Read a frame from the video success , frame = cap . read () if success : # Run YOLO inference on the frame results = model ( frame ) # Visualize the results on the frame annotated_frame = results [ 0 ]. plot () # Write the annotated frame to the output video file out . write ( annotated_frame ) # Display the annotated frame cv2 . imshow ( "YOLO Inference" , cv2 . resize ( annotated_frame , ( 640 , 480 ))) # Break the loop if 'q' is pressed if cv2 . waitKey ( 1 ) & 0xFF == ord ( "q" ): break else : # Break the loop if the end of the video is reached break # Release the video capture and writer objects, and close the display window cap . release () out . release () cv2 . destroyAllWindows ()
4.2、CSI摄像头
使用yolo26n-seg_ncnn_model预测CSI摄像头画面。
进入代码文件夹:
xxxxxxxxxx cd /home/jetson/ultralytics/yahboom_demo
运行代码:点击预览画面,按q键可以终止程序!
xxxxxxxxxx python3 02.segmentation_camera_csi.py
效果预览
yolo识别输出的视频位置:/home/jetson/ultralytics/output/

示例代码:
xxxxxxxxxx import cv2 from ultralytics import YOLO from jetcam . csi_camera import CSICamera # Load the YOLO model model = YOLO ( "/home/jetson/ultralytics/yolo26n-seg.engine" ) # Open the camera (CSI Camera) cap = CSICamera ( capture_device = 0 , width = 640 , height = 480 ) # Get the video frame size and frame rate frame_width = 640 frame_height = 480 fps = 30 # Define the codec and create a VideoWriter object to output the processed video output_path = "/home/jetson/ultralytics/output/02.segmentation_camera_csi.mp4" fourcc = cv2 . VideoWriter_fourcc ( * 'mp4v' ) # You can use 'XVID' or 'mp4v' depending on your platform out = cv2 . VideoWriter ( output_path , fourcc , fps , ( frame_width , frame_height )) # Loop through the video frames while True : # Read a frame from the camera frame = cap . read () if frame is not None : # Run YOLO inference on the frame results = model ( frame ) # Visualize the results on the frame annotated_frame = results [ 0 ]. plot () # Write the annotated frame to the output video file out . write ( annotated_frame ) # Display the annotated frame cv2 . imshow ( "YOLO Inference" , cv2 . resize ( annotated_frame , ( 640 , 480 ))) # Break the loop if 'q' is pressed if cv2 . waitKey ( 1 ) & 0xFF == ord ( "q" ): break else : # Break the loop if no frame is received (camera error or end of stream) print ( "No frame received, breaking the loop." ) break # Release the video capture and writer objects, and close the display window cap . release () out . release () cv2 . destroyAllWindows ()