前段时间,下班后闲来无事,参加了百度PaddleHub的AI人像抠图创意赛,凭借着大家的阅读量,获得了一个第三名,得了一个小度音响,真香啊! PaddleHub创意赛第二期又出来了,这次要做什么呢? 人脸检测主题创意赛 ,爱搞事的我肯定是少不了搞一波事情的,想想这能玩出什么花样来?

前段时间,下班后闲来无事,参加了百度PaddleHub的AI人像抠图创意赛,凭借着大家的阅读量,获得了一个第三名,得了一个小度音响,真香啊!

对,说的是我

PaddleHub创意赛第二期又出来了,这次要做什么呢?

人脸检测主题创意赛,爱搞事的我肯定是少不了搞一波事情的,想想这能玩出什么花样来?

下班路上刷知乎,看见有人用dlib + 猫脸检测器 + 泊松融合实现了抖音猫脸人嘴的特效,瞬间……

程序主要结合PaddleHub的人脸关键点模型截取人嘴位置,opencv猫脸检测器定位猫脸(没找到猫脸关键点检测模型)和opencv泊松融合函数实现图像的融合,共三部分。

一、人脸关键点检测

NOTE: 如果您在本地运行该项目示例,需要首先安装PaddleHub。如果您在线运行,可以去底部阅读原文的百度AI Studio fork该项目。之后按照该示例操作即可。

import cv2
import paddlehub as hub
import matplotlib.pyplot as plt 
import matplotlib.image as mpimg
import numpy as np
import math
%matplotlib inline

src_img = cv2.imread(\'images/youngni2.jpg\')

module = hub.Module(name="face_landmark_localization")
result = module.keypoint_detection(images=[src_img])

tmp_img = src_img.copy()
for face in result[0][\'data\']:
	for index, point in enumerate(face):
		# print(point)
		# cv2.putText(img, str(index), (int(point[0]), int(point[1])), cv2.FONT_HERSHEY_COMPLEX, 3, (0,0,255), -1)
		cv2.circle(tmp_img, (int(point[0]), int(point[1])), 2, (0, 0, 255), -1)

res_img_path = \'face_landmark.jpg\'
cv2.imwrite(res_img_path, tmp_img)

img = mpimg.imread(res_img_path) 
# 展示预测68个关键点结果
plt.figure(figsize=(10,10))
plt.imshow(img) 
plt.axis(\'off\') 
plt.show()

人脸关键点检测结果

二、猫脸检测

猫脸检测使用OpenCV自带的猫脸检测器(感觉喵星人真的是要统治世界了

版权声明:本文为fahaihappy原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/fahaihappy/p/12717064.html