海海艺思创

首页/ AI绘图教程/ CLIPSeg 文本分割:从文字定位到编辑遮罩导出

AI绘图教程

CLIPSeg 文本分割:从文字定位到编辑遮罩导出

想修改图片里的指定物体,又不想逐张手绘遮罩,可以先把文字定位、区域筛选与编辑接口适配分开处理。本文给出目标描述、阈值演算和遮罩交付检查方法;资料包仅含官方博客索…

CLIPSeg 文本分割:从文字定位到编辑遮罩导出

素材准备与输入流程

这条流程要解决的具体问题是:如何把文字指定的物体区域,整理成下游局部编辑能够接收的遮罩。先处理一张图片,确认区域和输入约定,再扩展到批量任务;不要把分割预览直接视为可提交文件。

来源边界需要先说清:研究资料中的 Hugging Face Blog 索引收录了《Zero-shot image segmentation with CLIPSeg》,日期为 2022 年 12 月 21 日。这只能确认相关资料入口存在,不能确认文章正文、当前模型标识、处理类、输出字段、中文支持情况或编辑接口要求。下文的样本、字段和伪代码属于本文设计的原型约定,不是官方接口示例,也不代表已经生成了分割图片。

  • 原图:保留未修改副本,登记文件标识、像素宽高和显示方向。
  • 目标:每项任务只描述一个待修改对象,另写一条必须保留的区域说明,供人工复核。
  • 环境:记录 Python、推理库和图像处理库版本;依赖与硬件条件待官方正文及当前模型说明核对后确定。
  • 编辑端:明确接收黑白图还是透明通道遮罩,以及哪种像素表示允许修改。
  • 输出目录:将原始分割数据、预览图、候选遮罩和最终交付文件分开放置。
  1. 从官方博客索引按完整英文标题定位文章,再核对文章涉及的模型与当前文档。不要根据名称猜测仓库或加载参数。
  2. 登记模型标识、固定版本、处理接口、输入图片要求及输出含义。任何一项未确认,都先停止批量运行。
  3. 选一张方向明确、目标可辨认的图片,记录实际送入推理环节的图像尺寸。若发生缩放、补边或截取,保留对应坐标变换。
  4. 提交图片和一条目标描述。多条文字是否可以同时输入、图片是否需要重复传入,按已核对接口处理,不预设批处理行为。
  5. 保存原始返回数据及其形状、数值范围、目标顺序。先确认它是未转换分数、概率还是已经二值化的结果。
  6. 将目标结果映射回待编辑图片坐标,制作预览,再进入阈值对照。未确认分数含义前,不直接套用概率阈值。

原型中可以约定一个自有适配函数,负责把经过核对的模型输出整理为单目标二维概率图。这个函数不是任何库的现成方法;如果无法确认输出转换规则,就不应让它返回看似有效的数据。

segment_adapter(image, target_text):
    raw = run_verified_model(image, target_text)
    field = select_verified_target_output(raw)
    probability = convert_using_verified_output_definition(field)
    aligned = restore_image_coordinates(probability)
    return aligned

目标描述与阈值对照

假设素材是一张桌面照片,画面内有红色杯子、白色盘子和台灯。以下文字只是待比较的输入样本,不是已确认有效的提示词;英文样本也不意味着模型只支持英文。

输入样本比较目的人工核对点
cup从对象名称开始是否包含目标杯子,是否选入其他杯具
red cup增加可见颜色属性是否减少无关区域,是否漏掉杯柄
红色杯子观察中文输入是否适用于当前配置对照英文样本,不预设语言效果

固定模型、原图与后处理,先比较文字;确定一条描述后,再比较阈值。不要同时换描述、阈值和边缘处理,否则难以判断变化来自哪里。

以下是手工构造的概率序列,不是模型返回值:0.20、0.40、0.55、0.70、0.90。原型约定概率大于或等于阈值时选中,得到下面的阈值演算。

候选阈值选中的示例数值复核重点
0.300.40、0.55、0.70、0.90检查是否纳入过多背景
0.500.55、0.70、0.90检查主体覆盖与误选的取舍
0.700.70、0.90检查细小部件是否遗漏

这些数值仅用于说明比较方法,不是官方推荐值。按上述筛选定义,提高阈值不会增加选中像素,但更少的像素不等于更准确的遮罩。

概率预览与遮罩导出

  1. 先并排展示原图和对齐后的概率图,概率图统一使用固定的 0 到 1 显示范围,避免逐图自动拉伸使弱响应看起来过强。
  2. 将候选选区以半透明颜色叠加到原图上,逐一检查对象外轮廓、内部空洞和邻近物体。
  3. 对同一概率图生成多档阈值预览,以相同缩放比例比较杯柄等细节;预览颜色只用于人工检查。
  4. 人工选择候选阈值后,再按照编辑端约定转换像素。不要把彩色叠加图作为遮罩上传。
  5. 导出后重新打开文件,检查解码得到的尺寸、颜色模式及透明通道,而不是只检查扩展名。

下面用一个二维选区演示导出内容:1 表示本文选中的目标,0 表示非目标。它是逻辑选区,不预设编辑接口的黑白方向。

selection = [[0, 1, 0],
             [1, 1, 0]]

# Contract A: white means editable
gray = [[0, 255, 0],
        [255, 255, 0]]

# Contract B: transparent means editable
alpha = [[255, 0, 255],
         [0, 0, 255]]

若目标接口明确采用约定 A,可将选中位置映射为白色,其余位置映射为黑色;若明确采用约定 B,则在独立 RGBA 遮罩中,将选中位置的 alpha 设为 0,其余位置设为 255。两者只是条件式示例,不能据此认定任一产品采用其中一种。RGBA 遮罩的颜色分量也应按目标接口要求填写。

二值选区和柔边遮罩要分别管理。是否允许中间灰度或半透明值、是否需要扩大边缘,都应先核对编辑端说明。不要默认用概率值直接充当透明度,也不要通过大幅模糊掩盖选区偏移。

编辑接口兼容性

分割环节负责确定目标区域,编辑环节负责解释遮罩文件,两者之间需要明确转换。接入已有图片编辑流程时,可结合图片编辑与遮罩使用流程梳理提交顺序;具体字段和限制仍须核对所用接口当前说明。

检查项必须确认的内容不通过时的处理
遮罩支持所选模型及编辑入口是否接收区域遮罩暂停提交,选择有明确支持说明的入口
尺寸与坐标原图和遮罩是否需要同尺寸,是否使用相同方向和像素原点按记录恢复坐标,重新叠加检查
区域方向白色、黑色或透明区域中,哪一种表示允许编辑修改转换映射,不更改原始分割数据
格式与通道允许的文件格式、颜色模式、alpha 要求重新编码,再读取文件检查
边缘数值是否接受灰度或部分透明像素按约定二值化或保留允许的柔边
大小限制文件体积、像素范围及图片数量要求成对处理图片与遮罩,禁止只缩放其中一个
编辑结果目标修改是否完成,保留区域是否发生不可接受变化保留失败记录,人工修补或回退

常见故障与修正

故障可能原因修正动作
遮罩全黑或全白输出类型判断错误、阈值不适合,或目标未被有效定位先核对原始输出定义与数值范围,再分别调整描述和阈值;不要强行导出通过
选区整体错位或拉伸宽高顺序弄反,或遗漏方向、补边、截取的逆变换回查预处理记录,在同一坐标系恢复结果后重新叠加
修改了背景而不是物体编辑区域方向与导出映射相反核对接口约定,交换映射后先提交单张小样
文件看起来黑白分明却没有编辑效果接口读取 alpha,而文件仅改变颜色或透明度全部相同读取实际通道值,按透明区域约定重新生成
目标边缘漏改或误改相邻物体阈值取舍不合适、定位本身不足,或柔边范围过大先比较候选选区,再局部修补;将复杂细节样本转人工处理
批量文件与文字串配仅依赖列表顺序关联任务用图片标识、目标标识和输出版本联合命名,逐项检查关联

若多种描述和候选阈值都无法得到可接受选区,应将该样本标记为不适用自动处理,而不是继续提高阈值或承诺精准抠图。当前资料不足以给出模型适用范围的定量结论。

试编辑与发布验收

  • 资料检查:模型、版本、处理接口和输出转换均有依据,未确认项没有写成已支持功能。
  • 区域检查:原图、概率预览与最终遮罩对应同一目标,主体覆盖、内部空洞和相邻区域已人工复核。
  • 文件检查:重新读取的宽高、方向、格式及通道符合目标接口要求,透明区域方向正确。
  • 边缘检查:按原始尺寸查看细节,在不同底色上检查透明区域,没有用展示效果替代像素检查。
  • 试编辑检查:单张结果已核对目标改动及保留区域,不将上传成功等同于编辑验收通过。
  • 归档检查:保留图片标识、文字描述、模型版本、阈值、坐标变换、遮罩约定和人工确认状态。
  • 批量检查:失败项进入待处理清单,未通过的遮罩不自动进入发布队列。

下一步应先补齐官方文章正文、当前模型说明与目标编辑接口文档,再实现推理适配函数,完成一张图片的定位、阈值对照、导出和试编辑闭环。通过后再增加批量任务;本文没有提供运行结果或性能结论。

下一步

把这篇的方法练一遍

提示词和步骤可以带到创作里直接试做一版。

去创作 看同栏目更多