專利名稱:根據(jù)一3d對象的2d投影再生和處理該對象的設(shè)備和方法
技術(shù)領(lǐng)域:
本發(fā)明是關(guān)于處理3D對象的2D投影的設(shè)備和方法,特別是關(guān)于作2D投影圖象的幾何分析的設(shè)備和方法。
發(fā)明的背景描述處理3D對象的2D投影的現(xiàn)存技術(shù)方法的狀態(tài)的發(fā)表及其相關(guān)技術(shù)在后面引用的參考文獻(xiàn)中有說明。
本說明中所提到所有發(fā)表物和這里引用的發(fā)表的揭示內(nèi)容均在此被采用作為參考。
發(fā)明概述本發(fā)明是試圖提供用于從一3D景象的第一和第二參考視圖產(chǎn)生一3D景象的新視圖的圖象變換設(shè)備和方法。
本發(fā)明還試圖提供為由一3D景象的第一、第二和第三視圖產(chǎn)生其3D景象的3D表示的再現(xiàn)方法和設(shè)備。
本發(fā)明還試圖提供為處理3D對象的2D投影的改善的設(shè)備和方法。
本發(fā)明另外還試圖提供用于根據(jù)對一3D對象的三個視圖定義的三線性張量作此3D對象的圖象變換的方法。
本發(fā)明還試圖提供由一3D景象的第一和第二參考視圖產(chǎn)生此3D景象一新視圖的圖象變換方法,此方法包括提供一3D景象的第一和第二參考視圖,利用分別有關(guān)第一參考視圖、第二參考視圖和新視圖的幾何信息來產(chǎn)生一表明第一、第二和新視圖之間的幾何關(guān)系的三線性張量,及以根據(jù)第一和第二參考視圖內(nèi)的第一和第二對應(yīng)位置以及三線性張量計算多個的各自對應(yīng)于此不同的第一和第二對應(yīng)位置的新視圖位置來產(chǎn)生此新視圖。
此提供步驟可包括例如在第一和第二參考圖象中進(jìn)行掃描。
此利用步驟可包含例如分別在第一參考視圖、第二參考視圖和新視圖中產(chǎn)生第一、第二和第三位置組的步驟。
這樣,按照本發(fā)明一優(yōu)選實施例而提供有用于由一3D景象的第一和第二參考視圖產(chǎn)生其新視圖的圖象變換方法,此方法包含提供一3D景象的第一和第二參考視圖,利用各自有關(guān)第一參考視圖、第二參考視圖和新視圖的幾何信息來產(chǎn)生表明第一、第二和新視圖之間的幾何關(guān)系的三線性張量,和以根據(jù)第一和第二參考視圖中的第一和第二對應(yīng)位置及三線性張量計算多個各自對應(yīng)于不同的第一和第二對應(yīng)位置的新視圖位置來產(chǎn)生此新視圖。
而按照本發(fā)明一優(yōu)選實施例,此提供步驟包括在第一和第二參考圖象中進(jìn)行掃描。
而且按照本發(fā)明一優(yōu)選實施例,此利用步驟包含分別在第一參考視圖、第二參考視圖和新視圖中生成一組第一、第二和第三對應(yīng)位置的步驟。
按照本發(fā)明一優(yōu)選實施例還提供從一3D景象的第一、第二和第三視圖生成此3D景象的3D表示的3D景象再現(xiàn)方法,此方法包含提供一3D景象的第一、第二和第三視圖,利用有關(guān)此第一、第二和第三視圖的幾何信息產(chǎn)生表明第一、第二和第三視圖之間的幾何關(guān)系的三線性張量,和由此三線性張量產(chǎn)生此3D景象的3D表示。
而按照本發(fā)明一優(yōu)選實施例,此產(chǎn)生一3D表示的步驟包含由此三線性張量計算第一和第二視圖的表射偏振幾何表示,和由此表射偏振幾何顯示生成此3D表示。
按照本發(fā)明的另一優(yōu)選實施例還提供圖象變換設(shè)備,用于由一3D景象的第一和第二參考視圖產(chǎn)生此3D景象的新視圖,此設(shè)備包含用于提供一3D景象的第一和第二參考視圖的設(shè)備,用于利用各自有關(guān)第一參考視圖、第二參考視圖和新視圖的幾何信息來產(chǎn)生表明第一、第二和新視圖之間的幾何關(guān)系的三線性張量的三線性張量發(fā)生器,和通過基于第一和第二參考視圖中的第一和第二對應(yīng)位置和三線性張量計算多個各自對應(yīng)于此不同的第一和第二對應(yīng)的新視圖位置產(chǎn)生該新視圖的新視圖發(fā)生器。
按照本發(fā)明的另一優(yōu)選實施例還提供用于由一3D景象的第一、第二和第三視圖產(chǎn)生此3D景象的3D表示的3D景象再現(xiàn)設(shè)備,此設(shè)備包含用于提供一3D景象的第一、第二和第三視圖的設(shè)備,利用有關(guān)第一、第二和第三視圖的幾何信息產(chǎn)生表明第一、第二和第三視圖之間的幾何關(guān)系的三線性張量的三線性張量發(fā)生器,和用于由三線性張量產(chǎn)生3D景象的3D表示的3D景象表示發(fā)生器。
按照本發(fā)明的另一優(yōu)選實施例還提供由一3D對象的至少一個而最好為三個2D投影來產(chǎn)生關(guān)于此3D對象的信息的方法,此方法包含提供一3D對象的至少一個而最好三個2D投影,產(chǎn)生一以aijk=vi′bjk-vj″aik(i,j,k=1,2,3)定義的數(shù)矩陣,其中aij和bjk分別為矩陣A和B的元,vi′和vj″分別為向量v′和v″的元素,而這些矩陣和向量一起描述此3D對象的三個視圖的攝象機(jī)參數(shù),并利用此矩陣生成有關(guān)此3D對象的信息。
按照本發(fā)明一優(yōu)選實施例還提供一由一3D對象的具有n個對應(yīng)點Pi和Pi′(i=1…n)的第一和第二現(xiàn)有視圖產(chǎn)生此3D對象的一新視圖的方法,此方法包含產(chǎn)生一張量aijk和將點Pi和Pi′(i=1…n)的值插入到三線性公式,由此來提取表示新視圖中的位置的x″、y″值,和根據(jù)插入步驟的結(jié)果產(chǎn)生新的視圖。
按照本發(fā)明一優(yōu)選實施例還提供由一3D對象的至少一個而最好三個2D投影再現(xiàn)此3D對象的方法,此方法包括提供一3D對象的至少一個和最好三個2D投影,產(chǎn)生由αijk=Vi′bjk-Vj″aik(i,j,k=1,2,3)表述的數(shù)的陣列,其中aij和bik分別為矩陣A和B的元及Vi′和Vi″為向量v′和v″的元素,而這些矩陣和向量一起說明此3D對象的三個視圖的攝象機(jī)參數(shù),將陣列置換成與3D空間內(nèi)的三個對應(yīng)平面相關(guān)連的三個單應(yīng)性矩陣,和利用此三個單應(yīng)性矩陣再現(xiàn)3D對象。
按照本發(fā)明一優(yōu)選實施例還提供一視覺識別方法,包含提供一3D對象的三個視圖間相互間存在三線性關(guān)系的三個透視圖,和利用視圖之間的三線性關(guān)系通過對準(zhǔn)來進(jìn)行視覺識別。
按照本發(fā)明一優(yōu)選實施例此方法還包含對此3D對象作再投影。
按照本發(fā)明一優(yōu)選實施例,有關(guān)3D對象的信息還包含3D對象的再現(xiàn)。
另外,按照本發(fā)明一優(yōu)選實施例,有關(guān)3D對象的信息包含至少一個不再現(xiàn)3D對象而產(chǎn)生3D對象的新視圖。
而按照本發(fā)明一優(yōu)選實施例,此至少一個和最好三個的2D投影包含至少一個航攝照片。
按照本發(fā)明一優(yōu)選實施例,此至少一個和最好三個2D投影還包含至少一個衛(wèi)星照片。
而按照本發(fā)明一優(yōu)選實施例,有關(guān)3D對象的信息包括3D對象的至少一個座標(biāo)。
而按照本發(fā)明一優(yōu)選實施例,3D對象包括一宇宙空間對象。
按照本發(fā)明一優(yōu)選實施例,此3D對象還包含一如輪船的大的對象。
按照本發(fā)明一優(yōu)選實施例,3D對象還包括不實在的對象。
按照本發(fā)明一優(yōu)選實施例,還提供由一3D對象的至少一個和最好三個2D投影產(chǎn)生有關(guān)此3D對象的信息的設(shè)備,此設(shè)備包含用于提供一3D對象的至少一個和最好三個2D投影的設(shè)備,一陣列發(fā)生器用于生成一以αijk=Vi′bjk-Vj″aik(i,j,k=1,2,3)表述的數(shù)的陣列,其中aij和bjk分別為矩陣A和B的元及Vi和Vi″分別為向量V′和V″的元素,而這些矩陣和向量一起描述此3D對象的三個視圖,和一利用此陣列產(chǎn)生有關(guān)3D對象的信息的陣列分析器。
按照本發(fā)明的一優(yōu)選實施例,還提供用于由一3D對象的具有n個對應(yīng)點Pi和Pi′(i=1…n)的第一和第二現(xiàn)有視圖產(chǎn)生此3D對象的一個新視圖的設(shè)備,此設(shè)備包含用于產(chǎn)生一張量αijk的設(shè)備,和用于將點Pi和Pi′(i=1…n)插入到三線性公式,由此來提取表示新視圖中位置的X″,Y″值,和根據(jù)此插入步驟的結(jié)果產(chǎn)生新視圖的設(shè)備。
按照本發(fā)明一優(yōu)選實施例還提供由一3D對象的至少一個和最好三個2D投影再現(xiàn)此3D對象的設(shè)備,此設(shè)備包含提供一3D對象的至少一個和最好三個2D投影的設(shè)備,一陣列發(fā)生器用于生成一以αijk=vi′bjk-vj″aik(i,j,k=1,2,3),表述的數(shù)的陣列,其中aij和bjk分別為矩陣A和B的元及Vi和Vj″分別為向量V′和V″的元素,而這些矩陣和向量一起說明此3D對象三個視圖的攝象機(jī)參數(shù),一將此陣列置換為與3D空間中三個對應(yīng)平面相關(guān)連的三個單應(yīng)性矩陣的陣列變換器,和進(jìn)行利用此三個單應(yīng)性矩陣來再現(xiàn)此3D對應(yīng)操作的3D對象再現(xiàn)器。
按照本發(fā)明一優(yōu)選實施例還提供視覺識別設(shè)備,包含有用于提供一3D對象的相互間存在三線性關(guān)系的三個透視圖的設(shè)備,和用于利用視圖間的三線性關(guān)系通過對準(zhǔn)來進(jìn)行視覺識別的設(shè)備。
而按照本發(fā)明一優(yōu)選實施例,執(zhí)行上述方法的至少一個結(jié)果被采用來進(jìn)行下述應(yīng)用中的至少一個由航空和衛(wèi)星攝影繪制地圖及宇宙空間和船裝配場座標(biāo)測量,生產(chǎn)部件的座標(biāo)測量(CMM),生產(chǎn)部件的自動光學(xué)檢測,無人操縱單元對準(zhǔn),無人操縱軌跡識別,3D自動操縱反饋,景象的3D模擬,對象的3D模擬,反相工程,和3D數(shù)字化。
用于識別的代數(shù)運算過程下面將參照
圖1-5來作說明。
附圖的簡要說明結(jié)合附圖,從下面更詳細(xì)的說明中將理解本發(fā)明。
圖1表示在有噪音的情況下表射偏振交叉方法的性能與三線性函數(shù)方法的性能之間比較的2個示圖,其中點線表示表射偏振交叉法,而實線表示三線性函數(shù)法;
圖2表示2個模型三維景物的視圖及第三重投影視圖;圖3為利用三線性結(jié)果的重投影示圖;圖4為利用表射偏振線的交叉的重投影示圖;圖5為利用視圖線性組合方法的重投影的示意圖;圖6為根據(jù)本發(fā)明一優(yōu)選實施例構(gòu)造和運行的3D景物再現(xiàn)設(shè)備的簡化的功能模塊圖,其中該設(shè)備用于從一3D景物的至少三個視圖生成該3D景物的3D表示;圖7為根據(jù)本發(fā)明一優(yōu)選實施例運行的一優(yōu)選3D景物再現(xiàn)方法的簡化流程圖,其中該方法用于圖6的設(shè)備;圖8為根據(jù)本發(fā)明一優(yōu)選實施例構(gòu)造和運行的圖象變換設(shè)備的簡化的功能模塊圖,該設(shè)備用于從一3D景物的至少2個參考視圖生成該3D視圖的一新視圖;圖9為根據(jù)本發(fā)明一優(yōu)選實施例運行的一優(yōu)選圖象變換方法的簡化的流程圖,該方法用于圖8的設(shè)備;圖10為也示于圖2中的鞋的3D再現(xiàn)的示意圖;圖11為用于確保零件質(zhì)量的優(yōu)選方法和設(shè)備的說明的簡化方塊圖;及圖12為用于產(chǎn)生數(shù)字地圖的優(yōu)化方法和設(shè)備的簡化方塊圖。
在此還附有助于理解本發(fā)明優(yōu)選實施例的附件,即附件A圖6所示的三線性計算單元50及表射偏振幾何生成單元60的優(yōu)選操作的“C”語言的表列;及附件B根據(jù)本發(fā)明的一優(yōu)選實施例構(gòu)造和運行的3D再現(xiàn)設(shè)備的優(yōu)選軟件操作的表列。
優(yōu)選實施例的詳細(xì)說明一針孔照相機(jī),如35mm靜物攝影機(jī)或攝象機(jī),產(chǎn)生被觀測的三維(3D)世界的二維(2D)投影。所得圖象可按幾何和光度標(biāo)準(zhǔn)加以分析。幾何標(biāo)準(zhǔn)是指在3D中特征細(xì)節(jié)(點,線)的位置與它們各自在2D圖象中的位置之間的幾何關(guān)系。光度標(biāo)準(zhǔn)是指景象與圖象中的亮度(象素的灰度值)之間的輻射度(表面的反射特征,照亮景物的光源的光譜特性等)關(guān)系。
3D世界被模擬化成一群點,2D世界也是如此。換言之,人們辨認(rèn)圖象中對應(yīng)于3D中點特征的點特征。在此二組點之間存在著幾何關(guān)系。當(dāng)攝象機(jī)在3D中運動時人們獲得同一3D世界的(亦即相同的3D點群的)更多的圖象,而相關(guān)的問題就在于對應(yīng)的2D圖象點組與3D點組之間的幾何關(guān)系。換句話說,如果Pi表明一組3D點,而pi,pi′,pi″為三組(在三個圖象中)被安排成帶有同一附標(biāo)i的點對應(yīng)于同一3D點Pi的2D點的話,則這組圖象即單獨地揭示大量此3D組的信息。
這里有二個要關(guān)心的問題(i)為恢復(fù)3D點的位置(再現(xiàn))哪些特征必須在2D圖象中加以測定(多少點跨越多少圖象);(ii)已知圖象對應(yīng)關(guān)系,能否合成新的視圖(圖象變換問題)而無須明確重現(xiàn)對象。本發(fā)明即為處理這兩個問題。
3D至2D的總體內(nèi)容是Computer Vision(計算機(jī)視覺)中的一活躍范圍(運動結(jié)構(gòu)和主體觀測),并且是攝影測繪工程中的唯一工具(由航空和衛(wèi)星照片描制地圖,宇宙空間和船塢裝配場地中的座標(biāo)測定等)。
3D點與2D點之間的關(guān)系可被表示成一3×4變換矩陣p≈MP式中p=(x,y,1)T表示齊性座標(biāo)中的2D點(亦即圖象平面為2D投影面),其中x,y為圖象中點的位置的水平和垂直分量(相對于某任意的原點,例如圖象平面的幾何中心);p由一4-向量表示,這是指將對象空間看成為被包圍在三維的投影空間內(nèi)。矩陣M為3×4,代表攝象機(jī)參數(shù)(例如,以MQ=0定義的向量Q為攝象機(jī)的投影中心-所有光線的會聚點)。符號≈是指按比例相等。
因為是將圖象和對象置入投影空間內(nèi)(這就是說這些可經(jīng)受剛性的運動和能被伸展及剪切)所以能將對象空間進(jìn)行變換來使得與第一視圖相關(guān)連的攝象機(jī)變換成為[I,O],其中I為識別矩陣。對于三個視圖,有
p=[I,O]Pp′≈[A,υ′]Pp″≈[B,υ″]P式中P=(x,y,l,k)T,圖象點為p=(x,y,1)T,p′=(x′,y′,1)T和p″=(x″,y″,1)T。應(yīng)指出,在圖象中測量的是p、p′、p″的位置,P的位置(即K的值)是未知數(shù)。A和B是3×3的矩陣(相互不是獨立的),而v′、v″為共同描述三個視圖的攝象機(jī)參數(shù)的3-向量。應(yīng)指出,攝象機(jī)參數(shù)A、B、v′、v″是未知的。換句話說,給出三個帶有對應(yīng)的點pi,pi′,pi″(i=1…n)的視圖,就存在一組數(shù)Ki,和參數(shù)A、B、v′、v″使得在上述等式對于所有i均成立。
I.三線性張量以下式描述的27數(shù)字陣列αijk=vi′bjk-vj″aik]]>i,j,k=1,2,3式中ars、brs為A,B的元素,而vr′、vr″為v′、v″的元素,該陣列被稱之為“三線性張量”。這些數(shù)字對3D和2D世界的特定投影表示均是不變的,亦即它們是此三視圖所固有的(這是張量的普遍特性之一,它們不取決于為表示所選擇的依據(jù))。
應(yīng)指出,陣列αijk提供作許多應(yīng)用的基礎(chǔ)。下面將說明由圖象測量值p、p′、p″產(chǎn)生陣列的優(yōu)選方法。A.由圖象測量值恢復(fù)αijk一適當(dāng)?shù)娜龜?shù)組p,p′,p″滿足多個三線性關(guān)系。第一標(biāo)注以固定某些下標(biāo)而改變其他來區(qū)別向量和矩陣。例如,αijk是一組標(biāo)量,αij是一由9個向量組成的組(K變化而i,j維持固定),αi是一由3個矩陣組成的組(α1…,α2…和α3…)等等。
對一給定的順序(即不置換視圖)具有9個三線性函數(shù),以4個線性地獨立的公式的組出現(xiàn)。這些公式的系數(shù)為陣列αijk的元素。例如以下4公式即是三個視圖的線性獨立的可變函數(shù)x″α13T.p-x″x′α33T.p+x′α31T.p-α11T.p=0,]]>y″α13T.p-y″x′α33T.p+x′α32T.p-α12T.p=0,]]>x″α23T.p-x″y′α33T.p+y′α31T.p-α21T.p=0,]]>y″α23T.p-y″y′α33T.p+y′α32T.p-α22T.p=0.]]>其于的函數(shù)在這里提出的等式5-11中說明。
由于每一對應(yīng)的三個值組p,p′,p″提供四個線性獨立的等式,所以七個跨越三視圖的對應(yīng)點唯一地確定(按比例)張量αijk。
注1這一點的意思就是,如果要識別7個跨越三個視圖的對應(yīng)點的三組值-例如說對象是一人的面孔而跟蹤跨越三視圖的鼻棱其在第一視圖中的位置表示為(x,y),在第二視圖中的位置表示為(x′,y′)和第三視圖中鼻的位置為(x″,y″)-則每一這種三組值即提供所試圖獲得的27個參數(shù)的4個線性獨立的等式。這樣即得到大于足夠求解αijk需要的28個等式。
注2為線性系統(tǒng)求解可有許多方法,特別是在提供的等式多于未知數(shù)時(亦即在給出多于7個對應(yīng)的三組值時),例如最小二乘方技術(shù),和為在最小二乘方技術(shù)中消除外層的增強(qiáng)法。
II.秩4約束跨越多于3個視圖的張量連接給出一組m>3的視圖,則整個視組圖的各個3視圖子集的三線性張量不是不獨立的,而事實上是相互作線性相關(guān)的。這種關(guān)系下面將稱之“秩4約束”。
這里將三視圖的張量安排為一標(biāo)以G的9×3矩陣中的張量,其中列j=1,2,3含有元素α1,j1,α1,j,2,……α3,j,3。
假定將任一組m視圖安排成為ψ1,ψ2,ψj,j=3……m??紤]視圖<ψ1,ψ2,ψj>的m-2張量并使對應(yīng)G矩陣被標(biāo)以Gj。則Gj矩陣對-9×3(m-2)矩陣的鏈接不管m如何均有秩4(通常,如果Gj矩陣是獨立的,鏈接本該是較小維次,即當(dāng)m≥5時為9)。
秩4約束意味著鏈接矩陣四個最大的主要元素表示視圖ψ1和ψ2之間的幾何結(jié)構(gòu)在某種程度上為靜態(tài)最佳狀態(tài)。A.應(yīng)用1圖象變換例如二個視圖帶有對應(yīng)點pi,pi′,i=1,…n,希望生成此同一對象的新的視圖。已知張量aijk,將pi,pi′值插入三線性公式以提取x″,y″的值,而不管獲得αijk的方式。
例如只要知道7點的pi″(如i=1…7)的位置就可得到張量αijk。然后對于各個第8點就能由p,p′對和此張量來求得p″。B.應(yīng)用2再現(xiàn)三視圖的張量或m>3視圖的鏈接矩陣的四個最大的基本元素(見段II)可被用來恢復(fù)二視圖之間的表射偏振幾何關(guān)系,并由此被用來再現(xiàn)景象的3D模型。
假定Ej=αij為3個3×3矩陣,亦即Ej=α1,j,1,α1,j,2,…α3,j,3。這一將27數(shù)字陣列變成為三個矩陣的特定置換將產(chǎn)生下列結(jié)果此三矩陣E1、E2、E3為與3D空間中某三個平面相關(guān)連的投影變換(單應(yīng)性矩陣)。
這就是說,存在有空間中這樣的三個平面πj,即如果p與π1(例如)為共面的而p,p′為第一2視圖中的圖象位置,則E1p≈p′。對j=2,3也同樣。
第一二視圖間的“基本矩陣”F(或攝影測量文獻(xiàn)中所采用的“共面性約束”)滿足EjTF+FTEj=0 j=1,2,3一個用于求解F而提供線性系統(tǒng)等式的方程。
同樣,m>3的鏈接矩陣的四個最大基本元素(第II部分)可被用于如下面所述求解F。假定Ak(k=1…4)為此鏈接矩陣的四個最大基本元素,每一個被安排在一3×3矩陣中(行向)。則AkTF+FTAk=0]]>k=1,2,3,4這提供由m>3視圖線性求取F的靜態(tài)最佳方法。
“表射偏振”點v′可由方程FTv′=0或直接由張量如下這樣求取三個矩陣E1、E2、E3中的每二個矩陣的相應(yīng)列的交叉乘積提供一表射偏振線,即一與v′相一致的線。同樣,如果以a1、a2、a3標(biāo)示一個E矩陣的列和以b1、b2、b3標(biāo)示另一E矩陣的列,則ai×bj-bj×aj即為一表射偏振線(i≠j)。綜合張量即得到18個其交點定義表射偏振v′的表射偏程線。此交點可采用例如最小二乘方法來求得。
同樣,此表射偏振點v′可如下述由A1…A4,四個最大基本元素鏈接矩陣來求取。假定a1、a2、a3為矩陣A1的列,b1、b2、b3為A2的列,則ai×bj-bj×aj為一表射偏振線,i≠j,而ai×bi提供另一組的三表射偏振線。由這樣來選擇四個矩陣A1…A4中的二個,就得到提供為解v′的冗余等式組的24個表射偏程線。
此3D景物的投影模型遵循F,而v′(例如3×4矩陣[(v′)F,v′])是由第二視圖的3D座標(biāo)到圖象座標(biāo)的攝象機(jī)變換。換句話說,對第一和第二視圖各自的每一對匹配點p,p′均具有p′≅[v′]Fp+kv′,]]>這樣,座標(biāo)向量[x,y,l,k]即提供一景象的3D(投影)模型。
注1置換αi…也生成三個其他平面的三個單應(yīng)性矩陣W1,W2,W3。單應(yīng)性矩陣由最先的二第三視圖得到,即對于來自與W1相關(guān)的平面共面的P的p,p″的W1p≈p″。從而與矩陣E1、E2、E3的應(yīng)用相似,能獲取與第一和第三視圖之間的表射偏振幾何條件相關(guān)的基本矩陣F″和表射偏振點v″。實現(xiàn)跨越3視圖的圖象的對應(yīng)性。
由2D成象來處理3D景象中的一個重要步驟是就近取得跨越視圖的可靠的(僅可能密集的)匹配點組?,F(xiàn)有技術(shù)的當(dāng)前狀態(tài)是采用二視圖的圖象灰度間的相關(guān)技術(shù)連同幾何圖形信息,如表射偏振幾何結(jié)構(gòu)。
采用張量可以將一致性方法延伸來同時利用三個視圖而無須假定攝象機(jī)定標(biāo)。給定一組初始的跨越三個視圖的對應(yīng)點就得到此三線性張量。然后,此三線性張量提供用于采用相關(guān)方法來準(zhǔn)確地定位匹配點的制約。這可按如下完成。
假定E1、E2、E3標(biāo)明張量的設(shè)置a.j.和W1、W2、W3標(biāo)明張量的設(shè)置ai..。首先將所有三個圖象對準(zhǔn)使得匹配點之間的位移僅僅只沿著表射偏振線。這按如下來完成。
假定E=∑jpjEj,這里系數(shù)pj為對第一和第二圖象中各自的所有初始匹配點pk,pk′的線性最小二乘方條件Epk≈pk′的解。同樣,假定W=∑iμiWi,這里系數(shù)μi為對第一和第三圖象中各自的所有初始匹配點pk、pk″的線性最小二乘方條件Wpk≈pk″的解。以變換E-1“變形”圖象二和以變換W-1“變形”圖象三的處理產(chǎn)生二個標(biāo)以2′和3′的新圖象,從而使得圖象1,2′間的匹配點沿著表射偏振線,圖象1,3′間的匹配點沿著表射偏振線。
表射偏振線可由張量推導(dǎo)得,如這里所介紹的(優(yōu)選實施例的詳細(xì)說明中的節(jié)IIB)。假定W′和W″分別為1,2′和1,3′之間的表射偏振線的方向向量。因此,如果p=(x,y),p′=(x′,y′),p″=(x″,y″)分別為圖象1,2′,3′中的匹配點,則對于某些系數(shù)α,β,p′=p+αW′及p″=βW″。應(yīng)指出,W′、W″、α、β為隨位置(x,y)改變的量。
這里表明的三線性等式(3)-(6)提供對系數(shù)α、β的幾何條件約束,亦即對α的每一任意值,β值即被唯一地確定,或反之。為了取得α,β兩者,如下所述利用1,2′,3′的圖象亮度。
系數(shù)α,β滿足“恒定亮度方程”α(Ix,Iy)Tω′+It12′=0]]>β(Ix,Iy)Tω″+It13′=0]]>這里(Ix,Iy)是第一圖象中位置p=(x,y)處的梯度向量,It12′是圖象1,2′間的時間導(dǎo)數(shù),和It13′為圖象1,3′的時間導(dǎo)數(shù)(所有導(dǎo)數(shù)均為離散近似)。由這里提出的三線性方程(3)-(6)可得到f(α,β)=0,這里函數(shù)f( )的系數(shù)為張量的基元。由此而取得對α和β的最小二乘方解,滿足幾何條件和光度測定雙方的約束。
此整個的過程可按拉普拉斯金字塔(Laplacian Pyramid)分層次地進(jìn)行,如J.R.Bergen和R Hingorani的“基于運動的層次幀速率變換”(Technical report,David Sarnoff Research Center,1990)中所描述的。
現(xiàn)在參看圖6,它是按照本發(fā)明一優(yōu)選實施例構(gòu)造和運行的3D景象重現(xiàn)設(shè)備的簡化功能方框圖,此設(shè)備的運行是由一3D景象的至少三個視圖產(chǎn)生此3D景象的3D表示。
圖6的設(shè)備包含為由至少3個相應(yīng)的觀察點提供一3D景象、即對象的至少3個相應(yīng)的觀察點提供一3D景物、即對象的至少3個數(shù)字圖象的設(shè)備,例如一由3個不同觀察點運行的CCD攝象機(jī)10,或者如一可以是機(jī)載的電影攝影機(jī)20結(jié)合一象Zeiss PS-1那樣的用來作將由電影攝影機(jī)20所產(chǎn)生的圖象數(shù)字化運行的掃描器30。
此至少3個數(shù)字視圖被饋送到匹配點搜索器40,它由此3個數(shù)字視圖識別至少7個而最好是多個匹配點的三組值。來自不同的視圖的“匹配點”為對應(yīng)于真實的3D世界中一單個位置的點(地點位置)。這些點例如說可以是作人工識別的。對于航空攝影可以采用市場供應(yīng)的匹配點軟件,例如執(zhí)行相應(yīng)功能的Inpho(Stuttgart)提供的Match-T程序包。
求取匹配點的普通方法在Wang,H.和Brady,J.M.的“棱角檢測一些新的結(jié)果”(IEEE colloquium Digest of System Aspects of Machine Perception and vision”,Londone 1992,pp.1.1-1.4)中有介紹。
三線性張量計算單元50接收此匹配點三值組并計算表示三個視圖之間的幾何參數(shù)關(guān)系的三線性張量。
然后此三線性張量被用來產(chǎn)生3D景象的3D表示。按照本發(fā)明一實施例,此三線性張量由一表射偏振幾何關(guān)系生成單元60利用來計算此三視圖中二個的表射偏振幾何表述。接著,3D表示產(chǎn)生單元70按單元60輸出的表射偏振表述產(chǎn)生景象、即對象的3D表示,如下述文獻(xiàn)中詳細(xì)描述的a.Fangeras,O.D.“利用未作標(biāo)定的立體設(shè)備能在三維空間看到什么?”,Proceedings of the EuropeanConfernce on computer vision,pp.563-578,Santa Margherita Ligure,Italy,June 1992。
b.Hartley,R.等“由未作標(biāo)定的攝象機(jī)得的立體效果”,Proceedings IEEE Conf.on Computer Vision and Pattern Recognition,761-764,Champaign,IL,June 1992。
c.Shashua,A.“由未標(biāo)定圖象得的投影結(jié)構(gòu)由運動和識別得的結(jié)構(gòu)”,IEEE Transactions on PAMI,16(8)778-790,1994。
單元50和60的優(yōu)選實現(xiàn)方案在附錄A中以“C”計算機(jī)語言加以描述。單元50的優(yōu)選實現(xiàn)方案由附錄A的P1直至P4末尾中說明。單元60的優(yōu)選實現(xiàn)方案則在附錄A中由P4末尾到P8中部說明。有助于理解上述材料的子程序和統(tǒng)計過程列于附錄A的P8以下。
包含有表示3D景象、即對象的至少一部分或一個方面的信息的3D表示可由一激光計算機(jī)打印機(jī)用來產(chǎn)生該對象(景象)的一新的視圖。或者,通常的CAD(計算機(jī)輔助設(shè)計)軟件與普通繪圖機(jī)相結(jié)合也可被用來產(chǎn)生對象(景象)的新的視圖。CAD軟件還可在質(zhì)量保障應(yīng)用中用于比較2個CAD文件。
現(xiàn)在來參看圖7說明一優(yōu)選3D景象再現(xiàn)方法的簡化流程圖,按照本發(fā)明一優(yōu)選實施例運行的這一方法有助于與圖6的設(shè)備相結(jié)合。圖7總體上是足以說明自身的。如果景象(對象)的3個視圖是由一數(shù)字案卷取得或者是由例如一數(shù)字?jǐn)z象機(jī)產(chǎn)生的,它們就可以是數(shù)字式的。如果它們不是數(shù)字的,就可對它們進(jìn)行掃描或者進(jìn)行數(shù)字化。
任何合適的一般的或其他格式均可被采用。例如Silicon Graphics′s Inventor格式一開始就可被用于3D表示。此Inventor格式可被變換成Postsript以便打印3D表示的一新視圖。
如所示,景象的3D表示可用于進(jìn)行廣泛范圍的活動中,例如景象、即對象的3D測量,如由打印輸出來生成景象(對象)的新視圖,和質(zhì)量保證比較,后者是將所生成的對象(景象)的3D表示利用一普通方法與所希的對象(景象)或其所希望的3D表示進(jìn)行比較。
現(xiàn)在參看按照本發(fā)明一優(yōu)選實施例構(gòu)成和運行的圖象變換設(shè)備的簡化功能方框圖的圖8,該設(shè)備作由一3D景象的至少二參考視圖生成此3D景象的新視圖的運行。圖8的設(shè)備與圖6的設(shè)備類似。但圖8中一3D景象的新視圖是直接僅由其至少二個參考視圖產(chǎn)生的,最好無需中間產(chǎn)生一3D表示。
在圖8中,有關(guān)此二參考視圖和所希望的新視圖的幾何信息被用來產(chǎn)生表示三個視圖之間的幾何關(guān)系的三線性張量。一般,可例如人工地識別此新視圖中至少7個三值組的位置,分別對應(yīng)于至少二參考視圖的每一個中的7個位置。通常至少某些有關(guān)此新視圖的信息是可利用的。例如,如果希望根據(jù)相同地區(qū)的至少二新的基礎(chǔ)視圖更新一GIS(地理信息系統(tǒng))的年前的視圖的話。一般可能識別對應(yīng)于該二個參考視圖中的7個位置并被認(rèn)為依然存在于此年前視圖的即將被產(chǎn)生的當(dāng)前型式中的此年前視圖中的至少7個位置。
此新視圖一般由根據(jù)所述第一和第二參考視圖中的第一和第二相應(yīng)位置和所述三線性張量分別計算多個各自對應(yīng)于不同的所述第一和第二相應(yīng)位置的新視圖位置來產(chǎn)生。例如,匹配點搜索器140可由此二參考視圖產(chǎn)生多對的匹配點,例如說1000對。對于最先的7對,用戶可人工地指明此新型視圖中的7個匹配點。
一旦由三線性張量計算單元150生成三線性張量后,就可將匹配點對8-1000的座標(biāo)插入此三線性張量,如圖9中所示,以便生成此新視圖中的匹配點8-1000的座標(biāo)。
這樣生成的新視圖可被例如與一年前的同一視圖進(jìn)行比較,來辨別這一年的過程內(nèi)該景象中所發(fā)生的差異。
現(xiàn)在參看說明按照本發(fā)明一優(yōu)選實施例運行的優(yōu)選圖象變換方法的簡化流程的圖9,此方法可用于與圖8的設(shè)備相結(jié)合。圖9通常是自說明性的。
在這里所介紹的任一實施例中,如果提供有多于3個的視圖,可對每三個視圖計算“中間”張量。然后可根據(jù)這些“中間”張量間的關(guān)系計算一具有代表性的張量。
圖10為圖2中也曾作圖解的鞋的3D再現(xiàn)的圖示。圖10是由求得匹配點和再現(xiàn)它們的3D位置所生成的。接著將座標(biāo)用CAD軟件處理來生成圖10中所示的表面。
圖11為說明作工作質(zhì)量保證的優(yōu)選方法和設(shè)備的簡化方框圖。圖11包含一3CCD攝象機(jī)210的陣列200,這些攝象機(jī)均對準(zhǔn)一單個位置由此來生成該位置的三個透視圖。這些攝象機(jī)被裝附到一機(jī)器人臂212,因而能按照來自控制器224的適當(dāng)指令作相對于沿著傳送帶220到達(dá)的工件214的運動。
當(dāng)一工件進(jìn)入CCD攝象機(jī)210的視野時,傳送帶通常會作暫停來使得基本上整個的工件表面區(qū)域均能由攝象機(jī)210成象??刂破?24通過機(jī)器人臂212圍繞對象移動攝象機(jī)陣列200,以使得一般幾乎整個表面區(qū)域均被成象。例如可將攝象機(jī)陣列200圍繞對象移動通過10個不同的位置,而在每一個位置3個CCD攝象機(jī)中的每一個均對工件攝象。所采用位置的數(shù)量取決于工件的復(fù)雜性。
這一過程由三個相應(yīng)透視圖生成多個三值組圖象,每一三值組圖象包含有該工件同一部分的三個數(shù)字圖象。對各個圖象三值組,可根據(jù)已知的機(jī)器人臂的位置和采用手-眼定標(biāo)來計算陣列200的和每一攝象機(jī)210的對應(yīng)位置。
各圖象三值組由可能類似于圖6的單元40、50、60、70和90的單元240、250、260、270和290分別進(jìn)行處理。
由CAD S/W290按各個圖象三值組(各取樣位置)所產(chǎn)生的CAD模型信息被存貯在適當(dāng)?shù)拇尜A器300中。一計算單元310用來將多個對應(yīng)于多個CCD攝象機(jī)陣列200的位置的取樣地點匯集進(jìn)一單一的座標(biāo)系統(tǒng)。所需的座標(biāo)變換由將確定CCD攝象機(jī)陣列的運動的反變換來進(jìn)行計算。
計算單元320將單元310的輸出與一參考CAD模型進(jìn)行比較計算其間的差。這些差在計算單元330中與可接受的容差相比較。
圖11的設(shè)備也適應(yīng)于作反向工程或CAD(計算機(jī)輔助設(shè)計)中的3D數(shù)字化應(yīng)用。
圖12為說明為生成數(shù)字地形圖的優(yōu)選方法和設(shè)備的簡化方框圖,例如為了更新都市地圖,為檢查非法建筑,為提供汽車導(dǎo)航系統(tǒng)服務(wù),或者甚至為制作諸如集成電路等的微觀對象的圖形。
機(jī)載CCD攝象機(jī)334飛行越過希望對其產(chǎn)生數(shù)字地形圖的景象。此攝象機(jī)334由三個相應(yīng)的透視圖來生成此景象的3個數(shù)字圖象。此3個圖象由可能類似于圖6的單元40、50、60和70的340、350、360和370進(jìn)行處理。
由一表面插補(bǔ)單元380對3D顯示生成單元370的輸出進(jìn)行一表面插補(bǔ)處置。一適宜的表面插補(bǔ)方法在Grimson,W.E.L.的“視覺表面插補(bǔ)的計算理論”(Proc of the Royal Soc.of London B.298,pp.395-427,1982)中有介紹。
最后由一正射照片生成單元390從表面插補(bǔ)單元380的輸出去除透視失真,而得到一正射象片(平面地物圖)。單元390的適當(dāng)?shù)倪\行方法在Slama,C.C.的“攝影測繪手則”(Amercan Society ofPhotogrammetry,1980)中有描述。
本發(fā)明還有助于作3D對象的顯現(xiàn),特別是對于娛樂、動畫或教育上的應(yīng)用。象圖11的陣列200那樣的攝象機(jī)陳列圍繞一待加以顯現(xiàn)的對象旋轉(zhuǎn)而基本上將希望顯示給用戶的整個表面區(qū)域成象。例如攝象機(jī)可在圍繞該對象的200個位置的每一個處對該對象成象。
于是可生成不是上述200個位置處的合成圖象。用戶可利用遙控操縱桿來指明所希望的位置。本發(fā)明的設(shè)備可被用來為該位置生成一合成圖象。
普通的駕駛模擬游戲采用合成背景,但本發(fā)明可被用來提供帶有真實背景的駕駛模擬游戲。為此,使至少3個最好5-10個攝象機(jī)的陣列在所希望的景象中運動以使得此攝象機(jī)陣列能由至少3個而最好更多些的不同透視圖俘獲基本上整個的景象。例如,此景象可由攝象機(jī)陣列的接近1000個位置中的每一個來俘獲。然后按照本發(fā)明產(chǎn)生新的視圖來適應(yīng)用戶例如以一控制桿指明新視圖的需要。
現(xiàn)在根據(jù)一篇將在《IEEE,Transactions on PAMI》上公開的標(biāo)題為“用于識別的代數(shù)函數(shù)”的文獻(xiàn)說明有助于識別的代數(shù)函數(shù)。
用于識別的代數(shù)函數(shù)I.導(dǎo)言建立有關(guān)一3D景象的三個透視圖之間的代數(shù)關(guān)系的通常結(jié)果和論證其通過對準(zhǔn)對視覺識別的應(yīng)用。一般表明,一景象的任何三個透視圖能滿足圖象座標(biāo)的一對三線性函數(shù)。在極限情況中,當(dāng)所有三個視圖均為正射的是,這些函數(shù)就成為線性的并減化到[38]所揭示的形式。利用此三線性結(jié)果就可處理一對象的視圖(例如由二模型視圖生成新視圖)而無需恢復(fù)景象結(jié)構(gòu)(量度的或非量度的),攝象機(jī)變換,或者甚至表射偏振幾何參數(shù)。而且,三線性函數(shù)可依靠線性方法7點的最小結(jié)構(gòu)來求取。后者被證明是為對將一3D景象重新投影到對應(yīng)于二參考視圖之間的點的給定的任一新視圖上的問題的通用線性解所需的最小結(jié)構(gòu)上的新的下邊界。前面的解依靠恢復(fù)表射偏振幾何參數(shù),這又需要對一線性解的8點的最小結(jié)構(gòu)。
中心結(jié)果包含在Theorem(定理)1、2和3中。第一定理說明,由未標(biāo)定的針孔攝象機(jī)得到的一固定的3D對象的各種視圖ψ滿足分類關(guān)系F(ψ,ψ1,ψ2)=0,其中ψ1、ψ2為對象的二個任意視圖,F(xiàn)具有一特殊的三線性形式。F的系數(shù)可線性地求得無須首先建立對象或攝象機(jī)運動的表射偏振幾何關(guān)系的3D結(jié)構(gòu)。為證明Theoreml所需的輔助定理可能自身是重要的,因為它們建立平面投影變換間的某些規(guī)則并導(dǎo)入新的視圖不變量(Lemma4)。
Theorem2針對以最經(jīng)濟(jì)的方式獲取三線性函數(shù)的系數(shù)的問題。已表明在三個視圖之間的所有可能的三線性函數(shù)中,最多存在四個線性獨立的這種函數(shù)。結(jié)果,這些函數(shù)的系數(shù)可由三個視圖之間的7個對應(yīng)點線性地得到。
Theorem3是Theorem1顯然的推論但含有重大的實用特性。已表明如果由并行投影得到視圖ψ1、ψ2,則F簡化到一特殊的雙線性形式,或者相當(dāng)?shù)?,任何透視圖ψ都可由二正射視圖的有理線性函數(shù)得到。簡化到雙線性形式意味著如果被存貯在存貯器中的二參考視圖(模型視圖)為正射的就有可能采用較簡單的識別方法。
這些結(jié)果可能有數(shù)個應(yīng)用(在節(jié)VI中討論),但在整個這一說明中著重的一個是用于通過配準(zhǔn)作3D對象的識別任務(wù)。作識別的配準(zhǔn)方法([37,16]及其中的參考文獻(xiàn))是依據(jù)這樣的結(jié)果,即經(jīng)受3D剛性仿射或投影變換的對象的同樣等級的視圖(不計自身的閉塞)的俘獲可借助存貯對象的3D模型,或者僅僅依靠存貯對象的至少二任意的“模型”視圖一假定模型視圖的對應(yīng)問題可在一定程度上得到解決(參看[27,5,33])。識別期間,新輸入視圖與一特定候選對象的模型視圖之間少量的對應(yīng)點就足以將模型“再投影”到新觀察位置上。如此被再投影的圖象成功地與輸入圖象匹配即完成識別。這種利用有限數(shù)量的對應(yīng)點由一組模型視圖預(yù)測一新視圖的問題被稱之為再投影。
此再投影問題原則上可通過形狀和攝象機(jī)運動的3D重現(xiàn)來處理。這包含為求取剛性攝象機(jī)運動參數(shù)和量度形狀由運動方法得的經(jīng)典結(jié)構(gòu)[36,18,35,14,15]和為求取非量度結(jié)構(gòu)的較近代的方法,即假定對象經(jīng)受3D仿射或投影變換,或同等地,攝象機(jī)未經(jīng)標(biāo)定[17,25,39,10,13,30]。用于透視圖的經(jīng)典方法在圖象測量中的誤差情況,窄的視野,和內(nèi)部攝象機(jī)標(biāo)定方面不穩(wěn)定是已經(jīng)公知的[3,9,12],因此,對于再投影的目的多半未得到實際上的應(yīng)用??傮w觀念上的非量度方法還沒有對真實圖象作完全的測試,但到目前為止所建議的方法依賴于首先求取表射偏振幾何參數(shù)-一當(dāng)存在噪聲時其不穩(wěn)定也是公知的過程。
也已看到,表射偏振幾何參數(shù)獨自就足以依靠表射偏振線的相交[24,6,8,26,23,11]利用三視圖之間的至少8個對應(yīng)點來實現(xiàn)再投影。但這只有在三攝象機(jī)的中心是非共線的-除非這些中心遠(yuǎn)不是雙線性否則會導(dǎo)致數(shù)量的不穩(wěn)定性-才可能,而且三焦點平面上的任一對象點也不能被再投影。而且,在采用非量度再現(xiàn)方法時,獲得表射偏振幾何參數(shù)即使在利用數(shù)十個對應(yīng)點而在現(xiàn)有技術(shù)方法的狀態(tài)下充其量也不過是一靈敏的過程(見第V的詳述和以模擬的與真實的圖象進(jìn)行的比較分析)。
因此,為了穩(wěn)定目的,值得進(jìn)行探索為實現(xiàn)再投影的更直接的手段。例如,替代形狀和不變量的再現(xiàn),可以建立單獨以圖象座標(biāo)的函數(shù)表示的視圖之間的直接關(guān)聯(lián),稱之為“視圖的代數(shù)函數(shù)”。[38]已得到正射情況下的這樣的結(jié)果。它表明一對象的任意三個正射視圖滿足對應(yīng)圖象座標(biāo)的線性函數(shù)-在此將僅表明更大組的代數(shù)函數(shù)的限制情況,它們一般均具有三線性形式。利用這些函數(shù)就可以處理對象的視圖,例如生成新的視圖,而無需作為中間步驟獲取形狀或攝象機(jī)幾何參數(shù),全部需要做的只是適當(dāng)?shù)亟M合二參考視圖的圖象座標(biāo)。而且,采用這些函數(shù),表射幾何參數(shù)被纏繞在一起,不僅使得沒有奇異性和點的最小組構(gòu)上的下邊界,而且在實驗章節(jié)中還可看到圖象測繪中存在差錯時的更正確的性能。這一部分的成果(僅Theorem1)簡要地在[31]作了介紹。
II.符號標(biāo)記現(xiàn)考慮三維投影空間P3的對象空間和二維投影空間P2的圖象空間。設(shè)P3為一組代表3D對象的點,和ψiP2表示以i作下標(biāo)的的視圖(隨意的)。假定二攝象機(jī)其中心分別位于O,O′∈P3,表射偏振極即被定義為在線OO′與二圖象平面的交點。因為圖象平面是有限的,所以能不致喪失普遍性地給每一觀測的圖象點指派值1作為第三齊座標(biāo)。就是說,如果(x,y)為某點的被觀測的圖象座標(biāo)(相對于某一隨意的原點-例如說圖象的幾何中心),則P=(x,y,1)就是指此圖象平面的齊性座標(biāo)。應(yīng)指出,這一約定忽略掉其中內(nèi)的點在這些視圖中是無限的那些特殊的視圖-這些奇異情況這里未加模擬。
由于這里將以最多每次三個視圖討論,所以相關(guān)的表射偏振極作如下指定假定v∈ψ1和v′∈ψ2為視圖ψ1、ψ2之間的對應(yīng)表射偏振極,假定v∈ψ1和v″∈ψ3為視圖ψ1、ψ3之間的對應(yīng)偏振極。同樣,三個視圖之間的對應(yīng)圖象點將被指定為P=(x,y,1),P′=(x′,y′,1)和P″=(x″,y″,1)。術(shù)語“圖象座標(biāo)”將是指P2的非齊性座標(biāo)表示,例如用于三個對應(yīng)點的(x,y),(x′,y′),(x″,y″)。
平面以πi表示并加以下標(biāo)i,而如果僅討論一個平面就是π。所有平面都被認(rèn)為是隨意的并且相互區(qū)分。符號≈是指明按比例相等,GLn代表n×n的矩陣組,和PGLn是按比例定義的組。
III.三線性公式這一說明書的中心結(jié)果在以下二定理中表明。本章其余部分用于證明這一結(jié)果及其蘊(yùn)涵。
Theorem1(Trilinearity,三線性)假定ψ1、ψ2、ψ3為以一組3D中的點模擬的某一對象的三個隨意的透視圖。三個視圖之間的三個對應(yīng)點的圖象座標(biāo)(x,y)∈ψ1,(x′,y′)∈ψ2和(x″,y″)∈ψ3滿足一對以下形式的三線性方程x″(α1x+α2y+α3)+x″x′(α4x+α5y+α6)+x′(c7x+α8y+α9)+α10x+α11y+α12=0,和y″(β1x+β2y+β3)+y″x′(β4x+β5y+β6)+x′(β7x+β8y+β9)+β10x+β11y+β12=0,式中系數(shù)αj,βj,j=1,……12,對所有點均為固定的,被按整個比例唯一地確定,和αj=βj,j=1,……6。
下面的輔助定理被用作證明的一部分。
Lemmal(Auxiliary-Existence,輔助-存在)假定A∈PGL3為因某平面π產(chǎn)生的投影映射(單應(yīng)性)ψ1→ψ2。假定A被定標(biāo)得滿足Po′≈APo+v′,其中Po∈ψ1和P′o∈ψ2為來自一隨意的點Po
的對應(yīng)點。這樣,對于來自隨意點P∈P3的對應(yīng)點對P∈ψ1和P′∈ψ2,即具有p′≅Ap+kv′]]>系數(shù)K與ψ2無關(guān),亦即對第二視圖的選擇是不變量。
此定理、其證明及理論和實際的涵義在[28,32]中有詳細(xì)討論。應(yīng)指出,在單應(yīng)性A是仿射的和表射偏振v′是在無窮遠(yuǎn)的線上時的特定情況,對應(yīng)于由二正射視圖來的仿射結(jié)構(gòu)的構(gòu)成[17]。概括地說,P3的表述Ro(座標(biāo)四元組)可總被選擇得使一隨意平面π為無窮遠(yuǎn)處的平面。這樣,一總體未定標(biāo)攝象機(jī)運動產(chǎn)生能由仿射組的元件表明為與Ro相關(guān)的表述R。因此,標(biāo)量K是一投射框架中的仿射不變量,并被叫做相對仿射不變量。二個這種不變量各自對應(yīng)一不同的參考平面之比就是投影不變量[32]。在此無需討論取得K的方法,所有需要作的只是應(yīng)用已存在的與某參考平面相關(guān)連的相對仿射不變量K,其進(jìn)而導(dǎo)致正射A。
Definition(定義)1,因同一平面π產(chǎn)生的由ψ1→ψ1單應(yīng)性Ai∈PGL3被說成是標(biāo)定兼容的,如果它們被定標(biāo)得滿足Lemma1的話,亦即,對于任何投影到P∈ψ1和P′∈ψi上的點P∈均存在一標(biāo)量K,它對任何視圖ψi滿足p′≅Aip+kvi,]]>其中vi∈ψ1是帶有ψ1的表射偏振極(隨意標(biāo)定的)。Lemma2(Auxiliary-Unqueness,輔助-單值性)假定A,A′∈PGL3分別為因平面π1、π2產(chǎn)生的二ψ1→ψ2的單應(yīng)性,則存在一標(biāo)量S,它滿足等式A-sA′=[αv′,βv′,γv′],對于某一系數(shù)α,β,γ。
證明假定q∈ψ1為第一視圖中的任一點。存在有一標(biāo)量Sq,它滿足v′≈Aq-SqAq。令H=A-SqA′,即得到Hq≈v′。但如[29]中證明的,對于因任一平面引起的任何單應(yīng)性ψ1→ψ2,Av≈v′。因此也存在Hv≈v′。僅在H為因經(jīng)由平面(與投影中心O共面)產(chǎn)生的單應(yīng)性時才會發(fā)生二分開的點q、v映射在同一點v″上,這樣,對于所有p∈ψ1Hp≈v′,Sq為一固定的標(biāo)量S,。后者也就意味著H為一其列為v′的倍數(shù)的矩陣。Lemma3(Auxiliary for Lemma4,對Lemma4的輔助)假定A,A′∈PGL3分別是因不同平面π1、π2引起的由ψ1→ψ2的單應(yīng)性,和β,β′∈PGL3分別為因不同平面π1、π2引起的由ψ1→ψ3的單應(yīng)性。則對某些T∈PGL3,A′=AT,和B=BCTC-1,其中Cv≈v。證明假定A=A2-1A1,其中A1、A2分別為由ψ1ψ2到π1上的單應(yīng)性。同樣,B=B2-1B1,其中B1、B2分別為由ψ1、ψ3到π1上的單應(yīng)性。假定A1v=(c1、c2、c3)T和假定C≈A1-1diag(c1、c2、c3)A1。則B1≈A1C-1,這樣得到B≈B-12A1C-1。應(yīng)指出,A1與B1之間的差是因表射偏振極v,v的不同位置引起的,它由C(Cv≈v)補(bǔ)償。假定E1∈PGL3為由ψ1到π的單應(yīng)性,和E2∈PGL3為由π2到π1的單應(yīng)性。則利用正常的定標(biāo)E1和E2,得到A′=A2-1E2E1=AA1-1E2E1=AT,]]>和用正常的定標(biāo)C,得到B′=B2-1E2E1C-1=BCA1-1E2E1C-1=BCTC-1]]>Lemma4(Auxiliary-Uniqueness)、對定標(biāo)兼容的單位性,Lemma2的標(biāo)量s、α、β、γ為由ψ1、π1、π2指明的不變量。即就是,給定一隨意的第三視圖ψ3,假定B,B′分別為因π1、π2生成的由ψ1→ψ3的單應(yīng)性。假定B為與A定標(biāo)相兼容的,B′為與A′定標(biāo)相兼容的。則,B-sB′=[αv″,βv″,γv″]。證明首先證明s為一不變量,亦即,B-sB′為其列為v″的倍數(shù)的矩陣。按Lemma2和Lemma3存在有一其列為v′的倍數(shù)的矩陣H,一滿足A′=AT的矩陣T,和一使得I-sT=A-1H的標(biāo)量s。在兩邊乘以BC之后,和再予乘以C-1,就得到B-sBCTC-1=BCA-1HC-1按Lemma3有B′=BCTC-1。矩陣A-1H具有列為v的倍數(shù)的列(因為A-1v′≈v),CA-1I是一其列為v的倍數(shù)的矩陣,和BCA-1H是其列為v″的倍數(shù)的矩陣。將BCA-1H乘以C-1并不改變其形式因為BCA-1HC-1的每一列僅只是BCA-1H的列的線性組合。結(jié)果,B-SB′就是一其列為v″的倍數(shù)的矩陣。
假定H=A-sA′和H=B-sB′。由于單應(yīng)性是定標(biāo)兼容的,按Lemma1,存在有與一隨意的P∈ψ1相關(guān)的不變量K、K′,其中K是因π1產(chǎn)生的,K′是因π2產(chǎn)生的p′≈Ap+Kv′≈A′p+K′v′和p″≈Bp+Kv″≈B′p+k′v″。而按Lemma2具有Hp=(sk′-k)v′和Hp=(sk′-k)v″。由于p是隨意的,這僅有在H中的v′的倍數(shù)的系數(shù)與H中的v″的倍數(shù)的系數(shù)相一致時才會發(fā)生。Proof of Theorem(定理的證明)Lemma1提供定理的存在部分,如下述。由于Lemma1適用于任何平面,選擇平面π1并假定A、B分別為定標(biāo)兼容的單應(yīng)性→ψ2和ψ1→ψ3。則對每一點P∈ψ1在對應(yīng)點為p′∈ψ2和p″∈ψ3時,存在有滿足p′≈Ap+Kv′和p″≈Bp+kv″的標(biāo)量k??捎啥教崛并得到
其中b1、b2、b3和a1、a2、a3為A和B的行向量,v′=(v1′,v2″,v3′),v″=(v1″,v2″,v3″)。因為k的不變性,可使(1)的項與(2)的項相等以得到三視圖之間圖象座標(biāo)的三線性函數(shù)。例如,使各等式中的起始二項相等就得到x″(v1′b3-v3″a1)Tp-x″x′(v3′b3-v3″a3)Tp+]]>x′(v3′b1-v1″a3)Tp-(v1′b1-v1″a1)Tp=0,----(3)]]>以同樣方式,以使(1)的第一項與(2)的第二項相等之后得到y(tǒng)″(v1′b3-v3″a1)Tp-y″x′(v3′b3-v3″a3)Tp+]]>x′(v3′b3-v2″a3)Tp-(v1′b2-v2″a1)Tp=0.----(4)]]>此二式均為所希望的形式,其最初的六個系數(shù)在二等式中相同。
因為Lemma1適用于任何平面而出現(xiàn)唯一性問題。如果選擇一帶單應(yīng)性A′、B′的不同平面,例如說π2,則必須證明新的單應(yīng)性導(dǎo)致相同的系數(shù)(按整個比例)。(3)和(4)中括號內(nèi)的項對某些i和j具有通用形式vi′bj-vj″ai。因而需要證明存在有一標(biāo)量S能滿足vj″(ai-sai′)=vi′(bj-sbj′)]]>但這是由Lemma2和4直接得出的。
此定理的直接蘊(yùn)涵是僅由組合二模型視圖(ψ1,ψ2)即可得到一新視圖(ψ3)。組合系數(shù)αj和βj可一起作為一給定三視圖之間的9個對應(yīng)點的17個方程(24-6-1)的線性系統(tǒng)的解來求得(多于9個的點可被用于一最小二乘方解)。
在下一定理中得到為求解此二線性函數(shù)的系數(shù)所需點的數(shù)量的下邊界。Theorem1證明的實體部分指明存在有該型式的9個三線性函數(shù),其系數(shù)具有通用形式v1′bj-vj″ai。這樣最多就有27個不同的系數(shù)(按統(tǒng)一的比例),并因此如果此9個三線性函數(shù)中的多于二個為線性獨立的,就可利用少于9個的點來求解該系數(shù)。下一定理表明最多4個三線性函數(shù)為線性獨立的,并因而7個點即足以求解系數(shù)。
Theorem2存在有Theorem1中所述類型的9個不同的三線性形式,其中最多4個是線性獨立的。此4個三線性形式的系數(shù)可利用三視圖之間的7個對應(yīng)點求得。
證明9個三線性形式的存在直接由(1)和(2)得到。假定αij=vi′bj-vj″ai。9個形式如下(最先的2個為了方便是(3)和(4)的重復(fù))x″α13Tp-x″x′α33Tp+x′α31Tp-α11Tp=0,]]>y″α13Tp-y″x′α33Tp+x′α32Tp-α12Tp=0,]]>x″α23Tp-x″y′α33Tp+y′α31Tp-α21Tp=0.----(5)]]>y″α23Tρ-y″y′α33Tp+y′α32Tp-α22Tp=0.----(6)]]>y″x′α31Tp-x″x′α32Tp+x″α12Tp-y″α11Tp=0.----(7)]]>y″y′α31Tp-x″y′α32Tp+x″α22Tp-y″α21Tp=0,----(8)]]>x″y′α13Tp-x″x′α23Tp+x′α21Tp-y′α11Tp=0,----(9)]]>y″y′α13Tp-y″x′α23Tp+x′α22Tp-y′α12Tp=0,----(10)]]>x″y′α12Tp-x″x′α22Tp+y″x′α21Tp-y″y′α11Tp=0,----(11)]]>對于一給定的三值組p,p′,p″,表上的最先4個函數(shù)產(chǎn)生一4×27矩陣。此矩陣的階為4因為它含有4個正交列(與α11,α12,α21和α22相關(guān)連的列),因此這些函數(shù)是線性獨立的。由于具有27個系數(shù),每一三值組p,p′,p″用于4個線性方程,這樣三視圖間的7個對應(yīng)點即提供為線性求解系數(shù)的足夠數(shù)量的方程(只要系統(tǒng)按一公共比例確定,7個點就產(chǎn)生能被用作一致性檢查或用于得到最小二乘方解的二個附加的方程)。
其余的三線性形式是最先4個的線性擴(kuò)展,如下
(7)=y(tǒng)″(3)-x″(4)(8)=y(tǒng)″(5)-x″(6)(9)=y(tǒng)′(3)-x′(5)(10)=y(tǒng)′(4)-x′(6)(11)=y(tǒng)″y′(3)-x″y′(4)+x″x′(6)-y″x′(5)其中括號內(nèi)的數(shù)表示各不同三線性函數(shù)的量程數(shù)。
共同地二定理為在給定二模型視圖間的對應(yīng)性p,p′求解一新視圖中的位置x″,y″提供積極的手段。這一產(chǎn)生新視圖的過程很容易完成而無需明確地了解結(jié)構(gòu)、攝象機(jī)變換、或甚至表射偏振幾何參數(shù),而需要的對應(yīng)點數(shù)量少于其他任一已知的方案。
對x″,y″的求解是唯一的,沒有對所容許的攝象機(jī)變換的約束。不過有些攝象機(jī)組構(gòu)需要與Theorem2的證明中所建議的不同的一組4個三線性函數(shù)。例如方程(5)、(6)、(9)和(10)組也是線性獨立的。這樣,如果v′1和v3′同時成為0,即v′≈(0,1,0),則該組即可被代之以應(yīng)用。同樣,方程(3),(4),(9)和(10)為線性獨立的,而在v≈(1,0,0)時應(yīng)被加以應(yīng)用。v″≈(1,0,0)和v″≈(0,1,0)時亦產(chǎn)生類似情況,可由上述討論的6個函數(shù)中選擇4個作為適當(dāng)?shù)囊罁?jù)來進(jìn)行處理。應(yīng)指出,這里沒有涉及7點的奇異組構(gòu)問題。例如很顯然,如果此7點是共面的,則它們在三個視圖間的對應(yīng)性也許就不能為求取系數(shù)而產(chǎn)生唯一解。奇異表面的實質(zhì)已就為尋求表射偏振幾何參數(shù)所需的8點的情況進(jìn)行了研究[19,14,22]。有關(guān)本文所提供的結(jié)果的同一實質(zhì)是一未解決的問題。
消除對獲取表射偏振幾何參數(shù)的需要帶來明顯和巨大的優(yōu)點。為更好理解這些優(yōu)點,現(xiàn)在來粗略地考慮采用表射偏振幾何參數(shù)作再投影的過程。表射偏振交叉方法可作如下的扼要說明(見[11])。假定F13和F23為滿足p″F13p=0和p″F23p′=0的矩陣(當(dāng)前詞匯中“基本″矩陣[10])。則由p″與其表射偏振線的關(guān)聯(lián)而得到p″≅F13p×F23p′.]]>因此,三個視圖間的8個對應(yīng)點就是以為二基本矩陣作線性求解,而后所有其他對象點均能再投影到第三視圖上。等式(12)也為三線性形式,但不是Theorem1中引入的類型。不同點包含有(i)表射偏振交叉需要來自8點而不是7點的對應(yīng);(ii)p″的位置由一其在三攝象機(jī)中心共線的情況下是奇異的線交叉過程來求解;在三線性結(jié)果中p″的成份被分開求解而三個共線攝象機(jī)的情況是允許的;(iii)此表射偏振交叉過程是可分解的,即每次只用二個視圖,而表射偏振幾何參數(shù)在三線性結(jié)果中則是纏結(jié)在一起的不能獨立獲取。后者還意味著在存在噪聲時的一種較好的數(shù)字運行方法,如下面將表明的,即使采用最小數(shù)量的所需的點,其性能也遠(yuǎn)遠(yuǎn)超過采用多得多的點的表射偏振交叉的性能。換句話說,由于避免了獲取表射偏振幾何參數(shù)的需要而得到巨大的實際利益,因為在協(xié)同透視圖工作時表射偏振幾何參數(shù)是最易于發(fā)生差錯的組成部分。視圖三線性函數(shù)的通用結(jié)果與對正射視圖的“視圖的線性組合”結(jié)果[38]之間的關(guān)系可由將p2中A和B設(shè)定為仿射的和v3′=v3″=0很容易看到。例如,(3)化簡為v1′x″-v1″x′+(v1″a1-v1′b1)Tp=0,]]>這是一種α1x″+α2x′+α3x+α4y+α5=0.的形式。如在透視情況中那樣,每一點用于4個等式,但這里利用其中所有的4個來求取系數(shù)是不利的,因此可以僅利用4個等式中的二個和需要4個對應(yīng)點來求取系數(shù)。這樣,在所有三個視圖均為正射的情況中,x″(y″)即被表明為一個二另外視圖的圖象座標(biāo)的線性組合,如[38]中所揭示的。IV.雙線性形式現(xiàn)在考慮正射地取一對象的二參考(模型)視圖(采用一電視鏡頭將提供合理的近似性),在識別期間對象的任一透視圖均是容許時的情況??扇菀椎刈C明,三個視圖將通過雙線性函數(shù)(而不是三線性的)相關(guān)連Theorem3(Bilinearity,雙線性)在Theorem1的條件中,如果由并行投影得到視圖ψ1和ψ2,則一對Theorem1的三線性形式簡化成如下的一對雙線性方程x″(α1x+α2y+α3)+α4x″x′+α5x′+α6x+α7y+α8=0.和 y″(β1x+β2y+β3)+β4y″x′+β5x′+β6x+β7y+β8=0.其中αj=βj;j=1,…4。證明在這些條件下由Lemma1得到A為P2中仿射的和v3′=0,因此(3)簡化成x″(v1′b3-v3″a1)Tp+v3″x″x′-v1″x′+(v1″a1-v1′b1)Tp=0.]]>同樣,(4)簡化成y″(v1′b3-v3″a1)Tp+v3″y″x′-v2″x′+(v2″a1-v1′b2)Tp=0.]]>此二等式均是所希望的形式,其最先的4個系數(shù)在二等式間是相同的。
其余三線性形式均經(jīng)過類似的簡化,而Theorem2仍然成立,即仍然有4個線性獨立的形式。結(jié)果得到21個按共同比例的系數(shù)(而不是27個)和每點的4個方程,從而5個對應(yīng)點(而不是7個)就足夠用于作線性求解。
三視圖的雙線性函數(shù)較通常的三線性函數(shù)具有二個優(yōu)點。第一,如前面提到的,為求系數(shù)的解僅需要三視圖間的5個對應(yīng)點(不是7個)。第二,代數(shù)函數(shù)的方次越低,測量對應(yīng)性中求解將越不易于出現(xiàn)差錯。換句話說,很可能(雖然未必一定)較高階項如等式3中的項x″x′x將對系統(tǒng)的整體誤差敏感性的作用較大。
與認(rèn)為所有視圖均是正射的情況相比較,這一情況更接近真實。由于僅只取模型視圖一次,所有要求采取特定方法、亦即采用電視鏡頭(假定處理對象識別而不是景象識別)就不是不合理的。如果滿足這種要求,則就是普通的識別任務(wù),因為此時的識別處理期間可以取任何透視圖。V.試驗數(shù)據(jù)進(jìn)行本節(jié)所描述的試驗是為了評估為再投影采用三線性結(jié)果與采用[38]的表射偏振交叉和線性組合結(jié)果相比較的實際作用(后者在這里僅表明了三線性結(jié)果的有限情況)。
節(jié)III中所述是由首先獲取基本矩陣來實現(xiàn)的表射偏振交叉方法。雖然8個對應(yīng)點足以作線性求解,實踐中將采用多于8點來以線性的或非線性的二乘方方法求得基本矩陣。由于線性最小二乘方法仍然對圖象噪聲敏感,所以采用的是由T.Luong和L.Quan提供的[20]中描述的非線性實現(xiàn)方法(在[20]中建議有二種實現(xiàn)方法,是采用得到較佳結(jié)果的一種實現(xiàn)方式)。
第一個試驗采用的模擬數(shù)據(jù)表明,即使正確地求取得表射偏振幾何參數(shù),采用免除線交叉處理的三線性結(jié)果仍然要好得多。第二個試驗是對真實的圖象組進(jìn)行的,比較了各種方法的性能和實際達(dá)到合理的再投影效果所需的對應(yīng)點的數(shù)量。A.計算機(jī)模擬利用了一被隨機(jī)地置于Z軸座標(biāo)在100單元至120單元和x,y軸座標(biāo)隨意地從-125至+125的范圍內(nèi)的46點的對象。焦點長為50單元和第一視圖由fx/z,fy/z得到。第二視圖(ψ2)是由圍繞點(0,0,100)利用軸(0.14,0.7,0.7)和由0.3弧度的角度旋轉(zhuǎn)所產(chǎn)生的。第三視圖(ψ3)是由圍繞軸(0,1,0)以同樣的變換和角度旋轉(zhuǎn)產(chǎn)生的。各種數(shù)量的隨機(jī)噪聲被作用到所有被再投影到第三視圖上的點,但不作用到8或7個被用于求取參數(shù)的點(基本矩陣,或三線性系數(shù))。噪聲被隨機(jī)地分開地加到各座標(biāo)并帶有由0.5至2.5象素誤差的變化水平。進(jìn)行了1000次如下的試驗生成20個隨機(jī)對象,對每一級誤差各個對象進(jìn)行10次模擬。采集了最大再投影誤差(以象素為單位)和平均再投影誤差(被作再投影的所有點的平均)。由對所有試樣(它們中的200個)進(jìn)行平均分別采集各個誤差級別的這些數(shù)字和記錄標(biāo)準(zhǔn)的偏離。由于沒有誤差被加到被用來確定表射偏振幾何參數(shù)和三線性系數(shù)的8或7個點,所以僅進(jìn)行了為得到基本矩陣或三線性系數(shù)所需的有關(guān)的線性方程系統(tǒng)的求解。
結(jié)果示于圖1A-1B。右圖表示測量最大投影誤差得的各圖象噪聲水平的二種算法的性能。發(fā)現(xiàn)在所有的噪聲水平下,三線性方法明顯較佳而且還具有較小的標(biāo)準(zhǔn)偏離。對右邊圖中所示的平均再投影誤差也同樣。
性能中的這種差別是所預(yù)料的,因為三線性方法是一并考慮所有的三個視圖,而不是每對分別考慮,并因而避免了線交叉。B.對真實圖象的試驗圖2A-2C表示選擇來作試驗的對象的三個視圖。此對象為帶有為便于作對應(yīng)性處理的附加結(jié)構(gòu)的運動鞋。選取這一對象是因為其復(fù)雜性,即,它具有一自然對象的形狀和不易于作參數(shù)描述(如平面或代數(shù)表面的集合)。應(yīng)指出,這里所說明的情形是挑戰(zhàn)性的因為被再投影的視圖不是在二模型視圖的中間,即應(yīng)當(dāng)預(yù)期到較之在中間情況對圖象噪聲更為敏感。人工地選擇了幀面中的一個ψ1上的一組34點,它們的對應(yīng)物自動地在此試驗中所采用的所有其他幀面上得到。此對應(yīng)過程是根據(jù)[7]中所描述的由粗到細(xì)的光流算法的執(zhí)行。為達(dá)到分開的視圖間的準(zhǔn)確對應(yīng),采用了過渡的中間幀面和附加以連續(xù)幀面的位移。然后將全部位移場用來將第一幀面推(“翹曲”)向目的幀面這樣來生成一合成圖象。再次將光流作用到合成幀面與目的幀面之間并將最后得的位移加到早先得到的整個位移上。這一過程提供一密集的位移場,它隨后被采樣來獲得最初在第一幀面中所選擇的34點的對應(yīng)物。這一過程的結(jié)果在圖2A-2C中以顯示中心圍繞所計算得的對應(yīng)點位置的方塊來表示??梢钥吹剑@種方式所取得的對應(yīng)是合理的,和在大多數(shù)情況下達(dá)到子象素的準(zhǔn)確度。依靠選擇第一幀面中的點很容易進(jìn)一步自動執(zhí)行這一過程,為此空間導(dǎo)數(shù)Hessina矩陣可作良好地適應(yīng),類似于[4,7,34]的方案中所建議的置信度值,但這里并不企圖這樣來建議一完整的系統(tǒng),僅只是測試三線性再投影法的性能和次其與表射偏振交叉和線性組合法的性能和比較。
三線性法需要三視圖間至少7個對應(yīng)點(這里需要26個方程,而7點提供28個方程),而表射偏振交叉可以8點進(jìn)行(原則上)?,F(xiàn)在要解決的問題是為達(dá)到合理的性能實際需要多少點數(shù)(由于對應(yīng)中的誤差、透鏡畸變和其他可能由針孔攝象機(jī)模型不適當(dāng)?shù)啬M的效果)。
三線性結(jié)果首先被以最小點數(shù)(7個)用于為系數(shù)求解,然后被應(yīng)用于以8、9和10點的一線性最小二乘方解(應(yīng)指出,一般利用SVD或Jacobi法替代線性最小二乘方可得到較佳的解,但這里并不想這樣做)。結(jié)果如圖3A-3B所示。7點提供的再投影具有最大誤差為3.3象素和平均誤差為0.98象素。利用10點的解取得最大誤差為1.44和平均誤差為0.44象素的改善。利用8和9點的性能合乎情理地在以上的性能之間。采用更多的點沒有顯著改善此結(jié)果,例如,當(dāng)所有的34點均采用時最大誤差降到1.14象素,平均誤差為0.42象素。
接著應(yīng)用表射偏振交叉法。為求取基本矩陣采取2種方法。一個方法是采用[20]的措施,另一個是利用來自一個平面(基礎(chǔ)平面)的4個對應(yīng)點。在前一情況中,為實現(xiàn)合理的結(jié)果需要比8點多得多的點。例如在利用全部34點時最大誤差為43.4象素和平均誤差為9.58象素。在后一情況中,首先求得因基礎(chǔ)平面所引起的單應(yīng)性B而后利用二附加點(暗盒上的點)得到表射偏振v″。這樣就知道(見[28,21,32])F13=[v″]B,其中[v″]是v″的反對稱矩陣。求取F23采用了同樣的過程。因此僅6點被用于再投影,但盡管如此結(jié)果還是稍有改善最大誤差為25.7和平均誤差為7.7象素。圖4A-4B表明這些結(jié)果。
最后測試了利用線性組合方法再投影的性能。由于線性組合方法僅適用于正射視圖,這里實際上是在透視情況下測試正射假設(shè),或者換句話說,即三線性方程的高階項(二線性和三線性)是否有意義。線性組合方法需要至少三視圖間的4個對應(yīng)點。應(yīng)用此方法是利用4、10(為了與圖3A-3B中所示的三線性情形比較)和全部34點(后兩者利用線性最小二乘方)。結(jié)果顯示在圖5A-5C中。所有情況中的性能均大大差于采用三線性函數(shù)時,但比表射偏振交叉法為佳。VI.討論已經(jīng)看到,一般情況下一固定的3D對象的任一視圖均能用二個參考視圖表示為一三線性函數(shù),或者在參考視圖由平行投影所產(chǎn)生時表現(xiàn)為一雙線性函數(shù)。這些函數(shù)提供為處理一景象的視圖可選擇的較之其他方法簡單得多的措施。而且它們在理論上需要較少的對應(yīng)點,而在實踐中還少得多。試驗結(jié)果表明三線性函數(shù)實踐中還有利于產(chǎn)生較之表射偏振交叉或線性組合方法顯著要好的性能。
一般二個視圖使一“基本”矩陣(見[10].)能表述此二視圖之間的表射偏振幾何參數(shù),且該矩陣的陣元受主體約束(矩陣的秩為2)。三線性結(jié)果(Theorem1,2)意味著三個視圖可以有一帶有27個不同的元素的張量。已看到在表射偏振約束不起作用,例如在三個攝象機(jī)沿著一直線(并非一不是普通的情況)時,此張量仍能起作用。本文中沒有討論7點的奇異組構(gòu)情況(除7個共面點的明顯的奇異組構(gòu)外)。但再投影結(jié)果的健壯性可以指明任一這樣的組構(gòu)是非常少有或者不存在的。因而重要的是要研究這一課題,因為廣泛相信表射偏振約束的數(shù)量上的不穩(wěn)定是在于這種危形表面的存在。“三線性”張量的標(biāo)記,其特性,對三視圖的幾何參數(shù)的關(guān)系,和對由多視圖作3D重現(xiàn)的應(yīng)用,構(gòu)成了重要的未來的方向。
整個本說明中所強(qiáng)調(diào)的應(yīng)用是通過對準(zhǔn)作視覺識別。以新視圖(ψ3)所需的最小點數(shù)(7)得到合理的性能,這可能是太多了,如果由試驗點匹配的所有可能的組合來達(dá)到圖象的模型匹配的話。在模型為正射的但新視圖是透視的特殊情況下的雙線性函數(shù)的存在從對點計數(shù)的觀點上看較吸引人。這里已得到為識別透視圖僅需要5個對應(yīng)點(只要能滿足模型是正射的要求)。沒有進(jìn)行以雙線性函數(shù)的試驗來檢查在實踐上需要多少點,但計劃在未來進(jìn)行。因為它們的簡單性,人們可以推測這些代數(shù)函數(shù)將會在除視覺識別外的任務(wù)中獲得應(yīng)用,其中一些在下面討論。
可能存在一些簡單性成為主要重點的其他應(yīng)用,而點數(shù)則較少考慮??紤]例如基于模型的壓縮的應(yīng)用。采用三線性函數(shù)需要17個參數(shù)來將一視圖表示成完全對應(yīng)中的二參考視圖的函數(shù)(回想,為了將對應(yīng)點數(shù)由9降到7采用了27個系數(shù))。假定發(fā)送方和接收方都具有二參考視圖并應(yīng)用為獲得二視圖間的對應(yīng)的相同算法。為發(fā)送第三視圖(忽略可作分開處理的自閉問題)發(fā)送方可利用許多點對17個參數(shù)求解,但最后僅發(fā)送此17個參數(shù)。然后接收方僅只是按給于所接收參數(shù)的“三線性法”來組合此二參考視圖。這顯然屬于點數(shù)不是要主要考慮的、而簡單性和因計算的簡化而得的健壯性(如上述)則是最重要的范疇。
關(guān)于圖象編碼,最近[1,2]推薦將圖象分解為“層”的方法。此法中一系列視圖被分成為區(qū),每一區(qū)的運動被近似地以一2D仿射變換來描述。發(fā)送方發(fā)送第一個圖象后僅跟隨各后續(xù)幀的每一區(qū)的6個仿射參數(shù)。應(yīng)用視圖的代數(shù)函數(shù)有可能使這一方法更為有效,因為替代將景象分成為平面而可以試著將景象分成為對象,每一個帶有描述其在隨后的幀上的位移的17個參數(shù)。
應(yīng)用的另外領(lǐng)域可以是計算機(jī)制圖。再投影技術(shù)使得圖象復(fù)制簡化。給定某3D對象的二個經(jīng)完成復(fù)制的視圖,其他視圖(仍然忽略自閉鎖)就可僅以“組合”參考視圖來加以復(fù)制。這里,對應(yīng)點數(shù)仍然不作太多考慮。
參考文獻(xiàn)[1]E.H.Adelson.Layerea representations for image coding.Technical Report 181,MediaLaboratory,Massachusetts Institute of Technology.1991.[2]E.H.Adelson and J.Y.A.Wang.Layered representation for motion analysis.In Proceed-ings IEEE Conf.on Computer Vision and Pattern Recognition,pages 361-366,NewYork.NY,June 1993.[3]G.Adiv.Innerent ambiguities in recovering 3D motion and structure from a noisyflow field.IEEE Transactions on Pattern Analysis and Machine Intelligence,PAMI-11(5)477-489,1989.[4]P.Anandan. A unified perspective on computational techniques for the measurementof visual motion.In Proceedings Image Understanding Workshop. pages 219-230,LosAngeles,CA,F(xiàn)ebruary 1987.Morgan Kaufmann,San Mateo,CA[5]I.A.Bachelder and S.Ullman.Contour matching using local affine transformations.InProceedings Image Understanding Workshop.Morgan Kaufmann,San Mateo,CA,1992.[6]E.B.Barrett,M.H.Brill,N.N.Haag,and P.M.Payton.Invariant linear methods inphotogrammetry and model-matching,In J.L.Mundy and A.Zisserman.editors.Ap-plications of invariances in computer vision. MIT Press,1992.[7]J.R.Bergen and R.Hingorani.Hierarchical motion-based frame rate conversion.Tech-nical report,David Sarnoff Research Center,1990.[8]S.Demey,A.Zisserman,and P.Beardsley.Affine and projective structure from motion.In Proceedings of the British Machine Vision Conference,October 1992.[9]R.Dutta and M.A.Synder.Robustness of correspondence based structure from motion.In Proceedings of the International Conference on Computer Vision,pages 106-110,Osaka,Japan,December 1990.[10]O.D.Faugeras.What can be seen in three dimensions with an uncalibrated stereo rig?In Proceedings of the European Conference on Computer Vision,pages 563-578. SantaMargherita Ligure.Italy.June 1992.[11]O.D.Faugeras and L.Robert.What can two images tell us about a third one?TechnicalReport INRIA,F(xiàn)rance.1993.[12]W.E.L.Grimson.Why stereo vision is not always about 3D reconstruction.A.I.MemoNo.1435,Artificial Intelligence Laboratory.Massachusetts Institute of Technology.July1993.[13]R.Hartley,R.Gupta,and T.Chang.Stereo from uncalibrated cameras.In ProceedingsIEEE Conf.on Computer Vision and Pattern Recognition,pages 761-764,Champaign,IL.,June 1992.[14]B.K.P.Horn.Relative orientation.International Journal of Computer Vision,459-78,1990.[15]B.K.P.Horn.Relative ocientation revisited.Journal of the Optical Society of America,
S1630-1638,1991.[16]D.P.Huttenlocher and S.Ullman.Recognizing solid objects by alignment with an image.
International Journal of Computer Vision,5(2)195-212,1990.[17]J.J.Koenderink and A.J.Van Doorn.Affine structure from motion.Journal of theOptical Society of America,8377-385,1991.[18]H.C.Longuet-Higgins.A computer algorithm for reconstructing a scene from two pro-jections.Nature,293133-135,1981.[19]H.C.Longuet-Higgins.the reconstruction of a scene from two projections-configura-tions that defeat the 8-point algorithm.In Proc.of the 1st Conf.AI applications,pages395-397,Denver,December 1984.[20]Q.T.Luong,R.Deriche,O.D.Faugeras,and T.Papadopoulo.On determining thefundamental matrixAnalysis of different methods and experimental results.TechnicalReport INRIA,F(xiàn)rance,1993.[21]Q.T.Luong and T.Vieville.Canonical representations for the geometries of multipleprojective views.Technical Report INRIA,F(xiàn)rance,fall 1993.[22]S.J.Maybank.The projective geometry of ambiguous surfaces.Proceedings of the RoyalSociety of London,3321-47,1990.[23]J.Mundy and A.Zisserman.Appendix-projective geometry for machine vision.InJ.Mundy and A.Zisserman,editors,Geometric invariances in computer vision. MITPress,Cambridge,1992.[24]J.L.Mundy,R.P.Welty,M.H.Brill,P.M.Payton,and E.B.Barrett.3D model align-ment without computing pose.In Proceedings Image Understanding Workshop.pages727-735.Morgan Kaufmann,San Mateo,CA,January 1992.[25]A.Shashua.Correspondence and affine shape from two orthographic viewsMotionand Recognition. A.I.Memo No.1327,Artificial Intelligence Laboratory,MassachusettsInstitute of Technology,December 1991.[26]A.Shashua.Geometry and Photometry in 3D visual recognition. PhD thesis.M.I.TArtificial Intelligence Laboratory,AI-TR-1401,November 1992.[27]A.Shashua.Illumination and view position in 3D visual recognition. In S.J.HansonJ.E.Moody and R.P.Lippmann,editors,Advances in Neural Information ProcessingSystems 4,pages 404-411.San Mateo,CAMorgan Kaufmann Publishers,1992.Pro-ceedings of the fourth annual conference NIPS,Dec.1991.Denver.CO[28]A.Shashua.On geometric and algebraic aspects of 3D affine and projective structuresfrom perspective 2D views. In The 2nd European Workshop on Invariants.Ponta Dela-gada. Azores,October 1993. Also in MIT AI memo No.1405,July 1993.[29]A.Shashua.Projective depthA geometric invariant for 3D reconstruction from twoperspective/orthographic views and for visual recognition. In Proceedings of the Inter-national Conference on Computer Vision,pages 583-590,Berlin,Germany,May 1993.[30]A.Shashua.Projective structure from uncalibrated imagesstructure from motion andrecognition.IEEE Transactions on Pattern Analysis and Machine Intelligence,1994.inpress.[31]A.Shashua.Trilinearity in visual recognition by alignment. In Proceedings of the Euro-pean Conference on Computer Vision,Stockholm,Sweden,May 1994.[32]A.Shashua and N.Navab.Relative affine structureTheory and application to 3dreconstruction from perspective views.In Proceedings IEEE Conf.on Computer Visionand Pattern Recognition,Seattle,Washington,1994.[33]A.Shashua and S.Toelg.The quadric reference surfaceApplications in registeringviews of complex 3d objects.In Proceedings of the European Conference on ComputerVision,Stockholm,Sweden,May 1994.[34]C.Tomasi and T.Kanade.Factoring image sequences into shape and motion.In IEEEWorkshop on Visval Motion,pages 21-29,Princeton,NJ,September 1991.[35]R.Y.Tsai and T.S.Huang.Uniqueness and estimation of three-dimensional motionparameters of rigid objects with curved surface.IEEE Transactions on Pattern Analysisand Machine Intelligence,PAMI-613-26.1984.[36]S.Ullman.The Interpretation of Visual Motion.MIT Press,Cambridge and London,1979.[37]S.Ullman.Aligning pictorial descriptionsan approach to object recognition.Cognition,32193-254,1989.Alsoin MIT AI Memo 931,Dec.1986.[38]S.Ullman and R.Basri.Recognition by linear combination of models.IEEE Transac-tions on Pattern Analysis and Machine Intelligence,PAMI-13992-1006.1991.Also inM.I.T AI Memo 1052,1989.[39]D.Weinshall.Model based invariants for 3-D vision.International Journal of ComputerVision,10(1)27-42,1993.
應(yīng)當(dāng)理解,這里所證明和描述的某些或所有的圖象處理操作可以以軟件來實現(xiàn)。換言之,這里所證明和描述的某些或所有的圖象處理操作可以以ROM(只讀存貯器)形式來實現(xiàn)。另外,此軟件成分如果希望的話可以采用通常的技術(shù)以硬件來實現(xiàn)。
本發(fā)明具有非常廣泛的應(yīng)用,特別能應(yīng)用于所有由2D到3D的技術(shù)是公認(rèn)為有用的領(lǐng)域。本發(fā)明的應(yīng)用至少包含下列這些包括由空中和衛(wèi)星照相繪制地圖和宇宙空間和船塢裝配場地的座標(biāo)測量的攝影測繪方面的應(yīng)用,生產(chǎn)部件的座標(biāo)測量,生產(chǎn)部件的自動光學(xué)檢查,機(jī)器人單元對準(zhǔn),機(jī)器人軌跡識別,3D機(jī)器人反饋,景象的3D模擬,對象的3D模擬,反向工程,和3D數(shù)字化。
附錄B為按照本發(fā)明一優(yōu)選實施例構(gòu)成和運行的3D再現(xiàn)設(shè)備的優(yōu)選軟件實現(xiàn)的列表。為根據(jù)附錄B實現(xiàn)此3D再現(xiàn)設(shè)備,可將Math Soft提供的商業(yè)Maple2軟件與IBM PCT或SUNI作站結(jié)合使用??刹捎靡韵逻^程a.利用OPEN FILE命令將按附錄B的列表生成的程序裝載進(jìn)Maple2;b.將光標(biāo)移動到出現(xiàn)WITH(LINALG)命令的行以運行此子例程序;c.操作RETURN鍵直至光標(biāo)到達(dá)文件的末尾;d.然后光標(biāo)返回到文件的起始;e.按壓RETURN直至到達(dá)隨后的行來進(jìn)行模擬,包括EVALN(PCOMP)然后系統(tǒng)在屏幕上打印出給定的3D世界與再現(xiàn)的3D世界間的比較。
應(yīng)理解,附錄B列表也有用于實現(xiàn)這里所證明和描述的圖象變換設(shè)備和方法。此圖象變換實施方案例如可基于與上述標(biāo)題為“用于識別的代數(shù)函數(shù)”一節(jié)的等式3和4相結(jié)合使用的附錄B的列表。
應(yīng)理解附錄中所描述的特定實施方案僅僅是企圖用來對本發(fā)明作詳盡的揭示而不是要對之作出限制。
應(yīng)理解的是,為了清楚而在各個不同實施例的組成中說明的本發(fā)明的各種特點也可組合進(jìn)一單個的實施例中來得到。相反,為了簡要而在單個實施例的組成中說明的本發(fā)明的各種特點也可分開地或在任一適合的子組合中得到。
熟悉本技術(shù)領(lǐng)域的人們將會理解本發(fā)明并不限于以上已特別證明和描述的一切。而是,本發(fā)明的范圍僅由后列的權(quán)利要求來確定。
BOOL ComputeAllTensors(IN int nTrials,TENSTensors[MAX_FRAMES][MAX_FRAMES][MAX_FRAMES],OUT DMAT3 E_basis[MAX_FRAMES][MAX_FRAMES][4],OUT int*size_E_basis){int rf,bf,i,j,k,l,m,n;int num_frames_for_i;int legalFrame[MAX_FRAMES];double**rank4mat,*w,**v_tr,doublethresh4;BOOLfoundThresh;doublesum;int*dummy;/*for the call of findTensor*//*check the the number of frames is not too large*/if(NumberOfFrames>MAX_FRAMES){return(FALSE);}/*loop on the reference frame*/for(rf=0;rf<NumberOfFrames;rf++){/*consider only marked frame*/if(((specified_rf<0)‖(rf=specified_rf))&&Images_Flags[rf]){/*loop on the i′th frame*/for(i=0;i<NumberOfFrames;i++){/*consider only marked frame different of rf*/if(Images_Flags[i]&&(i!=rf)){/*initialize num_frames_for_i*/(*size_E_basis)=0;num_frames_for_i=0;/*loop on the base frame*//**There is dependence between*Tensors[rf][i][bf]and Tensors[rf][bf][i]*so we avoid the computation of Tensors[rf][i][bf]*for bf<i*/for(bf=(i+1);bf<NumberOfFrames;bf++){/*consider only marked frame different of rf*/if(Images_Flags[bf]&&(bf?。絩f)){findTensor(Tensors[rf][i][bf],rf,i,bf,0,dummy,0,nTrials);legalFrame[num_frames_for_i]=bf;num_frames for_i++;}}for(bf=0;bf<i;bf++){if(Images_Flags[bf]&&(bf?。絩f)){for(j=0;j<3;j++){for(k=0;k<3;k++){for(l=0;l<3;l++){Tensors[rf][i][bf][j][k][l]=Tensors[rf][bf][i][k][j][l];}}}legalFrame[num_frames_for_i]=bf;num_frames_for_i++;}}if(num_frames_for_i>1){/*there are num_frames_for_i Tensors for these*//*rf and i and when ordering the E0,E1,E2 to a*//*9-by-(3*num_frames_for_i)matrix its rank=4*//*Note that E[j]=Tensors[rf][i][bf][*][j][*]*/(*size_E_basis)=4;/*if num_frames_for_i>2 we consider the transposed*//*matrix for the svdcmp which requires rows>=cols*/if(num_frames_for_i=2){rank4mat=dmatrix(1,9,1,6);w=dvector(1,6);v_tr=dmatrix(1,6,1,6);for(bf=0;bf<num_frames_for_i;bf++){for(j=0;j<3;j++){for(k=0;k<3;k++){for(l=0;l<3;l++){rank4mat[l+3*k+i][l+3*bf+j]=Tensors[rf][i][legalFrame[bf]][k][j][l];}}}}if(!svdcmp(rank4mat,9,6,w,v_tr)){free_dmatrix(rank4mar,1,9,1,6);free_dvector(w,1,6);free_dmatrix(v_tr,1,6,1,6);return(FALSE);}/*look for threshold for the largest 4 values*/foundThresh=FALSE;thresh4=0.02;while(!foundThresh){n=0;for(k=1;k<=6;k++){if(w[k]>thresh4){n++;}}if(n>4){thresh4*=2;}else if (n<4){thresh4/=2;}else{foundThresh=TRUE;}}/*the 4 columnsof rank4mat which correspond to*//*the 4 largest singular values form E_basis*//*Note that E_basis is[4][9]i.e.goes by rows*/n=0;for(m=1;m=6;m++){if(w[m]>thresh4){for(k=0;k<3;k++){for(l=0;l<3;l++){E_basis[rf][i][n][k][l]=rank4mat[l+3*k+l][m];}}n++;}}if(!ImproveE_basis(E_basis[rf][i])){free_dmatrix(rank4mat,1,9,1,6);free_dvector(w,1,6);free_dmatrix(v_tr,1,6,1,6);return(FALSE);}/*improve the tensors with the svd results*/for(bf=0;bf<num_frames_for_i;bf++){for(j=0;j<3;j++){for(k=0;k<3;k++){for(l=0;l<3;l++){sum=0.0;n=0;for(m=1;m<=6;m++){if(w[m]>thresh4){sum+=E_basis[rf][i][n][k][l]*w[m]*v_tr[l+3*bf+j][m];n++;}}Tensors[rf][i][legalFrame[bf]][k][j][l]=sum;}}}}free_dmatrix(rank4mat,1,9,1,6);free_dvector(w,1,6);free_dmatrix(v_tr,1,6,1.6);else{rank4mat=dmatrix(1,3*num_frames_for_i,1,9);w=dvector(1,9);v_tr=dmatrix(1,9,1,9);for(bf=0;bf<num_frames_for_i;bf++){for(j=0;j<3;j++){for(k=0;k<3;k++){for(l=0;l<3;l++){rank4mat[l+3*bf+j][l+3*k+l]=Tensors[rf][i][legalFrame[bf]][k][j][l];}}}}if(!svdcmp(rank4mat,3*num_frames_for_i,9,w,v_tr)){free_dmatrix(rank4mat,1,3*num_frames_for_i,1,9);free_dvector(w,1,9);free_dmatrix(v_tr,1,9,1,9);return(FALSE);}/*look for threshold for the largest 4 values*/foundThresh=FALSE;thresh4=0.02;while(!foundThresh){n=0;for(k=1;k=9;k++){if(w[k]>thresh4){n++;}}if(n>4){thresh4*=2;}else if(n<4){thresh4/=2;}else{foundThresh=TRUE;}}/*the 4 rows of v which correspond to the*//*4 largest singular values form E_basis*/n=0;for(m=1;m<=9;m++){if(w[m]>thresh4){for(k=0;k<3;k++){for(l=0;l<3;l++){E_basis[rf][i][n][k][l]=v_tr[l+3*k+l][m];}}n++;}}if(!ImproveE_basis(E_basis[rf][i])){free_dmatrix(rank4mat,1,3*num_frames_for_i,1,9);free_dvector(w,1,9);free_dmatrix(v_tr,1,9,1,9);return(FALSE);}/*improve the tensors with the svd results*/for(bf=0;bf<num_frames_for_l;bf++){for(j=0;j<3;j++){for(k=0;k<3;k++){for(l=0;l<3;l++){sum=0.0;n=0;for(m=1;m=9;m++){if(w[m]>thresh4){sum+=rank4mat[l+3*bf+j][m]*w[m]*E_basis[rf][i][n][k][l];n++;}}Tensors[rf][i][legalFrame[bf]][k][j][l]=sum;}}}}free_dmatrix(rank4mat,1,3*num_frames_for_i,1,9);free_dvector(w,1,9);free_dmatrix(v_tr,1,9,1,9);}}else if(num_frames_for_i=1){(*size_E_basis)=3;/*keep the tensor as the first 3 of E_basis[rf][i]*/for(j=0;j<3;j++){for(k=0;k<3;k++){for(l=0;l<3;l++){E_basis[rf][i][j][k][l]=Tensors[rf][i][legalFrame
][k][j][l];}}}}}}}}return(TRUE);}ComputeAllEpipoies(IN DMAT3E_basis[MAX_FRAMES][MAX_FRAMES][4],IN int size_E_basis,IN BOOL removeOutliers,OUT DXYZ Epipoles[MAX_FRAMES][MAX_FRAMES]){int rf,i;doubleerror;int n_Eq;int row,i,j,k,m;double**Eqn;int nCols=3,nSizes=1,nGroups[1],Sizes[1];int minRows=4,nTrials=100,n_Eq_new;doublerow_sum;DMAT3 mat;DMAT3 mat3,Epimat;/*check the the number of frames is not too large*/if(NumberOfFrames>MAX_FRAMES){return(FALSE);}/*given a pair of images (rf,i)*//*there are 3*size_E_basis*(size_E_basis-1)+*//*6*size_E_basis*size_E_basis equations*/Eqn=dmatrix(0,3*size_E_basis*(size_E_basis-1)+6*size_E_basis*size_E_basis-1,0,2);/*loop on the reference frames*/for(rf=0;rf<NumberOfFrames;rf++){/*consider only marked frames*/if(((specified_rf<0)‖(rf=specified_rf))&& Images_Flags[rf]){/*loop on the i′th frame*/f or(i=0;i<NumberOfFrames;i++){/*consider only marked frames that differ from rf*/if(Images_Flags[i]&&(i?。絩f)){/*accumulate equations on Epipole*/n_Eq=0;/*contribution of Tensors[rf][i][bf][*][j][*]*//*denoting E[j]=Tensors[rf][i][bf][*][j][*]and*//*E[j][k]=Tensors[rf][i][bf[*][j][k]then*/
/*the fundamental matrix.*//*In particular,transposed(E[j])*[v′]*E[i]*//*is a skew symmetric matrix and therefore*//*v′CROSS E[j][k]dot E[l][k]=0 for j<1*//*and also v′CROSS E[j][k]dot E[l][m]+*//*v′CROSS E[j][m] dot E[l][k]=0 for j<l,k<m*//*Equivalently(being the same″volume″)*//*E[j][k]CROSS E[l][k]dot v′=0 for j<1 k=0,1,2*//*and also E[j][k]CROSS E[l][m]dot v′+*//*E[j][m]CROSS E[l][k]dot v′=0 for j<1 k<m*/for(row=0;row<(3*size_E_basis*(size_E_basis-1)+6*size_E_basis*size_E_basis);row++){for(l=0;l<3;l++){Eqn[n_Eq+row][l]=0.0;}}/*loop on E_basis[j]*/for(j=0;j<(size_E_basis-1);j++){/*loop on E_basis[1]*/for(l=(j+1);l<size_E_basis;l++){/*loop on the column*/for (k=0;k<3;k++){Eqn[n_Eq]
=E_basis[rf][i][j][1][k]*E_basis[rf][i][l][2][k]-E_basis[rf][i][j][2][k]*E_basis[rf][i][l][1][k];Eqn[n_Eq][1]=E_basis[rf][i][l]
[k]*E_basis[rf][i][j][2][k]-E_basis[rf][i][l][2][k]*E_basis[rf][i][j]
[k];Eqn[n_Eq][2]=E_basis[rf][i][j]
[k]*E_basis[rf][i][l][1][k]-E_basis[rf][i][j][1][k]*E_basis[rf][i][l]
[k];/*normalize the equation*/row_sum=Eqn[n_Eq]
*Eqn[n_Eq]
+Eqn[n_Eq][1]*Eqn[n_Eq][1]+Eqn[n_Eq][2]*Eqn[n_Eq][2];if(row_sum>0.0){row_sum=sqrt(row_sum);Eqn[n_Eq]
/=row_sum;Eqn[n_Eq][1]/=row_sum;Eqn[n_Eq][2]/=row_sum;n_Eq++;}}for(k=0;k<2;k++){for(m=(k+1);m<3;m++){Eqn[n_Eq]
=E_basis[rf][i][j][1][k]*E_basis[rf][i][l][2][m]-E_basis[rf][i][j][2][k]*E_basis[rf][i][l][1][m]+E_basis[rf][i][j][1][m]*E_basis[rf][i][l][2][k]-E_basis[rf][i][j][2][m]*E_basis[rf][i][l][1][k];Eqn[n_Eq][1]=E_basis[rf][i][l]
[m]*E_basis[rf[i][j][2][k]-E_basis[rf][i][l][2][m]*E_basis[rf][i][j]
[k]+E_basis[rf][i][l]
[k]*E_basis[rf][i][j][2][m]-E_basis[rf][i][l][2][k]*E_basis[rf][i][j]
[m];Eqn[n_Eq][2]=E_basis[rf][i][j]
[k]*E_basis[rf][i][l][1][m]-E_basis[rf][i][j][1][k]*E_basis[rf][i][l]
[m]+E_basis[rf][i][j]
[m]*E_basis[rf][i][l][1][k]-E_basis[rf][i][j][1][m]*E_basis[rf][i][l]
[k];/*normalize the equation*/row_sum=Eqn[n_Eq]
*Eqn[n_Eq]
+Eqn[n_Eq][1]*Eqn[n_Eq][1]+Eqn[n_Eq][2]*Eqn[n_Eq][2];if(row_sum>0.0){row_sum=sqrt(row_sum);Eqn[n_Eq]
/=row_sum;Eqn[n_Eq][1]/=row_sum;Eqn[n_Eq][2]/=row_sum;n_Eq++;}}}}}/*additional size_E_basis*size_E_basis*6eqns*//*come from[v′]*E[rf][i][j]*E[i][rf][k]being*//*skew symmetric for any j,k.*/if(specified_rf<0){/*loop on E_basis[rf][i][j]*/for(j=0;j<size_E_basis;j++){/*loop on E_basis[i][rf][l]*/for(l=0;l<size_E_basis;l++){matmulmat3(mat.E_basis[rf][i][j],E_basis[i][rf][l]);/*ignore mat if it is a scalar matrix*/if((mat
[1]>mm_epsilon)‖(mat
[1]<-mm_epsilon)‖(mat
[2]>mm_epsilon)‖(mat
[2]<-mm_epsilon)‖(mat[1][2]>mm_epsilon)‖(mat[1][2]<-mm_epsilon)‖(mat[1]
>mm_epsilon)‖(mat[1]
<-mm_epsilon)‖(mat[2]
>mm_epsilon)‖(mat[2]
<-mm_epsilon)‖(mat[2][1]>mm_epsilon)‖(mat[2][1]<-mm_epsilon)){Eqn[n_Eq]
=0.0;Eqn[n_Eq][1]=mat[2]
;Eqn[n_Eq][2]=-mat[1]
;/*normalize the equation*/row_sum=Eqn[n_Eq]
*Eqn[n_Eq]
+Eqn[n_Eq][1]*Eqn[n_Eq][1]+Eqn[n_Eq][2]*Eqn[n_Eq][2];if(row_sum>0.0){row_sum=sqrt(row_sum);Eqn[n_Eq]
/=row_sum;Eqn[n_Eq][1]/=row_sum;Eqn[n_Eq][2]/=row_sum;n_Eq++;}Eqn[n_Eq]
=-mat[2][1];Eqn[n_Eq][1]=0.0;Eqn[n_Eq][2]=mat
[1];/*normalize the equation*/row_sum=Eqn[n_Eq]
*Eqn[n_Eq]
+Eqn[n_Eq][1]*Eqn[n_Eq][1]+Eqn[n_Eq][2]*Eqn[n_Eq][2];if(row_sum>0.0){row_sum=sqrt(row_sum);Eqn[n_Eq]
/=row_sum;Eqn[n_Eq][1]/=Tow_sum;Eqn[n_Eq][2]/=row_sum;n_Eq++;}Eqn[n_Eq]
=mat[1][2];Eqn[n_Eq][1]=mat
[2];Eqn[n_Eq][2]=0.0;/*normalize the equation*/row_sum=Eqn[n_Eq]
*Eqn[n_Eq]
+Eqn[n_Eq][1]*Eqn[n_Eq][1]+Eqn[n_Eq][2]*Eqn[n_Eq][2];if(row_sum>0.0){row_sum=sqrt(row_sum);Eqn[n_Eq]
/=row_sum;Eqn[n_Eq][1]/=row_sum;Eqn[n_Eq][2]/=row_sum;n_Eq++;}Eqn[n_Eq]
=-mat[2]
;Eqn[n_Eq][1]=mat[2][1];Eqn[n_Eq][2]=mat
-mat[1][1];/*normalize the equation*/row_sum=Eqn[n_Eq]
*Eqn[n_Eq]
+Eqn[n_Eq][1]*Eqn[n_Eq][1]+Eqn[n_Eq][2]*Eqn[n_Eq][2];if(row_sum>0.0){row_sum=sqrt(row_sum);Eqn[n_Eq]
/=row_sum;Eqn[n_Eq][1]/=row_sum;Eqn[n_Eq][2]/=row_sum;n_Eq++;}Eqn[n_Eq]
=mat[1]
;Eqn[n_Eq][1]=mat[2][2]-mat
;Eqn[n_Eq][2]=-mat[1][2];/*normaiize the equation*/row_sum=Eqn[n_Eq]
*Eqn[n_Eq]
+Eqn[n_Eq][1]*Eqn[n_Eq][1]+Eqn[n_Eq][2]*Eqn[n_Eq][2];if(row_sum>0.0){row_sum=sqrt[row_sum);Eqn[n_Eq]
/=row_sum;Eqn[n_Eq][1]/=row_sum;Eqn[n_Eq][2]/=row_sum;n_Eq++;}Eqn[n_Eq]
=mat[1][1]-mat[2][2];Eqn[n_Eq][1]=-mat
[1]; Eqn[n_Eq][2]=mat
[2];/*normaiize the equation*/row_sum=Eqn[n_Eq]
*Eqn[n_Eq]
+Eqn[n_Eq][1]*Eqn[n_Eq][1]+Eqn[n_Eq][2]*Eqn[n_Eq][2];if(row_sum>0.0){row_sum=sqrt(row_sum);Eqn[n_Eq]
/=row_sum;Eqn[n_Eq][1]/=row_sum;Eqn[n_Eq][2]/=row_sum;n_Eq++;}}}}}if(removeOutliers){/*remove outliers*nGroups
=n_Eq;Sizes
=1;if(!removeEqOutliers(Eqn,nCols,nSizes,nGroups,Sizes,minRows,nTrials,SquaredThreshold,&n_Eq_new)){n_Eq=n_Eq_new;}}if(n_Eq>0){/*solve F by Jacobi*/find_sol_jacobi(Eqn.n_Eq,3,Epipoles[rf][i],&error);}}}}}free_dmatrix(Eqn,0.3*size_E_basis*(size_E_basis-1)+6*size_E_basis*size_E_basis-1,0,2);return(TRUE);}BOOL ImproveE_basis(INOUT DMAT3 E_basis[4]){inti,j,k,l,m;double**u,**v_tr,*w;double min_sv,sum;/*Note that each of the 3 4-by-3 matrices E_basis[*][*][j]is of*//*rank 2.After applying svd to each of them,ignore the smallest*//*singular value(which should be 0)in order to improve them*/u=dmatrix(1,4,1,3);v_tr=dmatrix(1,3,1,3),w=dvector(1,3);for(j=0;j<3;j++){for(k=0;k<4;k++){for(l=0;l<3;l++){u[1+k][1+l]=E_basis[k][l][j];}}if(!svdcmp(u,4,3,w,v_tr)){free_dmatrix(u,1,4,1,3);free_dmatrix(v_tr,1,3,1,3);free_dvector(w,1,3);return(FALSE);}/*find smallest singular value*min_sv=w[1];i=1;for(l=2;l<=3;l++){if(w[1]<min_sv){min_sv=w[1];i=1;}}/*replace the E_basis by the product ignoring w[i]*/for(k=0;k<4;k++){for(l=0;l<3;l++){sum=0.0;for(m=1;m=3;m++){if(m?。絠){sum+=u[1+k][m]*w[m]*v_tr[1+l][m];}}E_basis[k][l][j]=sum;}}}free_dmatrix(u,1,4,1,3);free_dmatrix(v_tr,1,3,1,3);free_dvector(w,1,3);return(TRUE);}FUNCTIONBOOLremoveEqOutliers /*remove outliers for homogeneous system*/(INOUT double* *Mat, /*the initial equations*/IN int nCols, /*there are nCols columns (unknowns)*/IN int nSizes, /**it is assumed that the equations are*organized in groups.These groups*have nSizes different sizes.*/IN int nGroups[], /**there are nSizes nGroups which mark the*number of groups of each size*/IN int Sizes[], /**there are nSizes Sizes which mark the*size of each group.*e.g.the first nGroups
are groups*each of size Sizes
,and so on*/IN int minRows, /**each iteration, try at least*minRows number of rows*/IN int nTrials, /*number of random trials to perform*/IN double SquaredThreshold,/*for boundary determination*/OUT int*outMatRows/**The number of rows in Mat to be*considered.These rows are the first*rows in the output Mat and do not*keep any grouping order*/)/DESCRIPTIONGiven the initial equations in Mat,get rid of theoutliers and keep the fitting equations as the leading rowsof the ontput Mat.Perform nTrials random trials,each time randomly choose groupsso that there are at least minRows equations.Solve this setof n_current_equations by Jacobi and check the solution againstALL equations.Keep track of the best solution(for which thenorm of the Mat*sol is minimal).Use the best solution to determine outliers(keeping theinitial partition of the equations into groups).Put the groups which fit the best solution as the leading*outMatRows rows of MatASSUMPTIONSThe equations are normalized so that there is no need toconsider the equation′s norm when performing the outliersremovalAUTHORTamir Shalom(April 10 1995)*/{int i,j,k,l;int iTrial;int iRows;int iGroup;int maxSize;int initialRows;/*how many initial rows*/int nTotalGroups; /*how many total groups*/int nAvailGroups; /*how many available groups*/double**subMat;int*from_row;/**starting row in Mat which*corresponds to Pth group*(among all nTotalGroups)*/int*to_row_plusl; /*ending row ...*/int nrandGroup;doubleerror,boundary;double*solution,*best_solution;doublesquared_norm,entry,min_error;/**Let maxSize be the maximal size of groups,thene*the maximal number of rows that will be used is*minRows+maxSize-1.*//*find maxSize,initialRows and nTotalGroups*/initialRows=nGroups
*Sizes
;nTotalGroups=nGroups
;maxSize=Sizes
;for(i=1;i<nSizes;i++){initialRows+=nGroups[i]*Sizes[i];nTotalGroups+=nGroups[i];if(Sizes[i]>maxSize){maxSize=Sizes[i];}}if(initialRows<minRows){return(FALSE);}/*allocate subMatrix*/subMat=dmatrix(0,minRows+maxSize-1-1,0,nCols-1);/*allocate solution and best_solution*/solution=dvector(0,nCols-1);best_solution=dvector(0,nCols-1);/*allocate from_row and to_row_plus1*/from_row=ivector(0,nTotalGroups-1);to_row_plus1=ivector(0,nTotaiGroups-1);/*perform the trials*/for(iTrial=0;iTrial<nTrials;iTrial++){/*initialize from_row and to_row_plus1*/iRows=0;iGroup=0;nAvailGroups=nTotalGroups;for(i=0;i<nSizes;i++){for(j=0;j<nGroups[i];j++){from_row[iGroup]=iRows;iRows+=Sizes[i];to_row_plus1[iGroup]=iRows;iGroup++;}}/*iRows denotes the number of already chosen equations*/iRows=0;while(iPows<minRows){nrandGroup=randomn(nAvailGroups);/*move the group to the subMat*/for(i=from_row[nrandGroup];i<to_row_plus1[nrandGroup];i++){for(j=0;j<nCols;j++){subMat[iRows][j]=Mat[i][j];}iRows++;}/*update nAvailGroups,from_row and to_row_plus1*/nAvailGroups--;for(i=nrandGroup;i<nAvailGroups;i++){from_row[i]=from_row[i+1];to_row_plus1[i]=to_row_plus1[i+1];}}/*solve the equations of subMat*/find_sol_jacobi(subMat.iRows,nCols.solution,&error);/*estimate the solution against all equations*/squared_norm=0.0;for(i=0;i<initialRows;i++){/**compute the Pth entry of the resuiting product of*Mat by solution*/entry=0.0;for(j=0;j<nCols;j++){entry+=Mat[i][j]*solution[j];}squared_norm+=entry*entry;}if((iTrial=0)‖(squared_norm<min_error)){min_error=squared_norm;/*printf(″iTrial %d error=%g\n″,iTrial,squared_norm);*//*keep the best solution so far*/for(j=0;j<nCols;j++){best_solution[j]=solution[j];}}}/*determine boundary for rejection of outliers*/boundary=min_error*SquaredThreshold/(initialRows-1);/*remove outlying groups of equations from Mat*/(*outMatRows)=0;iRows=0;iGroup=0;for(i=0;i<nSizes;i++){for(j=0;j<nGroups[i];j++){/*accumulate the norm of the whole group*/squared_norm=0.0;for(k=0;k<Sizes[i];k++){entry=0.0;for(l=0;l<nCols;l++){entry+=Mat[iRows+k][l]*best_solution[l];}squared_norm+=entry*entry;}WO 96/34365iGroup++;if(squared_norm<Sizes[i]*boundary){/*add Sizes[i]equations*//*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxprintf(″%d of kind %d is taken\n″,j,i);xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*/if((*outMatRows)=iRows){/*there is no need to copy the equations*//*yet(*outMatRows)should be updated*/(*outMatRows)+=Sizes[i];}else{for(k=0;k<Sizes[i];k++){for(l=0;l<nCols;l++){Mat[(*outMatRows)][l]=Mat[iRows+k][l];}(*outMatRows)++;}}}iRows+=Sizes[i];}}free_dmatrix(subMat,0,minRows+maxSize-1-1,0,nCols-1);free_dvector(solution,0,nCols-1);free_dvector(best_solution,0,nCols-1);free_ivector(from_row,0,nTotalGroups-1);free_ivector(to_row_plus1,0,nTotalGroups-1);printf(″after outliers removal only %d out of %d equations\n″,(*outMatRows),initialRows);return(TRUE);}附件B
> TT[j+2,10]=evalm(-p[1,i])> TT[j+2,11]=evalm(-p(2,i]);> TT[j+2,12]=-1> TT[j+2,16]=evalm(ppp[1,i]*p[1,i])> TT[j+2,17]=evalm[ppp[1,i]*p[2,i]) > TT[j+2,18]=evalm(ppp[1,i])> TT[j+2,19]=evalm(pp[2,i]*p[1,i])> TT[j+2,20]=evalm(pp[2,i]*p[2,i])> TT[j+2,21]=evalm(pp[2,i])> TT[j+2,25]=evalm(-ppp[1,i]*pp[2,i]*p[1,i])> TT[j+2,26]=evalm(-ppp[1,i]*pp[2,i]*p[2,i])> TT[j+2,27];=evalm(-ppp[1,i]*pp[2,i])> TT[j+3,13]=evalm(-p[1,i])> TT[j+3,14]=evalm(-p[2,i])> TT[j+3,15]=-1> TT[j+3,16]=evalm(ppp[2,i]*p[1,i])> TT[j+3,17]=evalm(ppp[2,i]*p[2,i])> TT[j+3,18]=evalm(ppp[2,i])> TT[j+3,22]=evalm(pp[2,i]*p[1,i])> TT[j+3,23]=evalm(pp[2,i]*p[2,i])> TT[j+3,24]=evalm(pp[2,i])> TT[j+3,25]=evalm(-ppp[2,i]*pp[2,i]*p[1,i])> TT[j+3,26]=evalm(-ppp[2,i]*pp[2,i]*p[2,i])> TT[j+3,27]=evalm(-ppp[2,i]*pp[2,i])> j=j(luò)+4> od> b=-col(TT,27)> TT=submatrix(TT.1..40,1..26)> sol=leastsqrs(TT.b)> X=vector(27,i->1)> for i from 1 to 26 do X[i]=sol[i];od> alpha=array(1..3,1..3,1..3)> for i from 1 to 3 do> for j from 1 to 3 do> for k from 1 to 3 do> alpha[i,j,k]=X[k+(i-1)*9+(j-1)*3];> ododod> E1=matrix(3,3)> E2=matrix(3,3)> E3=matrix(3,3)> for i from 1 to 3 do> for k from 1 to 3 do> E1[i,k]=alpha[i,1,k]> E2[i,k]=alpha[i,2,k]> E3[i,k]=alpha[i,3,k]> odod>> W1=matrix(3,3)> W2=matrix(3,3)> W3=matrix(3,3)> for j from 1 to 3 do> for k from 1 to 3 do> W1[j,k]=alpha[1,j,k]> W2[j,k]=alpha[2,j,k]> W3[j,k]=alpha[3,j,k]> odod>> end
>
> fnd_matrix=proc(M1,M2,M3)> Test=matrix(18,9,i->0)> for i from 1 to 3 do> Test[1,i]=col(M1,1)[i];Test[2,i+3]=col(M1,2)[i];Test[3,i+6]=col(M1,3)[i];> Test[4,i]=col(M1,2)[i];> Test[4,i+3]=col(M1,1)[i];> Test[5,i]=col(M1,3)[i];> Test[5,i+6]=col(M1,1)[i];> Test[6,i+3]=col(M1,3)[i];> Test[6,i+6]=col(M1,2)[i];> Test[7,i]=col(M2,1)[i];> Test[8,i+3]=col(M2,2)[i];> Test[9,i+6]=col(M2,3)[i];> Test[10,i]=col(M2,2)[i];> Test[10,i+3]=col(M2,1)[i];> Test[11,i]=col(M2,3)[i];> Test[11,i+6]=col(M2,1)[i];> Test[12,i+3]=col(M2,3)[i];> Test[12,i+6]=col(M2,2)[i];> Test[13,i]=col(M3,1)[i];> Test[14,i+3]=col(M3,2)[i];> Test[15,i+6]=col(M3,3)[i];> Test[16,i]=col(M3,2)[i];> Test[16,i+3]=col(M3,1)[i];> Test[17,i]=col(M3,3)[i];>> Test[17,i+6]=col(M3,1)[i];> Test[18,i+3]=col(M3,3)[i];> Test[18,i+6]=col(M3,2)[i];> od> b=-col(Test,9)> Test=submatrix(Test.1..18,1..8)> sol=lesstsqrs(Test,b)> X=vector(9,i->1)> for i from 1 to 8 do X[i]=sol[i];od> F=matrix(3,3)> for i from 1 to 3 do> for j from 1 to 3 do> F[i,j]=X[i+(j-1)*3];> odod> end
>> skew_cross=proc(w)> stack(evalm(crossprod([1,0,0],w));stack(evalm(crossprod(
,w)),evalm(cro> ssprod(
,w))));> end>
> get epipole from F^tv′=0> vp_from_F=proc(F)> G=transpose(F)> b=-col(G,3)> G=submatrix(G,1..3.1..2)> sol=leestsqrs(G,b)>> vp_est=vector(3,i->1)> vp_est[1]=sol[1]vp_est[2]=sol[2]> end
> get_Image_points=proc()> randn=rand(1..100)> R=rot_mat(0.9,
)> Rp=rot_mat(0.9,[2.3,0.7,1.1])> vpp=vector(3,[1.1,3.3,1.0])> vp=vector(3,
)> p=matrix(4,10)> for i from 1 to 3 do> for j from 1 to 10 do> p[i,j]=randn()/10;> odod> for j from 1 to 10 do> p[4,j]=1;> od> A=augment(R,vp)> B=augment(Rp,vpp)> p=evalm(submatrix(p,1..3.1..10))> pp=evalm(A &*P)
> b=-col(T,16)> T=submatrix(T,1..15,1..15)> sol=linsolve(T,b)> X=vector(15,l->1)> for i from 1 to 15 do X[l]=sol[i];od> T=matrix(4,4)> for i from 1 to 4 do> for j from 1 to 4 do> T[i,j]=X[j+(i-1)*4]> odod> end>
>> getk=proc(a,b,c)> evalm((transpose(crossprod(a,b))&*> crossprod(c,s))/(transpose(crossprod(c,a)) &*crossprod(c,a)));> end>
> rot_mat=proc(angle,w)> w_unit=evalm((1/norm(w,frobenius))*w);> WW=evalm(w_unit &*transpose(w_unit))> cos_mat=evalm(cos(angle)*array(identtty,1..3,1.3));> W_antisym=stack(evalm(crossprod([1,0,0],w_unlt)),stack(evalm(crossprod(
,w_unit)),evalm(crossprod(
,w_unit))));> evalm(cos_mat+sin(angle)*W_antlsym+(1-cos(angle))*WW);> end
> cross_mat=proc(w)> evalm(stack(evalm(crossprod([1,0,0],w_unit)),stack(evalm(crossprod(
,w> _unit)),evalm(crossprod(
,w_unit)))));> end
權(quán)利要求
1.為由一3D對象的至少一2D投影生成關(guān)于此3D對象的信息的方法,此方法包括提供一3D對象的至少一2D投影;產(chǎn)生以αijk=vi′bjk-vj″aik(i,j,k=1,2,3),描述的數(shù)的陣列,其中aij和bjk分別為矩陣A和B的陣元及vi′和vi″分別為向量v′和v″的元素,而所述矩陣和向量共同說明此3D對象的三個視圖的攝象機(jī)參數(shù);和利用此陣列生成關(guān)于此3D對象的信息。
2.為由一3D對象的具有n個對應(yīng)點pi和pi′(i=1……n)的第一和第二現(xiàn)有的視圖產(chǎn)生此3D對象的一新視圖的方法,此方法包括產(chǎn)生一張量αijk;及將點pi和pi′(i=1……n)的值插入到三線性公式,由此來提取表示此新視圖中一位置的x″,y″值;和根據(jù)插入步驟的結(jié)果生成新的視圖。
3.為由一3D對象的至少一2D投影再現(xiàn)此3D對象的方法,此方法包括提供一3D對象的至少一2D投影;產(chǎn)生一以αijk= vi′bjk-vj″aik(i,j,k=1,2,3),描述的數(shù)的陣列,其中aij和bjk分別為矩陣A和B的陣元及vi′和vi″分別為向量v′和v″的元素,而所述矩陣和向量共同說明此3D對象的三個視圖的攝象機(jī)參數(shù);將此陣列置換成與3D空間中的三個對應(yīng)平面相關(guān)的三個單應(yīng)性矩陣;和利用此三個單應(yīng)性矩陣再現(xiàn)此3D對象。
4.一光學(xué)識別方法,包括提供一3D對象的相互間存在一三線性關(guān)系的三個透視圖;和利用視圖之間的三線性關(guān)系以便由對準(zhǔn)來進(jìn)行光學(xué)識別。
5.按照權(quán)利要求4的方法,還包括再投影此3D對象。
6.按照權(quán)利要求1的方法,其中所述關(guān)于3D對象的信息包括3D對象的再現(xiàn)。
7.按照權(quán)利要求1的方法,其中所述關(guān)于3D對象的信息包括至少一個未作再現(xiàn)3D對象而產(chǎn)生的3D對象的新視圖。
8.按照權(quán)利要求1的方法,其中所述至少一2D投影包括至少一航空照片。
9.按照權(quán)利要求1的方法,其中所述至少一2D投影包括至少一衛(wèi)星照片。
10.按照權(quán)利要求1的方法,其中所述關(guān)于3D對象的信息包括至少一3D對象的座標(biāo)。
11.按照權(quán)利要求1的方法,其中此3D對象包括宇宙空間對象。
12.按照權(quán)利要求1的方法,其中此3D對象包括很大的對象如一船舶。
13.按照權(quán)利要求1的方法,其中此3D對象包括不實在的對象。
14.為由一3D對象的至少一2D攝影產(chǎn)生關(guān)于此3D對象的信息的設(shè)備,該設(shè)備包括為提供一3D對象的至少一2D投影的設(shè)備;運行產(chǎn)生以αijk=vi′bjk-vj″aik(i,j,k=1,2,3),描述的數(shù)的陣列的陣列發(fā)生器,其中aij和bjk分別為矩陣A和B的陣元及vi′和vi″分別為向量v′和v″的元素,而所述矩陣和向量共同說明此3D對象的三個視圖的攝象機(jī)參數(shù);和利用此陣列產(chǎn)生關(guān)于此3D對象的信息的陣列分析器。
15.為由一3D對象的具有n個對應(yīng)點pi和pi′(i=1……n)的第一和第二現(xiàn)有的視圖產(chǎn)生此3D對象一新視圖的設(shè)備,該設(shè)備包括為產(chǎn)生一張量αijk的設(shè)備;和為將點pi和pi′(i=1……n)的值插入成為三線性形式的設(shè)備,由此提取表示新視圖中一位置的x″,y″值;和為根據(jù)插入步驟的結(jié)果產(chǎn)生新視圖的設(shè)備。
16.為由一3D對象的至少一2D投影再現(xiàn)此3D對象的設(shè)備,該設(shè)備包括為提供一3D對象的至少一2D投影的設(shè)備;運行來產(chǎn)生一以αijk=vi′bjk-vj″aik(i,j,k=1,2,3),描述的數(shù)的陣列的陣列發(fā)生器,其中aij和bjk分別為矩陣A和B的陣元及vi′和vi″分別為向量v和v″的元素,而所述矩陣和向量共同說明3D對象的三個視圖的攝象機(jī)參數(shù);為將此陣列置換成為與3D空間中的三個對應(yīng)平面相關(guān)的三個單應(yīng)性矩陣運行的陣列置換器;和利用此三個單應(yīng)性矩陣再現(xiàn)此3D對象運行的3D對象再現(xiàn)器。
17.視覺識別設(shè)備,包括為提供一3D對象的相互間存在有三線性關(guān)系的三個透視圖的設(shè)備;和利用此視圖間三線性關(guān)系以便由對準(zhǔn)來進(jìn)行視覺識別的設(shè)備。
18.按照權(quán)利要求1的方法,其中所述至少一2D投影包括三個2D投影。
19.按照權(quán)利要求14的設(shè)備,其中所述至少一2D投影包括三個2D投影。
20.按照權(quán)利要求1的方法,還包括利用所述方法的結(jié)果來進(jìn)行進(jìn)行生產(chǎn)部件的座標(biāo)測量。
21.按照權(quán)利要求1的方法,還包括利用所述方法的結(jié)果來進(jìn)行生產(chǎn)部件的自動光學(xué)檢驗。
22.按照權(quán)利要求1的方法,還包括利用所述方法的結(jié)果來進(jìn)行機(jī)器人單元校準(zhǔn)。
23.按照權(quán)利要求1的方法,其特征是還包括利用所述方法的結(jié)果來進(jìn)行機(jī)器人軌跡識別。
24.按照權(quán)利要求1的方法,還包括利用所述方法的結(jié)果來進(jìn)行3D機(jī)器人反饋。
25.按照權(quán)利要求1的方法,還包括利用所述方法的結(jié)果來進(jìn)行景象的3D模擬。
26.按照權(quán)利要求1的方法,還包括利用所述方法的結(jié)果來進(jìn)行對象的3D模擬。
27.按照權(quán)利要求1的方法,還包括利用所述方法的結(jié)果來進(jìn)行反向工程。
28.按照權(quán)利要求1的方法,還包括利用所述方法的結(jié)果來進(jìn)行3D數(shù)字化。
29.3D景象再現(xiàn)方法,用于由一3D景象的第一、第二和第三視圖產(chǎn)生此3D景象的3D表示,此方法包括提供一3D景象的第一、第二和第三視圖;利用關(guān)于所述第一、第二和第三視圖的幾何信息產(chǎn)生一表示第一、第二和第三視圖之間的幾何關(guān)系的三線性張量;和由所述三線性張量產(chǎn)生3D景象的3D表示。
30.按照權(quán)利要求29,其中所述產(chǎn)生3D表示的步驟包括按此三線線張量計算第一和第二視圖的表射偏振幾何表示;和由所述表射偏振幾何表示生成所述3D表示。
31.圖象變換設(shè)備,為由一3D景象的第一和第二參考視圖產(chǎn)生此3D景象的新視圖,此設(shè)備包括為提供一3D景象的第一和第二參考視圖的設(shè)備;一三線性張量發(fā)生器,運行來分別利用關(guān)于所述第一參考視圖、第二參考視圖和新視圖的幾何信息產(chǎn)生表示第一、第二和新視圖之間的幾何關(guān)系的三線性張量;和一新視圖發(fā)生器,運行來以根據(jù)所述第一和第二參考視圖中的第一和第二對應(yīng)位置和所述三線性張量計算多個各自分別對應(yīng)于不同的所述第一和第二對應(yīng)位置的新視圖位置產(chǎn)生所述新視圖。
32.3D再現(xiàn)設(shè)備,為由一3D景象的第一、第二和第三視圖產(chǎn)生此3D景象的一3D表示,該設(shè)備包括為提供3D景象的第一、第二和第三視圖的設(shè)備;一三線性張量發(fā)生器,運行來利用關(guān)于所述第一、第二和第三視圖之間的幾何關(guān)系來產(chǎn)生表示所述第一、第二和第三視圖之間的幾何關(guān)系的三線性張量;和3D景象表示發(fā)生器,運行來由所述三線性張量產(chǎn)生3D景象的3D表示。
33.按照權(quán)利要求29的方法,所述提供步驟包括提供3D景象的m>3的視圖,且所述利用步驟對m個視圖中的多個3視圖的子集的每一個進(jìn)行,由此來產(chǎn)生多個中間張量,此方法還包括在所述產(chǎn)生步驟之前將此多個中間張量組合成最終的三線性張量,所述產(chǎn)生的步驟包括由所述最終的三線性張量生成3D景象的3D表示。
34.按照權(quán)利要求33的方法,其中所述利用步驟對第一和第二視圖結(jié)合每一其余的視圖進(jìn)行,由此產(chǎn)生m-2個中間張量。
35.按照權(quán)利要求33的方法,其中所述組合步驟包括將每一中間張量排列在一對應(yīng)的9×3(m-2))矩陣中;和將此最終的三線性張量定義作為所述矩陣的四個最大的基本成份。
36.匹配點求取設(shè)備,為尋求三個視圖之間的匹配位置,此設(shè)備包括提供三視圖之間的一初始匹配位置組;根據(jù)所述初始組產(chǎn)生表示所述三視圖間的關(guān)系的三線性張量;和利用三線性張量產(chǎn)生一最終的匹配位置組。
37.按照權(quán)利要求36的設(shè)備,其中所述利用步驟包括對三視圖的第一視圖中多個位置的每一個由張量產(chǎn)生各自與其余二個視圖相關(guān)的第一第二對應(yīng)的表射偏振線;沿第一表射偏振線選擇一第一候選匹配位置,并根據(jù)第一匹配位置計算沿第二表射偏振線的第二候選匹配位置;和重復(fù)選擇步驟直至此二候選匹配位置與第一視圖位置相符。
38.按照權(quán)利要求29的方法,還包括對3D表示進(jìn)行表面插補(bǔ),由此來產(chǎn)生作表面插補(bǔ)的輸出;和由作表面插補(bǔ)的輸出產(chǎn)生正射投影照片。
39.按照權(quán)利要求29的方法,其中所述提供的步驟包括順序地在景象內(nèi)的一序列位置上定位至少三個成象裝置,在此序列內(nèi)的每一位置利用每一個成象裝置形成此景象的至少一部分的圖象。
40.按照權(quán)利要求29的方法,還包括將3D景象的3D表示與所存貯的此3D景象的模型進(jìn)行比較。
全文摘要
用于由一3D對象的至少一2D投影產(chǎn)生關(guān)于此對象的信息的方法。此方法包括提供一3D對象的至少一2D投影(40),產(chǎn)生一以aijk=vi′bik-vj″ajk(i,j,k=1,2,3)描述的數(shù)陣列(50、60),其中ajk和bjk分別為矩陣A和B的元而vi′和vj′分別為向量v′和v″的元素,而矩陣(50)和向量60一起表述此3D對象的三個視圖(102)的攝象機(jī)參數(shù),并利用此矩陣來產(chǎn)生有關(guān)此3D對象(70)的信息。
文檔編號G01B11/00GK1198230SQ96194705
公開日1998年11月4日 申請日期1996年4月24日 優(yōu)先權(quán)日1995年4月25日
發(fā)明者阿姆農(nóng)·沙舒阿 申請人:考格內(nèi)特恩斯有限公司