国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

純前端實現(xiàn)人臉識別-提取-合成

開發(fā) 前端
最近火爆朋友圈的軍裝照H5大家一定還記憶猶新,整個流程涉及的人臉識別和圖像合成兩項核心技術在前端都有對應的解決方案,因此理論上前端也可以完成人臉識別-提取-合成整個流程,實現(xiàn)純前端的軍裝照H5效果。

[[204016]]

最近火爆朋友圈的軍裝照H5大家一定還記憶猶新,其原理是先提取出照片中的面部,然后與模板進行合成,官方的合成處理據(jù)說由天天P圖提供技術支持,后端合成后返回給前端展示,形式很新穎效果也非常好,整個流程涉及的人臉識別和圖像合成兩項核心技術在前端都有對應的解決方案,因此理論上前端也可以完成人臉識別-提取-合成整個流程,實現(xiàn)純前端的軍裝照H5效果。

前端人臉識別

首先需要的是人臉識別,這個一聽就覺得高大上的東西原理并不深奧,無非是用人的面部特征規(guī)則對圖像進行匹配和識別,這項工作前端雖然可以實現(xiàn),但前端實現(xiàn)基本就只能依據(jù)內置規(guī)則庫進行匹配,這個庫的質量就決定了識別質量,而通常更成熟的方案是引入機器學習,讓程序不斷自我修正和提高,進一步提高識別率,機器學習的前端庫倒是也有,但把這兩者結合起來的還沒發(fā)現(xiàn),因此對前端人臉識別的準確率不要報太高期望。

現(xiàn)有的前端人臉識別庫不算多,這里我們選擇的是效果相對好點的trackingjs,這個類庫功能非常強大,庫如其名,它可以完成各種追蹤類的圖像處理任務,人臉識別只是其眾多功能之一,而且通過選配插件,還可以精確識別眼睛、鼻子等五官的位置,貌似稍微折騰一下也可以實現(xiàn)美圖秀秀的效果。

這里我們只用trackingjs實現(xiàn)面部識別,初始化一個面部識別任務的代碼如下:

  1. //實例化 
  2. var tracker = new tracking.ObjectTracker(['face']); 
  3. //識別回調 
  4. tracker.on('track'function(event) { 
  5.     if (!event.data.length) { 
  6.         return console.log('畫面中沒有人臉'); 
  7.     } 
  8.     event.data.forEach(function(rect, i) { 
  9.         console.log(rect);//單個面部數(shù)據(jù) 
  10.     }) 
  11. }) 
  12. //配置參數(shù) 
  13. ... 

 

這樣一個面部識別任務就初始化完成了,調用方式如下:

  1. tracking.track('#img', tracker); 
  2. //其中'#img'參數(shù)是目標圖像的選擇器 

 

在識別回調中event.data就是數(shù)組格式的面部數(shù)據(jù),如果長度為0則表示圖像中沒有人臉或者識別失敗,如果識別成功,單個面部數(shù)據(jù)的格式如下:

  1.     x: number,          //面部位于原圖x軸方向位置 
  2.     y: nuber,           //面部位于原圖y軸方向位置 
  3.     width:number,       //面部區(qū)域寬度 
  4.     height:nubmer       //面部區(qū)域高度 

 

有了這個面部數(shù)據(jù)就可以很容易的將該區(qū)域從原圖中提取出來,前端當然就用canvas啦,示例如下:

  1. var img = document.getElementById("img"); 
  2. var faceCtx = document.getElementById("mycanvas").getContext('2d'); 
  3.   
  4. var theFace = ...; //假設我們識別到了theFace 
  5.   
  6. //使用drawImage()方法將面部繪制出來 
  7. faceCtx.drawImage(img, theFace.x, theFace.y, theFace.width, theFace.height, 0, 0, theFace.width, theFace.height); 

 

到這里我們已經(jīng)實現(xiàn)了面部識別 + 提取,而且代碼量也沒多少,其實這里面有個小坑要在實踐中才會發(fā)現(xiàn),那就是trackingjs的配置,文檔中能找到4個跟識別有關的配置,分別是:

  1. setClassifiers(classifiers) 
  2.  
  3. setEdgesDensity(edgesDensity) 
  4.  
  5. setScaleFactor(scaleFactor) 
  6.  
  7. setStepSize(stepSize) 

 

看不懂吧,我也看不懂,而且文檔中對他們沒有任何有用的說明,在測試中我只使用了后兩個配置,翻譯過來分別是”比例因子”和”步長”,經(jīng)過枯燥的人肉測試發(fā)現(xiàn),這兩個參數(shù)的有效取值范圍分別在1 - 2和1.1 - 2,其中setStepSize不能為1,否則會瀏覽器會卡死,所以從1.1開始取值,取值超過2也可以,但識別成功的概率就很低了。通過調整這兩個參數(shù)絕大多數(shù)圖像都可以成功識別,唯獨對面部大特寫很難識別,這可能需要配合另外兩個參數(shù)吧,我實在沒耐心繼續(xù)人肉測試下去了,感興趣的自己回去玩吧。

前端圖像處理

經(jīng)過上一步的識別+提取我們已經(jīng)得到了面部圖像,要實現(xiàn)合成軍裝照效果我們還需要對面部圖像進行處理,使色調與模板一致,將來才能毫無違和感的融合在一起,具體到軍裝照這個例子我們需要將面部重新著色,并達到”做舊”的老照片效果,如果用PS想必大家都會,但在前端怎么實現(xiàn)呢?

這里我們需要借助騰訊前端團隊出品的AlloyImage,這是一個堪稱前端PS的前端圖像處理類庫,比如要實現(xiàn)上述效果,我們只需要這樣:

  1. var faceImg = document.getElementById("theFace"); 
  2. faceImg.loadOnce(function() { 
  3.     AlloyImage(this).act("灰度處理").add
  4.         AlloyImage(this.width, this.height, "#808080"
  5.         .act("高斯模糊", 4) 
  6.         .act("色相/飽和度調節(jié)", 22, 45, 0, true), 
  7.         "疊加" 
  8.     ).replace(this); 

 

然后你就得到了一個做舊的人臉,還是非常簡單的,AlloyImage的使用基本可以說是傻瓜化,感興趣的就自己花個五分鐘去看下官方文檔吧,這里不再贅述。

然后就要說一下我們這個圖像處理和人家天天P圖的差距了,雖然我們得到了理想的色調,但要想把隨便一張人臉與特定模板做合成,有兩件事必不可少。首先是面部角度矯正,如果模板是正的而你的照片是歪的,直接暴力拼接肯定很違和,所以需要先識別出面部角度,并糾正到指定角度;然后是面部中心定位,因為人臉識別的結果提取出來后不一定是以面部中心為中心的,所以在合成之前要識別出面部中心線,并以此為依據(jù)與模板進行定位。然而這些我們都沒有,所以我們只能對輸入的圖像的要求更高,如果輸入了嘴歪眼斜的圖片,結果就只能尷尬了。

***的圖片合成部分就更簡陋了,先將處理好的面部畫到畫布指定位置,然后將摳好圖的臉部透明png模板鋪在上面,完成。實際過程中需要處理一些小問題,比如要根據(jù)模板的面部尺寸將面部圖像縮放到合適的尺寸;摳模板時要將邊緣模糊處理,而且盡量保留模板本來的面部輪廓,只將五官摳掉。即便這樣,合成結果還是很容易穿幫,不過純前端處理也沒有更好的辦法了。

效果展示

好了,說的再多不如看個例子,示例提供三種圖片輸入源,分別是本地圖片、遠程圖片、內置示例。其中內置的圖片大部分是提前在PS中糾正過角度的,而且內置圖片會自動匹配到我事先調校好的參數(shù),不出意外可以直接識別出人臉;如果選擇本地圖片作為圖片源,***選擇頭部姿態(tài)垂直的正面照,同時參考內置圖片的 參數(shù)設置調節(jié)參數(shù),一次識別不成功很正常,需要多調幾次;也可以使用遠程圖片識別,但因為canvas受到跨域策略影響,遠程圖片只能識別不能提取和合成。

示例:純前端軍裝照合成(http://refined-x.com/projects/codes/tracking.html)

后記

最初是抱著好奇的心態(tài)開始搗鼓這個項目的,雖然最終的合成效果遠遠達不到生產要求,但整個示例擼下來后對人臉識別和圖片處理技術都有了基本的認識,對canvas操作中一些細節(jié)問題的解決也略微補足了一下這方面的知識空白,算略有收獲吧。 

責任編輯:龐桂玉 來源: 前端大全
相關推薦

2021-05-10 11:08:00

人工智能人臉識別

2021-03-09 09:20:09

人臉識別人工智能智能手機

2023-07-03 07:40:13

VueGolangweb

2017-09-21 15:31:49

2018-01-31 13:09:35

Pythonface_recogn人臉識別

2022-10-20 09:33:35

2024-05-30 08:09:33

2023-11-14 08:38:43

Golang人臉識別

2023-12-15 10:21:20

Java聲音識別

2021-12-07 23:00:55

人臉識別安全技術

2020-11-18 09:43:29

人臉識別AI人工智能

2021-02-03 14:43:40

人工智能人臉識別

2015-02-10 10:08:59

JavaScript

2019-07-24 15:25:29

框架AI開發(fā)

2021-07-01 09:32:14

人臉識別AI人工智能

2024-09-30 06:04:02

人臉識別Python機器學習

2020-11-06 18:55:56

人臉識別刷臉安全

2022-10-31 08:47:21

人臉識別按鍵鍵盤

2021-08-26 10:36:02

人臉識別人工智能技術

2024-06-12 12:57:12

點贊
收藏

51CTO技術棧公眾號

一区二区三区.www| 福利在线导航136| 91精品久久香蕉国产线看观看| 亚洲韩国青草视频| 精品国产一区二区在线观看| 国产伦一区二区三区色一情| 日韩动漫在线观看| 欧洲精品二区| 天堂中文在线视频| 狠狠做六月爱婷婷综合aⅴ| 亚洲妇女屁股眼交7| 国产欧美一区二区三区视频 | 黄色视屏网站在线免费观看| 99热国内精品| 欧美日韩aaaaaa| 国模精品一区二区三区| 91综合在线| 欧美一区三区二区| www.好吊操| 亚洲欧洲免费| 欧美剧情电影在线观看完整版免费励志电影| 亚洲一区二区三区精品在线观看| 国产人妖一区| 91麻豆文化传媒在线观看| 国内精品400部情侣激情| 97国产在线| 99视频+国产日韩欧美| 欧美精品一区二区三区在线| 国产伦精品一区二区三区四区视频_| 少妇精品视频一区二区免费看| 久久久噜噜噜久噜久久综合| 日本成人黄色片| 美女黄视频在线观看| 国产精品亚洲视频| 国产成人综合视频| 亚州国产精品久久久| 美州a亚洲一视本频v色道| 韩国三级中文字幕hd久久精品| 色一区av在线| 在线播放91| 麻豆91在线播放免费| 色婷婷综合久久久久中文字幕1| 妞干网免费在线视频| 欧美国产一区视频在线观看| 亚洲一区二区免费| 国产精成人品2018| 久久在线免费视频| 日本电影全部在线观看网站视频| 日韩三级在线观看| 九九99九九精彩| 91国产精品成人| 久久精品99久久久香蕉| 一区二区三区四区不卡| 国产91在线|亚洲| 国产综合久久久久| 性高湖久久久久久久久| 欧美激情videos| 日本在线看片免费人成视1000| 粉嫩高潮美女一区二区三区| 欧美日韩黄色一级片| 国产欧美一级| 国产91九色视频| 精品123区| 欧美一级大片视频| 91av亚洲| 成人午夜私人影院| 高清国产在线一区| 国产精品香蕉| 亚洲人成电影在线| 久青草国产在线| 日韩精品在线第一页| 三级无遮挡在线观看| 久久众筹精品私拍模特| 欧美一区二区综合| 免费欧美激情| xx视频.9999.com| 色噜噜狠狠狠综合欧洲色8| 一区二区三区免费网站| 91亚洲天堂| 色哟哟精品一区| 自拍偷拍第1页| 亚洲国产精品久久久久久| 美女视频免费精品| 欧美成人精品在线播放| 韩国成人在线| www.久久草| 91成人精品视频| 日韩美女中文字幕| 久久国产精品99精品国产| 国产一区二区高清视频| 2014亚洲片线观看视频免费| youjizz在线播放| 色综合天天综合网天天狠天天| 欧美日韩精品免费观看视完整| 欧美日韩国产小视频在线观看| 久久伊人久久| 久久精品福利视频| 亚洲日本国产| 精品欧美国产| 国产韩日影视精品| 97成人在线观看视频| 91在线国内视频| 国产妇女馒头高清泬20p多| 久久av中文字幕片| 欧美捆绑视频| 欧美在线视频观看| 99精品桃花视频在线观看| 免费看电影在线| 国产麻豆乱码精品一区二区三区| 亚洲男帅同性gay1069| jizz18女人| 亚洲免费看黄网站| 全球中文成人在线| 久久久久www| 国产精品嫩草99av在线| 国产bdsm| 亚洲色图欧洲色图婷婷| 最新四虎影在线在永久观看www| 亚洲一级电影视频| 日本免费专区| 欧美日韩国产在线看| 精品乱码一区二区三四区视频| 国外成人免费在线播放| 97久久精品人人澡人人爽| 九色porny丨首页入口在线| 欧美精品一区二区三区在线四季 | 精品亚洲精品福利线在观看| 麻豆成人精品| 精品成在人线av无码免费看| 欧美一级久久久久久久大片| 中文字幕日韩欧美精品高清在线| 久久久99爱| 久久成人免费电影| 18加网站在线| 日韩在线第一区| 亚洲成avwww人| 免费一区二区三区在线视频| 久久久亚洲国产精品| 色婷婷综合久久久久中文字幕1| 国产精品综合网| 成人黄色免费网站| 国产成人av网址| 亚洲免费影视| 黄色免费在线观看网站| 亚洲视频欧洲视频| 成人动漫中文字幕| 天堂男人av| 欧美一级午夜免费电影| 久久精品亚洲| 国产资源在线观看入口av| 欧美极品第一页| 亚洲黄色高清| 久久五月精品中文字幕| 樱空桃在线播放| 亚洲免费观看高清完整| 精品国产一区一区二区三亚瑟| 欧美重口乱码一区二区| 亚洲第一网中文字幕| 丁香一区二区三区| 欧美亚洲色图校园春色| 日产精品一线二线三线芒果| 亚洲国产精品久久精品怡红院| 国产成人免费在线观看不卡| 天堂va在线高清一区| 免费成人av网站| 久久综合九色综合欧美亚洲| 美腿丝袜亚洲图片| 麻豆影视在线| 亚洲一区二区不卡视频| 九九视频这里只有精品| 久久综合导航| 毛片一级免费一级| 国产精品免费一区二区三区观看| 欧美va天堂va视频va在线| 蜜臀久久99精品久久一区二区| 中文字幕欧美一区二区| 日本午夜精品一区二区| 久久伊人精品一区二区三区| 亚洲一区二区三区精品在线| 日韩精品国产欧美| 日韩毛片在线一区二区毛片| 清纯唯美一区二区三区| 久久精品国产精品亚洲| 午夜精品久久久久久久| 日韩在线观看中文字幕| 在线资源免费观看| 波多野结衣三级在线| 欧美三级欧美一级| 图片婷婷一区| www.爱色av.com| 91网在线免费观看| 国产欧美日韩亚州综合| 欧美在线不卡| 色偷偷免费视频| 清纯唯美一区二区三区| 欧美激情2020午夜免费观看| 欧美日本一道本| 最新热久久免费视频| 日韩精品一区国产| 男人的天堂在线视频免费观看 |