肖战真的没我帅!我自己写的python颜值检测说的!(代码片段)

呆呆敲代码的阿狸 呆呆敲代码的阿狸     2023-02-09     168

关键词:

颜值评分不知道大家有没有玩过,今天我们就来自己写一个玩玩。

环境搭建

所需工具

**Python版本:**3.5.4(64bit)

相关模块:

opencv_python模块、sklearn模块、numpy模块、dlib模块以及一些Python自带的模块。

实现思路

(1)模型训练

(2)提取人脸关键点

(3)特征生成

(4)颜值预测

使用方式

有特殊疾病者请慎重尝试预测自己的颜值,本人不对颜值预测的结果和带来的所有负面影响负责!!!(总之你肯定比肖战帅!!)

言归正传。

环境搭建完成后,解压相关文件中的Face_Value.rar文件,cmd窗口切换到解压后的*.py文件所在目录。

例如:

打开test_img文件夹,将需要预测颜值的照片放入并重命名为test.jpg。

例如:

最后依次运行:

# 人脸关键点提取脚本
import cv2
import dlib
import numpy


# 模型路径
PREDICTOR_PATH = './model/shape_predictor_68_face_landmarks.dat'
# 使用dlib自带的frontal_face_detector作为人脸提取器
detector = dlib.get_frontal_face_detector()
# 使用官方提供的模型构建特征提取器
predictor = dlib.shape_predictor(PREDICTOR_PATH)
face_img = cv2.imread("test_img/test.jpg")
# 使用detector进行人脸检测,rects为返回的结果
rects = detector(face_img, 1)
# 如果检测到人脸
if len(rects) >= 1:
	print(" faces detected".format(len(rects)))
else:
	print('No faces detected')
	exit()
with open('./results/landmarks.txt', 'w') as f:
	f.truncate()
	for faces in range(len(rects)):
		# 使用predictor进行人脸关键点识别
		landmarks = numpy.matrix([[p.x, p.y] for p in predictor(face_img, rects[faces]).parts()])
		face_img = face_img.copy()
		# 使用enumerate函数遍历序列中的元素以及它们的下标
		for idx, point in enumerate(landmarks):
			pos = (point[0, 0], point[0, 1])
			f.write(str(point[0, 0]))
			f.write(',')
			f.write(str(point[0, 1]))
			f.write(',')
		f.write('\\n')
	f.close()
# 成功后提示
print('Get landmarks successfully')
# 颜值预测脚本
from sklearn.externals import joblib
import numpy as np
from sklearn import decomposition


pre_model = joblib.load('./model/face_rating.pkl')
features = np.loadtxt('./data/features_ALL.txt', delimiter=',')
my_features = np.loadtxt('./results/my_features.txt', delimiter=',')
pca = decomposition.PCA(n_components=20)
pca.fit(features)
predictions = []
if len(my_features.shape) > 1:
	for i in range(len(my_features)):
		feature = my_features[i, :]
		feature_transfer = pca.transform(feature.reshape(1, -1))
		predictions.append(pre_model.predict(feature_transfer))
	print('照片中的人颜值得分依次为(满分为5分):')
	k = 1
	for pre in predictions:
		print('第%d个人:' % k, end='')
		print(str(pre)+'分')
		k += 1
else:
	feature = my_features
	feature_transfer = pca.transform(feature.reshape(1, -1))
	predictions.append(pre_model.predict(feature_transfer))
	print('照片中的人颜值得分为(满分为5分):')
	k = 1
	for pre in predictions:
		print(str(pre)+'分')
		k += 1

【Python有个圈】

你是Python小白吗?是的话就进我的学习圈吧

进圈福利:
1.五分钟看漫画学Python
2.简明Python教程
3.一直在收藏但从来没看过的225G视频资料
4.Python项目实战案例
5.专业技术老师解答辅导

爬取知乎“凡尔赛语录”话题下的所有回答,我知道点开看你的很帅气,但还是没我帅(代码片段)

凡尔赛文学火了。这种特殊的网络文体,常出现在朋友圈或微博,以波澜不惊的口吻,假装不经意地炫富、秀恩爱。普通的炫耀,无非在社交网络发发跑车照片,或不经意露出名牌包包logo,但凡尔赛文学... 查看详情

「肖战发型适配教程」用python换肖战同款帅气发型俘获少女心就在这了(代码片段)

肖战发型适配教程来啦!说到肖战,让人不得不想到他可盐可甜的颜值,肖战的《陈情令》使得他爆红了一把,也有不少人因此成为了肖战的迷妹。的确,从外形上看的话,也算是实打实的帅哥了;那... 查看详情

2017,你好

...糟糕的一年了(我现在都不知道自己是怎么过自招的).$2016$真的是很糟糕的一年$QAQ$颓废的状态使得我失去了许多东西,乃至当时的挚爱,自制力还没我幼儿园时强.但愿我能回想起自己当初的状态,回想起自己想要的究竟是什么.时间... 查看详情

00后卷王的自述,我难道真的很卷?

前言前段时间去面试了一个公司,成功拿到了offer,薪资也从12k涨到了18k,对于工作都还没两年的我来说,还是比较满意的,毕竟一些工作3、4年的可能还没我高。我可能就是大家说的卷王,感觉自己年轻&#... 查看详情

11-9

...的时候每天在一起吃饭。第一天刘震云说王老师小说写的真的好,王朔说哪里哪里,第二天刘震云又说,王老师小说写的真好,王朔说,不不你才是真的写的好。第三天刘震云又说,王老师写的确实好,王朔忍不住回说,我确实... 查看详情

从零学java(10)之方法详解,喷打野你真的没我6!(代码片段)

作者简介作者名:编程界明世隐简介:CSDN博客专家,从事软件开发多年,精通Java、JavaScript,博主也是从零开始一步步把学习成长、深知学习和积累的重要性,喜欢跟广大ADC一起打野升级,欢迎您关注&... 查看详情

tw实习日记:第17天

...互界面,处理了一个模块数据传输的问题。我发现这些bug真的有一半是粗心导致的,真的真的是,写代码一定要细心细心再细心,不然写的再快到时候改bug找半天...这些个bug真的是很低级...我自己都觉得出现这些错误真的不应该... 查看详情

python丨调用百度的人脸识别api给你的颜值打个分

...apiFlaskPILrequests主要思路利用的百度的人脸识别库,然后自己做了一个简单的图片上传和图片处理以及信息提取加工。官网给的方法相对比较繁琐,我使用request改写了一下如下(注意把url里面的Key换成你申请的)。首先,我们不采... 查看详情

如何调用自己写的python函数

假如我在notepad++里写了一个函数如下:[python]viewplaincopydefenroll(name,gender):print'name:',nameprint'gender:',gender将他保存在你的文件夹中,后缀用.py,如ex.py如何才能在powershell中调用它呢?打开powershell,然后输入python>>>... 查看详情

ssd

你说我是不是和目标检测算法杠上了,明明自己不搞这一块,却把效果最好的算法都看完了,唉,真搞不懂自己,改天在花时间好好整理一下,他们这么搞CV的人,真麻烦。今天说的是SSD算法,论文的名字是:SSD:SingleShotMultiBoxDet... 查看详情

你真的思考过自己写的代码为啥这么垃圾吗?(代码片段)

不一致的代码会造成认知上的负担,在一个系统中,做类似的事情,却有不同的做法,或者起到类似作用的事物,却有不同的名字,让人困惑。大部分程序员对于一致性本身的重要性是有认知的。但通常来... 查看详情

我面试从来不看他有没有技术能力,反正都没我厉害?

今天分享一篇文章,给正在准备面试或者已经经历过面试的小伙伴看看。工作了十来个年头,也经常给内部培训,以及面试下应聘者。内训是最好的提升自己公司地位的过程,同时也会让你更快的接触上层老板。有个朴素的逻辑... 查看详情

react自己写的一个地图小组件(代码片段)

由于今天比较闲,就玩了玩react,然后就封装了一个地图的组件,当然功能比较简单,因为就是随手写的小东西,但是由于引用了百度API和bee-mobile,所以用起来可能要薛微麻烦一点点,但是我保证,只是一点点而已。由于之前发... 查看详情

python写的一个url检测脚本,转成exe定时执行

#python2.7下编写。使用pythonabc.pypy2exe转成exe#所以需要安装py2exe包#filename:webmonitor.pyimportosimportsysimportpycurlimportStringIOimportjsonimporttimeimportsmtplibimportConfigParserfromemail.mime.textimportMIMET 查看详情

python3写的一个检测远程服务器端口脚本

分两部分:1python脚本2一个config.txt文件有机会在共享一下编译成exe的文件。1、脚本#!/usr/bin/envpythonimportosimportsysimportsocketimportmsvcrtb=sys.platformarr=[]if‘win*‘==b:config=sys.path[0]+‘config.txt‘else:config=sys.path[0]+ 查看详情

如何查看页面写的是否规范

...面已经达到我想要的了,这就可以了,却没想过代码是否真的符合规范。其实检查的方法很简单,如下:1、用浏览器打开写好的页面2、审查元素3、右击head,找到deleteElement,点击删除4、再来看看网页,看它还跟之前的“一样”... 查看详情

python中如何调用自己写的函数

...,除了调用下载的扩展库之外,还可以自定义函数,方便自己。把基础模块放在固定文件夹(或相对固定文件夹),使用sysappend(r’参考技术A在python中,除了调用下载的扩展库之外,还可以自定义函数,方便自己。把基础模块放... 查看详情

用node.js写的一个接口我如何把前面的本地站点换成自己的域名呀?

下了nginx不知道有用没我只是一个前端仔对服务器的很懵逼在host中加个配置把域名和IP进行映射就可以了,不过在其他机器就用不了参考技术A你好!如果已经有了自己的域名,并且已经备案了的话,那也应该有一个对应的服务器... 查看详情