人臉是如何被機(jī)器識(shí)別的呢?

發(fā)布時(shí)間:2019-11-13 09:39:12  |  來(lái)源:鮮棗課堂(ID:xzclasscom)  

文/小棗君

如今我們所處的時(shí)代,是移動(dòng)互聯(lián)網(wǎng)時(shí)代,也可以說(shuō)是視頻時(shí)代。

從短視頻,從“三生三世”到“延禧攻略”,我們的生活,被越來(lái)越多的視頻元素所影響。

而這一切,離不開(kāi)視頻拍攝技術(shù)的不斷升級(jí),還有視頻制作產(chǎn)業(yè)的日益強(qiáng)大。

此外,也離不開(kāi)通信技術(shù)的飛速進(jìn)步。試想一下,如果還是當(dāng)年的56K Modem撥號(hào),或者是2G手機(jī),你還能享受到現(xiàn)在動(dòng)輒1080P甚至4K的視頻體驗(yàn)嗎?

視頻編碼技術(shù)

除了視頻拍攝工具和網(wǎng)絡(luò)通信技術(shù)升級(jí)之外,我們能享受到視頻帶來(lái)的便利和樂(lè)趣,還有一個(gè)重要因素,就是的突飛猛進(jìn)。

今天,我就給大家做一個(gè)關(guān)于它的零基礎(chǔ)科普。

說(shuō)視頻之前,先要說(shuō)說(shuō)圖像。

“像素點(diǎn)”

圖像,大家都知道,是由很多“帶有顏色的點(diǎn)”組成的。這個(gè)點(diǎn),就是。

像素點(diǎn)的英文叫Pixel(縮寫(xiě)為PX)。這個(gè)單詞是由 Picture(圖像) 和 Element(元素)這兩個(gè)單詞的字母所組成的。

電影《像素大戰(zhàn)(Pixels)》,2015年

電影《像素大戰(zhàn)(Pixels)》,2015年

像素是圖像顯示的基本單位。我們通常說(shuō)一幅圖片的大小,例如是1920×1080,就是長(zhǎng)度為1920個(gè)像素點(diǎn),寬度為1080個(gè)像素點(diǎn)。乘積是2,073,600,也就是說(shuō),這個(gè)圖片是兩百萬(wàn)像素的。

1920×1080,這個(gè)也被稱為這幅圖片的分辨率。

分辨率也是顯示器的重要指標(biāo)

分辨率也是顯示器的重要指標(biāo)

那么,我們經(jīng)常所說(shuō)的PPI又是什么東西呢?

PPI,就是“Pixels Per Inch”,每英寸像素?cái)?shù)。

也就是,手機(jī)(或顯示器)屏幕上每英寸面積,到底能放下多少個(gè)“像素點(diǎn)”。

這個(gè)值當(dāng)然是越高越好啦!PPI越高,圖像就越清晰細(xì)膩。

以前的功能機(jī),例如諾基亞,屏幕PPI都很低,有很強(qiáng)烈的顆粒感。

后來(lái),蘋(píng)果開(kāi)創(chuàng)了史無(wú)前例的“視網(wǎng)膜”(Retina)屏幕,PPI值高達(dá)326(每英寸屏幕有326像素),畫(huà)質(zhì)清晰,再也沒(méi)有了顆粒感。

像素點(diǎn)必須要有顏色,才能組成繽紛絢麗的圖片。那么,這個(gè)顏色,又該如何表示呢?

大家都知道,我們生活中的顏色,可以擁有無(wú)數(shù)種類別。

光是妹紙們的口紅色號(hào),就足以讓我們這些屌絲瞠目結(jié)舌。。。

光是妹紙們的口紅色號(hào),就足以讓我們這些屌絲瞠目結(jié)舌。。。

在計(jì)算機(jī)系統(tǒng)里,我們不可能用文字來(lái)表述顏色。不然,就算我們不瘋,計(jì)算機(jī)也會(huì)瘋掉的。在數(shù)字時(shí)代,當(dāng)然是用數(shù)字來(lái)表述顏色。

“彩色分量數(shù)字化”

這就牽出了的概念。

紅色(Red)

以前我們美術(shù)課學(xué)過(guò),任何顏色,都可以通過(guò)、、按照一定比例調(diào)制出來(lái)。這三種顏色,被稱為。

“基色分量”

在計(jì)算機(jī)里,R、G、B也被稱為。它們的取值,分別從0到255,一共256個(gè)等級(jí)(256是2的8次方)。

所以,任何顏色,都可以用R、G、B三個(gè)值的組合表示。

RGB=[183,67,21]

RGB=[183,67,21]

1600萬(wàn)色

通過(guò)這種方式,一共能表達(dá)多少種顏色呢?256×256×256=16,777,216種,因此也簡(jiǎn)稱為。RGB三色,每色有8bit,這種方式表達(dá)出來(lái)的顏色,也被稱為。

真彩色

這個(gè)顏色范圍已經(jīng)超過(guò)了人眼可見(jiàn)的全部色彩,所以又叫。再高的話,對(duì)于我們?nèi)搜蹃?lái)說(shuō),已經(jīng)沒(méi)有意義了,完全識(shí)別不出來(lái)。

視頻編碼基礎(chǔ)知識(shí)

好了,剛才說(shuō)了圖像,現(xiàn)在,我們開(kāi)始說(shuō)視頻。

所謂視頻,大家從小就看動(dòng)畫(huà),都知道視頻是怎么來(lái)的吧?沒(méi)錯(cuò),大量的圖片連續(xù)起來(lái),就是視頻。

衡量視頻,又是用的什么指標(biāo)參數(shù)呢?

幀率(Frame Rate)

最主要的一個(gè),就是。

在視頻中,一個(gè)幀(Frame)就是指一幅靜止的畫(huà)面。幀率,就是指視頻每秒鐘包括的畫(huà)面數(shù)量(FPS,F(xiàn)rame per second)。

幀率越高,視頻就越逼真、越流暢。

幀率越高,視頻就越逼真、越流暢。

有了視頻之后,就涉及到兩個(gè)問(wèn)題,一個(gè)是存儲(chǔ),二個(gè)是傳輸。

而之所以會(huì)有視頻編碼,關(guān)鍵就在于此:一個(gè)視頻,如果未經(jīng)編碼,它的體積是非常龐大的。

以一個(gè)分辨率1920×1280,幀率30的視頻為例。

1920×1280=2,073,600(Pixels 像素)

每個(gè)像素點(diǎn)是24bit(前面算過(guò)的哦)

也就是每幅圖片2073600×24=49766400bit

8 bit(位)=1 byte(字節(jié)),所以,49766400bit=6220800byte≈6.22MB。

這是一幅1920×1280圖片的原始大小,再乘以幀率30,也就是說(shuō),每秒視頻的大小是186.6MB,每分鐘大約是11GB,一部90分鐘的電影,約是1000GB。。。

嚇尿了吧?就算你現(xiàn)在電腦硬盤(pán)是4TB的(實(shí)際也就3600GB),也放不下幾部大姐姐啊!

不僅要存儲(chǔ),還要傳輸,不然視頻從哪來(lái)呢?

如果按照100M的網(wǎng)速(12.5MB/s),下剛才那部電影,需要22個(gè)小時(shí)。。。再次崩潰。。。

正因?yàn)槿绱耍瑢沤z工程師們就提出了,必須對(duì)視頻進(jìn)行編碼。

什么是編碼?

編碼,就是按指定的方法,將信息從一種形式(格式),轉(zhuǎn)換成另一種形式(格式)。

視頻編碼,就是將一種視頻格式,轉(zhuǎn)換成另一種視頻格式。

編碼的終極目的,說(shuō)白了,就是為了壓縮。

各種五花八門(mén)的視頻編碼方式,都是為了讓視頻變得體積更小,有利于存儲(chǔ)和傳輸。

我們先來(lái)看看,視頻從錄制到播放的整個(gè)過(guò)程,如下:

首先是視頻采集。通常我們會(huì)使用攝像機(jī)、攝像頭進(jìn)行視頻采集。限于篇幅,我就不打算和大家解釋CCD成像原理了。

采集了視頻數(shù)據(jù)之后,就要進(jìn)行模數(shù)轉(zhuǎn)換,將模擬信號(hào)變成數(shù)字信號(hào)。其實(shí)現(xiàn)在很多都是攝像機(jī)(攝像頭)直接輸出數(shù)字信號(hào)。

信號(hào)輸出之后,還要進(jìn)行預(yù)處理,將RGB信號(hào)變成YUV信號(hào)。

YUV信號(hào)

前面我們介紹了RGB信號(hào),那什么是呢?

簡(jiǎn)單來(lái)說(shuō),YUV就是另外一種顏色數(shù)字化表示方式。

RGB信號(hào)不利于壓縮

視頻通信系統(tǒng)之所以要采用YUV,而不是RGB,主要是因?yàn)椤?/p>

在YUV這種方式里面,加入了亮度這一概念。

,人眼對(duì)色度的敏感程度要低于對(duì)亮度的敏感程度

在最近十年中,視頻工程師發(fā)現(xiàn),眼睛對(duì)于亮和暗的分辨要比對(duì)顏色的分辨更精細(xì)一些,也就是說(shuō)。

所以,工程師認(rèn)為,在我們的視頻存儲(chǔ)中,沒(méi)有必要存儲(chǔ)全部顏色信號(hào)。我們可以把更多帶寬留給黑—白信號(hào)(被稱作“亮度”),將稍少的帶寬留給彩色信號(hào)(被稱作“色度”)。于是,就有了YUV。

YUV里面的“Y”,就是亮度(Luma),“U”和“V”則是色度(Chroma)。

大家偶爾會(huì)見(jiàn)到的Y'CbCr,也稱為YUV,是YUV的壓縮版本,不同之處在于Y'CbCr用于數(shù)字圖像領(lǐng)域,YUV用于模擬信號(hào)領(lǐng)域,MPEG、DVD、攝像機(jī)中常說(shuō)的YUV其實(shí)就是Y'CbCr。

YUV(Y

YUV(Y'CbCr)是如何形成圖像的

YUV碼流的存儲(chǔ)格式其實(shí)與其采樣的方式密切相關(guān)。(采樣,就是捕捉數(shù)據(jù)。)

主流的采樣方式有三種,YUV4:4:4,YUV4:2:2,YUV4:2:0。

通常用的是YUV4:2:0的采樣方式

具體解釋起來(lái)有點(diǎn)繁瑣,大家只需記住,,能獲得1/2的壓縮率。

這些預(yù)處理做完之后,就是正式的編碼了。

前面我們說(shuō)了,編碼就是為了壓縮。要實(shí)現(xiàn)壓縮,就要設(shè)計(jì)各種算法,將視頻數(shù)據(jù)中的冗余信息去除。

當(dāng)你面對(duì)一張圖片,或者一段視頻的時(shí)候,你想一想,如果是你,你會(huì)如何進(jìn)行壓縮呢?

對(duì)于新垣女神,我一bit也不舍得壓縮…

對(duì)于新垣女神,我一bit也不舍得壓縮…

我覺(jué)得,首先你想到的,應(yīng)該是找規(guī)律。

是的,尋找像素之間的相關(guān)性,還有不同時(shí)間的圖像幀之間,它們的相關(guān)性。

舉個(gè)例子,如果一幅圖(1920×1080分辨率),全是紅色的,我有沒(méi)有必要說(shuō)2073600次[255,0,0]?我只要說(shuō)一次[255,0,0],然后再說(shuō)2073599次“同上”。

如果一段1分鐘的視頻,有十幾秒畫(huà)面是不動(dòng)的,或者,有80%的圖像面積,整個(gè)過(guò)程都是不變(不動(dòng))的。那么,是不是這塊存儲(chǔ)開(kāi)銷,就可以節(jié)約掉了?

以我們的簽名圖為例,只有部分元素在動(dòng),大部分是不動(dòng)的

以我們的簽名圖為例,只有部分元素在動(dòng),大部分是不動(dòng)的

是的,所謂編碼算法,就是尋找規(guī)律,構(gòu)建模型。誰(shuí)能找到更精準(zhǔn)的規(guī)律,建立更高效的模型,誰(shuí)就是厲害的算法。

通常來(lái)說(shuō),視頻里面的冗余信息包括:

視頻編碼技術(shù)優(yōu)先消除目標(biāo),就是空間冗余和時(shí)間冗余。

接下來(lái),小棗君就和大家介紹一下,究竟是采用什么樣的辦法,才能干掉它們。

以下內(nèi)容稍微有點(diǎn)高能,不過(guò)我相信大家耐心一些還是可以看懂的。

視頻是由不同的幀畫(huà)面連續(xù)播放形成的。

這些幀,主要分為三類,分別是I幀,B幀,P幀。

I幀,是自帶全部信息的獨(dú)立幀,是最完整的畫(huà)面(占用的空間最大),無(wú)需參考其它圖像便可獨(dú)立進(jìn)行解碼。視頻序列中的第一個(gè)幀,始終都是I幀。

P幀,“幀間預(yù)測(cè)編碼幀”,需要參考前面的I幀和/或P幀的不同部分,才能進(jìn)行編碼。P幀對(duì)前面的P和I參考幀有依賴性。但是,P幀壓縮率比較高,占用的空間較小。

P幀

P幀

B幀,“雙向預(yù)測(cè)編碼幀”,以前幀后幀作為參考幀。不僅參考前面,還參考后面的幀,所以,它的壓縮率最高,可以達(dá)到200:1。不過(guò),因?yàn)橐蕾嚭竺娴膸圆贿m合實(shí)時(shí)傳輸(例如視頻會(huì)議)。

B幀

B幀

通過(guò)對(duì)幀的分類處理,可以大幅壓縮視頻的大小。畢竟,要處理的對(duì)象,大幅減少了(從整個(gè)圖像,變成圖像中的一個(gè)區(qū)域)。

如果從視頻碼流中抓一個(gè)包,也可以看到I幀的信息,如下:

我們來(lái)通過(guò)一個(gè)例子看一下。

這有兩個(gè)幀:

好像是一樣的?

不對(duì),我做個(gè)GIF動(dòng)圖,就能看出來(lái),是不一樣的:

人在動(dòng),背景是沒(méi)有在動(dòng)的。

第一幀是I幀,第二幀是P幀。兩個(gè)幀之間的差值,就是如下:

也就是說(shuō),圖中的部分像素,進(jìn)行了移動(dòng)。移動(dòng)軌跡如下:

這個(gè),就是運(yùn)動(dòng)估計(jì)和補(bǔ)償。

當(dāng)然了,如果總是按照像素來(lái)算,數(shù)據(jù)量會(huì)比較大,所以,一般都是把圖像切割為不同的“塊(Block)”或“宏塊(MacroBlock)”,對(duì)它們進(jìn)行計(jì)算。一個(gè)宏塊一般為16像素×16像素。

將圖片切割為宏塊

將圖片切割為宏塊

好了,我來(lái)梳理一下。

對(duì)I幀的處理,是采用幀內(nèi)編碼方式,只利用本幀圖像內(nèi)的空間相關(guān)性。

對(duì)P幀的處理,采用幀間編碼(前向運(yùn)動(dòng)估計(jì)),同時(shí)利用空間和時(shí)間上的相關(guān)性。簡(jiǎn)單來(lái)說(shuō),采用運(yùn)動(dòng)補(bǔ)償(motion compensation)算法來(lái)去掉冗余信息。

需要特別注意,I幀(幀內(nèi)編碼),雖然只有空間相關(guān)性,但整個(gè)編碼過(guò)程也不簡(jiǎn)單。

如上圖所示,整個(gè)幀內(nèi)編碼,還要經(jīng)過(guò)DCT(離散余弦變換)、量化、編碼等多個(gè)過(guò)程。限于篇幅,加之較為復(fù)雜,今天就放棄解釋了。

如何衡量和評(píng)價(jià)編解碼的效果

那么,視頻經(jīng)過(guò)編碼解碼之后,呢?

一般來(lái)說(shuō),分為客觀評(píng)價(jià)和主觀評(píng)價(jià)。

客觀評(píng)價(jià),就是拿數(shù)字來(lái)說(shuō)話。例如計(jì)算“信噪比/峰值信噪比”。

搞通信的童鞋應(yīng)該對(duì)這個(gè)概念不會(huì)陌生吧?

信噪比的計(jì)算,我就不介紹了,丟個(gè)公式,有空可以自己慢慢研究...

除了客觀評(píng)價(jià),就是主觀評(píng)價(jià)了。

主觀評(píng)價(jià),就是用人的主觀感知直接測(cè)量,額,說(shuō)人話就是——“好不好看我說(shuō)了算”。

視頻編碼的國(guó)際標(biāo)準(zhǔn)

標(biāo)準(zhǔn)(Standard)

接下來(lái),我們?cè)僬f(shuō)說(shuō)。

任何技術(shù),都有標(biāo)準(zhǔn)。自從有視頻編碼以來(lái),就誕生過(guò)很多的視頻編碼標(biāo)準(zhǔn)。

提到視頻編碼標(biāo)準(zhǔn),先介紹幾個(gè)制定標(biāo)準(zhǔn)的組織。

首先,就是大名鼎鼎的ITU(國(guó)際電信聯(lián)盟)。

ITU是聯(lián)合國(guó)下屬的一個(gè)專門(mén)機(jī)構(gòu),其總部在瑞士的日內(nèi)瓦。

ITU下屬有三個(gè)部門(mén),分別是ITU-R(前身是國(guó)際無(wú)線電咨詢委員會(huì)CCIR)、ITU-T(前身是國(guó)際電報(bào)電話咨詢委員會(huì)CCITT)、ITU-D。

除了ITU之外,另外兩個(gè)和視頻編碼關(guān)系密切的組織,是ISO/IEC。

“國(guó)際標(biāo)準(zhǔn)化組織”

ISO大家都知道,就是推出ISO9001質(zhì)量認(rèn)證的那個(gè)。IEC,是“”。

MPEG,Moving Picture Expert Group(動(dòng)態(tài)圖像專家組)

1988年,ISO和IEC聯(lián)合成立了一個(gè)專家組,負(fù)責(zé)開(kāi)發(fā)電視圖像數(shù)據(jù)和聲音數(shù)據(jù)的編碼、解碼和它們的同步等標(biāo)準(zhǔn)。這個(gè)專家組,就是大名鼎鼎的。

三十多年以來(lái),世界上主流的視頻編碼標(biāo)準(zhǔn),基本上都是它們提出來(lái)的。

ITU提出了H.261、H.262、H.263、H.263+、H.263++,這些統(tǒng)稱為H.26X系列,主要應(yīng)用于實(shí)時(shí)視頻通信領(lǐng)域,如會(huì)議電視、可視電話等。

ISO/IEC提出了MPEG1、MPEG2、MPEG4、MPEG7、MPEG21,統(tǒng)稱為MPEG系列。

JVT(Joint Video Team,視頻聯(lián)合工作組)

ITU和ISO/IEC一開(kāi)始是各自搗鼓,后來(lái),兩邊成立了一個(gè)聯(lián)合小組,名叫。

JVT致力于新一代視頻編碼標(biāo)準(zhǔn)的制定,后來(lái)推出了包括H.264在內(nèi)的一系列標(biāo)準(zhǔn)。

壓縮率對(duì)比

壓縮率對(duì)比

視頻編碼標(biāo)準(zhǔn)的發(fā)展關(guān)系

視頻編碼標(biāo)準(zhǔn)的發(fā)展關(guān)系

大家特別注意一下上圖里面的HEVC,也就是現(xiàn)在風(fēng)頭正盛的H.265。

作為一種新編碼標(biāo)準(zhǔn),相比H.264有極大的性能提升,目前已經(jīng)成為最新視頻編碼系統(tǒng)的標(biāo)配。

封裝

最后,我再說(shuō)說(shuō)。

對(duì)于任何一部視頻來(lái)說(shuō),只有圖像,沒(méi)有聲音,肯定是不行的。所以,視頻編碼后,加上音頻編碼,要一起進(jìn)行封裝。

封裝,就是封裝格式,簡(jiǎn)單來(lái)說(shuō),就是將已經(jīng)編碼壓縮好的視頻軌和音頻軌按照一定的格式放到一個(gè)文件中。再通俗點(diǎn),視頻軌相當(dāng)于飯,而音頻軌相當(dāng)于菜,封裝格式就是一個(gè)飯盒,用來(lái)盛放飯菜的容器。

目前主要的視頻容器有如下:MPG、VOB、MP4、3GP、ASF、RMVB、WMV、MOV、Divx、MKV、FLV、TS/PS等。

封裝之后的視頻,就可以傳輸了,你也可以通過(guò)視頻播放器進(jìn)行解碼觀看。

最后的話

好啦!額滴神啊,終于介紹完了。。。

其實(shí),小棗君之所以要做視頻編碼這么一個(gè)看似和通信無(wú)關(guān)的“跨界”專題,是有原因的。

圖像識(shí)別

以前我上大學(xué)的時(shí)候,就有一門(mén)專業(yè)課程,叫,當(dāng)時(shí)是我們學(xué)校的王牌專業(yè),屬于計(jì)算機(jī)系。那個(gè)時(shí)候我并不明白,圖像識(shí)別到底是什么,為什么“畫(huà)畫(huà)”這種事情,會(huì)歸為“計(jì)算機(jī)類”。

后來(lái),我才明白,所謂的“圖像識(shí)別”,就是讓計(jì)算機(jī)看懂圖像。怎么樣才能看懂呢?就是把圖像數(shù)字化。

圖像變成了數(shù)字,計(jì)算機(jī)就能從中找到規(guī)律,也就能對(duì)它進(jìn)行分析(圖像識(shí)別)和學(xué)習(xí)(機(jī)器學(xué)習(xí))。

這么多年過(guò)去了,圖像識(shí)別取得了非常大的發(fā)展。我們漸漸發(fā)現(xiàn),攝像頭開(kāi)始“認(rèn)臉”了,停車場(chǎng)開(kāi)始“看懂”車牌了,生活開(kāi)始變得不一樣了。

更沒(méi)有想到的是,機(jī)器學(xué)習(xí)和AI人工智能也因此迅速崛起,開(kāi)始對(duì)傳統(tǒng)技術(shù)發(fā)起挑戰(zhàn)。

前段時(shí)間很火的谷歌“你畫(huà)我猜”程序,就是AI結(jié)合圖像識(shí)別技術(shù)的一個(gè)“人機(jī)交互”經(jīng)典案例。

前段時(shí)間很火的谷歌“你畫(huà)我猜”程序,就是結(jié)合的一個(gè)“人機(jī)交互”經(jīng)典案例。

運(yùn)算速度足夠快,存儲(chǔ)空間足夠大,學(xué)習(xí)數(shù)據(jù)足夠多,計(jì)算機(jī)可以海量分析圖像和視頻數(shù)據(jù),尋找其中的規(guī)律,構(gòu)建模型。如果這個(gè)AI足夠強(qiáng)大,就能做出反應(yīng)和處理。

在電影《鷹眼》里,也描繪到這樣的一個(gè)場(chǎng)景:強(qiáng)大的AI大腦,控制全球的視頻攝像頭,還有所有的計(jì)算機(jī)系統(tǒng)、武器系統(tǒng),可以隨時(shí)在全球范圍內(nèi),找到想找到的人,并且干掉他。電影《速度與激情6》里,也有類似的場(chǎng)景。

電影《鷹眼》,2008年

電影《鷹眼》,2008年

除此之外,還有3D視頻、VR/AR等,也都是和圖像視頻密切相關(guān)的應(yīng)用。

圖像和視頻識(shí)別是一個(gè)非常有前途的技術(shù)領(lǐng)域

總而言之,,也是AI人工智能的基礎(chǔ),值得深入進(jìn)行研究。我們一直在尋找的5G爆款應(yīng)用,也很可能與這個(gè)領(lǐng)域有關(guān)!

好啦,今天的內(nèi)容就到這里,感謝大家的耐心觀看!

下期再見(jiàn)!

關(guān)鍵詞: 人臉識(shí)別

 

網(wǎng)站介紹  |  版權(quán)說(shuō)明  |  聯(lián)系我們  |  網(wǎng)站地圖 

星際派備案號(hào):京ICP備2022016840號(hào)-16 營(yíng)業(yè)執(zhí)照公示信息版權(quán)所有 郵箱聯(lián)系:920 891 263@qq.com