SuperAPI AI 工具集

detecting-tips-zones

设计与创作

查看项目

更新于 10-16 02:35

技能介绍

用途:该技能实现零样本区域检测,把自然语言标签转成图像上的边界框,替代 svg-portrait-mode 中手工标注 focus_targets / focus_edges 的步骤。

主要能力:输入图片与 targets、edges、distractors 标签,输出两组 {'bbox': (x1,y1,x2,y2), 'label': str} 列表。流程为图像经 B/14 视觉编码器得到 patch 特征,文本标签经 9 个 TCL 模板集成编码并 L2 归一化,逐标签计算余弦热力图,再取 top-k% patch 的最大连通分量,缩放加边距映射回图像坐标。不使用 softmax,因为标签并非互斥,需靠 distractor 标签锚定相对尺度。

使用方式:调用 detect_zones(image, targets, edges, distractors, ckpt_dir, tips_root, ...),可先用 load_models 预加载模型在多张图上摊销开销。关键参数包括 input_size(448 为 32×32 网格,896 为 64×64)、target_top_frac(默认 0.04)、edge_top_frac(默认 0.06)、pad_frac(默认 0.02)、device。依赖安装:pip install torch torchvision tensorflow tensorflow-text scipy pillow numpy --break-system-packages -q;并克隆上游仓库 git clone https://github.com/google-deepmind/tips /path/to/tips,准备约 500MB 的 B/14 检查点(vision、text 的 npz 与 tokenizer.model)。

适用场景:主体与背景分离效果强,适合 portrait_mode 这类粗粒度目标/边缘分区。

限制:B/14 加 448 下子部件区分较弱,dog face、dog paws、dog ears 常落在同一区域;可尝试更具体提示词、L/14 或 SO/14 模型、滑窗推理。必须提供 3–7 个 distractor 标签。CPU 上 896 输入约慢 12 倍。PIL 预处理不处理 EXIF 旋转,而 portrait_mode 经 OpenCV 会处理,EXIF 旋转照片需先烘焙旋转或调用 ImageOps.exif_transpose。