基于华为云ModelArts开发的【一键预测你和Ta的CP值】Demo帮你预测CP指数。
该模型利用ssim算法综合计算五官特征相似程度 从而得出CP值。
//夫妻相的原理在当今心理学、生物学仍有很大争议 夫妻相指数高并不意味着两人未来一定会幸福美满 也不能预判彼此关系变好变坏。本案例只适用于AI技术的学习以及情人节娱乐。
1.下载需要的海报文件和字体import os import 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,ImageFont warnings.filterwarnings( ignore )
def matlab_style_gauss2D(shape (3,3),sigma 0.5):
2D gaussian mask - should give the same result as MATLAB s
fspecial( 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() ] 0
sumh h.sum()
if sumh ! 0:
h / sumh
return h
def 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.shape
C1 (k1*L)**2
C2 (k2*L)**2
window 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 * mu1
mu2_sq mu2 * mu2
mu1_mu2 mu1 * mu2
sigma1_sq filter2(im1*im1, window, valid ) - mu1_sq
sigma2_sq filter2(im2*im2, window, valid ) - mu2_sq
sigmal2 filter2(im1*im2, window, valid ) - mu1_mu2
ssim_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的照片 不会留存照片信息,推理完成后内存数据会自动清除
img_show(similarity, img1, img2, name1, name2)
注意 输入图1图2照片姓名后都需要按下回车键
想知道你和心仪对象的CP指数有多少吗?AI一键就能预测。只需上传自己和心仪对象的照片,一键Run in ModelArts就可以知晓CP指数~ 复制链接
Error: Could not find a version that satisfies the requirement
43961
SQL Server2022 Express和SSMS下载安装教程(超详细)
9378
抵扣说明:
1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。
更多文章请关注《万象专栏》
转载请注明出处:https://www.wanxiangsucai.com/read/cv182429