现在,越来越多的图像分割技术应用到现实生活中来,比如各种辣眼睛的抠图神剧、自带瘦身美体效果的修图神器。这些看得见摸不着的神秘图像特效是如何实现的呢?还有哪些好玩又有用的应用?

今天,就以百度“人像分割技术”为例,一探究竟。

核心能力

-      精准识别图像中的人体轮廓边界,将人体轮廓与图像背景进行分离,实现像素级分割,一键抠像。

技术优势

-     适应性强:图像中有多个人体,或者背景比较复杂时,都不在话下,还能hold住人体位置重叠、遮挡、背面、侧面、大动作等各类场景。

-     精准分割:人体轮廓边缘清晰可见,评测IoU 95%以上。

分割效果图

应用场景

-    人像抠图

将原始图片中的人像分离出来,选择新的背景图像进行替换、合成;同时可以对背景进行虚化处理,突出人像,实现大光圈人像拍照效果。手残党也能变成修图小能手~

-    人体特效

视频直播过程中,识别用户的人体轮廓,为人像实时增加各种设定的背景特效、贴纸道具,拉轰、上档次,妥妥的!

示例:

图片去背景

照片背景替换

典型案例

美啦相机APP

美啦相机是广州光锥元信息科技有限公司推出的美颜美体应用软件,为女性提供全能的修图服务。今年8月接入百度人像分割技术,精确分离照片中的人像和背景,为用户提供换背景、给背景添加滤镜、景深模式等定制化个性服务。一秒就变小仙女~

 

原图                                                    替换背景

如何接入

人像分割服务已正式上线,欢迎免费试用,请戳这里:http://ai.baidu.com/tech/body/seg

“那个,能不能帮我P一下背景”~ 皮一下很开心~

2. Python 调用百度 API 测试 Demo

需要首先安装 baidu-aip-2.2.8.0 包

sudo pip2 install baidu-aip
# 或
sudo pip3 install baidu-aip

百度 API 测试代码如下:

import cv2
import base64
import numpy as np
import timefrom aip import AipBodyAnalysis# 在百度云中申请,每天各接口有 500 次调用限制.
startTime = time.time()
APP_ID = '****'
API_KEY = '****'
SECRET_KEY = '****'client = AipBodyAnalysis(APP_ID, API_KEY, SECRET_KEY)imgfile = 'test2.jpg'
ori_img = cv2.imread(imgfile)
height, width, _ = ori_img.shapewith open(imgfile, 'rb') as fp:img_info = fp.read()seg_res = client.bodySeg(img_info)
labelmap = base64.b64decode(seg_res['labelmap'])
nparr = np.fromstring(labelmap, np.uint8)
labelimg = cv2.imdecode(nparr,1)
labelimg = cv2.resize(labelimg,(width,height), interpolation=cv2.INTER_NEAREST)
new_img = np.where(labelimg==1, 255, labelimg)
maskfile = imgfile.replace('.jpg', '_mask.png')
cv2.imwrite(maskfile, new_img)res_imgfile = imgfile.replace('.jpg', '_res.jpg')
result = cv2.bitwise_and(ori_img, new_img)
cv2.imwrite(res_imgfile, result)
endTime = time.time()
print("useTime: ", endTime-startTime)
print('Done.')

随便找了几张图片,测试结构如下:

使用耗时:

useTime:  1.3324344158172607

总结:

测试结果在细节处理还是有待提高,耗时有点长,可能也是我的网络不太好吧,毕竟百度的服务器还是杠杠的,分割应该都是毫秒级别的~~

参考:

https://www.aiuai.cn/aifarm626.html

百度开放平台:http://ai.baidu.com/tech/body/seg

百度人像分割API调用——一键抠图相关推荐

  1. WPF技术触屏上的应用系列(二): 嵌入百度地图、API调用及结合本地数据库在地图上进行自定义标点的实现...

    原文:WPF技术触屏上的应用系列(二): 嵌入百度地图.API调用及结合本地数据库在地图上进行自定义标点的实现 去年某客户单位要做个大屏触屏应用,要对档案资源进行展示之用.客户端是Window7操作系 ...

  2. 百度文字识别API调用

    百度文字识别API调用 官网获取api和secret key 调用API接口 官网获取api和secret key 百度AI智能平台通用文字识别:https://ai.baidu.com/tech/o ...

  3. vue实现百度语音播报API调用

    vue实现百度语音播报API调用 //百度语音播报 Vue.prototype.$speckText = function(str) {var url = "http://tts.baidu ...

  4. Unity 百度人像分割

    SDK和在线API都实现了一下 ID 和 Key自己替换一下 using System; using System.Collections; using System.Collections.Gene ...

  5. 百度人脸识别API调用实现

    目录 一. 准备工作 A. 应用创建 1. 百度用户创建登录 2. 进入人脸识别服务 3. 应用创建 4.应用查看 B. 开发准备 1. 工具类下载 2. maven依赖注入 二. 调用实现 A. 看 ...

  6. WPF技术触屏上的应用系列(二): 嵌入百度地图、API调用及结合本地数据库在地图上进行自定义标点的实现

    去年某客户单位要做个大屏触屏应用,要对档案资源进行展示之用.客户端是Window7操作系统,54寸大屏电脑电视一体机.要求有很炫的展示效果,要有一定的视觉冲击力,可触控操作.当然满足客户的要求也可以有 ...

  7. (总)百度AI 平台API调用

    近来要了解自然语言处理方面的技术,拿百度API做个实验对,进行多次编码尝试最终成功调用. 在本人博客百度API使用系列,使用python代码实现.涉及内容如下: AccessToken获取 自然语言A ...

  8. 百度语音接口api调用

    百度鉴权api # -*- coding: utf-8 -*- import requests# client_id 为官网获取的AK, client_secret 为官网获取的SK host = ' ...

  9. 百度人脸识别API调用(人脸搜索)Java实现

    调用百度的AI平台接口,做一个人脸搜索的例子. 搜索效果展示 首先展示一下搜索效果 {"error_code":0,"error_msg":"SUCC ...

最新文章

  1. 如图两道面试题,顺便深入线程池,并连环17问
  2. 湖南网络推广中网络SEO竞争越来越激烈,怎么才能实现“弯道超车”呢?
  3. 网页html是什么语言程序,html是什么
  4. spring中type转换框架设计与实现
  5. sping拦截器配置顺序影响事务正常运行
  6. Windows Server 2012 R2工作文件夹③:规划权限
  7. Intellij Idea使用教程汇总篇
  8. Web基础:记录简单个人网站建站过程
  9. Application is running in standard simulation mode
  10. Python习题week2
  11. 【专栏精选】实战:使用LeanCloud实现玩家注册
  12. Ubuntu 安装 JDK 7 / JDK8 的两种方式
  13. 100天python、github_GitHub - 214929177/Python-100-Days: Python - 100天从新手到大师
  14. SQL Server之——SQL Server 2005 sa 登录失败,该用户与可信SQL Server连接无关联
  15. Android 判断通知栏是否打开及前往设置页面
  16. 【Lecroy示波器使用】
  17. PHP preg_match(): Unknown modifier '/'
  18. 〖大前端 - 基础入门三大核心之CSS篇②〗- CSS选择器之标签选择器、id选择器、class选择器与原子类
  19. pycharm调试技巧:添加数字书签bookmark
  20. 虚拟机——KSM Kernel Samepage Merging

热门文章

  1. ANA* 路径规划算法基本原理
  2. Dede后台验证码不显示解决方法详解(dedecms 5.7 UTF-8版本)
  3. jeecg的autopoi导入EXCEL时去除两端空格
  4. storm启动nimbus源码分析-nimbus.clj
  5. t580 thinkpad_聊聊 ThinkPad T580:除了大屏,还有什么
  6. 软件测试初级测试之编写测试用例
  7. C++定义字符串数组的方法
  8. 常用的数字正则(严格匹配)
  9. HDU 5266 pog loves szh III (LAC)
  10. 级差公排php如何_专业级差陷阱重重?