背景
最近刷视频经常刷到oppo手机的图片处理特色功能--清除手机不想要的人物;今天推荐一个开源项目,也可以实现同样的功能,废话不多说先来看一下效果
-
处理前
-
处理后
服务搭建
lama-cleaner介绍
lama-cleaner是一个前后端分离的服务,后端使用python,前端使用nodejs编写的服务,使用的是开源项目lama实现的图像操作,还支持很多其他的插件,windows端和macos还有相应的软件可以直接下载安装
插件包括:
- RemoveBG: Remove images background
- RealESRGAN: Super Resolution
- GFPGAN: Face Restoration
- RestoreFormer: Face Restoration
- Segment Anything: Accurate and fast interactive object segmentation
安装软件
在linux上搭建服务
作为一个普通程序员,一般用的笔记本的显卡性能都不太好,既然lama-cleaner是一个服务那我们就在有好显卡的台式机上部署部署一个服务,这样在哪台机器上都可以使用了
系统环境
- Ubuntu 22.0.4.1
- GPU GeForce RTX 2080 Ti
- 软件环境anaconda3
- CPU Intel(R) Core(TM) i7-9700K CPU @ 3.60GHz
搭建
- 安装anoconda3
linux 下载地址
windows下载地址
macos下载地址 - 创建虚拟环境
conda create -n lamalc python=3.10
- 安装lama-cleaner依赖
下载代码 clone或者下载,我用的lama-cleaner版本是1.2.0,这个项目好像前不久更新了,名字都改了
git clone https://github.com/Sanster/lama-cleaner
启动虚拟环境
source activate lamalc
安装依赖
cd lama-cleaner
pip install -r requirements.txt
- 启动后端服务
下载模型地址
export LAMA_MODEL_URL=./weights/big-lama.pt
python main.py --model=lama --device=cuda --port=8090
- 安装nodejs
linux nodejs下载
windows nodejs下载
macos nodejs下载
解压并添加环境变量 - 安装lama-cleaner app依赖
cd lama_cleaner/app/ && pnpm install
- 启动前端服务
pnpm start
前端地址http://localhost:3000,直接在浏览器中打开使用