当前位置: 首页 > news >正文

基于【Lama Cleaner】一键秒去水印,轻松移除不想要的内容!

一、项目背景

革命性的AI图像编辑技术,让您的图片焕然一新!无论水印、logo、不想要的人物或物体,都能被神奇地移除,只留下纯净的画面。操作简单,效果出众,给你全新的视觉体验。开启图像编辑新纪元,尽在掌控!

利用去水印开源工具Lama Cleaner对照片中"杂质"进行去除!

可以去AI擦除一切应用体验!

先看效果:

 

二、Lama Cleaner是什么?

Lama Cleaner是一款开源且免费的人工学习图片去水印程序(个人主要学习用途),没有图片分辨率限制(个人使用暂未发现),并且保存的图片质量很高(个人觉得跟原图差不多),还能下载处理后的图片到本地。

三、操作

1、安装

In [1]

!pip install litelama==0.1.7
Looking in indexes: https://mirror.baidu.com/pypi/simple/, https://mirrors.aliyun.com/pypi/simple/
Collecting litelama==0.1.7Downloading https://mirrors.aliyun.com/pypi/packages/6e/59/873f5cbaeae1f2b17e6d1ae6c74e1efde28783db4d7442346a77a6140673/litelama-0.1.7-py3-none-any.whl (21 kB)
Collecting kornia>=0.7.0 (from litelama==0.1.7)Downloading https://mirrors.aliyun.com/pypi/packages/ac/fa/5612c4b1ad83b3044062e9dd0ca3c91937d8023cff0836269e18573655b0/kornia-0.7.2-py2.py3-none-any.whl (825 kB)━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 825.4/825.4 kB 1.1 MB/s eta 0:00:0000:0100:01
Requirement already satisfied: numpy>=1.24.4 in /opt/conda/envs/python35-paddle120-env/lib/python3.10/site-packages (from litelama==0.1.7) (1.26.2)
Collecting omegaconf>=2.3.0 (from litelama==0.1.7)Downloading https://mirrors.aliyun.com/pypi/packages/e3/94/1843518e420fa3ed6919835845df698c7e27e183cb997394e4a670973a65/omegaconf-2.3.0-py3-none-any.whl (79 kB)━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 79.5/79.5 kB 1.1 MB/s eta 0:00:00a 0:00:01
Requirement already satisfied: opencv-python>=4.8.0.76 in /opt/conda/envs/python35-paddle120-env/lib/python3.10/site-packages (from litelama==0.1.7) (4.8.1.78)
Requirement already satisfied: pillow>=10.0.1 in /opt/conda/envs/python35-paddle120-env/lib/python3.10/site-packages (from litelama==0.1.7) (10.1.0)
Requirement already satisfied: requests>=2.31.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.10/site-packages (from litelama==0.1.7) (2.31.0)
Requirement already satisfied: safetensors>=0.3.3 in /opt/conda/envs/python35-paddle120-env/lib/python3.10/site-packages (from litelama==0.1.7) (0.4.1)
Collecting torch>=2.0.1 (from litelama==0.1.7)Downloading https://mirrors.aliyun.com/pypi/packages/33/b3/1fcc3bccfddadfd6845dcbfe26eb4b099f1dfea5aa0e5cfb92b3c98dba5b/torch-2.2.2-cp310-cp310-manylinux1_x86_64.whl (755.5 MB)━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 755.5/755.5 MB 769.7 kB/s eta 0:00:0000:0100:16
Collecting kornia-rs>=0.1.0 (from kornia>=0.7.0->litelama==0.1.7)Downloading https://mirrors.aliyun.com/pypi/packages/7b/ef/eec16e87bc8893f608a42c96739ad0c35e30877b0f64bd19d95971534cef/kornia_rs-0.1.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.4 MB)━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.4/2.4 MB 1.3 MB/s eta 0:00:0000:0100:01
Requirement already satisfied: packaging in /opt/conda/envs/python35-paddle120-env/lib/python3.10/site-packages (from kornia>=0.7.0->litelama==0.1.7) (23.2)
Collecting antlr4-python3-runtime==4.9.* (from omegaconf>=2.3.0->litelama==0.1.7)Downloading https://mirrors.aliyun.com/pypi/packages/3e/38/7859ff46355f76f8d19459005ca000b6e7012f2f1ca597746cbcd1fbfe5e/antlr4-python3-runtime-4.9.3.tar.gz (117 kB)━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 117.0/117.0 kB 1.3 MB/s eta 0:00:00a 0:00:01Preparing metadata (setup.py) ... done
Requirement already satisfied: PyYAML>=5.1.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.10/site-packages (from omegaconf>=2.3.0->litelama==0.1.7) (6.0.1)
Requirement already satisfied: charset-normalizer<4,>=2 in /opt/conda/envs/python35-paddle120-env/lib/python3.10/site-packages (from requests>=2.31.0->litelama==0.1.7) (3.3.2)
Requirement already satisfied: idna<4,>=2.5 in /opt/conda/envs/python35-paddle120-env/lib/python3.10/site-packages (from requests>=2.31.0->litelama==0.1.7) (3.6)
Requirement already satisfied: urllib3<3,>=1.21.1 in /opt/conda/envs/python35-paddle120-env/lib/python3.10/site-packages (from requests>=2.31.0->litelama==0.1.7) (2.1.0)
Requirement already satisfied: certifi>=2017.4.17 in /opt/conda/envs/python35-paddle120-env/lib/python3.10/site-packages (from requests>=2.31.0->litelama==0.1.7) (2023.11.17)
Requirement already satisfied: filelock in /opt/conda/envs/python35-paddle120-env/lib/python3.10/site-packages (from torch>=2.0.1->litelama==0.1.7) (3.13.1)
Requirement already satisfied: typing-extensions>=4.8.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.10/site-packages (from torch>=2.0.1->litelama==0.1.7) (4.9.0)
Collecting sympy (from torch>=2.0.1->litelama==0.1.7)Downloading https://mirrors.aliyun.com/pypi/packages/d2/05/e6600db80270777c4a64238a98d442f0fd07cc8915be2a1c16da7f2b9e74/sympy-1.12-py3-none-any.whl (5.7 MB)━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 5.7/5.7 MB 1.3 MB/s eta 0:00:0000:0100:01
Collecting networkx (from torch>=2.0.1->litelama==0.1.7)Downloading https://mirrors.aliyun.com/pypi/packages/d5/f0/8fbc882ca80cf077f1b246c0e3c3465f7f415439bdea6b899f6b19f61f70/networkx-3.2.1-py3-none-any.whl (1.6 MB)━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.6/1.6 MB 1.3 MB/s eta 0:00:0000:0100:01
Requirement already satisfied: jinja2 in /opt/conda/envs/python35-paddle120-env/lib/python3.10/site-packages (from torch>=2.0.1->litelama==0.1.7) (3.1.2)
Requirement already satisfied: fsspec in /opt/conda/envs/python35-paddle120-env/lib/python3.10/site-packages (from torch>=2.0.1->litelama==0.1.7) (2023.10.0)
Collecting nvidia-cuda-nvrtc-cu12==12.1.105 (from torch>=2.0.1->litelama==0.1.7)Downloading https://mirrors.aliyun.com/pypi/packages/b6/9f/c64c03f49d6fbc56196664d05dba14e3a561038a81a638eeb47f4d4cfd48/nvidia_cuda_nvrtc_cu12-12.1.105-py3-none-manylinux1_x86_64.whl (23.7 MB)━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 23.7/23.7 MB 1.3 MB/s eta 0:00:0000:0100:01
Collecting nvidia-cuda-runtime-cu12==12.1.105 (from torch>=2.0.1->litelama==0.1.7)Downloading https://mirrors.aliyun.com/pypi/packages/eb/d5/c68b1d2cdfcc59e72e8a5949a37ddb22ae6cade80cd4a57a84d4c8b55472/nvidia_cuda_runtime_cu12-12.1.105-py3-none-manylinux1_x86_64.whl (823 kB)━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 823.6/823.6 kB 1.2 MB/s eta 0:00:0000:0100:01
Collecting nvidia-cuda-cupti-cu12==12.1.105 (from torch>=2.0.1->litelama==0.1.7)Downloading https://mirrors.aliyun.com/pypi/packages/7e/00/6b218edd739ecfc60524e585ba8e6b00554dd908de2c9c66c1af3e44e18d/nvidia_cuda_cupti_cu12-12.1.105-py3-none-manylinux1_x86_64.whl (14.1 MB)━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 14.1/14.1 MB 1.2 MB/s eta 0:00:0000:0100:01
Collecting nvidia-cudnn-cu12==8.9.2.26 (from torch>=2.0.1->litelama==0.1.7)Downloading https://mirrors.aliyun.com/pypi/packages/ff/74/a2e2be7fb83aaedec84f391f082cf765dfb635e7caa9b49065f73e4835d8/nvidia_cudnn_cu12-8.9.2.26-py3-none-manylinux1_x86_64.whl (731.7 MB)━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 731.7/731.7 MB 737.2 kB/s eta 0:00:0000:0100:16
Collecting nvidia-cublas-cu12==12.1.3.1 (from torch>=2.0.1->litelama==0.1.7)Downloading https://mirrors.aliyun.com/pypi/packages/37/6d/121efd7382d5b0284239f4ab1fc1590d86d34ed4a4a2fdb13b30ca8e5740/nvidia_cublas_cu12-12.1.3.1-py3-none-manylinux1_x86_64.whl (410.6 MB)━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 410.6/410.6 MB 1.0 MB/s eta 0:00:0000:0100:08
Collecting nvidia-cufft-cu12==11.0.2.54 (from torch>=2.0.1->litelama==0.1.7)Downloading https://mirrors.aliyun.com/pypi/packages/86/94/eb540db023ce1d162e7bea9f8f5aa781d57c65aed513c33ee9a5123ead4d/nvidia_cufft_cu12-11.0.2.54-py3-none-manylinux1_x86_64.whl (121.6 MB)━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 121.6/121.6 MB 1.3 MB/s eta 0:00:0000:0100:03
Collecting nvidia-curand-cu12==10.3.2.106 (from torch>=2.0.1->litelama==0.1.7)Downloading https://mirrors.aliyun.com/pypi/packages/44/31/4890b1c9abc496303412947fc7dcea3d14861720642b49e8ceed89636705/nvidia_curand_cu12-10.3.2.106-py3-none-manylinux1_x86_64.whl (56.5 MB)━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 56.5/56.5 MB 1.4 MB/s eta 0:00:0000:0100:01
Collecting nvidia-cusolver-cu12==11.4.5.107 (from torch>=2.0.1->litelama==0.1.7)Downloading https://mirrors.aliyun.com/pypi/packages/bc/1d/8de1e5c67099015c834315e333911273a8c6aaba78923dd1d1e25fc5f217/nvidia_cusolver_cu12-11.4.5.107-py3-none-manylinux1_x86_64.whl (124.2 MB)━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 124.2/124.2 MB 1.4 MB/s eta 0:00:0000:0100:03
Collecting nvidia-cusparse-cu12==12.1.0.106 (from torch>=2.0.1->litelama==0.1.7)Downloading https://mirrors.aliyun.com/pypi/packages/65/5b/cfaeebf25cd9fdec14338ccb16f6b2c4c7fa9163aefcf057d86b9cc248bb/nvidia_cusparse_cu12-12.1.0.106-py3-none-manylinux1_x86_64.whl (196.0 MB)━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 196.0/196.0 MB 1.2 MB/s eta 0:00:0000:0100:04
Collecting nvidia-nccl-cu12==2.19.3 (from torch>=2.0.1->litelama==0.1.7)Downloading https://mirrors.aliyun.com/pypi/packages/38/00/d0d4e48aef772ad5aebcf70b73028f88db6e5640b36c38e90445b7a57c45/nvidia_nccl_cu12-2.19.3-py3-none-manylinux1_x86_64.whl (166.0 MB)━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 166.0/166.0 MB 1.2 MB/s eta 0:00:0000:0100:04
Collecting nvidia-nvtx-cu12==12.1.105 (from torch>=2.0.1->litelama==0.1.7)Downloading https://mirrors.aliyun.com/pypi/packages/da/d3/8057f0587683ed2fcd4dbfbdfdfa807b9160b809976099d36b8f60d08f03/nvidia_nvtx_cu12-12.1.105-py3-none-manylinux1_x86_64.whl (99 kB)━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 99.1/99.1 kB 1.0 MB/s eta 0:00:00a 0:00:01
Collecting triton==2.2.0 (from torch>=2.0.1->litelama==0.1.7)Downloading https://mirrors.aliyun.com/pypi/packages/95/05/ed974ce87fe8c8843855daa2136b3409ee1c126707ab54a8b72815c08b49/triton-2.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (167.9 MB)━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 167.9/167.9 MB 1.2 MB/s eta 0:00:0000:0100:04
Collecting nvidia-nvjitlink-cu12 (from nvidia-cusolver-cu12==11.4.5.107->torch>=2.0.1->litelama==0.1.7)Downloading https://mirrors.aliyun.com/pypi/packages/58/d1/d1c80553f9d5d07b6072bc132607d75a0ef3600e28e1890e11c0f55d7346/nvidia_nvjitlink_cu12-12.4.99-py3-none-manylinux2014_x86_64.whl (21.1 MB)━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 21.1/21.1 MB 1.4 MB/s eta 0:00:0000:0100:01
Requirement already satisfied: MarkupSafe>=2.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.10/site-packages (from jinja2->torch>=2.0.1->litelama==0.1.7) (2.1.3)
Collecting mpmath>=0.19 (from sympy->torch>=2.0.1->litelama==0.1.7)Downloading https://mirrors.aliyun.com/pypi/packages/43/e3/7d92a15f894aa0c9c4b49b8ee9ac9850d6e63b03c9c32c0367a13ae62209/mpmath-1.3.0-py3-none-any.whl (536 kB)━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 536.2/536.2 kB 1.3 MB/s eta 0:00:0000:0100:01
Building wheels for collected packages: antlr4-python3-runtimeBuilding wheel for antlr4-python3-runtime (setup.py) ... doneCreated wheel for antlr4-python3-runtime: filename=antlr4_python3_runtime-4.9.3-py3-none-any.whl size=144554 sha256=077a76af915c8b5e871c1a81a6cbda25ccce15c65326cd9d79be4d51a5141f99Stored in directory: /home/aistudio/.cache/pip/wheels/79/82/b1/b79d6e90f34257cd436860ed4f4a09f9e1ea8cd32da7046ea4
Successfully built antlr4-python3-runtime
Installing collected packages: mpmath, antlr4-python3-runtime, triton, sympy, omegaconf, nvidia-nvtx-cu12, nvidia-nvjitlink-cu12, nvidia-nccl-cu12, nvidia-curand-cu12, nvidia-cufft-cu12, nvidia-cuda-runtime-cu12, nvidia-cuda-nvrtc-cu12, nvidia-cuda-cupti-cu12, nvidia-cublas-cu12, networkx, kornia-rs, nvidia-cusparse-cu12, nvidia-cudnn-cu12, nvidia-cusolver-cu12, torch, kornia, litelama
Successfully installed antlr4-python3-runtime-4.9.3 kornia-0.7.2 kornia-rs-0.1.2 litelama-0.1.7 mpmath-1.3.0 networkx-3.2.1 nvidia-cublas-cu12-12.1.3.1 nvidia-cuda-cupti-cu12-12.1.105 nvidia-cuda-nvrtc-cu12-12.1.105 nvidia-cuda-runtime-cu12-12.1.105 nvidia-cudnn-cu12-8.9.2.26 nvidia-cufft-cu12-11.0.2.54 nvidia-curand-cu12-10.3.2.106 nvidia-cusolver-cu12-11.4.5.107 nvidia-cusparse-cu12-12.1.0.106 nvidia-nccl-cu12-2.19.3 nvidia-nvjitlink-cu12-12.4.99 nvidia-nvtx-cu12-12.1.105 omegaconf-2.3.0 sympy-1.12 torch-2.2.2 triton-2.2.0

2、clean_object

In [2]

from litelama import LiteLama
from litelama.model import download_file
import os
from fastapi import FastAPI, BodyMODEL_PATH = "work/models/"def clean_object_init_img_with_mask(init_img_with_mask):return clean_object(init_img_with_mask['image'],init_img_with_mask['mask'])def clean_object(image,mask):Lama = LiteLama2()init_image = imagemask_image = maskinit_image = init_image.convert("RGB")mask_image = mask_image.convert("RGB")device = "cuda:0"result = Nonetry:Lama.to(device)result = Lama.predict(init_image, mask_image)except:passfinally:Lama.to("cpu")return [result]class LiteLama2(LiteLama):_instance = Nonedef __new__(cls, *args, **kw):if cls._instance is None:cls._instance = object.__new__(cls, *args, **kw)return cls._instancedef __init__(self, checkpoint_path=None, config_path=None):self._checkpoint_path = checkpoint_pathself._config_path = config_pathself._model = Noneif self._checkpoint_path is None:checkpoint_path = os.path.join(MODEL_PATH, "big-lama.safetensors")if  os.path.exists(checkpoint_path) and os.path.isfile(checkpoint_path):passelse:download_file("https://huggingface.co/anyisalin/big-lama/resolve/main/big-lama.safetensors", checkpoint_path)self._checkpoint_path = checkpoint_pathself.load(location="cpu")

3、去除标记物

 

In [3]

from PIL import Image
from work.scripts import lama
# 打开图片文件
image = Image.open("work/scripts/1.jpg")
mask = Image.open("work/scripts/image.png")
_output = clean_object(image,mask)
print(_output)
/opt/conda/envs/python35-paddle120-env/lib/python3.10/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.htmlfrom .autonotebook import tqdm as notebook_tqdm
[<PIL.Image.Image image mode=RGB size=464x712 at 0x7F5007677B20>]

4、查看结果

In [4]

_output[0].show()

<PIL.Image.Image image mode=RGB size=464x712>

四、Gradio应用部署

本文开头所示的Gradio应用已经打包在work/scripts目录下的app.gradio.py文件内,大家可按照aistudio应用部署的方法进行在线部署,也可下载文件到本地进行本地运行。

具体步骤如下:

  1. 编辑器右上角找到部署按钮

  1. 选择Gradio部署

  1. 填写应用信息,执行文件选择 app.gradio.py,部署环境选择 GPU 即可,最后点击部署,接下来耐心等待部署完成。

相关文章:

基于【Lama Cleaner】一键秒去水印,轻松移除不想要的内容!

一、项目背景 革命性的AI图像编辑技术,让您的图片焕然一新!无论水印、logo、不想要的人物或物体,都能被神奇地移除,只留下纯净的画面。操作简单,效果出众,给你全新的视觉体验。开启图像编辑新纪元,尽在掌控! 利用去水印开源工具Lama Cleaner对照片中"杂质"进行去除…...

VMware Workstation Ubuntu server 24 (Linux) 磁盘扩容 挂载硬盘

1 Ubuntu server 关机,新增加磁盘 2 启动ubuntu虚拟机,分区和挂载磁盘 sudo fdisk /dev/sdb #查看磁盘UUID sudo blkid #创建挂载目录 sudo mkdir /mnt/data # sudo vi /etc/fstab /dev/disk/by-uuid/0b440ed0-b28b-4756-beeb-10c585e3d101 /mnt/data ext4 defaults 0 1 #加…...

表的设计与查询

目录 一、表的设计 1.第一范式&#xff08;一对一&#xff09; 定义&#xff1a; 示例&#xff1a; 2.第二范式&#xff08;一对多&#xff09; 定义&#xff1a; 要求&#xff1a; 示例&#xff1a; 3.第三范式&#xff08;多对多&#xff09; 定义&#xff1a; 要求…...

【react】如何合理使用useEffect

useEffect 是 React Hooks API 的一部分,它允许你在函数组件中执行副作用操作,比如数据获取、订阅或者手动更改 DOM。合理使用 useEffect 可以帮助你管理组件的生命周期行为,同时避免不必要的渲染和性能问题。以下是一些关于如何合理使用 useEffect 的建议: 明确依赖项: 当…...

计算机专业英语Computer English

计算机专业英语 Computer English 高等学校计算机英语教材 Contents 目录 Part One Computer hardware and software 计算机硬件和软件----------盖金曙 生家峰 Unit 1 the History of Computers计算机的历史 Unit 2 Computer System计算机系统 Unit 3 Di…...

目前比较好用的LabVIEW架构及其选择

LabVIEW提供了多种架构供开发者选择&#xff0c;以满足不同类型项目的需求。选择合适的架构不仅可以提高开发效率&#xff0c;还能确保项目的稳定性和可维护性。本文将介绍几种常用的LabVIEW架构&#xff0c;并根据不同项目需求和个人习惯提供选择建议。 常用LabVIEW架构 1. …...

CSS之块浮动

在盒子模型的基础上就可以对网页进行设计 不知道盒子模型的可以看前面关于盒子模型的内容 而普通的网页设计具有一定的原始规律,这个原始规律就是文档流 文档流 标签在网页二维平面内默认的一种排序方式,块级标签不管怎么设置都会占一行,而同一行不能放置两个块级标签 行级…...

探索GPT-4V在学术领域的应用——无需编程即可阅读和理解科学论文

1. 概述 论文地址&#xff1a;https://arxiv.org/pdf/2312.05468.pdf 随着人工智能潜力的不断扩大&#xff0c;人工智能&#xff08;AI&#xff09;在化学领域的应用也在迅速发展。特别是大规模语言模型的出现&#xff0c;极大地扩展了人工智能在化学研究中的作用。由于这些模…...

耐用充电宝有哪些?优质充电宝到底选哪个?良心推荐!

在电量即生产力的现今时代&#xff0c;如何为移动设备寻找一位最佳的伴侣呢&#xff1f;一款耐用、优质的充电宝无疑是你的不二之选。今天我们将带您揭开市场隐藏的一面&#xff0c;揭示哪些充电宝品牌真正代表了耐用与品质的标杆。让我们一起深入了解并选购最适合自己的充电宝…...

何为屎山代码?

在编程界&#xff0c;有一种代码被称为"屎山代码"。这并非指某种编程语言或方法&#xff0c;而是对那些庞大而复杂的项目的一种形象称呼。屎山代码&#xff0c;也被称为"祖传代码"&#xff0c;是历史遗留问题&#xff0c;是前人留给我们的"宝藏"…...

基于esp8266_点灯blinker_智能家居

文章目录 一 实现思路1 项目简介2 项目构成3 代码实现4 外壳部分 二 效果展示UI图片 一 实现思路 摘要&#xff1a;esp8266&#xff0c;mixly&#xff0c;点灯blinker&#xff0c;物联网&#xff0c;智能家居&#xff0c;3donecut 1 项目简介 1 项目效果 通过手机blinker app…...

Web前端开发交流群:深度探索、实践与创新的集结地

Web前端开发交流群&#xff1a;深度探索、实践与创新的集结地 在数字时代的浪潮中&#xff0c;Web前端开发扮演着举足轻重的角色。为了促进前端技术的交流与发展&#xff0c;Web前端开发交流群应运而生&#xff0c;成为众多开发者学习、分享、创新的集结地。本文将从四个方面、…...

苹果AI一夜颠覆所有,Siri史诗级进化,内挂GPT-4o

苹果AI一夜颠覆所有&#xff0c;Siri史诗级进化&#xff0c;内挂GPT-4o 刚刚&#xff0c;苹果AI&#xff0c;正式交卷&#xff01; 今天&#xff0c;苹果构建了一个全新AI帝国——个人化智能系统Apple Intelligence诞生&#xff0c;智能助手Siri迎来诞生13年以来的史诗级进化…...

量子计算的奥秘与魅力:开启未来科技的钥匙(详解)

目录 一、量子计算的基本概念 二、量子计算的基本原理 1.量子叠加态与相位态 一、概念 二、量子叠加态 定义与原理 特性与影响 应用领域 三、量子相位态 定义与原理 特性与影响 应用领域 2.量子门操作 一、概念 二、量子门操作的基本概念 三、常见的量子门操作…...

redis 主从同步时,是同步主节点的缓存积压区的数据,还是同步主节点的aof文件

Redis 的主从同步&#xff08;replication&#xff09;是同步主节点的数据到从节点上&#xff0c;但它既不是直接同步 AOF 文件&#xff0c;也不是同步缓存积压区。 当一个 Redis 从节点启动并连接到主节点时&#xff0c;会发生以下步骤&#xff1a; 同步数据集&#xff1a;从…...

Unity年中大促618活动又来了3折模板特效角色动画插件工具FPS生存建造模板RPG和2D素材优惠码UNITY6182024限时20240611

独立游戏开发需要找各种美术资源和模板&#xff0c;可以在低价时看看&#xff0c;节省开发时间。 Unity年中大促618活动又来了3折模板特效角色动画插件工具FPS生存建造模板RPG和2D素材优惠码UNITY6182024限时202406111104 300 款Unity引擎适配资源 3 折特惠&#xff0c;结账时输…...

【MyBatis-plus】saveBatch 性能调优和【MyBatis】的数据批量入库

总结最优的两种方法&#xff1a; 方法1&#xff1a; 使用了【MyBatis-plus】saveBatch 但是数据入库效率依旧很慢&#xff0c;那可能是是因为JDBC没有配置&#xff0c;saveBatch 批量写入并没有生效哦&#xff01;&#xff01;&#xff01; 详细配置如下&#xff1a;批量数据入…...

前端三剑客之JavaScript基础入门

目录 ▐ 快速认识JavaScript ▐ 基本语法 &#x1f511;JS脚本写在哪? &#x1f511;注释 &#x1f511;变量如何声明? &#x1f511;数据类型 &#x1f511;运算符 &#x1f511;流程控制 ▐ 函数 ▐ 事件 ▐ 计时 ▐ HTML_DOM对象 * 建议学习完HTML和CSS后再…...

Fyndiq买家号下单:自养号测评如何打造本土物理环境系统?

Fyndiq 是一个瑞典电子商务平台&#xff0c;我们通过该平台为渴望讨价还价的购物者提供一系列产品。该公司为希望以可访问的方式提高销售额的所有类型的零售商提供销售渠道。Fyndiq几乎是瑞典家喻户晓的存在&#xff0c;是瑞典折扣促销平台。以销售质优价廉的商品吸引了大量忠实…...

自动检测曲别针数量:图像处理技术的应用

引言 在这篇博客中&#xff0c;我们将探讨如何使用计算机视觉技术自动检测图像中曲别针的数量。 如图&#xff1a; [1]使用灰度转换 由于彩色信息对于曲别针计数并不重要&#xff0c;我们将图像转换为灰度图&#xff0c;这样可以减少处理数据的复杂度&#xff0c;加速后续的…...

【Git】多人协作 -- 详解

一、多人协作&#xff08;1&#xff09; ⽬前&#xff0c;我们所完成的工作如下&#xff1a; 基本完成 Git 的所有本地库的相关操作&#xff0c;git 基本操作&#xff0c;分支理解&#xff0c;版本回退&#xff0c;冲突解决等等。 申请码云账号&#xff0c;将远端信息 clone…...

Eureka和Nacos有哪些区别?

Eureka和Nacos都能起到注册中心的作用&#xff0c;用法基本类似。但还是有一些区别的&#xff0c;例如&#xff1a; Nacos支持配置管理&#xff0c;而Eureka则不支持。 而且服务注册发现上也有区别&#xff0c;我们来做一个实验&#xff1a; 我们停止user-service服务&#x…...

如何正确使用 include-what-you-use

简单地说&#xff0c;由 Google 开发的 include-what-you-use&#xff08;IWYU&#xff09;让源代码文件包含代码里用到的所有头文件。这种方法确保在改动了一些接口之后&#xff0c;代码依然最有可能编译成功。 之前我写了一篇关于 include-what-you-use 工具的文章&#xff…...

企业内网安全软件分享,有什么内网安全软件

内网安全&#xff1f; 其实就是网络安全的一种。 什么是内网安全软件&#xff1f; 内网安全软件是企业保障内网安全的一种重要工具。 它主要帮助企业实现对网络设备、应用程序、用户行为等方面的监控和管理&#xff0c;以预防和应对各种网络攻击。 这类软件主要用于对内网中…...

【摘葡萄game】

您想要了解的“摘葡萄游戏”可能是一个编程项目或者是一个编程相关的练习。我可以提供一个简单的摘葡萄游戏的思路和代码示例。这个游戏可以用多种编程语言来实现&#xff0c;比如Python、Java等。这里我以Python为例&#xff0c;给出一个基础版本的摘葡萄游戏的概念和代码。 …...

java如何实现字符串连接

在java中&#xff0c;字符串与字符串连接可以用运算符和 比如有字符串a,字符串b 想要把a和b连接起来&#xff0c;定义一个字符串变量c cab 或者 ab 示例代码 public class Zifuchuanlianjie {public static void main(String[] args) {String a"我叫李狗蛋";S…...

流量卡选卡攻略,拯救不会选流量卡的小白!

​ 家人们&#xff0c;你们知道不&#xff0c;选择一款性价比高的流量卡&#xff0c;真的超级省钱。 一、首先&#xff0c;说一说申请。 运营商推出线上流量卡&#xff0c;注意是线上的流量卡&#xff0c;都是免费领取&#xff0c;运营商包邮到家&#xff0c;在激活充值之前不…...

python class __format__ __bytes__区别

在Python中&#xff0c;__format__和__bytes__是两个特殊方法&#xff0c;它们允许对象自定义它们在特定情境下的字符串表示。以下是这两个方法的区别和作用&#xff1a; __format__ 作用&#xff1a;__format__方法用于定义对象在使用format()函数或格式化字符串&#xff08…...

C++ | Leetcode C++题解之第134题加油站

题目&#xff1a; 题解&#xff1a; class Solution { public:int canCompleteCircuit(vector<int>& gas, vector<int>& cost) {int n gas.size();int i 0;while (i < n) {int sumOfGas 0, sumOfCost 0;int cnt 0;while (cnt < n) {int j (i …...

【Linux】ls命令

这个命令主要是用于显示指定工作目录下之内容&#xff08;列出目前工作目录所含的文件及子目录)。 掌握几个重点的常使用的就可以&#xff1a; ls -l # 以长格式显示当前目录中的文件和目录 ls -a # 显示当前目录中的所有文件和目录&am…...

网站建设中文百/网站排名优化公司哪家好

又有一段时间没有进行整理和总结输出了&#xff0c;其实最近也没有闲着&#xff0c;也是一直在看书学习状态&#xff0c;看Java并发编程相关的知识&#xff0c;之前买了《Java并发编程的艺术》&#xff0c;去年看了一遍。最近又买了《Java并发编程实战》&#xff0c;两本书都挺…...

做商品条形码的网站/网络推广是诈骗吗

为什么80%的码农都做不了架构师&#xff1f;>>> http://www.expressjs.com.cn/starter/hello-world.html expressjs入门教程 http://bubkoo.com/2014/12/02/use-nodemon-with-node-applications/ nodemon监视代码变动&#xff0c;及自动重启服务 转载于:https:…...

企业品牌logo设计/关键词优化公司前十排名

React中为什么要使用bind&#xff1f; 函数传参 比如在一个组件中&#xff0c;有一个点击事件&#xff0c;当点击时触发一个方法&#xff0c;onClick{ this.fun }&#xff0c;能达到我们的目的&#xff0c;触发了方法&#xff0c;执行了函数里的代码&#xff0c;但是有一个问…...

网站开发公共文件/排名优化服务

1. 问题描述&#xff1a; 每一头牛的愿望就是变成一头最受欢迎的牛。现在有 N 头牛&#xff0c;编号从 1 到 N&#xff0c;给你 M 对整数 (A&#xff0c;B)&#xff0c;表示牛 A 认为牛 B 受欢迎。这种关系是具有传递性的&#xff0c;如果 A 认为 B 受欢迎&#xff0c;B 认为 …...

wordpress备案号不显示/网络营销是什么专业

模板介绍 精美PPT模板设计&#xff0c;淡绿色清新立夏主题介绍PPT模板。一套节日PPT幻灯片模板&#xff0c;内含橙色,绿色多种配色&#xff0c;精美风格设计&#xff0c;动态播放效果&#xff0c;精美实用。 一份设计精美的PPT模板&#xff0c;可以让你在汇报演讲时脱颖而出。…...

延安市城乡建设局网站/百度收录规则

在controller节点上安装和配置 创建swift的数据库&#xff0c;服务证书和API端点 创建服务证书&#xff1a;启动admin证书&#xff1a;$ source admin-openrc.sh 创建swift用户&#xff1a;<pre>$ keystone user-create --name swift --pass SWIFT_PASS PropertyValueem…...