IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 基于人脸识别和图像分割技术制作证件照 -> 正文阅读

[人工智能]基于人脸识别和图像分割技术制作证件照

我们经常会遇到这样的问题,报名参加考某种考试,?需要提交符合指定背景、尺寸要求的照片,但是手上只有生活中,或者照片尺寸符合要求,但是背景不符合要求的情况。?今天我教大家基于人脸识别和图像分割技术制作证件照,其关键代码不足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) // 2

upper = face[:, 1].min()
lower = face[:, 1].max()
# h = lower - upper
ch = (lower + upper) // 2

h = 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模型
  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章           查看所有文章
加:2021-12-09 11:39:17  更:2021-12-09 11:44:23 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 1:41:33-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码