当前位置: 首页 > 后端技术 > Python

Python实例:一键批量抠图

时间:2023-03-26 14:40:13 Python

你有没有想过把某张照片中的人物剪下来,然后拼接成其他图片,这样即使你在天涯海角,我也可以到这里来?专业人士可以使用PhotoShop的“魔棒”工具进行图片裁剪,非专业人士可以使用各种美图APP来实现,但毕竟处理能力有限,一次只能处理一张图片,而且更多复杂的图像可能会被剪掉。这需要很长时间。今天给大家介绍第三种方式——Python一键批量抠图。既然准备工作是要装模作样的,那准备工作就少不了。所谓“站在巨人的肩膀上,做事事半功倍”,我们这里的“巨人”是paddlepaddle,中文名是“飞桨”,那么这个paddlepaddle是什么呢?它是“一个源于工业实践的开源深度学习平台,致力于让深度学习技术的创新和应用变得更简单。”说白了就是帮你实现了深度学习的底层框架。只要你有创意,你就可以在我的平台上使用它。网上有少量简单代码,很容易实现。其官方网站为https://www.paddlepaddle.org.cn/。它的安装也比较简单。官网首页有安装指南。这里我们按照官网的安装指南使用pip安装CPU版本。我们先执行语句:python-mpipinstallpaddlepaddle-ihttps://mirror.baidu.com/pypi/simple安装成功后,我们在python环境下测试是否安装成功(这个也是根据到官网指南),我们切换到python环境,运行如下代码:Python3.7.0(v3.7.0:1bf9cc5093,Jun262018,23:26:24)[Clang6.0(clang-600.0.57)]在darwin上键入“help”、“copyright”、“credits”或“license”以获取更多信息。>>>importpaddle.fluid>>>paddle.fluid.install_check.run_check()RunningVerifyPaddleProgram...您的桨在单GPU或CPU上运行良好。I050621:47:48.6574042923565952parallel_executor.cc:440]The程序将在CPU上使用ParallelExecutor执行,使用2个卡,因此并行执行2个程序。W050621:47:48.6584072923565952fuse_all_reduce_op_pass.cc:74]查找all_reduce算子:2.为了使速度更快,一些all_reduceops训练时融合,融合后all_reduceops个数为1.I050621:47:48.6585162923565952build_numstrategy.cc:365]Seq0train_AllReduce:Ops50621:47:48.6591372923565952parallel_executor.cc:307]启用就地策略,当build_strategy.enable_inplace=TrueI050621:47:48.6595952923565952parallel_executor.cc:375]启用垃圾收集策略,当FLAGS_tensor_deletePaddlee=workswell多个GPU或CPU。您的Paddle安装成功!Let'sstartdeepLearningwithPaddlenow>>>SeeingYourPaddleisinstalledsuccessfully表示安装成功。接下来我们要用到的是本平台的paddlehub工具,所以我们还需要安装paddlehub:pipinstall-ihttps://mirror.baidu.com/pypi...paddlehub安装好后,我们就可以开始使用了。代码实现我们的实现步骤很简单:导入模块->加载模型->获取图片文件->调用模块抠图。下面看代码实现:importos,paddlehubashubbuseg=hub.Module(name='deeplabv3p_xception65_humanseg')#loadmodelpath='./imgs/'#filedirectoryfiles=[path+iforiinos.listdir(path)]#获取文件列表results=huseg.segmentation(data={'image':files})#抠图我把图片放在代码文件夹同级目录的imgs文件夹下,运行代码后,输出的抠图图片会自动放到和代码同目录的humanseg_output目录下。文件名与原图相同,但文件格式为png。我在imgs目录下放了5张图片。为了演示方便,我把它们放在一起截图:运行程序后,在humanseg_output目录下生成了5张图片。同样,我把它们放在一起截图:我们可以看到直到程序识别出每张图片中的字符(可以是一个或多个),并将它们裁剪成一张图片,背景是白色的。虽然在一些细节上有一些瑕疵,但看起来还是很不错的。本文基于paddlepaddle平台,用简单的五行代码实现了批量抠图,不仅解放了很多人的双手和眼睛,也为一些程序员/程序员自命不凡的工具箱提供了一个宝库。下次遇到为抠图而烦恼的妹子或闺蜜,别忘了拿出法宝,收服你的芳心!文渊网,仅供学习,侵删。学习Python的路上肯定会遇到困难,不要慌张,我这里有一套学习资料,包括40+电子书,800+教学视频,涉及Python基础、爬虫、框架、数据分析、机学习等等,别怕你学不会!https://shimo.im/docs/JWCghr8...《Python学习资料》关注公众号【蟒圈】,每日优质文章推送。