十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

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

InsightFace 视线估计:160 像素人脸图像预测 3D 视线方向

InsightFace 视线估计:160 像素人脸图像预测 3D 视线方向 InsightFace 视线估计160 像素人脸图像预测 3D 视线方向【免费下载链接】insightfaceState-of-the-art 2D and 3D Face Analysis Project项目地址: https://gitcode.com/GitHub_Trending/in/insightfaceInsightFace 是一个 2D/3D 人脸分析的开源项目其 gaze 模块能从一张普通人脸图像估计出视线方向。在车载监测场景下从人脸检测到视线向量输出只需要一次 160×160 的前向推理无需单独的眼部裁剪步骤。先跑通最小可运行路径先拿到代码仓库gaze 模块位于 reconstruction/gaze 目录下git clone https://gitcode.com/GitHub_Trending/in/insightface装好依赖版本必须照 reconstruction/gaze/README.md 钉住pytorch-lightning 不能随意升级pip install timm pytorch-lightning1.8.1 albumentations1.3.0按 README 的要求把预训练权重放到 assets/ 下然后对 assets/images 里的图逐张推理命令行只需传一个 ckpt 路径python test_gaze.py assets/latest_a.ckpt预期结果outputs/ 目录会为每张图生成左右并排的对比图左为原图右从双眼位置画出黄绿色直线线的指向就是估计出的视线方向。它凭什么能做到核心机制拆解锁定人脸检测与 160 像素对齐第一步是把人脸框定出来并用 5 个关键点做一次仿射对齐得到 160×160 的眼部裁剪。这类似给眼睛装了一个取景框无论驾驶员离摄像头远近、头偏向哪边网络看到的视野位置始终一致。这一步在 test_gaze.py 里调用 insightface.app 的检测器完成aimg, M face_align.transform(img, center, self.input_size, _scale, rotate) # 仿射对齐到 160x160对齐时保存的矩阵 M 还会取逆把预测出的点映射回原图坐标保证画线位置不偏移。一次回归 962 个 3D 眼部关键点网络不区分虹膜、瞳孔、眼睑而是直接输出 481×2 共 962 个点的三维坐标。骨架用的是 timm 的预训练模型默认 resnet101d任务改造只发生在输出层把分类头换成 962×3 的回归头见 models.pyself.backbone timm.create_model(backbone, num_classes481*2*3) # 输出 962 个点的 3D 坐标 loss torch.mean(loss) * 20.0 # L1 回归损失z 轴权重减半训练管线里配了一串模拟车载环境的增强颜色抖动、噪声、运动模糊、压缩伪影见 datasets/dataset_gaze.py让模型在颠簸和光照变化下不至于手抖。3D 视线估计从虹膜位置到视线向量预测出的点云再换算成向量取虹膜关键点相对眼部质心的位置归一化后就是视线方向左右眼各算一个最终渲染时从虹膜中心沿向量画线。原理像从虹膜在眼里的位置反推人正盯着世界上的哪里核心逻辑仍在 test_gaze.pyvec (eye[iris_lms_idx] - eye[:32].mean(axis0)).mean(axis0) # 虹膜中心相对眼部质心输入是 160 像素裁剪图输出是带角度信息的 3D 向量整条链路没有额外的分割或跟踪环节这是它能在车端保持低延迟的关键。实测数据关键指标一览视线估计本身仓库未公布基准数字但注意力监测链路的前半段——人脸检测——在 cpp-package 的基准文档中有明确记录指标设备 / 后端单次耗时人脸检测 160Mac mini M2ANE0.53 ms人脸检测 320iPhone 13ANE1.32 ms人脸检测 320RTX 3060TensorRTFP162.37 ms视线估计推理未公布基准取决于 GPU 与输入批量仓库以定性结果图展示数据取自 doc/Benchmark-Remark(Updating).md.md)落地时容易踩的坑依赖版本按钉住的来pytorch-lightning 钉在 1.8.1但 timm 没有固定版本。timm 跨版本会调整模型命名升级后可能找不到 resnet101d 或加载 ckpt 报形状错误。建议先用能成功加载官方权重的版本组合跑通再动其他依赖。两个非代码文件常被漏推理依赖 481 点眼部模板 eyes3d.pkl 和预训练 ckpt都需按 reconstruction/gaze/README.md 放入 assets/训练数据还是 MXNet recordio 格式train.rec / train.idx想自行重训得先准备好同格式的数据包直接喂普通图片目录会报错。160 像素是速度与精度的平衡点160 是代码里的默认输入分辨率调大可提升远距离人脸的视线精度但推理成本按比例上升。车载硬件上建议先用默认分辨率验证端到端时延再决定是否上调。InsightFace 的 gaze 模块把驾驶员在看哪里从一个经验判断变成可量化的 3D 向量配合 InspireFace 毫秒级的人脸检测注意力监测的前端链路已经齐备。如果正在做视线或人脸相关方向不妨先给项目点个星隔段时间看看 reconstruction/gaze 目录下的更新。【免费下载链接】insightfaceState-of-the-art 2D and 3D Face Analysis Project项目地址: https://gitcode.com/GitHub_Trending/in/insightface创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表