当前位置: 首页 > 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&…...

掌握Windows 11精简艺术:Tiny11Builder实战手册

掌握Windows 11精简艺术&#xff1a;Tiny11Builder实战手册 【免费下载链接】tiny11builder Scripts to build a trimmed-down Windows 11 image. 项目地址: https://gitcode.com/GitHub_Trending/ti/tiny11builder 你是否曾因Windows 11的臃肿而烦恼&#xff1f;老旧设…...

PixelAnnotationTool终极指南:如何用智能分水岭算法实现高效像素级图像标注

PixelAnnotationTool终极指南&#xff1a;如何用智能分水岭算法实现高效像素级图像标注 【免费下载链接】PixelAnnotationTool Annotate quickly images. 项目地址: https://gitcode.com/gh_mirrors/pi/PixelAnnotationTool 你是否曾经为图像标注工作感到头疼&#xff…...

A Survey for Image Quality Assessment: From Handcrafted Features to Deep Learning

1. 图像质量评估的起源与核心挑战 当你用手机拍完一张照片&#xff0c;系统自动弹出"画质优化建议"时&#xff0c;背后就是图像质量评估&#xff08;IQA&#xff09;技术在发挥作用。这项技术最早可以追溯到上世纪70年代电视信号传输质量检测&#xff0c;当时工程师们…...

Windows APK安装工具终极指南:轻松在电脑上安装Android应用

Windows APK安装工具终极指南&#xff1a;轻松在电脑上安装Android应用 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 您是否曾经希望在Windows电脑上直接安装Android…...

GeoServer部署实战与前端地图调用跨域配置详解

1. GeoServer快速部署指南 第一次接触GeoServer的朋友可能会觉得这个开源地图服务器有点神秘&#xff0c;其实它的安装比想象中简单得多。我在多个项目中部署过不同版本的GeoServer&#xff0c;总结出了一套最稳妥的安装流程。GeoServer本质上是一个基于Java的Web应用&#xff…...

西门子S7-1200 PLC编程避坑指南:从振荡电路到浮点数计算,新手最常犯的5个错误

西门子S7-1200 PLC编程实战避坑手册&#xff1a;从逻辑陷阱到数据精度 第一次接触西门子S7-1200 PLC编程时&#xff0c;我对着闪烁的指示灯发呆了半小时——明明按照手册写的梯形图&#xff0c;为什么定时器就是不工作&#xff1f;后来才发现是TON指令的PT参数单位理解错误。这…...

如何快速解密QMC音频文件:qmc-decoder完整使用指南

如何快速解密QMC音频文件&#xff1a;qmc-decoder完整使用指南 【免费下载链接】qmc-decoder Fastest & best convert qmc 2 mp3 | flac tools 项目地址: https://gitcode.com/gh_mirrors/qm/qmc-decoder 你是否遇到过从音乐平台下载的歌曲无法在其他播放器播放的情…...

3分钟实现Zotero与Notion双向联动:Notero完整使用指南

3分钟实现Zotero与Notion双向联动&#xff1a;Notero完整使用指南 【免费下载链接】notero A Zotero plugin for syncing items and notes into Notion 项目地址: https://gitcode.com/gh_mirrors/no/notero 你是否曾为学术研究中的文献管理而烦恼&#xff1f;Zotero中精…...

从“能用”到“可靠”:基于SonarQube与Jenkins的Java代码质量防线构建实战

当测试覆盖率不再只是一串数字&#xff0c;而是合并代码前的“一票否决权” 1. 为什么你的“质量门禁”只是个摆设&#xff1f; 在很多团队的CI/CD流水线中&#xff0c;SonarQube的集成往往停留在“能跑就行”的阶段。流水线里确实有代码扫描这一步&#xff0c;日志里也打印出…...

智能任务调度引擎:重构碧蓝航线自动化管理架构

智能任务调度引擎&#xff1a;重构碧蓝航线自动化管理架构 【免费下载链接】AzurLaneAutoScript Azur Lane bot (CN/EN/JP/TW) 碧蓝航线脚本 | 无缝委托科研&#xff0c;全自动大世界 项目地址: https://gitcode.com/gh_mirrors/az/AzurLaneAutoScript 在移动游戏生命周…...