尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

室内场景目标检测实战:从数据集解析到YOLOv8模型部署

室内场景目标检测实战:从数据集解析到YOLOv8模型部署 简介本资源是面向计算机视觉初学者与工业落地开发者的室内场景目标检测专用数据集聚焦智能家居、服务机器人导航及零售行为分析等实际应用解决室内多类别物体含人的精准识别与定位问题。压缩包共1700个文件包含849张JPEG格式室内实景图像、对应YOLO格式的TXT标注文件含6类边界框坐标与类别标签、统一类别定义的data.yaml配置文件以及详细说明文档DOCX整体体积56.17MB结构规范、开箱即用。已有32人学习下载适用于YOLOv5/v8/v10等主流框架的端到端训练与评估。用户可直接加载训练集开展模型训练利用验证集调参、测试集量化性能并参考文档理解标注逻辑与场景分布特点所有图像均来自真实室内环境涵盖长椅、椅子、沙发、餐桌、笔记本电脑和人六类目标标注精度高、分割合理支持目标检测任务快速验证与算法迭代。1. 项目概述一份聚焦室内场景的实用检测数据集最近在整理硬盘时翻出了一个名为“室内家具与人目标检测数据集_20251116_143557.zip”的文件包。作为一名长期在计算机视觉领域特别是目标检测方向摸爬滚打的从业者我深知一份高质量、场景特定的数据集对于项目成败有多关键。市面上通用数据集如COCO、VOC虽然全面但当我们把模型部署到具体场景比如智能家居、服务机器人导航、安防监控或者AR/VR应用时往往会发现“水土不服”——模型在办公室拍的照片上表现优异一进到光线复杂、家具摆放各异的真实家庭环境准确率就可能直线下降。这份数据集恰恰瞄准了这个痛点它专注于室内环境下的家具与人员检测。简单来说这个数据包就是为了训练一个能“看懂”室内环境的AI模型而准备的“教材”。模型通过学习这份教材就能在图像或视频流中准确地框出即检测出哪里是沙发、椅子、桌子、床以及哪里有人可能是全身、半身或特定部位。这对于实现机器人自主避障、智能家居的“人在哪灯亮哪”、或者老人跌倒检测等应用是至关重要的第一步。无论你是刚入门目标检测的新手想找一个有明确应用场景的练手项目还是正在为某个室内AI产品寻找适配数据的老手这份数据集都提供了一个非常不错的起点。接下来我将结合自己处理类似数据的经验为你深度拆解这个数据集可能包含的内容、如何使用它以及在整个过程中你会遇到哪些坑、该如何避开。2. 数据集核心价值与应用场景解析2.1 为什么需要“室内专属”数据集目标检测模型的泛化能力并非无限。一个在街景数据上训练的模型识别汽车、行人很拿手但让它去分辨客厅里的“单人沙发”和“双人沙发”或者判断一个人是“坐在餐桌旁”还是“躺在沙发上”很可能就力不从心了。这背后的原因在于“域差异”Domain Gap。室内场景具有其独特的挑战光照条件复杂多变同一间屋子清晨的侧光、中午的顶光、夜晚的暖色灯光以及窗帘半开时的混合光都会让物体的颜色、对比度和阴影发生巨大变化。数据集如果缺乏这种多样性模型就容易过拟合到某种特定光照下。遮挡与截断频繁室内空间相对紧凑家具常常相互遮挡椅子在桌子下面人也经常被家具部分遮挡只露出上半身。人员目标也常以非完整形态出现比如坐在沙发上只看到腿和躯干。通用数据集可能包含的完整人体样本较多对这种重度遮挡情况的覆盖不足。类内差异大“椅子”这一类可能包含办公转椅、木质餐椅、吧台椅、休闲躺椅它们的形状、颜色、材质天差地别。更不用说“桌子”有书桌、茶几、餐桌之分。视角相对固定但多样室内拍摄视角通常为平视或略微俯视与自动驾驶的街景视角、无人机的航拍视角截然不同。但即便如此从房间一角拍摄和从正中央拍摄物体的外观也会不同。因此一个专门针对室内场景采集和标注的数据集能有效缩小域差异让模型更快速、更精准地适应真实室内应用环境。从你提供的文件名和网络热词来看这份数据很可能就是为了训练如YOLOv5/v8、SSD或Faster R-CNN等主流目标检测模型而准备的。2.2 核心应用场景展望基于“家具”与“人”这两个核心类别我们可以延伸出许多有价值的应用服务机器人导航与交互机器人需要识别沙发、桌椅以规划路径、避免碰撞同时检测人的位置和姿态以实现“跟随主人”、“递送物品到人面前”或“在有人时主动避让”等智能行为。智能家居与空间管理通过摄像头判断房间内是否有人、人在哪个区域从而自动控制灯光、空调。进一步可以分析人的活动如坐在沙发上可能在看电视联动娱乐系统。也可以统计家具利用率为空间优化提供数据。养老监护与安全预警检测老人是否长时间滞留于某处如卫生间或出现异常姿态如跌倒在地上而非床上、沙发上及时发出警报。这要求数据集不仅包含“人”的框可能还需要更细粒度的姿态信息。AR/VR与室内数字化快速检测并识别室内家具是构建三维室内地图或实现AR家具摆放、虚拟装修的第一步。模型自动标出家具位置和类别能极大减少手动建模的工作量。零售与仓储分析在家具卖场或仓库中监控货架家具上的商品摆放情况以及顾客/工作人员在哪些区域停留用于客流分析和库存管理。这份数据集的文件名带有精确的时间戳20251116_143557这很符合项目迭代或数据分批采集时的命名习惯暗示它可能是某个更大规模数据采集计划中的一部分或者是一个特定版本的数据快照。3. 数据集内容深度拆解与预处理实战拿到一个名为“.zip”的数据集第一步不是急着解压训练而是系统地“验货”。根据经验一个规范的目标检测数据集在解压后通常会包含以下目录结构我们可以据此进行推测和检查室内家具与人目标检测数据集/ ├── images/ │ ├── train/ │ ├── val/ │ └── test/ ├── labels/ │ ├── train/ │ ├── val/ │ └── test/ ├── classes.txt 或 data.yaml └── 可能还有README.txt, annotations.json (COCO格式)3.1 文件结构探查与格式判断首先解压压缩包。我会使用命令行这样能快速查看结构unzip -q 室内家具与人目标检测数据集_20251116_143557.zip -d indoor_dataset cd indoor_dataset tree -L 3 # 查看三层目录结构可能遇到的情况与应对标准YOLO格式如果看到images/train/,labels/train/且一一对应labels下的文件是.txt格式每行内容如0 0.5 0.5 0.2 0.3类别id中心x中心y宽度w高度h均归一化那么这就是为YOLO系列算法准备的。你需要找到data.yaml文件它定义了路径和类别名称。COCO格式可能只有一个annotations文件夹里面存放着巨大的instances_train2017.json这样的文件图片在train2017文件夹。COCO格式是另一种主流格式信息集中但文件大。VOC格式可能有JPEGImages文件夹和Annotations文件夹后者是XML文件。这种格式也比较常见。自定义格式也可能图片和标注文件混在一起或者有独特的结构。这时一个README.txt文件就至关重要。实操心得在解压后我做的第一件事永远是先找说明文档README、.txt文件其次是看有没有配置文件如.yaml, .json。如果没有就通过查看少量标注文件的内容和格式来推断。用Python快速读几个文件头是最高效的方法。3.2 数据质量分析“四步法”假设我们推断它是YOLO格式并且找到了data.yaml。接下来我们需要对数据质量进行量化评估。我写了一个简单的Python脚本来完成这个工作以下是核心步骤和关注点import os import yaml from collections import Counter, defaultdict import cv2 import numpy as np # 1. 加载配置 with open(data.yaml, r, encodingutf-8) as f: data yaml.safe_load(f) class_names data[names] print(f数据集类别: {class_names}) # 2. 统计基础信息 label_counts Counter() image_sizes [] for split in [train, val]: label_dir flabels/{split} img_dir fimages/{split} label_files [f for f in os.listdir(label_dir) if f.endswith(.txt)] for l_file in label_files[:500]: # 抽样检查避免全部加载耗时 img_file l_file.replace(.txt, .jpg) # 假设图片是jpg img_path os.path.join(img_dir, img_file) # 检查图片是否存在且可读 img cv2.imread(img_path) if img is None: print(f警告: 图片 {img_path} 无法读取) continue h, w, _ img.shape image_sizes.append((w, h)) # 解析标注文件 with open(os.path.join(label_dir, l_file), r) as f: lines f.readlines() for line in lines: parts line.strip().split() if len(parts) 5: # YOLO格式 cls_id int(parts[0]) label_counts[cls_id] 1 print(f各类别标注框数量: { {class_names[k]: v for k, v in label_counts.items()} }) print(f图片平均尺寸: {np.mean(image_sizes, axis0)})需要重点关注的质量指标类别均衡性检查“人”和各类“家具”的标注框数量是否悬殊。如果“椅子”有1万个框“床”只有200个那么模型学“床”就会很吃力。严重不均衡时需要考虑过采样或数据增强。标注完整性是否存在大量“空标签”文件即.txt文件内容为空这可能是背景图需要确认其用途。同时检查是否有图片没有对应的标签文件反之亦然。图片尺寸与一致性统计所有图片的宽高。如果尺寸差异巨大如从640x480到4K图片混在一起在训练前需要统一缩放到一个固定尺寸如640x640否则会影响批次训练和模型效果。标注框尺寸分布计算标注框的宽高归一化前的像素值。这对于设置目标检测模型的Anchor锚框尺寸至关重要。如果数据集中存在很多小目标如远处的人脸、小摆件而你的Anchor是针对大目标设计的那么小目标的检测性能会很差。3.3 数据可视化与清洗“看一眼”数据比任何统计都直观。我会随机抽取几十张图片并将标注框画上去查看。import random import matplotlib.pyplot as plt def plot_sample(img_dir, label_dir, class_names, num_samples9): label_files os.listdir(label_dir) selected random.sample(label_files, num_samples) fig, axes plt.subplots(3, 3, figsize(15, 15)) axes axes.ravel() for idx, l_file in enumerate(selected): img_file l_file.replace(.txt, .jpg) img_path os.path.join(img_dir, img_file) img cv2.imread(img_path) img cv2.cvtColor(img, cv2.COLOR_BGR2RGB) # OpenCV是BGR转成RGB h, w, _ img.shape with open(os.path.join(label_dir, l_file), r) as f: for line in f: cls_id, x_c, y_c, bw, bh map(float, line.split()) # 将归一化坐标转回像素坐标 x1 int((x_c - bw/2) * w) y1 int((y_c - bh/2) * h) x2 int((x_c bw/2) * w) y2 int((y_c bh/2) * h) cv2.rectangle(img, (x1, y1), (x2, y2), (255, 0, 0), 2) cv2.putText(img, class_names[int(cls_id)], (x1, y1-5), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (255, 0, 0), 1) axes[idx].imshow(img) axes[idx].axis(off) plt.tight_layout() plt.show() # 分别查看训练集和验证集 plot_sample(images/train, labels/train, class_names) plot_sample(images/val, labels/val, class_names)可视化时重点检查标注框是否准确框是否紧密贴合物体边缘有没有框到错误物体如把台灯框成“人”遮挡处理对于被部分遮挡的人和家具标注框是覆盖整个物体可能包含遮挡物还是仅覆盖可见部分这需要数据集的标注规范保持一致。小目标是否存在像素面积很小的“人”比如在房间远景中框是否还能清晰可见标签错误明显的分类错误比如把“沙发”标成了“床”。发现问题的处理策略少量错误如果错误样本很少1%对于大型数据集直接剔除这些样本对整体影响不大是最快的方法。类别不均衡对少样本类别使用数据增强如随机旋转、裁剪、色彩抖动专门增强或者在损失函数中使用Focal Loss来降低多数类的权重。尺寸不一致在数据加载管道Dataloader中统一进行Resize操作。注意为了保持宽高比通常采用“Letterbox”方式即缩放后填充灰边而不是直接拉伸变形。4. 基于YOLOv8的模型训练实战与调优假设我们的数据集是YOLO格式并且质量过关。接下来我将以目前非常流行且易用的YOLOv8为例展示完整的训练流程和调优技巧。我选择YOLOv8是因为它平衡了速度、精度和易用性非常适合从原型到部署的全流程。4.1 环境配置与项目初始化首先确保你的环境有PyTorch和CUDA如果有GPU。然后安装Ultralytics包pip install ultralytics创建一个清晰的项目目录my_indoor_detection_project/ ├── data/ │ └── indoor_furniture_person/ # 这里放置我们解压并整理好的数据集 │ ├── images/ │ │ ├── train/ │ │ └── val/ │ ├── labels/ │ │ ├── train/ │ │ └── val/ │ └── data.yaml # 关键配置文件 ├── runs/ # 训练日志和权重会默认生成在这里 └── train.py # 我们的训练脚本关键一步配置data.yaml这个文件是数据集的核心描述内容大致如下# data.yaml path: ../data/indoor_furniture_person # 数据集根目录 train: images/train # 训练集图片相对路径 val: images/val # 验证集图片相对路径 # 类别数量 nc: 8 # 假设我们有8个类别person, chair, sofa, table, bed, cabinet, tv, lamp # 类别名称列表 names: [person, chair, sofa, table, bed, cabinet, tv, lamp]注意path可以是绝对路径也可以是相对于训练脚本位置的相对路径。确保路径正确是避免“找不到图片”错误的第一步。4.2 模型训练与核心参数解析一个基础的训练命令如下yolo taskdetect modetrain modelyolov8n.pt datadata/indoor_furniture_person/data.yaml epochs100 imgsz640 batch16 workers4让我们拆解这些参数并讨论如何根据你的数据集进行调整modelyolov8n.pt: 选择模型尺寸。YOLOv8提供了从nnano、ssmall、mmedium、llarge到xextra large的版本。选择建议对于室内检测目标通常不会特别小除非是远景且对实时性可能有要求如机器人。可以从yolov8s或yolov8m开始它们在精度和速度上取得了较好的平衡。如果部署在算力有限的边缘设备如Jetson Nano则考虑yolov8n。epochs100: 训练轮数。这不是固定值你需要观察验证集损失val/loss和指标如mAP50-95的变化。当这些指标在连续10-20个epoch内不再显著提升甚至下降时就可以提前停止避免过拟合。100是一个常见的起点。imgsz640: 输入图片的尺寸。这是最重要的参数之一。它需要与数据预处理时的分析相结合。如果你的原始图片平均尺寸是1920x1080直接缩放到640会丢失大量细节可能不利于小目标检测。可以尝试imgsz1280但会显著增加显存消耗和训练时间。一个折中的办法是使用多尺度训练--multi-scale参数让模型适应不同尺寸。batch16: 批次大小。取决于你的GPU显存。在显存允许的情况下较大的批次如32、64通常能使训练更稳定收敛更快。如果出现“CUDA out of memory”错误就减小batch或imgsz。workers4: 数据加载的进程数。用于加速数据从磁盘到GPU的流水线。通常设置为CPU核心数的2-4倍。设置太高可能导致内存不足。进阶训练策略 为了获得更好的性能我通常会使用更复杂的配置写在一个Python脚本中from ultralytics import YOLO # 加载一个预训练模型 model YOLO(yolov8m.pt) # 使用中等尺寸模型 # 开始训练 results model.train( datadata/indoor_furniture_person/data.yaml, epochs150, imgsz640, batch32, workers8, optimizerAdamW, # 可以尝试AdamW有时比默认的SGD效果更好 lr00.001, # 初始学习率如果从头训练不使用预训练权重可以设大点如0.01 lrf0.01, # 最终学习率因子 lr0 * lrf momentum0.937, weight_decay0.0005, warmup_epochs3.0, # 学习率热身有助于训练初期稳定 box7.5, # 框损失权重 cls0.5, # 分类损失权重如果分类任务难可以适当调高 dfl1.5, # DFL损失权重 hsv_h0.015, # 色相增强幅度 hsv_s0.7, # 饱和度增强幅度 hsv_v0.4, # 明度增强幅度 degrees10.0, # 随机旋转角度 translate0.1, # 随机平移幅度 scale0.5, # 随机缩放幅度 shear2.0, # 随机剪切幅度 perspective0.0, # 透视变换室内场景一般不变形太大可以设为0或很小 flipud0.0, # 上下翻转概率室内场景上下翻转可能不合理建议0 fliplr0.5, # 左右翻转概率室内场景左右通常对称可以用0.5 mosaic1.0, # Mosaic数据增强概率YOLO的利器默认1.0 mixup0.0, # MixUp增强概率对于检测任务mixup有时会引入噪声可先设为0 copy_paste0.0, # 复制粘贴增强对小目标数据集有用室内家具人检测可能用处不大 resumeFalse, # 是否从上次中断的检查点恢复 device0, # 使用GPU 0如果是多卡可以写 device[0,1] seed42, # 固定随机种子确保实验可复现 pretrainedTrue, # 使用预训练权重这是提升速度和性能的关键 verboseTrue, # 打印详细信息 projectruns/train, # 输出目录 nameexp1_indoor_v8m # 实验名称 )4.3 训练过程监控与评估训练开始后Ultralytics会启动一个本地Web服务器通常地址是http://localhost:XXXX。打开这个地址你可以看到一个非常直观的仪表盘包含损失曲线关注train/box_loss,train/cls_loss,val/box_loss,val/cls_loss。理想情况是训练损失稳步下降验证损失也同步下降最后趋于平稳。如果验证损失开始上升而训练损失继续下降就是过拟合的迹象。性能指标最重要的是mAP50-95 (mean Average Precision)这是COCO竞赛的标准指标计算了IoU阈值从0.5到0.95步长0.05的平均精度。mAP50是IoU阈值为0.5时的精度通常更高。你应该主要看metrics/mAP50-95(B)在验证集上的变化。混淆矩阵训练结束后会生成。它能清晰显示模型最容易混淆哪些类别。比如可能把“单人沙发”和“椅子”搞混或者把“柜子”和“桌子”搞混。这为你后续的数据清洗或类别合并提供了直接依据。PR曲线精确率-召回率曲线曲线下的面积就是AP。可以查看每个类别的PR曲线了解哪些类别检测得好哪些不好。我的经验是在训练中期约1/3到1/2的epochs如果验证集mAP长时间停滞不前可以考虑降低学习率使用model.train(resumeTrue, lr0新的小学习率)的方式继续训练或者检查数据质量是不是某些类别的样本太难或标签有问题。过早地停止训练可能会错过模型后期收敛的机会。5. 模型优化、部署与常见问题排坑指南训练出一个模型只是第一步让它在实际场景中稳定、高效地运行才是真正的挑战。5.1 模型导出与优化训练完成后最佳模型权重通常保存在runs/train/exp/weights/best.pt。我们可以将其导出为不同格式用于部署。from ultralytics import YOLO model YOLO(runs/train/exp1_indoor_v8m/weights/best.pt) # 导出为ONNX格式通用支持多种推理引擎 model.export(formatonnx, imgsz640, simplifyTrue, opset12) # 导出为TensorRT格式NVIDIA GPU上极致性能 # model.export(formatengine, imgsz640, device0) # 导出为OpenVINO格式Intel CPU/GPU # model.export(formatopenvino, imgsz640)导出注意事项imgsz需要与训练时一致或者与你部署时预期的输入尺寸一致。simplifyTrue会简化ONNX模型图通常推荐开启。导出为TensorRT.engine或OpenVINO.xml/.bin格式通常能获得比原始PyTorch模型快数倍甚至数十倍的推理速度但需要对应的运行时环境。5.2 推理测试与后处理使用导出的模型进行推理from ultralytics import YOLO import cv2 # 加载导出的ONNX模型 model YOLO(best.onnx, taskdetect) # 单张图片推理 results model(path/to/your/test_image.jpg, imgsz640, conf0.25, iou0.45) result results[0] # 可视化结果 annotated_img result.plot() # 直接绘制框和标签 cv2.imwrite(result.jpg, annotated_img) # 获取详细的检测信息 boxes result.boxes.xyxy.cpu().numpy() # 检测框坐标 [x1, y1, x2, y2] confidences result.boxes.conf.cpu().numpy() # 置信度 class_ids result.boxes.cls.cpu().numpy().astype(int) # 类别ID class_names result.names # 类别名称映射字典 for box, conf, cls_id in zip(boxes, confidences, class_ids): print(f检测到 {class_names[cls_id]}, 置信度 {conf:.2f}, 位置 {box})关键参数调整conf0.25: 置信度阈值。高于此值的检测框才会被保留。调参建议如果你的应用对误检False Positive容忍度低比如安防报警可以调高如0.5。如果对漏检False Negative容忍度低比如机器人避障不能漏掉任何椅子腿可以调低如0.1。需要在验证集上绘制P-R曲线来找到最佳平衡点。iou0.45: 非极大值抑制NMS的IoU阈值。用于合并重叠的框。当两个框重叠度IoU高于此阈值时只保留置信度高的那个。如果场景中物体非常密集可以适当调低如0.3以防止漏检如果物体稀疏可以调高如0.6以进一步减少重复框。5.3 实战中遇到的典型问题与解决方案以下是我在多个室内检测项目中踩过的坑和总结的应对策略问题1模型在验证集上mAP很高但在新拍的室内照片上表现很差。可能原因1域偏移。你的训练数据主要来自A小区/办公室新照片来自B小区/家庭装修风格、家具款式、光照差异大。解决方案进行领域自适应。收集少量B环境的数据哪怕只有几十张对模型进行微调fine-tune。使用更小的学习率如初始学习率的1/10训练少量epoch。可能原因2过拟合。模型“记住”了训练集而不是学会了泛化特征。解决方案增强数据增强的多样性增加色彩抖动、模糊、噪声。如果已经用了很强的增强则考虑简化模型换用更小的模型如yolov8s或增加正则化如DropOut但YOLO中不常用或直接收集更多样化的训练数据。问题2某一类家具如“柜子”检测精度始终很低。可能原因样本数量少、姿态单一、或与“桌子”等类别特征相似易混淆。解决方案针对性数据增强仅对“柜子”类别的图片进行更激进的裁剪、旋转生成更多样本。重采样在数据加载时提高“柜子”类别样本被抽中的概率。修改损失函数使用Focal Loss或在分类损失中给“柜子”更高的权重。重新审视标注检查是否有很多“柜子”被误标为“桌子”或者两者定义模糊比如矮柜和茶几。考虑合并相似类别。问题3推理速度在边缘设备上达不到实时如30 FPS。可能原因模型太大或输入分辨率太高。解决方案模型轻量化换用yolov8n甚至更小的自定义网络。可以使用模型剪枝、量化Post-Training Quantization等技术。降低输入分辨率将imgsz从640降到416或320。这会牺牲一些精度尤其是对小目标但能大幅提升速度。需要通过实验权衡。使用专用推理引擎如前所述将模型导出为TensorRT或OpenVINO格式并利用其INT8量化功能通常能获得巨大加速。优化后处理NMS操作有时是瓶颈。可以尝试使用更快的NMS实现如TorchVision的NMS或者尝试不带NMS的推理需要模型输出做相应调整。问题4出现大量重复检测框同一物体被框出多次。可能原因NMS的iou阈值设置过高或者模型对于物体局部特征过于敏感。解决方案首先尝试降低NMS的iou阈值如从0.45降到0.3。如果问题依旧可能是模型的问题。可以尝试在训练时增加CutMix或Mosaic增强如果还没用到这有助于模型学习更全局的上下文信息而不是局部纹理。也可以尝试在损失函数中提高框回归损失box loss的权重。问题5如何处理“人”的部分遮挡如被家具挡住一半这不是一个能完全解决的问题但可以缓解关键在于你的标注规范。如果标注框始终覆盖人的完整范围包括被遮挡部分那么模型会学习去推测完整轮廓。这需要数据集中包含大量各种遮挡程度的样本。此外可以尝试使用注意力机制更强的模型变体但YOLOv8本身已有一定注意力设计或者引入关键点检测作为辅助任务即使身体被挡通过检测露出的头、肩关键点也能推断人的存在和位置。处理一个像“室内家具与人目标检测数据集”这样的项目远不止是跑通一个训练脚本。它涉及从数据理解、清洗、到模型选型、训练调参再到问题诊断和优化部署的全链路。每一个环节都需要根据数据的特性和应用的需求进行细致调整。这份数据集作为一个起点其真正的价值在于让你深入这个流程理解数据与模型之间微妙的互动关系。当你亲手解决了上述一个又一个具体的问题后你获得的不仅仅是能检测家具和人的模型更是一套应对真实世界视觉挑战的方法论。最后别忘了保存好你的data.yaml文件、最佳模型权重和详细的训练日志这些都是宝贵的资产能为下一个相关项目节省大量时间。在实际部署后持续收集模型出错的场景数据并迭代到训练集中才是让模型保持“聪明”的长久之道。本文还有配套的精品资源点击获取
返回列表