首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

深度学习实现NBA球星颜值打分完整案例(一)

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

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

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

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

讲一下工程

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

下面看一下整个工程,

face_train.py用来训练模型

face_test.py用来预测

TrainDataSet存训练数据

讲一下数据

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

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

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

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

大小尺寸最好要相同

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

讲一下模型训练

打开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_HEIGHT、IMG_WIDTH、CHANNELS:表明数据是64*64像素的3元彩色图片

2.读数据

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

3.CNN网络

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

4.训练

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

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

然后通过reduce_mean、train.AdamOptimizer这些OP来做模型的参数训练

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

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

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

python face_train.py

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

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

End

为了方便大家学习与交流,凡人云近日已开通机器学习社群!

分享公众号名片到40人以上的大群并截图给小助手,小助手就会拉你入群

在这里你可以得到:

1.各种学术讨论

2.最新的资料分享

3.不定期的征文以及联谊活动!

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180118G00BPU00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券