face_recognition实战:用face_landmarks定位眼睛和嘴巴,10分钟做出数字化妆效果 📅 发布时间:2026/9/3 9:41:08 👁 浏览次数: face_recognition实战用face_landmarks定位眼睛和嘴巴10分钟做出数字化妆效果【免费下载链接】face_recognitionThe worlds simplest facial recognition api for Python and the command line项目地址: https://gitcode.com/gh_mirrors/fa/face_recognitionface_recognition是 Python 里最易上手的人脸识别库而它最“好玩”的功能之一就是用face_landmarks函数定位脸部的眼睛、眉毛和嘴巴——只需几行代码10分钟就能做出一款“数字化妆digital make-up”工具自动描眉、涂唇彩、给眼睛加高光。本文面向新手带你从零跑通这个完整案例。一、先搞懂face_landmarks 返回的 68 个关键点是什么face_recognition.face_landmarks()会在图片中找出每张脸并返回一个字典把 68 个关键点按部位分组。默认使用large模型包含 7 个区域字典键含义用途示例chin下巴轮廓17 个点脸部轮廓遮罩left_eyebrow/right_eyebrow左/右眉毛各 5 个点自动画眉nose_bridge/nose_tip鼻梁 / 鼻尖立体修容left_eye/right_eye左/右眼睛各 6 个点眼线、眼睛高光、眨眼检测top_lip/bottom_lip上唇 / 下唇涂口红每个值都是(x, y)坐标点列表可以直接拿来画多边形或连线。函数定义在 face_recognition/api.py如果想用更快的small模型则只返回鼻子和双眼共 5 个点。二、一键安装环境在终端执行下面的命令即可需已安装 Python 3pip3 install face_recognition想动手跑仓库里的示例也可以先克隆代码git clone https://gitcode.com/gh_mirrors/fa/face_recognition另外示例脚本用到了 Pillow画图用如未安装pip3 install Pillow。三、第 1 步加载图片并定位眼睛、嘴巴核心代码只有两行——加载图片 提取关键点官方示例 examples/find_facial_features_in_picture.py 完整演示了流程import face_recognition from PIL import Image, ImageDraw # 1. 加载图片为 numpy 数组 image face_recognition.load_image_file(two_people.jpg) # 2. 找出图中所有脸的关键点 face_landmarks_list face_recognition.face_landmarks(image) # 3. 用线条把每个部位描出来 pil_image Image.fromarray(image) d ImageDraw.Draw(pil_image) for face_landmarks in face_landmarks_list: for facial_feature in face_landmarks.keys(): d.line(face_landmarks[facial_feature], width5) pil_image.show()运行后你会看到图中每张脸的眉毛、眼睛、嘴巴、下巴都被线框勾勒出来——多张脸也能一次全部定位这是数字化妆的“地基”。更完整的 API 说明可参考 docs/usage.rst。四、第 2 步10 分钟做出数字化妆效果 地基打好后只要把“描线”换成“填色”妆容就出来了。仓库里的 examples/digital_makeup.py 就是官方出品的美妆脚本效果分四步叠加修眉用left_eyebrow/right_eyebrow的坐标画多边形填充半透明棕色再用line描边加粗唇彩对top_lip和bottom_lip填充半透明红色瞬间变成“咬唇妆”眼睛高光给left_eye/right_eye多边形填一层白色透明度很低模拟“亮眼”效果眼线把眼睛 6 个点首尾相连成闭合轮廓用深色粗线描边。关键就是 PIL 的ImageDraw支持带透明度的RGBA填色所以妆容可以“叠”在原照片上而不破坏底图d ImageDraw.Draw(pil_image, RGBA) # 唇彩半透明红填充上下唇 d.polygon(face_landmarks[top_lip], fill(150, 0, 0, 128)) d.polygon(face_landmarks[bottom_lip], fill(150, 0, 0, 128)) # 眼线眼睛轮廓首尾相连粗线描边 d.line(face_landmarks[left_eye] [face_landmarks[left_eye][0]], fill(0, 0, 0, 110), width6)把脚本里的biden.jpg换成你自己的照片注意文件名要和代码一致运行python digital_makeup.py一张自动“化妆”后的照片就弹出来了。五、进阶玩法用眼睛关键点做眨眼检测 除了化妆left_eye/right_eye的 6 个点还能算出眼睛纵横比EAR眼睛闭上时比值会骤降。仓库示例 examples/blink_detection.py 就基于这个原理实现了“闭眼 5 秒提醒”思路同样简单从摄像头实时读取帧调用face_recognition.face_landmarks()提取关键点用双眼上下眼角点到瞳孔中心点的距离算出 EAR 值EAR 低于阈值约 0.2判定为闭眼持续 5 秒就打印 “EYES CLOSED”。也就是说同一个face_landmarksAPI既能当美妆工具也能做疲劳检测这正是 68 关键点最大的价值。六、小结与常用文件清单回顾一下本教程用到的核心 API 和文件face_recognition.load_image_file()加载图片face_recognition.face_landmarks()定位 68 个脸部关键点眼睛、嘴巴、眉毛、下巴定义见 face_recognition/api.pyexamples/digital_makeup.py数字化妆完整脚本examples/find_facial_features_in_picture.py关键点描线示例examples/blink_detection.py眨眼检测示例docs/usage.rst官方用法文档从定位到“上色”总共不到 40 行代码。不妨现在就换一张自己的照片跑一遍——10 分钟后你的“数字化妆”作品就诞生了 ✨【免费下载链接】face_recognitionThe worlds simplest facial recognition api for Python and the command line项目地址: https://gitcode.com/gh_mirrors/fa/face_recognition创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考