计算数据集的均值和方差(mean,std)

时间:2025-02-12 08:00:04

coco数据集的均值和方差(三分量顺序是RGB)

mean = [0.471, 0.448, 0.408]
std = [0.234, 0.239, 0.242]

 

imagenet数据集的均值和方差(三分量顺序是RGB)

mean = [0.485, 0.456, 0.406]
std = [0.229, 0.224, 0.225]

 

用opencv和numpy计算自己数据集的均值和方差 

import numpy as np
import cv2
import os

# img_h, img_w = 32, 32
img_h, img_w = 32, 48   #根据自己数据集适当调整,影响不大
means, stdevs = [], []
img_list = []

imgs_path = 'D:/database/VOCdevkit/VOC2012/JPEGImages/'
imgs_path_list = (imgs_path)

len_ = len(imgs_path_list)
i = 0
for item in imgs_path_list:
    img = ((imgs_path,item))
    img = (img,(img_w,img_h))
    img = img[:, :, :, ]
    img_list.append(img)
    i += 1
    print(i,'/',len_)    

imgs = (img_list, axis=3)
imgs = (np.float32) / 255.

for i in range(3):
    pixels = imgs[:, :, i, :].ravel()  # 拉成一行
    ((pixels))
    ((pixels))

# BGR --> RGB , CV读取的需要转换,PIL读取的不用转换
()
()

print("normMean = {}".format(means))
print("normStd = {}".format(stdevs))

参考:/weixin_38533896/article/details/85951903