利用PaddleHub 进行人脸检测识别、并对图片进行抠图
 
  本文是利用百度的飞桨平台的paddle进行人脸的检测和抠图,但是里面也有一些小问题,特记录一下笔记,以便以后观看学习。
  环境:python3.9 飞桨是2.5.2(截稿期是最新版)
  工具:PyCharm
  
  代码如下:
  

# This is a sample Python script.

# Press Alt+Shift+X to execute it or replace it with your code.
# Press Double Shift to search everywhere for classes, files, tool windows, actions, and settings.
import paddlehub as hub
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
import numpy as np

test_img_path = ["C:/Users/Administrator/Desktop/qaws/6325110.png"]
input_dict = {"image": test_img_path}

'''
人脸检测
'''
def identfyPer():
#调用PaddleHub中的人脸检测模型
moduleOne = hub.Module(name="ultra_light_fast_generic_face_detector_1mb_640")
imgOne = mpimg.imread(test_img_path[0])
# 人脸检测,到这一步人脸检测就已经完成了,并且python会自动在项目根目录给你建一个文件,并显示图片
resultOnes = moduleOne.face_detection(data=input_dict, visualization=True)
# for rs in resultOnes:
# pne = rs["data"]
# print(rs)

    检测到人脸如下

'''
人脸关键点检测
'''
def keypointJce():
src_img = cv2.imread(test_img_path[1])
module = hub.Module(name="face_landmark_localization")
result = module.keypoint_detection(images=[src_img])
tmp_img = src_img.copy()
for index, point in enumerate(result[0]['data'][0]):
cv2.circle(tmp_img, (int(point[0]), int(point[1])), 2, (0, 0, 255), -1)
res_img_path = 'face_1.jpg'
cv2.imwrite(res_img_path, tmp_img)

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



'''
人像抠图,paddlehub有个缺点只能识别正脸的,侧脸的是不能完成抠图的
'''
def coPic():
# 人像抠图模型
module = hub.Module(name="deeplabv3p_xception65_humanseg")
results = module.segmentation(data=input_dict)
img = mpimg.imread(test_img_path[0])
for result in results:
prediction = result["data"]
# 运用线性代数实现:使用抠图数据剪切原图
newimg = np.zeros(img.shape)
newimg[:, :, 0] = img[:, :, 0] * (prediction > 0)
newimg[:, :, 1] = img[:, :, 1] * (prediction > 0)
newimg[:, :, 2] = img[:, :, 2] * (prediction > 0)
newimg = newimg.astype(np.uint8)

# 抠图结果展示
plt.figure(figsize=(10, 10))
plt.imshow(newimg)
plt.axis('off')
plt.show()

原圖:

AI抠图后:

抠图:貌似值不支持png格式图片。有点限制。


# Press the green button in the gutter to run the script.
if __name__ == '__main__':
coPic()

# See PyCharm help at https://www.jetbrains.com/help/pycharm/

利用PaddleHub 进行人脸检测识别、并对图片进行抠图的更多相关文章

  1. Emgu cv人脸检测识别

    Emgu cv人脸检测识别 1.开发平台:WIN10 X64    VS2012    Emgucv版本:3.1 2.先给大家分享一个官网给的示例源代码: https://ncu.dl.sourcef ...

  2. Python学习案例之人脸检测识别

    前言 随着科技的发展,人脸识别技术在许多领域得到的非常广泛的应用,手机支付.银行身份验证.手机人脸解锁等等. 识别 废话少说,这里我们使用 opencv 中自带了 haar人脸特征分类器,利用训练好的 ...

  3. Python 3 利用 Dlib 实现人脸检测和剪切

    0. 引言 利用 Python 开发,借助 Dlib 库进行人脸检测 / face detection 和剪切:   1. crop_faces_show.py : 将检测到的人脸剪切下来,依次排序平 ...

  4. 利用OpenCV的人脸检测给头像带上圣诞帽

    我们来看下效果 原图: 效果: 原理其实很简单: 采用一张圣诞帽的png图像作为素材, 利用png图像背景是透明的,贴在背景图片上就是戴帽子的效果了. 人脸检测的目的主要是为了确定贴帽子的位置,类似p ...

  5. Python学习案例之视频人脸检测识别

    前言 上一篇博文与大家分享了简单的图片人脸识别技术,其实在实际应用中,很多是通过视频流的方式进行识别,比如人脸识别通道门禁考勤系统.人脸动态跟踪识别系统等等. 案例 这里我们还是使用 opencv 中 ...

  6. 基于AdaBoost算法——世纪晟结合Haar-like特征训练人脸检测识别

      AdaBoost 算法是一种快速人脸检测算法,它将根据弱学习的反馈,适应性地调整假设的错误率,使在效率不降低的情况下,检测正确率得到了很大的提高.   系统在技术上的三个贡献: 1.用简单的Haa ...

  7. MTCNN人脸检测识别笔记

    论文:Joint Face Detection and Alignment using Multi-task Cascaded Convolutional Networks 论文链接:https:// ...

  8. Python视频人脸检测识别

    案例 这里我们还是使用 opencv 中自带了 haar人脸特征分类器,通过读取一段视频来识别其中的人脸. 代码实现:   动图有点花,讲究着看吧:   如果是捕捉摄像头,只需要改变以下代码即可: c ...

  9. 人脸检测识别,人脸检测,人脸识别,离线检测,C#源码

    百度网盘地址 微云地址 使用虹软人工智能开放平台技术开发完成

  10. Python 3 利用 Dlib 实现摄像头实时人脸检测和平铺显示

    1. 引言 在某些场景下,我们不仅需要进行实时人脸检测追踪,还要进行再加工:这里进行摄像头实时人脸检测,并对于实时检测的人脸进行初步提取: 单个/多个人脸检测,并依次在摄像头窗口,实时平铺显示检测到的 ...

随机推荐

  1. linux中grep的用法详解

    linux中grep的用法详解 grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是 ...

  2. 【Java】JDBC Part6 Apache-DBUtil & Spring-JdbcTemplate

    Apache-DBUtils 开源的JDBC工具类,对JDBC的简单封装 SQL操作交给了QueryRunner的实例 Maven依赖 <!-- https://mvnrepository.co ...

  3. 【郝斌C ST】 指针入门

    #include <stdio.h> int main() { printf("Hello, World!\n"); int i = 3; int * p = & ...

  4. OneFlow计算框架的OneAgent是不是一个子虚乌有的东西?

    自己是搞强化学习的,今天看了些OneFlow计算框架的一些资料,发现OneFlow官方一直有宣传自己的强化学习框架--OneAgent,但是十分诡异的是从了OneFlow的官方宣传可以看到这个词,但是 ...

  5. rllab —— 强化学习 算法模块库 (环境配置失败!!!) (已经不进行维护更新,已被淘汰,由于一些老旧代码还有可能关联因此fork了下,复制了份原始项目)

    代码地址: https://gitee.com/devilmaycry812839668/rllab 由于官方代码地址在github上,外网偶尔会出现网络连接中断的问题因此在国内代码库中fork了一个 ...

  6. 强化学习运行环境,atari 2600 游戏模拟器,atari-py库 —— 无法运行游戏,pacman,surround,报错: Segmentation fault (core dumped)

    atari2600运行环境: https://github.com/openai/atari-py 安装环境,以及导入 rom文件这里不进行介绍(前文已介绍): 测试游戏环境rom文件能否正常加载如内 ...

  7. 代码随想录Day5

    242.有效的字母异位词 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词. 注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词. 示例 ...

  8. 安装RabbitMQ遇到的一些坑

    Ubantu18.0正确安装RabbitMQ 1.安装erlang 因为RabbitMQ需要erlang语言的支持,所以我们需要先安装erlang. sudo apt-get install erla ...

  9. 手把手教你搭建国产嵌入式模拟器SkyEye开发环境

    SkyEye介绍 SkyEye是一个开源软件(OpenSource Software)项目,中文名字是"天目".SkyEye的目标是在通用的Linux和Windows平台上实现一个 ...

  10. 【解决方法】libGL.so.1: cannot open shared object file: No such file or directory

    在配云端GPU服务器时,出现这个错误 File "/usr/local/lib/python3.6/dist-packages/cv2/__init__.py", line 8, ...