Python3解析MS-Celeb-1M人脸数据集中的FaceImageCroppedWithAlignment.tsv文件

本文介绍如何从MS-Celeb-1M数据集中解析FaceImageCroppedWithAlignment.tsv文件,并将其转换为JPG图片格式。通过Python代码实现人脸数据的解码与保存。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

下载并解压微软的大型人脸数据集MS-Celeb-1M(https://www.msceleb.org/download/sampleset)后,将FaceImageCroppedWithAlignment.tsv文件还原成JPG图片格式。代码如下:

import base64
import struct
import os

def read_line(line):
    m_id, image_search_rank, image_url, page_url, face_id, face_rectangle, face_data=line.split("\t")
    rect=struct.unpack("ffff",base64.b64decode(face_rectangle))
    return m_id, image_search_rank, image_url, page_url, face_id, rect, base64.b64decode(face_data)

def write_image(filename, data):
    with open(filename,"wb") as f:
        f.write(data)

def unpack(file_name, output_dir):
    i=0
    with open(file_name, "r", encoding="utf-8") as f:
        for line in f:
            m_id, image_search_rank, image_url, page_url, face_id, face_rectangle, face_data = read_line(line)
            img_dir = os.path.join(output_dir, m_id)
            if not os.path.exists(img_dir):
                os.mkdir(img_dir)
            img_name = "%s-%s" % (image_search_rank, face_id) + ".jpg"
            write_image(os.path.join(img_dir, img_name), face_data)
            i += 1
            if i % 1000 == 0:
                print(i, "images finished")
        print("all finished")

def main():
    file_name = "G:\\FaceImageCroppedWithAlignment.tsv"
    output_dir = "E:\\MS-Celeb-1M\\"
    unpack(file_name, output_dir)

if __name__ == '__main__':
    main()
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值