face_recognition 基础接口
face_recognition 基础接口
face_recognition使用世界上最简单的人脸识别库,在Python或命令行中识别和操作人脸。
使用dlib最先进的人脸识别技术构建而成,并具有深度学习功能。 该模型在Labeled Faces in the Wild基准中的准确率为99.38%。
face_recognition 官方文档 :https://pypi.org/project/face_recognition/
查找图片中的面孔
1 2 3 4 5 6 7 8 9 10 11 | # 导入face_recognition模块 import face_recognition # 查找图片中的面孔 # 将jpg文件添加到numpy数组中 image = face_recognition.load_image_file( "1.jpg" ) # 查找图片中人脸(上下左右)的位置,图像中可能有多个人脸 # face_locations可能的值类似为 [(135,536,198,474),()] face_locations = face_recognition.face_locations(image) print (face_locations) |
查找和操作图片中的面部特征
1 2 3 4 5 6 7 8 9 | # 导入face_recognition模块 import face_recognition # 查找图片中人脸的所有面部特征(眉毛,眼睛,鼻子,上下嘴唇,面部轮廓) # 将jpg文件添加到numpy数组中 image = face_recognition.load_image_file( "1.jpg" ) face_landmarks_list = face_recognition.face_landmarks(image) print (face_landmarks_list) |
/usr/bin/python3.6 /home/wjw/PycharmProjects/face/find_nose.py [{'chin': [(280, 439), (282, 493), (283, 547), (290, 603), (308, 654), (340, 698), (380, 733), (427, 760), (485, 770), (544, 766), (592, 738), (634, 704), (668, 661), (689, 613), (701, 563), (712, 514), (722, 466)], 'left_eyebrow': [(327, 373), (354, 340), (395, 323), (442, 324), (487, 337)], 'right_eyebrow': [(560, 344), (603, 340), (647, 348), (682, 372), (698, 410)], 'nose_bridge': [(519, 410), (517, 444), (515, 477), (513, 512)], 'nose_tip': [(461, 548), (485, 554), (508, 561), (532, 558), (555, 556)], 'left_eye': [(372, 424), (399, 420), (426, 420), (451, 429), (424, 433), (397, 432)], 'right_eye': [(577, 440), (605, 437), (631, 442), (655, 451), (628, 454), (601, 449)], 'top_lip': [(415, 617), (452, 600), (484, 593), (506, 600), (525, 598), (551, 610), (579, 634), (566, 630), (524, 620), (504, 619), (482, 616), (428, 616)], 'bottom_lip': [(579, 634), (546, 636), (518, 636), (498, 635), (475, 632), (447, 626), (415, 617), (428, 616), (479, 605), (500, 610), (520, 610), (566, 630)]}] Process finished with exit code 0
美图
寻找面部特征对于许多重要的东西非常有用,比如美图。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | from PIL import Image, ImageDraw import face_recognition # 将图片文件添加到numpy数组中 image = face_recognition.load_image_file( "1.jpg" ) # 查找图像中的所有面部特征 face_landmarks_list = face_recognition.face_landmarks(image) for face_landmarks in face_landmarks_list: pil_image = Image.fromarray(image) d = ImageDraw.Draw(pil_image, 'RGBA' ) # 美化眉毛 d.polygon(face_landmarks[ 'left_eyebrow' ], fill = ( 68 , 54 , 39 , 128 )) d.polygon(face_landmarks[ 'right_eyebrow' ], fill = ( 68 , 54 , 39 , 128 )) d.line(face_landmarks[ 'left_eyebrow' ], fill = ( 68 , 54 , 39 , 150 ), width = 5 ) d.line(face_landmarks[ 'right_eyebrow' ], fill = ( 68 , 54 , 39 , 150 ), width = 5 ) # 嘴唇光泽 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[ 'top_lip' ], fill = ( 150 , 0 , 0 , 64 ), width = 8 ) d.line(face_landmarks[ 'bottom_lip' ], fill = ( 150 , 0 , 0 , 64 ), width = 8 ) # 闪耀的眼睛 d.polygon(face_landmarks[ 'left_eye' ], fill = ( 255 , 255 , 255 , 30 )) d.polygon(face_landmarks[ 'right_eye' ], fill = ( 255 , 255 , 255 , 30 )) # 涂一些眼线 d.line(face_landmarks[ 'left_eye' ] + [face_landmarks[ 'left_eye' ][ 0 ]], fill = ( 0 , 0 , 0 , 110 ), width = 6 ) d.line(face_landmarks[ 'right_eye' ] + [face_landmarks[ 'right_eye' ][ 0 ]], fill = ( 0 , 0 , 0 , 110 ), width = 6 ) # 显示图片 pil_image.show() |
(丑了哈?没关系,技术重要!!)
识别图片中的面孔
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | # 导入face_recognition模块 import face_recognition # 识别图像中出现的人脸 # 获取每个图像文件中每个面部的面部编码 known_image = face_recognition.load_image_file( "zhangjie.jpg" ) unknown_image = face_recognition.load_image_file( "uknow.jpg" ) # 由于每个图像中可能有多个人脸,所以返回一个编码列表。 # 但是事先知道每个图像只有一个人脸,每个图像中的第一个编码,取索引0。 biden_encoding = face_recognition.face_encodings(known_image)[ 0 ] unknown_encoding = face_recognition.face_encodings(unknown_image)[ 0 ] # 获取比较结果 result = face_recognition.compare_faces([biden_encoding],unknown_encoding) print (result) |
【版权声明】本博文著作权归作者所有,任何形式的转载都请联系作者获取授权并注明出处!
【重要说明】博文仅作为本人的学习记录,论点和观点仅代表个人而不代表技术的真理,目的是自我学习和有幸成为可以向他人分享的经验,因此有错误会虚心接受改正,但不代表此刻博文无误!
【博客园地址】叫我+V : http://www.cnblogs.com/wjw1014
【CSDN地址】叫我+V : https://wjw1014.blog.csdn.net/
【Gitee地址】叫我+V :https://gitee.com/wjw1014
【重要说明】博文仅作为本人的学习记录,论点和观点仅代表个人而不代表技术的真理,目的是自我学习和有幸成为可以向他人分享的经验,因此有错误会虚心接受改正,但不代表此刻博文无误!
【博客园地址】叫我+V : http://www.cnblogs.com/wjw1014
【CSDN地址】叫我+V : https://wjw1014.blog.csdn.net/
【Gitee地址】叫我+V :https://gitee.com/wjw1014
分类:
Face_Recognition
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!