一张照片,AI生成抽象画(CLIPasso项目安装使用) | 机器学习

简介: 一张照片,AI生成抽象画(CLIPasso项目安装使用) | 机器学习

前言

最近看到一个比较有意思的项目,可以将照片生成对应的抽象画。


项目地址:github地址


看一下项目提供的效果图。


image.png


是不是很有意思,我果断把项目弄下来自己玩了玩。下面我分享一下安装使用的过程,以供大家参考。


安装

我们先看一下作者给出的安装说明。


image.png


作者给出docker安装模式和pip安装模式,之前很多篇文章我都是使用pip进行安装部署的,这一次我决定偷懒使用docker方式。下面依次说下我的安装过程,给没有这么操作过的同学演示一下。


拉取镜像

按照作者的命令,在准备好的带显卡服务器上拉取镜像。


docker pull yaelvinker/clipasso_docker

这个命令耗时很长,你要多等等。


启动容器

镜像拉取完成后,我使用的启动命令如下:


docker run --name=hy-c -itd --restart=always --gpus all --shm-size 16G -p 2281:22 --log-opt max-size=50m --log-opt max-file=10 yaelvinker/clipasso_docker

没有按照作者提供的命令,我这里做一下说明。


1、主要将外部的显卡映射到容器内。


2、映射出22端口到外部的2281端口,是为了本地pycharm调试使用。如果有感兴趣的可以参考


Pycharm代码docker容器运行调试 | 机器学习系列_剑客阿良_ALiang的博客-CSDN博客_docker调试代码

介绍常规的本地化运行机器学习代码,安装Anaconda+cuda显卡驱动支持,许多文章都有介绍,不在此多做赘述了。本文主要是为了解决在工作环境中,本机电脑没有显卡,需要将程序运行在带显卡的远程服务器上。本文会介绍如何部署使用显卡的docker容器、如何使用pycharm连接docker容器运行机器学习代码。版本Pycharm: 2020.1.3docker:19.03.12python: 3.6.13demo算法: BackgroundMattingV2部署下面我会按照.

https://huyi-aliang.blog.csdn.net/article/details/120556923

如果不需要类似调试的话,可以去掉这部分的命令。


拉取项目

cd /home

git clone https://github.com/yael-vinker/CLIPasso.git

cd CLIPasso/

目录结构如下


image.png


使用

在使用之前我们先看一下作者给的一些参数解释。


Optional arguments:


--num_strokes Defines the number of strokes used to create the sketch, which determines the level of abstraction. The default value is set to 16, but for different images, different numbers might produce better results.

--mask_object It is recommended to use images without a background, however, if your image contains a background, you can mask it out by using this flag with "1" as an argument.

--fix_scale If your image is not squared, it might be cut off, it is recommended to use this flag with 1 as input to automatically fix the scale without cutting the image.

--num_sketches As stated in the paper, by default there will be three parallel running scripts to synthesize three sketches and automatically choose the best one. However, for some environments (for example when running on CPU) this might be slow, so you can specify --num_sketches 1 instead.

-cpu If you want to run the code on the cpu (not recommended as it might be very slow).

简单说明一下


1、第一个参数--num_strokes主要是用来标识笔画数等级的,默认为16。简而言之,数量越大,画面越详细,数量越小,画面越抽象。


2、第二个参数--mask_object是用来扣除背景的,如果需要的话,使用1。


3、第三个参数--fix_scale是用来配置是否需要切图的,如果不配置的话,项目会先将图片转化为1:1的分辨率,如果想要保持原来的分辨率,需要配置为1。


4、第四个参数--num_sketches,默认为跑3次选最好的一次,如果你只想要1次,配置1就行。


5、第五个参数是否使用CPU,就不细说了。


样例一

下面是准备的第一张图,背景为纯白色。


image.png


执行命令如下


python run_object_sketching.py --target_file "changjinglu.jpg"

执行结果


image.png


看一下效果


image.png


可以看出跑了3次。


image.png


还挺有意思的,大致的轮廓还是比较清晰的。


样例二

第二张图我挑了一张有背景的。


image.png


执行命令如下


python run_object_sketching.py --target_file "redainiao.jpg" --num_strokes 8 --num_sketches 1 --mask_object 1 --fix_scale 1

参数上,我减少了笔画数,并且需要扣除一下背景以及保留原比例。


执行结果


image.png


看一下效果


image.png

image.png




整体形象还是非常不错的,很清晰的看出鸟的轮廓。


样例三

第三幅图我找了一张蒙娜丽莎的画像,主要想看看不扣背景,油画的抽象画效果。


image.png


执行命令如下


python run_object_sketching.py --target_file "mengnalisha.jpg" --num_strokes 32 --num_sketches 1 --fix_scale 1

参数上,我增加了一些笔画,保留比例且不扣背景。


执行结果


image.png


看一下效果


image.png


哈哈哈,很有喜感,虽然效果不是很好,可能和我设置的笔画数太少有关。留个悬念,大家有兴趣可以加多一些笔画数看看效果。


补充(很关键)

注意看一下这部分代码。


image.png


在容器化部署安装过程中,镜像是带有该预处理模型的。如果pip安装的话,需要自己下载,google云盘,懂得都懂。所以我把模型放到我的百度云盘上,需要的也可以从下面的链接下载。


链接:https://pan.baidu.com/s/1sHDJu8XS9atyJdcNcfnfNw

提取码:TUAN


总结

很久没有写机器学习这个系列了,其实我自己在github上已经收藏了不少有意思的项目,有时间都会玩玩看。如果有时间还可以把项目改改变成工具分享出来,但是最近比较忙,在研究点新东西。分享:


       Yet high over the city our line of yellow windows must have contributed their share of human secrecy to the casual watcher in the darkening streets, and I was him too, looking up and wondering. I was within and without, simultaneously enchanted and repelled by the inexhaustible variety of life.——《了不起的盖茨比》


如果本文对你有帮助的话,点个赞吧,谢谢!


相关文章
|
11天前
|
存储 人工智能 大数据
AI开发新范式,PAI模型构建平台升级发布
本次分享由阿里云智能集团产品专家高慧玲主讲,聚焦AI开发新范式及PAI模型构建平台的升级。分享分为四个部分,围绕“人人可用”和“面向生产”两大核心理念展开。通过降低AI工程化门槛、提供一站式全链路服务,PAI平台致力于帮助企业和开发者更高效地实现AI应用。案例展示中,介绍了多模态模型微调在文旅场景的应用,展示了如何快速复现并利用AI解决实际问题。最终目标是让AI技术更普及,赋能各行业,推动社会进步。
|
12天前
|
SQL 人工智能 关系型数据库
PolarDB-PG AI最佳实践 2 :PolarDB AI X EAS实现自定义库内模型推理最佳实践
PolarDB通过POLAR_AI插件支持使用SQL调用AI/ML模型,无需专业AI知识或额外部署环境。结合阿里云EAS在线模型服务,可轻松部署自定义模型,在SQL中实现如文本翻译等功能。
|
11天前
|
人工智能 安全 大数据
PAI年度发布:GenAI时代AI基础设施的演进
本文介绍了AI平台在大语言模型时代的新能力和发展趋势。面对推理请求异构化、持续训练需求及安全可信挑战,平台推出了一系列优化措施,包括LLM智能路由、多模态内容生成服务、serverless部署模式等,以提高资源利用效率和降低使用门槛。同时,发布了训推一体调度引擎、竞价任务等功能,助力企业更灵活地进行训练与推理任务管理。此外,PAI开发平台提供了丰富的工具链和最佳实践,支持从数据处理到模型部署的全流程开发,确保企业和开发者能高效、安全地构建AI应用,享受AI带来的红利。
|
15天前
|
人工智能 安全 算法
PAI负责任的AI解决方案: 安全、可信、隐私增强的企业级AI
在《PAI可信AI解决方案》会议中,分享了安全、可信、隐私增强的企业级AI。会议围绕三方面展开:首先通过三个案例介绍生活和技术层面的挑战;其次阐述构建AI的关键要素;最后介绍阿里云PAI的安全功能及未来展望,确保数据、算法和模型的安全与合规,提供全方位的可信AI解决方案。
|
11天前
|
人工智能 容灾 Serverless
AI推理新纪元,PAI全球化模型推理服务的创新与实践
本次分享主题为“AI推理新纪元,PAI全球化模型推理服务的创新与实践”,由阿里云高级产品经理李林杨主讲。内容涵盖生成式AI时代推理服务的变化与挑战、play IM核心引擎的优势及ES专属网关的应用。通过LM智能路由、多模态异步生成等技术,PAI平台实现了30%以上的成本降低和显著性能提升,确保全球客户的业务稳定运行并支持异地容灾,目前已覆盖16个地域,拥有10万张显卡的推理集群。
|
11天前
|
人工智能 运维 API
PAI企业级能力升级:应用系统构建、高效资源管理、AI治理
PAI平台针对企业用户在AI应用中的复杂需求,提供了全面的企业级能力。涵盖权限管理、资源分配、任务调度与资产管理等模块,确保高效利用AI资源。通过API和SDK支持定制化开发,满足不同企业的特殊需求。典型案例中,某顶尖高校基于PAI构建了融合AI与HPC的科研计算平台,实现了作业、运营及运维三大中心的高效管理,成功服务于校内外多个场景。
|
2月前
|
机器学习/深度学习 算法 UED
在数据驱动时代,A/B 测试成为评估机器学习项目不同方案效果的重要方法
在数据驱动时代,A/B 测试成为评估机器学习项目不同方案效果的重要方法。本文介绍 A/B 测试的基本概念、步骤及其在模型评估、算法改进、特征选择和用户体验优化中的应用,同时提供 Python 实现示例,强调其在确保项目性能和用户体验方面的关键作用。
46 6
|
2月前
|
机器学习/深度学习 算法 UED
在数据驱动时代,A/B 测试成为评估机器学习项目效果的重要手段
在数据驱动时代,A/B 测试成为评估机器学习项目效果的重要手段。本文介绍了 A/B 测试的基本概念、步骤及其在模型评估、算法改进、特征选择和用户体验优化中的应用,强调了样本量、随机性和时间因素的重要性,并展示了 Python 在 A/B 测试中的具体应用实例。
37 1
|
2月前
|
机器学习/深度学习 人工智能 自动驾驶
揭秘AI:机器学习如何改变我们的世界
在这篇文章中,我们将深入探讨机器学习如何改变我们的世界。从自动驾驶汽车到智能医疗诊断,机器学习正在逐步渗透到我们生活的每一个角落。我们将通过实例和代码示例,揭示机器学习的工作原理,以及它如何影响我们的生活。无论你是科技爱好者,还是对人工智能充满好奇的普通读者,这篇文章都将为你打开一扇新的大门,带你走进机器学习的世界。
43 0
|
8月前
|
机器学习/深度学习 存储 搜索推荐
利用机器学习算法改善电商推荐系统的效率
电商行业日益竞争激烈,提升用户体验成为关键。本文将探讨如何利用机器学习算法优化电商推荐系统,通过分析用户行为数据和商品信息,实现个性化推荐,从而提高推荐效率和准确性。
263 14