python解析 MS-Celeb-1M 数据库
2017-03-21 16:22
381 查看
我在微软下载人脸识别数据库 MS-Celeb-1M,
下载完的格式是 .tsv格式。看了数据库官网的文件格式说明:
File format: text files, each line is an image record containing 7 columns, delimited by TAB.
Column1: Freebase MID
Column2: ImageSearchRank
Column3: ImageURL
Column4: PageURL
Column5: FaceID
Column6: FaceRectangle_Base64Encoded (four floats, relative coordinates of UpperLeft and BottomRight corner)
Column7: FaceData_Base64Encoded
我决定用Python件来解析这个.tsv文件,获取图片及相应的人脸信息。以下是解析代码:
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
tsv文件和csv文件是类似的,tsv的数据用Tab键分隔,csv文件用逗号分隔。根据说明文件,把每一行的信息读取出来
1
人脸矩形框的位置信息是(左上点坐标,右下点坐标),用Base64编码的,格式为4个浮点数。
1
人脸信息是用Base64编码的,需要解码,然后保存为图像:
下载完的格式是 .tsv格式。看了数据库官网的文件格式说明:
File format: text files, each line is an image record containing 7 columns, delimited by TAB.
Column1: Freebase MID
Column2: ImageSearchRank
Column3: ImageURL
Column4: PageURL
Column5: FaceID
Column6: FaceRectangle_Base64Encoded (four floats, relative coordinates of UpperLeft and BottomRight corner)
Column7: FaceData_Base64Encoded
我决定用Python件来解析这个.tsv文件,获取图片及相应的人脸信息。以下是解析代码:
import base64 import struct import os def readline(line): MID,ImageSearchRank,ImageURL,PageURL,FaceID,FaceRectangle,FaceData=line.split("\t") rect=struct.unpack("ffff",base64.b64decode(FaceRectangle)) return MID,ImageSearchRank,ImageURL,PageURL,FaceID,rect,base64.b64decode(FaceData) def writeImage(filename,data): with open(filename,"wb") as f: f.write(data) def unpack(filename,target="img"): i=0 with open(filename,"r",encoding="utf-8") as f: for line in f: MID,ImageSearchRank,ImageURL,PageURL,FaceID,FaceRectangle,FaceData=readline(line) img_dir=os.path.join(target,MID) if not os.path.exists(img_dir): os.mkdir(img_dir) img_name="%s-%s"%(ImageSearchRank,FaceID)+".jpg" writeImage(os.path.join(img_dir,img_name),FaceData) i+=1 if i%1000==0: print(i,"imgs finished") print("all finished") filename="MsCelebV1-Faces-Aligned.tsv" unpack(filename)1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
tsv文件和csv文件是类似的,tsv的数据用Tab键分隔,csv文件用逗号分隔。根据说明文件,把每一行的信息读取出来
MID,ImageSearchRank,ImageURL,PageURL,FaceID,FaceRectangle,FaceData=line.split("\t")1
1
人脸矩形框的位置信息是(左上点坐标,右下点坐标),用Base64编码的,格式为4个浮点数。
rect=struct.unpack("ffff",base64.b64decode(FaceRectangle))1
1
人脸信息是用Base64编码的,需要解码,然后保存为图像:
data=base64.b64decode(FaceData) with open(filename,"wb") as f: f.write(data)
相关文章推荐
- python解析 MS-Celeb-1M 数据库
- Python3解析MS-Celeb-1M人脸数据集中的FaceImageCroppedWithAlignment.tsv文件
- 微软人脸数据库ms-celeb-1m清洗Python Coding #1
- HTMLParser解析网页,提取链接地址、标题名称,并插入数据库 分类: python 小练习 HTMLParser 2014-02-19 09:57 519人阅读 评论(0) 收藏
- python3.4.3 调用http接口 解析response xml后插入数据库
- [Python]快速解析数据库视图XML配置获取数据库字段说明
- 解压下载的ms_celeb_1m数据集
- Python 边做边学 9.6 数据库操作--查询条件解析工具(QCondition)
- 深入解析python版SVM源码系列(一)——添加数据库和绘制效果图
- Python爬虫项目,获取所有网站上的新闻,并保存到数据库中,解析html网页等(未完待续)
- 人脸识别数据集之MS-Celeb-1M
- python 解析国家和州 并写入数据库
- 遍历数据库的未公开存储过程sp_MSforeachdb应用之Attach数据库
- Python与xml之解析篇
- 数据库由HSQL改为MS SQL SERVER
- MS SQL Server数据库事务锁机制分析
- 清空数据库:sp_MSforeachtable
- Windows下使用Python通过ODBC/ADO访问数据库
- MS数据库工具
- 关于用python的SQLAlchemy访问数据库的学习记录,及SQLAlchemy的安装简介