ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

【YOLO 入门到精通 03】第一次预测:两条命令跑通 Hello YOLO

【YOLO 入门到精通 03】第一次预测:两条命令跑通 Hello YOLO 【YOLO 入门到精通 03】第一次预测两条命令跑通 Hello YOLO标签YOLO目标检测推理predictHello World难度⭐ 入门 |阅读时长约 45 分钟 |系列第 03/12 集前置02 环境安装 |下一集04 任务与模型写在前面环境配好了是时候见证「魔法」时刻——让 AI 在图片上自动框出人和车。本集你将完成第一次真正的目标检测从一条 CLI 命令到 Python API从结果解读到保存输出。完成后你将拥有第一张 YOLO 检测结果图。本集学习目标用 CLI 和 Python 两种方式完成预测理解yolo predict命令的参数含义读懂 Results 对象和 Boxes 属性保存、可视化检测结果文章目录【YOLO 入门到精通 03】第一次预测两条命令跑通 Hello YOLO写在前面本集学习目标3.1 官方推荐两条命令命令解剖运行流程3.2 CLI 命令详解语法常用预测命令核心参数表3.3 Python API 入门最简 3 行完整工作流多输入源支持3.4 理解预测结果Results 对象Boxes 属性速查可视化 4 种方式3.5 输出文件说明默认目录标签文件示例自定义输出3.6 实战练习练习 1批量检测 统计练习 2筛选特定类别练习 3实时摄像头3.7 踩坑指南3.8 常见问题 FAQ3.9 本集小结3.1 官方推荐两条命令# 1. 安装如已安装可跳过pipinstallultralytics# 2. 预测首次自动下载模型约 5MByolo predictmodelyolo26n.ptsourcehttps://ultralytics.com/images/bus.jpg命令解剖yolo predict modelyolo26n.pt source... │ │ │ │ │ │ │ └── 输入图片/视频/摄像头/URL │ │ └── 模型nnano 最小最快 │ └── 模式预测 └── CLI 入口运行流程输入图片yolo26n.ptYOLO CLI用户输入图片yolo26n.ptYOLO CLI用户yolo predict ...加载/下载模型读取图片前向推理检测框类别保存到 runs/detect/predict/3.2 CLI 命令详解语法yolo[TASK]MODE[ARGS]常用预测命令# 单张图片yolo predictmodelyolo26n.ptsourceimage.jpg# 整个目录yolo predictmodelyolo26n.ptsourceimages/# 视频yolo predictmodelyolo26n.ptsourcevideo.mp4# 摄像头0默认yolo predictmodelyolo26n.ptsource0showTrue# 网络图片yolo predictmodelyolo26n.ptsourcehttps://ultralytics.com/images/bus.jpg# 保存显示调置信度yolo predictmodelyolo26n.ptsourceimage.jpgsaveTrueshowTrueconf0.5# 自定义输出目录yolo predictmodelyolo26n.ptsourceimage.jpgprojectmy_resultsnameexp1核心参数表参数默认说明调优建议model-模型路径新手用yolo26n.ptsource-输入源支持路径/URL/0conf0.25置信度阈值误检多→调高漏检多→调低iou0.7NMS IoU 阈值重复框多→调低imgsz640输入尺寸小目标→增大saveFalse保存结果图建议 Truedeviceauto设备0GPU,cpuCPU3.3 Python API 入门最简 3 行fromultralyticsimportYOLO modelYOLO(yolo26n.pt)resultsmodel(https://ultralytics.com/images/bus.jpg)results[0].show()完整工作流fromultralyticsimportYOLO modelYOLO(yolo26n.pt)resultsmodel.predict(sourcebus.jpg,conf0.25,iou0.7,imgsz640,saveTrue,device0,# GPU无 GPU 用 cpu)forresultinresults:forboxinresult.boxes:cls_idint(box.cls[0])conffloat(box.conf[0])xyxybox.xyxy[0].tolist()print(f{model.names[cls_id]}:{conf:.2f}{xyxy})多输入源支持fromultralyticsimportYOLOfromPILimportImageimportcv2 modelYOLO(yolo26n.pt)model(image.jpg)# 路径model(images/)# 目录model(video.mp4)# 视频model(https://ultralytics.com/images/bus.jpg)# URLmodel(Image.open(bus.jpg))# PILmodel(cv2.imread(bus.jpg))# OpenCV ndarraymodel(source0,streamTrue)# 摄像头model([a.jpg,b.jpg,c.jpg])# 列表3.4 理解预测结果Results 对象resultresults[0]result.orig_img# 原图 numpy 数组result.orig_shape# (高, 宽)result.path# 文件路径result.boxes# 检测框Detection 任务result.masks# 掩码Segmentationresult.keypoints# 关键点Poseresult.speed# {preprocess:.., inference:.., postprocess:..}Boxes 属性速查属性格式说明boxes.xyxy[x1,y1,x2,y2]左上右下像素坐标boxes.xywh[x,y,w,h]中心宽高boxes.xyxyn0~1 归一化相对原图比例boxes.conffloat置信度boxes.clsint类别 ID可视化 4 种方式result.show()# 弹窗显示result.save(filenameout.jpg)# 保存标注图annotatedresult.plot()# 返回 BGR numpycv2.imwrite(out.jpg,annotated)# 自行保存3.5 输出文件说明默认目录runs/detect/predict/ # 第2次运行为 predict2 ├── bus.jpg # 带标注的结果图 └── labels/ # save_txtTrue 时 └── bus.txt # YOLO 格式标签标签文件示例0 0.512 0.423 0.156 0.312 # person 2 0.734 0.561 0.289 0.198 # car自定义输出resultsmodel.predict(sourcebus.jpg,projectmy_project,nameexp1,exist_okTrue,saveTrue,save_txtTrue,save_confTrue,# 标签含置信度save_cropTrue,# 裁剪每个目标)# → my_project/exp1/3.6 实战练习练习 1批量检测 统计fromultralyticsimportYOLOfrompathlibimportPathfromcollectionsimportCounter modelYOLO(yolo26n.pt)resultsmodel.predict(sourceimages/,saveTrue,conf0.3)counterCounter()forrinresults:forboxinr.boxes:counter[model.names[int(box.cls[0])]]1print(检测统计:,dict(counter))练习 2筛选特定类别resultsmodel.predict(sourcestreet.jpg,classes[0,2])# person, car练习 3实时摄像头resultsmodel.predict(source0,streamTrue,showTrue)forrinresults:n_personsum(1forbinr.boxesifint(b.cls[0])0)ifn_person:print(f检测到{n_person}人)3.7 踩坑指南坑原因解决结果保存在哪找不到默认runs/detect/predict加project自定义路径showTrue无窗口无 GUI 环境用saveTrue保存后查看检测不到小目标imgsz 太小增大imgsz1280误检太多conf 太低提高conf0.5摄像头打不开索引错误试source0,1,2中文路径报错OpenCV 编码用英文路径或 Python 读取后传入3.8 常见问题 FAQQ1model()和model.predict()区别A等价。model(source)是model.predict(source)的简写。Q2第一次运行很慢A正常。需下载模型权重约 5MB并初始化后续会快很多。Q3能用自己训练的模型吗A能。modelruns/detect/train/weights/best.pt。Q4支持哪些图片格式AJPG、PNG、BMP、TIFF、WebP 等常见格式均支持。3.9 本集小结操作CLIPython预测yolo predict source...model(img.jpg)调置信度conf0.5model.predict(conf0.5)保存saveTruemodel.predict(saveTrue)取坐标看 labels/result.boxes.xyxy← 第02集第04集任务与模型 →
返回列表