手機(jī)拍視頻,實(shí)時換背景,繼馬卡龍玩圖后,Versa又出了一款更厲害的App
郭一璞 發(fā)自 凹非寺
量子位 報道 | 公眾號 QbitAI
在前不久榮耀9X的發(fā)布會上,一個名叫綠幕俠的App亮相了。
現(xiàn)場的展示中,這個App能讓手機(jī)拍攝的視頻,產(chǎn)生電影綠幕一般的效果,實(shí)時從視頻中去掉背景,只保留主角人物,并把背景換成用戶設(shè)定好的特效。
想要實(shí)時的進(jìn)行視頻處理,還能實(shí)現(xiàn)精細(xì)的“摳圖”效果,無論對于算法還是算力來說,恐怕都不是一件容易的事。
綠幕俠背后的公司,正是此前風(fēng)靡一時的手機(jī)P圖應(yīng)用馬卡龍玩圖所屬的AI公司Versa。
一幀一幀做語義分割
Versa CTO趙維杰介紹說,綠幕俠背后用到的視頻人景分離技術(shù),就相當(dāng)于把視頻拆成一幀一幀,實(shí)現(xiàn)每一幀的語義分割。
語義分割并不難,難點(diǎn)在于連續(xù)應(yīng)用在每一幀上。
首先,必須保證對每一幀的語義分割處理時間低于30毫秒,時間一到,就要開始處理下一幀了,否則視頻就會變卡;
其次,因為是將語義分割應(yīng)用在視頻中,因此必須保證分割出來的精確度,一方面不能把邊緣處理的太粗糙,一方面要保證每一幀內(nèi)容的連續(xù)性,不能上一幀人物手里還有個包包,下一幀包包就被摳掉了,制造出一種“薛定諤的包包”狀態(tài);
最后,模型需要在手機(jī)本地運(yùn)行,因此不能太大,只能有1~2M的空間。
通過自研“概念網(wǎng)絡(luò)”的優(yōu)化,提升了當(dāng)前幀的分割精確度,又將時間空間信息嵌入到更緊湊的維度上,降低backbone的復(fù)雜度,趙維杰他們花了半年多完成了綠幕俠算法的研究,將每一幀的處理時間降到30毫秒以下,模型也被壓縮到了1M左右。
尋找適配芯片
但是,模型雖然做好了,新的問題卻出現(xiàn)了。
Versa技術(shù)團(tuán)隊找了許多主流手機(jī)芯片運(yùn)行這個模型,發(fā)現(xiàn)這些芯片跑出來效果都不夠好。要么算力不夠,導(dǎo)致卡頓,必須把模型壓縮才能運(yùn)行,但這樣效果就會變差;要么功耗太高,發(fā)熱太嚴(yán)重,用一會兒手機(jī)就卡了。
直到他們嘗試在榮耀9X的SoC麒麟810上運(yùn)行模型,發(fā)現(xiàn)不僅算力和功耗達(dá)到了要求,而且還有了另外一個好處:I/O的設(shè)計更好,數(shù)據(jù)搬移效率高。
“其實(shí)手機(jī)小模型運(yùn)行所耗的時間很多不是在運(yùn)算上的,而是耗在了數(shù)據(jù)搬運(yùn)上”,趙維杰這樣對量子位解釋。
當(dāng)他們在麒麟810上測試手機(jī)小模型時,輸入了1080P的高分辨率視頻,跑出結(jié)果后驚奇的發(fā)現(xiàn):
麒麟810和GTX1070的運(yùn)行結(jié)果在一個量級,手機(jī)上跑60ms的模型,在PC上(加上I/O)大概是20ms。
為什么一個手機(jī)芯片能跑的跟GTX1070這種電腦GPU的運(yùn)行結(jié)果相提并論?
趙維杰的解釋是,對視頻小模型來說,桌面GPU雖然算力強(qiáng),但是小模型根本用不上這么大的算力,反而視頻數(shù)據(jù)顯存搬移的I/O是瓶頸,時間都花在數(shù)據(jù)搬運(yùn)上了。麒麟810的I/O設(shè)計比較出色,省了不少時間。另外,桌面GPU是32bit浮點(diǎn),810是16bit浮點(diǎn)。GPU是通用芯片,NPU是專門用于神經(jīng)網(wǎng)絡(luò)計算,對算子可以特別優(yōu)化。最終的總時間上跟手機(jī)上可比。
因此,Versa也決定,這個新的App將在榮耀9X手機(jī)上首發(fā),月底上線應(yīng)用商店。
算力和算法的博弈
到這里,你可能看出來了一個問題:
如果AI模型必須要在足夠新、足夠強(qiáng)的芯片上運(yùn)行,那便宜的手機(jī)怎么辦呢?
一種思路是模型壓縮。不過趙維杰覺得,模型從設(shè)計起就應(yīng)當(dāng)是一個小的東西,而不是從一個巨大的模型逐漸壓縮到小,畢竟,模型總要拿出來用的,并不能只用在最頂尖的硬件上。
“AI公司和硬件公司都在追求一個中間地帶,AI公司希望能在現(xiàn)在的硬件上就跑更好的算法,硬件公司在追求越來越厲害的硬件平臺,讓越來越大的算法在體積小的移動的硬件上跑得起來。”趙維杰這樣說。
針對不同的平臺,Versa也提供了不同的算法。比如此前已有的產(chǎn)品馬卡龍玩圖,趙維杰提到,需要在在最優(yōu)秀的硬件上跑出最優(yōu)秀的效果,在普通硬件商做出最大覆蓋,最低端手機(jī)可以上云端跑,“提供差異化的算法,是任何一個AI公司追求的本質(zhì)。”




