• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            雙目視覺三維重建框架

            https://blog.csdn.net/u014652390/article/details/79139010
            一、圖像坐標(biāo):我想和世界坐標(biāo)談?wù)?A)

            玉米竭力用輕松具體的描述來(lái)講述雙目三維重建中的一些數(shù)學(xué)問(wèn)題。希望這樣的方式讓大家以一個(gè)輕松的心態(tài)閱讀玉米的《計(jì)算機(jī)視覺學(xué)習(xí)筆記》雙目視覺數(shù)學(xué)架構(gòu)系列博客。這個(gè)系列博客旨在捋順一下已標(biāo)定的雙目視覺中的數(shù)學(xué)主線。數(shù)學(xué)推導(dǎo)是有著幾分枯燥的,但奇妙的計(jì)算機(jī)視覺世界是建立在嚴(yán)密的數(shù)學(xué)架構(gòu)之上的。所以對(duì)數(shù)學(xué)框架的理解是理解雙目視覺的必由之路。不過(guò)請(qǐng)大家放心,接下來(lái)玉米會(huì)以盡量有趣,盡量更接地氣兒的方式,闡釋一下自己對(duì)雙目視覺數(shù)學(xué)或者說(shuō)是投影幾何的理解。

                   先來(lái)張《計(jì)算機(jī)視覺:算法與應(yīng)用》中的3D重建示例圖鎮(zhèn)樓!

                     好吧,現(xiàn)在言歸正傳,來(lái)看看幾何學(xué)上世界是怎樣投影進(jìn)攝相機(jī)里的吧!接下來(lái)讓我們來(lái)看一下本系列博客的第一“搏”:

            圖像坐標(biāo):我想和世界坐標(biāo)談?wù)?A)

            首先,我先解釋一下這個(gè)題目吧。題目的字面意義是說(shuō):圖像坐標(biāo)系想和世界坐標(biāo)系談?wù)劇_@里面包含著兩個(gè)問(wèn)題:

                     A、談話對(duì)象:視覺系統(tǒng)的三大坐標(biāo)系:世界坐標(biāo)系,攝像機(jī)坐標(biāo)系和圖像坐標(biāo)系。這是玉米在本文《我想和世界坐標(biāo)談?wù)?(A)》中想要和大家分享的內(nèi)容。其中主要包含:三大坐標(biāo)系的位置、作用和應(yīng)用場(chǎng)景。

                     B、談話方式:兩個(gè)不同的坐標(biāo)系之間該如何溝通呢?玉米將在《我想和世界坐標(biāo)談?wù)?B)》中和大家分享一下剛體變換和透視                 投影變換。連起兩個(gè)坐標(biāo)系之間這不在一個(gè)參考系的“世界上最遠(yuǎn)的距離”。

            好吧,下面讓我們來(lái)揭開三大坐標(biāo)系的廬山真面目。

                     上圖是三個(gè)坐標(biāo)的示意簡(jiǎn)圖,通過(guò)它大家可以對(duì)三個(gè)坐標(biāo)有一個(gè)直觀的認(rèn)識(shí)。下面來(lái)看看三個(gè)坐標(biāo)系的骨子里藏了什么。

                     世界坐標(biāo)系(XW,YW,ZW):其是目標(biāo)物體位置的參考系。除了無(wú)窮遠(yuǎn),世界坐標(biāo)可以根據(jù)運(yùn)算方便與否自由放置。在雙目視覺中世界坐標(biāo)系主要有三個(gè)用途:1、標(biāo)定時(shí)確定標(biāo)定物的位置2、作為雙目視覺的系統(tǒng)參考系,給出兩個(gè)攝像機(jī)相對(duì)世界坐標(biāo)系的關(guān)系,從而求出相機(jī)之間的相對(duì)關(guān)系3、作為重建得到三維坐標(biāo)的容器,盛放重建后的物體的三維坐標(biāo)。世界坐標(biāo)系是將看見中物體納入運(yùn)算的第一站。

                    攝像機(jī)坐標(biāo)系(XC,YC,ZC):其是攝像機(jī)站在自己角度上衡量的物體的坐標(biāo)系。攝像機(jī)坐標(biāo)系的原點(diǎn)在攝像機(jī)的光心上,z軸與攝像機(jī)光軸平行。它是與拍攝物體發(fā)生聯(lián)系的橋頭堡,世界坐標(biāo)系下的物體需先經(jīng)歷剛體變化轉(zhuǎn)到攝像機(jī)坐標(biāo)系(旋轉(zhuǎn)和平移),然后再和圖像坐標(biāo)系發(fā)生關(guān)系。它是圖像坐標(biāo)與世界坐標(biāo)之間發(fā)生關(guān)系的紐帶,溝通了世界上最遠(yuǎn)的距離。哈哈

                     圖像坐標(biāo)系(x,y)/(u,v)像素 :其是以攝像機(jī)拍攝的二維照片為基準(zhǔn)建立的坐標(biāo)系。用于指定物體在照片中的位置。玉米更傾向?qū)?x,y)稱為連續(xù)圖像坐標(biāo)或空間圖像坐標(biāo),將(u,v)稱為離散圖像坐標(biāo)系或者是像素圖像坐標(biāo)系(雖然這樣的稱呼未經(jīng)考證,但更能傳達(dá)二者的物理意義)。

                      (x,y)坐標(biāo)系的原點(diǎn)位于攝像機(jī)光軸與成像平面的焦點(diǎn)O’(u0,v0)上,單位為長(zhǎng)度單位(米)。(u,v)坐標(biāo)系的原點(diǎn)在圖片的左上角(其實(shí)是存儲(chǔ)器的首地址)如上圖所示,單位為數(shù)量單位(個(gè))。(x,y)主要用于表征物體從攝像機(jī)坐標(biāo)系向圖像坐標(biāo)系的透視投影關(guān)系。而(u,v)則是實(shí)實(shí)在在的,我們能從攝像機(jī)中得到的真實(shí)信息。

            (x,y)與(u,v)存在如下轉(zhuǎn)換關(guān)系:

                      dx代表x軸方向一個(gè)像素的寬度,dy代表y軸方向上一個(gè)像素的寬度。dx、dy為攝像機(jī)的內(nèi)參數(shù)。(u0,v0)稱為圖像平面的主點(diǎn),也是攝像機(jī)的內(nèi)參數(shù)。其實(shí)相當(dāng)于對(duì)x軸和y軸的離散化。其可以運(yùn)用齊次坐標(biāo),將上式寫成矩陣形式,如下:

             

                  (1)式運(yùn)用了齊次坐標(biāo),初學(xué)者可能會(huì)感到有些迷惑。大家會(huì)問(wèn):怎樣將普通坐標(biāo)轉(zhuǎn)換為齊次坐標(biāo)呢?齊次坐標(biāo)能帶來(lái)什么好處呢?

                     玉米在這里對(duì)齊次坐標(biāo)做一個(gè)通俗的解釋。此處只講怎么將普通坐標(biāo)改寫為齊次坐標(biāo)及為什么引入齊次坐標(biāo)。這里只做一個(gè)通俗但不太嚴(yán)謹(jǐn)?shù)谋硎觥Aη蠛?jiǎn)單明了。針對(duì)齊次坐標(biāo)的嚴(yán)謹(jǐn)?shù)募償?shù)學(xué)推導(dǎo),可參見“周興和版的《高等幾何》---1.3拓廣平面上的齊次坐標(biāo)”。玉米曾詳細(xì)讀過(guò)《高等幾何》這本書,但覺得離計(jì)算機(jī)視覺有點(diǎn)遠(yuǎn),是講純數(shù)學(xué)的投影關(guān)系的,較為生澀難懂。

                    齊次坐標(biāo)可以理解為在原有坐標(biāo)后面加一個(gè)“小尾巴”。將普通坐標(biāo)轉(zhuǎn)換為齊次坐標(biāo),通常就是在增加一個(gè)維度,這個(gè)維度上的數(shù)值為1。如圖像坐標(biāo)系(u,v)轉(zhuǎn)換為(u,v,1)一樣。對(duì)于無(wú)窮遠(yuǎn)點(diǎn),小尾巴為0。注意,給零向量增加小尾巴,數(shù)學(xué)上無(wú)意義。

            那么,為什么計(jì)算機(jī)視覺在坐標(biāo)運(yùn)算時(shí)要加上這個(gè)“小尾巴”呢?

                    玉米看來(lái)有兩點(diǎn)原因:

                     1、 將投影平面擴(kuò)展到無(wú)窮遠(yuǎn)點(diǎn)。如對(duì)消隱點(diǎn)(vanishing point)的描述。

                      2、 使得計(jì)算更加規(guī)整

                     如式(1)如果用普通坐標(biāo)來(lái)表達(dá)的話,會(huì)是下面的樣子:

            這樣的運(yùn)算形式會(huì)給后與運(yùn)算帶來(lái)一定的麻煩,所以齊次坐標(biāo)是一個(gè)更好的選擇。

                      齊次坐標(biāo)還有一個(gè)重要的性質(zhì),伸縮不變性。即:設(shè)齊次坐標(biāo)M,則αM=M。

            玉米才疏學(xué)淺,筆記中如有紕漏指出,希望大家不吝指出。玉米在這里拜謝啦!

            二、圖像坐標(biāo):我想和世界坐標(biāo)談?wù)?B)

                     玉米將在這篇博文中,對(duì)圖像坐標(biāo)與世界坐標(biāo)的這場(chǎng)對(duì)話中涉及的第二個(gè)問(wèn)題:談話方式,進(jìn)行總結(jié)。世界坐標(biāo)是怎樣變換進(jìn)攝像機(jī),投影成圖像坐標(biāo)的呢?

                    玉米做了一個(gè)簡(jiǎn)單的圖示,在這里做一個(gè)提綱。圖中顯示,世界坐標(biāo)系通過(guò)剛體變換到達(dá)攝像機(jī)坐標(biāo)系,然后攝像機(jī)坐標(biāo)系通過(guò)透視投影變換到達(dá)圖像坐標(biāo)系。可以看出,世界坐標(biāo)與圖像坐標(biāo)的關(guān)系建立在剛體變換和透視投影變換的基礎(chǔ)上。為了獎(jiǎng)勵(lì)剛體變和透視投影變換溝通了“世界上最遠(yuǎn)的距離”,玉米在圖上獎(jiǎng)勵(lì)了他們兩朵小紅花。哈哈

                    首先,讓我們來(lái)看一下剛體變換是如何將世界坐標(biāo)系與圖像坐標(biāo)系聯(lián)系起來(lái)的吧。這里,先對(duì)剛體變換做一個(gè)介紹:

                    剛體變換(regidbody motion):三維空間中, 當(dāng)物體不發(fā)生形變時(shí),對(duì)一個(gè)幾何物體作旋轉(zhuǎn), 平移運(yùn)動(dòng),稱之為剛體變換

            因?yàn)槭澜缱鴺?biāo)系和攝像機(jī)坐標(biāo)都是右手坐標(biāo)系,所以其不會(huì)發(fā)生形變。我們想把世界坐標(biāo)系下的坐標(biāo)轉(zhuǎn)換到攝像機(jī)坐標(biāo)下的坐標(biāo),如下圖所示,可以通過(guò)剛體變換的方式。空間中一個(gè)坐標(biāo)系,總可以通過(guò)剛體變換轉(zhuǎn)換到另外一個(gè)個(gè)坐標(biāo)系的。轉(zhuǎn)一轉(zhuǎn),走一走,就到另外一個(gè)坐標(biāo)系下了。以前可能是面朝大海,經(jīng)過(guò)平移旋轉(zhuǎn),最終可能只能面朝冰山了,哈哈

                     下面讓我來(lái)看一下,二者之間剛體變化的數(shù)學(xué)表達(dá)。

                     其中,XC代表攝像機(jī)坐標(biāo)系,X代表世界坐標(biāo)系。R代表旋轉(zhuǎn),T代表平移。R、T與攝像機(jī)無(wú)關(guān),所以稱這兩個(gè)參數(shù)為攝像機(jī)的外參數(shù)(extrinsic parameter)可以理解為兩個(gè)坐標(biāo)原點(diǎn)之間的距離,因其受x,y,z三個(gè)方向上的分量共同控制,所以其具有三個(gè)自由度。

                     R則為分別繞XYZ三軸旋轉(zhuǎn)的效果之和。如下面所示:

                     R=r1*r2*r3.其由三個(gè)方向的θ控制,故具有三個(gè)自由度。

               好了,剛體變換就講完了。大家應(yīng)該都了解,世界坐標(biāo)系到攝像機(jī)坐標(biāo)系之間的轉(zhuǎn)換過(guò)程了吧。

                      接下來(lái),讓我們看看攝像機(jī)坐標(biāo)下的坐標(biāo)如何投影到圖像坐標(biāo)系下,最終變?yōu)檎掌械囊粋€(gè)像素。這其中包含兩個(gè)過(guò)程:一是從攝像機(jī)坐標(biāo)到“空間圖像坐標(biāo)”(x,y)所發(fā)生的透視投影;二是從“連續(xù)圖像坐標(biāo)”到“離散圖像坐標(biāo)”(u,v)。后者我們已經(jīng)在第一篇博文中解釋過(guò)。所以在這里,主要介紹一下透視投影。

            透視投影(perspective projection): 用中心投影法將形體投射到投影面上,從而獲得的一種較為接近視覺效果的單面投影圖。有一點(diǎn)像皮影戲。它符合人們心理習(xí)慣,即離視點(diǎn)近的物體大,離視點(diǎn)遠(yuǎn)的物體小,不平行于成像平面的平行線會(huì)相交于消隱點(diǎn)(vanish point)。

                     啰嗦這么多,其實(shí)大家看看示意圖,看看公式,秒懂。

                     以圖中B(XB,YB)點(diǎn)為例,在小孔成像攝像機(jī)模型下(幾何分析的最常用模型)。這里的f為攝像機(jī)的焦距,其屬于攝像機(jī)的內(nèi)參數(shù)(intrinsic parameter)。其在成像平面上的投影點(diǎn)b(xb,yb)的坐標(biāo)利用簡(jiǎn)單的相似三角形比例關(guān)系很容易求出:

                     上面兩式也闡明了攝像機(jī)坐標(biāo)與圖像坐標(biāo)之間的透視投影關(guān)系。

            好吧,現(xiàn)在玉米已經(jīng)把圖像坐標(biāo)與世界坐標(biāo)之間的這場(chǎng)對(duì)話所需經(jīng)歷的三個(gè)波折的過(guò)程加以了解釋。即:剛體變換、透視投影、(x,y)換(u,v)(ps.這個(gè)在上一篇博文中講過(guò))。接下來(lái)玉米用一張圖把三個(gè)過(guò)程連接起來(lái)。實(shí)現(xiàn)從世界坐標(biāo)(X,Y,Z)到(u,v)之間的轉(zhuǎn)換。讓圖像坐標(biāo)與世界坐標(biāo)直接對(duì)話。

                     下圖中的轉(zhuǎn)換關(guān)系,都是用齊次坐標(biāo)表達(dá)的,大家會(huì)發(fā)現(xiàn)這樣的表達(dá)非常整潔。

                     其實(shí)這張圖顯示的過(guò)程還有一個(gè)名字:攝像機(jī)模型(camera model)。其實(shí)也就是攝像機(jī)的幾何模型了。

                     將三者相乘,可以把這三個(gè)過(guò)程和在一起,寫成一個(gè)矩陣:

                     P就是世界坐標(biāo)到圖像坐標(biāo)的直接聯(lián)系人,P就表示了一個(gè)投影相機(jī),有下面公式:

                     注意在表示齊次坐標(biāo)時(shí),需要在符號(hào)上面加個(gè)小帽子。除去齊次坐標(biāo)控制位P23P具有11個(gè)自由度

            20141102170636562

                    攝像機(jī)模型及其中涉及的坐標(biāo)系等,是弄清3D重建幾何框架的基礎(chǔ)。可以把它們視為基本運(yùn)算關(guān)系。后面對(duì)于三維重建幾何框架的推導(dǎo),都是要用到三個(gè)基本坐標(biāo)系和攝像機(jī)模型的。

                     到這里玉米就順利搭建起了圖像坐標(biāo)與世界坐標(biāo)間的這場(chǎng)對(duì)話。如有紕漏還請(qǐng)大家擔(dān)待,并指正!

            三、致敬“張正友標(biāo)定”

                     此處“張正友標(biāo)定”又稱“張氏標(biāo)定”,是指張正友教授于1998年提出的單平面棋盤格的攝像機(jī)標(biāo)定方法。張氏標(biāo)定法已經(jīng)作為工具箱或封裝好的函數(shù)被廣泛應(yīng)用。張氏標(biāo)定的原文為“A Flexible New Technique forCamera Calibration”。此文中所提到的方法,為相機(jī)標(biāo)定提供了很大便利,并且具有很高的精度。從此標(biāo)定可以不需要特殊的標(biāo)定物,只需要一張打印出來(lái)的棋盤格。So great! 這樣的方法讓人肅然起敬。所以玉米的這篇博客的題目是:致敬“張氏標(biāo)定”。

                     當(dāng)然,此博的內(nèi)容也是圍繞著“張氏標(biāo)定”進(jìn)行的,在這里,玉米主要介紹一下,“張氏標(biāo)定”的數(shù)學(xué)思路。因?yàn)闃?biāo)定在整個(gè)基于標(biāo)定攝像機(jī)的三維重建的幾何過(guò)程占有最重要最核心的地位。如下圖:

                     從圖中明顯可以看出,標(biāo)定得到的內(nèi)參、外參和畸變系數(shù),是雙目視覺進(jìn)行圖片矯正,攝像機(jī)校正和3D恢復(fù)的基礎(chǔ)。沒有好的標(biāo)定,雙目視覺系統(tǒng)就無(wú)法完成3D重建。

                    既然標(biāo)定對(duì)雙目視覺如此重要,我們有必要對(duì)數(shù)學(xué)的深層含義多加理解。以張氏標(biāo)定為例,讓我們挖開工具箱,看看其數(shù)學(xué)本質(zhì)吧。因?yàn)閺埥淌诘恼撐闹袑?duì)標(biāo)定方法的講述是循序漸進(jìn)的,所以玉米在這里將按照張教授論文中的順序,為大家講述一下,張氏標(biāo)定的脈絡(luò)。

            1、標(biāo)定平面到圖像平面的單應(yīng)性

                    因?yàn)閺埵蠘?biāo)定是一種基于平面棋盤格的標(biāo)定,所以想要搞懂張氏標(biāo)定,首先應(yīng)該從兩個(gè)平面的單應(yīng)性(homography)映射開始著手。

                    單應(yīng)性(homography):在計(jì)算機(jī)視覺中被定義為一個(gè)平面到另一個(gè)平面的投影映射。首先看一下,圖像平面與標(biāo)定物棋盤格平面的單應(yīng)性。

                    由上兩篇博文中講到的攝像機(jī)模型,肯容易得到:

                     其中m的齊次坐標(biāo)表示圖像平面的像素坐標(biāo)(u,v,1),M的齊次坐標(biāo)表示世界坐標(biāo)系的坐標(biāo)點(diǎn)(X,Y,Z,1)。A[R t]即是上面一篇博客推出的P。R表示旋轉(zhuǎn)矩陣、t表示平移矩陣、S表示尺度因子。A表示攝像機(jī)的內(nèi)參數(shù),具體表達(dá)式如下:

            α=f/dx,β=f/dy,因?yàn)橄袼夭皇且?guī)規(guī)矩矩的正方形,γ代表像素點(diǎn)在x,y方向上尺度的偏差。

                     這里還有一個(gè)“梗兒”,就是S。它只是為了方便運(yùn)算,對(duì)于齊次坐標(biāo),尺度因子不會(huì)改變坐標(biāo)值的。

            因?yàn)闃?biāo)定物是平面,所以我們可以把世界坐標(biāo)系構(gòu)造在Z=0的平面上。然后進(jìn)行單應(yīng)性計(jì)算。令Z=0可以將上式轉(zhuǎn)換為如下形式:

                     既然,此變化屬于單應(yīng)性變化。那么我們可以給A[r1 r2 t]一個(gè)名字:?jiǎn)螒?yīng)性矩陣。并記H= A[r1 r2 t]。

                     那么現(xiàn)在就有:

                     大家可以分析一下,H是一個(gè)三3*3的矩陣,并且有一個(gè)元素是作為齊次坐標(biāo)。因此,H有8個(gè)未知量待解。

            (x,y)作為標(biāo)定物的坐標(biāo),可以由設(shè)計(jì)者人為控制,是已知量。(u,v)是像素坐標(biāo),我們可以直接通過(guò)攝像機(jī)獲得。對(duì)于一組對(duì)應(yīng)的(x,y)-à(u,v)我們可以獲得兩組方程。

                    現(xiàn)在有8個(gè)未知量需要求解,所以我們至少需要八個(gè)方程。所以需要四個(gè)對(duì)應(yīng)點(diǎn)。四點(diǎn)即可算出,圖像平面到世界平面的單應(yīng)性矩陣H。

                    這也是張氏標(biāo)定采用四個(gè)角點(diǎn)的棋盤格作為標(biāo)定物的一個(gè)原因。

                    在這里,我們可以將單應(yīng)性矩陣寫成三個(gè)列向量的形式,即:

            2、利用約束條件求解內(nèi)參矩陣A

                    從上面可知,應(yīng)用4個(gè)點(diǎn)我們可以獲得單應(yīng)性矩陣H。但是,H是內(nèi)參陣和外參陣的合體。我們想要最終分別獲得內(nèi)參和外參。所以需要想個(gè)辦法,先把內(nèi)參求出來(lái)。然后外參也就隨之解出了。我們可以仔細(xì)的“觀摩”一下下面的式子。

                   從中可以得出下面兩個(gè)約束條件,這兩個(gè)約束條件都是圍繞著旋轉(zhuǎn)向量來(lái)的。

                   1、r1,r2正交 得:r1r2=0。這個(gè)很容易理解,因?yàn)閞1,r2分別是繞x,y軸旋轉(zhuǎn)的。應(yīng)用高中立體幾何中的兩垂直平面上(兩個(gè)旋轉(zhuǎn)向量分別位于y-z和x-z平面)直線的垂直關(guān)系即可輕松推出。

                    2、旋轉(zhuǎn)向量的模為1,即|r1|=|r2|=1。這個(gè)也很容易理解,因?yàn)樾D(zhuǎn)不改變尺度嘛。如果不信可以回到上一篇博客,找到個(gè)方向的旋轉(zhuǎn)矩陣化行列式算一下。

                    通過(guò)上面的式子可以將r1,r2代換為h1,h2與A的組合進(jìn)行表達(dá)。即       r1=h1A-1,r2=h2A-1.根據(jù)兩約束條件,可以得到下面兩個(gè)式子:

                    大家從上面兩個(gè)式子是不是看出一點(diǎn)端倪了。式子中,h1,h2是通過(guò)單應(yīng)性求解出來(lái)的那么未知量就僅僅剩下,內(nèi)參矩陣A了。內(nèi)參陣A包含5個(gè)參數(shù):α,β,u0,v0,γ。那么如果我們想完全解出這五個(gè)未知量,則需要3個(gè)單應(yīng)性矩陣。3個(gè)單應(yīng)性矩陣在2個(gè)約束下可以產(chǎn)生6個(gè)方程。這樣可以解出全部的五個(gè)內(nèi)參了。大家想一下,我們?cè)鯓硬拍塬@得三個(gè)不同的單應(yīng)性矩陣呢?答案就是,用三幅標(biāo)定物平面的照片。我們可以通過(guò)改變攝像機(jī)與標(biāo)定板間的相對(duì)位置來(lái)獲得三張不同的照片。(當(dāng)然也可以用兩張照片,但這樣的話就要舍棄掉一個(gè)內(nèi)參了γ=0)

                   到這里,大家應(yīng)該就明白我們?cè)趶埵蠘?biāo)定法時(shí)為什么要不斷變換標(biāo)定板的方位了吧。當(dāng)然這只是一個(gè)原因。第二個(gè)原因,玉米會(huì)在講極大似然時(shí)講到。

                   下面在對(duì)我們得到的方程做一些數(shù)學(xué)上的變化,這些變化都是簡(jiǎn)單的運(yùn)算變化了,相信大家動(dòng)動(dòng)筆,一算就可以算出。這些變化都是為了運(yùn)算方便的,所以也沒什么物理意義。

            首先令:

                    很容易發(fā)現(xiàn)B是一個(gè)對(duì)稱陣,所以B的有效元素只剩下六個(gè)(因?yàn)橛腥龑?duì)對(duì)稱的元素是相等的,所以只要解得下面的6個(gè)元素就可以得到完整的B了),讓這六個(gè)元素構(gòu)成向量b。

                    接下來(lái)在做一步純數(shù)學(xué)化簡(jiǎn):

                    可以計(jì)算得:

                     利用約束條件可以得到下面,方程組:

                      這個(gè)方程組的本質(zhì)和前面那兩個(gè)用h和A組成的約束條件方程組是一樣的。在此重復(fù)一遍解釋:如果我們想完全解出這五個(gè)未知量,則需要3個(gè)單應(yīng)性矩陣。3個(gè)單應(yīng)性矩陣在2個(gè)約束下可以產(chǎn)生6個(gè)方程。這樣可以解出全部的五個(gè)內(nèi)參了。大家想一下,我們?cè)鯓硬拍塬@得三個(gè)不同的單應(yīng)性矩陣呢?答案就是,用三幅標(biāo)定物平面的照片。我們可以通過(guò)改變攝像機(jī)與標(biāo)定板間的相對(duì)位置來(lái)獲得三張不同的照片。(當(dāng)然也可以用兩張照片,但這樣的話就要舍棄掉一個(gè)內(nèi)參了γ=0)

                   通過(guò)至少含一個(gè)棋盤格的三幅圖像,應(yīng)用上述公式我們就可以估算出B了。得到B后,我們通過(guò)cholesky分解 ,就可以輕松地得到攝像機(jī)的內(nèi)參陣A。

            3、基于內(nèi)參陣估算外參陣

                   通過(guò)上面的運(yùn)算,我們已經(jīng)獲得了攝像機(jī)的內(nèi)參陣。那么對(duì)于外參陣,我們很容易通過(guò)下面的公式解得:

                   對(duì)上面公式進(jìn)行化簡(jiǎn),可以得到:

                    至此,玉米已經(jīng)將張氏標(biāo)定的主體數(shù)學(xué)框架已經(jīng)講完了。介于篇幅關(guān)系(怕太長(zhǎng)大機(jī)會(huì)讀的昏昏欲睡,哈哈)。但其實(shí)我們做了這么多推導(dǎo),僅僅是為后面的極大似然參數(shù)估計(jì)提供初值。但當(dāng)然這個(gè)初值也是不可或缺的,因?yàn)闆]有這個(gè)初值,就無(wú)法估計(jì)出更為準(zhǔn)確的參數(shù)。玉米將張氏標(biāo)定中用于提高標(biāo)定精度的極大似然算法,放到下一篇博客中進(jìn)行講解。

            還是老話:玉米才疏學(xué)淺,講解之中難免有紕漏,請(qǐng)大家諒解,并指正。

            四、極大似然參數(shù)估計(jì)

            此篇博文,玉米將和大家分享一下“張氏標(biāo)定”除幾何推導(dǎo)外的另外一大精髓:參數(shù)估計(jì)。

                     張教授在大作“A Flexible New Technique for Camera Calibration”中的原話如下:” The above solution is obtained through minimizing an algebraic distancewhich is not physically meaningful. We can refine it through maximum likelihoodinference”.意思是:上面的幾何推導(dǎo)僅僅是純代數(shù)上的擬合,沒有物理意義。下面讓我們通過(guò)極大似然理論對(duì)得到的結(jié)果進(jìn)行改善。

                   順著張教授的意思,玉米先在這里為大家從概念上講述一下極大似然估計(jì)。

            極大似然估計(jì)是一種估計(jì)總體未知參數(shù)的方法。它主要用于點(diǎn)估計(jì)問(wèn)題。所謂點(diǎn)估計(jì)是指用一個(gè)估計(jì)量的觀測(cè)來(lái)估計(jì)未知參數(shù)的真值。說(shuō)穿了就一句話:就是在參數(shù)空間中選取使得樣本取得觀測(cè)值的概率最大的參數(shù)。

                   我們定義似然函數(shù):

                   總體分布為離散型的:(p是已知的分布律)

                    總體分布為連續(xù)性的:(f為概率密度函數(shù))

                    極大似然法就是在的可取范圍內(nèi),挑選出來(lái)的使L達(dá)到最大的未知參數(shù)的估計(jì)值

                     如果在內(nèi):,那么就稱為極大似然估計(jì)值。

            列了這么一大圈兒概念,估計(jì)大家看的都昏昏入睡了。玉米在這里用通俗點(diǎn)兒的方式解釋一下極大似然估計(jì):

                    對(duì)很多實(shí)驗(yàn),我們可以觀察到樣本,但影響樣本的參數(shù)卻是未知的。那我們就得對(duì)樣本進(jìn)行估計(jì)。既然我們要去估計(jì),那么就想要估計(jì)的準(zhǔn)。極大似然法就只在概率分布的觀念下,指導(dǎo)我們估計(jì)的更準(zhǔn)的方法。現(xiàn)實(shí)世界中,存在著一條普遍規(guī)律:與現(xiàn)實(shí)相差越遠(yuǎn)的概率越小。這就相當(dāng)于人群中,非主流總是比主流要少一樣,偏差大的總是占少數(shù)。所以,可能發(fā)生的概率越大就會(huì)越接近真實(shí)值。極大似然法就是應(yīng)用這種思想,認(rèn)為可能性最大的就是最優(yōu)的估計(jì)值。即極大似然估計(jì)值就是最接近真實(shí)值的參數(shù)值。

            那么,極大似然為什么有這么一個(gè)別致的名字呢?什么是似然呢?是因?yàn)楣烙?jì)值不是隨機(jī)變量,所以不能把它的可能性稱為概率,那么數(shù)學(xué)家們就想了這樣(likelihood)一個(gè)名字來(lái)代表可能性。

                   極大似然法的一些概念上的問(wèn)題玉米就講到這里了。下面然玉米帶這大家分析一個(gè)具體問(wèn)題:張教授在張氏標(biāo)定法中所用的極大似然估計(jì)。

                   首先來(lái)看一下,為什么標(biāo)定的內(nèi)外參數(shù)可以用極大似然法進(jìn)行估計(jì):

                   因?yàn)槲覀兪羌俣▓D像上的角點(diǎn)是被噪聲干擾的,且我們認(rèn)為這些噪聲是高斯噪聲。那么對(duì)于噪聲的幅度就是給觀測(cè)值造成的誤差。但高斯噪聲的概率密度我們是已知的,所以我們可以用前面所述的極大似然估計(jì)的思想去“猜”真值。

                   那么接下來(lái)我們就需要構(gòu)造一個(gè)似然函數(shù),然后尋找其最大值了。張教授在文章中直接略過(guò)推導(dǎo),直接給出了公式:

            說(shuō)當(dāng)此式取得最小值時(shí),就是參數(shù)的最大似然估計(jì)值。

                   玉米在這里為大家講一下自己的理解:

                   設(shè),角點(diǎn)附近的噪聲服從高斯分布

                   則:角點(diǎn)mij的樣本值服從如下,概率密度函數(shù):

                   現(xiàn)在構(gòu)造,似然函數(shù):

                    現(xiàn)在讓L取得最大值,則可令下式最小:

                    那么怎么令上面這個(gè)目標(biāo)函數(shù)達(dá)到最小值呢,張氏標(biāo)定法運(yùn)用了可以用來(lái)解決多參數(shù)非線性系統(tǒng)優(yōu)化問(wèn)題的Levenberg-Marquardt算法。對(duì)于該方法,詳細(xì)的介紹大家可以參照《The levenberg-marquardt algorithm, implementation andtheory》一文進(jìn)行深入了解。這里給出下載本文的鏈接:

            http://link.springer.com/chapter/10.1007%2FBFb0067700

                     那么張氏標(biāo)定法在不考慮鏡頭畸變的情況下的,獲取攝像機(jī)內(nèi)外參數(shù)的數(shù)理推導(dǎo)過(guò)程。玉米就為大家講到這里了。下面一篇博文,玉米會(huì)給大家分析一下,張氏標(biāo)定法是怎樣分析攝像機(jī)的非線性畸變的。

            還是老話:玉米才疏學(xué)淺,講解之中難免有紕漏,請(qǐng)大家諒解,并指正。

            六、張正友標(biāo)定法小結(jié)

                  這一博文,是玉米后補(bǔ)上的。因?yàn)橛X得前面用了三篇博文來(lái)描述張氏標(biāo)定法,略顯散亂。在這里總結(jié)一下,使條理清晰一點(diǎn)。另外關(guān)于張氏標(biāo)定所得參數(shù)也還有兩點(diǎn)需要澄清。下面這個(gè)總結(jié),其實(shí)也是在“A Flexible New Technique forCamera Calibration”中出現(xiàn)的。

            一、張氏標(biāo)定的過(guò)程:

                   1.      打印一張棋盤格,把它貼在一個(gè)平面上,作為標(biāo)定物。

                   2.      通過(guò)調(diào)整標(biāo)定物或攝像機(jī)的方向,為標(biāo)定物拍攝一些不同方向的照片。

                   3.      從照片中提取特征點(diǎn)(如角點(diǎn))。

                   4.      估算理想無(wú)畸變的情況下,五個(gè)內(nèi)參和所有外參。

                   5.      應(yīng)用最小二乘法估算。實(shí)際存在徑向畸變下的畸變系數(shù)。

                   6.      極大似然法,優(yōu)化估計(jì),提升估計(jì)精度。

                     通過(guò)這樣的過(guò)程,我們就獲得了具有高估計(jì)精度的五個(gè)內(nèi)參,三個(gè)外參和兩個(gè)畸變系數(shù)。利用這些信息,我們可以進(jìn)行畸變矯正、圖像校正和最終的三維信息恢復(fù)。

            二、以下是對(duì)于張氏標(biāo)定求得的內(nèi)參,需要注意的一點(diǎn):

                     通過(guò)張氏標(biāo)定,我們并不能得到:焦距(f)和像素的物理尺寸(sx,sy)兩個(gè)參數(shù)。因?yàn)槲覀冊(cè)谇蠼鈨?nèi)參陣A時(shí),求解出的是α和β。

            α=f/ sx,β= f/ sy 。分別代表焦距長(zhǎng)度上,x軸和y軸像素的個(gè)數(shù)。

                    雖然,沒有求得焦距,但這并不影響,我們?cè)谌S坐標(biāo)恢復(fù)時(shí),進(jìn)行三角運(yùn)算。因?yàn)楸藭r(shí),我們的計(jì)算中用到的也是α和β。

                   大家可能會(huì)有疑問(wèn),既然我們無(wú)法得到焦距(f)和像素的物理尺寸(sx,sy)兩個(gè)參數(shù)。那么在opencv中,調(diào)用的cvCalibrateCamera2時(shí)返回的參數(shù)中是包含焦距(f)的。Opencv的這個(gè)函數(shù)也是用了張氏標(biāo)定法。為什么可以得到f呢?

                   答案是這條opencv函數(shù)對(duì)內(nèi)參陣做了簡(jiǎn)化,其認(rèn)為γ=0即像素的物理尺寸(sx,sy)兩個(gè)參數(shù)相等。然后統(tǒng)一約掉物理尺寸s。得到的B陣如下:

                   這樣我們就可以解出f了。

                   張氏標(biāo)定的精確度可達(dá)到0.5個(gè)像素,這樣的指標(biāo)已經(jīng)可以滿足絕大多數(shù)的應(yīng)用了。所以如此簡(jiǎn)單的方法,得到了這么高的精度。這樣的方法是值得人們膜拜的。在此,在次向張正友教授致敬!

                   在此,玉米又對(duì)張氏標(biāo)定法進(jìn)行了一個(gè)總結(jié)。張氏標(biāo)定的原理分析就到此為止了。但是它的作用還會(huì)延續(xù)到下面兩篇博文中。

                   玉米才疏學(xué)淺,文中如有紕漏,請(qǐng)大家批評(píng)指正。

            七、立體標(biāo)定與立體校正

                    這篇博文中,讓玉米和大家一起了解一下,張氏標(biāo)定是怎樣過(guò)渡到立體標(biāo)定的?在這里主要以雙目立體視覺進(jìn)行分析。對(duì)于雙目立體視覺,我們有兩個(gè)攝像頭。它們就像人的一雙眼睛一樣,從不同的方向看世界。兩只眼睛中的圖像的視差,讓我們對(duì)世界有了三維的認(rèn)識(shí)。

                    那么,想要知道視差,首先應(yīng)該知道雙目視覺系統(tǒng)中兩個(gè)攝像頭之間的相對(duì)位置關(guān)系。我們可以通過(guò)同時(shí)對(duì)兩個(gè)攝像頭進(jìn)行標(biāo)定,分別得到二者相對(duì)同一坐標(biāo)系的旋轉(zhuǎn)矩陣和平移矩陣。獲得這兩個(gè)矩陣的過(guò)程,就是立體標(biāo)定的過(guò)程。也即是:從張氏標(biāo)定走向立體標(biāo)定!

                   兩攝像頭之間的旋轉(zhuǎn)矩陣和平移矩陣可以由下式求出:

                   其中,R為兩攝像頭間的旋轉(zhuǎn)矩陣,T為兩攝像頭間的平移矩陣。Rr為右攝像頭經(jīng)過(guò)張氏標(biāo)定得到的相對(duì)標(biāo)定物的旋轉(zhuǎn)矩陣,Tr為右攝像頭通過(guò)張氏標(biāo)定得到的相對(duì)標(biāo)定物的平移向量。Rl為左攝像頭經(jīng)過(guò)張氏標(biāo)定得到的相對(duì)相同標(biāo)定物的旋轉(zhuǎn)矩陣,Tl為左攝像頭經(jīng)過(guò)張氏標(biāo)定得到的相對(duì)相同標(biāo)定物的平移向量。

                  兩個(gè)式子是可以通過(guò)數(shù)學(xué)代換推導(dǎo)來(lái)的。但玉米覺得對(duì)這樣有明顯物理意義并且空間過(guò)程簡(jiǎn)單的計(jì)算式。物理上的空間想象,比純代數(shù)代換,要生動(dòng)的多。并且有利于大家揣摩整個(gè)物理過(guò)程。

                  在玉米眼里,這兩個(gè)式子是這樣的:

                  對(duì)于R,首先用T把左攝像機(jī)坐標(biāo)系平移到右攝像機(jī)坐標(biāo)系上(即兩坐標(biāo)系遠(yuǎn)點(diǎn)重合)。然后在同一參考系下的兩個(gè)旋轉(zhuǎn)矩陣相乘,表示世界坐標(biāo)先向右旋轉(zhuǎn)到Rr ,再向左旋轉(zhuǎn)Rl。那么兩次旋轉(zhuǎn)后得到的旋轉(zhuǎn),就是有攝像機(jī)旋轉(zhuǎn)到左攝像機(jī)所需的旋轉(zhuǎn)矩陣R。

                  對(duì)于T,那就更容易理解了,先用R對(duì)左坐標(biāo)系旋轉(zhuǎn)一下,把左右兩攝像機(jī)調(diào)成平行,然后直接平移向量相減,即得到。兩攝像機(jī)之間的平移向量T。

                  上面求得的R和T就是立體標(biāo)定得到的參數(shù)了。

                  那么運(yùn)用的立體標(biāo)定所得的參數(shù)了,下一步我們?cè)撟鍪裁茨兀看鸢甘牵毫Ⅲw校正。

                  在介紹立體校正的具體方法之前,讓我們來(lái)看一下,為什么要進(jìn)行立體校正?

                  因?yàn)楫?dāng)兩個(gè)圖像平面是完全共面行對(duì)準(zhǔn)時(shí),計(jì)算立體視差是最簡(jiǎn)單的。但是,在現(xiàn)實(shí)的雙目立體視覺系統(tǒng)中,是不存在完全的共面行對(duì)準(zhǔn)的兩個(gè)攝像機(jī)圖像平面的。所以我們要進(jìn)行立體校正。立體校正的目的就是,把實(shí)際中非共面行對(duì)準(zhǔn)的兩幅圖像,校正成共面行對(duì)準(zhǔn)。如下面示意圖所示。(共面行對(duì)準(zhǔn)是指:兩攝像機(jī)圖像平面在同一平面上,且同一點(diǎn)投影到兩個(gè)攝像機(jī)圖像平面時(shí),應(yīng)該在兩個(gè)像素坐標(biāo)系的同一行)

            有了上述鋪墊,下面讓玉米給大家陳述一下基于立體標(biāo)定所獲參數(shù)的立體校正的數(shù)學(xué)原理,或者說(shuō)是幾何原理。但玉米在這里,主要和大家分享一下,如此校正的物理意義。

                     立體校正應(yīng)該分兩步走:

                     1、 將兩個(gè)圖像平面拉回同一平面。

                     這一步,該怎么做呢?玉米相信,經(jīng)過(guò)這么多鋪墊,大家應(yīng)該早就心里有數(shù)了。這一步很簡(jiǎn)單。可以這樣:兩個(gè)平面在方向上            之間不是相差一個(gè)旋轉(zhuǎn)矩陣R嗎,那么我們讓兩個(gè)相機(jī)個(gè)旋轉(zhuǎn)一半,但需注意二者的旋轉(zhuǎn),應(yīng)該是反向的。如下式所示:

                     上面的這個(gè)公式是玉米根據(jù)物理意義自己總結(jié)的。r、r分別代表左攝像機(jī)和右攝像機(jī)為達(dá)到共面所需的旋轉(zhuǎn)矩陣。rl、rr程度             相同,但旋轉(zhuǎn)方向相反。左右相機(jī)分別經(jīng)歷了這樣的旋轉(zhuǎn)之后,二者就已經(jīng)共面了。大家應(yīng)該明白了吧?

                      2、 旋轉(zhuǎn)圖像使得同行對(duì)準(zhǔn)

                     玉米在這里先為大家展示一個(gè),校正成功的圖吧。

                              大家可以像小學(xué)時(shí)候?qū)懣磮D說(shuō)話作文一樣,觀察一下圖中校正前和校正后左右兩攝像機(jī)的圖像到底發(fā)生了什么本質(zhì)的變                化。

                              玉米的答案是:左右兩圖分別繞光軸作了旋轉(zhuǎn),旋轉(zhuǎn)過(guò)后兩攝像機(jī)的主點(diǎn)連線平行像素坐標(biāo)的行線。

                              玉米的答案也是自己對(duì)行對(duì)準(zhǔn)的理解,比較通俗。這與很多書上用極幾何術(shù)語(yǔ)描述的有些不同,大家可以思考一下,玉米           說(shuō)的有沒有道理。

                               好,既然已經(jīng)明確了,要達(dá)到行對(duì)準(zhǔn),圖像所需發(fā)生的變化。那么就讓我們用數(shù)學(xué)表達(dá)式來(lái)表達(dá)它們吧。

                      玉米畫了一個(gè)簡(jiǎn)單的示意圖,畫的丑大家不要見笑。

                      紅色的線表示的是校正后的行線,其是左右對(duì)準(zhǔn)的。大家可以看到,從原圖像的行線轉(zhuǎn)到校正后圖像的行線,左圖像轉(zhuǎn)動(dòng)了α,右圖像轉(zhuǎn)動(dòng)了θ。那么怎樣來(lái)確定兩個(gè)旋轉(zhuǎn)角度呢?

                       大家可以回憶一下,我們?cè)诒鞠盗胁┪闹械牡诙兄v述剛體變換時(shí),把旋轉(zhuǎn)矩陣按不同軸分解的方法。可以看做是沿光軸旋轉(zhuǎn),旋轉(zhuǎn)目的是與主點(diǎn)連線平行。先以左圖像為例:

                      那么我們?cè)O(shè)旋轉(zhuǎn)矩陣為Rh , 

                      則Rh可以表示為以歸一化T(平移向量):e1為旋轉(zhuǎn)的指針,則隨之e2為e1與光軸的叉積,e3為e2與e1的叉積:

                      大家可以進(jìn)一步算一下:

                      我們發(fā)現(xiàn),其實(shí)行對(duì)準(zhǔn)就是繞e3方向,轉(zhuǎn)了α。同樣的,對(duì)右圖就是轉(zhuǎn)了θ。

                      通過(guò)上面的推導(dǎo),我們就把立體標(biāo)定與立體校正中的數(shù)學(xué)思想理清楚了。其實(shí),立體匹配是有很多種方法的,玉米在里只是介紹了立體校正的基本原理。其他方法中,有一些可以不依賴標(biāo)定參數(shù),如果大家想要對(duì)立體校正進(jìn)行深入研究,大家可以搜索一些經(jīng)典論文進(jìn)行深入學(xué)習(xí)。如:A. Fusiello, E. Trucco, and A. Verri.寫的 Acompact algorithm for rectification of stereo pairs.等等

                     截止目前對(duì)于三維重建的所有準(zhǔn)備工作,都已完成。幾何框架也僅剩下最后一步:立體成像。(因?yàn)楸鞠盗胁┪闹唤榻B雙目視覺的幾何架構(gòu),所以跳過(guò)匹配不談)玉米在下一篇博文中將與大家分享一下,幾何脈絡(luò)的最終果實(shí):立體成像。這也是我們對(duì)于雙目視覺幾何框架推導(dǎo)和理解的最終目標(biāo)。

                     玉米才疏學(xué)淺,文中如有紕漏,請(qǐng)大家批評(píng)指正!

            八、走向三維

                    我們前面花了七篇博文做鋪墊,我們所做的一切努力都是為了最后的這一擊——立體成像。因?yàn)橛衩椎倪@個(gè)系列文章是對(duì)雙目視覺幾何框架的總結(jié)。此處跳過(guò)匹配,假設(shè)左右圖像點(diǎn)的完美匹配的。只看在幾何上,三維坐標(biāo)是如何被還原的。相對(duì)來(lái)說(shuō),最后的這一步,比前面是要輕松許多的,因?yàn)槲覀兦懊嬉呀?jīng)做了大量的工作。這些工作使得最后的這一步,由不可能稱為可能,由復(fù)雜變得簡(jiǎn)單,吧啦吧啦。好吧,閑話少說(shuō),讓我們一起來(lái)見證這一時(shí)刻吧。

                    此處我們按opencv中cvcalibratecamera2()函數(shù)得到的焦距f進(jìn)行三維坐標(biāo)的求解。

                    請(qǐng)大家看下面示意圖(莫怪,玉米的圖一向畫的丑):

                    根據(jù)最簡(jiǎn)單的相似三角形關(guān)系,我們就可以求出,物點(diǎn)坐標(biāo)(X,Y,Z)。

                    首先,

                     其中,s為像素的物理尺寸,d就是兩個(gè)攝像機(jī)間的視差,d=(uL-uR)s。

                    我們得到的這個(gè)三維坐標(biāo),相當(dāng)于是在右攝像機(jī)的攝像機(jī)坐標(biāo)系上的。

                   那么重建就是透視投影的逆過(guò)程,我們可以把這個(gè)過(guò)程表示成矩陣形式。我們定義Q為反投影矩陣。那么依照上式:

                    齊次坐標(biāo)形式的三維坐標(biāo)恢復(fù),矩陣形式如下:

                    至此,玉米的《計(jì)算機(jī)視覺學(xué)習(xí)筆記》雙目視覺幾何框架系列文章順利收尾。希望這八篇博文對(duì)大家,尤其是計(jì)算機(jī)視覺的初學(xué)者有所幫助。

                    在行文過(guò)程中,玉米引用了網(wǎng)絡(luò)上的一些圖片,但大多找不到出處,所以未給出引用表。如這些圖片的主人,發(fā)現(xiàn)了自己的圖片在這個(gè)博客上,請(qǐng)和玉米聯(lián)系,玉米會(huì)將引用出處,重新給出!

                   本系列博文中涉及的數(shù)學(xué)運(yùn)算頗多,玉米才疏學(xué)淺,中間若有理解上的錯(cuò)誤,懇請(qǐng)大家批評(píng)指正!

             原創(chuàng)地址:http://blog.csdn.net/onthewaysuccess/article/details/40709745

            posted on 2018-11-14 09:30 zmj 閱讀(818) 評(píng)論(0)  編輯 收藏 引用


            只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


            国产69精品久久久久777| 久久狠狠爱亚洲综合影院| 亚洲精品WWW久久久久久| 女同久久| 国产午夜福利精品久久2021| 国产成人无码精品久久久免费| 久久精品99无色码中文字幕| 国产A级毛片久久久精品毛片| 99久久综合国产精品二区| 久久91这里精品国产2020| 99精品久久精品| 欧美国产成人久久精品| 午夜精品久久久久久99热| 久久亚洲国产成人影院网站| 久久精品免费全国观看国产| 欧美一区二区精品久久| 性欧美大战久久久久久久久| 国产激情久久久久影院老熟女| 久久中文字幕人妻熟av女| 香蕉久久影院| 久久久久亚洲AV成人网| 欧洲人妻丰满av无码久久不卡 | 色悠久久久久久久综合网| 久久久久久亚洲AV无码专区| 一本色道久久综合亚洲精品| 久久精品国产精品亚洲| 精品九九久久国内精品| 久久97精品久久久久久久不卡| 伊人久久大香线蕉av一区| 国内精品久久久久影院亚洲| 久久国产精品免费一区二区三区| 狠狠色丁香婷综合久久| 99国产欧美精品久久久蜜芽 | 精品久久久中文字幕人妻| 国产精品无码久久四虎| 久久福利片| 久久中文精品无码中文字幕| 国产精品久久久久久久久鸭| 无码人妻久久一区二区三区免费丨| 偷偷做久久久久网站| 久久精品国产亚洲av麻豆蜜芽|