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),仅供参考

相关新闻

React组件执行与生命周期:从渲染到提交的时机解析

React组件执行与生命周期:从渲染到提交的时机解析

拿“React 组件执行 - 生命周期”这个标题来说,它其实涵盖了两个层面的东西:一个是组件从创建到销毁的“生命周期”回调,另一个是React内部对组件的“执行”时机控制。很多前端开发者背熟了componentDidMount、componentDidUpdate这几个钩子&…

2026/9/29 18:15:09 阅读更多 →
C++设计模式进阶:从单例到观察者,面试必考的23种设计模式实战全解析

C++设计模式进阶:从单例到观察者,面试必考的23种设计模式实战全解析

C++设计模式进阶:从单例到观察者,面试必考的23种设计模式实战全解析 引言 设计模式是C++程序员的内功心法,也是大厂面试的必考内容。掌握设计模式不仅能提升代码质量,更能展现你的架构能力。本文精选面试高频设计模式,通过C++实战代码帮你深入理解每种模式的精髓。 一、…

2026/9/29 18:13:58 阅读更多 →
解决Trae终端不支持操作符问题:升级PowerShell版本指南

解决Trae终端不支持操作符问题:升级PowerShell版本指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/29 18:14:04 阅读更多 →

最新新闻

恩智浦 T1022 开发常见问题解答:系统、接口、定制化全汇总

恩智浦 T1022 开发常见问题解答:系统、接口、定制化全汇总

针对恩智浦 T1022 天脉开发板,整理了开发者从选型、上手到开发全流程最高频的 8 个问题,覆盖系统适配、硬件参数、接口能力、定制服务、量产过渡等核心疑问,集中做精准解答,帮大家快速排查问题,少走开发弯路。1. T1022…

2026/9/30 2:32:51 阅读更多 →
Nerd Fonts 仓库中的 Fira Mono 粗体字重指南:变体选择、连字处理与自行打补丁

Nerd Fonts 仓库中的 Fira Mono 粗体字重指南:变体选择、连字处理与自行打补丁

开发工具CLI 【免费下载链接】nerd-fonts Iconic font aggregator, collection, & patcher. 3,600 icons, 50 patched fonts: Hack, Source Code Pro, more. Glyph collections: Font Awesome, Material Design Icons, Octicons, & more 项目地址: https://…

2026/9/30 2:32:51 阅读更多 →
Symfony 8.1 升级指南:从 8.0 平滑迁移的完整兼容性变更清单与实战解读

Symfony 8.1 升级指南:从 8.0 平滑迁移的完整兼容性变更清单与实战解读

后端Web框架 【免费下载链接】symfony The Symfony PHP framework 项目地址: https://gitcode.com/GitHub_Trending/sy/symfony 点击查看 免费下载 Symfony 8.1 作为 8.0 的次版本(minor release),遵循 Symfony 官方发布流程&…

2026/9/30 2:32:51 阅读更多 →
Altium Designer原理图绘制全流程:从工程新建到编译输出

Altium Designer原理图绘制全流程:从工程新建到编译输出

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/30 2:32:51 阅读更多 →
嵌入式驱动开发实战:从寄存器到Linux内核的完整技术栈

嵌入式驱动开发实战:从寄存器到Linux内核的完整技术栈

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/30 2:32:51 阅读更多 →
总感觉“身体发沉、不清爽”?不是懒,是身体「代谢惰性」在拖垮你

总感觉“身体发沉、不清爽”?不是懒,是身体「代谢惰性」在拖垮你

总感觉“身体发沉、不清爽”?不是懒,是身体「代谢惰性」在拖垮你生活里有一种非常普遍却极少被说起的亚健康状态:明明睡得够、没干什么重活,却每天身体沉甸甸、四肢发沉、整个人不清爽,走路拖沓、反应变慢、睡醒依旧累…

2026/9/30 2:31:50 阅读更多 →

日新闻

Base64 图片头部特征识别:从文件头到格式判断的完整指南

Base64 图片头部特征识别:从文件头到格式判断的完整指南

1. 项目概述:为什么说看懂 base64 图片头部是基本功这几年跟 base64 打交道的机会越来越多,后端接口返回图片、前端渲染验证码、小程序里存小图、还有一些老系统导出报表,动不动就给你一段长到怀疑人生的 base64 字符串。很多人拿到字符串就直…

2026/9/30 0:00:35 阅读更多 →
Java公交站牌广告管理系统:JSP+Servlet+MySQL实战落地指南

Java公交站牌广告管理系统:JSP+Servlet+MySQL实战落地指南

简介:本资源是一份面向Java初学者与课程设计学生的公交站牌广告灯箱管理系统毕业设计文档,聚焦城市公共广告资源信息化管理痛点,提供从需求分析到技术实现的完整方案。文档采用标准学术论文结构,含摘要、英文摘要、目录及五章正文…

2026/9/30 0:00:35 阅读更多 →
用 Redis Lua 构建大模型 API 多租户原子配额治理体系

用 Redis Lua 构建大模型 API 多租户原子配额治理体系

我去年年底接了一个内部 AI 平台的治理需求,背景很直接:公司把 DeepSeek、MiniMax 这类大模型 API 统一封装成内部网关,开放给几个业务团队用。结果第一个月账单出来,额度直接超了 4 倍。仔细查日志,发现原因并不复杂—…

2026/9/30 0:00:35 阅读更多 →

周新闻

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/9/29 8:16:59 阅读更多 →
SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/9/29 16:41:41 阅读更多 →
FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏 【免费下载链接】FireRed-OpenStoryline FireRed-OpenStoryline is an AI video editing agent that transforms manual editing into intention-driven directing through natural language …

2026/9/29 8:24:48 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/29 19:29:29 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/29 5:58:00 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/29 3:55:56 阅读更多 →