机器之心报道

参与:一鸣

快速抠图不留痕,设计看了都精神。

抠图是 PS 中的一项常用技术。但是要做到完美地将图像中的目标选取出来往往费时费力。近日,一个名为 PyMatting 的项目无疑能够帮助你。

项目地址:https://github.com/pymatting/pymatting

无需手动,一键抠图

抠图的 AI 应用场景是这样的:给定一张图像,通过划定一个区域,AI 应当能够估计到划定区域内的前景图目标,并将这个前景完整地抽取出来,用来替换到其他背景的图像中去。

因此,抠图需要两个 AI 能力:首先,AI 需要能够在划定的区域内识别目标。其次,AI 要能够完整地将目标抽取出来,没有划定错误的边缘、模糊的图像等问题。

上图为项目作者提供的示例。给定一只动物的图像(左上),以及人划定的区域(右上),算法应当能够获得划定区域内目标的阿尔法通道,即区分前景和背景的黑白轮廓(左下)。有了这一数据,就可以从原图中抠去目标,并移动到新的图像中去(右下)。

据项目介绍,PyMatting 具有以下特性。

首先,项目能够完成阿尔法抠图(Alpha Matting),其中包括 Closed-Form 抠图、大核抠图(Large Kernel Matting)、KNN 抠图、基于学习的数字抠图(Learning Based Digital Matting)、随机游走(Random Walk)抠图等算法。

同时,项目也能完成前景预估,包括 Clos Form 前景预估和多级别前景预估(基于 CPU、CUDA 和 OpenCL 等)算法。

该项目还可以进行快速多线程 KNN 搜索、不完全阈值化楚列斯基分解(incomplete thresholded Cholesky decomposition)、V 轮几何多网格预条件子(V-Cycle Geometric Multigrid preconditioner)等。

使用方法

在使用前,你需要保证电脑安装相应的 Python 环境(Python 3),同时需要以下安装包:

numpy>=1.16.0pillow>=5.2.0numba>=0.47.0scipy>=1.1.0由于项目需要 GPU,因此也需要 GPU 相关支持:

cupy-cuda90>=6.5.0 or similarpyopencl>=2019.1.2除此之外,为了进行测试,也需要:

pytest>=5.3.4为了方便使用,作者提供了一些示例代码。例如,如下代码中,给定原始图像和抠图框,可以抽取出阿尔法前景:

frompymattingimportcutoutcutout(#inputimagepath"data/lemur.png",#inputtrimappath"data/lemur_trimap.png",#outputcutoutpath"lemur_cutout.png")

作者还提供了高级代码,直接进行抠图,生成新图像:

image=load_image("../data/lemur/lemur.png","RGB",scale,"box")trimap=load_image("../data/lemur/lemur_trimap.png","GRAY",scale,"nearest")#estimatealphafromimageandtrimapalpha=estimate_alpha_cf(image,trimap)#makegraybackgroundnew_background=np.zeros(image.shape)new_background[:,:]=[0.5,0.5,0.5]#estimateforegroundfromimageandalphaforeground,background=estimate_foreground_ml(image,alpha,return_background=True)#blendforegroundwithbackgroundandalpha,lesscolorbleedingnew_image=blend(foreground,new_background,alpha)

除了代码示例外,项目还提供了测试代码,可在主目录中运行:

python3tests/download_images.pypip3install-rrequirements_tests.txtpytest

这一测试能够覆盖 89% 的代码。

除了项目外,作者还提供了不同的抠图算法的基准测试结果,如下所示:

不同算法在测试数据集上的均方误差大小。

可以看出,基于学习的算法和 Closed-Form 算法都能取得不错的效果。

完整的基准测试结果:https://pymatting.github.io/benchmark.html

knn matting matlab,一键抠图,毛发毕现:这个GitHub项目助你快速PS相关推荐

  1. ps语义分割_一键抠图,毛发毕现:这个GitHub项目助你快速PS

    点击我爱计算机视觉标星,更快获取CVML新技术 抠图是 PS 中的一项常用技术.但是要做到完美地将图像中的目标选取出来往往费时费力.近日,一个名为 PyMatting 的项目无疑能够帮助你. 项目地址 ...

  2. 安卓手机端一键抠图,这款软件适合你

    前言 本期推荐的软件是安卓上一键抠图小神器,有些朋友需要P图可是PS又不会,学又太麻烦,网上一件抠图大部分有需要米,今天这款完美版,一键扣除你想要的人像印章衣物等!有需求的朋友藏好了! // 软件下载 ...

  3. 分享3个一键抠图的免费方法,无需额外下载任何软件

    想不到吧?其实我们电脑上装机必备的Office三件套就能一键抠图,更换背景颜色,如果电脑上没有PS或者因为PS需要学习的操作太过复杂而非常苦恼的小伙伴可以看过来啦,今天阿强就来教你3种无需安装任何额外 ...

  4. 60个Chrome神器插件大收集:助你快速成为B站老司机,一键分析网站技术栈

    乾明 编辑整理  量子位 报道 | 公众号 QbitAI 让WebP图片下载为PNG格式,从Github批量下载表情包,一键滚动截屏整个网页,助你快速成为B站老司机,一键分析网站技术栈,翻录网页视频神 ...

  5. 一键抠图Portrait Matting人像抠图 (C++和Android源码)

    一键抠图Portrait Matting人像抠图 (C++和Android源码) 目录 一键抠图Portrait Matting人像抠图 (C++和Android源码) 1. 项目介绍: 2. MOD ...

  6. K近邻抠图(KNN matting)

    概念 KNN matting提出了基于KNN的拉普拉斯矩阵计算方法,通过KNN构建邻接矩阵,进而得到度矩阵和拉普拉斯矩阵,带入α\alpha的求解方程中. 抠图 抠图技术,把图像中一部分从其他部分分开 ...

  7. 如何从头训练一个一键抠图模型

    如何从头训练一个一键抠图模型 1. 前言 抠图是图像编辑的基础功能之一,在抠图的基础上可以发展出很多有意思的玩法和特效.比如一键更换背景.一键任务卡通化.一键人物素描化等.正是因为这些有意思的玩法,C ...

  8. 安卓最好的浏览器_今日软件 | AI一键抠图、隐私保护工具、全能下载器、安卓启动器、茄子快传、迅雷、批量字符替换、傲游浏览器、全局负一屏...

    今日软件更新 安卓APP 「SHAREit」5.7.18 # 茄子快传,手机文件传输工具 ▾下载:https://lanzoux.com/iyyn4hdfs9c 「QuickEdit」1.7.0 # ...

  9. gif一键抠图 在线_一款支持智能抠图、钢笔抠图的在线抠图工具上线了 速抠图 sukoutu.com...

    简介: 速抠图 sukoutu.com 是一款公益性质的免费在线快速抠图工具,支持8倍高清智能抠图.钢笔抠图.矩阵抠图.图片压缩.图片尺寸调整等,该工具旨在为用户提供更快捷高效的抠图服务. 背景 对于 ...

最新文章

  1. 手握6亿把钥匙 能否打开“智能家居”的大门?
  2. LeetCode-两个结构分别遍历,然后合并
  3. 如何防止空链接,跳转到网页顶端
  4. 论文遇到的格式问题和修正方式
  5. Mysql之索引优化案例
  6. 织梦linux php版本,Linux下安装DedeCMS及安全设置
  7. linux下iSCSI的配置
  8. java文件的打包和解包,Java包装类:什么是包装类对象,什么是打包和解包,当编译遇到自动打包和解包时会发生什么?...
  9. Wordpress世界最牛?做网站用国内cms建站系统才是正道
  10. 自然语言处理(NLP)常用算法入门笔记
  11. ANSYS Help USER300
  12. 细说.NET中的多线程 (六 使用MemoryBarrier,Volatile进行同步)
  13. [51Nod]NOIP2018提高组省一冲奖班模测训练(一)题解
  14. 金融初学者的感受:兴趣的魔力
  15. Android调用系统分享和指定app分享-微信朋友圈图文分享和qq分享
  16. 那些年用过的机械键盘#入坑keychron#
  17. UEStudio/UltraEdit 的语法高亮文件 (*.uew)
  18. Yolov3模型使用教程
  19. Windows循环渐进-Ping程序实现代码
  20. 什么是高性能计算,涉及哪些技术和知识呢?

热门文章

  1. 机器学习实战(五) kaggle练习赛 泰坦尼克获救预测
  2. python嗅探m3u8_python通过m3u8下载视频
  3. java解决兔子_JAVA编程题-用java解决兔子问题
  4. POC原型开发:巡店
  5. spacy 英文模型下载_英语文本处理工具库2 — spaCy
  6. flask debug模式logging模块报错os.rename(self.baseFilename, dfn) WindowsError: [Error 32]
  7. 更改Google Chrome 用户文件存储目录User Data 最简单方法
  8. HTML实现图片360度循环旋转
  9. c语言stone题目,The bridge is made stone.A.byB.fromC.ofD.up 题目和参考答案——青夏教育精英家教网——...
  10. 你为什么总是很忙碌,却还在原地踏步!