基于拍照的戶型圖識別生成三維房型的方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明設(shè)及圖像處理、虛擬現(xiàn)實、Ξ維重建等技術(shù)領(lǐng)域,具體設(shè)及一種基于拍照的 戶型圖識別生成Ξ維房型的方法。
【背景技術(shù)】
[0002] 隨著中國房地產(chǎn)業(yè)的快速發(fā)展W及現(xiàn)代年輕人強烈的自主意識,越來越多的年輕 人希望能把自己的裝修創(chuàng)意應(yīng)用于自己的房屋裝修。但是自主裝修者本身不是專業(yè)設(shè)計 師,往往又擔屯、實際的裝修效果與自己的創(chuàng)意想象相差太大。為解決運個矛盾,把平面戶型 圖轉(zhuǎn)化為3D戶型圖,購房者自己預先在3D模型上模擬裝修效果,然后再去實際裝修房屋。 另一方面,隨著房地產(chǎn)開發(fā)商之間競爭越來越激烈,房地產(chǎn)開發(fā)商也越來越需要一種現(xiàn)實 增強的技術(shù)W立體呈現(xiàn)房屋效果,增強購房人的現(xiàn)實體驗,促進房屋銷售。目前房地產(chǎn)銷售 展示僅僅依靠一張平面戶型圖,不能適應(yīng)現(xiàn)實需求。所W無論從自主裝修者、購房人的角度 來看,還是從房地產(chǎn)開發(fā)商的角度來看,允許用戶自主加載戶型圖,然后基于戶型圖進行Ξ 維重建從而實現(xiàn)3D展示十分必要。
[0003] 戶型圖的來源大致有兩種。一種是電子版戶型圖。運種戶型圖廣泛存在于各大購 房網(wǎng)站、家居裝修網(wǎng)站、房地產(chǎn)網(wǎng)站。用戶可W從運些網(wǎng)站下載與自己戶型相近的戶型圖。 運類戶型圖的特點是圖像清晰、標準,可W準確地被圖像識別方法識別。如果是正在購房的 用戶,可W方便地從地產(chǎn)商銷售那里獲取戶型圖電子版。如果是已購房用戶,就不一定能從 房地產(chǎn)銷售那里獲取戶型圖電子版。相關(guān)網(wǎng)站上也可W下載戶型圖電子版,只是運些戶型 圖與用戶自己的房屋在戶型和尺寸上都相差較大。
[0004] 另一種戶型圖是拍照版戶型圖。如果沒有自己房屋的電子版戶型圖,用戶可W對 自己的戶型圖宣傳彩頁拍照;如果沒有戶型圖宣傳彩頁,用戶可W自己手繪戶型圖,然后拍 照。拍照版戶型圖方式的優(yōu)點是可W簡單方便地獲取圖像,用于拍照的工具可W是相機、手 機、平板電腦等。在電子產(chǎn)品成為日用品的當下,相機、手機、平板電腦等工具非常普遍。運 種方式的缺點是:所獲取圖像受拍攝光線、距離、角度等諸多因素影響,圖像質(zhì)量與電子版 圖像相比,效果很差。如圖1所示為從宣傳冊上拍攝的戶型圖,圖2是拍攝的手繪戶型圖。 拍照版戶型圖圖像的缺陷有:圖像光照不均、圖像明暗不均、圖像角度傾斜、圖像扭曲、圖像 不清晰等。拍照版戶型圖圖像的種種缺陷,對于Ξ維重建來說,將是一個巨大的挑戰(zhàn)。
[0005] 目前基于戶型圖進行Ξ維重建的方法分為Ξ種。第一種方法是直接利用CAD等 繪圖軟件繪制的矢量建筑圖,在矢量圖中分析識別戶型結(jié)構(gòu),然后Ξ維重建(參考文獻1 : 基于結(jié)構(gòu)構(gòu)件識別的戶型圖Ξ維重建算法研究[碩±學位論文].北京:清華大學,2013); 第二種方法是首先對圖像進行矢量化掃描,然后在矢量圖中分析識別戶型結(jié)構(gòu),最后Ξ維 重建(參考文南犬 2 :Generatin邑 3DBuildingModelsfromArchitecturalDrawin邑s:A Survey.IE邸ComputerGra地icsandApplications, 2009, 29(1):20-30);第S種方法是 直接對掃描圖像進行結(jié)構(gòu)識別,然后Ξ維重建(參考文獻3JmprovedAutomaticAnalysis ofArchitecturalFloorPlans.InternationalConferenceonDocumentAnalysisand Recognition, 2011 :864-869)。第一種方法的優(yōu)點是避免了圖像矢量化過程,噪聲和干擾 與掃描圖像相比幾乎沒有,相關(guān)矢量信息完整準確,Ξ維重建準確率最高;缺點是適應(yīng)范圍 窄,僅僅適應(yīng)于利用CAD等繪圖軟件繪制的矢量建筑圖。后兩種方法的優(yōu)點是可W直接針 對戶型圖圖像進行Ξ維建模,擴大了適用范圍;缺點是戶型圖結(jié)構(gòu)識別準確率不高,對戶型 圖圖像本身要求嚴格,不能適應(yīng)設(shè)計不規(guī)范、有背景信息的類型。由于拍照版戶型圖具有 "圖像質(zhì)量差、圖像傾斜扭曲、圖像背景雜亂、戶型圖設(shè)計不規(guī)范"等現(xiàn)實特點,上述Ξ種基 于戶型圖的Ξ維重建方法均不能適用。因此,本發(fā)明提出了一種基于拍照的戶型圖識別生 成Ξ維房型的方法。
【發(fā)明內(nèi)容】
[0006] 本發(fā)明要解決的問題是:傳統(tǒng)的基于戶型圖的Ξ維重建方法不能適用拍照版戶型 圖,無法提供現(xiàn)場實時的Ξ維重建體驗。為了解決該問題,本發(fā)明提供了一種基于拍照的戶 型圖識別生成Ξ維房型的方法。
[0007] 具體的基于拍照的戶型圖識別生成Ξ維房型的方法,分為Ξ個部分。第一部分為 "圖像矯正",包括下列的步驟1到步驟9;第一部分為"墻體識別",包括下列的步驟10到步 驟22 ;第Ξ部分為"Ξ維重建",包括下列的步驟23到步驟24。詳細步驟如下:
[0008] 步驟1:對圖像進行初步預處理,得到戶型圖的灰度圖;初步預處理包括圖像去 噪、圖像增強和灰度轉(zhuǎn)換;
[0009] 步驟2 :對灰度圖進行0TSU二值化處理;0TSU表示最大類間方差法;
[0010] 步驟3 :對步驟2得到的圖提取最大邊緣輪廓,得到邊緣圖像;
[0011] 步驟4 :對邊緣圖像進行化U曲變換得到直線坐標信息;
[0012] 步驟5 :從步驟4所得直線中提取最上、最下、最左和最右四條線段;
[0013] 步驟6:根據(jù)四條線段計算透視變換的變換矩陣所需的兩組消隱點;
[0014] 步驟7 :計算透視變換的變換矩陣;
[0015] 步驟8:根據(jù)變換矩陣,對原圖像的灰度圖像進行透視變換,獲得矯正后的灰度圖 像;
[001引步驟9 :剪取戶型圖區(qū)域;
[0017]步驟10:對步驟9剪取的戶型圖區(qū)域進行外形輪廓檢測;
[001引步驟11 :采用墻體闊值分割方法對步驟10得到的戶型圖進行處理,去除與墻體無 關(guān)區(qū)域,得到二值圖;
[0019] 步驟12:對二值圖進行腐蝕和膨脹;
[0020] 步驟13對步驟12處理后的二值圖進行邊緣檢測,得到邊緣圖像;
[0021] 步驟14:對步驟13得到的邊緣圖像進行化U曲變換,將墻體邊緣線擬合成線段;
[0022] 步驟15 :對步驟14得到的邊緣線段根據(jù)角度分類為橫線和豎線兩個集合;
[0023] 步驟16 :對橫線和豎線集合中的線段進行矯正拉直;
[0024] 步驟17 :根據(jù)橫線集合和豎線集合,獲取墻體的簡化線;
[00幼步驟18 :簡化線歸并;
[0026] 步驟19 :根據(jù)簡化線生成基于錯點的墻體;
[0027] 步驟20:根據(jù)墻體之間的信息進行口識別;
[002引步驟21 :根據(jù)墻體之間的信息進行窗識別;
[0029] 步驟22:生成JS0N文件,記錄墻體、Π窗信息;
[0030] 步驟23:利用軟件化ity3D讀取JS0N文件,創(chuàng)建墻體、Π窗;
[0031] 步驟24 維重建完成,漫游展示,裝修展示。
[0032] 所述步驟6中獲取矯正前后的所需的兩組消隱點,具體步驟為:
[0033] 步驟6.1.計算最左、最右、最上、最下四條線段11、Ir、It、化所在的直線lleft、 Iright、Itop、Ibottom;
[0034] 步驟6.2.計算直線lleft、Iri曲t、Itop、化ottom兩兩直線所形成的交點,左上、 右上、左下、右下交點分別設(shè)為:Pi(Xl,yi)、化(而,y2)、P3(X3,y3)、P4(X4,y4);
[0035] 步驟6.3.計算直線lleft、Iri曲t、Itop、化ottom所圍成四邊形對角線的交點 Ρ5(Χ5,Υ5);
[0036] 步驟6.4.計算X坐標和y坐標的矯正量化和dv:化=(而-又1+與-又3)/4;dv= (y;5-yi+y廣y2) /4 ;
[0037] 步驟6.5.計算變換后左上、右上、左下、右下消隱點Pl'(V,yl')、P2'(?',y2')、 Ps' (xs',y/)^ Pi. y/):
[0038] x/ = X廣dh ;y/ = y廣dv ;而'=Xs+dh 巧2' = y;>-dv ;
[0039] X3' = Xjj-dh 巧3' = Ys+dv ;X4' = Xs+dh 巧4' = Ys+dv。
[0040] 所述的步驟9中,根據(jù)步驟6得到的消隱點坐標,向四邊放寬d個像素,在矯正的 圖像中剪取戶型圖區(qū)域,d=(化+dv)/10。
[0041] 所述步驟17,根據(jù)豎線集合和橫線集合獲取墻體簡化線,設(shè)豎線集合或橫線集合 中任意一條線段li(Xi,yi,而,y2),進行如下步驟:
[004引步驟17. 1,在線段li所在集合中尋找匹配墻線12(V,y/,而',y/),要滿足如 下條件:
[0043]a.被匹配墻線12從未被匹配過;
[0044]b. 1郝12之間的距離d與11和其他未被匹配的線段之間距離相比,d是最短的; d= |xi-xi' I;
[0045]c. li和12之間所包圍的矩形區(qū)域是墻體區(qū)域。
[0046]步驟 17. 2,確定li和 12對應(yīng)的簡化線si(SX1,syi,SX2,sy2,wi化h),其中(sxi,syi) 和(sx2,sy2)為簡化線的兩個端點坐標,wi化h為簡化線所代表的墻體的寬度;
[0047]若!1和 12為豎線,SX1=(Xi+V)/2;syi=Max(yi,yi');SX2=SXi;sy2= Min(y2,y2');wi化h= I;將簡化線si加入豎線簡化線集合;
[004引若!1和12為橫線,先獲得兩個中間參數(shù)lx和rx,lx=Max(X1,x/)町=Min(x2,X2);貝·]坐標和寬度為:sxi= (lx+rx)/2;sy1=yi;sx2=sxi;sy2=y1';width= Irx-lxI;將簡化線si加入橫線簡化線集合。
[0049] 步驟17. 3,根據(jù)li和12的相對位置關(guān)系,進行截斷操作,若1 1和1 2為豎線則在垂 直方向上進行判斷,若li和1 2為橫線則在水平方向上進行判斷:
[0050]A.在對應(yīng)的方向上,若1郝12完全重合,不進行截斷;
[0051]B.在對應(yīng)的方向上,若!1居于12中間,W11為基準在12上截斷,12被截斷后遺留 的兩端分別形成新的線段,將新的線段加入對應(yīng)的豎線或者橫線集合中;
[0052]C.在對應(yīng)的方向上,若li居于1 2的一端,W1 1為基準在1 2上截斷,1 2被截斷后遺 留的另一端形成新的線段,將新的線段加入對應(yīng)的豎線或者橫線集合中。
[0053] 所述步驟19基于錯點的墻體生成,具體步驟如下;
[0054]步驟19. 1,把簡化線集合SimplifyLinesU中的簡化線si(sxi,syi,SX2,sy2,wi化h) 展開成矩形rect,矩形rectW簡化線siW垂直方向的中軸線,Wwi化h為矩形寬度;設(shè) (Xi,yi)、(而,72)、(X3,y3)和(X4,y4)分別為矩形左上、