ARTICLE DETAIL

资讯详情

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

基于YOLOv8的舌象诊断系统:从数据集到部署全流程实战

基于YOLOv8的舌象诊断系统:从数据集到部署全流程实战 简介在深度学习与计算机视觉快速发展的今天目标检测已成为医疗影像智能分析的核心技术之一。通过卷积神经网络自动定位图像中的关键区域YOLO系列算法凭借其出色的实时性与精度平衡广泛应用于舌象诊断等医学场景。本文将系统讲解如何利用Python与YOLOv8构建完整的舌象诊断系统涵盖数据集准备、标注规范、模型训练调优、系统集成与界面部署等关键环节。从环境配置的常见陷阱到训练参数的优化策略再到Gradio快速搭建演示界面帮助开发者快速掌握工程化落地方案实现从单一分类到多特征检测的诊断升级。适用于毕业设计、科研实践及医学AI应用开发者参考。 中医舌诊这块过去全靠医生肉眼看、凭经验断主观性强不说还很依赖诊疗环境的光线条件。但这两年深度学习目标检测算法成熟以后把舌象诊断搬上自动化流水线已经不是什么新鲜事了很多高校的毕设题目也都往这个方向靠。而“基于PythonYolov深度学习的舌象诊断系统”这个题目我前前后后带过几个学弟学妹做过类似的自己也完整复现过一版今天就把这套系统从数据集准备、环境搭建、模型训练到系统集成的全过程拆开揉碎讲清楚包括那些网上很难查到的坑一并说透。先给一个基本判断这个题目的难点不在算法创新而在工程整合。你不需要发明一个新模型也不需要发论文级别的理论突破但你需要把数据、训练、部署、界面、文档这几块完整串起来并且每一环都能讲明白“为什么这么做”。如果能做到这一点拿高分是很有希望的。1. 项目整体设计与技术选型思路1.1 目标检测为什么比图像分类更适合舌象诊断很多人一开始容易把舌象诊断当成一个单纯的图像分类任务——输入一张舌头照片输出一个“ healthy / unhealthy”或者“ 寒热虚实”的标签。但实际操作下来你会发现这个思路漏洞很大。一张真实的舌象照片里往往同时包含嘴唇、面部皮肤、牙齿、舌头本体等多类信息甚至舌头本身还有舌尖、舌中、舌根、舌边等不同区域特征。你直接整图分类模型很容易被背景干扰导致“学会了看嘴唇边缘”而不是“看舌头”。而且临床症状往往是复合的比如舌色淡白的同时还伴有齿痕和裂纹分类模型通常只能给出一个主标签无法同时输出多个独立的异常特征。目标检测天然适合解决这个问题它先在图像中定位到舌体区域过滤掉嘴唇、面部等无关信息再进一步定位裂纹、齿痕、瘀斑、芒刺等局部特征区域每个检测框带一个置信度可以很方便地生成“舌体、舌苔厚腻、齿痕明显”这类结构化报告。用YOLO系列模型一次性把舌体和典型异常特征框出来是这类系统的主流做法。1.2 为什么选中YOLOv系列而不是Faster R-CNN或SSD目标检测领域有两大流派两阶段检测器和单阶段检测器。Faster R-CNN是两阶段的代表先通过RPNRegion Proposal Network生成候选区域再对候选区域做分类和回归精度高但速度慢推理一张图在CPU上要好几秒GPU上也难以达到实时。SSD是单阶段的早期代表速度尚可但小目标检测能力偏弱。YOLO系列之所以成为毕设首选有几个非常现实的理由第一速度与精度的平衡很好。YOLOv8的nano版本在GPU上推理一张图只需要几毫秒CPU上也能跑这对毕业设计现场演示非常友好——你总不想在答辩时对着黑屏等十秒才出结果。第二生态成熟。Ultralytics官方提供的YOLOv8仓库文档清晰、安装简单一条pip命令预训练权重直接下载还内置了大量数据增强策略、训练日志可视化、模型导出工具省去了自己造轮子的时间。第三社区活跃。遇到任何训练问题搜一搜基本都有答案对毕设这种时间紧、没人指导的场景来说太重要了。第四部署方案丰富。YOLOv8支持导出ONNX、TensorRT、OpenVINO等格式后期如果想把模型接入Web端的Flask服务或者桌面端的PyQt界面都毫无压力。1.3 系统架构与功能模块划分一套完整的舌象诊断系统通常包含以下模块图像采集模块支持本地图片上传最好还能调用摄像头实时拍摄舌象照片方便现场演示。目标检测模块YOLOv8模型负责检测舌体区域以及裂纹、齿痕、瘀斑等异常特征。特征分类模块对检测到的舌体区域做进一步分类比如舌色淡白、淡红、红、绛红、青紫、舌苔薄白、白腻、黄腻、灰黑等。诊断报告模块将检测到的特征组合成结构化文本报告给出中医证型参考。数据存储模块保存检测记录、图片和报告便于后续复核和统计。这里有个设计技巧提醒一下如果你的毕设题目要求实现舌象诊断的完整闭环最好不要只做目标检测因为单一的目标检测输出框和类别名并不足以撑起一个“诊断系统”你需要增加一个二次分类或者规则映射逻辑把检测结果转成中医诊断术语。这块后面我会详细展开。2. 数据集准备毕业设计的隐形胜负手2.1 数据集来源与如何扩充自己的样本数据集是整个项目的地基。舌象不像人脸、车辆那样有海量开源数据网上公开可用的舌象数据集规模普遍不大而且部分数据集存在标注风格不统一、图片分辨率差异大等问题。常见来源包括各大高校公开的舌象数据库部分需要申请使用GitHub上搜索“tongue dataset”或“舌象数据集”有一些研究生或研究者整理过的数据Kaggle上偶尔有相关竞赛数据集质量相对可靠学术论文的附件材料中部分会提供数据下载链接。但现实是不少同学能找到的样本数只有几百张到一两千张。这种情况下我建议至少保证以下底线整个数据集不少于3000张图片越多越好5000张以上最佳需要检测的异常类别裂纹、齿痕、瘀斑、芒刺等每类至少要有300~500个正样本实例训练集、验证集、测试集按照8:1:1划分注意按病人ID而非图片粒度划分避免同一人的多张图片同时出现在训练集和测试集中导致的数据泄漏。如果数据实在不够可以考虑采集“自己标注补充”的路线找合作的中医诊所帮忙收集脱敏后的舌象照片或者从合法的公共医学图像库中筛选甚至使用手机拍摄志愿者舌象需要签知情同意书。毕设层面一般提供来源说明和采集协议即可但数据合规性要说清楚。2.2 标注规范框住什么、怎么框、用什么工具目标检测的标注质量直接决定模型上限。我看到太多人用LabelImg三下五除二把几千张图框完结果训练出来的模型mAP只有0.3根本没法用。原因十有八九是标注不规范。标注工具方面常用的是LabelImg支持Pascal VOC格式和Labelme支持COCO格式。YOLOv8官方仓库支持这两种格式你用哪个都行但我个人更推荐LabelImg配YOLO格式因为标注时只需要输入类别id和归一化的中心坐标、宽高操作更直接也不用额外写格式转换脚本。标注规范上要注意几个关键点舌体框框选整个舌体边缘尽量紧贴舌头轮廓不要包含嘴唇和下巴舌尖和舌根都要完整框入。如果舌头是伸出来的上表面伸出的部分就是诊断区域框选时以下颌线为参考。裂纹裂纹是舌面上的条形凹陷检测框建议为窄长型框住裂纹的主体区域。对于又长又细的裂纹宁可框得稍微大一点点也不要只框一半。齿痕齿痕通常出现在舌边呈波浪状或牙印状检测框要尽量覆盖完整的齿痕区域不要只框单个齿痕点。瘀斑瘀斑是舌面上的紫色斑点检测框应当大致呈方形准确包围斑点边缘不要框得过大否则容易混入正常舌质导致模型误学。类别定义建议控制在6~8个以内比如tongue舌体必须设置、crack裂纹、tooth_mark齿痕、ecchymosis瘀斑、prickle芒刺、yellow_fur黄苔、thick_fur厚苔、greasy_fur腻苔。类别过多会显著增加标注难度和数据需求容易翻车类别过少又体现不出系统的诊断能力在毕设答辩时容易被评委问住。2.3 数据增强策略量不够增强来凑当数据量不足时YOLOv8内置的数据增强可以帮你缓解过拟合。默认开启的增强策略包括Mosaic将4张图拼成一张让小目标检测更稳定也是YOLO系列相对其他模型的看家本领HSV色域变换随机调整色调、饱和度、明度模拟不同拍摄环境下的色差这对于舌象这种对颜色非常敏感的检测任务至关重要随机水平翻转增加样本多样性随机缩放和平移模拟不同拍摄角度和位置。但这里我要特别提醒一点舌象诊断的核心是“颜色”而增强参数里的hsv_h色调变化如果设置过大会让舌色严重失真导致模型学到的特征与真实病理特征不匹配。默认值是hsv_h0.015这个幅度对舌象来说是偏大的。实操中我建议把hsv_h降到0.005~0.008hsv_s饱和度变化可以适当保留在0.5~0.7这样既保证了对不同色温的鲁棒性又不至于破坏舌色的诊断价值。至于更强的手段Cutout、随机擦除等在舌象任务上收益有限因为舌象异常特征本身可能是细小的、局部的过度遮挡会破坏关键信息不建议优先尝试。3. 环境配置实操Python YOLOv环境搭建3.1 Python虚拟环境与版本选择环境配置这块看似简单却是不少同学花时间最多的地方。常见的问题是Python版本不对、PyTorch版本和CUDA不匹配或者直接在全局环境里pip install一堆包导致依赖冲突。我建议统一用Anaconda管理虚拟环境这样可以随时回退不会把系统环境搞坏。创建环境时注意以下几点推荐Python版本3.9或3.10。YOLOv8官方仓库对Python 3.8~3.12都有支持但3.9和3.10的生态兼容性最好各种依赖包都跟得上。PyTorch版本根据你的显卡驱动和CUDA版本选择。如果用的是NVIDIA显卡建议先打开命令行运行nvidia-smi查看驱动版本支持的最高CUDA版本再选择对应的PyTorch。如果不确定直接安装CUDA 11.8或12.1对应的PyTorch版本大多数情况下都不会出错。如果没有NVIDIA显卡或者驱动装不上就装CPU版的PyTorch。虽然训练速度慢不少但YOLOv8n这种小模型用CPU训练一两千张图、几十个epoch也能出结果只要不追求速度和极致精度论文数据是够用的。创建并激活环境的命令如下conda create -n yolov8 python3.9 conda activate yolov8 pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu1183.2 CUDA与cuDNN的坑以及替代方案环境配置中最容易翻车的就是CUDA驱动和PyTorch版本不匹配。典型症状是安装完PyTorch后运行torch.cuda.is_available()返回False但nvidia-smi明明显示显卡正常。这个问题本质上是“驱动支持的最高CUDA版本”和“PyTorch实际调用的CUDA运行时版本”之间的匹配问题。如果nvidia-smi显示最高支持CUDA 12.1而你安装的PyTorch是cu118理论上也能用因为PyTorch会自带一套CUDA运行时但如果驱动太老连cu118都跑不起来那就会报CUDA driver version is insufficient之类的错误。如果你实在搞不定本地CUDA环境比如老笔记本显卡太旧、核显机器、苹果M系列芯片还有几个可行方案使用Google Colab免费GPUT4或更高级的卡挂载Google Drive存数据和权重训练完下载结果非常省事使用阿里云、腾讯云等平台的GPU按量付费实例一个小时候训练完直接释放成本可控Windows下可以用WSL2配合Docker跑官方ultralytics镜像避免与宿主机环境相互污染。最好在开始写代码之前就把环境跑通用一段最短的代码验证import torch import ultralytics print(torch.__version__) print(torch.cuda.is_available()) print(ultralytics.__version__)如果输出torch.cuda.is_available()为True基本就可以进入下一步了。3.3 YOLOv8模型仓库安装与目录规划环境配好后安装YOLOv8非常简单一行命令即可pip install ultralytics安装完成后我建议的工程目录结构是这样tongue_diagnosis/ ├── data/ │ ├── images/ │ │ ├── train/ │ │ ├── val/ │ │ └── test/ │ ├── labels/ │ │ ├── train/ │ │ ├── val/ │ │ └── test/ │ └── tongue.yaml ├── weights/ ├── runs/ ├── scripts/ ├── ui/ └── docs/把数据、训练输出、界面代码分开管理后期写论文和答辩整理材料会舒服很多。很多人喜欢把训练结果和代码混在一起最后找图为论文都费劲这个习惯建议从一开始就改过来。4. 模型训练与调优实录4.1 数据集目录结构与YAML配置标注完成后需要把数据整理成YOLO格式的目录结构。YOLO格式的标注文件是txt每行代表一个目标格式为class_id center_x center_y width height其中坐标都是归一化的相对于图片宽高。目录结构要求data/images/train/xxx.jpg data/images/val/xxx.jpg data/labels/train/xxx.txt data/labels/val/xxx.txt注意图片和标注文件的文件名必须一一对应图片文件扩展名可以是.jpg、.jpeg、.png等但标注文件统一是.txt。然后创建data/tongue.yaml文件内容如下path: /path/to/tongue_diagnosis/data train: images/train val: images/val test: images/test nc: 7 names: [tongue, crack, tooth_mark, ecchymosis, prickle, yellow_fur, thick_fur, greasy_fur]注意nc要和names列表长度严格一致。这个问题我见过很多次改了names忘了改nc训练时直接报错。4.2 预训练权重与训练超参数的选择YOLOv8提供了n/s/m/l/x五个不同规模的预训练模型。对毕设来说我建议首选YOLOv8n或YOLOv8s。YOLOv8n参数最少、速度最快适合快速验证流程和用作基线精度相对低一些但在数据量不大时反而更不容易过拟合。YOLOv8s精度有明显提升训练速度依然可控是舌象诊断这类中等复杂度任务的甜点选择。YOLOv8m及以上除非你的数据量很大否则不推荐上来就用一是训练时间长二是小数据量下容易过拟合。预训练权重要选在COCO上训练过的版本。理由是虽然COCO里没有舌象类别但预训练模型已经学会了通用特征边缘、纹理、颜色分布迁移到舌象任务上能显著加快收敛速度也能小幅提升精度。训练命令的常用配置如下yolo detect train datadata/tongue.yaml modelyolov8s.pt epochs150 imgsz640 batch16 patience20 projectruns nametongue_exp几个关键参数说明imgsz640是默认值舌象照片一般分辨率不低手机拍摄动辄1200万像素但YOLOv8会内部resize到640x640再训练没必要设成1280或更大会显著拖慢速度小目标检测能力提升却很有限batch大小受显存影响。一般8GB显存跑yolov8s、imgsz640batch16是极限显存不足就降到8或4patience20表示连续20个epoch验证集mAP没有提升就提前停止训练防止在后期无效过拟合上浪费时间和算力epoch150是相对稳妥的预设。舌象数据量不大模型一般在80~120个epoch内收敛150足够看到收敛趋势。4.3 训练过程监控与结果分析训练时Ultralytics会在runs/detect/tongue_exp目录下自动生成训练日志、loss曲线、PR曲线、混淆矩阵等文件。这部分对毕设的价值非常大论文里可以直接用这些图。训练过程中你需要关注两个指标训练loss是否稳步下降如果前10个epoch loss不降反升大概率是学习率太大、数据标注错误或者类别分布严重失衡验证集mAP50是否持续上升mAP50指的是IoU阈值取0.5时的平均精度均值这是毕设中最常汇报的指标。舌象检测任务中模型质量不错的情况下mAP50应该能达到0.75以上。训练结束后用测试集跑一下推理生成可视化结果图把检测框和置信度画在原图上。这一步特别重要因为答辩评委不一定看得懂mAP曲线但一定能看懂“模型成功在舌头上框出了裂纹和齿痕”的图片。多说一句保存可视化图片时尽量挑模型表现好的、特征明显的案例别把误检严重的图放进去。4.4 训练常见问题排查训练过程遇到的麻烦我按出现频率排个序问题一loss为nan这种问题多由标注文件位置错误、坐标越界、类别id超出nc范围导致。先检查labels目录下的txt是否与images一一对应再检查txt内容坐标值必须在0~1之间宽度高度必须是正数。有一个笨办法写一段脚本遍历所有txt把数值不在合理范围内的行直接打印出来用半个下午就能定位。问题二mAP极低但训练正常这种问题多半是标注框太小或太模糊模型很难学到稳定特征比如裂纹本身就细如发丝。也可能是类别数量过多而每个类别的样本量过少某些类别只有几十个实例模型天然学不好。解决办法合并高相似类别比如黄苔和灰黄苔合并成黄苔增加对应类别样本数或者把图像分辨率提高到960再训练。问题三过拟合训练集mAP很高验证集mAP很低这种问题需要降低模型复杂度从yolov8s换成yolov8n或者增大数据增强强度也可以增加验证集样本量。另外加一个早停patience参数在验证集mAP长时间不上升时就停下避免继续过拟合。问题四摄像头采集的图片和训练集风格差异大训练集大部分来自互联网图片拍摄角度、光线、背景比较统一但答辩现场用摄像头拍摄时图片风格差异很大检测效果可能明显下降。解决办法数据收集中有意加入一部分用手机在不同光线条件下拍摄的图片或者把训练集里的图片随机调整亮度、色温后再训练。5. 系统集成把模型变成“能演示的毕业设计”5.1 检测与分类的推理流程模型训练完成后正式的系统不能只停留在命令行里你需要把检测和分类串成一条完整的推理流水线。推理流程设计如下读取用户上传的图片YOLOv8目标检测模型识别舌体区域和异常特征区域输出检测框和类别对每个检测框做置信度过滤只保留置信度≥0.5的检测结果提取舌体区域roi缩放到统一大小比如224x224将舌体roi送入一个独立的舌色/舌苔分类模型一般用ResNet18或EfficientNet-B0即可输出舌色类别和舌苔类别将检测结果和分类结果合并生成诊断报告。这里补充一点如果你觉得训练两个模型一个检测、一个分类太麻烦另一种简化方案是全部用目标检测模型搞定把舌色、舌苔也作为检测类别设计一个全局检测标签。但这种方式输出不够精细难以做到“舌根黄苔、舌尖红”这种细分描述而且不同类别之间会有歧义。我个人的建议还是检测分类双模型方案这样系统层次更清晰答辩时也更好讲。5.2 用PyQt或Gradio快速搭建交互界面交互界面主要有两个方向方向一PyQt桌面端。PyQt适合做本地离线应用集成摄像头调用、图片选择、结果显示、历史记录等功能界面比较专业。但缺点是开发量相对大需要处理各种事件回调、线程阻塞问题特别是模型推理不能在UI主线程里跑否则界面会卡死。方向二Gradio Web端。Gradio是HuggingFace开发的Python Web框架优点是大模型生态里最流行的演示工具代码量极少界面自带上传、摄像头拍照、结果展示功能而且支持移动端适配。用Gradio只要几十行代码就能搭出一个能用的演示界面把推理函数包一层即可。个人建议时间充裕的话用PyQt做完整系统需要展示的工程能力更强时间紧张的话用Gradio先保证功能完整再考虑要不要升级。说实话大部分同学在毕设答辩现场用Gradio的网页演示效果也不差因为可以直接在浏览器里拖拽图片直观得很。下面给一个Gradio的简单示例import gradio as gr from ultralytics import YOLO model YOLO(best.pt) def diagnose(image): results model.predict(image, conf0.5) annotated results[0].plot() names results[0].names output_text for box in results[0].boxes: cls_id int(box.cls[0]) conf float(box.conf[0]) output_text f{names[cls_id]}: {conf:.2f}\n return annotated, output_text gr.Interface( fndiagnose, inputsgr.Image(typenumpy), outputs[gr.Image(typenumpy), gr.Textbox(label诊断结果)], title舌象诊断系统 ).launch(server_name0.0.0.0, server_port7860)这段代码虽然只有十几行但已经能实现上传一张舌象图片→返回带检测框的标注图→输出类别和置信度文本。在此基础上再做报告生成模块就很有模有样了。5.3 生成诊断报告规则映射与注意事项检测和分类都拿到了最后一步是把它们翻译成“人话”也就是生成结构化诊断报告。报告可以包含几类信息舌体属性舌色淡白/淡红/红/绛红/青紫舌形胖大/瘦薄/齿痕/裂纹舌苔薄白/白腻/黄腻/灰黑/少苔。异常特征汇总检测到的裂纹、齿痕、瘀斑等。参考证型根据特征组合映射到中医常见证型比如舌红、苔黄腻、有瘀斑提示“湿热夹瘀”可以给出食疗或生活习惯建议但必须明确标注“仅作参考不构成医疗诊断”。规则映射的逻辑要提前想好比如舌色淡白 齿痕 → 脾气虚、脾阳虚可能性大舌红 黄腻苔 → 湿热内蕴舌绛红 少苔或无苔 → 阴虚内热舌紫暗或瘀斑 → 血瘀证。这块不需要过度复杂用简单的条件判断就可以完成关键是要能自圆其说。这里想强调一个底线毕设系统可以做诊断辅助工具但报告页面一定要写“以上内容仅供深度学习科研展示与教学参考不构成医疗建议”一方面保护自己一方面也是医学科研伦理的基本素养。答辩评委看到这句话反而会觉得你考虑周全。6. 文档、答辩与高分经验6.1 项目文档结构与查重避坑题目里明确写了“全部资料”意味着你交付的不能只有代码还要有完整的文档。我建议至少包含以下几份开题报告项目背景、研究意义、国内外研究现状、研究内容和预期成果中期报告已完成工作、遇到的问题、后续计划毕业论文摘要、绪论、相关技术介绍Python、YOLOv8、深度学习基础、系统设计、实验与分析、总结与展望答辩PPT15~20页左右控制在8~10分钟的汇报长度使用说明文档如何安装依赖、如何整理数据、如何训练、如何启动系统图文并茂。论文查重是个现实问题。我的建议是相关技术介绍比如什么是YOLO、什么是目标检测这部分尽量用自己的话重写不要整段复制博客或论文实验部分放自己的数据、自己的图表、自己的结果分析查重率自然就降下来了。不要寄望于“查重后再改”写的时候就按自己的理解来写。6.2 答辩PPT与演示技巧答辩环节评委关注的核心问题就几类。把这些问题提前准备好现场就稳住了为什么选择YOLOv8——回答从精度速度平衡、生态成熟度、部署便捷性三个角度谈数据集哪来的标注花了多久——如实回答来源说明标注规范和质检过程为什么不直接做分类——回答目标检测可以同时定位多个异常特征更贴合临床诊断需求误检漏检怎么办——回答置信度阈值调整、类别样本增强、数据增强策略等手段如果给更多时间下一步想做什么——可以回答引入Transformer模型、多模态融合舌象加问诊文本、模型轻量化部署到手机端。现场演示最大的风险是模型推理结果不理想。我的实操建议是提前准备5~10张效果最好、最典型的测试图片放到一个单独的文件夹里现场直接从本地拖图演示不要依赖摄像头现拍光线效果不可控。如果评委想看实时摄像头那就提前用电脑自带摄像头测试好自己的舌头或者备用图片的检测效果确保万无一失。6.3 后续改进方向的谈资答辩评委或指导老师常问“下一步还能做什么”这里给几个方向既是谈资也能体现你的思考深度数据层面扩充更大的带专家标注的多中心数据集引入舌象视频动态观察舌下静脉等算法层面将YOLOv8的C2f结构替换为轻量化模块或者尝试YOLOv8-seg做舌体分割后再检测异常区端到端的性能可能会更好系统层面加入迁移学习和领域自适应让模型适配不同手机、不同色温下采集的图片集成大语言模型让报告生成更智能、更口语化产品化层面做成微信小程序或移动端App实现“拍照即诊断”这也能很好回应医学AI落地的话题。以上这些都不需要真的实现答辩时能讲清楚思路就够了但能体现你不是只是在“调包”而是深入理解了这个领域的痛点。7. 写在最后的一点体会最后再分享一点我在带毕设过程中的真实感受这个项目的技术栈本身并不高深真正拉开分差的是数据的精细度和系统完整度。数据决定了模型效果的上限哪怕你用了最强模型标注得粗糙结果照样拉胯而系统完整度决定了作品的整体观感——同样是训练好一个检测模型有人交付的只是一个命令行脚本有人交付的是一个有网页界面、能生成报告、逻辑完整闭环的“系统”评分差距自然而然就出来了。实操中如果时间安排得过来建议把数据集标注、模型训练、界面开发三条线并行推进不要让任何一条线卡死整体进度。比如标注累的时候就写界面代码、写文档训练跑到一半发现数据有问题就赶紧补标这样最后几周就不会手忙脚乱。这个项目的每一步都不算难难的是把每一步都做到位并且串成一条完整的链路。你做完跑通的那一刻会觉得自己对深度学习目标检测这个方向确实有了一套完整的、属于自己的理解。本文还有配套的精品资源点击获取
返回列表