人脸识别定位库制作

好久前写的,不过很长时间内没空再弄了。

人脸库制作

首先从百度上找人脸图像,汇总,编号(其实也可以随意名直接保存, for file in os.listdir直接解决),结果如图。

之后用face_transfer.py进行图像变形,大小变成224×224结果如图。

import os
from PIL import Image
file_dir = '/home/emin/Temp/Tensorflow/data/face1'
file_rank = 1
for file in os.listdir(file_dir):
    file_image = file_dir + '/' + str(file_rank) + '.jpg'
    image = Image.open(file_image)
    image = image.resize((224, 224))
    image.save('/home/emin/Temp/Tensorflow/data/face2'+ '/' + str(file_rank) + '.jpg') 
    file_rank = file_rank + 1

对图像的人脸位置标注,可以参考网站1,网站2

由于我的python库出现了一些问题,我使用了matlab进行位置标注。

data=[];
for num=1:21
file_rank=num2str(num);
file = ['/home/emin/Temp/Tensorflow/data/face2/',file_rank,'.jpg'];
a=imread(file);
imshow(a);
[x1,y1]=ginput;
data(num,1)=x1(1);data(num,2)=y1(1);data(num,3)=x1(2);data(num,4)=y1(2);
line([data(num,1),data(num,1)],[data(num,2),data(num,4)]);
line([data(num,3),data(num,3)],[data(num,2),data(num,4)]);
line([data(num,1),data(num,3)],[data(num,2),data(num,2)]);
line([data(num,1),data(num,3)],[data(num,4),data(num,4)]);
pause(2)
end

作用是出图,鼠标取点,画出框,记录数据。数据我存在了face_data.csv里,数据为每行[x1,y1,x2,y2],即左上右下两点。

当时取点的情况大概这样。点两下,记录左上右下两点,之后自动画框,存数据,暂停2秒。

编写可以调用存储数据的csv文件的程序face_use_csv.py。

扫描二维码关注公众号,回复: 4978507 查看本文章
import csv
def get_row_data(num_row):
    with open('/home/emin/Temp/Tensorflow/Me/face/face_data.csv','r') as csvfile:
        reader = csv.reader(csvfile)
        for i,rows in enumerate(reader):
            if i == num_row:
                row_data = rows
#    print (row_data) 
    return(row_data)

猜你喜欢

转载自blog.csdn.net/unlimitedai/article/details/84847677