今天我们分享的Python程序,是一款用深度学习来为颜值评分的应用,在科技飞速发展的当今社会,我们可以通过机器学习实现自动驾驶、识别字体等,甚至连谷歌研发的Alphago都可以向人类的围棋事业发出挑战。所以,今天码趣君给大家推荐一款有趣的小项目——FaceRank。

FaceRank

提供了图片处理的工具集,它是基于TensorFlow的CCN模型。有了这个模型,只要给它一张照片,它就能帮我们来筛选高颜值的小姐姐(小哥哥),还可以在校园校草校花的评比中,作出可靠的参考预测。当你想给明星的颜值打个分时,你可以将这个工作交给FaceRank,这时你可以告诉别人,这是人工智能打出的分数,很客观的呦!

TensorFlow

是谷歌研发的第二代人工智能学习系统,是将复杂的数据结构传输至人工智能神经网中,进行分析和处理的一套系统。它可用于语音识别或图像识别等多项机器深度学习领域,可在小到一部智能手机、大到数千台数据中心服务器的各种设备上运行。TensorFlow将完全开源,任何人都可以用。

什么是开源项目?

开源项目指源码被公众使用的软件,并且软件的使用、修改和发行不受许可证的限制。

下载

Tensorflow 安装:pip install tensorflow

简介:Tensorflow 是谷歌的机器学习框架,FaceRank 使用了基于它的 CNN 模型。 http://www.tensorflownews.com/2017/07/28/installing-tensorflow-tensorflow/

face_recognition 安装:pip install face_recognition

简介:这个库在项目中,用来从图片中截出人脸,并保存为新文件,方便生成数据集。 这个库比较难装,如果直接安装失败,建议使用 docker。

数据集

1. 我们现在需要130张128*128的随意的图片

2. 要注意图片的命名:图片名:1-3.jpg,表示分值为1的第3张图片。

3. 请将符合上述名格式的图片放在resize_images中,目的是训练模型。

4. find_faces_in_picture.py这个函数,运用find_and_save_face就如翻译一样,是从图片中找到人脸的坐标(关键是坐标),并且保存为新图片。

5. 用resize将图片统一为128*128的大小,为之后的模型训练打下坚实的基础。

人脸打分的基础是 TensorFlow 中的CNN 模型

网络结构

而下列代码的网络结构是:

卷积层池化层卷积层池化层全链接层

卷积层:在泛函分析中,卷积、旋积或摺积(英语:Convolution)是通过两个函数f 和g 生成第三个函数的一种数学算子,表征函数f 与g经过翻转和平移的重叠部分的面积。

池化层:池化层往往在卷积层后面,通过池化来降低卷积层输出的特征向量,同时改善结果CNN网络中前几层的卷积层参数量占比小,计算量占比大;而后面的全连接层正好相反,大部分CNN网络都具有这个特点。因此我们在进行计算加速优化时,重点放在卷积层;进行参数优化、权值裁剪时,重点放在全连接层。

以下代码为卷积神经网络部分代码:

# Create model

def conv_net(x, weights, biases, dropout):

# Reshape input picture

x = tf.reshape(x, shape=[-1, 128, 128, 3])

# Convolution Layer(卷积层)

conv1 = conv2d(x, weights['wc1'], biases['bc1'])

print(conv1.shape)

# Max Pooling (down-sampling)(池化层)

conv1 = maxpool2d(conv1, k=2)

print(conv1.shape)

# Convolution Layer(卷积层)

conv2 = conv2d(conv1, weights['wc2'], biases['bc2'])

print(conv2.shape)

# Max Pooling (down-sampling) (池化层)

conv2 = maxpool2d(conv2, k=2)

print(conv2.shape)

# Fully connected layer(全链接层)

# Reshape conv2 output to fit fully connected layer input

fc1 = tf.reshape(conv2, [-1, weights['wd1'].get_shape().as_list()[0]])

fc1 = tf.add(tf.matmul(fc1, weights['wd1']), biases['bd1'])

fc1 = tf.nn.relu(fc1)

# Apply Dropout

fc1 = tf.nn.dropout(fc1, dropout)

# Output, class prediction

out = tf.add(tf.matmul(fc1, weights['out']), biases['out'])

return ou

训练

一切都准备好了,可以直接运行 train_model.py

这部分内容在 Github 有比较详细说明:

可以参考:https://github.com/fendouai/FaceRank/

测试

运行完 train_model.py 之后,可以通过运行 run_model.py 来测试模型是否完整,也可以在这个过程中查找漏洞.

模型使用

FaceRank在训练之后,可以直接运行。因为FaceRank具有模型保存功能,所以非常的智能。

run_model.py :可以成函数或者类库使用,很方便。

(来源:http://www.tensorflownews.com/)

以上是今天给大家带来的小项目,这个项目是以Python为基础的编程,如果感兴趣的小伙伴们可以尝试一下。Python语言具有简洁、易读、易操作特征,可以快速呈现效果,利于激发青少年学习动力和信心;同时,Python也被称为“胶水语言”,具有扩展性,能够把其他语言制作的模块轻松地进行链接。

python编程题自动评分系统_用Python为你的「颜值评分」,看看人工智能为你打几分?...相关推荐

  1. 会python编程可以做什么工作_学Python编程到底能做什么工作?

    学Python编程能做什么工作?随着人工智能发展,学习python语言的人员有更多的岗位机会,python从事的职业广泛,从游戏到AI人工智能能都可以用Python实现.除了编程,各种岗位的人都应该学 ...

  2. python编程能有什么用_揭秘python都能做什么?

    Python作为一种功能强大,并井且简单易学的编程语言而广受好评,那么Python都能做么?概据起来有以下几个方面. Wob开发使用Python的二个基本应用就是进行Web开发,在国内,大一些的使用P ...

  3. python实现app自动签到器_利用Python实现App自动签到领取积分

    要自动签到,最简单的是打开页面分析请求,然后我们用脚本实现请求的自动化.但是发现食行没有页面,只有 APP,这不是一个好消息,这意味着需要抓包处理了. 有需要Python学习资料的小伙伴吗?小编整理[ ...

  4. linux环境下python编程指南,在Linux系统中搭建Python编程环境

    Linux系统是为编程而设计的,因此在大多数Linux计算机中都默认安装了Python. 1. 检查Python版本 在系统中运行应用程序Terminal(如果是Ubuntu,可按Ctrl+Alt+T ...

  5. 树莓派python编程入门先学什么_树莓派Python编程入门与实战

    树莓派Python编程入门与实战 编辑 锁定 讨论 上传视频 本词条缺少概述图,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧! 树莓派是一个只有信用卡大小的裸露电路板,它也是一个运行开源Lin ...

  6. python tab键自动补全_设置python中TAB键自动补全方法

    设置python中TAB键自动补全方法 一.创建自动补全脚本如下: vi /tmp/python/tab.py #!/usr/bin/python # python tab file import s ...

  7. python编程求n的阶乘_使用Python编程的阶乘

    python编程求n的阶乘 Before we start implementing factorial using Python, let us first discuss what factori ...

  8. python开发出来的crm系统_用Python打造一个CRM系统(二)

    在上一篇中介绍了CRM和Django,在本篇中将聊聊Django的最佳实践. 总的来说就是遵循Django的设计理念:松耦合.代码精简.快速开发.DRY.明确优于隐式.一致性等.下面从开发环境.项目组 ...

  9. 苹果 python蚂蚁森林自动收能量_用Python实现定时自动化收取蚂蚁森林能量,再也不用担心忘记收取了...

    1. 概述 提到蚂蚁森林,大家应该都知道,你是否有因忘记收取能量而被好友收取的经历呢? 如果你不是蚂蚁森林重度用户,被别人收取了能量可能对你来说没什么. 但如果你是蚂蚁森林重度用户,遇到能量被偷 .. ...

最新文章

  1. YOLOv3学习笔记
  2. 用脑科学支持人工智能
  3. linux下安装mysql5.7.25详细教程
  4. Mac 下Eclipse无法连接手机
  5. 2.6内核的配置与编译
  6. 恶意软件“EXPENSIVEWALL”感染数百万台安卓设备
  7. julia与python对比_有人说Julia比Python好,还给出了5个理由
  8. 面试之JSP九大内置对象和JSP四大作用域
  9. java异常处理方式推荐做法_谈谈Java异常处理这件事儿
  10. DEDE留言板调用导航的方法
  11. java class类
  12. Uber AI 研究院深度解构 ICLR 2019 最佳论文「彩票假设」!
  13. verilog符号 与或非 异或_与非门、或非门、异或门、同或门的逻辑表达式和逻辑符号怎么写...
  14. linux工作中常用文件操作命令
  15. 频登各大时装周运动品牌FILA在得物App首发和平精英联名系列
  16. 活动报名 | 保护儿童,保护未来!智源发布《面向儿童的人工智能北京共识》
  17. igraph与netwrokx的转换
  18. KEIL5 AC6 出现printf告警
  19. BitComet Stable (build 1.66.4.13) 比特彗星-使用教程
  20. Camera | 3.瑞芯微平台MIPI摄像头常用调试命令

热门文章

  1. 30岁却没有一技之长还面临失业,该怎么办?
  2. 自然语言理解(NLU)难在哪儿?
  3. 基于STM32采用CS创世 SD NAND(贴片SD卡)完成FATFS文件系统移植与测试(中篇)
  4. 统计学计算机难吗,我能不能做生信?生信难吗?
  5. Unfolding the Alternating Optimization for Blind Super Resolution
  6. 实现数组扁平化的6种方式
  7. 网上java代码中文在subtext3中显示乱码
  8. gerber学习总结
  9. 【游戏测试】用 python 写个自动拉取手机或模拟器游戏 log 到本地的工具
  10. ssm体育课堂管理系统毕业设计源码181626