所屬的技術(shù)人員能夠理解,本發(fā)明的各個(gè)方面可以實(shí)現(xiàn)為系統(tǒng)、方法或程序產(chǎn)品。因此,本發(fā)明的各個(gè)方面可以具體實(shí)現(xiàn)為以下形式,即:完全的硬件實(shí)施方式、完全的軟件實(shí)施方式(包括固件、微代碼等),或硬件和軟件方面結(jié)合的實(shí)施方式,這里可以統(tǒng)稱為“電路”、“模塊”或“系統(tǒng)”。根據(jù)本發(fā)明的這種實(shí)施方式的電子設(shè)備。電子設(shè)備僅僅是一個(gè)示例,不應(yīng)對本發(fā)明實(shí)施例的功能和使用范圍帶來任何限制。電子設(shè)備以通用計(jì)算設(shè)備的形式表現(xiàn)。電子設(shè)備的組件可以包括但不限于:上述至少一個(gè)處理器、上述至少一個(gè)儲存器、連接不同系統(tǒng)組件(包括儲存器和處理器)的總線。其中,所述儲存器存儲有程序代碼,所述程序代碼可以被所述處理器執(zhí)行,使得所述處理器執(zhí)行本說明書上述“示例性方法”部分中描述的根據(jù)本發(fā)明各種示例性實(shí)施方式的步驟。儲存器可以包括易失性儲存器形式的可讀介質(zhì),例如隨機(jī)存取儲存器(ram)和/或高速緩存儲存器,還可以進(jìn)一步包括只讀儲存器(rom)。儲存器還可以包括具有一組(至少一個(gè))程序模塊的程序/實(shí)用工具,這樣的程序模塊包括但不限于:操作系統(tǒng)、一個(gè)或者多個(gè)應(yīng)用程序、其它程序模塊以及程序數(shù)據(jù),這些示例中的每一個(gè)或某種組合中可能包括網(wǎng)絡(luò)環(huán)境的實(shí)現(xiàn)??偩€可以為表示幾類總線結(jié)構(gòu)中的一種或多種,包括儲存器總線或者儲存器控制器、外圍總線、圖形加速端口、處理器或者使用多種總線結(jié)構(gòu)中的任意總線結(jié)構(gòu)的局域總線。電子設(shè)備也可以與一個(gè)或多個(gè)外部設(shè)備(例如鍵盤、指向設(shè)備、藍(lán)牙設(shè)備等)通信,還可與一個(gè)或者多個(gè)使得用戶能與該電子設(shè)備交互的設(shè)備通信,和/或與使得該電子設(shè)備能與一個(gè)或多個(gè)其它計(jì)算設(shè)備進(jìn)行通信的任何設(shè)備(例如路由器、調(diào)制解調(diào)器等等)通信。這種通信可以通過輸入/輸出(i/o)接口進(jìn)行。并且,電子設(shè)備還可以通過網(wǎng)絡(luò)適配器與一個(gè)或者多個(gè)網(wǎng)絡(luò)(例如局域網(wǎng)(lan),廣域網(wǎng)(wan)和/或公共網(wǎng)絡(luò),例如因特網(wǎng))通信。通過以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員易于理解,這里描述的示例實(shí)施方式可以通過軟件實(shí)現(xiàn),也可以通過軟件結(jié)合必要的硬件的方式來實(shí)現(xiàn)。因此,根據(jù)本公開實(shí)施方式的技術(shù)方案可以以軟件產(chǎn)品的形式體現(xiàn)出來,該軟件產(chǎn)品可以存儲在一個(gè)非易失性存儲介質(zhì)(可以是cd-rom,u盤,移動硬盤等)中或網(wǎng)絡(luò)上,包括若干指令以使得一臺計(jì)算設(shè)備(可以是個(gè)人計(jì)算機(jī)、服務(wù)器、終端裝置、或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行根據(jù)本公開實(shí)施方式的方法。在本公開的示例性實(shí)施例中,還提供了一種計(jì)算機(jī)可讀存儲介質(zhì),其上存儲有能夠?qū)崿F(xiàn)本說明書上述方法的程序產(chǎn)品。在一些可能的實(shí)施方式中,本發(fā)明的各個(gè)方面還可以實(shí)現(xiàn)為一種程序產(chǎn)品的形式,其包括程序代碼,當(dāng)所述程序產(chǎn)品在終端設(shè)備上運(yùn)行時(shí),所述程序代碼用于使所述終端設(shè)備執(zhí)行本說明書上述“示例性方法”部分中描述的根據(jù)本發(fā)明各種示例性實(shí)施方式的步驟。所述程序產(chǎn)品可以采用一個(gè)或多個(gè)可讀介質(zhì)的任意組合??勺x介質(zhì)可以是可讀信號介質(zhì)或者可讀存儲介質(zhì)??勺x存儲介質(zhì)例如可以為但不限于電、磁、光、電磁、紅外線、或半導(dǎo)體的系統(tǒng)、裝置或器件,或者任意以上的組合。可讀存儲介質(zhì)的更具體的例子(非窮舉的列表)包括:具有一個(gè)或多個(gè)導(dǎo)線的電連接、便攜式盤、硬盤、隨機(jī)存取存儲器(ram)、只讀存儲器(rom)、可擦式可編程只讀存儲器(eprom或閃存)、光纖、便攜式緊湊盤只讀存儲器(cd-rom)、光存儲器件、磁存儲器件、或者上述的任意合適的組合。計(jì)算機(jī)可讀信號介質(zhì)可以包括在基帶中或者作為載波一部分傳播的數(shù)據(jù)信號,其中承載了可讀程序代碼。這種傳播的數(shù)據(jù)信號可以采用多種形式,包括但不限于電磁信號、光信號或上述的任意合適的組合??勺x信號介質(zhì)還可以是可讀存儲介質(zhì)以外的任何可讀介質(zhì),該可讀介質(zhì)可以發(fā)送、傳播或者傳輸用于由指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用的程序??勺x介質(zhì)上包含的程序代碼可以用任何適當(dāng)?shù)慕橘|(zhì)傳輸,包括但不限于無線、有線、光纜、rf等等,或者上述的任意合適的組合??梢砸砸环N或多種程序設(shè)計(jì)語言的任意組合來編寫用于執(zhí)行本發(fā)明操作的程序代碼,所述程序設(shè)計(jì)語言包括面向?qū)ο蟮某绦蛟O(shè)計(jì)語言—諸如java、c++等,還包括常規(guī)的過程式程序設(shè)計(jì)語言—諸如“c”語言或類似的程序設(shè)計(jì)語言。程序代碼可以完全地在用戶計(jì)算設(shè)備上執(zhí)行、部分地在用戶設(shè)備上執(zhí)行、作為一個(gè)獨(dú)立的軟件包執(zhí)行、部分在用戶計(jì)算設(shè)備上部分在遠(yuǎn)程計(jì)算設(shè)備上執(zhí)行、或者完全在遠(yuǎn)程計(jì)算設(shè)備或服務(wù)器上執(zhí)行。在涉及遠(yuǎn)程計(jì)算設(shè)備的情形中,遠(yuǎn)程計(jì)算設(shè)備可以通過任意種類的網(wǎng)絡(luò),包括局域網(wǎng)(lan)或廣域網(wǎng)(wan),連接到用戶計(jì)算設(shè)備,或者,可以連接到外部計(jì)算設(shè)備(例如利用因特網(wǎng)服務(wù)提供商來通過因特網(wǎng)連接)。此外,上述附圖僅是根據(jù)本發(fā)明示例性實(shí)施例的方法所包括的處理的示意性說明,而不是限制目的。易于理解,上述附圖所示的處理并不表明或限制這些處理的時(shí)間順序。另外,也易于理解,這些處理可以是例如在多個(gè)模塊中同步或異步執(zhí)行的。應(yīng)當(dāng)注意,盡管在上文詳細(xì)描述中提及了用于動作執(zhí)行的設(shè)備的若干模塊或者單元,但是這種劃分并非強(qiáng)制性的。實(shí)際上,根據(jù)本公開的實(shí)施方式,上文描述的兩個(gè)或更多模塊或者單元的特征和功能可以在一個(gè)模塊或者單元中具體化。反之,上文描述的一個(gè)模塊或者單元的特征和功能可以進(jìn)一步劃分為由多個(gè)模塊或者單元來具體化。以上所述,僅為本發(fā)明的具體實(shí)施方式,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)以權(quán)利要求的保護(hù)范圍為準(zhǔn)。
背景技術(shù):
1、在對物體或場景進(jìn)行建模時(shí),需要根據(jù)采集的建模對象的實(shí)景照片去構(gòu)建建模對象的模型,而在拍攝建模對象的實(shí)景照片時(shí),不可避免的會將與建模對象臨近但不屬于建模對象的物體也進(jìn)行拍攝,或當(dāng)進(jìn)行拍攝時(shí),建模對象上有不需要進(jìn)行建模的物體時(shí),也會將該物體拍攝進(jìn)照片中,雖然在對建模對象建模前,會對拍攝的圖片進(jìn)行處理,以去除建模對象上的異常特征點(diǎn),但處理后的圖片可能會存在光影問題,或處理不恰當(dāng),導(dǎo)致異常特征點(diǎn)沒有處理完全,此時(shí)若根據(jù)圖片進(jìn)行建模,則得到的模型也會有對應(yīng)的異常點(diǎn),以致得到的模型質(zhì)量過低。
技術(shù)實(shí)現(xiàn)思路
1、針對上述技術(shù)問題,本發(fā)明采用的技術(shù)方案為:
2、根據(jù)本技術(shù)的一個(gè)方面,提供一種基于點(diǎn)云密度的場景模型建模方法,包括如下步驟:
3、步驟s100、響應(yīng)于接收到建模對象的若干建模圖片,對若干建模圖片進(jìn)行建模處理,以得到建模對象對應(yīng)的初始模型;
4、步驟s200、對初始模型進(jìn)行區(qū)域劃分,以得到若干個(gè)模型區(qū)域;每一模型區(qū)域中包括初始模型的若干模型點(diǎn)云;每一模型區(qū)域?qū)?yīng)的空間體積相等;
5、步驟s300、根據(jù)每一模型區(qū)域中包括的若干模型點(diǎn)云的數(shù)量,從若干個(gè)模型區(qū)域中確定出目標(biāo)模型區(qū)域;
6、步驟s400、將初始模型對應(yīng)的每一目標(biāo)模型區(qū)域中包括的模型點(diǎn)云刪除,以得到建模對象對應(yīng)的目標(biāo)模型。
7、在本技術(shù)的一種示例性實(shí)施例中,步驟s100包括:
8、步驟s110、根據(jù)每一建模圖片的拍攝時(shí)間,確定出若干個(gè)建模圖片組;每一建模圖片組中包括若干個(gè)建模圖片;
9、步驟s120、根據(jù)每一建模圖片組中包括的若干建模圖片的清晰度,從若干建模圖片中確定出若干調(diào)整建模圖片;
10、步驟s130、獲取每一建模圖片組中包括的調(diào)整建模圖片的數(shù)量,得到調(diào)整建模圖片數(shù)量列表c=(c1,c2,...,cj,...,cm);其中,j=1,2,...,m;m為所述建模圖片組的數(shù)量;cj為第j個(gè)建模圖片組中包括的調(diào)整建模圖片的數(shù)量;
11、步驟s140、若cj為第j個(gè)建模圖片組中包括的建模圖片的數(shù)量,則將第j個(gè)建模圖片組確定為第一建模圖片組;否則,將第j個(gè)建模圖片組確定為第二建模圖片組;
12、步驟s150、將第一建模圖片組中清晰度最大的建模圖片確定為目標(biāo)建模圖片;
13、步驟s160、將第二建模圖片組中包括的調(diào)整建模圖片刪除,并將剩余的建模圖片確定為目標(biāo)建模圖片;
14、步驟s170、根據(jù)預(yù)設(shè)的特征匹配算法,對若干目標(biāo)建模圖片中包含的建模對象的關(guān)鍵特征進(jìn)行模型匹配,以建立每一目標(biāo)建模圖片與建模對象的關(guān)聯(lián)關(guān)系;
15、步驟s180、根據(jù)每一目標(biāo)建模圖片與建模對象的關(guān)聯(lián)關(guān)系,生成建模對象對應(yīng)的初始模型。
16、在本技術(shù)的一種示例性實(shí)施例中,步驟s110包括:
17、步驟s111、根據(jù)每一建模圖片的拍攝時(shí)間的遞增順序,對若干建模圖片進(jìn)行排序,以得到圖片標(biāo)識列表a=(a1,a2,...,ai,...,an);其中,i=1,2,...,n;n為建模圖片的數(shù)量;ai為排序后第i個(gè)建模圖片對應(yīng)的圖片標(biāo)識;
18、步驟s112、依次遍歷圖片標(biāo)識列表a,若ai對應(yīng)的建模圖片的拍攝時(shí)間和ai+1對應(yīng)的建模圖片的拍攝時(shí)間處于同一個(gè)預(yù)設(shè)的拍攝時(shí)段內(nèi),則將ai對應(yīng)的建模圖片和ai+1對應(yīng)的建模圖片確定為同一個(gè)建模圖片組中,以得到若干個(gè)建模圖片組;每一建模圖片組中包括若干個(gè)建模圖片。
19、在本技術(shù)的一種示例性實(shí)施例中,步驟s120包括:
20、步驟s121、獲取每一建模圖片組中包括的若干建模圖片的清晰度,得到圖片清晰度列表集b=(b1,b2,...,bj,...,bm);bj=(bj1,bj2,...,bjk,...,bjp(j));其中,j=1,2,...,m;m為建模圖片組的數(shù)量;bj為第j個(gè)建模圖片組對應(yīng)的圖片清晰度列表;k=1,2,...,p(j);p(j)為第j個(gè)建模圖片組中包括的建模圖片的數(shù)量;bjk為第j個(gè)建模圖片組中包括的第k個(gè)建模圖片的清晰度;
21、步驟s122、遍歷圖片清晰度列表集b,若bjk<b0,則將bjk對應(yīng)的建模圖片確定為調(diào)整建模圖片;其中,b0為預(yù)設(shè)的圖片清晰度閾值。
22、在本技術(shù)的一種示例性實(shí)施例中,步驟s200包括:
23、步驟s210、對初始模型的模型點(diǎn)云進(jìn)行模擬處理,得到模型區(qū)域的目標(biāo)體積值;
24、步驟s220、根據(jù)模型區(qū)域的目標(biāo)體積值,確定出每一模型區(qū)域的目標(biāo)邊長;
25、步驟s230、根據(jù)每一模型區(qū)域,對初始模型進(jìn)行區(qū)域劃分,以使初始模型的任一部分均位于一個(gè)模型區(qū)域中。
26、在本技術(shù)的一種示例性實(shí)施例中,步驟s210包括:
27、步驟s211、獲取模型區(qū)域的初始體積值;
28、步驟s212、根據(jù)模型區(qū)域的初始體積值,確定模型區(qū)域的初始邊長;
29、步驟s213、根據(jù)模型區(qū)域的初始邊長,對初始模型進(jìn)行區(qū)域劃分,以得到每一模型區(qū)域?qū)?yīng)的初始模型的點(diǎn)云密度;
30、步驟s214、若任一模型區(qū)域?qū)?yīng)的點(diǎn)云密度小于d0,則將該模型區(qū)域確定為初始模型區(qū)域;其中,d0為預(yù)設(shè)的處理密度閾值;
31、步驟s215、獲取每一初始模型區(qū)域內(nèi)包括的模型點(diǎn)云的數(shù)量,得到模型點(diǎn)云數(shù)量列表e=(e1,e2,...,ec,...,ed);其中,c=1,2,...,d;d為初始模型區(qū)域的數(shù)量;ec為第c個(gè)初始模型區(qū)域內(nèi)包括的模型點(diǎn)云的數(shù)量;
32、步驟s216、若e1≤(∑dc=1ec)/t≤e2,則將初始體積值確定為目標(biāo)體積值;其中,t為初始模型的模型點(diǎn)云的總數(shù)量;e1為預(yù)設(shè)的第一點(diǎn)云處理比閾值;e2為預(yù)設(shè)的第二點(diǎn)云處理比閾值;0<e1<e2<1。
33、在本技術(shù)的一種示例性實(shí)施例中,步驟s216還包括:
34、步驟s217、若(∑dc=1ec)/t<e1,則將初始體積值與預(yù)設(shè)的體積系數(shù)的比值確定為初始體積值,并執(zhí)行步驟s212;其中,體積系數(shù)大于1;
35、步驟s218、若(∑dc=1ec)/t>e2,則將初始體積值與預(yù)設(shè)的體積系數(shù)的乘積確定為初始體積值,并執(zhí)行步驟s212。
36、在本技術(shù)的一種示例性實(shí)施例中,步驟s300包括:
37、步驟s310、根據(jù)每一模型區(qū)域中包括的若干模型點(diǎn)云的數(shù)量,確定每一模型區(qū)域?qū)?yīng)的點(diǎn)云密度,得到點(diǎn)云密度列表d=(d1,d2,...,da,...,db);其中,a=1,2,...,b;b為模型區(qū)域的數(shù)量;da為第a個(gè)模型區(qū)域?qū)?yīng)的點(diǎn)云密度;
38、步驟s320、若da<d0,則將第a個(gè)模型區(qū)域確定為目標(biāo)模型區(qū)域;其中,d0為預(yù)設(shè)的處理密度閾值。
39、根據(jù)本技術(shù)的一個(gè)方面,提供一種非瞬時(shí)性計(jì)算機(jī)可讀存儲介質(zhì),所述存儲介質(zhì)中存儲有至少一條指令或至少一段程序,所述至少一條指令或所述至少一段程序由處理器加載并執(zhí)行以實(shí)現(xiàn)前述的基于點(diǎn)云密度的場景模型建模方法。
40、根據(jù)本技術(shù)的一個(gè)方面,提供一種電子設(shè)備,包括處理器和前述的非瞬時(shí)性計(jì)算機(jī)可讀存儲介質(zhì)。
41、本發(fā)明至少具有以下有益效果:
42、本發(fā)明的基于點(diǎn)云密度的場景模型建模方法,通過對建模對象的若干建模圖片進(jìn)行建模處理,得到初始模型,并對初始模型進(jìn)行區(qū)域劃分,得到若干個(gè)模型區(qū)域,根據(jù)每一模型區(qū)域中包括的若干模型點(diǎn)云的數(shù)量,從若干個(gè)模型區(qū)域中確定出目標(biāo)模型區(qū)域,目標(biāo)模型區(qū)域即表示為初始模型中的散點(diǎn)或異常點(diǎn)對應(yīng)的區(qū)域,將初始模型對應(yīng)的每一目標(biāo)模型區(qū)域中包括的模型點(diǎn)云刪除,以得到建模對象對應(yīng)的目標(biāo)模型,以刪除不屬于建模對象的雜散點(diǎn)和異常點(diǎn),使得到的目標(biāo)模型可以更為準(zhǔn)確的表示建模對象的特征。