图像数据预处理(三)——截取人眼区域,三分类训练数据集制作

截取人眼区域,截取对应的标注区域,并将标注区域二值化

  • 一、数据集介绍
  • 二、截取眼部区域
  • 三、二值化两类标注
  • 划分训练集、验证集、测试集

一、数据集介绍

  • 原始数据1400+,size:4752*3168,5.3MB
  • 标注:有iris和eyelid两类,轮廓分别都用蓝色的线标注出来
    –单张太大,且没有必要,因此先截取出眼部区域,采用face_recognition

二、截取眼部区域

  • 详情可见face_recognition
  • 结果如图
    图像数据预处理(三)——截取人眼区域,三分类训练数据集制作_第1张图片

三、二值化两类标注

dpath='F:/data/data4/eye_detection/extract_eye_img/former/'#former,later
path_1=dpath+'eyelid/'
path_2=dpath+'iris/'

target_1=dpath+'eyelid_enhance/'
target_2=dpath+'iris_enhance/'

eyelid_list=os.listdir(path_1)
iris_list=os.listdir(path_2)

for file in eyelid_list:
    img=cv_imread(path_1+file)#
    x,y,_=img.shape
    mask=np.zeros((x,y),dtype=img.dtype)
    mask[np.where((img[...,0]>200) & (img[...,1]<100) & (img[...,2]<100))]=255
    
    #试过了水漫填充方法不好用,采用土法填充边界内部区域
    #一行一行或一列一列地填充
    for i in range(x):
        arr=mask[i]
        arr=np.nonzero(arr)[0]
        arr=list(arr)
        if len(arr)>=5:
            m=arr[0]
            M=arr[-1]
            mask[i][m:M]=255
    
    cv_imwrite(target_1+file,mask)#1-eyelid 2-iris
  • 最终得到两类二值化标签,可以分别做二分类,也可合并在一起做三分类(一类背景)

图像数据预处理(三)——截取人眼区域,三分类训练数据集制作_第2张图片图像数据预处理(三)——截取人眼区域,三分类训练数据集制作_第3张图片

划分训练集、验证集、测试集

  • 按比例7:1.5:1.5划分

你可能感兴趣的:(cv数据预处理与数据分析,计算机视觉)