1. 程式人生 > >人臉識別,解析MS-Celeb-1M人臉資料集及FaceImageCroppedWithAlignment.tsv檔案提取 【人臉識別】解析MS-Celeb-1M人臉資料集及FaceImageCroppedWithAlignment.tsv檔案提取

人臉識別,解析MS-Celeb-1M人臉資料集及FaceImageCroppedWithAlignment.tsv檔案提取 【人臉識別】解析MS-Celeb-1M人臉資料集及FaceImageCroppedWithAlignment.tsv檔案提取

【人臉識別】解析MS-Celeb-1M人臉資料集及FaceImageCroppedWithAlignment.tsv檔案提取

2018年09月19日 13:11:54 閱讀數:149

 

1,MS-Celeb-1M資料集: 
MSR IRC是目前世界上規模最大、水平最高的影象識別賽事之一,由MSRA(微軟亞洲研究院)影象分析、大資料探勘研究組組長張磊發起,每年定期舉辦。

從1M個名人中,根據他們的受歡迎程度,選擇100K個。然後,利用搜索引擎,給100K個人,每人搜大概100張圖片。共100K*100=10M個圖片。測試集包括1000個名人,這1000個名人來自於1M個明星中隨機挑選。而且經過微軟標註。每個名人大概有20張圖片,這些圖片都是網上找不到的。其他常用人臉資料集:CAISA-WebFace,VGG-Face, MegaFace.

資料有對齊版可以直接用於訓練(共80G資料):

資料下載地址:https://www.msceleb.org/download/aligned

 

2,FaceImageCroppedWithAlignment.tsv檔案提取參考: https://blog.csdn.net/wuqingshan2010/article/details/72081898

下載並解壓微軟的大型人臉資料集MS-Celeb-1M後,將FaceImageCroppedWithAlignment.tsv檔案還原成JPG圖片格式。程式碼如下:


  
  1. import base64
  2. import struct
  3. import os
  4. def read_line(line):
  5. m_id, image_search_rank, image_url, page_url, face_id, face_rectangle, face_data=line.split( "\t")
  6. rect=struct.unpack( "ffff",base64.b64decode(face_rectangle))
  7. return m_id, image_search_rank, image_url, page_url, face_id, rect, base64.b64decode(face_data)
  8. def write_image(filename, data):
  9. with open(filename, "wb") as f:
  10. f.write(data)
  11. def unpack(file_name, output_dir):
  12. i= 0
  13. with open(file_name, "r", encoding= "utf-8") as f:
  14. for line in f:
  15. m_id, image_search_rank, image_url, page_url, face_id, face_rectangle, face_data = read_line(line)
  16. img_dir = os.path.join(output_dir, m_id)
  17. if not os.path.exists(img_dir):
  18. os.mkdir(img_dir)
  19. img_name = "%s-%s" % (image_search_rank, face_id) + ".jpg"
  20. write_image(os.path.join(img_dir, img_name), face_data)
  21. i += 1
  22. if i % 1000 == 0:
  23. print(i, "images finished")
  24. print( "all finished")
  25. def main():
  26. file_name = "G:\\FaceImageCroppedWithAlignment\\FaceImageCroppedWithAlignment.tsv"
  27. output_dir = "E:\\MS-Celeb-1M\\"
  28. unpack(file_name, output_dir)
  29. if __name__ == '__main__':
  30. main()

提取後資料總共800多萬張人臉影象:

3,其中同一目錄影象有很多資料並非是同一人

網上有一份清理的文件  MS-Celeb-1M_clean_list.txt (包含79076個人,5049824張人臉影象)