Learn-to-Cluster:CVPR 2019-2020人脸聚类完整指南:从理论到实践
【免费下载链接】learn-to-clusterLearning to Cluster Faces (CVPR 2019, CVPR 2020)项目地址: https://gitcode.com/gh_mirrors/le/learn-to-cluster
Learn-to-Cluster是一个专注于人脸聚类研究的开源项目,集成了CVPR 2019-2020年的多项先进技术,提供了从理论到实践的完整人脸聚类解决方案。该项目包含多种基于图卷积网络(GCN)的创新聚类算法,能够高效处理大规模人脸数据,为计算机视觉领域的研究者和开发者提供了强大的工具支持。
🌟 项目核心价值与技术亮点
Learn-to-Cluster项目的核心价值在于将学术研究成果转化为可直接应用的工程实现,主要技术亮点包括:
- 多算法集成:包含Dsgcn、Vegcn和Lgcn三大核心算法模块,覆盖了从聚类检测到分割的完整流程
- 高性能表现:在584K人脸数据集上,GCN-D+GCN-S算法组合实现了88.57%的F-score
- 灵活可扩展:支持不同数量的proposals配置,可根据实际需求平衡性能与效率
- 丰富的实验数据:提供在MS1M、YouTube-Faces和DeepFashion等多个数据集上的详细实验结果
📋 环境准备与安装指南
系统要求
- Python >= 3.6
- PyTorch >= 0.4.0
- faiss(Facebook AI相似度搜索库)
- mmcv(OpenMMLab计算机视觉基础库)
快速安装步骤
# 克隆项目仓库 git clone https://gitcode.com/gh_mirrors/le/learn-to-cluster cd learn-to-cluster # 安装依赖 conda install faiss-gpu -c pytorch pip install -r requirements.txt # 创建数据软链接(假设数据存放在xxx/data目录) ln -s xxx/data data📊 核心算法模块解析
Dsgcn:基于图卷积网络的聚类检测与分割
Dsgcn(Deep Spectral Graph Convolutional Network)是项目的核心算法之一,其工作流程包括以下关键步骤:
- 生成初始提案:通过基础提案生成器创建初始聚类提案
- 图卷积网络检测:使用GCN-D模型对提案进行检测和优化
- 图卷积网络分割:使用GCN-S模型对检测结果进行精细分割
Dsgcn算法的完整工作流程,展示了从特征提取到最终聚类结果的全过程
主要配置文件位于dsgcn/configs/目录,包含针对不同数据集和场景的参数设置,例如:
- cfg_train_det_ms1m_8_prpsls.py:MS1M数据集训练配置(8个proposals)
- cfg_test_seg_ms1m_20_prpsls.py:MS1M数据集测试配置(20个proposals)
Vegcn:基于置信度和连接性估计的聚类
Vegcn(Confidence and Connectivity Estimation GCN)引入了置信度机制,通过GCN-V(顶点置信度估计)和GCN-E(边连接性估计)两个子网络提升聚类性能:
- GCN-V:估计每个顶点属于其聚类的置信度
- GCN-E:估计边连接的可靠性
在584K数据集上,GCN-V+GCN-E组合实现了87.93%的F-score,相关实现位于vegcn/models/目录。
Lgcn:基于连接的图卷积网络聚类
Lgcn(Linkage-based GCN)采用基于连接的方法,通过构建人脸之间的连接图进行聚类,特别适合处理大规模数据集。核心实现位于lgcn/models/lgcn.py。
🚀 快速上手:运行与评估
模型下载
项目提供了预训练模型,可在MODEL_ZOO.md中查看并下载所需模型。
测试示例
Dsgcn测试
# 测试聚类检测(MS1M数据集) sh scripts/dsgcn/test_cluster_det_ms1m.sh # 测试聚类分割(MS1M数据集) sh scripts/dsgcn/test_cluster_det_iop_ms1m.sh sh scripts/dsgcn/test_cluster_seg_ms1m.shVegcn测试
# 测试GCN-V(MS1M数据集) sh scripts/vegcn/test_gcn_v_ms1m.sh # 测试GCN-E(MS1M数据集) sh scripts/vegcn/test_gcn_e_ms1m.shLgcn测试
# 测试LGCN(MS1M数据集) sh scripts/lgcn/test_lgcn_ms1m.sh训练示例
以Dsgcn在MS1M数据集上的训练为例:
# 训练聚类检测 sh scripts/dsgcn/train_cluster_det_ms1m.sh # 训练聚类分割 sh scripts/dsgcn/train_cluster_seg_ms1m.sh📈 性能评估与实验结果
主要数据集性能对比
在584K人脸数据集(part1_test)上,各方法的性能对比如下:
| 方法 | Precision | Recall | F-score |
|---|---|---|---|
| Chinese Whispers | 55.49 | 52.46 | 53.93 |
| KNN DBSCAN | 95.25 | 52.79 | 67.93 |
| L-GCN | 74.38 | 83.51 | 78.68 |
| GCN-D (8 prpsls) | 94.23 | 79.69 | 86.35 |
| GCN-V + GCN-E | 92.56 | 83.74 | 87.93 |
| GCN-D + GCN-S (20 prpsls) | 97.91 | 80.86 | 88.57 |
大规模数据集性能(5.21M)
在更大规模的5.21M数据集上,GCN-D (20 prpsls)实现了87.61%的Pairwise F-score和97.04%的NMI(归一化互信息),展示了算法在处理海量数据时的优势。
跨数据集泛化能力
项目在多个数据集上进行了验证,包括:
- YouTube-Faces:GCN-D (4 prpsls)实现94.44%的Pairwise F-score
- DeepFashion:GCN-V + GCN-E实现38.47%的Pairwise F-score
详细结果可参考项目根目录下的README.md。
📚 数据集准备与使用
项目支持多种人脸数据集,详细的数据准备指南请参考DATASET.md。主要支持的数据集包括:
- MS1M:大规模人脸数据集
- YouTube-Faces:包含视频序列的人脸数据集
- DeepFashion:服饰数据集,用于跨领域验证
🤝 引用与贡献
如果您在研究中使用了Learn-to-Cluster项目,请引用以下论文:
@inproceedings{yang2019learning, title={Learning to Cluster Faces on an Affinity Graph}, author={Yang, Lei and Zhan, Xiaohang and Chen, Dapeng and Yan, Junjie and Loy, Chen Change and Lin, Dahua}, booktitle={Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR)}, year={2019} } @inproceedings{yang2020learning, title={Learning to Cluster Faces via Confidence and Connectivity Estimation}, author={Yang, Lei and Chen, Dapeng and Zhan, Xiaohang and Zhao, Rui and Loy, Chen Change and Lin, Dahua}, booktitle={Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition}, year={2020} }项目欢迎社区贡献,您可以通过提交Issue或Pull Request参与项目改进。
💡 实用技巧与常见问题
- 性能与效率平衡:通过调整proposals数量(如2、5、8、20)平衡性能与计算资源消耗
- 参数调优:不同数据集可能需要调整k近邻参数和阈值,具体可参考配置文件
- 特征提取:项目不包含人脸特征提取部分,可使用推荐的人脸识别框架如hfsoftmax
- 结果可视化:可使用utils/draw.py工具可视化聚类结果
通过本指南,您已经了解了Learn-to-Cluster项目的核心功能和使用方法。无论是学术研究还是工业应用,该项目都提供了强大而灵活的人脸聚类解决方案,帮助您在大规模人脸数据上实现高效准确的聚类分析。
【免费下载链接】learn-to-clusterLearning to Cluster Faces (CVPR 2019, CVPR 2020)项目地址: https://gitcode.com/gh_mirrors/le/learn-to-cluster
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考