计算机视觉对输入图像做处理

1.如何得到成千上万张图像 各个通道的均值和方差

 猜测:

法1:计算每张图像的均值和方法 然后每次计算一张图像的均值和方差后,都和前一个均值和方差求平均

或者是计算所有图像的均值和方差组成列表后,计算该列表的均值,类似于下面这样(转载于:https://blog.csdn.net/qq_30159015/article/details/82117878)

    per_image_Rmean = []
    per_image_Gmean = []
    per_image_Bmean = []
    for file_name in file_names:
        img = cv2.imread(os.path.join(path, file_name), 1)
        per_image_Rmean.append(np.mean(img[:,:,0]))
        per_image_Gmean.append(np.mean(img[:,:,1]))
        per_image_Bmean.append(np.mean(img[:,:,2]))
    R_mean = np.mean(per_image_Rmean)
    G_mean = np.mean(per_image_Gmean)
    B_mean = np.mean(per_image_Bmean)
 

然后调查发现,可见光图像归一化时普遍选择mean=[0.485, 0.456, 0.406],std=[0.229, 0.224, 0.225]

原因还没调查清楚

mean=[0.485, 0.456, 0.406],std=[0.229, 0.224, 0.225]这是imageNet的数据集和方差

2.用于训练的网络经过T.RandomResizedCrop()转换后,变成随机大小和随机宽高比的数据,为什么要这么做

猜测:因为图像中的目标有大有小,有各种比例,有各种角度等

T.RandomResizedCrop()的效果

这样做,那么每张图片进入训练网络时的输入特征是否一致,如果不一致,是否会影响训练参数的格式和形式???

不清楚

是否需要根据测试集是什么,比如测试集目标大概率时多大,大概率是怎么拍的等,来调整上述的参数??

解释参考:

3.

从多通道的数据中提取某个单通道的数据

我做语义分割时自己标注后的label时RGBA格式,4通道,只有1个通道的数据代表着标注的类别值,所以就需要提取该通道的数据

import PIL.Image
import numpy as np


s = PIL.Image.open('/home/mlxuan/project/DeepLearning/data/image_Segmentation/js-segment-annotator-master/data/images/Split2/DJI_0200_0.png')
imgArr = np.asarray(s)
imgArr2 = [[imgArr[i][j][0] for j in range(len(imgArr[i]))] for i in range(len(imgArr))]
np.uint8(imgArr2).shape

猜你喜欢

转载自blog.csdn.net/qq_32425195/article/details/84997031