如何使用自己的数据集训练MTCNN

COS1° 2019-12-19 03:56:22
请问各位大佬,GitHub上面的facenet源码中:https://github.com/davidsandberg/facenet,人脸对齐部分可以单独训练吗?
想用自己的数据集重新训练一下这个工程中的MTCNN部分。
...全文
10114 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
风来我也来 2020-11-24
  • 打赏
  • 举报
回复
用的是pytorch框架? 如果他是用Dataset ,DataLoader 方式载入数据。 你自己写新的Dataset 方法 (继承系统的Dataset),

class MNISTDataset(Dataset):
    #初始化数据集
    def __init__(self,root,is_train=True):
        self.dataset = []
        sub_dir = "Train" if is_train else "Test"
        for tag in os.listdir((f"{root}/{sub_dir}")):
            img_dir = f"{root}/{sub_dir}/{tag}"
            for img_filename in os.listdir(img_dir):
                img_path = f"{img_dir}/{img_filename}"
                self.dataset.append(img_path,tag)

    #数据集有多少数据
    def __len__(self):
        return len(self.dataset)

    #每条数据的处理方式
    def __getitem__(self, index):
        data = self.dataset[index]
        #处理图像
        img_data = cv2.imread(data[0],cv2.IMREAD_GRAYSCALE)
        #数据变为一维数据(数据展平),配套后面使用全连接使用
        img_data = img_data.reshape(-1)
        #归一化0~1
        img_data = img_data/255
        #对标签做one-hot处理
        tag = torch.zero(10)
        tag[int(data[1])]= 1
        #pytorch默认数据是 float32
        return np.float32(img_data),np.float32(tag)
重载我上面的函数。 另外,我自己训练MTCNN是用Cebela 。你网上搜下这个数据集怎么训练。 MTCNN,照理说O网络训练要比较久。我自己用Cebela ,损失基于:人脸位置,类别+五个关键点。实际是P网络要跑 20个迭代,R网络五六个,O网络不到一个迭代就过拟合。
COS1° 2020-10-20
  • 打赏
  • 举报
回复
我也没找到合适的办法,还没解决这个问题
qq_44094029 2020-10-19
  • 打赏
  • 举报
回复
您好,我也想用mtcnn来训练自己的数据集,想请问您怎么做呀

4,446

社区成员

发帖
与我相关
我的任务
社区描述
图形图像/机器视觉
社区管理员
  • 机器视觉
  • 迪菲赫尔曼
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧