一、创建环境
1.创建名为yolov11的conda空环境
打开Anaconda Prompt,创建名为yolov11的空环境:
conda create -n yolov11

2.配置yolov11环境
2.1 安装python
conda install python=3.11

2.2 安装torch、torchvision、torchaudio
官方安装指令:https://pytorch.org/get-started/previous-versions/

根据系统及cuda安装版本选择:
pip install torch==2.8.0 torchvision==0.23.0 torchaudio==2.8.0 --index-url https://download.pytorch.org/whl/cu129

2.3安装ultralytics
pip install ultralytics

中间可能下载失败,多尝试几次就好。
二、下载ultralytics工程
Github地址:https://github.com/ultralytics/ultralytics?tab=readme-ov-file
Gitcode地址:https://gitcode.com/GitHub_Trending/ul/ultralytics

版本随意,这里下载的是v8.3.226。解压并重命名ultralytics,从pycharm打开ultralytics工程。

切换conda环境:yolov11




yolov11环境激活并使用中:

三、yolo11-分割任务
各种详细用法参考:https://docs.ultralytics.com/zh/

这里以yolo11分割任务为例,在界面选择【任务】→【分割】

1.yolo11-分割任务-模型及数据集
1.1模型
yolo11分割模型,首次使用会自动从最新的Ultralytics版本下载。也可以点击蓝色字体模型先下载放入工程中。

这里下载的是YOLO11n-seg模型,将下载好的模型文件放入ultralytics工程中。
1.2数据集

直接使用coco8-seg数据集,模型训练时会自动下载。(如果想先下载,网址可通过工程中coco8-seg.yaml获取)

2.yolo11-分割任务-训练
在项目中创建名为train_yolov11.py文件

根据分割教程中的训练示例编写train_yolov11.py

在界面左侧点击【训练】,有更详细的说明。(后面的验证、预测同样)

此界面中提到:

整合一下信息,train_yolov11.py内容如下:
from ultralytics import YOLO
if __name__ == "__main__":
model = YOLO("yolo11n-seg.yaml")
model = YOLO("yolo11n-seg.pt")
model = YOLO("yolo11n-seg.yaml").load("yolo11n.pt")
results =model.train(data="coco8-seg.yaml", # 指定训练数据集的配置文件路径,这个.yaml文件包含了数据集的路径和类别信息
cache=False, # 是否缓存数据集以加快后续训练速度,False表示不缓存
imgsz=640, # 指定训练时使用的图像尺寸,640表示将输入图像调整为640x640像素
epochs=100, # 设置训练的总轮数为100轮
batch=16, # 设置每个训练批次的大小为16,即每次更新模型时使用16张图片
close_mosaic=10, # 设置在训练结束前多少轮关闭 Mosaic 数据增强,10 表示在训练的最后 10 轮中关闭 Mosaic
workers=2, # 设置数据加载的线程数,更多线程可以加快数据加载速度。如果电脑显存不够大,该数值越小越好,否则会报错
patience=50, # 在训练时,如果经过50轮性能没有提升,则停止训练(早停机制)
device='0', # 指定使用的设备,'0'表示使用第一块GPU进行训练
optimizer='SGD', # 设置优化器,用于模型参数更新
)
运行:

coco8-seg数据集选择自动下载(注意其保存的路径),如果下载失败导致训练失败,多尝试几次就好了


训练完成:Result saved to D:\workspace\pycharm\ultralytics\runs\segment\train2

3.yolo11-分割任务-验证
在项目中创建名为val_yolov11.py验证程序文件。

根据分割教程中的验证示例编写train_yolov11.py,内容如下:
from ultralytics import YOLO
if __name__ == "__main__":
model = YOLO("yolo11n-seg.pt")
model = YOLO("runs/segment/train2/weights/best.pt")
metrics = model.val()
metrics.box.map
metrics.box.map50
metrics.box.map75
metrics.box.maps
metrics.seg.map
metrics.seg.map50
metrics.seg.map75
metrics.seg.maps
运行结果:

Results saved to D:\workspace\pycharm\ultralytics\runs\segment\val

4.yolo11-分割任务-预测
4.1单图像预测
在项目中创建名为test_yolov11.py预测程序文件。

根据分割教程中的预测示例编写train_yolov11.py(bus.jpg图片从https://ultralytics.com/images/bus.jpg下载,路径随便放,这里我放在工程目录下的runs文件夹中),内容如下:
from ultralytics import YOLO
if __name__ == "__main__":
# Load a model
model = YOLO("yolo11n-seg.pt") # load an official model
model = YOLO("runs/segment/train2/weights/best.pt") # load a custom model
# Predict with the model
results = model("runs/bus.jpg") # predict on an image
# Access the results
for result in results:
xy = result.masks.xy # mask in polygon format
xyn = result.masks.xyn # normalized
masks = result.masks.data # mask in matrix format (num_objects x H x W)
result.show()
运行:
报错1:
缺少pytest插件

解决措施:
从pycharm界面下方的Terminal进入已激活yolov11的conda环境终端,输入安装指令:
pip install pytest

报错2:
D:\workapp\pycharm\PyCharm 2023.1.6\plugins\python\helpers\pycharm_jb_pytest_runner.py:8: UserWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html. The pkg_resources package is slated for removal as early as 2025-11-30. Refrain from using this package or pin to Setuptools<81.
from pkg_resources import iter_entry_points

解决措施:有两种(第二种适合我)
1)第一种:修改_jb_pytest_runner.py
打开报错的路径文件D:\workapp\pycharm\PyCharm 2023.1.6\plugins\python\helpers\pycharm_jb_pytest_runner.py
对第8行、第28行进行修改:
原来:
from pkg_resources import iter_entry_points
if "pytest-teamcity" not in map(lambda e: e.name, iter_entry_points(group='pytest11', name=None)):
修改后:
from importlib.metadata import entry_points
if "pytest-teamcity" not in [e.name for e in entry_points().get('pytest11', [])]:

此方法,对我没用,还是报错,又改回去了。
2)第二种:降低Setuptools版本
Setuptools版本太高导致pytest报错。
查看自己的版本:pip show setuptools

卸载setuptools:pip uninstall setuptools
安装合适的低版本:pip install setuptools==67.6.1
问题解决。(后来想了想,可能是我的Setuptools版本过高,导致第一种不合适。)
再次运行发现报错“Empty suite “
仔细查看,我的文件名:test_yolov11.py
默认情况下,PyCharm将检查以test开头的文件,它们是unittest.TestCase的子类
所以修改文件名为t_yolov11.py,运行:
左边是刚训练的模型best.pt检测结果(因为训练参数是随便设置的分割效果肯定不好),右边是yolo11n-seg.pt检测结果

4.2视频预测
随便找的MP4格式视频网址https://www.aigei.com/video/index/video_extName_mp4/
下载了一个汽车行驶和一位教师教学的视频,重命名并放入工程目录中

t_yolov11.py内容:
from ultralytics import YOLO
import cv2
import numpy as np
def main():
# 加载模型
model = YOLO("yolo11n-seg.pt") # 官方模型
# model = YOLO("runs/segment/train2/weights/best.pt") # 自定义模型
# 视频源
source = "runs/car.mp4"
# 打开视频
cap = cv2.VideoCapture(source)
# 处理每一帧
while True:
ret, frame = cap.read()
if not ret:
break
# 使用模型预测(使用stream=True提高效率)
results = model(frame, stream=True, conf=0.5)
# 在帧上绘制结果
for result in results:
annotated_frame = result.plot() # 使用内置绘图函数
# 显示结果
cv2.imshow('YOLOv11 Segmentation', annotated_frame)
# 按'q'退出
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
if __name__ == "__main__":
main()
汽车行驶视频检测结果:

教师教学视频检测结果:

4.3 电脑自带摄像头预测
t_yolov11.py内容:
from ultralytics import YOLO
import cv2
import time
def optimized_camera_detection():
# 加载模型
model = YOLO("yolo11n-seg.pt")
# model = YOLO("runs/segment/train2/weights/best.pt") # 自定义模型
# 打开摄像头
cap = cv2.VideoCapture(0)
cap.set(cv2.CAP_PROP_FRAME_WIDTH, 640)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 480)
# 性能优化设置
prev_time = 0
fps = 0
print("优化版摄像头检测中... 按 'q' 退出")
while True:
ret, frame = cap.read()
if not ret:
break
# 计算FPS
current_time = time.time()
fps = 1 / (current_time - prev_time) if prev_time > 0 else 0
prev_time = current_time
# 执行检测(使用半精度推理加速)
results = model(frame, conf=0.5, half=True, verbose=False)
# 绘制结果
annotated_frame = results[0].plot()
# 显示FPS
cv2.putText(annotated_frame, f'FPS: {fps:.1f}',
(10, 30), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 255, 0), 2)
# 显示结果
cv2.imshow('YOLOv11 实时分割检测', annotated_frame)
# 退出控制
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
if __name__ == "__main__":
optimized_camera_detection()
运行结果:



&spm=1001.2101.3001.5002&articleId=154992866&d=1&t=3&u=10697470a4f04c16852c742ec5148686)
3787

被折叠的 条评论
为什么被折叠?



