ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

计算机视觉四大任务实战:图像分类、目标检测、语义分割与SLAM学习路线

计算机视觉四大任务实战:图像分类、目标检测、语义分割与SLAM学习路线 计算机视觉这个词刚入门的时候我也觉得挺唬人好像什么都能往里装。真正做过几个项目之后才发现它其实是一组任务的总称每个任务解决的问题、用的模型、踩的坑都不一样。图像分类是给整张图打一个标签目标检测要把每个物体的位置框出来语义分割得精确到像素级别SLAM则是让机器一边走一边建图定位。这四个方向基本覆盖了从感知到定位的主流需求也是面试和课程大作业里出现频率最高的组合。不管你是刚接触计算机视觉的学生还是想系统梳理知识体系的工程师把这几条线的脉络理清楚比零散地跑几个demo有用得多。下面我就按自己实际做项目的顺序把每个任务的核心思路、实操要点和常见坑逐一拆开讲。1. 计算机视觉任务全景与核心思路拆解1.1 四大任务到底在解决什么问题很多人一开始分不清这几个任务的区别我用一个生活化的类比来解释。假设你面前有一张客厅的照片图像分类要回答的是“这是一张客厅的照片”目标检测要回答的是“沙发在左上角电视在中间茶几在右下角”并且给出每个物体的边界框语义分割要回答的是“画面里每一个像素属于沙发、电视、茶几还是地板”SLAM则更进一步它要回答的是“拍摄这张照片的设备在空间中的什么位置周围环境的三维结构是什么样的”。从粗到细从二维到三维这四个任务构成了计算机视觉从理解到行动的完整链条。图像分类是整个领域的基石。它的输出是一个概率分布告诉你这张图最可能属于哪个类别。别看它简单卷积神经网络、残差连接、注意力机制这些核心概念最早都是在分类任务上验证的。目标检测在分类的基础上增加了定位输出是一组边界框加类别标签。语义分割把粒度推到像素级输出和输入图像同尺寸的掩码图。SLAM则是另一个维度的事情它处理的是时序数据核心是估计相机轨迹并构建环境地图。这四个任务之间不是孤立的。目标检测的骨干网络往往来自分类模型语义分割又常常复用检测的特征金字塔结构SLAM里的回环检测模块本质上是一个图像检索或分类问题。理解它们之间的继承关系能帮你在做项目时快速找到可复用的组件而不是每个任务都从零开始。1.2 为什么选择这条学习路线我见过不少初学者一上来就想搞SLAM或者三维重建结果连基本的卷积操作都没搞明白调参的时候完全靠猜。我的建议是按“分类→检测→分割→SLAM”的顺序推进理由有三个。第一依赖关系清晰后面的任务大量复用前面的技术积累。第二反馈周期短分类和检测在小数据集上几十分钟就能跑出结果适合建立信心。第三面试和作业的考察频率也是这个顺序先把高频考点吃透性价比最高。从工具链的角度看这条路线也有天然的优势。分类任务让你熟悉数据加载、模型定义、训练循环、学习率调度这些基础工程能力。检测任务引入锚框、非极大值抑制、多尺度特征这些概念。分割任务让你掌握上采样、跳跃连接、像素级损失函数。到了SLAM你已经有足够的工程能力去处理更复杂的系统集成问题。每一步都在前一步的基础上增加新的维度而不是推倒重来。注意不要跳过分类直接做检测。我试过带一个新手直接跑YOLO结果他连什么是过拟合都不知道模型在验证集上崩了完全找不到原因。基础不牢后面全是坑。1.3 核心工具链与框架选型工具选型这件事我的原则是“先跑通再优化”。入门阶段PyTorch是目前最友好的选择动态图机制让调试变得直观社区资源也最丰富。如果你在学校课程里被要求用TensorFlow那也没问题但个人项目我强烈建议PyTorch。至于Visual Studio Code和PyCharm选哪个我的实际体验是VS Code轻量、远程开发体验好适合快速实验PyCharm的重构和调试功能更强适合大型项目。两个都装也不冲突我平时用VS Code写实验代码用PyCharm管理正式项目。数据处理方面OpenCV是绕不开的图像读写、颜色空间转换、几何变换都得靠它。可视化用Matplotlib和Seaborn就够了检测框的绘制可以用OpenCV的rectangle函数分割掩码的叠加用Matplotlib的imshow加alpha通道。SLAM部分会用到Open3D做点云可视化Eigen做矩阵运算这些库的安装都不复杂pip基本能搞定。任务类型推荐框架关键依赖库典型模型图像分类PyTorchtorchvision, PILResNet, ViT, EfficientNet目标检测PyTorchtorchvision, OpenCVYOLO系列, SSD, Faster R-CNN语义分割PyTorchsegmentation_models_pytorchU-Net, DeepLabV3, SegFormerSLAMC/PythonOpenCV, Eigen, Open3DORB-SLAM, 3DGS-SLAM2. 图像分类从数据集到模型调优的完整实操2.1 数据集准备与预处理的关键细节图像分类的第一步永远是数据。公开数据集里CIFAR-10和CIFAR-100适合快速验证想法ImageNet适合正式训练但下载和训练成本都很高。如果是课程大作业或者个人练手我建议从Kaggle上找一个小规模数据集比如猫狗分类、花卉分类几千张图的量级单卡几十分钟就能跑完一轮。森林图像分类这类任务数据集的类别不平衡问题往往比模型选择更影响最终效果。数据预处理有几个容易忽略的点。第一图像尺寸统一。不是所有数据集都给你规整的尺寸有的长宽比差异很大直接resize会变形。我的做法是先按短边缩放再中心裁剪这样能保留主要信息。第二归一化参数要用训练集的均值和标准差不能用ImageNet的默认值除非你确定数据分布接近。第三数据增强要分阶段。训练初期用随机裁剪和水平翻转就够了等模型开始过拟合再加颜色抖动和随机擦除。import torch from torchvision import transforms train_transform transforms.Compose([ transforms.RandomResizedCrop(224, scale(0.7, 1.0)), transforms.RandomHorizontalFlip(p0.5), transforms.ColorJitter(brightness0.2, contrast0.2, saturation0.2), transforms.ToTensor(), transforms.Normalize(mean[0.485, 0.456, 0.406], std[0.229, 0.224, 0.225]) ]) val_transform transforms.Compose([ transforms.Resize(256), transforms.CenterCrop(224), transforms.ToTensor(), transforms.Normalize(mean[0.485, 0.456, 0.406], std[0.229, 0.224, 0.225]) ])提示如果你做的是遥感图像分类或者医学图像分类ImageNet的均值和标准差往往不适用。我一般会先算一下自己数据集的像素统计再决定归一化参数。这个步骤花不了几分钟但能明显提升收敛速度。2.2 模型选择从ResNet到Transformer的演进逻辑图像分类模型的发展脉络很清晰从手工特征到CNN从浅层到深层从固定感受野到动态注意力。ResNet是绕不开的经典残差连接解决了深层网络的梯度消失问题至今仍是很多任务的默认骨干。EfficientNet通过复合缩放策略在精度和效率之间找到了不错的平衡点适合计算资源有限的场景。Vision Transformer把图像切成patch序列用自注意力机制建模全局关系在大数据集上表现突出但小数据集上容易过拟合需要更强的数据增强和正则化。最新的图像分类模型里ConvNeXt值得关注它把Transformer的设计理念融入卷积网络在保持卷积效率的同时提升了精度。如果你要做课程大作业用ResNet-50做baseline再对比一下ConvNeXt-Tiny或者Swin Transformer就能写出一份不错的实验报告。关键是要控制变量数据增强、优化器、学习率调度这些因素保持一致只换模型结构这样对比才有意义。模型选择的另一个维度是预训练权重。除非你的数据集非常大十万张以上否则一定要用预训练模型做微调。我试过从零训练ResNet-18在五千张图上做五分类准确率卡在70%上不去换成预训练权重后直接跳到92%。微调的时候学习率要设小一点通常是初始学习率的十分之一或者用分层学习率骨干网络用小学习率分类头用大学习率。2.3 训练技巧与常见问题排查训练分类模型时最常遇到的问题有三个过拟合、欠拟合和训练不稳定。过拟合的表现是训练准确率持续上升但验证准确率停滞甚至下降。解决方法按优先级排序增加数据增强、加Dropout或权重衰减、减小模型容量、早停。欠拟合则是两个准确率都上不去这时候要检查学习率是不是太小、模型是不是太简单、数据预处理是不是有问题。训练不稳定通常表现为loss震荡或者出现NaN。我踩过的一个坑是学习率设得太大前几个batch loss直接爆掉。解决办法是用学习率预热前几个epoch从很小的值线性增加到设定值。另一个坑是BatchNorm在batch size很小时表现不好如果显存不够只能用很小的batch size可以考虑用GroupNorm替代。问题现象可能原因排查方法解决方案验证准确率远低于训练过拟合对比训练/验证loss曲线增强数据、加正则化、早停两个准确率都低欠拟合检查学习率和模型容量增大学习率、换更大模型loss出现NaN学习率过大或梯度爆炸打印每层梯度范数降低学习率、加梯度裁剪训练速度慢数据加载瓶颈检查GPU利用率增加num_workers、用更快的存储3. 目标检测从YOLO到开放词汇的实战解析3.1 目标检测的核心概念与算法脉络目标检测要同时解决“是什么”和“在哪里”两个问题。早期的方法分两步走先提取候选区域再对每个区域做分类Faster R-CNN是这类方法的代表。后来出现了单阶段方法直接在特征图上预测类别和边界框YOLO和SSD是典型代表。单阶段方法速度更快但早期精度不如两阶段方法随着特征金字塔和焦点损失等技术的引入这个差距已经基本抹平了。YOLO系列是目前工业界应用最广的检测框架。从YOLOv5到YOLOv8再到社区讨论的YOLOv26核心改进方向一直是精度和速度的平衡。YOLOv5的工程化做得很好代码结构清晰配置文件驱动适合快速落地。YOLOv8引入了锚框-free的检测头减少了对锚框尺寸的敏感度。如果你要做目标检测项目我建议从YOLOv5或YOLOv8入手社区资源丰富遇到问题容易找到答案。SSD是另一个值得了解的框架它用多尺度特征图预测不同大小的物体对小目标检测有一定优势。但SSD的代码实现相对复杂调试起来不如YOLO直观。如果是课程作业用YOLO做主体用SSD做对比实验能体现你对不同算法思路的理解。3.2 数据集制作与标注的实操要点目标检测的数据集制作比分类麻烦得多因为要标注边界框。常用的标注工具是LabelImg和CVAT前者适合小规模标注后者支持多人协作。标注格式有Pascal VOC的XML和COCO的JSON两种YOLO用的是txt格式每行一个物体格式是“类别编号 中心x 中心y 宽度 高度”坐标都要归一化到0到1之间。标注质量直接决定模型上限。我见过有人标数据集时框得特别松把大量背景都包进去了模型学到的特征自然不准。正确的做法是框紧贴物体边缘但不要切掉物体的一部分。对于遮挡物体如果遮挡面积超过一半建议标为困难样本或者直接不标。鸟类目标检测这类任务鸟的形态变化大飞行姿态和栖息姿态差异明显标注时要确保各种姿态都有覆盖。数据集划分也有讲究。训练集、验证集、测试集的比例通常是7:2:1或者8:1:1。划分时要保证类别分布均衡不能某个类别全在训练集里。如果数据量少可以用k折交叉验证但目标检测的训练成本高实际做项目时还是尽量多标一些数据。# YOLO格式标注文件示例 # 类别编号 中心x 中心y 宽度 高度均为归一化值 0 0.4523 0.6134 0.1234 0.2567 1 0.7812 0.3421 0.0987 0.1876注意标注完成后一定要做可视化检查。我写了一个小脚本把标注框画回原图随机抽几十张看一遍发现过好几处漏标和错标。这个步骤花十分钟能省掉后面几小时的排查时间。3.3 模型训练、评估与部署的完整流程YOLO的训练流程比较标准化。以YOLOv5为例先准备好data.yaml文件指定训练集、验证集路径和类别名称。然后下载预训练权重修改配置文件里的类别数。训练命令一行就能跑起来关键参数包括batch size、学习率、epoch数、图像尺寸。batch size根据显存来定图像尺寸越大精度越高但速度越慢通常从640开始试。评估指标主要是mAP分mAP0.5和mAP0.5:0.95两种。前者是IoU阈值为0.5时的平均精度后者是IoU从0.5到0.95每隔0.05取一次的平均值更严格。看评估结果时不能只看总数要分类别看。如果某个类别的AP明显偏低要么是样本太少要么是标注质量有问题要么是这个类别的外观变化太大。部署阶段YOLO支持导出ONNX和TensorRT格式推理速度能提升不少。如果部署在边缘设备上还要考虑量化把FP32转成FP16或INT8速度能翻倍但精度会掉一点。我实测下来INT8量化在大多数场景下精度损失在1%以内完全可以接受。评估指标含义适用场景注意事项mAP0.5IoU阈值0.5时的平均精度快速对比模型宽松适合初步筛选mAP0.5:0.95多阈值平均精度正式评估严格反映综合性能Precision预测为正样本中真正例比例误检敏感场景高精度低召回常见Recall真正例中被预测出来的比例漏检敏感场景高召回低精度常见FPS每秒处理帧数实时检测与输入尺寸强相关3.4 开放词汇与多模态检测的新趋势传统目标检测只能检测训练时见过的类别要加新类别就得重新标注和训练。开放词汇目标检测试图解决这个问题它利用视觉-语言模型让模型能检测用文本描述的任意物体。这类方法的核心思路是把类别名称编码成文本特征和图像特征做对齐推理时给什么文本就检测什么物体。多模态目标检测是另一个方向它融合RGB图像和深度图、红外图或者激光雷达点云在自动驾驶和机器人场景下很有价值。三维目标检测则直接输出物体的三维边界框需要处理点云数据常用的是PointNet和VoxelNet系列方法。这些方向目前还在快速发展工程落地案例不如传统检测多但值得关注。4. 语义分割像素级理解的算法与工程实践4.1 语义分割的核心思想与网络结构语义分割要求对每个像素分类输出和输入同尺寸的掩码。最经典的网络是U-Net它的编码器-解码器结构加上跳跃连接既能提取高层语义又能保留空间细节。DeepLab系列引入了空洞卷积和ASPP模块在不降低分辨率的情况下扩大感受野。SegFormer把Transformer引入分割用分层结构处理多尺度特征在多个数据集上取得了领先效果。分割网络的设计核心是平衡语义信息和空间精度。编码器不断下采样语义越来越强但空间信息越来越少。解码器负责恢复分辨率跳跃连接把编码器的浅层特征传过来补充细节。这个思路在大多数分割网络里都能看到理解了这一点再看各种变体就很容易抓住重点。损失函数方面交叉熵是最基础的但类别不平衡时效果不好。Dice损失直接优化预测和真值的重叠度对小目标更友好。实际项目中我通常把两者结合起来交叉熵为主Dice为辅权重根据类别分布调整。4.2 语义分割数据集制作与标注语义分割的标注比目标检测更费时因为要精确到像素。常用的工具是LabelMe和CVATLabelMe适合小规模标注支持多边形和自由绘制。标注时要注意边界处理物体边缘的像素归属要一致不能一会儿算前景一会儿算背景。如果多个标注人员协作一定要先统一标注规范否则合并数据时会出现大量冲突。语义分割数据集制作的一个关键问题是类别定义。类别太细会导致标注困难且样本不均衡类别太粗又失去了分割的意义。我的经验是先从最必要的类别开始比如自动驾驶场景先分道路、车辆、行人、天空、建筑这几类跑通之后再逐步细化。遥感图像分割和医学图像分割的类别体系差异很大需要根据具体任务来定。数据增强对分割任务尤其重要因为标注成本高数据量往往有限。除了常规的翻转、旋转、缩放还可以用弹性变形和随机裁剪。需要注意的是图像和掩码必须同步变换否则标签就对不上了。我一般用Albumentations库来做增强它支持图像和掩码的同步处理用起来很方便。import albumentations as A transform A.Compose([ A.RandomCrop(width512, height512), A.HorizontalFlip(p0.5), A.RandomRotate90(p0.5), A.ElasticTransform(alpha120, sigma120 * 0.05, p0.3), A.Normalize(mean(0.485, 0.456, 0.406), std(0.229, 0.224, 0.225)) ])4.3 训练策略与评估指标详解分割模型的训练比分类和检测更吃显存因为输出是完整分辨率的掩码。如果显存不够可以降低batch size用梯度累积来模拟大batch。学习率调度用余弦退火或者多项式衰减都比较常见。训练初期可以冻结编码器只训练解码器等loss稳定后再解冻全部参数做微调。评估指标主要是mIoU即平均交并比。计算方式是先算每个类别的IoU再取平均。看结果时要关注每个类别的IoU不能只看平均值。如果某个类别的IoU特别低可能是样本太少也可能是这个类别的边界模糊导致标注不一致。像素准确率是另一个指标但在类别不平衡时容易虚高比如背景占90%的图像全预测背景也有90%的准确率所以mIoU更有参考价值。评估指标计算方式优点缺点mIoU各类IoU的平均综合反映分割质量对类别不平衡敏感像素准确率正确像素/总像素直观易懂类别不平衡时虚高Dice系数2*交集/(预测真值)对小目标友好与IoU高度相关边界F1边界像素的精确率和召回率关注边界质量计算复杂4.4 分割模型的轻量化与部署考量实际项目中分割模型往往需要部署到边缘设备轻量化是绕不开的话题。常用的手段包括用MobileNet或EfficientNet作为编码器、减少通道数、剪枝和量化。我试过把DeepLabV3的骨干从ResNet-101换成MobileNetV2参数量从60M降到5M推理速度提升四倍mIoU只掉了三个点性价比很高。部署时还要考虑输入分辨率。高分辨率能提升小目标的分割精度但计算量是平方级增长。我的做法是训练时用512×512推理时根据实际需求调整如果场景里都是大物体降到256×256也能接受。TensorRT对分割模型的加速效果明显但自定义算子多的模型转换起来比较麻烦需要预留调试时间。5. SLAM从定位建图到三维重建的系统集成5.1 SLAM的核心问题与技术框架SLAM要解决的是“我在哪”和“周围是什么样”这两个问题而且是在没有先验地图的情况下同时解决。视觉SLAM用相机作为主要传感器激光雷达SLAM用激光雷达两者各有优劣。视觉SLAM成本低、信息丰富但受光照和纹理影响大激光雷达SLAM精度高、鲁棒性好但成本高、点云稀疏。经典的视觉SLAM框架分前端和后端。前端负责特征提取和帧间匹配估计相机的相对运动。后端负责优化位姿和地图点消除累积误差。回环检测模块判断相机是否回到之前到过的地方如果检测到回环就做全局优化把漂移纠正过来。这个框架在《视觉SLAM十四讲》里有详细讲解是入门必读的材料。SLAM的数学基础涉及李群李代数、非线性优化、概率图模型门槛确实不低。我的建议是先跑通开源方案比如ORB-SLAM3理解每个模块的输入输出再逐步深入理论。上来就啃公式容易劝退边用边学效率更高。5.2 视觉SLAM与激光SLAM的实操对比ORB-SLAM3是目前最成熟的视觉SLAM方案之一支持单目、双目和RGB-D相机还能融合惯性测量单元。跑通ORB-SLAM3需要先安装依赖包括OpenCV、Eigen、Pangolin然后编译源码。输入数据可以是公开数据集也可以是自己录制的视频序列。第一次跑的时候建议用TUM数据集格式规范容易调试。激光SLAM方面ROS2下的slam_toolbox和Cartographer是常用方案。激光SLAM的建图精度通常比视觉SLAM高尤其是在纹理缺失的环境里。但激光雷达的点云数据量大对计算资源要求高。实际项目中我见过不少方案是激光雷达做建图和定位视觉做回环检测和语义理解两者互补。对比维度视觉SLAM激光SLAM传感器成本低高光照鲁棒性差好纹理依赖强弱建图精度中等高计算资源中等高语义信息丰富稀疏典型方案ORB-SLAM3Cartographer5.3 3DGS与SLAM结合的新思路3D高斯泼溅是近两年三维重建领域的热门方向它用高斯分布来表示场景渲染质量高且速度快。把3DGS和SLAM结合可以在建图的同时获得高质量的三维表示这是传统点云地图做不到的。目前这个方向的开源实现还不多但论文数量增长很快值得关注。3DGS-SLAM的核心挑战在于实时性。3DGS的优化需要大量迭代而SLAM要求实时输出位姿。现有的方案通常是在关键帧上做3DGS优化非关键帧只做位姿估计。另一个挑战是动态场景3DGS假设场景是静态的如果有移动物体重建结果会出现伪影。这些问题目前还没有完美的解决方案是很好的研究方向。5.4 SLAM项目中的常见坑与排查经验SLAM调试最让人头疼的是“跟丢”问题就是位姿估计突然发散地图全乱。常见原因有几个纹理太少导致特征点不足、运动太快导致帧间重叠不够、光照突变导致特征匹配失败。排查时可以先看特征点数量如果每帧只有几十个特征点那基本跟不住。解决办法包括降低运动速度、增加光照、换用对纹理要求更低的方法。另一个常见问题是尺度漂移。单目SLAM无法确定绝对尺度跑久了尺度会慢慢变化。解决办法是融合惯性测量单元或者用双目相机。RGB-D相机在近距离精度不错但远距离深度误差大建图时要注意范围限制。提示SLAM的配置文件里有很多参数不要一上来就改。先用默认参数跑一遍记录下在哪个环节出问题再针对性地调。我见过有人把特征点数量阈值调得很低结果引入了大量误匹配反而更容易跟丢。6. 学习路线与工具链的务实建议6.1 从零到一的阶段划分第一阶段花两周时间把图像分类跑通。用CIFAR-10或者自己找一个小数据集从数据加载到模型训练到评估完整走一遍。重点理解卷积、池化、批归一化、Dropout这些基础组件的作用。第二阶段用三到四周做目标检测。选YOLOv5或YOLOv8自己标一个小数据集训练、评估、调参、部署全流程走一遍。第三阶段用两到三周做语义分割理解编码器-解码器结构和像素级损失函数。第四阶段如果对机器人方向感兴趣再花一个月入门SLAM。这个路线的好处是每个阶段都有明确的产出不会学着学着迷失方向。每个阶段结束后写一篇总结把遇到的问题和解决方法记下来。这些记录在面试和写论文时都是宝贵的素材。6.2 课程大作业的选题与实现策略计算机视觉大作业的选题很关键。太简单的题目体现不出工作量太难的题目做不完。我的建议是选一个具体场景用现有方法做改进或者做对比。比如“基于YOLOv8的玩手机行为检测”数据集自己标几百张对比YOLOv5和YOLOv8的效果再做一些数据增强的消融实验工作量就够了。如果想让作业更出彩可以在现有方法上加一个小创新。比如在检测头里加一个注意力模块或者在损失函数里加一个边界约束项。创新不需要很大但要有对比实验证明有效。老师看的是你的分析能力和实验设计不是模型有多复杂。6.3 持续学习与资源获取计算机视觉发展很快保持学习习惯很重要。我平时会关注几个方向顶级会议的最新论文、开源项目的更新、技术博客的实战分享。论文不用每篇都精读看摘要和实验部分就能判断有没有价值。开源项目要动手跑光看代码学不到工程细节。学习资源方面CS231n的课程材料是经典入门资料虽然有些内容稍旧但基础概念讲得很透。实战项目推荐从Kaggle竞赛入手有现成的数据集和评价指标还能看到别人的解决方案。GitHub上的awesome列表可以帮你快速找到某个方向的代表性工作。学习阶段时间投入核心目标产出物图像分类2周理解CNN基础分类模型实验报告目标检测3-4周掌握检测流程检测模型标注数据集语义分割2-3周理解像素级预测分割模型可视化结果SLAM入门4周跑通开源方案建图结果轨迹评估6.4 工程习惯与效率提升最后分享几个我踩坑后养成的工程习惯。第一实验记录要详细。每次训练的参数、数据版本、代码commit都记下来不然一周后你根本想不起来哪个配置对应哪个结果。第二代码要模块化。数据加载、模型定义、训练循环、评估指标分开写换数据集或换模型时只改对应模块。第三可视化要趁早。训练过程中定期把预测结果画出来看比只看loss曲线直观得多。效率方面用TensorBoard或者Weights Biases记录实验用Hydra管理配置文件用Docker固定环境。这些工具初期有学习成本但项目复杂之后能省大量时间。我现在的习惯是每个新项目先搭好这套基础设施再开始写模型代码。注意不要过度追求工具链的完美。我见过有人花两周配环境模型一行没写。先用最简陋的方式跑通再逐步优化工具链这才是务实的做法。计算机视觉这个领域入门容易精通难。每个任务都有大量细节需要在实际项目中体会。我自己的经验是与其泛泛地看很多论文不如把一个任务做深做透理解其中的设计取舍和工程约束。当你真正把一个检测模型部署到实际场景里处理过光照变化、遮挡、小目标这些真实问题之后再看其他任务的论文会有完全不同的理解。这个领域变化很快但基础的东西——卷积、注意力、优化、评估——是不会变的把根基打牢新方法出来的时候你也能快速上手。
返回列表