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

anomalib—2—输入图像大小调整

三个地方

第一:在定义model时,要在pre_processor里面去定义一个前处理,前处理就一个功能,定义图像的大小

pre_processor0 = Patchcore.configure_pre_processor( image_size = (128, 128))
model =Patchcore( backbone="wide_resnet50_2",layers=["layer1", "layer2"], pre_trained=True,pre_processor= pre_processor0)
   

第二个地方:在Folder里面定义transform。

    datamodule = Folder(
        name="runzhi",
        root="",
        normal_dir=r"C:\Users\Administrator\Desktop\B\GOOD",
        abnormal_dir=r"C:\Users\Administrator\Desktop\B\BAD",
        num_workers=0,
        train_batch_size=10,
        eval_batch_size=5,
        train_augmentations=train_transform,
        val_augmentations=eval_transform,
        test_augmentations=eval_transform,
        #augmentations=eval_transform,
    )
    datamodule.setup()
这里要注意两点,这里的transform是从torchvision.transforms.v2里来的,它的方式也略有不同,定义如下,还有就是在如果定了了图像的归一化,和尺寸缩放,那么,在train_augment,val_augment,test_augment是要保证统一的,不然你可能得不到理想的结果图。
from torchvision.transforms.v2 import Compose, RandomAdjustSharpness, RandomHorizontalFlip, Resize, Normalize, ToPILImage, PILToTensor, ToTensor

    train_transform = Compose(
        [
            ToTensor(),
            RandomAdjustSharpness(sharpness_factor=0.7, p=0.5),
            RandomHorizontalFlip(p=0.5),
            Resize([128,128]),
            Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]),
        ],
    )
    eval_transform = Compose(
        [
            ToTensor(),
            Resize([128,128]),
            Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]),
        ],
    )

第三,就是在predict层面,也要对输入的待测图像全部进行同样的resize和normalize的操作

我的完整代码如下,给自己看得

# Import the model and engine
import torch
from anomalib.data import Folder
from anomalib.engine import Engine
from anomalib.models import Patchcore

if __name__ == '__main__':
    pre_processor0 = Patchcore.configure_pre_processor( image_size = (128, 128))
    model =Patchcore( backbone="wide_resnet50_2",layers=["layer1", "layer2"], pre_trained=True,pre_processor= pre_processor0)
    engine = Engine()
    #####在这里要注意的是 Folder制作数据集时,它的transform是从torchvision.transforms.v2已入使用的
    from torchvision.transforms.v2 import Compose, RandomAdjustSharpness, RandomHorizontalFlip, Resize, Normalize, \
    ToPILImage, PILToTensor, ToTensor

    train_transform = Compose(
        [
            ToTensor(),
            RandomAdjustSharpness(sharpness_factor=0.7, p=0.5),
            RandomHorizontalFlip(p=0.5),
            Resize([128,128]),
            Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]),
        ],
    )
    eval_transform = Compose(
        [
            ToTensor(),
            Resize([128,128]),
            Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]),
        ],
    )

    datamodule = Folder(
        name="runzhi",
        root="",
        normal_dir=r"C:\Users\Administrator\Desktop\B\GOOD",
        abnormal_dir=r"C:\Users\Administrator\Desktop\B\BAD",
        num_workers=0,
        train_batch_size=10,
        eval_batch_size=5,
        train_augmentations=train_transform,
        val_augmentations=eval_transform,
        test_augmentations=eval_transform,
        #augmentations=eval_transform,
    )
    datamodule.setup()
    engine.train(datamodule=datamodule, model=model)

相关文章:

  • 28--当路由器开始“宫斗“:设备控制面安全配置全解
  • 鸿蒙开发04界面渲染
  • JavaScript promise实例——通过XHR获取省份列表
  • 4-c语言中的数据类型
  • OSCP - HTB - BoardLight
  • 网络钓鱼攻击的威胁和执法部门的作用(第二部分)
  • TensorRT 有什么特殊之处
  • LLM 部署(1)——LLM 部署框架对比
  • 开源身份和访问管理方案之keycloak(三)keycloak健康检查(k8s)
  • ollama更新升级及警告解决
  • 过孔的载流能力
  • 深度解析需求分析:理论、流程与实践
  • 2011-2019年各省地方财政金融监管支出数据
  • 个人博客系统——测试报告
  • Spring 中的 BeanFactory 和 ApplicationContext
  • V-SHOW和箭头函数在VUE项目的踩坑点
  • Excel + VBA 实现“准实时“数据的方法
  • 类与对象(上)
  • 每日一题(小白)字符串娱乐篇16
  • Python星球日记 - 第5天:循环结构
  • 徐汇区b2b"b2c行业门户网站开发_电子商业门户网站建设/友情链接交换的意义是什么
  • 做海报素材网站/手机优化大师
  • 造作网站模版/问卷调查网站
  • 一起做单网站怎么样/关键词排名优化易下拉软件
  • 做网站建设跑业务/个人网站免费域名注册
  • 波波网站建设/如何快速搭建一个网站