ARTICLE DETAIL

资讯详情

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

Lap人脸聚类算法原理:从检测到聚类的完整流程

Lap人脸聚类算法原理:从检测到聚类的完整流程 Lap人脸聚类算法原理从检测到聚类的完整流程【免费下载链接】lapAn offline-first photo manager for large local libraries项目地址: https://gitcode.com/GitHub_Trending/lap3/lapLap 是一款离线优先offline-first的照片管理工具它的人脸聚类人脸识别与人物分组功能完全在本地运行内置 RetinaFace 人脸检测模型与 MobileFaceNet 人脸特征模型配合 K 近邻图 Chinese Whispers 加权投票算法把数张照片里的人脸自动归为同一个人。下面带你完整拆解这条检测 → 过滤 → 特征提取 → 聚类 → 人物分组的流水线。一、检测阶段RetinaFace 多尺度找脸Lap 的人脸检测核心在 src-tauri/src/t_face.rs它通过 ONNX Runtime 加载det_500m.onnxRetinaFace/SCRFD 系列模型模型名定义见 src-tauri/src/t_common.rs。流程大致分四步智能缩放图片长边大于 640px 时缩放至 640px更小的图则向上取整到 32 的倍数模型步长要求并优先直接复用已生成的缩略图来加速索引多尺度锚点Anchor在 stride 为 8、16、32 的三个特征图上生成密集锚点分别负责检测大、中、小三类人脸相当于用三组放大镜扫过整张照片置信度初筛只有得分超过 0.6 的候选框进入下一步NMS 去重用 IoU交并比阈 0.4 的非极大值抑制把同一张脸被重复框出的多个候选框合并为最自信的那一个。二、质量过滤只留下认得清的人脸检测出人脸后Lap 会做两道质检见 t_face.rs 的 process_dynamic_image置信度过滤低于MIN_CONFIDENCE0.65的人脸直接丢弃模糊度过滤用**拉普拉斯方差Variance of Laplacian**计算清晰度得分低于MIN_BLUR_SCORE200.0的糊脸被排除——背景路人、过小的虚焦脸基本都会在这一关被挡掉这正是聚类结果干净的关键。三、特征提取MobileFaceNet 把脸变成向量对通过质检的每张人脸Lap 会在原图上把人脸框向外扩 20% 留白后裁出避免秃额头影响识别缩放至 112×112按(像素 - 127.5) / 128.0归一化送入w600k_mbf.onnxMobileFaceNet得到一个特征向量Embedding再做L2 归一化变成单位向量。单位向量让相似度计算退化为一次简单的点积点积越大越像同一个人。所有向量连同人脸框一起写入本地 SQLite 数据库src-tauri/src/t_sqlite.rs全程不上传任何图片数据。四、聚类阶段K 近邻图 Chinese Whispers 加权投票真正的把同一人的人脸分到一组发生在 src-tauri/src/t_cluster.rs算法分四步步骤做什么关键细节① 算距离两两计算余弦距离 1 − 相似度向量已归一化直接点积即可② 建图距离小于阈值 ε 的两人脸连边构建 K-NN 图每个节点只保留Top-80 条最强边K_NEIGHBORS内存有界且同一张照片里的两张脸绝不连边防止合影中不同人被强行合并③ 传播Chinese Whispers随机顺序遍历节点每个人脸看邻居的加权投票边权重 相似度²弱链接被平方惩罚改投得票最高的簇最多迭代 20 轮标签不再变化即收敛④ 成组每个簇生成一个 Person 记录批量写入人脸归属最后调用Person::update_all_thumbnails为每个人选一张最佳人脸作为头像阈值 ε 控制聚类的松紧程度。Lap 在设置页src-vite/src/views/Settings.vue提供四档可选对应余弦距离 [0.35, 0.45, 0.55, 0.65]定义于 src-vite/src/stores/configStore.jsVery High0.35最严格宁缺毋滥同一个人可能拆成几组可手动合并Low0.65最宽松不同人有被合并的风险。默认使用 Medium0.55对多数家庭相册是最平衡的选择。五、结果落地Person 视图与日常使用聚类完成后左侧栏的Person视图前端实现见 src-vite/src/components/Person.vue会展示每个人物的头像、照片数量点击即可浏览该人物的所有照片。如果某个人被拆成了两组Lap 支持合并人脸簇Face Merging把两个人手动合并成一个体验上类似其他照片 App 的编辑人物。六、隐私与性能一切都在本机️完全离线检测与识别模型均为本地 ONNX 文件可用 scripts/download_models.sh 查看其来源人脸向量也只存在本地 SQLite 中⚡索引可续传已处理过的图片不会重复计算进度通过face_index_progress事件实时推送到界面随时可取消省内存K-NN 图构建时就裁剪到 Top-K聚类前一次性预解析向量并释放中间数据避免大图内存峰值。总结Lap 的人脸聚类 RetinaFace 多尺度检测找得准置信度/清晰度双过滤留得住MobileFaceNet 单位向量认得出Top-80 K 近邻图 Chinese Whispers 加权投票分得开。整条链路离线、可中断、可续传配合四档可调的聚类松紧度让把几千张照片自动分成一张张人脸这件事变得既快又省心。【免费下载链接】lapAn offline-first photo manager for large local libraries项目地址: https://gitcode.com/GitHub_Trending/lap3/lap创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表