FaceDetector API截至2024年尚未被任何主流浏览器实现,window.FaceDetector为undefined,无法用于实时美颜;替代方案包括TensorFlow.js+face-api.js实现关键点定位与局部美颜,或WebGL+自研Shader进行GPU加速美颜。
FaceDetector API 目前(截至2024年)尚未在任何主流浏览器中实现或启用,属于规范草案阶段,不可用于生产环境。
它不是一个可用的、能直接调用 new FaceDetector() 并实时美颜的现成接口。目前 Chrome、Firefox、Safari 均未支持该 API,window.FaceDetector 为 undefined,尝试使用会报错。
所以,你无法用 HTML5 原生 FaceDetector 接口实现实时自拍美颜——它根本不存在于当前浏览器中。
不过,你可以用成熟可行的替代方案达成同样目标:
立即学习“前端免费学习笔记(深入)”;
这是目前最主流、文档完善、支持实时人脸检测与关键点定位的前端方案,可基于五官位置做局部美颜(如磨皮、大眼、瘦脸)。
<script src="https://cdn.jsdelivr.net/npm/@tensorflow/[email protected]"></script> 和 <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/face-api.min.js"></script>
await faceapi.nets.tinyFaceDetector.loadFromUri('models')
const detections = await faceapi.detectAllFaces(video, new faceapi.TinyFaceDetectorOptions())
faceapi.detectFaceLandmarks() 获取68个关键点,定位眼睛、脸颊、下巴等区域对性能要求高、追求低延迟时,可用 WebGL 将摄像头画面传入 GPU,用 GLSL 编写美颜着色器(如双边滤波去噪、肤色增强、局部锐化)。
navigator.mediaDevices.getUserMedia({video: true}) 获取视频流<video> 作为纹理传入 WebGL 程序真正落地的前端实时美颜,依赖的是「媒体流 + JS 人脸分析 + Canvas/WebGL 渲染」这一组合,而非某个未实现的 HTML5 接口。工具链成熟,效果可控,已广泛用于直播、视频会议、社交拍照类应用。