
计算机视觉深度学习【免费下载链接】computervision-recipesBest Practices, code samples, and documentation for Computer Vision.项目地址https://gitcode.com/gh_mirrors/co/computervision-recipes点击查看免费下载本篇文章基于 scenarios/similarity/FAQ.md 展开聚焦两个开发者最常问的问题图像相似度Image Similarity能解决哪些问题以及什么时候该用图像相似度而不是其他方法。文中将结合仓库中图像相似度模块的源码与 Notebook 实现给出可落地的工程判断准则帮助读者在搭建图像检索Image Retrieval系统时正确选型并理解小目标场景下与目标检测的配合方式。图像相似度能解决什么问题图像检索系统的核心原 FAQ 明确指出图像相似度最典型的应用是构建图像检索系统Image Retrieval给定一张query查询图像系统需要在reference参考集合中找到所有与之相似的图像。仓库 scenarios/similarity/README.md 给出了一个直观示例查询图像位于左侧右侧是按相似度排序后的最相似图像列表该类系统的典型落地场景包括电商网站的商品推荐用户上传或点击一张商品图如 T 恤、冰箱内物品系统推荐外观相似的商品企业级图像数据集聚类将海量图像按内容与外观分组归档便于检索与管理以图搜图、相似图片去重、内容库管理等需要按图找图的业务。从技术原理看见 utils_cv/similarity/model.py图像相似度系统的核心不是直接比较像素而是用深度神经网络DNN将每张图像编码为一个稠密向量embedding / feature例如 512 维浮点向量将特征向量归一化为单位长度L2 范数为 1用余弦距离或 L2 距离度量两幅图像特征向量之间的差异。该思路在 01_training_and_evaluation_introduction.ipynb 中有完整演示对 ImageNet 预训练的 ResNet-18 做微调取其倒数第二层输出如learn.model[1][-2]对应的 BatchNorm1d 层作为图像表示再通过 utils_cv/similarity/metrics.py 中的vector_distance函数计算 L2 距离。何时应该使用图像相似度20% 阈值规则原 FAQ 给出了一个非常具体、可操作的判断标准图像相似度适用于目标对象在图像中相对较大的场景例如目标约占图像宽/高的 20% 以上如果目标更小则应先用目标检测方法定位并裁剪出感兴趣区域ROI再交给图像相似度模型处理。这一20%经验法则与仓库中分类模块的 FAQ 完全一致见 scenarios/classification/FAQ.md说明它是本仓库在图像类任务选型上的统一准则。其背后的工程直觉是图像相似度模型学到的特征表征的是整张图像的内容与外观。当目标占比较大时特征向量能充分捕捉目标本身的语义相似度度量才可靠当目标只占图像很小比例时特征向量会被背景稀释导致两张内容迥异但背景相似的图片被误判为相似检索精度显著下降。因此在选型时可以先评估目标在典型输入图像中的占比占比超过约 20% 时优先考虑图像相似度 / 图像分类类方案占比过小或需要目标位置信息时转向目标检测。小目标场景先检测、后检索的流水线策略当对象小于 20% 宽高比时FAQ 给出的建议是在预处理阶段引入目标检测定位并裁剪crop出感兴趣区域再对裁剪后的图像做相似度建模。这对应一个经典的级联架构检测阶段使用目标检测模型如 Mask R-CNN参见 scenarios/detection/README.md 及其 Notebook在原始图像中定位目标包围框裁剪阶段按包围框将目标区域裁剪出来得到以目标为主体的局部图像相似度阶段对裁剪结果执行 DNN 特征提取与距离度量复用 utils_cv/similarity/model.py 的compute_feature/compute_features流程。这样既规避了背景干扰又保留了图像相似度在以图搜图上的灵活性。需要注意的是该流水线会引入检测模型的开销与误差漏检、错位框实际工程中应根据业务对精度与延迟的要求权衡。仓库中的实现支撑从特征提取到距离度量FAQ 中目标较大时才能用图像相似度的判断最终要落实到可运行的代码。仓库 utils_cv/similarity 模块提供了完整的实现链model.py核心特征提取器SaveFeatures通过 PyTorch forward hook 截取模型中间层的输出作为图像 embeddingcompute_feature为单张图像计算 DNN 特征接受图像对象或路径compute_features/compute_features_learner批量计算特征后者支持 mini-batching并注意了DatasetType.Train下 FastAI 可能丢弃最后一个不完整 batch 的细节源码注释中建议训练集改用DatasetType.Fix。metrics.py相似度度量与评估vector_distance支持 L2、L1、cosine、correlation、hamming 等多种距离/相似度方法默认l2_normalizeTrue先将向量归一化再计算距离compute_distances计算查询图像与参考库中所有图像的距离recall_at_k统计正样本排名 ≤ k的比例是检索系统最常用的指标之一。data.pyComparativeSet与comparative_set_builder构造1 张查询图 1 张正样本 多张负样本的对比集用于在无显式标注的场景下评估检索排序质量。references/evaluate.py与references/re_ranking.py实现基于查询集的评估输出 Rank1、Rank5、mAP以及 k-reciprocal 重排序后处理。其中距离度量的默认策略在 01_training_and_evaluation_introduction.ipynb 中有明确说明默认使用 L2 距离并先将特征归一化为单位长度公式为 $\sqrt{\sum_{i1}^{n}{(F_q[i] - F_r[i])^2}}$$n512$ 为特征维度实践中效果良好L1、余弦相似度等亦可作为备选。如何评估一个图像检索系统是否好用FAQ 回答的是能不能用而判断用得好不好需要量化指标。仓库提供的评估实现references/evaluate.py覆盖了检索领域的标准指标RankkRecallk正样本出现在检索结果前 k 名中的比例Rank1 即第一张返回的就是正确目标的比例mAPmean Average Precision综合排序质量的平均精度评估中会按 group 区分图像确保查询图像不会与自身比较源码注释还提到对 Market-1501 这类数据集可通过 group id 排除同摄像机来源的图像。同时12_fast_retrieval.ipynb 讨论了使用最近邻搜索加速大规模检索的工程手段适合参考库规模较大的生产场景。更进一步提升检索精度的可选手段如果单靠分类式特征训练的模型精度不够仓库还提供了两条提升路径详见 scenarios/similarity/README.md更先进的训练范式默认方案用图像分类损失微调 DNN简单且有效如需更高精度02_state_of_the_art.ipynb 实现了 BMVC 2019 论文Classification is a Strong Baseline for Deep Metric Learning基于分类损失即可达到与 Triplet Learning 相当或更优的效果同时更易训练收敛。该 README 中同时列出了多个公开基准CARS196、CUB200-2011、SOP上报告的 Recall1 数据可作为论文复现时的参考基线。重排序Re-ranking后处理实现自 CVPR 2017 论文Re-ranking Person Re-identification with k-reciprocal Encoding见 references/re_ranking.py。该后处理完全自动、无监督典型参数为k120、k26、lambda_value0.3evaluate函数默认值可在不改变模型的前提下进一步提升检索精度。动手实践仓库提供的完整学习路径FAQ 判断准则落地后建议按以下顺序运行 scenarios/similarity 目录下的 Notebook 完整走一遍流程Notebook用途00_webcam.ipynb快速上手用单张图片或摄像头输入构建检索系统01_training_and_evaluation_introduction.ipynb讲解基于分类 DNN 的训练与评估基本概念512 维特征、L2 距离、Recallk02_state_of_the_art.ipynb复现分类作为深度度量学习强基线的 SOTA 方法11_exploring_hyperparameters.ipynb用网格搜索寻找最优超参数12_fast_retrieval.ipynb基于最近邻搜索的快速检索小结一条清晰的选型决策线将 FAQ 的两条结论与仓库实现结合可以得到如下的选型决策路径评估目标在图像中的占比。目标约占图像宽/高 20% 以上直接采用图像相似度分类式 DNN 特征 L2/余弦距离按 01_training_and_evaluation_introduction.ipynb 的流程训练与评估目标过小或背景干扰严重先用目标检测定位并裁剪 ROI参见 scenarios/detection再进入图像相似度流程精度不足时按序尝试 SOTA 训练范式02_state_of_the_art.ipynb与重排序后处理references/re_ranking.py参考库规模大时结合 12_fast_retrieval.ipynb 的最近邻检索方案做工程化提速。这样FAQ 中看似简短的两句话就能落地为一套从能不能用到怎么用好的完整工程方案。赞分享计算机视觉深度学习【免费下载链接】computervision-recipesBest Practices, code samples, and documentation for Computer Vision.项目地址https://gitcode.com/gh_mirrors/co/computervision-recipes点击查看免费下载相关推荐Prisma 归一化数据格式NDF完全指南从 JSON 结构到导入导出实战Prisma 归一化数据格式NDF完全指南从 JSON 结构到导入导出实战 Normalized Data FormatNDF是 Prisma 服务中计算机视觉深度学习computervision-recipes 目标检测 FAQ 深度解析从数据标注、R-CNN 原理到精度调优实战computervision recipes 目标检测 FAQ 深度解析从数据标注、R CNN 原理到精度调优实战 本文以 scenarios/detecti计算机视觉深度学习多目标跟踪MOTFAQ 深度解读computervision-recipes 中 FairMOT 的标注、训练、推理与评估全指南多目标跟踪MOTFAQ 深度解读computervision recipes 中 FairMOT 的标注、训练、推理与评估全指南 多目标跟踪Multi计算机视觉深度学习上一篇marked 有序列表数字对齐解析规则全解析从 list_align_number 规范到源码实现下一篇三步让老 Mac 装上新版 macOSOpenCore Legacy PatcherOCLP实操全记录创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考