HomeObjects-3K 数据集实战指南:用 YOLO26 训练室内家居物体检测模型
HomeObjects-3K 是 Ultralytics 官方发布的室内物体检测数据集:2,689 张室内图像(2,285 张训练 / 404 张验证),覆盖床、沙发、电视、笔记本电脑等 12 类常见家居物品。本文基于仓库中的 HomeObjects-3K 数据集文档 与 数据集配置文件,讲解数据集的构成、YOLO 标注格式、HomeObjects-3K.yaml 的每个字段含义、首次训练时数据集自动下载的底层机制,以及如何用一条 Python 或 CLI 命令完成 YOLO26 模型的训练。读完本文,你可以直接在本仓库内找到该数据集的完整配置、复现训练流程,并理解从数据校验到自动下载解压的完整调用链。
数据集概览
HomeObjects-3K 面向室内场景理解,标注的是日常家居环境中高频出现的物体,目标场景包括智能家居、机器人导航、增强现实(AR)以及学术研究与教学。与 COCO 等大规模综合数据集不同,它的定位是:
- 领域聚焦:全部为室内家居场景(bedroom、living room 一类环境中的床、沙发、桌椅、灯具、电视、衣柜等);
- 规模适中:390 MB 左右、2,689 张图,首次使用时自动下载,适合在消费级硬件上快速跑通"训练—验证—导出"全流程;
- 开箱即用:标注已采用 Ultralytics YOLO 格式,可直接用于 物体检测 与 跟踪 管线,无需格式转换。
数据划分
数据集预定义为两个子集,由 HomeObjects-3K.yaml 配置声明:
| Split | 图像数 | 说明 |
|---|---|---|
| Train | 2,285 | 含标注家居物体的室内场景,用于训练 |
| Validation | 404 | 留出集,用于评估模型性能 |
注意:没有单独的 test 划分,验证集同时承担"评估"角色。这意味着若需严谨的泛化结论,建议在验证集之外自行保留少量图像做二次检查,或使用仓库文档中的 K 折交叉验证 方式评估。
12 个目标类别
数据集覆盖家具、电器、装饰三类家居物品,类别与标签 ID 的对应关系在 HomeObjects-3K.yaml 的 names 字段中定义:
| ID | 类别 | 所属分组 |
|---|---|---|
| 0 | bed(床) | 家具 |
| 1 | sofa(沙发) | 家具 |
| 2 | chair(椅子) | 家具 |
| 3 | table(桌子) | 家具 |
| 4 | lamp(灯) | 家居用品 |
| 5 | tv(电视) | 电器 |
| 6 | laptop(笔记本电脑) | 电器 |
| 7 | wardrobe(衣柜) | 家具 |
| 8 | window(窗户) | 建筑结构 |
| 9 | door(门) | 建筑结构 |
| 10 | potted plant(盆栽) | 装饰 |
| 11 | photo frame(相框) | 装饰 |
选类逻辑是"现实室内环境中最常遇到的物体":床、沙发、椅子、桌子、灯、电视、笔记本、衣柜、窗、门、盆栽、相框——这 12 类同时支撑机器人导航(门、窗、家具布局)、AR 场景叠加(电视、衣柜上叠加信息)等下游任务。
数据集 YAML 配置详解
数据集的全部配置集中在仓库内的 ultralytics/cfg/datasets/HomeObjects-3K.yaml,这是官方维护的权威版本:
# Ultralytics AGPL-3.0 License
# HomeObjects-3K dataset by Ultralytics
# Example usage: yolo train data=HomeObjects-3K.yaml
# parent
# ├── ultralytics
# └── datasets
# └── homeobjects-3K ← downloads here (390 MB)
# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list
path: homeobjects-3K # dataset root dir
train: images/train # train images (relative to 'path') 2285 images
val: images/val # val images (relative to 'path') 404 images
# Classes
names:
0: bed
1: sofa
2: chair
3: table
4: lamp
5: tv
6: laptop
7: wardrobe
8: window
9: door
10: potted plant
11: photo frame
# Download script/URL (optional)
download: https://github.com/ultralytics/assets/releases/download/v0.0.0/homeobjects-3K.zip
各字段的作用(结合仓库源码行为说明):
path:数据集根目录名。下载后解压目录名为homeobjects-3K,train/val均相对于它解析。train/val:训练/验证图像目录。检测数据集的 YAML 必须同时包含这两个键——源码中 check_det_dataset 会显式校验,缺失train或val时直接抛出SyntaxError('train' and 'val' are required in all data YAMLs);若写成validation会自动重命名为val并告警。names:类别ID: 类别名映射。源码同样要求names(或整数nc)必须存在,二者同时出现时长度必须一致,且nc会自动推导为len(names),即本数据集的 12。download:可选字段。当本地找不到验证集图像时,框架检测到该字段以http开头且以.zip结尾,就会走自动下载路径(见下节)。
自动下载机制:源码级剖析
文档承诺"数据集在首次使用时自动下载",这一行为的实现链路在仓库中清晰可查:
- 解析数据集文件名。当你传入
data="HomeObjects-3K.yaml"时,check_det_dataset 先经 check_file 解析:若文件不在本地且不是 URL,会执行递归 glob 搜索(ROOT / "**" / file)在本仓库中定位ultralytics/cfg/datasets/HomeObjects-3K.yaml,因此你甚至不需要写完整路径,直接给文件名即可。 - 校验 YAML 结构:检查
train/val/names等键的类型与存在性,并推断类别数nc。 - 解析路径:
path若不存在且非绝对路径,会被拼接到全局数据集目录DATASETS_DIR(定义于 ultralytics/utils/init.py,默认为系统 datasets 目录,可通过 settings 中的datasets_dir修改)。 - 触发下载:当
val指向的图像目录不存在、且 YAML 中有download字段时,调用safe_download(url=s, dir=DATASETS_DIR, delete=True)下载 zip 并解压到DATASETS_DIR,完成后打印success ✅ (耗时s), saved to <DATASETS_DIR>。下载脚本还支持bash <cmd>与内联 Python 脚本两种形式。
从源码结构看,这套机制对所有 Ultralytics 数据集 YAML 通用——HomeObjects-3K 只是提供了标准的 zip 下载 URL,因此"首次训练即自动拉取数据、解压到 datasets 目录"无需任何手动步骤,这也是它适合初学者入门的关键原因。
快速开始:训练 YOLO26
以 YOLO26n(yolo26.yaml 定义的网络)在 HomeObjects-3K 上训练 100 个 epoch、图像尺寸 640 为例:
Python
from ultralytics import YOLO
# 加载预训练模型
model = YOLO("yolo26n.pt")
# 在 HomeObjects-3K 数据集上训练
model.train(data="HomeObjects-3K.yaml", epochs=100, imgsz=640)
CLI
yolo detect train data=HomeObjects-3K.yaml model=yolo26n.pt epochs=100 imgsz=640
关键参数说明:
| 参数 | 示例值 | 说明 |
|---|---|---|
data |
HomeObjects-3K.yaml |
数据集 YAML;可写文件名(仓库内自动定位)或本地完整路径 |
model / 构造函数 |
yolo26n.pt |
检测预训练权重;n/s/m/l/x 等规模可选 |
epochs |
100 |
训练轮数;390 MB 规模的数据在单卡 GPU 上通常数小时到一天量级,可按早停情况调整 |
imgsz |
640 |
训练输入边长;该数据集以室内中景为主,640 是平衡精度与显存的默认起点 |
更多训练参数(batch、patience、数据增强、设备选择等)可参考 Training 指南。训练完成后,典型后续步骤包括:
- 验证:
model.val(data="HomeObjects-3K.yaml"),在 404 张验证集上查看 mAP 等指标; - 基准测试:对比不同模型规模或导出格式的性能,见 Benchmark 指南;
- 导出部署:将最优权重导出为 ONNX / TensorRT 等格式用于端侧实时推理(原数据集文档配套视频演示了 Detection、Validation 与 ONNX Export 的完整流程);
- 跟踪:在同一数据集训练出的检测器上挂接多目标跟踪,见 Track 指南。
典型应用场景
HomeObjects-3K 面向的下游应用(继承自官方文档):
- 室内物体检测:用 YOLO26 等模型在图像中实时定位床、椅子、灯、笔记本电脑等家居物品,实现室内场景的实时理解;
- 场景布局解析:帮助机器人与智能家居系统理解房间结构——门、窗、家具的相对位置——从而安全导航并与环境交互;
- AR 应用:为增强现实 App 提供物体识别能力,例如检测电视、衣柜后在其上叠加附加信息或特效;
- 教育与科研:作为现成数据集,供学生和研究人员以真实室内样本练习物体检测全流程;
- 家庭资产盘点:自动检测并列出照片/视频中的家居物品,可用于物品管理、空间整理或房产展示中的家具可视化。
许可证与引用
HomeObjects-3K 由 Ultralytics 团队开发并发布,采用 AGPL-3.0 许可证(见仓库根目录 LICENSE),支持在保留署名与遵守许可证条款的前提下用于开源研究与商业场景。若在研究中使用本数据集,建议按以下信息引用:
@dataset{Jocher_Ultralytics_Datasets_2025,
author = {Jocher, Glenn and Rizwan, Muhammad},
license = {AGPL-3.0},
month = {May},
title = {Ultralytics Datasets: HomeObjects-3K Detection Dataset},
version = {1.0.0},
year = {2025}
}
常见问题(FAQ)
Q1:HomeObjects-3K 是做什么用的? 用于在室内场景中检测日常家居物品(床、沙发、电视、灯等),适配智能家居、机器人、AR 与室内监控系统,既可用于实时端侧部署,也适合学术研究。
Q2:数据集有多少图像和类别? 共 2,689 张图像——2,285 张训练、404 张验证,无独立 test 划分;每张图像均按 12 个类别标注(bed、sofa、chair、table、lamp、tv、laptop、wardrobe、window、door、potted plant、photo frame)。
Q3:为什么选择这 12 个类别? 它们是最常出现的家居物品集合,旨在还原真实室内环境,并支撑机器人导航、AR/VR 场景理解等任务。
Q4:如何下载数据集?
无需手动操作。首次使用 data="HomeObjects-3K.yaml" 训练时(390 MB),框架会自动拉取图像与标注并解压到本地 datasets 目录;更多检测数据集可浏览 检测数据集总览。
Q5:如何用它训练 YOLO 模型?
准备 HomeObjects-3K.yaml 配置与预训练权重(如 YOLO26 / 模型总览),然后用上文的一条 Python 或 CLI 命令启动训练,并按需调整 epochs、imgsz、batch 等参数。
Q6:适合初学者吗? 适合。标准化的 YOLO 格式标注加上紧凑的数据规模,使它成为学生与爱好者入门真实室内物体检测的良好起点。
Q7:标注格式与 YAML 在哪里看?
标注为标准 YOLO 边界框格式(class cx cy w h,归一化坐标),与大多数检测管线兼容;配置见前文 Dataset YAML 一节。
小结
HomeObjects-3K 的价值在于"小而全":一份仓库内可直接引用的 YAML 配置、12 类室内家居标注、自动下载与标准训练入口,构成了从数据到模型的最低摩擦路径。对需要在室内场景做物体检测、机器人布局理解或 AR 叠加的开发者,它是快速验证方案可行性、再扩展到自有标注数据(或更大规模数据集)的合适跳板。
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0623
Hy4-previewHy4 preview 是由腾讯混元团队研发的新一代混合专家(MoE)旗舰模型。模型总参数量 770B,每个 token 激活 49B,主干共包含78层,第一层采用标准 FFN,其余 77 层均为 MoE 结构,每层包含 256 个路由专家与 1 个共享专家,每个 token 激活 top-8 路由专家及共享专家。主干之外原生内置 1 层 MTP(总参数量 10B,激活 0.7B)以支持投机解码。Python00
GLM-5.3GLM-5.3 与 GLM-5.2 使用相同的基座模型——所有提升均来自后训练。与 GLM-5.2 相比,它在复杂编程和长程任务上的表现显著提升。Jinja00
GLM-5.3-FlashGLM-5.3-Flash (320B-A18B),是GLM-5系列的首个原生多模态模型。320B总参数,能力超过GLM-5.2Jinja00
Spark-X2.5-4BSpark-X2.5-4B 旨在让强大的 AI 更实用、更高效、更易获得。在广泛日常任务中表现强劲,涵盖对话、写作、翻译、推理、编码、工具调用以及智能体工作流,并在同等规模的开源模型中取得领先成绩。Spark-X2.5 将面向效率的架构与最高 1M tokens 的原生上下文窗口相结合,并支持 200 多种语言。Python00
Spark-X2.5-1.7BSpark-X2.5-1.7B 旨在让强大的 AI 更加实用、高效且易于获取。这些模型在广泛的日常任务中表现出色,涵盖对话、写作、翻译、推理、编程、工具调用和智能体工作流,并在同等规模的开源模型中取得领先结果。Spark-X2.5 将面向效率的架构与最高 1M tokens 的原生上下文窗口相结合,并支持 200 多种语言。Python00