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

玩大了! 阿里工程師的年會竟然這樣搞?

企業動態
觀眾在經過人臉識別后,系統會根據人臉表情特征,識別出觀眾的花名(名字)與微笑指數,同時吐出一句“評語”。當笑容越燦爛,評價就會越高。同時通過技術手段,這些信息還會上屏展示與互動。

不用邀請函、不用簽字板,“笑容”才是唯一的入場憑證。年會還有這樣的操作?

[[233768]]

最近在阿里巴巴內部就掀起這樣一陣“笑容簽到”風潮。在年會開場,大家是這樣排隊刷臉的:

[[233769]]

而刷臉成功后,入場人員的花名、頭像以及“笑容指數”會實時同步顯示在會場大屏幕上,并匯聚成一個“笑臉星球”。

[[233770]]

這是阿里巴巴信息平臺一群90后工程師,用兩周時間開發的一套年會開場秀系統:

觀眾在經過人臉識別后,系統會根據人臉表情特征,識別出觀眾的花名(名字)與微笑指數,同時吐出一句“評語”。當笑容越燦爛,評價就會越高。同時通過技術手段,這些信息還會上屏展示與互動。

[[233771]]

工程師們在現場調試

不僅是部門年會,在內部一些大型比賽、重要頒獎典禮等活動開場,也逐步用起了這一套科技感滿滿的開場秀。同時根據活動不同主題,還可以進行個性化定制呈現。

[[233772]]

阿里內部一些重要大會陸續使用這套系統開場

究竟這套年會開場秀系統如何實現的?今天,阿里妹邀請到該項目團隊中的開發小哥哥探源,來聊聊背后的實現原理與技術方案。

背景

傳統大會通常采用的暖場方式是,在大屏幕上循環播放宣傳視頻,等觀眾差不多到齊時,一個321的倒計時宣告開始,既老套又缺乏互動。更是白白錯過一次向觀眾展示公司技術與公司人才的機會。

那有沒有一種可以將科技感與互動感結合的開場秀呢?恰逢新一財年信息平臺部門大會在即,我們想以此為切入點,給大家玩一些不一樣的開場。

解決方案

任何一個“靠譜”的前端工程師,肯定會下意識想用H5動畫來替代視頻。我們的方案是:使用酷炫的H5動畫,并且結合智慧園區團隊的人臉識別技術實現人員掃臉簽到+大屏展示的技術方案。既能運用及展示內部的技術,又能起到不錯的暖場效果。

根據方案構想,很快就形成了初版需求demo。梳理一下,可以拆分出下面幾點功能:

  • 初始狀態下,是默認做自轉運動的星球,周圍有圍繞的衛星
  • 當人員進場時,人臉識別成功后,在屏幕上展示
  • 展示完之后,照片要飛回到自轉的球面上,跟著球一起做自轉運動
  • 會議開始前,人工控制照片做粒子效果,over

技術方案

當功能拆解后,便是研究怎么實現方案了。出于對效果考慮,準備選擇3維動畫來創作,并最終采用了Three.js作為3D引擎庫,結合tween.js作為配套的動畫庫,以及基于webpack的腳手架nowa鏈接作為技術支持。

whyThree.js?

目前市面上比較成熟的3D庫有Three.js和Babylon.js,但對比兩者后可發現:

  • Babylon.js常用于制作3d游戲引擎,傾向于游戲開發;而Three.js是純渲染引擎。
  • Babylon.js誕生不久(13年),社區活躍;而Three.js相對久一些(比webgl還久),且比較流行,代碼易讀,團隊成員有相關的開發經驗。
  • Babylon.js已經支持了webgl2的多數特性,并且能夠平滑降級;而Three.js還是處于提需求階段,并沒有支持。

所以最后選擇的是Three.js,想嘗試下webgl2.0的小伙伴可以試下Babylon.js。

技術實現

介紹完技術引擎后,接下來將結合整體的功能流程,為大家解析下如何通過技術實現。

step1:讓球體運動起來

[[233774]]

這是動畫展示效果的第一步。通過Three.js的基本方法,很容易實現在場景中添加對象的功能。如上圖所示,在場景中添加了一個球體,并讓它做順時針的轉動,而讓球表面的圖做逆時針的轉動,并向場景中添加了不斷向z軸負方向運動的星星,和做一定角度的公轉運動的衛星。

三維坐標系中的點坐標x,y,z可以轉換成了(上圖)中的極坐標r,θ,φ(半徑r和兩個角度θ 和φ),同樣可以用來表示點的位置(反過來也能推導)。

球面上的方片也是由對象構成。人員簽到成功之后,方片上會變成照片,這里需要事先計算出方片相對于球面的位置以便生成方片。根據前期配置的到場人數n,從而讓球面生成均勻分布的n個點,得到每個點的極坐標系位置,再轉換成點坐標位置,這些位置就是方片位置。

step2:加入“微笑”展示效果

[[233776]]

前端通過輪詢定時請求后端接口,來拉取人臉識別數據,展示之后告訴后端已經展示過了。由于現場人臉識別后的“微笑”需要實時展示在主屏上,每場年會活動到場人數不等(約500-1500人),在這一狀況下,如何保證在規定時間內完成人員入場與展示。我們的方案是:展示時間可以動態調節,人流量大時識別成功之后大屏就展示快一些,反之則展示慢一些。

因此,需要在前端維護了一個隊列,用于存儲識別成功但還未展示人員,輪詢拉取的數據會進入到隊列中,展示過的數據則會從隊列中移除,一個展示動畫的時長會根據隊列的長度動態調節,取值范圍2.5-5s不等。

step3:讓“微笑”隨球體一起運動

“微笑”展示后,還有個照片飛回球面并跟著球體一起運動的效果。因為牽涉到坐標系的相對運動(球面的位置是相對于父元素來實現的),這一效果較難實現。

通過step1,可以計算出方片的位置position(position是個三維向量:xyz),因為位置是相對球體的,所以從球體看來方片的位置永遠是xyz,而在全局看來,方片的位置是永遠在變化的,而這個位置坐標怎么獲取是一個問題。

當時,小伙伴們想到了兩種方案:

第一種:讓照片相對球體運動,這樣就不用去考慮方片位置了,因為這個位置是不變的。但這樣的弊端是,因為球體在運動,照片也需要一直運動。如果要達到視覺上看“照片不動”的效果,就需要照片永遠對著攝像頭。

第二種:讓照片相對全局運動,在每一幀的時候去獲取方片相對于全局的坐標。然后在這一幀內慢慢趨近于這個坐標,最后實現位置的重疊。

經過討論,決定采用第二種方案。因為核心是要解決坐標系相對轉換的問題,但第一種方案并沒有解決,只是把問題方式轉移了。還好,Three.js提供了現成的方法:getWorldPosition用于返回表示對象在世界空間中的位置向量。

這樣,就可以得到方片的全局坐標。

現在知道了照片的位置和最后需要到達的位置。但如果直接從初始位置向最后位置運動,還會有個問題:照片可能直接穿過球體而達到最后的位置(不符合運動規律),所以這里需要盡可能做曲線運動,而不是讓照片穿過球體。

我們還是用到了上面的坐標系轉極坐標系的公式,通過初始的極坐標位置(sourceR,sourcePhi,sourceTheta)和目標位置的(targetR,targetPhi,targetTheta)。根據線性差值公式計算出在每一幀中的中間位置(currentR,currentPhi,currentTheta),再轉換成點坐標系下的位置,即為每一幀時照片的位置,從軌跡上來看是一個曲線運動,且不會穿過球體。

step4:粒子動畫開場

[[233777]]

終于進入最后的環節了。在活動正式開場前,“笑臉星球“會散開成粒子狀態,通過粒子運動拼成本場活動的主題文案。這里運用到粒子動畫效果,需要事先知道每個粒子最后運動的位置。我們參考了canvas粒子動畫的效果(具體可以自行查一下),簡化如下:

  1. newImage加載圖片
  2. 用context.drawImage把圖片畫到一張canvas畫布上
  3. 通過context.getImageData就可以獲取畫布上指定區域的像素數據
  4. 比較每個點的像素值就可以記錄下需要像素點的位置信息,轉換成3D的坐標
  5. (這邊會涉及坐標系的轉換,需要特別注意一下,平面canvas的坐標系和THREE.js的坐標系是不一樣的)。
  6. 創造粒子,讓粒子做飛散狀運動起來,最后到達指定位置即可
  7. 事先準備兩張圖片,一張白底透明,一張彩色透明,粒子運動完成之后白底漸漸顯示
  8. 然后白底漸隱,彩色的漸漸顯示

性能優化

客觀因素如:大屏分辨率、設備顯卡等不考慮,但需要更多從可控條件來解決部分性能問題。一般衡量動畫是否卡頓用fps衡量,如果在30-60幀之內肉眼基本無感知,再往下,會感受到很明顯的卡頓。第一版開發完成之后,在mac上的幀率只有20+到40。肯定達不到標準,所以從以下幾個方面開始優化。

1.盡量重用Material和Geometry,或者緩存模型;

BufferGeometry 會緩存網格模型,性能要高效點。網格模型生成原理。

  • Geometry 生成的模型是這樣的 (代碼)-> (CUP 進行數據處理,轉化成虛擬3D數據) -> (GPU 進行數據組裝,轉化成像素點,準備渲染) -> 顯示器第二次操作時重復走這些流程。
  • BufferGeometry 生成模型流程 (代碼) -> (CUP 進行數據處理,轉化成虛擬3D數據) -> (GPU 進行數據組裝,轉化成像素點,準備渲染) -> (丟入緩存區) -> 顯示器第二次修改時,通過API直接修改緩存區數據,流程就變成了這樣(代碼) -> (CUP 進行數據處理,轉化成虛擬3D數據) -> (修改緩存區數據) -> 顯示器。

2.減少渲染的對象,或者渲染的時候讓對象不可見:渲染過不再需要的對象可以設置visible = false,或者直接從scene中remove,兩者的區別可以參考Three.js scene.remove vs. visible=false;

3.謹慎地在render()中操作:一般FPS為60也就意味著一秒會執行60次如果render()中有有實例化或是賦值操作很容易會崩潰;

4.選擇合適的對象:粒子我就是用Sprite代替Mesh實現的;

5.考慮光源的影響:會影響場景中對象的渲染;

6.渲染的對象時side屬性盡量用FrontSide,DoubleSide會導致更多的渲染,也是減少渲染的方法;

7.可以用著色器來渲染,用更底層的glsl來實現。

優化完之后的狀態:在mac上基本上都是60fps。保證了最終效果的實現:

[[233778]]

未來規劃

萬萬沒想到,一套專為部門年會做的方案,正逐步演變成一個成熟產品。并且通過可視化、定制化的配置,結合人臉識別技術已經支持集團多個部門的年會與活動。

隨著使用場景的不斷豐富,未來我們還將針對活動主題,在活動過程中增加互動。比如根據入場時的人臉識別,支持抽獎等現場互動,實現年會大屏、觀眾手機、人臉閘機等多屏互動。此外,在面向參會觀眾,還將生成現場圖片等素材,方便收藏。

信息平臺事業部是阿里巴巴經濟體服務的基礎平臺,為阿里巴巴提供生態化、國際化、數據化、移動化以及安全穩定的企業信息服務。我們希望能有更多同學加入,通過技術創新,挑戰自己的不可能,同時為阿里巴巴更多可能性的發生貢獻力量。

【本文為51CTO專欄作者“阿里巴巴官方技術”原創稿件,轉載請聯系原作者】

戳這里,看該作者更多好文

責任編輯:武曉燕 來源: 51CTO專欄
相關推薦

2021-07-28 06:10:47

拖拽設計器 transmat

2019-01-29 10:00:59

GitHub開源搜索

2024-07-16 13:09:09

2019-01-21 08:20:12

工程師思維職責

2015-08-31 15:08:08

智慧教育展

2020-03-23 08:02:37

阿里工程師能力

2013-06-26 10:34:56

工程師?谷歌

2020-02-12 14:13:27

工程師彈幕新玩法

2018-12-28 09:25:50

機器學習深度學習工程師

2019-11-06 10:04:32

Java系統數據庫

2019-08-28 20:38:12

好代碼編寫代碼代碼質量

2024-05-17 09:37:26

format屬性Spring

2020-08-05 08:25:58

大數據Java技術

2019-01-22 08:58:41

代碼耦合業務

2018-10-29 08:20:26

Apache Flin工程師AI

2020-11-16 13:38:31

PostMessage

2024-07-02 10:24:35

2019-06-17 08:57:13

優秀工程師技術程序員

2015-07-30 09:27:04

2017-07-12 09:46:00

5G社會網絡
點贊
收藏

51CTO技術棧公眾號

亚洲成人一品| 毛片在线看片| 亚洲综合不卡| 中文字幕精品一区久久久久| 中文字幕av不卡在线| 黄色在线免费看| 岛国精品一区二区| 欧洲亚洲妇女av| 欧美手机在线观看| 欧美精品国产白浆久久久久| 在线免费观看成人短视频| 91香蕉视频网址| 欧美一级性视频| 欧美aaa在线| 久久久久久91香蕉国产| 久久精品视频18| 亚洲精品一二三**| 在线观看视频一区| 久久99久久99精品| 老司机午夜在线视频| 久久蜜桃一区二区| 超碰国产精品久久国产精品99| 亚洲成人第一网站| 在线观看亚洲| 色综合久久精品亚洲国产| 亚洲欧美va天堂人熟伦| 久久精品亚洲成在人线av网址| 欧美乱妇一区二区三区不卡视频| 欧美日韩亚洲第一| 激情av在线| 亚洲视频免费在线观看| 五月天亚洲综合| 亚洲 国产 欧美 日韩| 国产成人综合亚洲91猫咪| 日本道色综合久久影院| 日韩高清dvd碟片| 九九综合九九| 日韩精品极品视频| 91人人澡人人爽| 看亚洲a级一级毛片| 精品视频在线免费看| av无码精品一区二区三区| av资源网在线播放| 亚洲动漫第一页| 99久久99久久精品| 成人免费看片| 亚洲人成小说网站色在线| 亚洲人成77777| eeuss影院www在线播放| 久久久久久一二三区| 精品一区日韩成人| 五月婷婷久久久| 成人av网站大全| 国产麻豆日韩| 天天av天天翘| 2欧美一区二区三区在线观看视频| 99影视tv| 色婷婷av一区二区三| 国产传媒一区在线| av日韩免费电影| 亚洲欧美高清视频| 成人一区二区三区中文字幕| 成人免费看片网址| 黑人操亚洲女人| 成人av在线观| 麻豆蜜桃91| 国外av在线| 国产精品久久久久久久久免费相片| 日韩av大全| 幼a在线观看| 亚洲欧美日韩国产综合在线| 欧美日韩午夜爽爽| 91超碰免费在线| 日韩欧美成人区| 波多野结衣天堂| 国内不卡的一区二区三区中文字幕| 欧美精品国产精品| 男人的天堂免费| 久久99精品国产自在现线| 日韩av在线免费观看| 鲁丝一区二区三区| 亚洲色图国产| 性色av一区二区三区红粉影视| 中文字幕在线观看视频网站| 日韩中文字幕麻豆| 亚洲在线视频福利| 婷婷五月综合激情| 国产精品妹子av| 日本黄大片在线观看| 91九色porn在线资源| 色婷婷综合视频在线观看| 午夜精品久久久久久久99热影院| 日韩精品一区二区三区中文| 亚洲国产精品免费| 99国产精品无码| 亚洲激情女人| 国产精品自产拍高潮在线观看| 99热这里只有精| 久久亚洲二区三区| 亚洲小视频在线播放| 亚洲一级少妇| 欧美日韩国产不卡| 最新日本中文字幕| 日韩大片在线播放| 91国内揄拍国内精品对白| 国产一区二区在线视频观看| 福利电影一区二区| 亚洲精品成人自拍| 啊啊啊久久久| 91麻豆精品国产91久久久久| 亚洲精品女人久久久| 国产精品久久久久久影院8一贰佰| 欧美激情中文字幕乱码免费| 中文字幕在线观看你懂的| 白白色亚洲国产精品| 亚洲一二区在线| 麻豆蜜桃在线观看| 日韩欧美一二三| 免费成人深夜天涯网站| 一区二区日韩免费看| 3d精品h动漫啪啪一区二区| 免费看男男www网站入口在线| 一区二区高清免费观看影视大全 | 噜噜噜噜噜在线视频| 有码一区二区三区| 天天干天天综合| 亚洲精华一区二区三区| 欧美激情在线有限公司| 91麻豆成人精品国产| 欧美国产成人在线| 日本三级免费观看| 精品福利一区| 欧美黑人国产人伦爽爽爽| 91影院在线播放| 欧美国产乱子伦| 国产精品人人妻人人爽人人牛| 1313精品午夜理伦电影| 欧美成人精品一区二区| 91麻豆成人精品国产免费网站| 国产亚洲欧洲997久久综合| 僵尸世界大战2 在线播放| 在线免费成人| xxxxx91麻豆| 在线观看中文字幕网站| 国产清纯白嫩初高生在线观看91 | 日韩精品极品毛片系列视频| 五月天婷婷网站| 福利一区二区在线| 成人免费在线网| www.成人网| 久久久亚洲福利精品午夜| 国精产品一品二品国精品69xx| 一区二区在线免费观看| 欧美污在线观看| 欧美一区久久| 国产不卡一区二区在线观看 | 亚洲香肠在线观看| 在线看黄色的网站| 99国内精品| 极品校花啪啪激情久久| 岛国av免费在线观看| 亚洲精品福利资源站| 国产做受高潮漫动| 91免费看片在线观看| 免费大片在线观看| 成人免费a**址| 成人午夜小视频| 欧美伦理免费在线| 亚洲国产日韩欧美在线图片 | 日本性爱视频在线观看| 精品免费一区二区三区| 91九色丨porny丨肉丝| 国产午夜精品福利| 色播五月综合网| 中文一区一区三区免费在线观看| 国产在线视频欧美| 亚洲91av| 国产视频在线观看一区二区| 国产精品无码一区| 亚洲精品视频免费观看| 欧美图片自拍偷拍| 久久久久久久尹人综合网亚洲| 亚洲精品高清国产一线久久| www.久久久.com| 97热在线精品视频在线观看| 成人精品一区| 欧美va亚洲va香蕉在线| 天天综合网久久综合网| 国产精品女上位| 久久久久无码国产精品一区李宗瑞| 在线视频日韩| 在线国产精品网| 欧美人妖视频| 91香蕉嫩草影院入口| 天堂av在线网| 久久av在线播放| 免费在线观看污视频| 91精品国产aⅴ一区二区| 日韩三级小视频| 国产精品久久久久久福利一牛影视| 中文字幕一二三| 天堂蜜桃一区二区三区| 特大黑人娇小亚洲女mp4| 国产精品欧美三级在线观看| 91精品国产综合久久久久久丝袜| 三上悠亚亚洲一区| 欧美极品少妇与黑人| 最新国产在线观看| 精品视频www| 亚洲第一大网站| 欧美色电影在线| 日本天堂网在线| 一级日本不卡的影视| 2017亚洲天堂| 久久理论电影网| xxxxxx黄色| 国模一区二区三区白浆| 国语对白做受xxxxx在线中国| 午夜日韩福利| 伊人久久大香线蕉午夜av| 香蕉国产成人午夜av影院| 91精品国自产在线观看 | 亚洲精品影院在线观看| 丰满女人性猛交| 欧美日中文字幕| 品久久久久久久久久96高清| 成人资源在线播放| 国产日韩在线观看av| 久久野战av| 欧美一级电影免费在线观看| 变态调教一区二区三区| 久久影院中文字幕| 麻豆视频在线播放| 色妞在线综合亚洲欧美| 国产永久av在线| 亚洲女在线观看| 五月色婷婷综合| 日韩精品有码在线观看| 日韩在线视频免费| 精品国产乱码久久久久久牛牛 | 国产精品一级片在线观看| 亚洲国产日韩欧美在线观看| 日韩国产在线一| 少妇人妻互换不带套| 国产美女精品| avav在线看| 噜噜噜91成人网| 91黄色小网站| 日日骚欧美日韩| 国产理论在线播放| 免费成人美女在线观看.| 国产性生交xxxxx免费| 日韩国产欧美视频| 色戒在线免费观看| 国产一区视频在线看| 天天干天天色天天干| 国产一区二三区| 国产91在线免费观看| 国产成a人亚洲| 亚洲国产精品第一页| 成a人片国产精品| 加勒比一区二区| 欧美精彩视频一区二区三区| 乐播av一区二区三区| 国产精品乱码人人做人人爱| 五月天免费网站| 亚洲三级电影网站| 九九热国产在线| 欧美日韩激情网| 波多野结衣在线观看视频| 欧美日韩午夜在线视频| 国产三级自拍视频| 亚洲国产欧美久久| 91在线看黄| 欧美国产日韩一区二区| 亚洲最大网站| 国产一区深夜福利| 91精品国产自产精品男人的天堂| 国新精品乱码一区二区三区18| www.神马久久| 日韩欧美亚洲v片| 欧美激情精品久久久六区热门| 人妻少妇精品无码专区二区| 久久一二三四| 特黄特黄一级片| 国产夜色精品一区二区av| 五月天激情丁香| 性欧美大战久久久久久久久| 国产99久久久久久免费看| 日韩欧美激情在线| 国产主播福利在线| 欧美成人在线影院| 男人皇宫亚洲男人2020| 91系列在线观看| 国产一区二区区别| 中文字幕日韩精品无码内射| 亚洲一区日本| 中国老熟女重囗味hdxx| 国产视频在线观看一区二区三区| 国产日韩欧美在线观看视频| 欧美午夜www高清视频| 国产精品玖玖玖| 亚洲人线精品午夜| 天堂av在线电影| 国产精品自产拍在线观看中文| 亚洲精品一区二区三区中文字幕| 日韩免费中文专区| 亚洲高清在线| 999热精品视频| 国产亚洲一二三区| 丰满少妇乱子伦精品看片| 欧美二区三区的天堂| 九色国产在线观看| 国产69精品久久久久9| 久久国产三级| 欧美精品二区三区四区免费看视频| 欧美a级片一区| 国产三级精品三级在线| 欧美韩国一区二区| 特黄视频免费看| 亚洲国产精品资源| 激情图片在线观看高清国产| 91久久国产精品91久久性色| 国产一区日韩| av观看免费在线| 9l国产精品久久久久麻豆| 久久国产美女视频| 欧美精品久久久久久久多人混战| 黄色片免费在线| 欧美一区二区三区……| 精品五月天堂| 成年人午夜免费视频| 高清成人免费视频| 久久综合激情网| 欧美大胆一级视频| 精品日韩av| 国产精品久久精品视| 欧美另类亚洲| 91人妻一区二区| 亚洲一区二区三区在线看| wwwxxxx国产| 久久久女人电视剧免费播放下载| 日韩区一区二| 日韩欧美亚洲国产一区| 中文字幕一区二区久久人妻| 夜夜嗨av一区二区三区免费区 | 国产精品久久久久久久久| 日韩啪啪网站| 青青草原成人网| 久久在线免费观看| 欧产日产国产69| 国产一区二区免费| 日韩福利影视| 手机成人av在线| 国产一区二区美女诱惑| 一区二区成人免费视频| 欧美电影精品一区二区| 国产99在线观看| 久久综合九色综合久99| 视频一区欧美日韩| 三级影片在线观看| 日韩一区二区电影在线| 福利写真视频网站在线| 精品国产一区二区三区免费| 国产婷婷精品| 老头老太做爰xxx视频| 在线电影一区二区三区| 午夜小视频在线观看| 国产乱码精品一区二区三区日韩精品 | 国产一区一一区高清不卡| 日韩欧美99| 国产在线精品视频| 日韩福利片在线观看| 亚洲欧洲国产一区| 亚洲精品一区av| 国产freexxxx性播放麻豆| www国产精品av| 中国黄色一级视频| 九九久久久久99精品| 日韩有码av| 中文字幕22页| 精品免费在线观看| 尤物视频在线免费观看| 999精品视频一区二区三区| 亚洲一区亚洲| 国产免费美女视频| 国产丝袜高跟一区| 国产欧美88| 情侣黄网站免费看| 亚洲精品乱码久久久久久黑人| 性xxxx搡xxxxx搡欧美| 成人a视频在线观看| 99国产精品久久久久久久成人热 | 亚洲国产一区二区三区青草影视| 亚洲 欧美 自拍偷拍| 国产欧美精品久久久| 日韩天堂av| 国产精品成人69xxx免费视频 | 野花社区视频在线观看| 91精品国产综合久久香蕉麻豆|