应用办公生活信息教育商业
投稿投诉
商业财经
汽车智能
教育国际
房产环球
信息数码
热点科技
生活手机
晨报新闻
办公软件
科学动态
应用生物
体育时事

偶像刘德华,我爱你30年,我要和你用python换个脸

  1说明:
  1。1首先:刘德华是我的偶像,一直很喜欢他,向他致敬,无意冒犯,仅供学习。
  1。2技术要点:pythonOpenCV(cv2)dlibnumpy,代码详细,简单通俗,小白秒懂。
  1。3图片来源:今日头条免费正版图库。
  偶像刘德华:ldh。jpeg
  来自网络,假设是我:me。jpeg
  换脸后的效果,小bug,可能与光线有关
  2准备:
  2。1参看文章来源:https:github。comMister5ivechangeFaceImg下载,提取shapepredictor68facelandmarks。dat上面github下载的代码多,弃用。https:blog。csdn。netuglyscarecrowarticledetails77449576代码来源,并对代码进行修改,注释和删减
  2。2环境:
  python3。8OpenCV4。2。0dlib19。19微软编辑器vscode深度操作系统deepinlinux。
  3代码分析:
  3。1第1步:导入模块importcv2importdlibimportsysimportnumpyasnp
  3。2第2步:参数设定SCALEFACTOR1FEATHERAMOUNT11代表各个区域的关键点标号FACEPOINTSlist(range(17,68))MOUTHPOINTSlist(range(48,61))RIGHTBROWPOINTSlist(range(17,22))LEFTBROWPOINTSlist(range(22,27))RIGHTEYEPOINTSlist(range(36,42))LEFTEYEPOINTSlist(range(42,48))NOSEPOINTSlist(range(27,35))JAWPOINTSlist(range(0,17))pupillarydistance。瞳孔距离COLOURCORRECTBLURFRAC0。6
  3。3第3步:加载模型,注意路径。模型需要在dlib包或者上面提到的github中获取。PREDICTORPATHhomexgjDesktopchangefacemodelshapepredictor68facelandmarks。datdetectordlib。getfrontalfacedetector()predictordlib。shapepredictor(PREDICTORPATH)
  3。4第4步:函数定义获取关键点坐标位置,只获取一张人脸input:代表一张图片的numpyarrayoutput:682的关键点坐标位置matrixdefgetlandmarks(im):rectsdetector(im,1)returnnp。matrix(〔〔p。x,p。y〕forpinpredictor(im,rects〔0〕)。parts()〕)defreadimandlandmarks(fname):imcv2。imread(fname,cv2。IMREADCOLOR)imcv2。resize(im,(im。shape〔1〕SCALEFACTOR,im。shape〔0〕SCALEFACTOR))sgetlandmarks(im)returnim,sdefdrawconvexhull(im,points,color):pointscv2。convexHull(points)检测凸包函数cv2。fillConvexPoly(im,points,colorcolor)绘制好多边形后并填充点的顺序不同绘制出来的凸包也不同defgetfacemask(im,landmarks):imnp。zeros(im。shape〔:2〕,dtypenp。float64)drawconvexhull(im,landmarks,color1)imnp。array(〔im,im,im〕)。transpose((1,2,0))得到一个类似于3通道的图片returnim用普氏分析(Procrustesanalysis)调整脸部deftransformationfrompoints(points1,points2):points1points1。astype(np。float64)points2points2。astype(np。float64)c1np。mean(points1,axis0)c2np。mean(points2,axis0)points1c1points2c2计算标准差s1np。std(points1)s2np。std(points2)points1s1points2s2通过奇异值分解求得旋转矩阵RU,S,Vtnp。linalg。svd(points1。Tpoints2)R(UVt)。T维度:22仿射变换矩阵33numpy。hstack用来在第1个维度上拼接tupnumpy。vstack在第0个维度上拼接tupreturnnp。vstack(〔np。hstack(((s2s1)R,c2。T(s2s1)Rc1。T)),np。matrix(〔0。,0。,1。〕)〕)defwarpim(im,M,dshape):outputimnp。zeros(dshape,dtypeim。dtype)cv2。warpAffine(im,M〔:2〕,(dshape〔1〕,dshape〔0〕),dstoutputim,borderModecv2。BORDERTRANSPARENT,flagscv2。WARPINVERSEMAP)returnoutputim颜色校正defcorrectcolours(im1,im2,landmarks1):bluramountCOLOURCORRECTBLURFRACnp。linalg。norm(np。mean(landmarks1〔LEFTEYEPOINTS〕,axis0)np。mean(landmarks1〔RIGHTEYEPOINTS〕,axis0))bluramountint(bluramount)ifbluramount20:bluramount1im1blurcv2。GaussianBlur(im1,(bluramount,bluramount),0)im2blurcv2。GaussianBlur(im2,(bluramount,bluramount),0)Avoidpidebyzeroerrors。im2blur(128(im2blur1。0))。astype(im2blur。dtype)return(im2。astype(np。float64)im1blur。astype(np。float64)im2blur。astype(np。float64))
  3。5第5步:加载图片和开始换脸im1,landmarks1readimandlandmarks(homexgjDesktopchangefaceme。jpeg)需要换脸:me的脸im2,landmarks2readimandlandmarks(homexgjDesktopchangefaceldh。jpeg)偶像的脸:ldh的脸换脸点Mtransformationfrompoints(landmarks1,landmarks2)getfacemask()的定义是为一张图像和一个标记矩阵生成一个掩膜maskgetfacemask(im2,landmarks2)warpedmaskwarpim(mask,M,im1。shape)33。用min函数取掩膜区域效果更好combinedmasknp。min(〔getfacemask(im1,landmarks1),warpedmask〕,axis0)将图像2的掩膜转换到图像1的坐标空间warpedim2warpim(im2,M,im1。shape)warpedcorrectedim2correctcolours(im1,warpedim2,landmarks1)outputimim1(1。0combinedmask)warpedcorrectedim2combinedmask保存换脸后的图片cv2。imwrite(homexgjDesktopchangefaceoutput。jpg,outputim)outputimoutputim。astype(np。uint8)展示图片cv2。imshow(outputface,outputim)cv2。waitKey()
  4操作和效果:
  华仔,爱你一万年。

黑暗之魂重制版PCPS平台画面与原版对比经典魂系列初代游戏《黑暗之魂(DarkSouls)》的重制版将在今年5月底发售。而具体此次游戏的重制质量效果如何,在今晚游戏的相关画面对比已经正式解禁。为大家带来游戏在PC平台……Facebook让用户选择哪些应用程序获取个人数据Facebook已经让用户管理哪些第三方应用可以访问数据更加容易,只需稍作调整,就可以让用户更有可能控制自己的隐私。最近几周社交网络已经成为焦点更不用说FTC调查的主题了,后者……漫威蜘蛛侠炫酷新演示预告大批情报将公布漫改动作游戏《漫威蜘蛛侠(MarvelsSpiderMan)》终于在今晚公布了一段全新的演示预告。相关视频由国外游戏杂志媒体Gameinformer(以下简称:GI)放出,作为……Valve悄悄将游戏商店里SteamMachine页面隐匿了近日,PC游戏玩家可能会注意到SteamMachines不能再购买,虽然可以找到链接,但Valve悄悄地隐藏了SteamMachines网页链接,这也许意味着Valve把PC游……黑暗之魂重制版30分钟实机演示60帧高清GameSpot今天公布了一段《黑暗之魂:重制版》的超长演示,向我们展示了从游戏开场到不死院恶魔boss战在内的内容。根据GameSpot介绍,他们使用了PS4Pro主机……推特公布火影忍者博人传忍者先锋预购开启你准备好向这个忍者世界展示自己有多努力了吗?rdquo;准备好迎接高难度的《火影忍者博人转:忍者先锋》战斗,游戏会在今年发售。从官方页面来看,《火影忍者博人传:忍者先锋》……大神完成战锤末世鼠疫2最高难度天劫挑战在近期发售的热门多人合作游戏《战锤:末世鼠疫2(Warhammer:Vermintide2)》中,第四个难度也就是最高难度天劫相比于第三个难度噩梦在怪物潮、特殊敌人以及强悍重甲……时空之轮本月更新将推出SNES怀旧画面选项SquareEnix今天宣布将会在接下来放出几个《时空之轮》的更新,第一个更新将在本月上旬推出,尽管没有公布详细的更新说明,但是他们提到将会在现有的高分辨率画质之外增加一个原版……珍惜胎教时光不要浪费最好的亲子时光现实生活中很多孕妈买了一个胎教机,直接绑在肚子上放音乐或心跳音等给宝宝听,认为这就是胎教了;而另一边呢,自己刷着手机或干着其他的事情,一点不和肚子的宝宝互动,其实这样的胎教是没……战神4总监曝游戏时长完全通关需40多个小时Barlog说开发团队一名员工花了43个小时才完全通关。ldquo;我们的其中一个系统设计人员刚刚达到了100完整通关,基本上整个游戏所有能做的任务都做了,他玩了43个小时,这……武器人间打造绝地求生大砍刀威力惊人美国知名武器打造团队rdquo;武器人间ldquo;今日又为我们带来了他们的新作品mdash;mdash;《绝地求生》大砍刀。除了平底锅以外,大砍刀可以说是《绝地求生》中……底特律变人日版刺激逼真的真人科幻大片今日,日本PlayStation发布了4段日版《底特律:变人》新预告,画面惊艳,仿佛真人科幻大片一般,让玩家对游戏故事、系统和角色有了初步的印象,并为三位主角造足了悬念。……
语文课本中,5篇经典被下架,理由荒诞且无趣,清华教授痛心疾首文馨儿汉语的字是美的,汉语的音是美的,汉语的灵魂也是美的,汉语的一切都很美。语数外这三门学科,是学生们接受教育的第一站。语文是中国人的母语,从我们出生开始,就在学习……女儿,不要把她当公主我家女儿现在两岁半,有次带他出去遛弯儿遛,遇到一个小女孩,比我家孩子小一点。白白的羽绒马甲,鲜红的公主裙,扎了好多个小辫子,带了好几种颜色的花,又鲜又亮,仙女一般。……一次矿难夺走近200条生命,缅甸的翡翠产业水有多深?2020年7月2日,缅甸克钦邦帕敢翡翠矿区发生山体滑坡,目前已确认174人遇难。此外还有55人受伤,失踪约20人还在搜寻中。这是缅甸历史上伤亡最严重的矿难事故。作为世界公……你认为什么样的妈妈才算得上新时代妈妈?需要进步学习吗?学无止境,学海无涯,活到老学到老在学习这件事上,永远都是没有尽头的,人人都需要学习,不仅仅是孩子,成年人也是如此。特别是对我们来说,身为妈妈,主动去学习更多的知识内容,对于日后……关于女性财富的四个关键点,读懂了早日实现财富自由关于财富的那些限制性系统:我们为什么没有钱?为什么我们觉得自己不值得和不配得?为什么我们对财富有很多这样的限制性系统?当我们能去掉那些石头的时候,我们的……先天和后天,哪个对孩子影响更大?原创文章,首发于公众号小小神经元,未经许可,请勿转载本文为第一人称,文中我JasminWertz,成长于德国,在柏林的洪堡大学和比勒费尔德大学获得心理学文凭,后移居英国,……女人出轨,从不再主动给你这4样东西开始,别不知道无论是男人还是女人,都是一样的,背叛婚姻都不值得被原谅。婚姻毕竟不同于爱情,不是说你爱上谁就能和谁在一起,婚姻是负责任的,每个人在婚姻中,都应该约束自己的行为,永远对家庭……双减,真的能给孩子一个好的未来?孩子的教育问题,任何风吹草动,时刻牵动着家长的心,更是牵动每个孩子的未来。作者依凡听说要给孩子实行双减了,真是有人哭,有人笑,还有人绞尽脑汁的钻空子。最近一段时间,……台湾向男友要万元化妆品被拒,女子当街甩巴掌借钱也要给我买俗话说:人有多大胆,地有多大产。每个人都应该控制自己的欲望,自己没有能力消费高档奢侈品,就不要有想法。有的女孩爱慕虚荣,自己没有能力,还要求男朋友帮助实现心愿,根本……温柔似水,致命是水昨天发了孩子下雨天玩水的视频,纪念他们玩水时的欢乐时光。水是生命之源!它很重要,我们生活中离不开它。当我们在水的世界里玩耍,感受水的最亲密接触,此刻水是温柔的。没有危险的……幼儿园开学必备绘本,让孩子快乐入园书妈妈绘本,阅读伴成长!每一年的9月入园季,总有不少孩子会因为不适应新环境而产生心理压力、陌生感,甚至是恐惧感,甚至会哭闹不停。所以,从现在开始,家长就要着手给孩子做入园……国有金融机构将清理门户是对金融行业的一种负责国有金融机构将清理门户是对金融行业的一种负责金融不同于其他,一边聚集社会的闲散资金,一边用于投放社会,支持企业、实际经济、三农的发展,也就是被称之为社会的纽带,是起到支持……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网