天啦嚕!在家和愛豆玩"剪刀石頭布",阿里工程師如何辦到?

阿里妹導讀:現在,90、00後一代成爲消費主力,補貼、打折、優惠等「價格戰」已很難創建起忠誠度,如何與年輕人創建更深層次的情感共鳴?互動就是一種很好的方式,它能讓用戶更深度的參與品牌/平臺呈現的內容,提供更深層的參與感,提高用戶對品牌/平臺的認同感和滿意度。ios

今天,咱們一塊兒看看這些趣味互動技術背後的祕密。算法

一. 背景

最近一年以來,阿里巴巴搜索事業部和浙江大學宋明黎教授團隊聯合打造了手淘視頻互動平臺(AliPlayStudio),分別落地線上互動、線下大屏互動多個場景(線上手淘APP的拍立淘、掃一掃、搜索關鍵詞入口;線下商場大屏、影院互動大屏等)。接入阿里集團內天貓品牌、阿里影業、優酷IP、淘寶網紅,行業營銷等各種資源,在線上線下讓用戶互動,打通線上公域場景 、手淘APP 、線下商超這3個流量場。以新穎的視頻化互動方式,利用用戶對明星、紅人、IP、新奇的玩法所產生的好奇心及聚衆心理,創造全新的AI互動營銷方式,同時結合權益發放、店鋪加粉、商品推薦等手段,將互動用戶天然轉化爲真正的消費者。網絡

下面是18年雙11期間上線的「明星猜拳PK」互動:架構

下面是結合了人像語義切割、用戶年齡/性別預測的的18年天貓黑5「刷臉」活動:app

下面是人臉融合的玩法:框架

下面是基於實時人體關鍵點檢測的《西虹市首富》宣發互動玩法:模塊化

下面是和「黃小鹿」互動大屏在線下商場部署的「明星合圖」活動:用戶經過在大屏上自拍,通過人像切割後跟明星合照,用手淘掃碼導流到線上關注店鋪,完成照片打印。函數

爲了打造AliPlayStudio視頻互動平臺,咱們從基礎圖像算法能力到系統層面的端上模型推理加速、客戶端native實現(視頻、圖片,Camera多輸入源渲染)、H5玩法模塊化等,作了大量研發工做。性能

本文主要介紹圖像算法這塊的研發工做。學習

端上互動用到的手勢識別、POSE檢測、人像語義切割等能力,涉及計算機視覺分類、檢測、語義切割幾個核心問題。隨着這幾年深度學習的發展,目前這些任務比較好的解法都是基於深度學習方法。咱們的業務場景(手淘)要求模型通常可以大規模部署到手機和低性能的嵌入式設備上。這些任務儘管解決的Pipeline不同,都會面臨一個共性的問題:設計一個面向低性能平臺的輕量級高效神經網絡,而且能在 cpu、gpu、dsp等混合環境有高效的實現部署、運行,讓網絡在保持不錯的性能下,儘可能下降計算代價和帶寬需求。

在神經網絡加速方面,目前業界經常使用的一些方法有網絡減支和參數共享、網絡量化、知識蒸餾以及模型結構優化等。關於剪枝方面的研究在大模型上作的比較多,效果也比較好。可是咱們模型的backbone通常是採用MobileNet/ShuffleNet這類很小的網絡,剪枝在小網絡上精度損失比較大,加速收益比不高。目前咱們主要採用模型結構優化和知識蒸餾來提高網絡性能。

咱們研發的視覺互動基礎算法能力中,人臉識別、人臉關鍵點檢測,用戶年齡性別預測等是已經有較好解決方案的任務,人像語義切割、手勢識別、人體關鍵點識別、圖像風格化、人臉融合這幾個目前業界尚未成熟方案的任務。咱們的工做重點也主要投入在後面幾個任務上。

二. 人像語義切割

圖像語義分割任務(Semantic Segmentation)根據物體的不一樣類別進行像素級別的標記。針對人這個特殊的類別,Human Parsing將人的各個部位(臉部/頭髮/四肢等)進行像素級別的區分。咱們分別從數據、模型、框架優化三面着手,總體提高分割效果和體驗。

在數據層面,語義切割的樣本標註很是貴,咱們經過圖片合成創造更多樣本。爲了模擬真實的數據分佈,分別採用了顏色遷移算法調整前背景光照、經過人位置的分佈統計將人貼到合理的位置。經過人工合成高質量的數據,咱們可以得到相比原來數十倍的分割樣本。

在模型層面,咱們分別針對圖片分割場景和視頻分割場景訓練了高精度模型和實時模型:

語義分割網絡大都採用Encoder-Decoder結構,Encoder負責提取高層語義信息,Decoder負責還原邊緣分割細節。對於高精度模型,在backbone選取方面,咱們採用了Inception結構。爲了得到更大的感覺野,咱們參考DeepLab系列工做的思路,引入了ASPP(Atrous Spatial Pyramid Pooling)。

在Decoder設計上,咱們參考UNet系列工做的思路,將前層的特徵進行融合,以得到更好的邊緣細節。總體的網絡結構以下圖所示:

實時模型須要作到精度 / 速度的相對平衡。所以模型設計的總體原則是:Encoder儘可能精簡、Decoder儘可能恢復細節。Encoder模塊針對backbone分析耗時瓶頸,進行模型裁剪,減小channels數目;採用fast downsample,使得feature maps的大小盡量早的縮小,以節省計算量;不固定輸入大小,在不一樣機型下可使用不一樣大小的輸入。

Decoder網絡在精簡的基礎上儘量多的融合前層特徵,提升網絡總體並行度:採用相似UNet的結構,融入淺層特徵;在Decoder部分也採用較大的卷積核來進一步擴大感覺野;引入殘差結構增長信息流動。

經過以上優化,咱們的模型大小在1.7MB左右(量化後0.5M),miou 0.94,在中端Android機型(高通625)、320*240輸入下,能達到25FPS,知足實時化要求。

此外針對人這個特定的類別,咱們嘗試加入更多關於人的先驗知識來提高分割效果。分別嘗試了Pose Estimation-Human Segmentation聯合訓練和Human Parsing- Human Segmentation聯合訓練。經過聯合訓練的方式,不一樣任務之間可以相互做用從而提升各個任務的精度。

下面是手機端實時切割的效果(同時加上了手勢檢測,識別剪刀手勢來實時換背景):

下面是商場場景下的切割效果:

三. 猜拳遊戲:手勢識別

18年雙11期間咱們在手淘上線了「明星猜拳大戰」玩法,受到用戶大量好評。這是業界首次在手機端上實現的實時猜拳玩法。

猜拳互動要求實時檢測用戶的手勢(剪刀/石頭/布/其餘),咱們須要從用戶視頻的每一幀中找到手的位置,而後再對其進行分類,這也就是目標檢測要作的事情。

雖然目標檢測在近幾年獲得了飛速的發展,可是直接將現有模型算法用在猜拳遊戲上仍是會遇到一些挑戰。首先因爲手是非剛體,形變極大,同一個手勢會表現出不少形態,再加上角度等問題,使得咱們幾乎不可能窮舉全部可能的狀況。另外,用戶在切換手勢的過程當中會出現不少中間形態,這些形態的類別也很難肯定。此外咱們須要在手淘app覆蓋的絕大部分中低端機型上作到實時運行,這對咱們的模型運行速度提出很大挑戰。

爲此咱們從模型架構、主幹網絡、特徵融合、損失函數、數據等層面進行了全方位的優化,保證遊戲可以在大部分移動端上都可以正常運行。具體的,在模型架構上咱們採用了經典的SSD框架,由於SSD速度快、效果好、易擴展;主幹網絡借鑑了最新的MNasNet,進行了深度的優化,使其速度和精度進一步提高;特徵融合用的是改進版的特徵金字塔FPN,使其融合能力更強更高效。最終咱們的模型優化到只有1.9M,雙十一手淘的線上ios設備平均運行時間17ms,在測試集上的AP(IoU=0.5)達到了0.984。

四. 人體關鍵點檢測

人體關鍵點檢測任務是針對RGB圖片或視頻輸入,檢測其中人物的頭、頸、肩、腕、肘、髖、膝、踝等骨骼關鍵點。傳統的基於視覺的關鍵點檢測技術通常需藉助Kinect等特殊的攝像頭設備,解決方案成本高,且不易擴展。而近年來學術界利用深度學習的相關工做又重在追求精度,模型設計複雜,速度比較慢且須要佔用大量存儲空間。 咱們在平衡計算量和精度上作了大量探索和實驗,提出一個能在手機端上實時運行的高精度人體關鍵點檢測模型。具體來講,咱們借鑑了語義分割中的Encoder-Decoder模型,引入MobileNet系列輕量級網絡做爲backbone提取高層語義信息,而後decoder使用轉置卷積進行上採樣恢復稠密輸出,同時也使用了open pose工做的PAF(Part Affinity Fields)模塊進行兩路輸出預測。

模型在高通驍龍845上運行單幀圖片(320*320輸入)只須要11ms,在RK3399這種低端嵌入式芯片上也能夠跑到15fps,預測精度可以很好的支持咱們線上線下的互動場景,且模型大小僅2.5M。下面是咱們多人實時關鍵點識別在RK3399上跑的效果:

五.圖像風格化

圖像風格化算法的目標是在保持內容圖的高級語義信息不變的狀況下,將風格圖的風格遷移到內容圖。 風格化算法通常有2類:慢速、快速風格化,咱們的互動場景下只適合後者: 對特定風格圖訓練前向神經網絡模型,在測試的時候只須要一次前向便可獲得響應結果。雖然快速圖像風格化算法的速度較快,可是與此同時帶來的一個缺點是風格遷移過程當中不少因素變得不可控,好比筆觸大小。 給定一個預訓練好的網絡和一張固定大小的內容圖,輸出的風格化結果圖的筆觸大小是固定的,沒法讓用戶進行筆觸大小的靈活控制, 即沒法實現精細的任意連續筆觸大小控制。針對此問題,咱們和浙江大學宋明黎老師團隊合做,提出了一個筆觸大小可控的圖像風格化遷移算法。

咱們設計了一個筆觸金字塔結構,經過筆觸金字塔(StrokePyramid),把整個網絡劃分爲了不少不一樣筆觸分支,下面的分支經過在前一分支的基礎上增長卷積層的方式得到了更大的感覺,並利用不一樣的感覺野,使用不一樣尺度大小的風格圖進行訓練,以後經過在特徵空間進行筆觸特徵插值(stroke interpolation),來實現任意的連續筆觸大小控制。在測試階段,筆觸金字塔經過門函數來控制網絡的感覺野,從而產生出與感覺野對應的不一樣的筆觸大小。

下面是咱們在明星合圖活動上應用的不一樣筆觸風格遷移效果。

對於1024×1024 大小的測試圖,咱們的模型在NVIDIA Quadro M6000上只須要0.09s的時間,模型大小爲0.99MB。

咱們的工做發表於ECCV 2018上,具體見論文:Stroke Controllable Fast Style Transfer with Adaptive Receptive Fields.

六.人臉融合

人臉融合是將用戶自拍圖片的人臉與模板圖的人臉進行融合,融合之後,模板圖的人臉呈現出用戶人臉的五官特徵與臉型輪廓,並保持原模板圖的髮飾、穿着,以此達到以假亂真的效果,實現「換臉」。 簡單實現人臉融合並不困難,可是,若是想使得絕大多數的用戶圖片都能呈現滿意的效果並不容易,有許多細節問題,其中最主要的兩個問題是人臉變形與圖像融合:

用戶在自拍的時候,拍攝的角度多種多樣,沒法作到與模板圖的人臉保持相同的角度。若是隻作簡單的變形就將用戶的人臉貼到模板上,會形成十分詭異的效果。

用戶所使用的拍照設備各異,拍照環境各異,會產生不一樣的像素與光照環境的圖片,這些圖片中存在大量白平衡失調、皮膚高光等的錯誤。

如何對這些質量不足的圖片進行處理,使得融合後仍然可以產生高質量的融合圖片,是人臉融合中必須解決的問題。 咱們的方法得到了完善的用戶臉部關鍵點,在儘量保持用戶五官臉部形狀的同時,利用關鍵點插值對其進行變換,保證了五官的和諧,同時,針對用戶不一樣的臉型,如圓臉、尖臉,對模板圖進行了變換,使得融合後獲得的結果與用戶更加類似。 爲了解決用戶照片質量各異的問題,咱們利用皮膚在顏色空間上的特徵值,採用預約義的LUT(LookUpTable),將用戶的膚色與模特膚色進行了統一,並有效處理了高光的問題,使得低質量的圖片也可以獲得良好的融合效果,而且觀感上更加受用戶喜好。

七. 總結

從18年3月份以來,咱們以活動營銷的方式,在手機淘寶app內拍立淘、掃一掃、搜索等產品落地了十多場視覺互動IP營銷活動。

譬如《西虹市首富》《碟中諜6》的影視IP宣發、雙11《明星猜拳大戰》、天貓國際黑5「刷臉」活動、雙12"AI看相"、元旦"淘公仔"新年籤活動。新鮮的AI互動技術結合有趣的創意,受到用戶好評,引起在微博等平臺上大量自發參與、傳播討論。

同時咱們也與線下互動大屏場景鹿合做,其線下拍照互動產品「黃小鹿」部署在全國各大商場。咱們爲其提供了基礎的人像語義切割等能力,從18年8月份開始陸續上線了健樂多、彈個車、婚博會糖類、貝殼租房等品牌宣傳活動以及雙十一天貓線下快閃店、萬聖節等活動。 後面咱們將通用互動提煉,進行平臺化沉澱。讓更多的品牌,尤爲是中小品牌可以經過平臺快速配置產出一套AI互動營銷活動,再借助其站外推廣資源引導用戶迴流,提高活動參與熱度,贏得平臺內更多推廣資源。既能給品牌客戶提供強有力的營銷抓手,實現「財丁兩旺「,又能爲平臺帶來用戶增量,從而實現共贏。

最後,感謝阿里巴巴-浙江大學前沿技術聯合研究中心(AZFT)對本項目的支持。


本文做者:蘇哲

閱讀原文

本文來自雲棲社區合做夥伴「阿里技術」,如需轉載請聯繫原做者。

相關文章
相關標籤/搜索