img2vec图像聚类实战:PCA降维+KMeans自动给图片分类,猫狗一键分离

📅 发布时间:2026/8/27 15:24:34
img2vec图像聚类实战:PCA降维+KMeans自动给图片分类,猫狗一键分离
img2vec图像聚类实战:PCA降维KMeans自动给图片分类,猫狗一键分离【免费下载链接】img2vec:fire: Use pre-trained models in PyTorch to extract vector embeddings for any image项目地址: https://gitcode.com/gh_mirrors/im/img2vecimg2vec 是一个基于 PyTorch 的开源 Python 库能调用预训练模型把任意图片转换成向量嵌入image embedding。配合PCA 降维 KMeans 聚类这两招img2vec 图像聚类可以自动给一堆杂乱照片分类——不用任何人工标注猫图归猫图、狗图归狗图一键分离。本文带你用 3 个步骤跑通完整流程全程几乎不用写代码。img2vec 是什么:让长得像变成数字img2vec_pytorch 的核心思路一句话就能说清调用 ResNet、VGG、EfficientNet 等预训练深度网络把一张图片读成一条高维数字向量。向量有多神奇两张图越相似向量距离越近两张图差异越大向量距离越远比如默认的resnet18模型会为每张图片输出一条512 维向量。这样图片分类就不再是视觉问题而是简单的向量距离计算问题天然适合喂给聚类算法。项目支持的主要模型及向量维度如下模型系列可选型号向量维度ResNetresnet18 / 34 / 50 / 101 / 152512 ~ 2048VGGvgg11 / 13 / 16 / 194096DenseNetdensenet121 / 161 / 169 / 2011024 ~ 2208EfficientNetefficientnet_b0 ~ b71280 ~ 2560AlexNetalexnet4096聚类三步流水线:Img2Vec → PCA → KMeansimg2vec 官方示例脚本example/test_clustering.py实现了一条非常经典的无监督学习流水线总共三步Img2Vec 提向量遍历图片文件夹把每张图片转成一条 512 维向量堆成一张矩阵PCA 降维512 维向量维度太高、直接聚类容易受维度灾难影响PCA 把它们压缩到 2 维坐标——既能聚类还能画出来KMeans 聚类按k_value默认 2把向量分组然后把每张图片自动复制到对应编号的文件夹里三步完成一个文件夹的图片就被自动分拣完毕。3 分钟上手:安装并运行官方聚类示例git clone https://gitcode.com/gh_mirrors/im/img2vecpip install img2vec_pytorch Pillow scikit-learn进入示例目录运行聚类脚本cd img2vec/example python test_clustering.py运行结束后当前目录会生成0/和1/两个文件夹test_images/里的每张图片都被自动归入其中之一。想分更多类别改一下脚本里的k_value参数即可比如 4 张图分 3 类就写k_value 3。效果验证:猫、狗、人像真的被分开了示例自带的example/test_images/文件夹里有 5 张测试图cat.jpg、cat2.jpg猫、catdog.jpg猫狗同框、face.jpg、face2.jpg人像。以k2运行时猫系图片会聚到一组人像照片聚到另一组分类结果和人类直觉高度一致。项目还提供了第二份示例example/test_img_similarity.py用余弦相似度查询任意一张图与其余图片的相近程度官方文档记录的预期输出非常直观cat.jpg的最近邻是cat2.jpg相似度0.73face2.jpg的最近邻是face.jpg相似度0.67也就是说向量距离近 视觉上确实相似这就是 img2vec 图像聚类的底层依据。实战小贴士:GPU 加速与常见问题GPU 加速有 NVIDIA 显卡时用Img2Vec(cudaTrue)初始化批量提取向量速度提升明显Docker / 只读环境模型无法写入缓存目录时设置环境变量export TORCH_HOME/tmp/torch指定可写路径即可⚖️模型怎么选图片量大、追求速度选resnet18512 维最快追求精度可换efficientnet_b01280 维进阶玩法向量提取后还能用于图片检索、去重、推荐系统排序等场景核心文件导航img2vec_pytorch/img_to_vec.py— 核心模块Img2Vec类与全部模型的加载逻辑example/test_clustering.py— PCA KMeans 自动聚类示例本文主角example/test_img_similarity.py— 余弦相似度查询示例example/test_images/— 5 张猫、狗、人像测试图片setup.py— 打包配置PyPI 包名img2vec_pytorch总结img2vec 让图片 → 向量只需一行调用再加上 PCA 降维和 KMeans 聚类各一行代码就完成了全自动图片分类。无需标注、无需训练这套嵌入 聚类的组合拳同样适用于图片去重、相似图片检索和推荐系统是新手入门计算机视觉非常顺滑的第一站。【免费下载链接】img2vec:fire: Use pre-trained models in PyTorch to extract vector embeddings for any image项目地址: https://gitcode.com/gh_mirrors/im/img2vec创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考