颜值打分器
最近,华南理工大学发布了一个颜值数据库SCUT-FBP5500,数据集共有5500个人,分值在1~5之间,
数据库下载地址:
- 百度网盘:https://pan.baidu.com/s/1gguqPpx,密码是mh8j
- GoogleDrive:https://drive.google.com/open?id=1_BBiG0xOxYnCTItUXh82GTVorp6ODy-m
我将利用keras建立一个基于深度学习的颜值打分系统,不同于图像分类任务,颜值打分是一个回归任务,不能利用keras自带的ImageDatagenerator产生迭代器给模型喂数据,我们将实现一个类似的迭代器
__author__ = 'lzy'
# image_input.py
import cv2
from keras.utils import Sequence
import math
import numpy as np
from random import shuffle, randint
import os
class SequenceData(Sequence):
def __init__(self, file_list, batch_size, target_size, mode='caffe'):
self.file_list = file_list
self.batch_size = batch_size
self.target_size = target_size
self.mode = mode
def __len__(self):
num_imgs = len(self.file_list)
return math.ceil(num_imgs / self.batch_size)
def __getitem__(self, idx):
file_sub_list = self.file_list[idx*self.batch_size : (idx+1)*self.batch_size]
batch_x = np.array([self.read_img(file[0]) for file in file_sub_list])
batch_y = np.array([file[