本發(fā)明涉及家居布局領(lǐng)域,特別是涉及一種家居自動布局的方法。
背景技術(shù):
隨著互聯(lián)網(wǎng)的飛速發(fā)展,在線的應(yīng)用程序數(shù)量激增,其中以3d方式展示空間的應(yīng)用,如3d游戲,場景編輯器,家居設(shè)計、汽車設(shè)計等軟件應(yīng)用,占不小的比例。
在家具設(shè)計布局方面,在一些應(yīng)用的場景中,尤其是多場景的時候,系統(tǒng)就會面臨一個場景布局的問題。傳統(tǒng)的場景布局一般由人工完成,或人工完成后進(jìn)行批量重復(fù)。前者雖效果較好,但工作量大,要做出規(guī)模大效果好的場景需要耗費(fèi)大量的人力物力和時間成本;后者雖然工作量小,需要的人力物力資源相應(yīng)少些,但產(chǎn)生的布局容易造成大量重復(fù),場景單薄枯燥,千篇一律,沒有特色,場景分辨度低。
隨著計算機(jī)輔助設(shè)計在場景自動布局中的應(yīng)用,在家居自動布局上,lap-faiyu等人在提出了基于模擬退火算法的家具自動擺放系統(tǒng),該系統(tǒng)通過家具包圍盒提出了accessiblespace的模型,從而比較現(xiàn)實的模擬了家具布局中家具間位置的關(guān)系。該系統(tǒng)用模擬退火算法迭代完成布局工作,創(chuàng)造性的提出了視覺中心(viewfrustum)的概念。但在模擬退火算法的迭代中,尋找解的方式都是純隨機(jī)的、沒有規(guī)律的,家居自動布局效率低下,且家居自動布局后的人性化效果差。
技術(shù)實現(xiàn)要素:
基于此,有必要針對目前家居自動布局效率低下且人性化效果差的問題,提供一種家居自動布局的方法。
一種家居自動布局的方法,所述方法包括:
輸入室內(nèi)需要布局的家具;
將輸入的所述家具分別歸類于坐臥家具、坐臥鄰接家具、視覺中心家具、舒適性家具共四類家具中其中一類;
以所述視覺中心家具為核心根據(jù)所述分類對輸入的所述家具進(jìn)行組合;
采用禁忌搜索算法對組合后的家具進(jìn)行布局。
在其中一個實施例中,所述以所述視覺中心家具為核心根據(jù)所述分類對輸入的所述家具進(jìn)行組合,包括:
獲取輸入的所述視覺中心家具;
為每個所述視覺中心家具創(chuàng)建對應(yīng)的功能特性;
根據(jù)每個所述視覺中心家具的功能特性匹配對應(yīng)的坐臥家具;
根據(jù)所述坐臥家具的特性匹配對應(yīng)的坐臥鄰接家具;
建立由每個所述視覺中心家具和對應(yīng)的坐臥家具及坐臥鄰接家具組成的家具組合。
在其中一個實施例中,所述采用禁忌搜索算法對組合后的家具進(jìn)行布局,包括:
對建立所述家具組合后的家具進(jìn)行初始布局,并以所述初始布局作為初始解;
在單次迭代內(nèi)根據(jù)所述初始解控制領(lǐng)域移動,并從領(lǐng)域移動中選擇一個解,所述領(lǐng)域移動為每個家具組合中坐臥鄰接家具的偏移量所組成偏移量組;
判斷選擇的解是否為最優(yōu)解;
若是,則接收并記錄該選擇的解。
在其中一個實施例中,所述采用禁忌搜索算法對組合后的家具進(jìn)行布局,還包括:
若選擇的解為非最優(yōu)解,則根據(jù)禁忌表判斷選擇的解是否被禁忌;
若是,則將選擇的解更新至禁忌表;
若否,則接收并記錄該選擇的解。
在其中一個實施例中,所述采用禁忌搜索算法對組合后的家具進(jìn)行布局,還包括:
若根據(jù)禁忌表判斷選擇的解被禁忌時,則根據(jù)評價函數(shù)計算該選擇的解的評價函數(shù)值;
根據(jù)該評價函數(shù)值判斷該選擇的解是否需要破禁;
若是,則接收并記錄該選擇的解。
在其中一個實施例中,所述接收并記錄該選擇的解之后,還包括:
將選擇的解更新至禁忌表。
在其中一個實施例中,所述對建立所述家具組合后的家具進(jìn)行初始布局,包括:
將所述視覺中心家具隨機(jī)擺放,將所述坐臥家具中的臥家具靠墻隨機(jī)擺放,將組合后的坐臥鄰接家具隨機(jī)擺放,作為初始布局。
在其中一個實施例中,所述偏移量為三維變量,所述三維變量包括所述坐臥鄰接家具沿所在的二維坐標(biāo)x軸和y軸方向的移動和在所述二維坐標(biāo)的偏移角度z。
在其中一個實施例中,所述采用禁忌搜索算法對組合后的家具進(jìn)行布局,還包括:
判斷當(dāng)前的迭代次數(shù)是否大于允許的最大次數(shù)值;
若是,則結(jié)束領(lǐng)域移動。
在其中一個實施例中,所述方法還包括:
對布局后的家具進(jìn)行旋轉(zhuǎn)、移動,增加或刪除中的一個或一個以上操作。
以上所述家居自動布局的方法將輸入的家具歸類后,以視覺中心家具為核心根據(jù)分類對輸入的家具進(jìn)行組合,并采用禁忌搜索算法對組合后的家具進(jìn)行布局;其中,對家具進(jìn)行歸類,由于不同類家具之間的布局具有關(guān)聯(lián)性,因此,可以減少家具擺放的隨機(jī)性,提升后續(xù)的布局效率;家具歸類后,以視覺中心家具為核心根據(jù)分類對輸入的家具進(jìn)行組合,可以根據(jù)視覺中心家具的功能與其他家具進(jìn)行組合,使家具的布局更為人性化;采用禁忌搜索算法對組合后的家具進(jìn)行布局時,可以通過禁忌準(zhǔn)則避免迂回搜索,提升布局效率。
附圖說明
圖1為家居自動布局的方法的流程圖;
圖2為圖1中步驟s160的流程圖;
圖3為圖1中步驟s180的流程圖;
圖4為圖1中步驟s180的另一流程圖。
具體實施方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
如圖1所示,本實施例的家居自動布局的方法包括步驟s120至步驟s180。
步驟s120,輸入室內(nèi)需要布局的家具。
在計算機(jī)系統(tǒng)中,通過鍵盤、鼠標(biāo)、觸摸屏等輸入設(shè)備可以輸入室內(nèi)需要布局的家具。在網(wǎng)頁界面或者應(yīng)用程序界面可以直接輸入需要布局的家具。輸入的家具通常與室內(nèi)相對應(yīng)。例如,二室一廳、三室二廳的室內(nèi)空間,要輸入的家具是有差異的。
步驟s140,將輸入的家具分別歸類于坐臥家具、坐臥鄰接家具、視覺中心家具、舒適性家具共四類家具中其中一類。
本實施例將家具分為四類,分別為坐臥家具、坐臥鄰接家具、視覺中心家具和舒適性家具。
坐臥家具是指能夠承載人的家具,分為坐家具和臥家具。坐家具包括沙發(fā)、椅子等;臥家具包括各種床類。坐臥家具中坐家具和臥家具的共同點(diǎn)是都可載人休息,在與視覺中心家具進(jìn)行排列組合時有共同點(diǎn),比如電視的對面既可以是一套沙發(fā)(如客廳),也可以是一張床(如臥室)。而坐臥家具內(nèi)中坐家具和臥家具的區(qū)別,主要是與坐臥鄰接家具組合時的區(qū)別,如坐家具沙發(fā)椅子等旁邊不適合擺放大衣柜、床頭柜等。
坐臥鄰接家具,就是坐家具或臥家具旁邊擺放的家具。具體又分坐具鄰接家具和臥具鄰接家具,它們都是坐臥家具的附屬家具,在屬性上有著相同點(diǎn)。而在擺放組合方式上,它們又有較為明顯的區(qū)別。臥具鄰接家具如大衣柜與臥家具床的組合關(guān)系和位置關(guān)系是比較固定的,而坐具鄰接家具如小茶幾與坐家具沙發(fā)或椅子的組合關(guān)系和位置關(guān)系則是不固定的。
視覺中心家具是指人們一般休息或會話時人們所對應(yīng)的焦點(diǎn),是能夠?qū)⑵渌揖呔酆系揭黄鸬闹行募揖?。視覺中心家具有電視、壁爐等家具。
舒適性家具是指為整個房間提供服務(wù)的家具,如空調(diào)、風(fēng)扇、吊燈等家具。它們的共同點(diǎn)是與其他家具的組合關(guān)系較小,它們只需要考慮覆蓋到的面積或人數(shù)即可。
步驟s160,以視覺中心家具為核心根據(jù)分類對輸入的家具進(jìn)行組合。
對家具進(jìn)行組合時,由于視覺中心家具電視、壁爐等為室內(nèi)的中心家具,因此,通常均以視覺中心家具為中心搭建或組合其他家具。
步驟s180,采用禁忌搜索算法對組合后的家具進(jìn)行布局。
禁忌搜索(taboosearch)算法是一種亞啟發(fā)式(meta-heuristic)隨機(jī)搜索算法,它從一個初始可行解出發(fā),選擇一系列的特定搜索方向(移動)作為試探,選擇實現(xiàn)讓特定的目標(biāo)函數(shù)值變化最多的移動。為了避免陷入局部最優(yōu)解,禁忌搜索算法中采用了一種靈活的“記憶”方法,對已經(jīng)優(yōu)化的過程進(jìn)行記錄和選擇,指導(dǎo)下一步的搜索方向,這就是禁忌表的建立。禁忌搜索是對人類思維過程本身的一種模擬,它通過對一些局部最優(yōu)解的禁忌(也可以說是記憶)達(dá)到接納一部分較差解,從而跳出局部搜索的目的,提升布局效率。
以上所述家居自動布局的方法將輸入的家具歸類后,以視覺中心家具為核心根據(jù)分類對輸入的家具進(jìn)行組合,并采用禁忌搜索算法對組合后的家具進(jìn)行布局;其中,對家具進(jìn)行歸類,由于不同類家具之間的布局具有關(guān)聯(lián)性,因此,可以減少家具擺放的隨機(jī)性,提升后續(xù)的布局效率;家具歸類后,以視覺中心家具為核心根據(jù)分類對輸入的家具進(jìn)行組合,可以根據(jù)視覺中心家具的功能與其他家具進(jìn)行組合,使家具的布局更為人性化;采用禁忌搜索算法對組合后的家具進(jìn)行布局時,可以通過禁忌準(zhǔn)則避免迂回搜索,提升布局效率。
如圖2所示,步驟s160包括步驟s161至步驟s165。
步驟s161,獲取輸入的視覺中心家具。
可以根據(jù)分類獲取視覺中心家具,分類可以采用標(biāo)記分辯類別,不同類的標(biāo)記不同,根據(jù)標(biāo)記即可挑選出視覺中心家具。
步驟s162,為每個視覺中心家具創(chuàng)建對應(yīng)的功能特性。
視覺中心家具如電視的功能是供人們坐或臥前面觀看,因此,視覺中心家具的功能特性可以通過自然語言的方式描述,也可以通過某些關(guān)鍵詞進(jìn)行描述。
步驟s163,根據(jù)每個視覺中心家具的功能特性匹配對應(yīng)的坐臥家具。
例如,對于電視,由于工坐或臥于前觀看,因此,可以根據(jù)這種功能特性選擇椅子或沙發(fā)等坐臥家具與電視進(jìn)行組合。
步驟s164,根據(jù)坐臥家具的特性匹配對應(yīng)的坐臥鄰接家具。
例如,如果視覺中心家具電視匹配沙發(fā)作為坐臥家具,則可以與沙發(fā)匹配茶幾行等坐臥鄰接家具。
步驟s165,建立由每個視覺中心家具和對應(yīng)的坐臥家具及坐臥鄰接家具組成的家具組合。
對于由每個視覺中心家具,以及與每個視覺中心家具匹配的坐臥家具,和進(jìn)一步與坐臥家具匹配的坐臥鄰接家具,以每個視覺中心家具為核心可以建立家具組合。
其中,舒適性家具由于其在組合時只需要考慮到覆蓋到室內(nèi)面積或人數(shù),如空調(diào),因此,單獨(dú)設(shè)置即可。
如圖3所示,步驟s180包括步驟s181至步驟s184。
步驟s181,對建立家具組合后的家具進(jìn)行初始布局,并以初始布局作為初始解。
在常規(guī)的家居布局中,往往對隨機(jī)擺放的家具沒有進(jìn)行位置和角度的限制。然而在實際擺放中,床頭、電視柜等家具一般是平行并貼著墻擺放的,而椅子、裝飾品等家具則沒有具體的常規(guī)。根據(jù)經(jīng)驗知識,本實施例對家居布局的初始解做了改進(jìn),將部分明顯與墻有位置角度關(guān)系的家具以其與墻的關(guān)系擺放,而沒有明顯關(guān)系的則進(jìn)行隨機(jī)擺放。具體而言,將視覺中心家具隨機(jī)擺放,將坐臥家具中的臥家具靠墻隨機(jī)擺放,將組合后的坐臥鄰接家具隨機(jī)擺放,作為初始布局。
步驟s182,在單次迭代內(nèi)根據(jù)初始解控制領(lǐng)域移動,并從領(lǐng)域移動中選擇一個解,領(lǐng)域移動為每個家具組合中坐臥鄰接家具的偏移量所組成偏移量組。
本實施例中,領(lǐng)域移動的解為所有家具組合中的坐臥鄰接家具的坐標(biāo)、旋轉(zhuǎn)角度構(gòu)成的一個解。領(lǐng)域移動為坐臥鄰接家具的三維移動,這里的三維移動是指移動的偏移量為三維變量,包括坐臥鄰接家具沿所在的二維坐標(biāo)x軸和y軸方向的移動和在二維坐標(biāo)的偏移角度z。
步驟s183,判斷選擇的解是否為最優(yōu)解。
本實施例中,可以通過評價函數(shù)計算解的評價函數(shù)值,如果評價函數(shù)值為歷史最好值,則選擇的解即為最優(yōu)解。
步驟s184,若是,則接收并記錄該選擇的解。
如圖4所示,步驟s180還包括步驟s185和步驟s186。
步驟s185,若選擇的解為非最優(yōu)解,則根據(jù)禁忌表判斷選擇的解是否被禁忌。
禁忌表中存放的禁忌項一般為鄰域的一次移動,如一次元素位置的交換,或者一個元素移動的向量。本實施例將鄰域移動后取得的解放入禁忌表,該解可以將與該解臨近的解禁忌。這樣就可以避免搜索陷入局部最優(yōu)解而增強(qiáng)全范圍的搜尋解的能力。本實施例中,禁忌表中的禁忌項為算法的某一個解。在算法每次迭代后,將得到的解放入禁忌表。在算法的下次迭代時,若得出與禁忌表中解相近的解時,則確定其為禁忌解,計算其評價函數(shù),若評價函數(shù)值為歷史最好,則破禁將解接受。若評價函數(shù)并非歷史最好,則選擇本次迭代的其他解中最優(yōu)解。禁忌表中的項在若干次迭代中被更新掉。
步驟s186,若是,則將選擇的解更新至禁忌表。
如果選擇的解被禁忌,則在禁忌表中有相近的解,則對禁忌表進(jìn)行更新。若選擇的解沒有被禁忌,則接收并記錄該選擇的解。
其中,若由步驟s185根據(jù)禁忌表判斷選擇的解被禁忌時,本實施例則需要進(jìn)一步判斷該解是否需要破禁。具體的,可以根據(jù)評價函數(shù)計算該選擇的解的評價函數(shù)值,根據(jù)該評價函數(shù)值判斷該選擇的解是否需要破禁,若是,則接收并記錄該選擇的解。
本實施例中,在接收并記錄選擇的解后,則將選擇的解更新至禁忌表。
由步驟s180完成布局后,用戶可以對布局進(jìn)行反饋,包括對家居的旋轉(zhuǎn)、移動,增加和刪除中的一個或一個以上操作。其中,對家居進(jìn)行增加或者刪除會反饋到布局的初始解生成處,家居進(jìn)行重新的組合,以便進(jìn)一步形成新的布局。用戶若進(jìn)行旋轉(zhuǎn)操作,則會重新計算評價函數(shù);而用戶對家居的移動操作,則會重新計算評價函數(shù),之后會將其看作以被操作家具所在的模塊為單位進(jìn)行的一次迭代,并更新禁忌表。
其中,本實施例的禁忌搜索算法的停止條件可以包括三種。第一種是鄰域移動得出的解全部在禁忌表中,且沒有破禁的解。第二種是得出的解的評價函數(shù)達(dá)到用戶需求。第三種是迭代次數(shù)達(dá)到最大迭代次數(shù)。
因此,在單次迭代時,可以判斷當(dāng)前的迭代次數(shù)是否大于允許的最大次數(shù)值,最大次數(shù)值即為允許的最大迭代次數(shù),若是,則結(jié)束領(lǐng)域移動,即停止搜索。
通常禁忌搜索算法具有八個構(gòu)成要素,分別是編碼方式,評價函數(shù),初始解,移動和鄰域,禁忌表,選擇策略,渴望水平函數(shù),以及停止準(zhǔn)則。在這些要素涵蓋的參數(shù)中,有五個重要參數(shù)決定了禁忌搜索算法的求解效率和最優(yōu)解精度,它們分別是最大迭代次數(shù)、禁忌表長度、鄰域解個數(shù)、候選解集個數(shù)和集中搜索次數(shù)。目前國內(nèi)外對于禁忌搜索算法理論方面的研究工作比較少,對于決定算法性能的參數(shù)設(shè)定大多是依據(jù)以往對特定問題的經(jīng)驗數(shù)據(jù)進(jìn)行設(shè)定,而一些比較少提到的參數(shù)優(yōu)化方法多是采用針對每一個參數(shù)粗魯?shù)拿杜e法進(jìn)行參數(shù)優(yōu)化,這種方式非但不能保證將各個參數(shù)組合到一起能否保證最優(yōu)解精度,單單是優(yōu)化參數(shù)所耗費(fèi)的時間便是不可忽略的問題。本實施例在matlab中采取了遺傳算法對禁忌搜索算法中的參數(shù)進(jìn)行了優(yōu)化。
具體的,本實施例從兩個方面使用遺傳算法對禁忌搜索算法的參數(shù)進(jìn)行了優(yōu)化,分別是禁忌搜索算法的最大迭代次數(shù)和鄰域候選解個數(shù)。遺傳算法有有很強(qiáng)的全局優(yōu)化能力,不易在搜索過程中選擇局部較優(yōu)解無法跳出;并且遺傳算法可將一組參數(shù)一起組合優(yōu)化,而不必像傳統(tǒng)方法一樣分別優(yōu)化。經(jīng)過遺傳算法優(yōu)化后,得出適合本算法的最大迭代次數(shù)為165,鄰域大小為20。
本實施例采用的評價函數(shù)為增量式的評價函數(shù),綜合了相對距離、朝向角度和對稱性三部分,體現(xiàn)了家具間互相關(guān)系對擺放方案的評價。具體的,對于布局φ,有如下評價函數(shù):
c(φ)=w1·cd(φ)+w2·ca(φ)+w3·cs(φ)(1)
根據(jù)經(jīng)驗,取w1=0.5,w2=0.7,w3=30。
其中,距離函數(shù)
距離函數(shù)用于表示坐臥鄰接家具相對于坐臥家具的距離對布局的影響,其中dpij表示家具i和j之間水平距離與垂直距離之和,rdij表示家具i和j間共用空間的距離。
朝向角度函數(shù)
朝向角度函數(shù)用于表示坐臥鄰接家具的角度與坐臥家具的角度對布局的影響。
對稱性函數(shù)
對稱性函數(shù)用于表示在同一家具組合內(nèi)兩個以上同類型坐臥鄰接家具相對于坐臥家具的對稱性對布局的影響,其中t為中心家具,一般為坐臥家具;sdtij表示i關(guān)于t相對于j的對稱性距離。
在迭代過程中,若迭代中新的布局中對于當(dāng)前布局只有移動操作,本實施例則采取增量式的計算方法,以加快迭代過程。在家具進(jìn)行移動時,采用以下增量公式:
其中,基于本實施例以家具ij間的水平與垂直距離的和dpij模擬家具ij間的距離,可以通過加減法得出增量δdpij;而對稱性距離sdtij,則可以由t與j的坐標(biāo)通過加減法得出i的變化。因此δc(φ)可由加減計算得出。
在迭代過程中,若迭代中新的布局相對于當(dāng)前布局只有旋轉(zhuǎn)操作,則有關(guān)于旋轉(zhuǎn)的增量式計算方法,公式如下:
有公式可得出增量δc(φ)。
本文提出了適合用于家居布局的禁忌搜索算法,并用遺傳算法優(yōu)化了其中的參數(shù)。與現(xiàn)存的研究相比,該算法減少了迭代次數(shù),并縮短了運(yùn)行時間,提高了效率。
本實施例還提供了一種計算機(jī)系統(tǒng),包括輸入設(shè)備、處理器、顯示屏和存儲器,存儲器存儲有啟動程序,顯示屏顯示有啟動程序的啟動圖標(biāo),處理器在接收到輸入設(shè)備對啟動圖標(biāo)的啟動指令時,執(zhí)行啟動程序?qū)崿F(xiàn)以上所述的方法。其中,計算機(jī)系統(tǒng)可以是臺式機(jī),筆記本、手機(jī)等電子設(shè)備。
以上所述實施例的各技術(shù)特征可以進(jìn)行任意的組合,為使描述簡潔,未對上述實施例中的各個技術(shù)特征所有可能的組合都進(jìn)行描述,然而,只要這些技術(shù)特征的組合不存在矛盾,都應(yīng)當(dāng)認(rèn)為是本說明書記載的范圍。
以上所述實施例僅表達(dá)了本發(fā)明的幾種實施方式,其描述較為具體和詳細(xì),但并不能因此而理解為對發(fā)明專利范圍的限制。應(yīng)當(dāng)指出的是,對于本領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進(jìn),這些都屬于本發(fā)明的保護(hù)范圍。因此,本發(fā)明專利的保護(hù)范圍應(yīng)以所附權(quán)利要求為準(zhǔn)。