excel记录wFm数值(推理过程)

news2024/9/23 5:14:59

1 导入计算wfm库2 实例化具体的指标

3 列表循环之前,设置空list

4 单图评测-将图号、图片名、数值记录
列表里面存储dict

5 将excel列表结果逐个存入excel.xlsx文件

完整代码
test_CPD.py

### test_CPD.py ###
import torch
import torch.nn.functional as F

import numpy as np
import imageio
import pdb, os, argparse
from scipy import misc

from model.CPD_models import CPD_VGG
from model.CPD_ResNet_models import CPD_ResNet
from data import test_dataset
import py_sod_metrics_new  ### dis

gpu = "9"
print('\n', '===> GPU num: ', gpu)
os.environ["CUDA_VISIBLE_DEVICES"] = gpu  # todo 用于评测

parser = argparse.ArgumentParser()
parser.add_argument('--testsize', type=int, default=352, help='testing size')
parser.add_argument('--is_ResNet', type=bool, default=False, help='VGG or ResNet backbone')
opt = parser.parse_args()

dataset_path = '/cluster/home3/zjc/Dataset/COD/COD-TE/'


# val-1-读入
WFM = py_sod_metrics_new.WeightedFmeasure()  ### dis todo  1实例化
SM = py_sod_metrics_new.Smeasure()
EM = py_sod_metrics_new.Emeasure()
MAE = py_sod_metrics_new.MAE()


# SOD
# 'official_cpd/CPD-R.pth'
# 'official_cpd/CPD.pth'

# COD
# 'CPD_ResNet/CPD-99.pth'
# 'CPD_VGG/CPD-99.pth'
model_name_res = 'CPD_Resnet/'
model_name_vgg = 'CPD_VGG/'
if opt.is_ResNet:
    model = CPD_ResNet()
    model.load_state_dict(torch.load('/cluster/home3/zjc/Code/COD/CPD_My/CPD-master/models/'+  model_name_res + 'CPD-99.pth'))
else:
    model = CPD_VGG()
    model.load_state_dict(torch.load('/cluster/home3/zjc/Code/COD/CPD_My/CPD-master/models/'+  model_name_vgg + 'CPD-99.pth'))

model.cuda()
model.eval()

# test_datasets = ['PASCAL', 'ECSSD', 'DUT-OMRON', 'DUTS-TEST', 'HKUIS']
test_datasets = ['COD10K-TE']  #  'COD10K-TE'  'Less'

for dataset in test_datasets:
    if opt.is_ResNet:
        save_path = './results/'+model_name_res + dataset + '/'
    else:
        save_path = './results/'+model_name_vgg + dataset + '/'
    if not os.path.exists(save_path):
        os.makedirs(save_path)
    image_root = dataset_path + dataset + '/image/'
    gt_root = dataset_path + dataset + '/mask/'
    test_loader = test_dataset(image_root, gt_root, opt.testsize)
    
    excel = []  ### dis
    for i in range(test_loader.size):
        image, gt, name = test_loader.load_data()
        gt = np.asarray(gt, np.float32)
        gt /= (gt.max() + 1e-8)
        image = image.cuda()
        _, res = model(image)
        res = F.upsample(res, size=gt.shape, mode='bilinear', align_corners=False)
        res = res.sigmoid().data.cpu().numpy().squeeze()
        res = (res - res.min()) / (res.max() - res.min() + 1e-8)
        # misc.imsave(save_path+name, res)
        imageio.imwrite(save_path+name, (res*255).astype(np.uint8))
                
        ### dis
        # val-2-单图评测  ### todo
        SM.step(pred=res, gt=gt)
        EM.step(pred=res, gt=gt)
        MAE.step(pred=res, gt=gt)
        xwfm = WFM.step(pred=res, gt=gt)
        
        print('--->num:', i, '<---')
        print('->name:', name)
        print('->per_fm:', xwfm)
        
        per_dict=dict([("num",i),("name", name.split('.')[0]),("per_fm",xwfm)])  ###
        excel.append(per_dict)  ###
        
###生成表格###  ### dis
from openpyxl import Workbook  # 读取excel库
workbook = Workbook() # 实例化
if opt.is_ResNet:  # 自动切换res
    # 默认sheet
    sheet = workbook.active # 激活sheet
    sheet.title = "openpyxl_CPD_" + model_name_res # 命名sheet
    sheet.append(["num", "name", "wfm"])  # 插入标题
    for data in excel:  # 列表循环读取dict
        sheet.append(list(data.values()))
    workbook.save("openpyxl_CPD_" + model_name_res + ".xlsx")
else:  # 自动切换vgg
    # 默认sheet
    sheet = workbook.active # 激活sheet
    sheet.title = "openpyxl_CPD_" + model_name_vgg # 命名sheet
    sheet.append(["num", "name", "wfm"])  # 插入标题
    for data in excel:  # 列表循环读取dict
        sheet.append(list(data.values()))
    workbook.save("openpyxl_CPD_" + model_name_vgg + ".xlsx")

       
### val-3-数据集求均值
wfm = WFM.get_results()["wfm"]  # todo
sm = SM.get_results()["sm"]
em = EM.get_results()["em"]
mae = MAE.get_results()["mae"]
# maelist = MAE.get_results()[1]
# print("mae:{}".format(mae))  # todo
print("wfm:{} sm:{} mae:{}".format(wfm, sm, mae))  # todo
# print("wfm:{} sm:{}  em:{}  mae:{}".format(wfm, sm,em,mae))  # todo

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1202084.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

卷积神经网络(CNN)-吴恩达

1 计算机视觉 得益于深度学习的发展&#xff0c;计算机视觉是发展的最好的领域之一。 计算机视觉包括图像分类、 目标检测、神经风格转换 1、图像分类&#xff0c;有时也叫图像识别 2、计算机视觉问题的一个挑战是输入可以是任意大 2 边缘检测例子 1、卷积运算是卷积神经网络…

深度神经网络算子参数量和计算量分析—卷积篇

前言 在用于计算机视觉任务的深度神经网络模型中&#xff0c;卷积算子作为一种重要的特征提取方式被广泛应用&#xff0c;本文针对常见的卷积算子参数量和计算量的计算方法进行分析&#xff0c;主要包括普通卷积、深度可分离卷积、分组卷积&#xff0c;以及自动计算模型参数量和…

无人机交付:跨境电商的数字化未来

随着科技的不断进步&#xff0c;跨境电商行业正经历着前所未有的数字化变革。其中&#xff0c;无人机交付正成为这一领域的未来之路&#xff0c;为电商企业和消费者带来了新的便利和机遇。本文将深入探讨无人机交付在跨境电商中的应用&#xff0c;以及它如何塑造数字化未来。 无…

大促期间治理品牌窜货的诀窍

渠道问题中&#xff0c;最常见的是窜货&#xff0c;窜货还会伴随低价&#xff0c;会影响其他经销商的利益&#xff0c;同时窜货还可能带来假货&#xff0c;所以治理窜货是品牌的责任&#xff0c;对于出货量巨大的双十一大促&#xff0c;品牌更应重视对窜货问题的治理。 力维网络…

上课笔记(11.11之前笔记)

一.数据结构的分类 1.数据结构中分为四大类&#xff1a;线性表&#xff0c;哈希表&#xff0c;树&#xff0c;图。 2.线性表&#xff08;line table&#xff09;&#xff1a;呈现线性结构的一种数据结构。具有顺序性&#xff0c;也就是所有数据都是有序的&#xff1b; 数组&…

(1)(1.14) LightWare SF10/SF11激光雷达

文章目录 前言 1 串行连接 2 I2C 连接 3 参数说明 前言 Lightware SF20 和 LW20 是体积小、测距远&#xff08;100m&#xff09;、精度高的测距仪。有两种型号&#xff0c;LW20/Ser 使用串行接口&#xff0c;LW20/I2C 使用 I2C 接口。 1 串行连接 对于串行连接&#xff0…

Autosar模块介绍:FEE(Flash模拟EEPROM)

上一篇 | 返回主目录 | 下一篇 Autosar模块介绍&#xff1a;FEE(Flash模拟EEPROM 1 基本术语解释2 Ea组成结构图3 Ea基本操作3.1 通用操作3.2 作业的进程&#xff08;通用需求&#xff09;3.3 读操作过程3.4 写操作过程3.5 擦除过程3.6 比较过程 4 Ea常用操作时序4.1 初始化4.…

uniapp打包安卓app获取包名

uniapp打包安卓app获取包名的两种方式 1.uniapp云打包 这上面直接可以看到包名&#xff0c;可以修改&#xff0c;也可以在 manifest.json 文件中配置修改 package配置的就是包名&#xff0c;要确保唯一性 2.使用aapt工具获取 1.下载aapt工具&#xff0c;然后添加到环境变量…

汽车FMCW毫米波雷达信号处理流程(推荐---基础详细---清楚的讲解了雷达的过程---强烈推荐)

毫米波雷达在进行多目标检测时&#xff0c;TX发射一个Chirp&#xff0c;在不同距离下RX会接收到多个反射Chirp信号&#xff08;仅以单个chirp为例&#xff09;。 雷达通过接收不同物体的发射信号&#xff0c;并转为IF信号&#xff0c;利用傅里叶变换将产生一个具有不同的分离峰…

高端NEV | 地表最强纯电,极氪001 FR上市做到“技惊四座”了吗?

百万超跑赛道越来越“香”&#xff0c;本以为它是来“凑热闹”的&#xff0c;竟成「地表最强」&#xff1f; “友商们&#xff0c;五年内造不出来&#xff01;”的极氪001 FR上市口号火速传遍全网。 ◎图源网络 上周&#xff0c;号称地表最强纯电“战士”极氪001 FR在北京举行…

修改/etc/fstab文件导致Linux无法正常启动

如果把 /etc/fstab 文件修改错了&#xff0c;也重启了&#xff0c;系统崩溃启动不了了&#xff0c;那该怎么办&#xff1f;比如&#xff1a; [rootlocalhost ~]# vi /etc/fstab UUIDc2ca6f57-b15c-43ea-bca0-f239083d8bd2 ext4 defaults 1 1 UUID0b23d315-33a7-48a4-bd37-9248…

hive里因为列名用了关键字导致建表失败

代码 现象 ParseException line 6:4 cannot recognize input near percent String COMMENT in column name or primary key or foreign key 23/11/13 11:52:57 ERROR org.apache.hadoop.hive.ql.Driver: FAILED: ParseException line 6:4 cannot recognize input near percent …

C++编程案例讲解-评委打分案例

评委打分案例 案例说明 案例说明 有5名选手&#xff0c;10个评委分别对每一名选手打分&#xff0c;去除最高分&#xff0c;去除最低分&#xff0c;取平均分 要求以下步骤&#xff1a; 创建5名选手&#xff0c;放到vector中遍历vector容器&#xff0c;取出来每一位选手&#x…

Python爬取天气数据及可视化分析!

天气预报我们每天都会关注&#xff0c;我们可以根据未来的天气增减衣物、安排出行&#xff0c;每天的气温、风速风向、相对湿度、空气质量等成为关注的焦点。 本次使用python中requests和BeautifulSoup库对中国天气网当天和未来14天的数据进行爬取&#xff0c;保存为csv文件&a…

你知道调试一个 Web 的 Android 应用有多麻烦吗

你知道调试一个 Web 的 Android 应用有多麻烦吗 我用的 uniapp 写的页面&#xff0c;全是坑&#xff0c;各种坑&#xff0c;生命周期不触发等。但由于已经做完大部分内容了&#xff0c;也不好换了。 我用的是 capacitor h5 > Android 的方式 我的调试过程是这样的&#…

【Proteus仿真】【51单片机】停车场车位管理系统

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用Proteus8仿真51单片机控制器&#xff0c;使用按键、LED、蜂鸣器、LCD1602、红外传感器、74HC595模块等。 主要功能&#xff1a; 系统运行后&#xff0c;LCD1602显示进入、驶出、剩余车位数&am…

如何提取信号的包络

包络提取 如何提取信号的包络。 创建双边带振幅调制信号。载波频率为 1 kHz。调制频率为 50 Hz。调制深度为 100%。采样率为 10 kHz。 t 0:1e-4:0.1; x (1cos(2*pi*50*t)).*cos(2*pi*1000*t);plot(t,x) xlim([0 0.04]) 使用 hilbert 函数提取包络。包络是由 hilbert 计算的…

c语言:解决数组元素右旋问题,时间复杂度O(N)

题目&#xff1a; 给一个数组&#xff0c;如【1&#xff0c;2&#xff0c;3&#xff0c;4&#xff0c;5&#xff0c;6&#xff0c;7】,k3。 要求得到新数组【5&#xff0c;6&#xff0c;7&#xff0c;1&#xff0c;2&#xff0c;3&#xff0c;4】。 方法一&#xff0c;思路和…

CPS:实现销售和广告的完美结合

随着互联网的快速发展&#xff0c;电商行业呈现出爆炸性的增长。在这个充满竞争的市场中&#xff0c;如何有效地吸引和引导消费者购买产品&#xff0c;成为电商企业成功的关键。而CPS&#xff08;Cost Per Sales&#xff09;作为一种创新的广告模式&#xff0c;正逐渐成为电商行…

cadence virtuoso layout 创建保护环 GuardRing

本文使用的是smic130nm工艺库 参考文章&#xff1a;基于IC617创建保护环GuardRing&#xff08;一&#xff09;_版图保护环的意义-CSDN博客 SP GuardRing 按O&#xff0c;M1_SUB columns5 画出版图 量出各图层之间的间距&#xff0c;比如&#xff1a; CT-CT 0.18 CT-AA 0.0…