Coder Social home page Coder Social logo

lms's Introduction

案例一:婚姻数据分析 1.1 角色设计初步 角色:我现在是婚姻中介的老师,职责是要给不同的人打分,做一个数据分析案例 交互聊天问答Q&A: Q:我要鉴别一个男性或者一个女性是高质量还是低质量需要那几个维度去判断 A:在婚姻中介行业,评估一个人的“质量”通常会涉及多个维度。以下是一些常见的维度,您可以根据实际情况和需求进行选择和调整: 经济能力: 收入水平 资产情况 职业稳定性 教育背景: 学历 所学专业 毕业学校 性格特质: 是否开朗 是否有责任心 是否诚实守信 生活习惯: 是否吸烟 是否喝酒 运动习惯 家庭背景: 家庭经济状况 家庭教育环境 父母职业 兴趣爱好: 喜欢的活动 兴趣广泛程度 健康状况: 身体健康 是否有慢性病 外貌: 身高 体重 相貌 交际能力: 人际关系 沟通能力 价值观: 婚姻观 子女教育观 Q:如何设计每个不同类型的维度的打分依据 设计不同类型维度的打分依据时,通常需要根据实际情况和目标来设定。以下是一些可能的方法和考虑因素: 1. **经济能力**: - 收入水平:可以设定不同的收入区间,每个区间对应不同的分数。 - 资产情况:根据资产的多少和类型给予不同的分数。 - 职业稳定性:根据职业的稳定性和前景进行评分。 2. **教育背景**: - 学历:根据学历层次进行评分,如硕士以上一定分,本科一定分等。 - 所学专业、毕业学校:根据专业和学校的知名度、就业率等因素进行评分。 3. **性格特质**: - 可以通过问卷调查、面试等方式了解个体的性格特质,然后根据一定的标准进行评分。 4. **生活习惯**: - 对健康有益的习惯可以给予正分,不良习惯可以给予负分。 5. **家庭背景**: - 可以考虑家庭的经济、文化等因素,设定相应的评分标准。 6. **兴趣爱好**: - 根据兴趣爱好的广泛性、社会价值等因素进行评分。 7. **健康状况**: - 根据健康状况的好坏进行评分,有慢性病或不良健康状况可以降低分数。 8. **外貌**: - 这一点较为主观,但可以考虑身高、体重等客观因素进行评分。但同时这是相亲最为重要的一点!!! 9. **交际能力**: - 可以通过观察个体在社交场合的表现,以及与他人的互动情况进行评分。 10. **价值观**: - 可以通过问卷调查、面试等方式了解个体的价值观,然后根据一定的标准进行评分。 1.2 维度思考分析 理解选择是最困难的一点,普通的打标签都是基于一个固定答案,诸如刘亦菲,高圆圆就是第一大美女,给出10分的答案。但现实人的选择是多元化的,俞飞鸿御姐类型,刘亦菲小仙女类型,迪丽热巴那种西部美感是各有千秋,因此需要有个双向映射去解决这件事。下面所有问题都是围绕双向映射进行评分 1.2.1 脸部分析单维度 针对于现代人相亲(古代也是),主要第一眼看的是外貌,可以可以调用百度API的人脸识别来进行分析(**人更懂**人) 需要进行API个人开发认证 api访问地址:https://console.bce.baidu.com/ai/#/ai/face/overview/index api访问教程:https://ai.baidu.com/ai-doc/FACE/ek37c1qiz 参考文献:https://zhuanlan.zhihu.com/p/341841533 api访问列:https://console.bce.baidu.com/ai/#/ai/face/app/list 安装使用Python SDK有如下方式: ● 如果已安装pip,执行pip install baidu-aip即可。 ● 如果已安装setuptools,执行python setup.py install即可。 第一步 新建AipFace AipFace是人脸识别的Python SDK客户端,为使用人脸识别的开发人员提供了一系列的交互方法。 参考如下代码新建一个AipFace: from aip import AipFace """ 你的 APPID AK SK """ APP_ID = '你的 App ID' API_KEY = '你的 Api Key' SECRET_KEY = '你的 Secret Key' client = AipFace(APP_ID, API_KEY, SECRET_KEY) import requests API_Key='复制你的API Key到这里' Secret_Key='复制你的Secret Key到这里' host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id={}&client_secret={}'.format(API_Key,Secret_Key) response = requests.get(host) access_token = response.json()['access_token'] print(access_token) 第二步 图片转为Base64编码 百度人脸检测对图片格式有要求,要求把图片转换为Base64编码,所以我们可以调用python中base64库实现图片转码。大家只需要把图片的本地保存路径复制到下方代码指定位置就好。 import base64 img_src = r'把图片保存路径复制到这里' with open(img_src,'rb') as f: base64_data = base64.b64encode(f.read()) 第三步 人脸检测与属性分析 在完成获取access_token和图片转码两步后,我们就可以发送请求、获取响应,实现人脸打分功能了。在这里,请求地址request_url、请求头headers和请求参数params都只需按照百度人脸检测API说明文档(https://ai.baidu.com/ai-doc/FACE/yk37c1u4t)里面的格式即可,在使用requests.post()方法发送请求后,百度API服务器就会将人脸检测结果(json格式数据)返回给我们,我们只需要使用response.json()方法将json字符串类型的响应内容转换为python对象(字典格式),然后提取我们想要的内容的就好。 # 导入requests库,用于发送HTTP请求 import requests import base64 # 导入base64库,用于图像数据的编码 # 定义API的请求URL request_url = "https://aip.baidubce.com/rest/2.0/face/v3/detect" # 定义请求参数 # 其中image字段是base64编码的图像数据 # image_type字段表示图像数据的类型,这里是BASE64 # face_field字段表示我们希望API返回哪些人脸属性,如年龄、颜值、性别等 # face_type字段表示人脸的类型,这里是LIVE,表示活体人脸 params = { "image": base64_data, "image_type": "BASE64", "face_field": "age,beauty,expression,face_shape,gender,glasses,emotion,face_type,spoofing", "face_type": "LIVE" } # 将access_token参数添加到URL中 # access_token是在百度AI平台上注册应用后获得的,用于验证API请求的权限 request_url = request_url + "?access_token=" + access_token # 定义HTTP请求的头部已保存 headers = {'content-type': 'application/json'} # 使用requests库发送POST请求,携带参数和头部,调用人脸识别API response = requests.post(request_url, data=params, headers=headers) # 将API返回的JSON格式的响应解析为Python字典 face_result = response.json() # 从返回的结果中提取并打印人脸属性信息 print("年龄:", face_result['result']['face_list'][0]['age']) print("人脸评分:", face_result['result']['face_list'][0]['beauty']) print("性别:", face_result['result']['face_list'][0]['gender']['type']) print("脸型:", face_result['result']['face_list'][0]['face_shape']['type']) 局限性: 百度API提供的人脸颜值打分功能是基于百度自己的模型和算法,这个模型已经过训练,其标准是固定的,用户无法直接修改这些内置模型的颜值标准。 Q:百度api人脸打分 颜值标准要求自己来定! 1.2.2 脸部分析多维度 针对这种局限性,因此我们需要设计一个方式,满足一百个观众有100个哈姆雷特! 思路如下: 先定义有5张照片,选择2张照片作为标准 然后上传的照片与这2张标准照片进行对比,颜值情况 :权重分别设置为30%,30%;同时百度api的评分为40% 权重,三项加起来得到最后的分数。最终的结果反馈给result.html 1. 修改 Index 页面:在 index.html 中添加选项以允许用户从五张图片中选择两张作为参考。 2. 修改 Flask 后端: ○ 保存参考图片并与上传的图片进行对比,计算相似度。 ○ 调用百度 API 获取上传图片的颜值评分。 ○ 计算总分:0.3*text{相似度1} + 0.3 *text{相似度2} + 0.4*text{百度评分}。 3. 修改 Result 页面:展示最后的加权得分。 1.2.3 UI优化 我们可以通过框架结构设计一个漂亮的网页,像这样子的 我希望在屏幕较大时,使用顶部导航栏来显示链接,而在屏幕较小或移动设备上时,使用侧边栏。 1.2.4 脸部维度多角度设计 前面针对脸部的思考,内容过于单一,需要考虑到使用者(User)对于颜值的认可度,比如脸型、脸相(给人活泼、冷漠、优雅的感觉) 1.2.4.1 五类脸型 可以先设计5种不同类型的脸型的美女,让user选择其中一个,针对此可以选中日韩的五位有特色的女明星: 1. 范冰冰 (Fan Bingbing) - ** (China) ○ 脸型特点: 长形脸 ○ 特色: 高鼻梁、大眼睛,经常出现在国际红毯活动上 2. 石原里美 (Ishihara Satomi) - 日本 (Japan) ○ 脸型特点: 卵型脸 ○ 特色: 清纯的外貌、柔和的五官 3. 宋慧乔 (Song Hye Kyo) - 韩国 (Korea) ○ 脸型特点: 圆形脸 ○ 特色: 清秀的脸庞,被称为韩国的国民女神 4. 李冰冰 (Li Bingbing) - ** (China) ○ 脸型特点: 心形脸 ○ 特色: 锐利的下颚线、独特的眼神 5. IU (李知恩, Lee Ji Eun) - 韩国 (Korea) ○ 脸型特点: 方形脸 ○ 特色: 清新的形象,被称为韩国的“小公主” 1.2.4.2 五种气质 接下来我们根据每个user对于气质的不同爱好度,选取五位气质各异的中、日、韩女明星 1. 赵薇 (Zhao Wei) - ** (China) ○ 气质特点: 知性、优雅 ○ 特色: 作为导演和演员,赵薇具有成熟的女性魅力和知性的气质。 2. 新垣结衣 (Aragaki Yui) - 日本 (Japan) ○ 气质特点: 清新、甜美 ○ 特色: 新垣结衣以其清纯和甜美的形象深受喜爱。 3. 全智贤 (Jun Ji Hyun) - 韩国 (Korea) ○ 气质特点: 时尚、自信 ○ 特色: 全智贤在影视作品中展现出都市女性的独立和自信。 4. 周迅 (Zhou Xun) - ** (China) ○ 气质特点: 文艺、复古 ○ 特色: 周迅以其多才多艺和独特的复古气质在演艺圈中独树一帜。 5. 宝拉 (Paula) - 韩国 (Korea) ○ 气质特点: 纯真、天真 ○ 特色: 宝拉以其娇小的身材和纯真的形象受到了大众的喜爱。 IMPORTANCE: 我之所以要有2次不同的五选一的思路,是基于需要用户User上传的照片的同时,根据自己的喜好进行图像的对比,根据对比情况来确定是否上传照片的女生是符合自己眼缘的女生! 因此需要通过face_recognition库来对比上传的照片(设为up)与前面5张女生照片的相似度,然后再次对比后面5张女生照片的相似度,因为不同女生标记了不同的脸型和气质,因此up的脸型就是最接近相似度的女生的脸型,气质同理。 1.2.4.3 其他元素 类似的照片up还有是否戴眼镜、情绪等元素 诸如:百度的面部识别API在其情感识别(emotion)部分通常会返回以下几种情感 1. angry: 生气 2. disgust: 厌恶 3. fear: 害怕 4. happy: 开心 5. sad: 伤心 6. surprise: 惊讶 7. neutral: 中立/无情感 1.2.5 SQL操作 本身作为User是选择者,另外还有一个上传信息的异性,因此我们实际是不需要在LMS系统重添加上传功能,上传信息应该独立出来! 实际流程案例如下: ● 女性在信息收集系统上传自己的个人信息 ● USER群体通过LMS进行个人爱好的确认和问卷的点击,之后后台访问数据库数据,根据User的选择情况计算综合分数,最后在result网页中反馈 后续我们应该要设计一个独立异性注册信息上传的网站便于用户信息的传递工作! 1.2.5.1 设计数据库初级 由于本身只针对脸部进行识别评分,也就是眼缘设计,因此我们首先可以进行文件管理数据库处理,通过对不同照片进行打分进行分数的初步判定 1.2.5.2 数据库升级 文件管理系统,通过不断读取文件夹图片进行,信息的处理,然而现在我们在有了异性的基本信息以后便可以高效地进行数据的输入与输出! 1.3 网页界面设计 Q:我希望现实在浏览器中,首页是欢迎界面,标题 《Love Management System》,然后可以上传照片 只有输出结果! 1.3.1 face操作单维度 import base64 import requests # 定义API Key和Secret Key APP_ID = '40079341' #ID短号 API_KEY = '0f5GrnbmAHsksnagaUDpFW3l' #无规律很长 SECRET_KEY = 'P4MNGHY2m17X3QUUiOaFcxnqhcgSnCTL' #无规律很长 # 获取access_token host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id={}&client_secret={}'.format(API_KEY, SECRET_KEY) response = requests.get(host) access_token = response.json()['access_token'] def analyze_face(image_data): # 将图片文件转换为base64编码 base64_data = base64.b64encode(image_data) # 调用百度API进行人脸识别 request_url = "https://aip.baidubce.com/rest/2.0/face/v3/detect" params = { "image": base64_data, "image_type": "BASE64", "face_field": "age,beauty,expression,face_shape,gender,glasses,emotion,face_type,spoofing", "face_type": "LIVE" } request_url = request_url + "?access_token=" + access_token headers = {'content-type': 'application/json'} response = requests.post(request_url, data=params, headers=headers) face_result = response.json() # 返回分析结果 return face_result['result']['face_list'][0] main主py内容 from flask import Flask, render_template, request from face import analyze_face # 从face模块导入analyze_face函数 app = Flask(__name__) @app.route('/', methods=['GET', 'POST']) def index(): if request.method == 'POST': # 获取上传的图片文件 image_file = request.files['image'] file_name=image_file.filename image_data = image_file.read() # 调用analyze_face函数分析人脸 face_features = analyze_face(image_data) # 提取分析结果并显示 age = face_features['age'] beauty = face_features['beauty'] gender = face_features['gender']['type'] face_shape = face_features['face_shape']['type'] return render_template('result.html', name=name,age=age, beauty=beauty, gender=gender, face_shape=face_shape) return render_template('index.html') if __name__ == '__main__': app.run(debug=True) 网页设计index: Love Management System

Welcome to Love Management System

Upload 网页设计result: Result

Analysis Result

姓名:{{ name }}

年龄:{{ age }}

人脸评分:{{ beauty }}

性别:{{ gender }}

脸型:{{ face_shape }}

Back PS:在代码的修改中发现一些小bug,例如现实的姓名是包含.JPG,因此前面需要把数据进行split切割保持数据的合适性! Q:我希望Result.html 右侧可以看到上传的照片 import os from flask import Flask, render_template, request, url_for from face import analyze_face # 假设您已经在 face.py 中定义了这个函数 app = Flask(__name__) # 定义存储上传图片的文件夹 UPLOAD_FOLDER = 'uploads' app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER @app.route('/', methods=['GET', 'POST']) def index(): if request.method == 'POST': # 获取上传的图片文件对象 image_file = request.files['image'] # 保存图片到上传文件夹 filename = os.path.join(app.config['UPLOAD_FOLDER'], image_file.filename) image_file.save(filename) # 获取图片的 URL image_url = url_for('static', filename=os.path.join('uploads', image_file.filename)) # 进行人脸分析 image_data = image_file.read() face_features = analyze_face(image_data) # 提取分析结果并显示,同时传递图片的 URL age = face_features['age'] beauty = face_features['beauty'] gender = face_features['gender']['type'] face_shape = face_features['face_shape']['type'] return render_template('result.html', age=age, beauty=beauty, gender=gender, face_shape=face_shape, image_url=image_url) return render_template('index.html') if __name__ == '__main__': app.run(debug=True)
问题集1: 不要多次读取文件:在代码中,读取了 image_file 的内容到 image_data 变量,然后又保存了 image_file。在文件对象被读取后,文件指针会移动到文件的末尾,所以如果再次尝试读取或保存,将不会得到任何数据。因此可以在保存文件之后重新打开它来读取数据! @app.route('/', methods=['GET', 'POST']) def index(): if request.method == 'POST': # 获取上传的图片文件 image_file = request.files['image'] file_name = image_file.filename.split('.')[0] # 保存图片到static/uploads文件夹 filename = os.path.join(app.config['UPLOAD_FOLDER'], image_file.filename) image_file.save(filename) # 如果之后需要读取文件内容,可以这样做: with open(filename, 'rb') as f: image_data = f.read() # 使用url_for生成图片的URL image_url = url_for('static', filename=os.path.join('uploads', image_file.filename)) # 调用analyze_face函数分析人脸 face_features = analyze_face(image_data) # 提取分析结果并显示 name = file_name age = face_features['age'] beauty = face_features['beauty'] gender = face_features['gender']['type'] face_shape = face_features['face_shape']['type'] return render_template('result.html', name=name, age=age, beauty=beauty, gender=gender, face_shape=face_shape, image_url=image_url) return render_template('index.html') Q:我感觉UI界面太丑了,加一个框架开发可行吗 安装Bootstrap UI库 pip install Flask Flask-Bootstrap {% extends "base.html" %} {% block page_content %}

Welcome to Love Management System

上传照片
Analyze {% endblock %} {% extends "bootstrap/base.html" %} {% block title %}恋爱管理信息系统{% endblock %} {% block navbar %} {% endblock %} {% block content %}
{% block page_content %}{% endblock %}
{% endblock %} {% extends "base.html" %} {% block page_content %}

Analysis Result for {{ name }}

Analyzed Image

  • 姓名: {{ name }}
  • 年龄: {{ age }}
  • 颜值(满分100): {{ beauty }}
  • 性别: {{ gender }}
  • 脸型: {{ face_shape }}
Go Back {% endblock %} 二次美化工作 {% extends "base.html" %} {% block page_content %}

这位是:{{ name }}

基本信息
  • 姓名: {{ name }}
  • 年龄: {{ age }}
  • 颜值(满分100): {{ beauty }}
  • 性别: {{ gender }}
  • 脸型: {{ face_shape }}
照片
Analyzed Image
返回
{% endblock %} 1.3.2 face操作多维度 {% extends "base.html" %} {% block page_content %} {% with messages = get_flashed_messages(with_categories=true) %} {% if messages %} {% for category, message in messages %}
{{ message }}
{% endfor %} {% endif %} {% endwith %} {% set names = ["迪丽热巴", "刘亦菲", "大美女", "高圆圆", "班花"] %}

选择两张参考图片

{% for i in range(1, 6) %}
Reference Image {{i}}
{{ names[i-1] }}
{% endfor %}
选择图片
上传并分析
{% endblock %} 图片点击的美化 .selectable:hover { cursor: pointer; /* 当鼠标悬停在图片上时,将鼠标指针变为手形 */ } .selected { border: 5px solid #007BFF; /* 为选中的图片添加一个蓝色边框 */ opacity: 0.7; /* 使选中的图片变得稍微透明 */ } 相似度对比: 面部图像被认为是100分的标准,然后其他的面部图像与这个标准进行比较,得到一个相似度得分。 这里的关键是如何计算两张脸的相似度。完整的实现需要一个深度学习的面部识别模型,但为了简化,我们可以使用现成的工具或库,如face_recognition库。 1. 安装 face_recognition 库: pip install face_recognition pip install dlib pip install cmake 2.代码示例 import face_recognition def calculate_face_similarity(image_path1, image_path2): # 加载图片并获取面部编码 image1 = face_recognition.load_image_file(image_path1) image2 = face_recognition.load_image_file(image_path2) encoding1 = face_recognition.face_encodings(image1)[0] encoding2 = face_recognition.face_encodings(image2)[0] # 计算两个面部编码之间的欧氏距离 distance = face_recognition.face_distance([encoding1], encoding2)[0] # 这里我们简化地将距离转化为相似度得分 similarity_score = (1 - distance) * 100 return similarity_score standard_face_path = "path_to_standard_face.jpg" uploaded_image_path = "path_to_uploaded_image.jpg" score = calculate_face_similarity(standard_face_path, uploaded_image_path) print(f"相似度得分: {score:.2f}") face.py修正 import base64 import requests # 定义API Key和Secret Key APP_ID = '40079341' #ID短号 API_KEY = '0f5GrnbmAHsksnagaUDpFW3l' #无规律很长 SECRET_KEY = 'P4MNGHY2m17X3QUUiOaFcxnqhcgSnCTL' #无规律很长 # 获取access_token host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id={}&client_secret={}'.format(API_KEY, SECRET_KEY) response = requests.get(host) access_token = response.json()['access_token'] import face_recognition def calculate_face_similarity(image_data, ref_images): # 加载图片并获取面部编码 uploaded_image = face_recognition.load_image_file(image_data) uploaded_encoding = face_recognition.face_encodings(uploaded_image)[0] # Calculate similarity with the reference images similarities = [] # 计算两个面部编码之间的欧氏距离 for ref_image_path in ref_images: ref_image = face_recognition.load_image_file(ref_image_path) ref_encoding = face_recognition.face_encodings(ref_image)[0] face_distance = face_recognition.face_distance([ref_encoding], uploaded_encoding)[0] similarities.append(1 - face_distance) # Convert distance to similarity avg_similarity=0 for s in similarities: avg_similarity+=s return avg_similarity*100 def analyze_face(image_data): # 将图片文件转换为base64编码 base64_data = base64.b64encode(image_data) # 调用百度API进行人脸识别 request_url = "https://aip.baidubce.com/rest/2.0/face/v3/detect" params = { "image": base64_data, "image_type": "BASE64", "face_field": "age,beauty,expression,face_shape,gender,glasses,emotion,face_type,spoofing", "face_type": "LIVE" } request_url = request_url + "?access_token=" + access_token headers = {'content-type': 'application/json'} response = requests.post(request_url, data=params, headers=headers) face_result = response.json() # 返回分析结果 return face_result['result']['face_list'][0] app.py修正 from flask import Flask, render_template, request,url_for,send_from_directory,jsonify,flash,redirect from face import analyze_face,calculate_face_similarity # 从face模块导入analyze_face函数 import os from flask_bootstrap import Bootstrap app = Flask(__name__) Bootstrap(app) #初始化 # 定义存储上传图片的文件夹 UPLOAD_FOLDER = 'static/uploads' app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER STATIC_FOLDER = 'static/reference' app.config['STATIC_FOLDER'] = STATIC_FOLDER @app.route('/', methods=['GET', 'POST']) def index(): if request.method == 'POST': # 获取上传的图片文件 image_file = request.files['image'] #获取名字处理 file_name = image_file.filename file_name = file_name.split('.')[0] # 保存图片到上传文件夹 filename = os.path.join(app.config['UPLOAD_FOLDER'], image_file.filename) image_file.save(filename) # 重新打开文件以读取数据 # 如果之后需要读取文件内容,可以这样做: with open(filename, 'rb') as f: image_data = f.read() # 获取图片的 URL image_url = url_for('static', filename=os.path.join('uploads', image_file.filename)) print("Image URL:", image_url) # 调用analyze_face函数分析人脸 face_features = analyze_face(image_data) # Get selected reference images selected_refs = request.form.getlist('reference') ref_image_paths = [os.path.join(app.config['STATIC_FOLDER'], ref) for ref in selected_refs] similarity=calculate_face_similarity(filename,ref_image_paths) # 提取分析结果并显示 name = file_name age = face_features['age'] beauty = face_features['beauty'] gender = face_features['gender']['type'] face_shape = face_features['face_shape']['type'] score=similarity*0.3+beauty*0.4 score=round(score,2) return render_template('result.html', name=name,age=age, score=score, gender=gender, face_shape=face_shape,image_url=image_url) return render_template('index.html') if __name__ == '__main__': app.run(debug=True) Q:进过反复调试发现一些颜值还行的妹子 实际5选2的照片对比中分数也不高 如何优化算法 首先,我们来看**相似度的非线性映射**。 为了扩展相似度范围,我们可以使用sigmoid函数,它是一个S形曲线,可以将任何实值映射到(0,1)之间。sigmoid函数的公式是: S(x) = \frac{1}{1 + e^{-x}} 但是,我们需要调整这个函数,使其中心在0.5(因为我们的数据大部分集中在0.4到0.6之间)。 为此,我们可以通过减去0.5和乘以一个大的常数(如10)来调整输入,使得输出值更加分散。函数可以写成: S(x) = \frac{1}{1 + e^{-10(x-0.5)}} 接下来是**考虑其他特征**的部分: 百度API为我们提供了许多其他的人脸属性,比如脸型、性别、是否戴眼镜等。我们可以考虑将这些特征纳入评分中。例如: 1. **脸型**:有些人可能更喜欢某种脸型,例如瓜子脸或圆脸。您可以为每种脸型设定一个基础分数,并根据上传的照片调整总分。 2. **性别**:如果您的系统主要针对某个性别的用户,您可以考虑调整性别的权重。 3. **是否戴眼镜**:有些人可能认为戴眼镜更有魅力,而有些人则相反。您可以为戴眼镜和不戴眼镜的照片设定不同的基础分数。 1.3.3 material设计优化 我们前面是基于bootstrap构架设计页面,但是为了提高美观度和后期设计的扩展,我们可以换一个构架materialize或者mdui 构架1:https://materializecss.com/ 构架2:https://www.mdui.org/ MDUI 是一个基于 Material Design 设计理念的前端框架。它提供了一套丰富的组件和样式,可以帮助开发者快速创建遵循 Material Design 指南的网页应用。MDUI 提供了各种组件,如按钮、卡片、对话框、列表等,以及响应式布局的支持。 修改基本框架,导入materialize模块到base.html中,例子如下(实际也可以用MDUI) 恋爱管理信息系统 {% block page_content %} {% endblock %} 1.3.4 多维度设计优化 由于气质很难量化,因此我们需要进行对比分析,了解基本情况! import face_recognition absolute_path = "/Users/thomi/PycharmProjects/untitled/LoveManagementSystem3/static/" # 存储前5张和后5张图片的face_encoding face_images_1 = [face_recognition.load_image_file(f"{absolute_path}reference/大美女{i}.jpg") for i in range(1, 6)] face_encodings_1 = [face_recognition.face_encodings(img)[0] for img in face_images_1] face_images_2 = [face_recognition.load_image_file(f"{absolute_path}reference/气质{i}.jpg") for i in range(1, 6)] face_encodings_2 = [face_recognition.face_encodings(img)[0] for img in face_images_2] def get_most_similar_face(image_file): # 加载上传的图片 up_image = face_recognition.load_image_file(image_file) up_encoding = face_recognition.face_encodings(up_image)[0] # 获取与上传图片的距离 distances_1 = face_recognition.face_distance(face_encodings_1, up_encoding) distances_2 = face_recognition.face_distance(face_encodings_2, up_encoding) # 找到距离最小的图片索引 index_1 = distances_1.argmin() index_2 = distances_2.argmin() # 根据索引获取脸型和气质 face_shape = ["圆脸型", "卵圆形脸型", "心形脸型", "长脸型", "方脸型"][index_1] temperament = ["知性、优雅", "性感、活力", "高贵、淑女", "清纯、娇媚", "少女、甜美"][index_2] return face_shape, temperament 字典建立 emotion_translation = { "angry": "生气气的人", "disgust": "抖S", "fear": "小胆子", "happy": "喜悦小天使", "sad": "忧伤感", "surprise": "惊呆呆", "neutral": "高冷的人" } glasses_translation = { "none": "无眼镜", "common": "普通眼镜", "sun": "太阳眼镜" } base.html Love Management System .submenu-item { padding-left: 40px !important; display: none; font-size: 14px; color: #888; }
menu Love Management System
home music_note info
  • airplay Home
  • headset
    Musik
    keyboard_arrow_down
    光的方向 天后 消失的她
  • face about us
{% block page_content %}{% endblock %}
添加个人信息的about.html {% extends "base.html" %} {% block page_content %}
About Us Banner
关于我们

我们是Love Management System,致力于为您提供最佳的恋爱管理解决方案。

从音乐推荐到情感分析,我们提供了一系列的功能,帮助您更好地理解和管理您的恋爱生活。

我们的团队是一群热衷于技术和恋爱的年轻人,我们相信技术可以带来更好的恋爱体验。

{% endblock %}

lms's People

Contributors

thomishen avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.