基于人脸识别和图像分割技术制作证件照
我们经常会遇到这样的问题,报名参加考某种考试, 需要提交符合指定背景、尺寸要求的照片,但是手上只有生活中,或者照片尺寸符合要求,但是背景不符合要求的情况。 今天我教大家基于人脸识别和图像分割技术制作证件照,其关键代码不足10行。
1. 读取图像节点,使用PIL库的Image对象的Open方法打开图片
Image.open(fp)
2. 修改尺寸节点,使用if……else判断语句 3. 人脸轮廓检测节点,使用paddlepaddle深度学习框架,调用模face_landmark_localization推理
face_landmark = hub.Module(name="face_landmark_localization")
result = face_landmark.keypoint_detection(images=[np.array(raw_img)])
face = np.array(result[0]['data'][0], dtype=np.int64)
4. 裁剪尺寸节点,依据步骤3人脸轮廓,根据人脸裁剪一定大小的图片
face[:, 0].min()
right = face[:, 0].max()
w = right - left
cw = (right+left) // 2upper = face[:, 1].min()
lower = face[:, 1].max()
# h = lower - upper
ch = (lower + upper) // 2h = crop_size[1] * w // crop_size[0]box = (cw - rate * w, ch-rate * h, cw + rate * w, ch + rate * h)cropped_img = raw_img.crop(box)
5. 人物分割节点,使用tensorflow深度学习框架,调用模型DeepLab推理
resized_image, seg_map = model.run(img) # model为DeepLabV3
6. 修改背景节点,使用opencv库,对非人物区域进行膨胀操作,然后修改非人物区间rgb值
person = []
mask = np.array((mask < 180), dtype=np.uint8)
mask = cv.dilate(mask, None, iterations=2)
mask = np.array(mask, dtype=np.bool)
for i in range(3):a = img[i]a[mask] = rgb[i]person.append(a)img = np.array(person).transpose((1, 2, 0))
new_image = Image.fromarray(img)
std_new_img = new_image.resize(std_size, Image.ANTIALIAS)
7. 保存图像节点,使用PIL库的Image对象的save方法保存图片
img2.save(out_path + file_name)
完整代码参考地址:https://github.com/actboy/ai-id-photo/blob/master/src/algo/precision_id_photo.py应用示例 该功能十分有用,我把该功能开发成了一个web小应用,分享出来免费使用。 访问地址:在线证件照todo 1. 训练face_landmark_localization模型 2. 训练DeepLabV3模型(已完成),可参考基于PASCAL VOC 2012数据集训练deeplab图像分割模型_eton_liu的专栏-CSDN博客基于PASCAL VOC 2012数据集训练deeplab图像分割模型依赖安装测试是否安装成功设置shell脚本变量创建目录下载VOC 2012数据集合并进行格式转换下载预训练模型训练模型评估模型导出模型查看训练/评估日志说明todo依赖python== 3.7.11tensorflow==1.15.0安装git clone git@github.com:actboy/deeplab.gitcd deeplabexport PYTHONPATH=$PYTHONPATH:`pwd`:`pwdhttps://blog.csdn.net/eton_liu/article/details/121969235
基于人脸识别和图像分割技术制作证件照相关推荐
- android 身份认证技术,Android平台上基于人脸识别的身份认证系统的设计与实现
摘要: 随着移动互联网与人工智能技术的发展,基于个人特征的生物识别技术代替传统的身份验证方式已经是大势所趋.而人脸识别是生物识别技术的一个重要组成部分,拥有其他生物识别技术没有的独特优势.本文主要针对 ...
- android 活体检测方案,一种基于人脸识别认证的Android红外双目活体检测的制作方法...
本发明涉及人脸识别领域,具体涉及一种基于人脸识别认证的Android红外双目活体检测. 背景技术: 在目前的利用红外线实现双目活体检测的技术中,普通红外双目,能够同时实时采集近红外和可见光两种图像,并 ...
- 基于人脸识别技术的智能安防系统优化升级
作者:禅与计算机程序设计艺术 近年来随着无人机.机器人等新型产品的出现,越来越多的人群开始把目光投向安防领域.虽然在短时间内智能化建筑.物联网.无人机等技术出现并迅速崛起,但由于技术发展速度不断加快, ...
- 基于人脸识别的门禁系统报告
视频演示:基于人脸识别的门禁系统设计_哔哩哔哩_bilibili PPT汇报:基于人脸识别的门禁系统设计PPT汇报_猫猫爱吃小鱼的博客-CSDN博客 参考代码来源:Python 3 利用 Dlib 实 ...
- 人脸识别基础关键技术
人脸识别基础关键技术 这是一个「看脸」的时代,一谈人脸技术,大家最为熟知就是人脸识别.该技术在金融.社保.零售.安防等领域表现活跃,成为人工智能技术领域的明星.本文主要介绍一些背后默默支持人脸识别的技 ...
- 基于人脸识别的课堂签到管理系统(六)---删除,查询用户组以及人脸的添加,删除,更新
基于人脸识别的课堂签到管理系统(六)---删除,查询用户组以及人脸的添加,删除 一.用户组操作 1.1 查询用户组 1.2 删除用户组 二.人脸操作 2.1 人脸添加 2.2 人脸更新 2.3 人脸删 ...
- 基于人脸识别的课堂签到管理系统(五)---启动/结束签到,以及在百度智能云创建用户组
基于人脸识别的课堂签到管理系统(五)---启动/结束签到,以及在百度智能云创建用户组 一.前言概述 二.签到功能 2.1 启动签到 2.2 结束签到 三.创建用户 四.程序展示 五.相关下载 一.前言 ...
- 基于人脸识别的课堂签到管理系统(三)---实时时间显示以及百度AI人脸识别
基于人脸识别的课堂签到管理系统(三)---实时时间显示以及百度AI人脸识别 一.前言概述 二.实时时间显示 三.百度AI人脸识别 3.1 获取access_token 3.2 发送请求,通过网络请求方 ...
- 基于人脸识别的课堂签到管理系统(一)---环境设置以及简单的QT界面设计
基于人脸识别的课堂签到管理系统(一)---环境设置以及简单的QT界面设计 一.前言 二.Pycharm安装与环境配置 2.1 Pycharm安装配置 2.2 Pycharm环境配置 三.QT界面设计 ...
最新文章
- 改动Centosserver主机名称
- JavaScript的一些实用技巧收藏
- 本地Jupyter连接远程linux服务器
- 注入代码oracle
- 解决 idea Method threw ‘java.lang.NoClassDefFoundError‘ exception. Cannot evaluate xxx toString 问题
- mysql盲注ascii中文_[翻译]关于通过对8bit的ascii做右位移提高mysql盲注效率
- 在shop++二次开发中金额数据类型BigDecimal转换,注意细节。
- java发送html附件_Java发送邮件(图片、附件、HTML)
- 中国速度袋行业市场供需与战略研究报告
- python机器学习库sklearn——特征选择
- day26-2 基于TCP协议的套接字编程
- mysql实际是用命令还是图形化_那些你不常用却非常有用的MySql语句和命令
- 趣学python教孩子学编程pdf免费下载_《趣学Python——教孩子学编程》——导读-阿里云开发者社区...
- Unity 模拟鼠标点击
- ERP、MES、APS在生产排程上的区别?
- k近邻算法_图穷匕见:K近邻算法与手写数字识别
- 二皮脸data_2022年网络我的网络爬虫学习心得
- android sqlite存对象,【Android基础】Android SQLite存储自定义对象
- 蒙特卡洛搜索树python_蒙特卡洛树搜索最通俗入门指南
- 第十六章 SQL函数 ABS