戶型圖識別的實現(xiàn)方式和在線識別效果體驗
基于AI戶型圖識別的實現(xiàn)方式介紹,先看看網(wǎng)絡上常見的戶型圖。

隨便找了一張戶型圖測試下效果

整套戶型圖在線識別的方案源碼包含三個項目:
一個畫圖:生成訓練用的數(shù)據(jù):用現(xiàn)有的戶型數(shù)據(jù)反向生成戶型圖或者手動標注數(shù)據(jù)。
一個識別:訓練后的結(jié)果結(jié)合上傳的戶型圖提取點位置的數(shù)據(jù)。
一個訓練:單獨的開源訓練項目:用來訓練識別戶型圖的模型。
訓練的模型包含了識別門,窗,墻體,識別率在百分之八十五以上,只識別墻體識別率會更高??梢宰R別各種構(gòu)件,包括不限于飄窗,單開門,雙開門,戶型朝向,床,家具等。
可以直接根據(jù)圖像生成的結(jié)果導入到blender,3Dmax,CAD中。方便處理海量的戶型數(shù)據(jù)文件。項目包含全體項目源碼和訓練模型教程以及現(xiàn)有模型。
臨時的測試接口地址:http://39.100.116.224:8000/index
因為資源有限只訓練了幾種常見的戶型風格,可以通過提高數(shù)據(jù)樣本,提高訓練次數(shù)和時長,增加戶型風格來提高識別率。并且能有效的排除掉在線戶型圖識別中的水印,指南針,標尺,文字表述等噪音干擾項。
在對房型圖中墻體進行識別時,采用了更為復雜的算法,比如Canny邊緣檢測、Hough變換等。目前,該算法可以基本解決誤識別的問題,對大多數(shù)房型圖,都能準確有效識別其墻體區(qū)域,獲得墻體線段的端點坐標。根據(jù)需求,識別結(jié)果中的墻體線段的端點和拐點信息可以存儲在XML或JSON格式的文件中,也可以通過HTTP接口的方式返回。然而,在較為困難的圖像識別問題中,幾乎沒有什么算法能達到100%的準確率。為了對識別結(jié)果中的個別錯誤情況進行修改,該系統(tǒng)提供了交互式的修正工具,供設(shè)計師等專業(yè)用戶使用,這大大提高了用戶的工作效率。wechat:wlgbzg
上圖點位置的測試數(shù)據(jù):
{"walls": [{"x": {"start": 322, "end": 817}, "y": {"start": 323, "end": 818}}, {"x": {"start": 853, "end": 592}, "y": {"start": 858, "end": 597}}, {"x": {"start": 408, "end": 524}, "y": {"start": 408, "end": 594}}, {"x": {"start": 853, "end": 524}, "y": {"start": 853, "end": 592}}, {"x": {"start": 853, "end": 592}, "y": {"start": 853, "end": 597}}, {"x": {"start": 862, "end": 763}, "y": {"start": 862, "end": 818}}, {"x": {"start": 952, "end": 268}, "y": {"start": 952, "end": 367}}, {"x": {"start": 705, "end": 524}, "y": {"start": 853, "end": 524}}, {"x": {"start": 957, "end": 597}, "y": {"start": 957, "end": 763}}, {"x": {"start": 853, "end": 367}, "y": {"start": 853, "end": 524}}, {"x": {"start": 408, "end": 619}, "y": {"start": 408, "end": 818}}, {"x": {"start": 322, "end": 597}, "y": {"start": 322, "end": 817}}, {"x": {"start": 322, "end": 817}, "y": {"start": 322, "end": 818}}, {"x": {"start": 705, "end": 268}, "y": {"start": 705, "end": 524}}, {"x": {"start": 408, "end": 268}, "y": {"start": 408, "end": 524}}, {"x": {"start": 853, "end": 367}, "y": {"start": 952, "end": 367}}, {"x": {"start": 952, "end": 367}, "y": {"start": 1123, "end": 367}}, {"x": {"start": 853, "end": 597}, "y": {"start": 858, "end": 597}}, {"x": {"start": 858, "end": 597}, "y": {"start": 957, "end": 597}}, {"x": {"start": 957, "end": 597}, "y": {"start": 1123, "end": 597}}, {"x": {"start": 862, "end": 763}, "y": {"start": 957, "end": 763}}, {"x": {"start": 957, "end": 763}, "y": {"start": 1123, "end": 763}}, {"x": {"start": 408, "end": 524}, "y": {"start": 705, "end": 524}}, {"x": {"start": 1123, "end": 367}, "y": {"start": 1123, "end": 597}}, {"x": {"start": 1123, "end": 597}, "y": {"start": 1123, "end": 763}}, {"x": {"start": 408, "end": 268}, "y": {"start": 705, "end": 268}}, {"x": {"start": 705, "end": 268}, "y": {"start": 952, "end": 268}}, {"x": {"start": 322, "end": 818}, "y": {"start": 323, "end": 818}}, {"x": {"start": 323, "end": 818}, "y": {"start": 408, "end": 818}}, {"x": {"start": 408, "end": 818}, "y": {"start": 862, "end": 818}}], "casement_windows": [{"x": {"start": 990, "end": 367}, "y": {"start": 1104, "end": 367}}, {"x": {"start": 408, "end": 350}, "y": {"start": 408, "end": 474}}, {"x": {"start": 322, "end": 610}, "y": {"start": 322, "end": 798}}, {"x": {"start": 952, "end": 278}, "y": {"start": 952, "end": 348}}, {"x": {"start": 408, "end": 629}, "y": {"start": 408, "end": 753}}], "scoop_windows": [], "single_doors": [{"x": {"start": 882, "end": 763}, "y": {"start": 934, "end": 763}}, {"x": {"start": 755, "end": 524}, "y": {"start": 807, "end": 524}}, {"x": {"start": 957, "end": 606}, "y": {"start": 957, "end": 654}}, {"x": {"start": 638, "end": 524}, "y": {"start": 690, "end": 524}}],?"sliding_doors": [], "entry_doors": [{"x": {"start": 853, "end": 540}, "y": {"start": 853, "end": 582}}]}