本周暂时比较清闲,可以保持每日一更的速度。
国外身份证项目新增需求,检测出身份证正面的人脸。最开始考虑mobilenet-ssd,经同事提醒,有现成的人脸库dlib,那就用传统方法尝试一下。
dlib安装
dlib的安装小费一波周折,我的python版本是3.6,直接pip install dlib安装失败。https://pypi.org/project/dlib/19.6.0/找到python3.6对应的whl文件下载安装或者直接pip install dlib==19.6.0 提示Successfully installed dlib-19.6.0安装成功。事情没那么简单,import dlib时报错: ImportError: DLL load failed: 找不到指定的模块。
还是版本的问题,查找最新版本的whl :https://pypi.org/simple/dlib/
下载 dlib-19.8.1-cp36-cp36m-win_amd64.whl 然后cd到相应的目录下 pip install dlib-19.8.1-cp36-cp36m-win_amd64.whl
代码
import dlib import cv2 import os def resize(img, width=None, height=None, inter=cv2.INTER_AREA): """ initialize the dimensions of the input image and obtain the image size """ dim = None (h, w) = img.shape[:2] if width is None and height is None: return img if width is None: r = height / float(h) dim = (int(w * r), height) else: r = width / float(w) dim = (width, int(h * r)) # resize the image resized = cv2.resize(img, dim, interpolation=inter) # return the resized image return resized # 使用 Dlib 的正面人脸检测器 frontal_face_detector detector = dlib.get_frontal_face_detector() # 图片所在路径 imgs_path = 'test/' filelist = os.listdir(imgs_path) # 使用 detector 检测器来检测图像中的人脸 for img_path in filelist: img = cv2.imread(imgs_path + img_path) img = resize(img, width=512) faces = detector(img, 1) print("人脸数 / Faces in all: ", len(faces)) for i, d in enumerate(faces): w = d.right() - d.left() h = d.bottom() - d.top() d_left = int(d.left() - w * 0.25) d_right = int(d.right() + w * 0.25) d_top = int(d.top() - w * 0.70) d_bottom = int(d.bottom() + w * 0.2) print("第", i + 1, "个人脸的矩形框坐标:", "left:", d_left, "right:", d_right, "top:", d_top, "bottom:", d_bottom) cv2.rectangle(img, tuple([d_left, d_top]), tuple([d_right, d_bottom]), (0, 255, 255), 2) cv2.imshow("img", img) cv2.waitKey(0) cv2.imwrite('./result.jpg',img)
随便网上找了张图测试,效果如下
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。