精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

別@微信團隊了,我用Python給自己戴上了圣誕帽!

開發 后端 開發工具
這幾天,你的朋友圈一定被“請給我一頂圣誕帽@微信官方”刷屏了……很多不知真相的網友也紛紛求問如何給自己的頭像加上圣誕帽。

這幾天,你的朋友圈一定被“請給我一頂圣誕帽@微信官方”刷屏了……很多不知真相的網友也紛紛求問如何給自己的頭像加上圣誕帽。

[[214593]]

圣誕帽火了,上億人瘋狂@微信官方

圣誕節到了,朋友圈悄悄地掀起一股加帽風,大家紛紛@微信官方,申請給自己的頭像加圣誕帽。

圣誕帽搜索指數隨之在 24 小時內狂飆:

然后,一場花式求圣誕帽的儀式開始刷屏了,還混入了各種奇怪的東西。不料卻發現@微信官方并不能帶上圣誕帽,才知道“被騙”了。

一大波知道真相的網友隨后開始把@微信官方變成了許愿池:

要錢和禮物的

討房子的

要明星的

要博士帽的

求減肥的

還有送綠帽子的

[[214600]]

網友們一邊@微信官方許愿,一邊默默的自己 P 上圣誕帽……戲精這波操作我給滿分!

如何從技術上實現@微信官方頭像添加圣誕帽?

那么,身為程序員,從技術的角度思考一下,這事兒到底能不能成呢?

首先看一下網上某猿的分析:

這體現了騰訊強大的人工智能實力,首先微信收到用戶發送的朋友圈后,便獲取用戶頭像上傳至服務器云端,然后借助云計算和人臉識別,豬臉識別(來自友商京東的技術)和物體識別,根據頭像角度、人臉大小,不斷調整圣誕帽的尺寸和位置,***生成圣誕帽頭像。

網友 @IT大智表示:

這個功能目前幾乎是不可能實現的。首先要明確一點,所有 APP 或者網站都是由代碼程序實現的。

假設微信想給用戶添加圣誕帽,必須要再引用一次圣誕帽的圖片地址,直接添加的話肯定要覆蓋用戶原來的頭像,退一步騰訊可以做到圖片疊加,那么也一定要定義圖片的大小和位置。

所以微信最多做到在固定位置添加一個大小一定的帽子,大家想象一下微信用戶的頭像千差萬別,人頭位置也很不確定,圣誕帽怎么會正好加在頭像頭頂呢?

所以這是個謠言,類似于“明天是馬化騰生日,轉發本條信息到三個群會得到 200Q 幣”等等。

不少好友都發布了請求添加圣誕帽的朋友圈并@了微信官方,但實際上微信只能@自己的好友,微信并沒有推出自己的官方號,所以你在朋友圈@微信官方,微信的人能收到你的@信息嗎?當然不能。

然而還有更厲害的:

大致來說,當用戶在朋友圈發布這樣的文字消息:請給我頭像一頂圣誕帽@微信官方。

微信官方會收到這個艾特,并通過該用戶的 openid(微信用戶的唯一標志 ID)獲取到該用戶的微信頭像文件,將該圖片和文本傳至后臺 AI。

所謂“自然語言”,就是我們人類平常說的話,一般情況下,計算機只能理解編程語言,不能理解人類說的話。

但是,騰訊 AI 可以進行“自然語言處理”,將“請給我頭像一頂圣誕帽”這句話進行分解,并解讀其中的意思。

至此,騰訊 AI 理解了該段文本的內容,通過智能圖像處理技術,識別到人臉及頭部,選擇好合適的大小及方向,將提前準備好的圣誕帽圖片與頭像疊加,這樣就生成了一張帶圣誕帽的新頭像,并將頭像傳至前端。

微信官方收到圖片后,還是通過讀取 openid 找到該用戶,將該圖片應用到該用戶的頭像,并提醒到該用戶,整個過程不到五分鐘。

當然,有些情形會難倒 AI,比如你的頭像圖片中有很多人,AI 就沒法判斷你到底要給哪個人添加圣誕帽,只能給所有人頭上都添加一頂圣誕帽。

[[214601]]

所以,大家還是不要調戲 AI,用一張美美的圖片@微信官方就好!

當然啦,這只是對@微信官方求帽子的調侃,但是還真的有人站出來說,這事兒能成。

閱文集團***架構師徐海峰老師:

他表示使用大數據分析+AI+圖片動態處理能夠實現,架構圖如下:

雖然微信暫時沒有這個功能,但并不代表程序員們實現不了!在人工智能火爆的今天,看程序員如何用 Python 給自己戴上圣誕帽?

用 Python 給頭像加上圣誕帽

大家紛紛@官方微信給自己的頭像加上一頂圣誕帽,當然這種事情用很多 P 圖軟件都可以做到。

但是作為一個學習圖像處理的技術人,還是覺得我們有必要寫一個程序來做這件事情。

用到的工具

  • OpenCV
  • dlib(dlib 的人臉檢測比 OpenCV 更好用,而且 dlib 有 OpenCV 沒有的關鍵點檢測。)

用到的語言為 Python,但是完全可以改成 C++ 版本。

操作的流程

素材準備

首先我們需要準備一個圣誕帽的素材,格式***為 PNG,因為 PNG 我們可以直接用 Alpha 通道作為掩膜使用,用到的圣誕帽如下圖:

我們通過通道分離可以得到圣誕帽圖像的 Alpha 通道,代碼如下:

  1. r,g,b,a = cv2.split(hat_img)  
  2. rgb_hat = cv2.merge((r,g,b)) 
  3. cv2.imwrite("hat_alpha.jpg",a) 

為了能夠與 rgb 通道的頭像圖片進行運算,我們把 rgb 三通道合成一張 rgb 的彩色帽子圖,Alpha 通道的圖像如下圖所示:

人臉檢測與人臉關鍵點檢測

我們用下面這張圖作為我們的測試圖片:

下面我們用 dlib 的正臉檢測器進行人臉檢測,用 dlib 提供的模型提取人臉的五個關鍵點,代碼如下:

  1. # dlib人臉關鍵點檢測器 
  2.     predictor_path = "shape_predictor_5_face_landmarks.dat" 
  3.     predictor = dlib.shape_predictor(predictor_path)   
  4.     # dlib正臉檢測器 
  5.     detector = dlib.get_frontal_face_detector() 
  6.     # 正臉檢測 
  7.     dets = detector(img, 1) 
  8.     # 如果檢測到人臉 
  9.     if len(dets)>0:   
  10.         for d in dets: 
  11.             x,y,w,h = d.left(),d.top(), d.right()-d.left(), d.bottom()-d.top() 
  12.             # x,y,w,h = faceRect   
  13.             cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2,8,0) 
  14.             # 關鍵點檢測,5個關鍵點 
  15.             shape = predictor(img, d) 
  16.             for point in shape.parts(): 
  17.                 cv2.circle(img,(point.x,point.y),3,color=(0,255,0)) 
  18.             cv2.imshow("image",img) 
  19.             cv2.waitKey()   

這部分效果如下圖:

調整帽子大小

我們選取兩個眼角的點,求中心作為放置帽子的 x 方向的參考坐標,y 方向的坐標用人臉框上線的y坐標表示。

然后我們根據人臉檢測得到的人臉的大小調整帽子的大小,使得帽子大小合適。

  1. # 選取左右眼眼角的點 
  2.             point1 = shape.part(0) 
  3.             point2 = shape.part(2) 
  4.             # 求兩點中心 
  5.             eyes_center = ((point1.x+point2.x)//2,(point1.y+point2.y)//2) 
  6.             # cv2.circle(img,eyes_center,3,color=(0,255,0))   
  7.             # cv2.imshow("image",img) 
  8.             # cv2.waitKey() 
  9.             #  根據人臉大小調整帽子大小 
  10.             factor = 1.5 
  11.             resized_hat_h = int(round(rgb_hat.shape[0]*w/rgb_hat.shape[1]*factor)) 
  12.             resized_hat_w = int(round(rgb_hat.shape[1]*w/rgb_hat.shape[1]*factor)) 
  13.             if resized_hat_h > y: 
  14.                 resized_hat_h = y-1 
  15.             # 根據人臉大小調整帽子大小 
  16.             resized_hat = cv2.resize(rgb_hat,(resized_hat_w,resized_hat_h)) 

提取帽子和需要添加帽子的區域

按照之前所述,去 Alpha 通道作為 mask,并求反。這兩個 mask 一個用于把帽子圖中的帽子區域取出來;一個用于把人物圖中需要填帽子的區域空出來。

  1. # 用alpha通道作為mask 
  2.            mask = cv2.resize(a,(resized_hat_w,resized_hat_h)) 
  3.            mask_inv =  cv2.bitwise_not(mask) 

后面你將會看到:

從原圖中取出需要添加帽子的區域,這里我們用的是位運算操作:

  1. # 帽子相對與人臉框上線的偏移量 
  2.            dh = 0 
  3.            dw = 0 
  4.            # 原圖ROI 
  5.            # bg_roi = img[y+dh-resized_hat_h:y+dh, x+dw:x+dw+resized_hat_w] 
  6.            bg_roi = img[y+dh-resized_hat_h:y+dh,(eyes_center[0]-resized_hat_w//3):(eyes_center[0]+resized_hat_w//3*2)] 
  7.            # 原圖ROI中提取放帽子的區域 
  8.            bg_roi = bg_roi.astype(float
  9.            mask_inv = cv2.merge((mask_inv,mask_inv,mask_inv)) 
  10.            alpha = mask_inv.astype(float)/255 
  11.            # 相乘之前保證兩者大小一致(可能會由于四舍五入原因不一致) 
  12.            alpha = cv2.resize(alpha,(bg_roi.shape[1],bg_roi.shape[0])) 
  13.            # print("alpha size: ",alpha.shape) 
  14.            # print("bg_roi size: ",bg_roi.shape) 
  15.            bg = cv2.multiply(alpha, bg_roi) 
  16.            bg = bg.astype('uint8'

這是背景區域(bg),如下圖所示,可以看到,剛好是需要填充帽子的區域缺失了。

然后我們提取帽子區域。

  1. # 提取帽子區域 
  2.           hat = cv2.bitwise_and(resized_hat,resized_hat,mask = mask) 

提取得到的帽子區域如下圖,帽子區域正好與上一個背景區域互補。

添加圣誕帽

***我們把兩個區域相加,再放回到原圖中去,就可以得到我們想要的圣誕帽圖了。

這里需要注意的就是,相加之前 resize 一下保證兩者大小一致,因為可能會由于四舍五入原因不一致。

  1. # 相加之前保證兩者大小一致(可能會由于四舍五入原因不一致) 
  2.             hat = cv2.resize(hat,(bg_roi.shape[1],bg_roi.shape[0])) 
  3.             # 兩個ROI區域相加 
  4.             add_hat = cv2.add(bg,hat) 
  5.             # cv2.imshow("add_hat",add_hat)  
  6.             # 把添加好帽子的區域放回原圖 
  7.             img[y+dh-resized_hat_h:y+dh,(eyes_center[0]-resized_hat_w//3):(eyes_center[0]+resized_hat_w//3*2)] = add_hat 

***我們得到的效果圖如下所示:

責任編輯:武曉燕 來源: CVPy
相關推薦

2018-12-25 09:27:55

Python圣誕帽程序員

2017-12-24 22:52:49

微信小程序圣誕

2022-12-22 08:22:17

Python圖像圖像處理

2020-02-22 08:02:07

春節疫情防控口罩

2017-07-12 10:25:17

Python微信itchat 包

2017-07-17 09:27:09

Python 爬蟲編程

2022-08-17 11:20:23

Python微信

2018-05-16 09:10:10

Python爬蟲微信好友

2021-04-16 11:27:16

Python表情微信

2021-08-09 14:47:44

微信表情移動應用

2021-05-14 07:18:07

監控微信聊天

2015-01-14 10:32:55

微信JS SDK

2021-12-14 15:20:37

Python微信代碼

2021-07-05 09:52:05

大數據大數據“殺熟”數據監管

2013-11-19 10:09:03

微信微信公號微信公眾賬號

2022-04-22 08:22:50

MVCCMySQLC++

2025-06-06 08:46:14

WeClone開源大語言模型

2019-09-25 08:26:20

Python微信頭像

2020-01-16 15:42:54

五福Python交互

2023-04-17 14:08:31

微信數據訓練信息
點贊
收藏

51CTO技術棧公眾號

粉嫩嫩av羞羞动漫久久久| av毛片在线免费看| 9i精品一二三区| 蜜乳av一区| av网站免费线看精品| 欧美激情a在线| 亚洲人人夜夜澡人人爽| 国产精品久久久久av电视剧| 中文字幕成人av| 亚洲一区美女视频在线观看免费| 欧美丰满艳妇bbwbbw| 高潮按摩久久久久久av免费| 亚洲黄色尤物视频| 国产成人看片| aaaaaa毛片| 99久久亚洲精品蜜臀| 日韩久久免费av| 无码aⅴ精品一区二区三区浪潮| 国产专区在线播放| 国产一区二区三区免费观看| 欧美一区二区三区四区在线| 国产精品久久免费观看| 日日夜夜综合| 亚洲综合一区在线| 日韩精品一区二区三区外面 | 999久久久久| 狠狠入ady亚洲精品经典电影| 亚洲国产精品人人爽夜夜爽| 男操女免费网站| 色操视频在线| 国产精品美女久久久久高潮| 国产高清自拍一区| 中文av免费观看| 影音国产精品| 中文字幕亚洲综合久久| 一级黄色片毛片| 亚洲天堂1区| 婷婷亚洲久悠悠色悠在线播放| 亚洲国产欧洲综合997久久 | 黄网站在线免费| 99久久99久久精品免费看蜜桃| 欧美影院在线播放| 国产性xxxx| 91看片在线播放| free欧美| 亚洲人成小说网站色在线| 日本成人精品在线| 一区二区三区免费高清视频 | 女人香蕉久久**毛片精品| 国产性猛交xxxx免费看久久| xxxx黄色片| 伊色综合久久之综合久久| 欧美视频完全免费看| 国产69精品久久久久999小说| 日本中文字幕在线看| 国产精品亚洲午夜一区二区三区| 国产精品扒开腿做爽爽爽男男| 国产特黄大片aaaa毛片| 亚洲经典一区| 色午夜这里只有精品| 魔女鞋交玉足榨精调教| 亚洲一区二区三区中文字幕在线观看| 欧美日韩国产经典色站一区二区三区| 久章草在线视频| 亚洲精品一区| 欧美性xxxx极品hd欧美风情| 国产特级淫片高清视频| 成人超碰在线| 亚洲一区二三区| 蜜臀av.com| a免费在线观看| 亚洲欧美日韩在线不卡| 四虎免费在线观看视频| 欧美成人三区| 亚洲人成人一区二区在线观看| 亚洲免费久久| 三级外国片在线观看视频| 久久午夜电影网| 久久亚洲国产精品日日av夜夜| 黄色a在线观看| 成a人片亚洲日本久久| 国产日韩欧美另类| 国产欧美久久久| 国产麻豆视频一区| 99视频国产精品免费观看| 精品久久国产视频| 岛国精品在线播放| 国产偷久久久精品专区| 麻豆md0077饥渴少妇| 最近中文字幕在线免费观看| 国产亚洲永久域名| 欧美最猛性xxxxx(亚洲精品)| 欧美另类一区二区| 久久久久久久波多野高潮日日| 国产福利视频一区| 一级视频在线播放| 国产aⅴ综合色| 欧美激情导航| 国产在线视频你懂得| 欧美国产一区视频在线观看| 亚洲一区综合| 岛国毛片av在线| 色女孩综合影院| 自拍偷拍21p| 亚洲综合网站| 国产视频久久网| 日本高清黄色片| 亚洲色图二区| 欧美亚洲日本黄色| 一级黄色大片免费观看| 成人黄色大片在线观看 | 精品黑人一区二区三区久久| 色婷婷综合在线观看| 日韩成人一级| y97精品国产97久久久久久| 青青草手机视频在线观看| 国产欧美在线| 91深夜福利视频| 日本人妖在线| 亚洲欧美日本在线| 日本a在线免费观看| 亚洲成av在线| 亚洲成人三级在线| 天天干天天操天天拍| 在线国产日韩| 91热精品视频| 五月婷婷在线观看| 91久久久免费一区二区| 欧美xxxx×黑人性爽| 亚洲精品成人无限看| 国产精品电影网站| 日本午夜在线| 欧美日韩综合视频| 先锋资源av在线| 欧美日韩日本国产亚洲在线| 亚洲国产毛片aaaaa无费看| 日本精品久久久久久久| 男人天堂网在线视频| 亚洲三级免费观看| 最新国产黄色网址| 欧美韩日高清| 成人在线免费观看视视频| 成年人视频网站在线| 在线一区二区视频| 黄免费在线观看| 久久亚洲精品伦理| 欧美在线播放一区| 永久免费毛片在线播放| 亚洲国产一区二区三区在线观看| 久久久99精品| 粉嫩蜜臀av国产精品网站| 日韩欧美视频免费在线观看| 日韩三级av高清片| 欧美另类精品xxxx孕妇| 超碰在线观看99| 亚洲制服丝袜av| 日韩一级片在线观看| 污免费在线观看| 国产精品99视频| 亚洲综合av影视| 伊人手机在线| 亚洲黄色www| 国产精品久久久久久99| www国产精品av| 国产精品无码av无码| 成人羞羞网站入口| 91久久精品美女高潮| 黄色片网站在线| 欧美不卡一区二区三区| 国产亚洲第一页| 91亚洲精品一区二区乱码| 欧美日韩中文在线视频| 精品国产日韩欧美| 国产精品高潮呻吟久久av无限 | 午夜精品在线| 18一19gay欧美视频网站| 韩国中文免费在线视频| 欧美老肥妇做.爰bbww| 久久久久久久国产精品毛片| 成人免费看黄yyy456| 成年人在线看片| 天天做天天爱天天综合网2021| 成人av片网址| 日韩成人av电影| 中文一区二区视频| 午夜精品一区二区三| 欧美日韩免费看| 亚洲欧美另类日本| 成人一区二区三区| 丰满少妇在线观看| 国产精品久久久久久久免费观看| 国产精品国产一区二区| 日韩不卡免费高清视频| 九九热精品在线| 国产美女性感在线观看懂色av| 欧美高清你懂得| 国产成人免费看| ㊣最新国产の精品bt伙计久久| 日韩综合第一页| 日本成人中文字幕在线视频| 日韩欧美视频免费在线观看| 精品国产欧美日韩| 国产精品污www一区二区三区| 国产综合色区在线观看| 欧美大片第1页| 在线观看免费网站黄| 亚洲级视频在线观看免费1级| 中文字幕日韩三级| 欧美色道久久88综合亚洲精品| 免费在线观看黄色小视频| 99re视频精品| 日本中文字幕精品| 日韩制服丝袜av| 成年人网站免费视频| 亚洲精彩视频| 四虎一区二区| 久久成人福利| 91网站免费观看| 福利视频亚洲| 欧美中文字幕在线播放| 天天干在线视频论坛| 深夜福利91大全| 精品视频二区| 日韩大片在线观看视频| 狠狠躁夜夜躁av无码中文幕| 91精品国产欧美一区二区18| 中文字幕在线一| 在线精品国精品国产尤物884a| 日韩欧美一区二区一幕| 亚洲一二三区在线观看| 暗呦丨小u女国产精品| 中文字幕av一区二区三区高| 可以直接看的无码av| 成人永久免费视频| 国产探花一区二区三区| 国产在线看一区| 中文字幕剧情在线观看| 麻豆精品一区二区av白丝在线| 欧美亚洲日本在线观看| 噜噜爱69成人精品| 日韩免费视频播放| 亚洲国产日本| 可以看毛片的网址| 激情欧美亚洲| 亚洲乱码日产精品bd在线观看| 91精品电影| 好色先生视频污| 91高清一区| 国产一级大片免费看| 中文字幕一区二区三区乱码图片| 香蕉精品视频在线| 88国产精品视频一区二区三区| 自拍偷拍一区二区三区| 欧美wwwww| 99精品视频网站| 欧美一区91| 久久福利一区二区| 亚洲无吗在线| www.日本在线播放| 久久国产精品久久w女人spa| 福利在线一区二区三区| 老司机免费视频一区二区| 一区二区三区欧美精品| 国产精品中文字幕欧美| 亚洲一区和二区| 2020国产精品自拍| 国产精久久一区二区三区| 国产精品久久久久婷婷二区次| 国产精品美女高潮无套| 国产精品乱人伦中文| 亚洲 欧美 变态 另类 综合| 亚洲最新在线观看| 黄色在线观看国产| 在线观看国产91| 国产99视频在线| 亚洲福利在线观看| 国产三级在线看| 久久久精品视频在线观看| 俄罗斯一级**毛片在线播放| 青青草99啪国产免费| 精品乱码一区二区三区四区| 3d动漫啪啪精品一区二区免费| 国产精品毛片久久久| 水蜜桃亚洲一二三四在线| 一区二区三区在线| 波多野结衣家庭教师在线播放| 日日欢夜夜爽一区| 香蕉视频1024| 久久这里只有精品6| 亚洲精品一区二区三区在线播放| 亚洲二区在线观看| 波多野结衣绝顶大高潮| 日韩一级免费观看| 久久米奇亚洲| 欧美国产日韩精品| 日韩一区二区三区免费视频| 亚洲aⅴ男人的天堂在线观看| 色婷婷av一区二区三区丝袜美腿| 一本一本a久久| 99香蕉国产精品偷在线观看 | 久久久国产视频91| 9i看片成人免费高清| 99视频日韩| 羞羞答答成人影院www| 成人一级片网站| 国产成人免费视频一区| 91精品国自产在线| 亚洲va欧美va国产va天堂影院| 91成人国产综合久久精品| 亚洲成年人在线| 国产一二三区在线观看| 国产成人精品免费久久久久| www国产精品| 精品91一区二区三区| 久久久久久自在自线| 亚洲精品激情视频| 亚洲欧美日韩在线| 在线观看亚洲一区二区| 日韩国产精品一区| heyzo高清在线| 91免费电影网站| 日产精品一区二区| 成年人免费大片| 中文在线观看免费| 久久免费视频网| 久久免费资源| 欧美一区视久久| 亚洲综合国产| 欧美肉大捧一进一出免费视频| 亚洲视频在线一区二区| 国产精品无码粉嫩小泬| 日韩av综合中文字幕| 麻豆av在线免费观看| 亚洲专区国产精品| 91精品国产乱码久久久久久| 香蕉视频禁止18| 国产日产精品1区| 亚洲免费黄色网址| 日韩禁在线播放| 17videosex性欧美| 国产超碰91| 在线播放一区| 91丨porny丨对白| 五月天久久比比资源色| 十八禁一区二区三区| 欧美精品videossex88| 一区二区在线免费播放| 8x8ⅹ国产精品一区二区二区| 国产一区二区不卡老阿姨| 日本黄色片免费观看| 欧美精品一二三| 免费的黄网站在线观看| 91久久精品一区| 午夜性色一区二区三区免费视频| 男生和女生一起差差差视频| 一区二区三区在线视频免费| 亚洲av无码片一区二区三区| 欧美激情视频一区二区| 国产成人tv| 国产免费黄色av| 国产午夜精品久久久久久免费视 | 午夜在线精品偷拍| 性少妇bbw张开| 欧美三级乱人伦电影| 日本三级在线播放完整版| 91精品视频免费观看| 欧美日韩中文| 欧美成人三级伦在线观看| 色悠久久久久综合欧美99| 国产免费a∨片在线观看不卡| 91精品久久久久久久久久| 久久精品亚洲人成影院| 佐佐木明希电影| 欧美视频不卡中文| 一级毛片视频在线| 99在线视频首页| 亚洲欧美日韩精品一区二区| 黄色av免费播放| 日韩欧美在线影院| 原纱央莉成人av片| 国产又大又长又粗又黄| 懂色中文一区二区在线播放| 免费观看成人毛片| 精品国产一区av| 韩国女主播一区二区三区| www.日本xxxx| 一区二区日韩电影| 日本人妖在线| 亚洲在线视频福利| 久久久久99| 唐朝av高清盛宴| 亚洲色图五月天| 久久视频社区| 国产裸体免费无遮挡| 一区二区三区成人在线视频| 嫩草研究院在线观看| 91亚色免费| 六月丁香婷婷色狠狠久久| 日本熟妇乱子伦xxxx| 色诱女教师一区二区三区|