password
comment
type
status
date
slug
summary
tags
category
icon
AI custom autofill
SAM图像处理流程
以下数据对应vit_t模型
原始图像尺寸-ori_size: H0,W0
分为三个阶段:
- ori阶段 - 输入原始图像阶段 = ori_size: H0,W0
- middle阶段 - 对原始图像进行缩放 = middle_size: H1,W1
- input阶段 - 将缩放后的图像padding至目标大小(目标大小由image_encoder.input_size决定) = input_szie: H2,W2
图像尺寸变化
Predictor
- ori: H0,W0
- middle: H1,W1(长边为1024)
- input: 1024,1024
Fintuner
- ori: H0,W0
- middle: H1,W1(长边为自定义大小,一般为720)
- input: 1024,1024
代码细节
一个小细节:将数组转换为bool类型并不能得到二值mask。因为负数转变成bool为True。正确的做法应该是使用>0
Predictor
ori-middle-input阶段均在一次性单独推理单张图像过程中完成
Finetuner
ori-middle阶段:在数据集加载阶段完成
middle-input阶段:在Fintuner类中完成
细节如下:
- ori-middle阶段
- 先保存图像原始尺寸H0,W0(original_height, original_width)信息
- 缩放成 H1,W1(长边为自定义大小,一般为720)
- 保存缩放后的尺寸H1,W1(resized_height, resized_width)信息
- 从标注文件获得mask,bbox
- 由mask得到随机point提示
- 对mask进行缩放,使其与缩放得到的H1,W1图像严格对应
- 获取center_point(bbox中心的坐标)
- 得到combined_point_labels,用于表示每个point是前景还是后景的提示
- 对bbox、center_point、point均完成缩放
- 对缩放得到的 H1,W1图像进行padding,填充成一个正方形(自定义大小,一般为720)
- 对缩放得到的 H1,W1 mask 进行padding,填充成一个正方形(自定义大小,一般为720)
由于mask形状为HW,但规定point的输入形状为XY,因此在获取point的函数中,手动将mask转置
- 作者:Gintmr
- 链接:https://gintmr.20250130.xyz/article/1c9af1ce-0c90-8000-ac3c-cafe297f8aa5
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。