百度人像分割API调用——一键抠图
现在,越来越多的图像分割技术应用到现实生活中来,比如各种辣眼睛的抠图神剧、自带瘦身美体效果的修图神器。这些看得见摸不着的神秘图像特效是如何实现的呢?还有哪些好玩又有用的应用?
今天,就以百度“人像分割技术”为例,一探究竟。
核心能力
- 精准识别图像中的人体轮廓边界,将人体轮廓与图像背景进行分离,实现像素级分割,一键抠像。
技术优势
- 适应性强:图像中有多个人体,或者背景比较复杂时,都不在话下,还能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调用——一键抠图相关推荐
- WPF技术触屏上的应用系列(二): 嵌入百度地图、API调用及结合本地数据库在地图上进行自定义标点的实现...
原文:WPF技术触屏上的应用系列(二): 嵌入百度地图.API调用及结合本地数据库在地图上进行自定义标点的实现 去年某客户单位要做个大屏触屏应用,要对档案资源进行展示之用.客户端是Window7操作系 ...
- 百度文字识别API调用
百度文字识别API调用 官网获取api和secret key 调用API接口 官网获取api和secret key 百度AI智能平台通用文字识别:https://ai.baidu.com/tech/o ...
- vue实现百度语音播报API调用
vue实现百度语音播报API调用 //百度语音播报 Vue.prototype.$speckText = function(str) {var url = "http://tts.baidu ...
- Unity 百度人像分割
SDK和在线API都实现了一下 ID 和 Key自己替换一下 using System; using System.Collections; using System.Collections.Gene ...
- 百度人脸识别API调用实现
目录 一. 准备工作 A. 应用创建 1. 百度用户创建登录 2. 进入人脸识别服务 3. 应用创建 4.应用查看 B. 开发准备 1. 工具类下载 2. maven依赖注入 二. 调用实现 A. 看 ...
- WPF技术触屏上的应用系列(二): 嵌入百度地图、API调用及结合本地数据库在地图上进行自定义标点的实现
去年某客户单位要做个大屏触屏应用,要对档案资源进行展示之用.客户端是Window7操作系统,54寸大屏电脑电视一体机.要求有很炫的展示效果,要有一定的视觉冲击力,可触控操作.当然满足客户的要求也可以有 ...
- (总)百度AI 平台API调用
近来要了解自然语言处理方面的技术,拿百度API做个实验对,进行多次编码尝试最终成功调用. 在本人博客百度API使用系列,使用python代码实现.涉及内容如下: AccessToken获取 自然语言A ...
- 百度语音接口api调用
百度鉴权api # -*- coding: utf-8 -*- import requests# client_id 为官网获取的AK, client_secret 为官网获取的SK host = ' ...
- 百度人脸识别API调用(人脸搜索)Java实现
调用百度的AI平台接口,做一个人脸搜索的例子. 搜索效果展示 首先展示一下搜索效果 {"error_code":0,"error_msg":"SUCC ...
最新文章
- 如图两道面试题,顺便深入线程池,并连环17问
- 湖南网络推广中网络SEO竞争越来越激烈,怎么才能实现“弯道超车”呢?
- 网页html是什么语言程序,html是什么
- spring中type转换框架设计与实现
- sping拦截器配置顺序影响事务正常运行
- Windows Server 2012 R2工作文件夹③:规划权限
- Intellij Idea使用教程汇总篇
- Web基础:记录简单个人网站建站过程
- Application is running in standard simulation mode
- Python习题week2
- 【专栏精选】实战:使用LeanCloud实现玩家注册
- Ubuntu 安装 JDK 7 / JDK8 的两种方式
- 100天python、github_GitHub - 214929177/Python-100-Days: Python - 100天从新手到大师
- SQL Server之——SQL Server 2005 sa 登录失败,该用户与可信SQL Server连接无关联
- Android 判断通知栏是否打开及前往设置页面
- 【Lecroy示波器使用】
- PHP preg_match(): Unknown modifier '/'
- 〖大前端 - 基础入门三大核心之CSS篇②〗- CSS选择器之标签选择器、id选择器、class选择器与原子类
- pycharm调试技巧:添加数字书签bookmark
- 虚拟机——KSM Kernel Samepage Merging
热门文章
- ANA* 路径规划算法基本原理
- Dede后台验证码不显示解决方法详解(dedecms 5.7 UTF-8版本)
- jeecg的autopoi导入EXCEL时去除两端空格
- storm启动nimbus源码分析-nimbus.clj
- t580 thinkpad_聊聊 ThinkPad T580:除了大屏,还有什么
- 软件测试初级测试之编写测试用例
- C++定义字符串数组的方法
- 常用的数字正则(严格匹配)
- HDU 5266 pog loves szh III (LAC)
- 级差公排php如何_专业级差陷阱重重?