一张照片,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.——《了不起的盖茨比》


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


相关文章
|
机器学习/深度学习 人工智能 供应链
从概念到商业价值:AI、机器学习与深度学习全景指南
在这个科技飞速发展的时代🚀,人工智能正以惊人的速度渗透到我们的生活和工作中👀。但面对铺天盖地的AI术语和概念,很多人感到困惑不已😣。"AI"、"机器学习"、"深度学习"和"神经网络"到底有什么区别?它们如何相互关联?如何利用这些技术提升工作效率和创造价值?
757 0
|
12月前
|
人工智能 数据安全/隐私保护 异构计算
桌面版exe安装和Python命令行安装2种方法详细讲解图片去水印AI源码私有化部署Lama-Cleaner安装使用方法-优雅草卓伊凡
桌面版exe安装和Python命令行安装2种方法详细讲解图片去水印AI源码私有化部署Lama-Cleaner安装使用方法-优雅草卓伊凡
1741 8
桌面版exe安装和Python命令行安装2种方法详细讲解图片去水印AI源码私有化部署Lama-Cleaner安装使用方法-优雅草卓伊凡
|
机器学习/深度学习 人工智能 监控
AI 基础知识从0.1到0.2——用“房价预测”入门机器学习全流程
本系列文章深入讲解了从Seq2Seq、RNN到Transformer,再到GPT模型的关键技术原理与实现细节,帮助读者全面掌握Transformer及其在NLP中的应用。同时,通过一个房价预测的完整案例,介绍了算法工程师如何利用数据训练模型并解决实际问题,涵盖需求分析、数据收集、模型训练与部署等全流程。文章适合初学者和开发者学习AI基础与实战技能。
1513 25
AI 基础知识从0.1到0.2——用“房价预测”入门机器学习全流程
|
机器学习/深度学习 PyTorch API
昇腾AI4S图机器学习:DGL消息传递接口的PyG替换
DGL (Deep Graph Learning) 和 PyG (Pytorch Geometric) 是两个主流的图神经网络库,它们在API设计和底层实现上有一定差异,在不同场景下,研究人员会使用不同的依赖库,昇腾NPU对PyG图机器学习库的支持亲和度更高,因此有些时候需要做DGL接口的PyG替换。
|
机器学习/深度学习 PyTorch API
昇腾AI4S图机器学习:DGL图构建接口的PyG替换
本文探讨了在图神经网络中将DGL接口替换为PyG实现的方法,重点以RFdiffusion蛋白质设计模型中的SE3Transformer为例。SE3Transformer通过SE(3)等变性提取三维几何特征,其图构建部分依赖DGL接口。文章详细介绍了两个关键函数的替换:`make_full_graph` 和 `make_topk_graph`。前者构建完全连接图,后者生成k近邻图。通过PyG的高效实现(如`knn_graph`),我们简化了图结构创建过程,并调整边特征处理逻辑以兼容不同框架,从而更好地支持昇腾NPU等硬件环境。此方法为跨库迁移提供了实用参考。
|
存储 人工智能 云栖大会
【云栖大会】阿里云设计中心 × 教育部协同育人项目成果展,PAI ArtLab助力高校AIGC教育新路径
【云栖大会】阿里云设计中心 × 教育部协同育人项目成果展,PAI ArtLab助力高校AIGC教育新路径
|
机器学习/深度学习 人工智能 自然语言处理
AI训练师入行指南(三):机器学习算法和模型架构选择
从淘金到雕琢,将原始数据炼成智能珠宝!本文带您走进数字珠宝工坊,用算法工具打磨数据金砂。从基础的经典算法到精密的深度学习模型,结合电商、医疗、金融等场景实战,手把手教您选择合适工具,打造价值连城的智能应用。掌握AutoML改装套件与模型蒸馏术,让复杂问题迎刃而解。握紧算法刻刀,为数字世界雕刻文明!
592 6
|
机器学习/深度学习 人工智能 自然语言处理
Java+机器学习基础:打造AI学习基础
随着人工智能(AI)技术的飞速发展,越来越多的开发者开始探索如何将AI技术应用到实际业务场景中。Java作为一种强大的编程语言,不仅在企业级应用开发中占据重要地位,在AI领域也展现出了巨大的潜力。本文将通过模拟一个AI应用,从背景历史、业务场景、优缺点、底层原理等方面,介绍如何使用Java结合机器学习技术来打造一个AI学习的基础Demo。
724 18
|
机器学习/深度学习 数据采集 人工智能
容器化机器学习流水线:构建可复用的AI工作流
本文介绍了如何构建容器化的机器学习流水线,以提高AI模型开发和部署的效率与可重复性。首先,我们探讨了机器学习流水线的概念及其优势,包括自动化任务、确保一致性、简化协作和实现CI/CD。接着,详细说明了使用Kubeflow Pipelines在Kubernetes上构建流水线的步骤,涵盖安装、定义流水线、构建组件镜像及上传运行。容器化流水线不仅提升了环境一致性和可移植性,还通过资源隔离和扩展性支持更大规模的数据处理。