人臉識別,解析MS-Celeb-1M人臉資料集及FaceImageCroppedWithAlignment.tsv檔案提取 【人臉識別】解析MS-Celeb-1M人臉資料集及FaceImageCroppedWithAlignment.tsv檔案提取
阿新 • • 發佈:2018-12-16
原
從1M個名人中,根據他們的受歡迎程度,選擇100K個。然後,利用搜索引擎,給100K個人,每人搜大概100張圖片。共100K*100=10M個圖片。測試集包括1000個名人,這1000個名人來自於1M個明星中隨機挑選。而且經過微軟標註。每個名人大概有20張圖片,這些圖片都是網上找不到的。其他常用人臉資料集:CAISA-WebFace,VGG-Face, MegaFace.
【人臉識別】解析MS-Celeb-1M人臉資料集及FaceImageCroppedWithAlignment.tsv檔案提取
2018年09月19日 13:11:54 長纓縛蒼龍 閱讀數:149
1,MS-Celeb-1M資料集:
MSR IRC是目前世界上規模最大、水平最高的影象識別賽事之一,由MSRA(微軟亞洲研究院)影象分析、大資料探勘研究組組長張磊發起,每年定期舉辦。
資料有對齊版可以直接用於訓練(共80G資料):
資料下載地址:https://www.msceleb.org/download/aligned
2,FaceImageCroppedWithAlignment.tsv檔案提取參考: https://blog.csdn.net/wuqingshan2010/article/details/72081898
下載並解壓微軟的大型人臉資料集MS-Celeb-1M後,將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\\FaceImageCroppedWithAlignment.tsv"
-
output_dir =
"E:\\MS-Celeb-1M\\"
-
unpack(file_name, output_dir)
-
-
if __name__ ==
'__main__':
-
main()
提取後資料總共800多萬張人臉影象:
3,其中同一目錄影象有很多資料並非是同一人
網上有一份清理的文件 MS-Celeb-1M_clean_list.txt (包含79076個人,5049824張人臉影象)