找到
3
篇与
yolo v8
相关的结果
-
YOLOv8自定义数据集制作与训练教程|训练专属检测模型 YOLOv8实战:从零制作自定义数据集,训练专属检测模型 前两章我们搞定了环境搭建和基础推理,能处理图片、视频,但用的都是官方预训练模型,只能检测80类通用目标(比如人、车、猫)。实际做项目时,肯定要检测自己的专属目标——比如检测工厂的零件缺陷、自家宠物、特定商品,这就需要做自定义数据集,训练专属模型。这一章全程手把手带做,从标注工具安装到训练出第一个自己的模型,所有步骤都拆到新手能看懂,代码直接复用。 ml7hddwt.png图片 一、前期准备:明确目标+选对工具 1. 先定检测目标(新手别贪多) 新手第一次做,别选太复杂的目标(比如检测细小的电子元件),选2-3类简单目标即可,比如: 日常物品:水杯(cup)、键盘(keyboard)、鼠标(mouse) 宠物类:自家的猫(cat)、狗(dog) 场景类:椅子(chair)、桌子(table) 我以“检测水杯、键盘、鼠标”为例,全程演示,你可以替换成自己要检测的目标。 2. 标注工具选LabelImg(新手首选) YOLOv8需要YOLO格式的标注文件,LabelImg是最经典、最容易上手的标注工具,支持一键导出YOLO格式,不用手动改格式,完美适配新手。 二、LabelImg安装(Windows/Mac通用) 1. 安装前置依赖 LabelImg基于Python和PyQt5,先装PyQt5: # Windows pip install pyqt5 lxml # Mac/Linux pip3 install pyqt5 lxml2. 安装LabelImg 两种方式,选一种就行: 方式1:pip直接安装(推荐) # Windows pip install labelimg # Mac/Linux pip3 install labelimg方式2:GitHub克隆安装(备用,解决pip安装失败) # 克隆仓库(需要装git,没装的话先装git) git clone https://github.com/HumanSignal/labelImg.git cd labelImg # 安装并运行 python setup.py install3. 验证安装(启动LabelImg) 打开终端,输入: # Windows/Mac通用 labelImg回车后会弹出LabelImg的可视化窗口,说明安装成功;如果报错“找不到命令”,重启终端或检查Python环境变量(上一章提过的PATH问题)。 三、制作YOLO格式自定义数据集(核心步骤) 1. 先建标准文件夹结构 YOLOv8对数据集路径、文件夹命名有严格要求,先按下面的结构建好文件夹(纯英文命名,别用中文/空格): my_custom_dataset/ # 总文件夹 ├── images/ # 图片文件夹 │ ├── train/ # 训练集图片(80%) │ └── val/ # 验证集图片(20%) └── labels/ # 标注文件文件夹 ├── train/ # 训练集标注文件(和train图片一一对应) └── val/ # 验证集标注文件(和val图片一一对应)操作步骤: 新建总文件夹my_custom_dataset,放在桌面(方便查找); 里面建images和labels两个子文件夹; images里再建train和val,labels同理。 2. 准备图片并划分训练/验证集 找20-50张包含“水杯、键盘、鼠标”的图片(数量不用多,新手先跑通流程); 选16-40张放入images/train(训练集,占80%),剩下的4-10张放入images/val(验证集,占20%); 所有图片重命名为纯英文+数字,比如img_001.jpg、img_002.jpg(避免中文/特殊字符报错)。 3. 用LabelImg标注图片(逐步教) 标注的核心是“给每张图片里的目标画框,指定类别,导出YOLO格式标注文件”,步骤如下: 步骤1:设置标注环境 打开LabelImg,点击左上角File → Change Save Dir,选择labels/train(先标注训练集); 点击左上角View,勾选Auto Save Mode(自动保存,不用手动点保存); 点击左侧YOLO(切换到YOLO标注格式,关键!默认是PascalVOC,要切换)。 步骤2:加载图片并标注 点击左上角Open Dir,选择images/train,加载训练集图片; 按快捷键W,调出标注框工具,用鼠标框选图片里的“水杯”; 弹出“Enter label”对话框,输入类别名(比如cup,小写!),点击OK; 继续框选同一张图里的“键盘”(输入keyboard)、“鼠标”(输入mouse); 按快捷键D,切换到下一张图片,重复标注; 标注完所有训练集图片后,同理切换Save Dir到labels/val,标注验证集图片。 步骤3:检查标注文件 标注完成后,labels/train和labels/val里会出现和图片同名的.txt文件(比如img_001.txt),这就是YOLO格式标注文件,打开一个看看,格式如下(每行代表一个目标): 0 0.45 0.52 0.30 0.40 # 类别编号 中心点x 中心点y 框宽 框高(都是归一化值,不用改) 1 0.78 0.65 0.25 0.354. 新建类别映射文件(classes.txt) 在my_custom_dataset根目录下,新建classes.txt文件,按顺序写入所有类别名(每行一个),比如: cup keyboard mouse这个文件用来关联“类别编号”和“类别名”,比如编号0对应cup,1对应keyboard,必须和标注时输入的名称一致! 四、编写数据集配置文件(yaml文件) YOLOv8训练需要一个yaml文件,告诉模型“数据集在哪、有多少类、类别名是什么”,这是新手最容易出错的环节,我直接给模板,你改路径和类别即可。 在my_custom_dataset根目录下,新建custom_dataset.yaml文件,内容如下(重点改path!): # 数据集根路径(绝对路径!新手别用相对路径,避免找不到) # Windows示例:path: C:/Users/你的用户名/Desktop/my_custom_dataset # Mac示例:path: /Users/你的用户名/Desktop/my_custom_dataset path: C:/Users/xxx/Desktop/my_custom_dataset # 训练集/验证集图片路径(基于上面的path,不用改) train: images/train val: images/val # 类别数(我这里是3类:cup、keyboard、mouse,按自己的改) nc: 3 # 类别名(和classes.txt一致,顺序也必须一致!) names: ['cup', 'keyboard', 'mouse'] ⚠️ 关键坑:path必须写绝对路径!比如Windows路径是C:/Users/张三/Desktop/my_custom_dataset(别用反斜杠\,用/),Mac路径是/Users/张三/Desktop/my_custom_dataset,写错路径训练时会提示“找不到数据集”。 五、训练自定义YOLOv8模型(核心代码) 所有准备工作完成后,训练代码非常简洁,基于ultralytics库一键训练,新手不用改复杂参数,先跑通再说。 完整训练代码 from ultralytics import YOLO # 1. 加载预训练模型(用yolov8s,轻量均衡,新手首选) model = YOLO('yolov8s.pt') # 2. 开始训练(核心参数只改data路径) results = model.train( data='C:/Users/xxx/Desktop/my_custom_dataset/custom_dataset.yaml', # 你的yaml文件绝对路径 epochs=50, # 训练轮数:新手50-100足够,数据少就少点(比如30) batch=8, # 批次大小:CPU/低配GPU设4-8,高配GPU设16-32 imgsz=640, # 输入图片尺寸:默认640,不用改 device=0, # 设备:0=GPU(有N卡就用),-1=CPU(无GPU) patience=10, # 早停:10轮没提升就停止,避免过拟合 save=True, # 自动保存最佳模型 project='runs/train',# 训练结果保存目录 name='custom_model' # 本次训练名称,方便区分 ) # 训练完成后,最佳模型会保存在 runs/train/custom_model/weights/best.pt print("训练完成!最佳模型路径:", results.save_dir + "/weights/best.pt")训练过程监控 运行代码后,终端会打印训练日志,重点看两个指标: mAP50:平均精度,数值越高(0-1),模型效果越好; loss:损失值,随着训练轮数增加,应该逐渐降低并趋于稳定。 训练过程中,还会自动生成runs/train/custom_model文件夹,里面有训练曲线图、验证集检测示例、模型权重文件,不用手动管。 六、用自定义模型推理(验证效果) 训练完成后,用自己训的best.pt模型检测图片,验证是否能识别自定义目标: from ultralytics import YOLO # 加载自己训练的最佳模型 model = YOLO('runs/train/custom_model/weights/best.pt') # 检测一张包含水杯/键盘/鼠标的图片 results = model( source='test_custom.jpg', # 自己的测试图片 conf=0.5, # 置信度调高,避免误检 save=True ) # 打印检测结果 print("自定义模型检测结果:") for box in results[0].boxes: class_name = results[0].names[int(box.cls)] confidence = round(float(box.conf), 2) print(f"目标:{class_name},置信度:{confidence}")运行后,会生成带标注框的结果图,能清晰看到自己标注的“cup/keyboard/mouse”被识别出来,就算训练成功了! 七、本章常见问题与解决方法 训练报错“Dataset not found” 原因:yaml文件里的path路径错误、数据集文件夹结构不对、图片/标注文件缺失 解决:核对绝对路径是否正确,确保images/train和labels/train里的文件一一对应(图片和txt文件名完全一致)。 训练时显存不足(CUDA out of memory) 原因:batch批次太大、模型版本太高(比如用yolov8l/x) 解决:把batch降到4甚至2,换回yolov8n/s模型,或用CPU训练(device=-1)。 标注文件报错“IndexError: list index out of range” 原因:类别编号超出范围(比如标注了4类,但yaml里nc=3)、classes.txt和标注类别名不一致 解决:核对nc数值和实际类别数一致,类别名大小写/拼写完全匹配。 训练完成后检测不到自定义目标 原因:标注图片数量太少、标注框不准确、训练轮数不够 解决:增加标注图片数量(至少20张),重新标注确保框准确,把epochs调到80-100。 八、本章小结 这一章我们完成了“自定义数据集制作→配置文件编写→模型训练→推理验证”的全流程,核心是“先搭对文件夹结构、选对标注格式、写对yaml路径”,这三个环节不出错,训练基本就能跑通。 新手第一次训练效果可能不完美(比如漏检、误检),不用急,后续可以通过增加标注数据、调整训练参数(比如batch、epochs)、优化标注质量来提升。下一章我们会专门讲“YOLOv8训练调参技巧”,教你怎么用最少的改动,让模型效果翻倍。 -
YOLOv8实战进阶|单图、视频、批量推理与基础参数调优教程 YOLOv8实战进阶:单图、视频、批量推理与基础参数调优 上一章我们完成了YOLOv8最基础的环境搭建和单张图片检测,成功跑出了第一个带标注框的结果。但在实际使用里,只处理单张静态图片远远不够,视频检测、批量图片处理、调整检测精度和速度,才是日常高频用到的功能。这一章就顺着上一章的代码,在不改动核心逻辑的前提下,扩展常用推理场景,同时讲清楚新手最先用到的几个参数,所有代码都可以直接复制运行,配合上一章的环境直接使用。 ml2hyuoz.png图片 一、模型规格切换与选用建议 YOLOv8官方提供了多种不同大小的预训练模型,分别是yolov8n、yolov8s、yolov8m、yolov8l、yolov8x,后缀字母对应模型参数量和计算量,直接影响检测速度和精度,新手可以根据硬件直接选择。 yolov8n:nano,最小最快,精度一般,适合CPU、低配设备、嵌入式端 yolov8s:small,轻量均衡,CPU运行流畅,精度比n版提升明显,日常测试首选 yolov8m:medium,中等规模,精度较好,建议有独立显卡使用 yolov8l:large,大模型,高精度,需要中端以上NVIDIA显卡 yolov8x:xlarge,最大模型,精度最高,对显卡显存要求高 模型切换不需要修改代码逻辑,只需要更换加载的模型文件名即可。上一章我们用的是yolov8n.pt,想要换成s版,只需要修改一行代码: from ultralytics import YOLO # 替换为yolov8s.pt,首次运行会自动下载模型文件 model = YOLO('yolov8s.pt')硬件配置普通、仅做学习测试,优先保留n版或s版;有GPU且追求检测效果,再逐步升级到m、l、x版,不建议新手一上来用大模型,容易出现加载慢、显存不足的问题。 二、单张图片推理进阶用法 基础单图检测只能实现默认检测和保存,实际使用中我们经常需要指定保存目录、关闭冗余输出、只提取检测结果数据,这里整理可直接使用的进阶代码。 from ultralytics import YOLO # 加载s版均衡模型 model = YOLO('yolov8s.pt') # 单图推理,增加常用参数 # source:图片路径 # conf:置信度阈值,低于该值的目标不显示 # save:是否保存结果图片 # project:保存结果的根文件夹 # name:本次推理的结果子文件夹 # verbose:关闭终端冗余日志输出 results = model( source='test.jpg', conf=0.3, save=True, project='runs/detect', name='my_single_result', verbose=False ) # 解析并结构化打印结果 print("=== 单图检测详细结果 ===") for idx, box in enumerate(results[0].boxes): cls_id = int(box.cls) class_name = results[0].names[cls_id] conf = round(float(box.conf), 2) # 检测框坐标信息 (x1, y1, x2, y2) xyxy = box.xyxy.cpu().numpy().tolist()[0] print(f"目标{idx+1} | 类别:{class_name} | 置信度:{conf} | 坐标:{xyxy}")运行后,结果会统一保存在runs/detect/my_single_result目录下,方便多次测试区分不同版本的输出,同时终端只打印结构化的关键信息,不会被大量日志干扰。 三、视频文件目标检测 图片检测是基础,视频检测是YOLOv8的高频实用场景,代码逻辑和单图完全一致,只需要将source参数替换为视频文件路径,模型会自动逐帧处理并输出带检测框的视频。 操作准备 准备一段常见格式的视频,如mp4、avi、mov,文件名改为英文,如test_video.mp4 将视频和代码文件放在同一目录 完整视频检测代码 from ultralytics import YOLO model = YOLO('yolov8s.pt') # 视频推理,新增帧率相关与保存参数 results = model( source='test_video.mp4', conf=0.3, save=True, project='runs/detect', name='my_video_result', verbose=False, # 保留视频音频,可选 save_audio=True ) print("视频检测完成,结果保存在runs/detect/my_video_result目录")硬件说明: CPU环境:可以处理短时长、低分辨率视频,处理速度慢于原视频帧率,属于正常现象 GPU环境:可以流畅处理1080P及以下视频,处理速度接近实时 输出的视频文件会自动存放在指定目录,文件名包含处理标识,可直接用播放器打开查看逐帧检测效果。 四、批量图片批量推理 日常工作中经常需要一次性处理一整个文件夹的图片,逐张手动运行效率太低,YOLOv8支持直接传入文件夹路径,自动批量处理所有图片,无需编写循环代码。 操作准备 新建一个文件夹,命名为batch_images 将所有需要检测的图片放入该文件夹,全部使用英文文件名 保证batch_images和代码文件在同一级目录 批量检测完整代码 from ultralytics import YOLO model = YOLO('yolov8s.pt') # 直接传入文件夹路径,批量处理所有图片 results = model( source='batch_images', conf=0.3, save=True, project='runs/detect', name='my_batch_result', verbose=False ) # 统计总检测数量 total_objects = 0 for res in results: total_objects += len(res.boxes) print(f"批量处理完成,共处理图片{len(results)}张,总计检测目标{total_objects}个") print("所有标注结果图片保存在runs/detect/my_batch_result目录")运行后,程序会遍历文件夹内所有合法图片,逐张检测并保存标注结果,终端输出整体统计数据,适合数据集预处理、批量标注预览等场景。 五、新手必用核心参数说明 上面代码用到的参数,是日常推理最常用的几个,不需要记复杂文档,理解这几个就足够完成大部分测试任务: source:输入源,可以是单张图片路径、视频路径、文件夹路径、摄像头编号 conf:置信度阈值,范围0-1,数值越高,检测结果越严格,误检越少,但可能漏检小目标,新手常用0.25-0.5 save:布尔值,True为保存带框的结果文件,False为只计算不保存 project:结果保存的根目录,统一管理所有输出,避免文件混乱 name:单次推理的子文件夹名称,方便区分不同参数、不同模型的测试结果 verbose:True输出完整日志,False关闭冗余输出,只保留关键信息 这些参数可以自由组合,比如高置信度严格检测、指定自定义保存目录、批量处理加精简日志,适配不同使用场景。 六、本章常见问题与解决方法 视频运行报错,提示无法读取视频 原因:视频格式不兼容、文件损坏、路径包含中文或空格 解决:转换为mp4格式,重命名为纯英文无空格路径,检查文件是否可正常播放 批量处理只识别部分图片 原因:部分图片格式非JPG/PNG、文件名异常、图片损坏 解决:统一转换为JPG格式,删除无法打开的损坏图片,全部使用英文命名 CPU处理视频速度极慢,甚至卡顿 原因:视频分辨率过高、模型版本偏大、CPU性能有限 解决:换回yolov8n模型,压缩视频分辨率为720P及以下,缩短视频时长 输出目录找不到结果文件 原因:project和name参数理解错误,默认路径和自定义路径混淆 解决:固定使用runs/detect作为根目录,每次修改name区分任务,直接按路径层级查找 检测结果大量误检,出现无效目标 原因:置信度conf设置过低 解决:将conf从0.25提高到0.35-0.4,过滤低置信度无效目标 七、本章小结 这一章我们没有引入新的环境配置,完全基于上一章的运行环境,扩展了单图进阶、视频、批量图片三种核心推理方式,同时讲清楚了模型规格选择和新手必用参数。可以发现,YOLOv8的推理接口设计非常统一,无论输入源是图片、视频还是文件夹,核心代码结构完全不变,只需要修改source和少量配置参数。 现阶段不需要深入理解模型底层原理,先熟练掌握不同输入源的推理写法、参数调整,能稳定处理图片和视频,完成日常测试需求,就已经达到入门实战的标准。下一章我们会进入自定义数据的准备环节,学习使用标注工具制作自己的数据集,为训练专属检测模型做准备。 -
YOLOv8新手入门|半小时从0到1跑通目标检测 前言 最近想入门目标检测,选了YOLOv8——毕竟是现在最主流的版本,官方文档也算友好,但作为纯新手,光看文档还是踩了不少细节坑。今天把“从装环境到跑出第一个检测结果”的全过程拆解得明明白白,主打一个“新手跟着做就能成”,先不抠复杂理论,咱先把代码跑起来、看到效果再说。 ml1blk9f.png图片 一、环境搭建:新手别贪新,稳最重要 YOLOv8依赖Python和几个核心库,版本不对会踩大坑,我先把每一步的操作和验证方法写清楚,按步骤来绝对不出错。 1. 第一步:确认Python版本(重中之重) YOLOv8对Python版本有要求,太高的版本(比如3.11、3.12)会和依赖库不兼容,我亲测3.8、3.9、3.10这三个版本最稳,优先选3.9。 怎么查Python版本?打开电脑的终端(Windows叫命令提示符/PowerShell,Mac/Linux叫终端),输入: python --version # 或(部分电脑需要用python3) python3 --version回车后会显示版本号,比如“Python 3.9.18”就是合格的;如果显示3.11+,建议先装3.9版本(网上搜“Python3.9安装”,按系统步骤装就行,新手选“添加到PATH”,避免后续路径问题)。 2. 第二步:升级pip(避免安装库时出错) pip是Python装库的工具,旧版本容易装错包、出现兼容性问题,先升级到最新版: # Windows系统 python -m pip install --upgrade pip # Mac/Linux系统 python3 -m pip install --upgrade pipml1aj4tv.png图片 看到“Successfully upgraded pip”就说明升级成功了,耐心等几秒就行,过程很快。 3. 第三步:安装YOLOv8核心库ultralytics ultralytics是官方维护的YOLOv8库,不用复杂配置,一行命令就能安装: # Windows系统 pip install ultralytics # Mac/Linux系统 pip3 install ultralyticsml1aydce.png图片 安装过程中会自动下载依赖的库(比如numpy、opencv、pillow等),不用手动干预。看到“Successfully installed ultralytics-xxx”(xxx是版本号),就说明核心库装好了。 4. 第四步:安装PyTorch(最容易踩坑的一步) ultralytics必须依赖PyTorch才能运行,但直接用pip装可能会装到不匹配的版本,尤其是有显卡的同学,一定要按自己的系统和硬件选对命令,新手优先装CPU版,稳妥不出错。 先判断自己要不要装GPU版:如果你电脑是N卡(NVIDIA),且提前装了CUDA(新手如果没装CUDA,别折腾,先装CPU版,后续熟悉了再升级GPU);AMD显卡或没有独立显卡的,直接装CPU版即可。 安装命令(复制对应版本,粘贴到终端执行): ① CPU版(所有系统通用,新手首选): # Windows/Mac/Linux通用 pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpuml1azc1e.png图片 ② GPU版(仅NVIDIA显卡,需先装CUDA 11.8/12.1): 去PyTorch官网(https://pytorch.org/get-started/locally/),按提示选择系统、CUDA版本,复制生成的命令。比如Windows系统+CUDA 11.8,命令如下: pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118ml1azqvu.png图片 验证PyTorch是否装对(必做步骤):装完后,在终端输入python(或python3)进入Python交互模式,依次输入两行代码: import torch print(torch.cuda.is_available()) # 有GPU且装对会显示True,CPU版显示Falseml1b0u3d.png图片 如果没报错,就说明PyTorch装对了。输入exit()退出Python交互模式,进入下一步。 5. 最终验证:确认YOLOv8能正常导入 这一步能提前排查问题,避免后续写好代码白忙活。在终端输入python(或python3),输入: from ultralytics import YOLO print("YOLOv8环境搭建完成!")ml1b1s6y.png图片 没报错、能正常打印这句话,说明整个环境搭建完全没问题了,可以开始写代码跑demo了。 二、写6行代码,跑通第一个目标检测(全程不踩坑) 环境搭好,接下来就是最有成就感的环节——跑通第一个检测demo!我把代码逐行注释,新手照抄就行,连路径问题都帮你考虑到了。 1. 准备测试图片 ① 找一张包含常见物体的图片(比如有猫、狗、人、杯子、汽车的图),别用带中文的图片名,会报错,重命名为test.jpg; ② 把图片放在一个容易找到的文件夹里,比如Windows的“桌面/YOLO_test”,Mac的“文稿/YOLO_test”,后续代码和图片放同一文件夹,不用记复杂路径。 2. 编写核心代码(逐行解释,新手能懂) 打开记事本(Windows)或文本编辑(Mac),复制下面的代码,保存为detect_test.py(同样别用中文文件名),和test.jpg放在同一个文件夹里: # 1. 导入YOLO库(环境搭好才能正常导入,报错先查环境) from ultralytics import YOLO # 2. 加载YOLOv8预训练模型:选yolov8n(n代表nano,最轻量,运行最快,新手优先) # 第一次运行会自动下载yolov8n.pt模型文件,耐心等几秒(网络差可手动下载) model = YOLO('yolov8n.pt') # 3. 执行目标检测:传入图片路径,conf=0.25代表置信度(低于25%的目标不识别,避免误检) results = model('test.jpg', conf=0.25) # 4. 保存检测后的图片(自动画彩色框,标注目标名称和置信度) results[0].save('result.jpg') # 5. 打印检测结果:清晰显示识别到的目标和置信度 print("检测完成!以下是识别到的目标:") for box in results[0].boxes: # box.cls是目标类别编号,results[0].names是编号对应的类别名 class_name = results[0].names[int(box.cls)] # box.conf是置信度,保留两位小数,更易读 confidence = round(float(box.conf), 2) print(f"目标:{class_name},置信度:{confidence}")ml1bi7ts.png图片 有点不准(bushi) 3. 运行代码(两种方式,选一种就行) 方式1:终端运行(推荐,新手易排查问题) ① 打开终端,切换到图片和代码所在的文件夹: Windows系统(比如文件在桌面YOLO_test文件夹): cd Desktop/YOLO_testMac系统(比如文件在文稿YOLO_test文件夹): cd ~/Documents/YOLO_test② 输入运行命令,执行代码: # Windows系统 python detect_test.py # Mac/Linux系统 python3 detect_test.py方式2:用IDE运行(比如PyCharm、VS Code) ① 打开PyCharm/VS Code,导入存放代码和图片的文件夹; ② 右键点击detect_test.py文件,选择“Run”(运行),等待执行完成即可。 4. 查看检测结果(重点看这两个地方) ① 查看结果图片:文件夹里会多出result.jpg,打开后能看到图片上有彩色边框,边框旁标注了目标名称(比如cat、person、cup)和置信度,一目了然; ② 查看终端输出:终端会打印出识别到的目标和对应置信度,比如“目标:cat,置信度:0.92”,能清晰知道模型识别结果; 补充:如果没在文件夹根目录找到result.jpg,去runs/detect/predict目录找——这是YOLOv8默认的结果保存路径,第一次运行会自动生成这个文件夹,结果图一定在里面。 三、新手必看:我踩过的坑和解决方法 我第一次操作时,光环境搭建就耗了1小时,全是踩坑踩出来的经验,这几个坑新手大概率会遇到,提前记好解决方案: 1. 坑1:运行代码报“FileNotFoundError: test.jpg” 原因:图片路径错误,要么图片和代码不在同一文件夹,要么图片名写错(比如多打了空格、用了中文)。 解决:① 确认test.jpg和detect_test.py在同一文件夹;② 图片名必须是纯英文+后缀,无空格;③ 实在搞不定路径,就写绝对路径,比如Windows:model('C:/Users/你的用户名/Desktop/YOLO_test/test.jpg'),Mac:model('/Users/你的用户名/Documents/YOLO_test/test.jpg')。 2. 坑2:下载yolov8n.pt模型超时、失败 原因:网络问题,模型文件在国外服务器,国内网络下载容易卡顿超时。 解决:手动下载模型(网上搜“yolov8n.pt 官方下载”,从ultralytics官网或可信平台下载),把下载好的yolov8n.pt文件放到代码所在文件夹,代码会自动读取本地模型,不用再在线下载。 3. 坑3:导入YOLO时报“ImportError: Missing required dependencies ['torch']” 原因:PyTorch没装对,或版本不兼容,导致YOLO库无法调用。 解决:先卸载现有PyTorch,再重新安装。卸载命令:pip uninstall torch torchvision torchaudio,然后按前面的步骤重新装CPU版PyTorch,基本能解决。 4. 坑4:Mac运行报“OSError: dlopen(libtorch.dylib, 0x0006): Library not loaded” 原因:Mac系统Python环境混乱,库依赖路径不对。 解决:用Anaconda创建独立环境(新手搜“Anaconda安装教程”,很简单),创建Python3.9的环境后,在该环境下重新装ultralytics和PyTorch,就能避免路径冲突。 四、新手碎碎念 其实新手入门YOLOv8,最容易犯的错就是“追求新版本”“急于抠理论”——一开始我非要装Python3.12,结果各种兼容问题,换成3.9后瞬间顺畅;还总想着先搞懂“锚框”“特征提取”,越看越懵,反而打击积极性。 后来发现,先把代码跑起来、看到检测结果,有了成就感再回头补理论,效率会高很多。这篇教程主打“能跑就行”,把环境搭建、代码运行的每一步都拆碎,甚至把命令都写死,就是希望新手能少走弯路,快速get到目标检测的乐趣。 下一篇我会讲YOLOv8的拓展玩法——分割、姿态估计,其实就改一行代码的事,新手也能轻松上手,咱们下篇见。