自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

阿里工程師開(kāi)發(fā)彈幕新玩法,網(wǎng)友不淡定了……

開(kāi)發(fā)
如果你在追劇時(shí)喜歡看彈幕、發(fā)彈幕,那你一定知道有些劇里彈幕甚至比劇情還要精彩,比如上過(guò)熱搜的出自《東宮》的那一句“談戀愛(ài)嗎?滅你全族的那種”。正是由于這些神一般的網(wǎng)友頻頻曝出精句,讓某些劇集精彩程度翻了幾倍,甚至有大量網(wǎng)友來(lái)追劇是被彈幕吸引來(lái)的。今天,阿里文娛高級(jí)開(kāi)發(fā)工程師 神滅介紹一種彈幕新玩法,讓彈幕的可玩性更高。

????阿里妹導(dǎo)讀:如果你在追劇時(shí)喜歡看彈幕、發(fā)彈幕,那你一定知道有些劇里彈幕甚至比劇情還要精彩,比如上過(guò)熱搜的出自《東宮》的那一句“談戀愛(ài)嗎?滅你全族的那種”。正是由于這些神一般的網(wǎng)友頻頻曝出精句,讓某些劇集精彩程度翻了幾倍,甚至有大量網(wǎng)友來(lái)追劇是被彈幕吸引來(lái)的。今天,阿里文娛高級(jí)開(kāi)發(fā)工程師 神滅介紹一種彈幕新玩法,讓彈幕的可玩性更高。

喜歡用優(yōu)酷看視頻發(fā)彈幕的同學(xué)應(yīng)該已經(jīng)發(fā)現(xiàn),最新版本上很多劇都上線了全新的基于AI人臉識(shí)別的跟隨彈幕,以往的普通彈幕或高級(jí)彈幕都是在播放器頂端自右向左以跑馬燈式的效果展示,而這種跟隨彈幕是以氣泡樣式掛在人物頭像旁邊,隨著人物移動(dòng)而移動(dòng)。這種跟隨彈幕可玩性更高,有才網(wǎng)友可發(fā)揮余地更大,下面就列舉幾個(gè)例子。

結(jié)合人物動(dòng)作的玩法: 

??

??

 結(jié)合人物所處場(chǎng)景的玩法:

??

??

 自編自導(dǎo)人物對(duì)話:

??

??

  ??

??

 從幾個(gè)視頻demo中可以看出,相比普通彈幕,這種跟隨彈幕是以一種類似劇中人物的內(nèi)心OS的方式展示出來(lái)的,與視頻無(wú)割離感,更有趣更新穎更精彩,有更多玩法。

本文主要講訴一下跟隨彈幕是如何展示的,從構(gòu)架圖開(kāi)始講解實(shí)現(xiàn)流程;再由開(kāi)發(fā)過(guò)程中遇到的棘手問(wèn)題,分享技術(shù)策略;最后分享未來(lái)規(guī)劃。

一、跟隨彈幕架構(gòu)圖

 ??

??

 整個(gè)流程自下而上,分成算法側(cè)、服務(wù)端、客戶端三層:

首先,算法側(cè)按每秒25幀的頻率進(jìn)行視頻抽幀,對(duì)每一幀進(jìn)行人臉識(shí)別,配合人臉跟蹤和平滑處理,生成每一幀的人臉元數(shù)據(jù);

其次,服務(wù)端將多個(gè)幀的人臉元數(shù)據(jù)通過(guò)降噪、防抖、合并后組合成一組組的人臉組數(shù)據(jù),將該數(shù)據(jù)與跟隨彈幕數(shù)據(jù)一起下發(fā)給客戶端;

最后,客戶端在互動(dòng)SDK中將每組人臉數(shù)據(jù)生成一個(gè)腳本,腳本中完成彈幕跟隨該人臉軌跡的移動(dòng)而移動(dòng)。

下面著重介紹下每個(gè)模塊或子模塊完成的任務(wù):

1.算法側(cè)

1) 視頻抽幀模塊:將視頻流按每秒25幀(可配置)的頻率抽幀。抽幀頻率越高,人臉移動(dòng)軌跡越平滑,但后面人臉識(shí)別算法耗時(shí)也隨之增加;

2) 模型訓(xùn)練模塊:提供多張多角度劇中出現(xiàn)的人物圖像,給模型訓(xùn)練模塊來(lái)訓(xùn)練,生成對(duì)應(yīng)人臉庫(kù),再配合已訓(xùn)練完成的明星庫(kù),這兩個(gè)庫(kù)可以大大提高人臉檢測(cè)的準(zhǔn)確度;

3) 人臉檢測(cè):識(shí)別每一幀圖像中的人臉,并給出坐標(biāo);

4) 人臉跟蹤:為方便服務(wù)端生成人臉的運(yùn)動(dòng)軌跡,需要把連續(xù)幾幀中的相同人臉標(biāo)記出來(lái);

5) 平滑處理:由于每幀中識(shí)別出的人臉坐標(biāo)有一定的偏移量,所以整段人臉軌跡中會(huì)出現(xiàn)抖動(dòng)現(xiàn)象,平滑處理就是通過(guò)微調(diào)每幀人臉坐標(biāo)讓整個(gè)人臉移動(dòng)軌跡更平滑。

2.服務(wù)端

1) 降噪:算法側(cè)不關(guān)心每一幀上到底哪張人臉重要或不重要,所以會(huì)有大量的路人臉是出現(xiàn)一秒不到就消失的,這種無(wú)意義的噪點(diǎn)需要直接過(guò)濾掉,即降噪處理;

2) 防抖:如果算法側(cè)平滑處理未達(dá)到要求,人臉在運(yùn)動(dòng)過(guò)程中還是有抖動(dòng),服務(wù)端可以對(duì)元數(shù)據(jù)進(jìn)行二次加工,讓人臉移動(dòng)更平滑;

3) 合并:算法側(cè)吐出的都是每一幀的元數(shù)據(jù),但客戶端關(guān)心的是一張人臉由出現(xiàn)到消失的整個(gè)軌跡過(guò)程,服務(wù)端會(huì)把元數(shù)據(jù)合并成一組組人臉的軌跡數(shù)據(jù),即人臉組數(shù)據(jù);

4) 氣泡彈幕數(shù)據(jù):跟隨彈幕的數(shù)據(jù),每條彈幕都對(duì)應(yīng)著一張人臉,也指定了彈幕開(kāi)始展示的時(shí)該。

3.客戶端

1) 互動(dòng)SDK模塊:加載各種互動(dòng)腳本,每個(gè)腳本都是一個(gè)小的互動(dòng),比如電影評(píng)分、百科tips、雙流酷看等。利用了互動(dòng)SDK的基礎(chǔ)能力,這里把每張人臉由出現(xiàn)到消失的整個(gè)過(guò)程當(dāng)做一個(gè)小的互動(dòng)腳本;

2) 人臉腳本:人臉腳本中包含著該張人臉的軌跡坐標(biāo)和對(duì)應(yīng)該張人臉的彈幕氣泡數(shù)據(jù),腳本中有個(gè)定時(shí)器在輪詢,查找著當(dāng)前時(shí)刻對(duì)應(yīng)人臉的坐標(biāo),如果該時(shí)刻有跟隨彈幕數(shù)據(jù)則把該數(shù)據(jù)展示在人臉旁邊,繼續(xù)輪詢即達(dá)到了彈幕氣泡跟隨人臉移動(dòng)的效果。

二、為什么不通過(guò)客戶端直接識(shí)別人臉?

1. 實(shí)時(shí)觀看對(duì)于時(shí)間要求太高

對(duì)于客戶端來(lái)說(shuō),最終需要知道的是一張張人臉由出現(xiàn)到消失整個(gè)軌跡過(guò)程,如果客戶端做識(shí)別,目前只能識(shí)別到某一幀中人臉數(shù)據(jù),追蹤、平滑處理、防抖、過(guò)濾、合并,這整個(gè)過(guò)程下來(lái)耗時(shí)太大,根本無(wú)法滿足用戶實(shí)時(shí)觀看的需求;

2. 端側(cè)識(shí)別準(zhǔn)確度達(dá)不到要求

先前做彈幕穿人時(shí),iOS端接入過(guò)AliNN提供的SDK,人臉檢測(cè)還是偶而出現(xiàn)未檢測(cè)到的情況,如果人臉檢測(cè)準(zhǔn)確度上不能達(dá)到要求,必須自己做補(bǔ)幀處理,這個(gè)補(bǔ)幀處理很難做到實(shí)時(shí);

3. 端側(cè)識(shí)別影響用戶體驗(yàn)

端側(cè)識(shí)別時(shí)手機(jī)cup消耗增大,即耗電量會(huì)增大,同時(shí)可能也影響到播放器卡頓率。

三、棘手的問(wèn)題

1.在即將切鏡頭時(shí)發(fā)跟隨彈幕,如何停留的問(wèn)題

用戶發(fā)彈幕的時(shí)刻恰好在人臉馬上消失的時(shí)刻(比如馬上要切鏡頭),這時(shí)由于人臉會(huì)馬上消失,而其它人臉會(huì)馬上出來(lái),問(wèn)題來(lái)了,如果為了保證用戶能看到自己發(fā)的彈幕,那這條跟隨彈幕就需要強(qiáng)制在屏幕上停留幾秒,但就因?yàn)檫@幾秒鐘導(dǎo)致切鏡頭后這條跟隨彈幕很尷尬。測(cè)試同學(xué)反饋說(shuō)彈幕在切鏡頭后很奇怪,給人一種“天空飄來(lái)一句話”的感覺(jué)。

對(duì)這個(gè)問(wèn)題,最終我們的解決辦法是切鏡頭前一刻發(fā)的跟隨彈幕,在切鏡頭后直接跑漸隱效果,這樣即保證了用戶能看清自己的彈幕又保證不會(huì)尷尬地掛在下一個(gè)鏡頭的人臉上。視頻效果如下: 

??

??

 ??

??

 2.大劇熱綜頻繁剪輯導(dǎo)致人臉數(shù)據(jù)時(shí)間軸錯(cuò)亂的問(wèn)題

一個(gè)視頻特別是綜藝上線后,會(huì)時(shí)不時(shí)地多次剪輯。一旦剪輯后,人臉數(shù)據(jù)和進(jìn)度條時(shí)間會(huì)錯(cuò)位,運(yùn)營(yíng)同學(xué)可能會(huì)給出一個(gè)大概時(shí)間比如在一分二十秒位置剪掉十秒這樣的數(shù)據(jù),但人臉數(shù)據(jù)必須與進(jìn)度條時(shí)間在毫秒級(jí)單位上對(duì)應(yīng),否則會(huì)出現(xiàn)明顯延遲或超前。如果重跑數(shù)據(jù),可能需要幾個(gè)小時(shí)下線掉該功能,如果要復(fù)用數(shù)據(jù)就必須知道精確的毫秒值,然后剪切部分之后的人臉及彈幕數(shù)據(jù)全部做偏移處理,所以問(wèn)題就是如何獲取精確的剪切時(shí)長(zhǎng)。

按照如下方式,只需要跑新視頻剪切點(diǎn)前后一小段人臉數(shù)據(jù),即可計(jì)算出剪切的毫秒級(jí)時(shí)間,然后將原視頻中在剪切點(diǎn)后的人臉數(shù)據(jù)及彈幕數(shù)據(jù)全部偏移對(duì)應(yīng)時(shí)間即解決了數(shù)據(jù)錯(cuò)位問(wèn)題。

 ??

??

 四、未來(lái)展望

劇中的人臉數(shù)據(jù)如果只應(yīng)用在跟隨彈幕中就大材小用了,下一步我們準(zhǔn)備把帶有人臉數(shù)據(jù)和人體數(shù)據(jù)的腳本做為基本腳本,后面除了跟隨彈幕腳本,還會(huì)有彈幕穿人腳本等等。后續(xù)客戶端這部分架構(gòu)可能會(huì)調(diào)整,見(jiàn)下圖。方便大家通過(guò)外部注入等方式,構(gòu)建自己想要的腳本。 ??

??

所以當(dāng)你有了創(chuàng)新點(diǎn)子,也需要使用到人臉人體數(shù)據(jù)時(shí),可以繼承自基本腳本拿到數(shù)據(jù)后直接定制自己想要的功能,借助成熟的優(yōu)化過(guò)的人臉人體數(shù)據(jù),快速地完成demo。

比如YY一個(gè)場(chǎng)景,由于某些原因,需要給明星A所出現(xiàn)的鏡頭打上馬賽克,或下掉明星A參演的電影。下掉電影肯定不能接受,畢竟花了大價(jià)錢買版權(quán);靠人工對(duì)大量鏡頭重新剪輯又不現(xiàn)實(shí),這就到了考驗(yàn)各視頻APP技術(shù)能力的時(shí)候了。我們借助互動(dòng)SDK提供的能力,通過(guò)已經(jīng)下發(fā)的人臉I(yè)D判斷出是明星A時(shí)給下發(fā)的人臉框打上馬賽克,問(wèn)題就解決了。 

 

責(zé)任編輯:武曉燕 來(lái)源: 阿里技術(shù)
相關(guān)推薦

2018-01-12 15:44:51

2018-06-15 14:43:46

2018-06-22 15:59:46

2022-11-14 10:04:36

AI模型

2010-02-02 15:37:32

2018-09-26 10:56:38

2017-01-19 11:58:35

阿里

2023-06-05 10:07:13

軟件工程平臺(tái)工程師

2021-09-09 06:18:04

交互功能彈幕

2018-10-29 08:20:26

Apache Flin工程師AI

2013-03-18 09:58:52

2025-03-31 09:27:03

2009-04-10 13:35:38

吳亮《JavaScript

2019-08-28 20:38:12

好代碼編寫代碼代碼質(zhì)量

2015-03-17 19:35:49

Xen漏洞阿里云

2011-06-16 18:09:51

網(wǎng)站優(yōu)化

2015-10-21 09:01:13

補(bǔ)丁Windows 10微軟

2012-06-28 14:23:32

Web

2019-03-28 14:22:26

工具代碼開(kāi)發(fā)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)