当前位置: 首页 > news >正文

【情人节专属】AI一键预测你和Ta的CP值

如何预测你和心仪的Ta有没有夫妻相?

基于华为云ModelArts开发的一键预测你和Ta的CP值Demo帮你预测CP指数。

该模型利用ssim算法综合计算五官特征相似程度,从而得出CP值。

//夫妻相的原理在当今心理学、生物学仍有很大争议,夫妻相指数高并不意味着两人未来一定会幸福美满,也不能预判彼此关系变好变坏。本案例只适用于AI技术的学习以及情人节娱乐。

1.下载需要的海报文件和字体

import osimport os.path as osp
import moxing as mox
parent = osp.join(os.getcwd(),'Valentine')
if not os.path.exists(parent):mox.file.copy_parallel('obs://modelarts-labs-bj4-v2/case_zoo/Valentine',parent)if os.path.exists(parent):print('Download success')else:raise Exception('Download Failed')
else:print("Model Package already exists!") 

2.使用ssim算法计算夫妻相

import numpy as np
import cv2
import random
import matplotlib.pyplot as plt
from matplotlib import font_manager
import warnings
from scipy.signal import convolve2d 
from PIL import Image,ImageDraw,ImageFontwarnings.filterwarnings('ignore')
def matlab_style_gauss2D(shape=(3,3),sigma=0.5):"""2D gaussian mask - should give the same result as MATLAB'sfspecial('gaussian',[shape],[sigma])"""m,n = [(ss-1.)/2. for ss in shape]y,x = np.ogrid[-m:m+1,-n:n+1]h = np.exp( -(x*x + y*y) / (2.*sigma*sigma) )h[ h < np.finfo(h.dtype).eps*h.max() ] = 0sumh = h.sum()if sumh != 0:h /= sumhreturn hdef filter2(x, kernel, mode='same'):return convolve2d(x, np.rot90(kernel, 2), mode=mode)def compute_ssim(im1, im2, k1=0.01, k2=0.04, win_size=11, L=255):if not im1.shape == im2.shape:raise ValueError("Input Imagees must have the same dimensions")if len(im1.shape) > 2:raise ValueError("Please input the images with 1 channel")M, N = im1.shapeC1 = (k1*L)**2C2 = (k2*L)**2window = matlab_style_gauss2D(shape=(win_size,win_size), sigma=0.5)window = window/np.sum(np.sum(window))if im1.dtype == np.uint8:im1 = np.double(im1)if im2.dtype == np.uint8:im2 = np.double(im2)mu1 = filter2(im1, window, 'valid')mu2 = filter2(im2, window, 'valid')mu1_sq = mu1 * mu1mu2_sq = mu2 * mu2mu1_mu2 = mu1 * mu2sigma1_sq = filter2(im1*im1, window, 'valid') - mu1_sqsigma2_sq = filter2(im2*im2, window, 'valid') - mu2_sqsigmal2 = filter2(im1*im2, window, 'valid') - mu1_mu2ssim_map = ((2*mu1_mu2+C1) * (2*sigmal2+C2)) / ((mu1_sq+mu2_sq+C1) * (sigma1_sq+sigma2_sq+C2))return np.mean(np.mean(ssim_map))def img_show(similarity, img1, img2, name1, name2):# similarity = random.uniform(60,100)zt = "./Valentine/方正兰亭准黑_GBK.ttf"my_font = font_manager.FontProperties(fname = zt,size =20 )img1 = cv2.resize(img1, (520, 520))img2 = cv2.resize(img2, (520, 520))imgs = np.hstack([img1, img2])imgs2 = imgs[:,:, ::-1]plt.axis('off')plt.title('{0} VS {1} \n CP指数: {2}%'.format(name1, name2, round(similarity, 2)), fontproperties=my_font)plt.imshow(imgs2)path = "a.jpg"cv2.imwrite(path, imgs)# img = cv2ImgAddText(imgs, '夫妻相: {}%'.format(round(similarity, 2)), 350, 130, (255, 0 , 0), 50)# cv2.imshow('image1 vs image2', img)# cv2.waitKey()

3.修改预置的视频和图片

在Valentine文件夹下,有一个预置的1.png和2.png图片,大家可以将里面的图片替换成自己的,图片的名称不建议修改,如果修改成其他的名称,后面的路径也要进行相应的修改。

点击此处上传你和Ta的照片(不会留存照片信息,推理完成后内存数据会自动清除)

上传成功

if __name__ == '__main__':name1 = input('请输入图1照片姓名: \n')name2 = input('请输入图2照片姓名: \n')img1_path = 'Valentine/1.png'img2_path = 'Valentine/2.png'img1 = cv2.imread(img1_path)img2 = cv2.imread(img2_path)im1 = cv2.cvtColor(img1, cv2.COLOR_BGR2GRAY)im2 = cv2.cvtColor(img2, cv2.COLOR_BGR2GRAY)im1 = cv2.resize(im1, (520,520))im2 = cv2.resize(im2, (520,520))similarity = compute_ssim(im1, im2)*100if similarity == 100:raise ValueError("图片重复! 请重新上传图片")random.seed(similarity)add_score = random.uniform(1, 100-similarity)similarity += add_scoreimg_show(similarity, img1, img2, name1, name2)

注意:输入图1图2照片姓名后都需要按下回车键

预测成功:

image = Image.open("a.jpg")
image = image.resize((498,278))

4.打印输出海报

import os
from PIL import Image,ImageDraw,ImageFont,ImageFilter
from PIL import ImageFile
ImageFile.LOAD_TRUNCATED_IMAGES = True

填写创作者名称

右键即可下载海报

海报如下:

相关文章:

【情人节专属】AI一键预测你和Ta的CP值

如何预测你和心仪的Ta有没有夫妻相&#xff1f;基于华为云ModelArts开发的【一键预测你和Ta的CP值】Demo帮你预测CP指数。该模型利用ssim算法综合计算五官特征相似程度&#xff0c;从而得出CP值。//夫妻相的原理在当今心理学、生物学仍有很大争议&#xff0c;夫妻相指数高并不意…...

一文浅谈sql中的 in与not in,exists与not exists的区别以及性能分析

文章目录1. 文章引言2. 查询对比2.1 in和exists2.2 not in 和not exists2.3 in 与 的区别3. 性能分析3.1 in和exists3.2 NOT IN 与NOT EXISTS4. 重要总结1. 文章引言 我们在工作的过程中&#xff0c;经常使用in&#xff0c;not in&#xff0c;exists&#xff0c;not exists来…...

2023前端面试题——JS篇

1.判断 js 类型的方式 1. typeof 可以判断出’string’,‘number’,‘boolean’,‘undefined’,‘symbol’ 但判断 typeof(null) 时值为 ‘object’; 判断数组和对象时值均为 ‘object’ 2. instanceof 原理是 构造函数的 prototype 属性是否出现在对象的原型链中的任何位置 …...

微服务中API网关的作用是什么?

目录 什么是API网关&#xff1f; 为什么要用API网关&#xff1f; API网关架构 API网关是如何实现这些功能的&#xff1f; 协议转换 链式处理 异步请求 什么是API网关&#xff1f; Api网关是微服务的重要组成部分&#xff0c;封装了系统内部的复杂结构&#xff0c;客户端…...

python爬虫--xpath模块简介

一、前言 前两篇博客讲解了爬虫解析网页数据的两种常用方法&#xff0c;re正则表达解析和beautifulsoup标签解析&#xff0c;所以今天的博客将围绕另外一种数据解析方法&#xff0c;它就是xpath模块解析&#xff0c;话不多说&#xff0c;进入内容&#xff1a; 一、简介 XPat…...

【论文阅读】基于意图的网络(Intent-Based Networking,IBN)研究综述

IBN研究综述一、IBN体系结构1.1 体系结构&#xff1a;1.2 闭环流程&#xff1a;1.3 IBN的自动化程度(逐步向前演进)&#xff1a;二、IBN 的实现方式2.1 意图获取&#xff1a;2.1.1 YANG、NEMO2.1.2 Frenetic、NetKAT、LAI2.2 意图转译&#xff1a;2.2.1 iNDIRA系统2.2.2 基于模…...

【云原生kubernetes】k8s service使用详解

一、什么是服务service&#xff1f; 在k8s里面&#xff0c;每个Pod都会被分配一个单独的IP地址,但这个IP地址会随着Pod的销毁而消失&#xff0c;重启pod的ip地址会发生变化&#xff0c;此时客户如果访问原先的ip地址则会报错 &#xff1b; Service (服务)就是用来解决这个问题的…...

Python 数据可视化的 3 大步骤,你知道吗?

Python实现可视化的三个步骤&#xff1a; 确定问题&#xff0c;选择图形转换数据&#xff0c;应用函数参数设置&#xff0c;一目了然 1、首先&#xff0c;要知道我们用哪些库来画图? matplotlib Python中最基本的作图库就是matplotlib&#xff0c;是一个最基础的Python可视…...

CSS基础:盒子模型和浮动

盒子模型 所有HTML元素可以看作盒子&#xff0c;在CSS中&#xff0c;"box model"这一术语是用来设计和布局时使用 CSS盒模型本质上是一个盒子&#xff0c;封装HTML元素。 它包括&#xff1a;外边距&#xff08;margin&#xff09;&#xff0c;边框&#xff08;bord…...

OpenHarmony使用Socket实现一个TCP服务端详解

点击获取BearPi-HM_Nano源码 ,以D4_iot_tcp_server为例: 点击查看:上一篇关于socket udp实现的解析 查看 TCPServerTask 方法实现: static void TCPServerTask(void) {//连接WifiWifiConnect("TP-LINK_65A8",...

kafka监控工具安装和使用

1. KafkaOffsetMonitor 该监控是基于一个jar包的形式运行&#xff0c;部署较为方便。只有监控功能&#xff0c;使用起来也较为安全(1)消费者组列表 (2)查看topic的历史消费信息. (3)每个topic的所有parition列表(topic,pid,offset,logSize,lag,owner) (4)对consumer消费情况进…...

近期工作感悟

从应届生变为社畜已经半年了&#xff0c;在这里吐槽一下自己的所想给自己看。 首先是心理层面上的&#xff0c;初期大大增加的压力。 我觉得应届生能够来到大厂的&#xff0c;基本都是在大学有去规划学习&#xff0c;对自己技能比较认可的。比如我在学校自学游戏开发&#xff…...

大数据框架之Hadoop:HDFS(三)HDFS客户端操作(开发重点)

3.1 HDFS客户端环境准备 1&#xff0e;根据自己电脑的操作系统拷贝对应的编译后的hadoop jar包到非中文路径&#xff08;例如&#xff1a;D:\javaEnv\hadoop-2.77&#xff09;&#xff0c;如下图所示。 2&#xff0e;配置HADOOP_HOME环境变量&#xff0c;如下图所示。 3&#…...

多模式支持无线监控技术:主动式定位、被动式定位

物联网空间信息与数字技术发展至今&#xff0c;已经催生了一大批优秀的践行者。在日常与商业应用中&#xff0c;室内外定位领域依托于这一技术的发展&#xff0c;更是在近几年风光无限。但是并不是说室内定位与室外定位都已经相当成熟&#xff0c;相对来说&#xff0c;室内定位…...

Cy5 Alkyne,1223357-57-0,花青素Cyanine5炔基,氰基5炔烃

CAS号&#xff1a;1223357-57-0 | 英文名&#xff1a; Cyanine5 alkyne&#xff0c;Cy5 Alkyne | 中文名&#xff1a;花青素CY5炔基CASNumber&#xff1a;1223357-57-0Molecular formula&#xff1a;C35H42ClN3OMolecular weight&#xff1a;556.19Purity&#xff1a;95%Appear…...

【MySQL】MySQL 中 WITH 子句详解:从基础到实战示例

文章目录一、什么是 WITH 子句1. 定义2.用途二、WITH 子句的语法和用法1.语法2.使用示例3.优点三、总结"梦想不会碎&#xff0c;只有被放弃了才会破灭。" "Dreams wont break, only abandoned will shatter."一、什么是 WITH 子句 1. 定义 WITH 子句是 M…...

c/c++开发,无可避免的模板编程实践(篇一)

一、c模板 c开发中&#xff0c;在声明变量、函数、类时&#xff0c;c都会要求使用指定的类型。在实际项目过程中&#xff0c;会发现很多代码除了类型不同之外&#xff0c;其他代码看起来都是相同的&#xff0c;为了实现这些相同功能&#xff0c;我们可能会进行如下设计&#xf…...

mulesoft MCIA 破釜沉舟备考 2023.02.13.04

mulesoft MCIA 破釜沉舟备考 2023.02.13.03 1. An integration Mule application consumes and processes a list of rows from a CSV file.2. One of the backend systems involved by the API implementation enforces rate limits on the number of request a particle clie…...

Camtasia2023最新版本新功能及快捷键教程

使用Camtasia&#xff0c;您可以毫不费力地在计算机的显示器上录制专业的活动视频。除了录制视频外&#xff0c;Camtasia还允许您从外部源将高清视频导入到录制中。Camtasia的独特之处在于它可以创建包含可单击链接的交互式视频&#xff0c;以生成适用于教室或工作场所的动态视…...

Fabric磁盘扩容后数据迁移

线上环境原来的磁盘比较小&#xff0c;随着业务数据的增多&#xff0c;磁盘需要扩容&#xff0c;因此需要把原来docker数据转移至新的数据盘。 数据迁移 操作系统&#xff1a; centOS 7   docker默认的数据目录为/var/lib/docker   创建一个新的目录/opt/dockerdata&…...

造相-Z-Image效果对比:Z-Image在中文语义理解准确率上超越SDXL实测

造相-Z-Image效果对比&#xff1a;Z-Image在中文语义理解准确率上超越SDXL实测 最近在折腾本地文生图&#xff0c;发现了一个挺有意思的现象。我用的是基于通义千问官方Z-Image模型定制的“造相-Z-Image”引擎&#xff0c;专门为我的RTX 4090显卡做了优化。本来只是想试试它的…...

流水线设计避坑指南:什么时候该用?深度怎么选?看完这篇就懂了

流水线设计实战决策&#xff1a;吞吐率与硬件成本的黄金分割点 在芯片设计和FPGA开发领域&#xff0c;流水线技术就像一把双刃剑——用得好可以大幅提升系统性能&#xff0c;用得不当则可能造成资源浪费甚至引入新的瓶颈。我曾在一个图像处理芯片项目中&#xff0c;因为错误估计…...

为什么顶尖量化团队集体弃用Pandas?Polars 2.0清洗基准测试结果刚解禁(含12类真实业务场景压测数据)

第一章&#xff1a;Polars 2.0大规模数据清洗技巧对比评测报告Polars 2.0 在查询优化器、内存管理及并行执行策略上实现显著升级&#xff0c;尤其在处理十亿级行宽表时展现出远超 Pandas 和 DuckDB 的吞吐稳定性。本章基于真实电商日志数据集&#xff08;12.7 GB&#xff0c;8.…...

5步掌握Blender置换贴图:从基础到高级的完整指南

5步掌握Blender置换贴图&#xff1a;从基础到高级的完整指南 【免费下载链接】awesome-blender &#x1fa90; A curated list of awesome Blender addons, tools, tutorials; and 3D resources for everyone. 项目地址: https://gitcode.com/GitHub_Trending/aw/awesome-ble…...

26地学考研复试线汇总(华东师范大学/南京师范大学/南京信息工程大学/中国海洋大学/兰州大学)

今天开始更新一波26地理学考研复试分数线&#xff0c;计划考研的同学可以关注&#x1f447;华东师范大学华东师范大学26复试线公布&#xff01;地理学统一划线&#xff01; 地理科学学院&#xff1a;地理学统一划线325分&#xff0c;相比去年总体上涨&#xff1b;测绘工程333分…...

FlashPatch终极指南:让Flash游戏在浏览器中重获新生

FlashPatch终极指南&#xff1a;让Flash游戏在浏览器中重获新生 【免费下载链接】FlashPatch FlashPatch! Play Adobe Flash Player games in the browser after January 12th, 2021. 项目地址: https://gitcode.com/gh_mirrors/fl/FlashPatch FlashPatch是一款强大的Wi…...

当Pwn题遇上Seccomp沙箱:手把手教你用SROP绕过LilCTF ret2all的write限制

突破Seccomp沙箱&#xff1a;SROP技术在CTF Pwn题中的高阶应用 在CTF竞赛中&#xff0c;Pwn题目常常会设置各种限制条件来增加挑战难度&#xff0c;其中Seccomp沙箱是最常见的防护手段之一。当遇到禁用关键系统调用&#xff08;如write&#xff09;的沙箱环境时&#xff0c;传统…...

视频下载高效获取:3个维度重新定义开源工具的使用体验

视频下载高效获取&#xff1a;3个维度重新定义开源工具的使用体验 【免费下载链接】downkyi 哔哩下载姬downkyi&#xff0c;哔哩哔哩网站视频下载工具&#xff0c;支持批量下载&#xff0c;支持8K、HDR、杜比视界&#xff0c;提供工具箱&#xff08;音视频提取、去水印等&#…...

JavaWeb前后端交互实战:从Servlet到Axios的完整避坑指南

JavaWeb前后端交互实战&#xff1a;从Servlet到Axios的完整避坑指南 1. 现代Web开发中的前后端交互演进 在当今的Web应用开发中&#xff0c;前后端分离架构已成为主流趋势。这种架构模式下&#xff0c;前端负责用户界面展示和交互逻辑&#xff0c;后端专注于业务逻辑和数据处理…...

OpenClaw对接GLM-4.7-Flash:模型性能优化指南

OpenClaw对接GLM-4.7-Flash&#xff1a;模型性能优化指南 1. 为什么需要专门优化GLM-4.7-Flash的对接&#xff1f; 上个月我在本地部署了OpenClawGLM-4.7-Flash组合&#xff0c;原本期待它能流畅处理我的自动化办公需求&#xff0c;结果遭遇了典型的"水土不服"症状…...