用深度学习做球星颜值打分完整案例(一)

已经上传了完整的代码和数据,数据比较少,大家可以帮忙补充。

项目地址(记得给个start):https://github.com/jimenbian/face_rank


先来说一下项目的背景,这次做的是一个最基础的图像识别案例,通过训练一个模型来给NBA球星的颜值打分,嗯,楼主麦迪、艾弗森球迷。选择NBA的数据是因为,NBA球星都有正装照,比较好收集。我们最终呈现的效果是这样的:先收集球星大脸照,标记出颜值高的和颜值低的,然后使用TensorflowCNN网络训练颜值打分模型,最后可以利用模型对任意球星脸是高颜值或者低颜值来评分。


另外还有一种数据收集的方法,悄悄透漏给大家,如果做美女的颜值打分训练,男同学可以打开T盘的唐诗三百首目录,在里面可以方便的截取高清人脸大图。



讲一下工程

实验环境是PYTHON2.7,Tensorflow版本1.4,无其它依赖库。

下面看一下整个工程,

  • face_train.py用来训练模型

  • face_test.py用来预测

  • TrainDataSet存训练数据


 

讲一下数据

打开trainDataSet这个文件夹,里面是分了class1class2两个目录,class1用来存放颜值比较高的球星图片,如下图:

 


class2存放颜值不那么高的,这样在训练的时候就会做到区分,也构成了一个二分类场景,以下是class2的一张例图:


在构建训练数据的时候有三个注意事项:

  1. 图片要尽可能清晰,要尽可能多

  2. 大小尺寸最好要相同

  3. 最好每个图片只有一张人脸,而且占据篇幅很大

 

讲一下模型训练

打开face_train.py文件,可以看到整个的训练代码,可以运行这个文件生成model,下面讲一下其中一些关键函数的含义,请对照代码理解。

 

1.Model目录设置

MODE ='folder' # or 'file', if you choose a plain text file (see above).

DATASET_PATH = 'trainDataSet' # the dataset file or root folder path.

# ImageParameters

N_CLASSES= 2 # CHANGE HERE, total number of classes

IMG_HEIGHT= 64 # CHANGE HERE, the image height to be resized to

IMG_WIDTH= 64 # CHANGE HERE, the image width to be resized to

CHANNELS= 3 # The 3 color channels, change to 1 if grayscale

 

  • MODE设置了文件读取方式,这里使用folder模式

  • DATASET_PATH指定的是训练数据文件夹

  • N_CLASSES分类的种类,这里因为分美和丑,所以是2类

  • IMG_HEIGHTIMG_WIDTHCHANNELS:表明数据是64*64像素的3元彩色图片

 

2.读数据

调用的是read_images函数,把训练数据进行queue读取,然后把图片二进制转码,并且将图片的尺寸统一。生成X,Y对应的是两个列表,分别对应每个图片的二进制格式和所属的类别是美还是丑


3.CNN网络

本案例使用的是4CNN网络结构,对应的是conv_net,具体的CNN说明可以看我之前发的关于CNN的文章:深度学习CNN眼中的图片是什么样的


4.训练

现在已经生成了整个CNN网络,也有了数据流,接下来就是通过后向传播训练整个网络。

  • 通过tf.global_variables_initializer()为训练网络生成默认参数

  • 然后通过reduce_meantrain.AdamOptimizer这些OP来做模型的参数训练

  • train.Coordinator是构建数据流读取线程,一定要加上,不然无法运行

  • 利用tf.train.Saver()保存整个模型的参数

 

以上就是模型训练的一些关键的函数,在使用的时候只要clone项目,在根目录下执行:

python face_train.py

即可生成模型文件夹model目录:


ok~模型训练就讲完了,下次讲如何通过这个模型对单个NBA球星的颜值打分,不知道大家看懂了没有,此文先给想完整体验一下深度学习做图片分析的小白用户,用的是最基础的代码。最近跳票有点多,主要是加班太猛了~

  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值