【情人节专属】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有没有夫妻相?基于华为云ModelArts开发的【一键预测你和Ta的CP值】Demo帮你预测CP指数。该模型利用ssim算法综合计算五官特征相似程度,从而得出CP值。//夫妻相的原理在当今心理学、生物学仍有很大争议,夫妻相指数高并不意…...
一文浅谈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. 文章引言 我们在工作的过程中,经常使用in,not in,exists,not exists来…...
2023前端面试题——JS篇
1.判断 js 类型的方式 1. typeof 可以判断出’string’,‘number’,‘boolean’,‘undefined’,‘symbol’ 但判断 typeof(null) 时值为 ‘object’; 判断数组和对象时值均为 ‘object’ 2. instanceof 原理是 构造函数的 prototype 属性是否出现在对象的原型链中的任何位置 …...
微服务中API网关的作用是什么?
目录 什么是API网关? 为什么要用API网关? API网关架构 API网关是如何实现这些功能的? 协议转换 链式处理 异步请求 什么是API网关? Api网关是微服务的重要组成部分,封装了系统内部的复杂结构,客户端…...
python爬虫--xpath模块简介
一、前言 前两篇博客讲解了爬虫解析网页数据的两种常用方法,re正则表达解析和beautifulsoup标签解析,所以今天的博客将围绕另外一种数据解析方法,它就是xpath模块解析,话不多说,进入内容: 一、简介 XPat…...
【论文阅读】基于意图的网络(Intent-Based Networking,IBN)研究综述
IBN研究综述一、IBN体系结构1.1 体系结构:1.2 闭环流程:1.3 IBN的自动化程度(逐步向前演进):二、IBN 的实现方式2.1 意图获取:2.1.1 YANG、NEMO2.1.2 Frenetic、NetKAT、LAI2.2 意图转译:2.2.1 iNDIRA系统2.2.2 基于模…...
【云原生kubernetes】k8s service使用详解
一、什么是服务service? 在k8s里面,每个Pod都会被分配一个单独的IP地址,但这个IP地址会随着Pod的销毁而消失,重启pod的ip地址会发生变化,此时客户如果访问原先的ip地址则会报错 ; Service (服务)就是用来解决这个问题的…...
Python 数据可视化的 3 大步骤,你知道吗?
Python实现可视化的三个步骤: 确定问题,选择图形转换数据,应用函数参数设置,一目了然 1、首先,要知道我们用哪些库来画图? matplotlib Python中最基本的作图库就是matplotlib,是一个最基础的Python可视…...
CSS基础:盒子模型和浮动
盒子模型 所有HTML元素可以看作盒子,在CSS中,"box model"这一术语是用来设计和布局时使用 CSS盒模型本质上是一个盒子,封装HTML元素。 它包括:外边距(margin),边框(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包的形式运行,部署较为方便。只有监控功能,使用起来也较为安全(1)消费者组列表 (2)查看topic的历史消费信息. (3)每个topic的所有parition列表(topic,pid,offset,logSize,lag,owner) (4)对consumer消费情况进…...
近期工作感悟
从应届生变为社畜已经半年了,在这里吐槽一下自己的所想给自己看。 首先是心理层面上的,初期大大增加的压力。 我觉得应届生能够来到大厂的,基本都是在大学有去规划学习,对自己技能比较认可的。比如我在学校自学游戏开发ÿ…...
大数据框架之Hadoop:HDFS(三)HDFS客户端操作(开发重点)
3.1 HDFS客户端环境准备 1.根据自己电脑的操作系统拷贝对应的编译后的hadoop jar包到非中文路径(例如:D:\javaEnv\hadoop-2.77),如下图所示。 2.配置HADOOP_HOME环境变量,如下图所示。 3&#…...
多模式支持无线监控技术:主动式定位、被动式定位
物联网空间信息与数字技术发展至今,已经催生了一大批优秀的践行者。在日常与商业应用中,室内外定位领域依托于这一技术的发展,更是在近几年风光无限。但是并不是说室内定位与室外定位都已经相当成熟,相对来说,室内定位…...
Cy5 Alkyne,1223357-57-0,花青素Cyanine5炔基,氰基5炔烃
CAS号:1223357-57-0 | 英文名: Cyanine5 alkyne,Cy5 Alkyne | 中文名:花青素CY5炔基CASNumber:1223357-57-0Molecular formula:C35H42ClN3OMolecular weight:556.19Purity:95%Appear…...
【MySQL】MySQL 中 WITH 子句详解:从基础到实战示例
文章目录一、什么是 WITH 子句1. 定义2.用途二、WITH 子句的语法和用法1.语法2.使用示例3.优点三、总结"梦想不会碎,只有被放弃了才会破灭。" "Dreams wont break, only abandoned will shatter."一、什么是 WITH 子句 1. 定义 WITH 子句是 M…...
c/c++开发,无可避免的模板编程实践(篇一)
一、c模板 c开发中,在声明变量、函数、类时,c都会要求使用指定的类型。在实际项目过程中,会发现很多代码除了类型不同之外,其他代码看起来都是相同的,为了实现这些相同功能,我们可能会进行如下设计…...
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,您可以毫不费力地在计算机的显示器上录制专业的活动视频。除了录制视频外,Camtasia还允许您从外部源将高清视频导入到录制中。Camtasia的独特之处在于它可以创建包含可单击链接的交互式视频,以生成适用于教室或工作场所的动态视…...
Fabric磁盘扩容后数据迁移
线上环境原来的磁盘比较小,随着业务数据的增多,磁盘需要扩容,因此需要把原来docker数据转移至新的数据盘。 数据迁移 操作系统: centOS 7 docker默认的数据目录为/var/lib/docker 创建一个新的目录/opt/dockerdata&…...
大厂光环下的功能测试,出去面试自动化一问三不知
在一家公司待久了技术能力反而变弱了,原来的许多知识都会慢慢遗忘,这种情况并不少见。一个京东员工发帖吐槽:感觉在大厂快待废了,出去面试问自己接口环境搭建、pytest测试框架,自己做点工太久都忘记了。平时用的时候搜…...
SATA SSD需要NCQ开启吗?
一、故事开篇最近有同学在咨询,SATA SSD是否需要NCQ功能?借此机会,今天我们来聊聊这个比较古老的话题,关于SATA协议的NCQ的故事。首先我们先回顾下SATA与NCQ的历史:2003年,SATA协议1.0问世,传输…...
知识图谱业务落地技术推荐之图神经网络算法库图计算框架汇总
1.PyTorch Geometric: https://pytorch-geometric.readthedocs.io/en/latest/notes/introduction.html PyG是一个基于PyTorch的用于处理不规则数据(比如图)的库,或者说是一个用于在图等数据上快速实现表征学习的框架。它的运行速度很快,训练模型速度可以达到DGL(Deep Gra…...
==与equals()的区别
与equals()的区别 对于 比较的是值是否相等如果作用于基本数据类型的变量,则直接比较其存储的 “值”是否相等;如果作用于引用类型的变量,则比较的是所指向的对象的地址 对于equals方法 equals方法不能作用于基本数据类型的变量ÿ…...
【人工智能】对贝叶斯网络进行吉布斯采样
问题 现要求通过吉布斯采样方法,利用该网络进行概率推理(计算 P(RT|SF, WT)、P2(CF|WT)的概率值)。 原理 吉布斯采样的核心思想为一维一维地进行采样,采某一个维度的时候固定其他的维度,在本次实验中,假…...
Java 面向对象基础
文章目录一、类和对象1. 类的定义2. 对象的使用二、对象内存图三、成员变量和局部变量四、封装1. private 关键字2. this 关键字五、构造方法六、标准类制作一、类和对象 在此之前,我们先了解两个概念,对象和类。 万物皆对象,客观存在的事物…...
RocketMQ源码(21)—ConsumeMessageConcurrentlyService并发消费消息源码
基于RocketMQ release-4.9.3,深入的介绍了ConsumeMessageConcurrentlyService并发消费消息源码。 此前我们学习了consumer消息的拉取流程源码: RocketMQ源码(18)—DefaultMQPushConsumer消费者发起拉取消息请求源码RocketMQ源码(19)—Broker处理Default…...
基于 STM32+FPGA 的多轴运动控制器的设计
运动控制器是数控机床、高端机器人等自动化设备控制系统的核心。为保证控制器的实用性、实时性和稳定 性,提出一种以 STM32 为主控制器、FPGA 为辅助控制器的多轴运动控制器设计方案。给出了运动控制器的硬件电路设计, 将 S 形加减速算法融入运动控制器&…...
《爆肝整理》保姆级系列教程python接口自动化(十三)--cookie绕过验证码登录(详解
python接口自动化(十三)--cookie绕过验证码登录(详解 简介 有些登录的接口会有验证码:短信验证码,图形验证码等,这种登录的话验证码参数可以从后台获取的(或者查数据库最直接)。获取…...
soapui + groovy 接口自动化测试
1.操作excel的groovy脚本 package pubimport jxl.* import jxl.write.Label import jxl.write.WritableWorkbookclass ExcelOperation {def xlsFiledef workbookdef writableWorkbookdef ExcelOperation(){}//设置xlsFile文件路径def ExcelOperation(xlsFile){this.xlsFile x…...
做企业网站的字体大小要求/郑州厉害的seo顾问
[原文地址: http://blog.csdn.net/easwy/archive/2007/09/30/1807725.aspx ] 在windows上访问linux有多种方法: 对于习惯使用命令行的人来说,可以使用终端的方式进行访问,也就是通过telnet, ssh等方法远程登录到linux主机…...
惠州的企业网站建设/上首页的seo关键词优化
最近写代码,需要停止interval之后再重新启动,开始使用代码如下,发现无法重新启动 function func(){console.log("print")} //定时任务 var interval setInterval(func, 2000); //启动,func不能使用括号 clearInterval(interval );…...
不停弹窗的网站怎么做/短视频seo排名系统
1.在A测试服用ssh-keygen创建公钥和密钥,命令如下ssh-keygen -t rsa回车三次2.生成的公钥和密钥存放目录在三次回车的时候可以查看到本次目录使用的是/root/.ssh/3.将A服务器上生成的公钥通过scp发送到B服务的.ssh目录下,命令如下scp id_rsa.pub root192…...
java做教程网站/免费个人博客网站
第1关:Hyperledger Fabric 基本概念 任务描述 本关任务:根据本实训的相关知识,完成与 Hyperledger Fabric 基本概念相关的选择题。 相关知识 超级账本介绍 超级账本,即 Hyperledger,是区块链技术中第一个面向企业级应用场景的开源分布式账本平台。 2015年12月由 Linux …...
网站建设文字设计/网站制作app免费软件
网络管理的五大发展方向 发布时间: 2007-7-1 10:27:07 被阅览数: 92 次 来源: 株洲北大青鸟培训中心文字 〖 大 中 小 〗 自动滚屏(右键暂停) 随着网络应用和规模的不断增加,网络管理工作越来越繁重&#x…...
怎么建单位的网站/soso搜搜
一直想把 Android 的 APIDEMO 里面的DEMO 写出来,一来可以方便自己查看,二来方便大家能够早一点切入,从基础的控件到界面布局乃至到OPEN GL 等深入知识。不过惰性使然,一直迟迟未动手,今天外面下着大雨,没心…...