lyhzzz 3 달 전
부모
커밋
a60a8d552d
1개의 변경된 파일199개의 추가작업 그리고 162개의 파일을 삭제
  1. 199 162
      src/main/java/com/fdkankan/fusion/common/ai/BBoxHierarchyBuilder.java

+ 199 - 162
src/main/java/com/fdkankan/fusion/common/ai/BBoxHierarchyBuilder.java

@@ -50,7 +50,9 @@ public class BBoxHierarchyBuilder {
         res.put("imageHeight",floors.getImageHeight());
         res.put("imageWidth",floors.getImageWidth());
         for (ShapeWrapper parent : allShapes) {
-            if (!parent.tag.getCategory().startsWith("Tag_")) continue;
+            if (!parent.tag.getCategory().contains("Tag")) {
+                continue;
+            }
 
             JSONArray children = new JSONArray();
             for (ShapeWrapper child : allShapes) {
@@ -90,167 +92,202 @@ public class BBoxHierarchyBuilder {
     public static void main(String[] args) {
         // 示例:读取 Floors 对象(你可以从 JSON 文件反序列化)
         String jsonInput = "{\n" +
-                "    \"floors\": [\n" +
-                "      {\n" +
-                "        \"imageWidth\": \"683\",\n" +
-                "        \"imageHeight\": \"637\",\n" +
-                "        \"shapes\": [\n" +
-                "          {\n" +
-                "            \"bbox\": [\n" +
-                "              219.5,\n" +
-                "              221.00000000000006,\n" +
-                "              273.5,\n" +
-                "              275.00000000000006\n" +
-                "            ],\n" +
-                "            \"name\": \"三人沙发\",\n" +
-                "            \"category\": \"ThreeSofa\"\n" +
-                "          },\n" +
-                "          {\n" +
-                "            \"bbox\": [\n" +
-                "              453,\n" +
-                "              408.50000000000006,\n" +
-                "              529,\n" +
-                "              484.5\n" +
-                "            ],\n" +
-                "            \"name\": \"双人床\",\n" +
-                "            \"category\": \"DoubleBed\"\n" +
-                "          },\n" +
-                "          {\n" +
-                "            \"bbox\": [\n" +
-                "              136.50000000000003,\n" +
-                "              169.00000000000006,\n" +
-                "              185.50000000000003,\n" +
-                "              218.00000000000006\n" +
-                "            ],\n" +
-                "            \"name\": \"三人沙发\",\n" +
-                "            \"category\": \"ThreeSofa\"\n" +
-                "          },\n" +
-                "          {\n" +
-                "            \"bbox\": [\n" +
-                "              417,\n" +
-                "              203.00000000000006,\n" +
-                "              455,\n" +
-                "              241.00000000000006\n" +
-                "            ],\n" +
-                "            \"name\": \"书桌\",\n" +
-                "            \"category\": \"Desk\"\n" +
-                "          },\n" +
-                "          {\n" +
-                "            \"bbox\": [\n" +
-                "              218.5,\n" +
-                "              468.00000000000006,\n" +
-                "              287.50000000000006,\n" +
-                "              537.0000000000001\n" +
-                "            ],\n" +
-                "            \"name\": \"双人床\",\n" +
-                "            \"category\": \"DoubleBed\"\n" +
-                "          },\n" +
-                "          {\n" +
-                "            \"bbox\": [\n" +
-                "              232.5,\n" +
-                "              160.00000000000006,\n" +
-                "              272.5,\n" +
-                "              200.00000000000006\n" +
-                "            ],\n" +
-                "            \"name\": \"书桌\",\n" +
-                "            \"category\": \"Desk\"\n" +
-                "          },\n" +
-                "          {\n" +
-                "            \"bbox\": [\n" +
-                "              297,\n" +
-                "              171.00000000000006,\n" +
-                "              321,\n" +
-                "              195.00000000000006\n" +
-                "            ],\n" +
-                "            \"name\": \"椅子\",\n" +
-                "            \"category\": \"Chair\"\n" +
-                "          },\n" +
-                "          {\n" +
-                "            \"bbox\": [\n" +
-                "              418.5,\n" +
-                "              181.00000000000006,\n" +
-                "              441.5,\n" +
-                "              204.00000000000006\n" +
-                "            ],\n" +
-                "            \"name\": \"椅子\",\n" +
-                "            \"category\": \"Chair\"\n" +
-                "          },\n" +
-                "          {\n" +
-                "            \"bbox\": [\n" +
-                "              233.48909302398266,\n" +
-                "              122.51909302398272,\n" +
-                "              272.51090697601734,\n" +
-                "              161.5409069760174\n" +
-                "            ],\n" +
-                "            \"name\": \"地毯\",\n" +
-                "            \"category\": \"Carpet\"\n" +
-                "          },\n" +
-                "          {\n" +
-                "            \"bbox\": [\n" +
-                "              398,\n" +
-                "              370,\n" +
-                "              549,\n" +
-                "              503\n" +
-                "            ],\n" +
-                "            \"name\": \"卧室\",\n" +
-                "            \"category\": \"Tag_bedroom\"\n" +
-                "          },\n" +
-                "          {\n" +
-                "            \"bbox\": [\n" +
-                "              155,\n" +
-                "              423,\n" +
-                "              364,\n" +
-                "              587\n" +
-                "            ],\n" +
-                "            \"name\": \"卧室\",\n" +
-                "            \"category\": \"Tag_bedroom\"\n" +
-                "          },\n" +
-                "          {\n" +
-                "            \"bbox\": [\n" +
-                "              499,\n" +
-                "              196,\n" +
-                "              633,\n" +
-                "              309\n" +
-                "            ],\n" +
-                "            \"name\": \"厨房\",\n" +
-                "            \"category\": \"Tag_kitchenroom\"\n" +
-                "          },\n" +
-                "          {\n" +
-                "            \"bbox\": [\n" +
-                "              69,\n" +
-                "              104,\n" +
-                "              620,\n" +
-                "              279\n" +
-                "            ],\n" +
-                "            \"name\": \"客厅\",\n" +
-                "            \"category\": \"Tag_livingroom\"\n" +
-                "          },\n" +
-                "          {\n" +
-                "            \"bbox\": [\n" +
-                "              540.3126453583378,\n" +
-                "              517.0000000000001,\n" +
-                "              530.1507146416621,\n" +
-                "              553.0000000000001\n" +
-                "            ],\n" +
-                "            \"name\": \"窗户\",\n" +
-                "            \"category\": \"BayWindow\"\n" +
-                "          },\n" +
-                "          {\n" +
-                "            \"bbox\": [\n" +
-                "              81.08604535833786,\n" +
-                "              110.00000000000006,\n" +
-                "              70.92411464166213,\n" +
-                "              298.00000000000006\n" +
-                "            ],\n" +
-                "            \"name\": \"窗户\",\n" +
-                "            \"category\": \"BayWindow\"\n" +
-                "          }\n" +
-                "        ],\n" +
-                "        \"floorsName\": \"1楼\"\n" +
-                "      }\n" +
-                "    ],\n" +
-                "    \"compass\": 0\n" +
-                "  }"; // 你的 JSON 字符串
+                "  \"version\": \"v4.0\",\n" +
+                "  \"floors\": [\n" +
+                "    {\n" +
+                "      \"imageWidth\": 1838,\n" +
+                "      \"imageHeight\": 667,\n" +
+                "      \"shapes\": [\n" +
+                "        {\n" +
+                "          \"bbox\": [1515, 513.5, 1560, 558.5],\n" +
+                "          \"category\": \"DoubleBed\",\n" +
+                "          \"name\": \"DoubleBed\"\n" +
+                "        },\n" +
+                "        {\n" +
+                "          \"bbox\": [1146, 530, 1173, 557],\n" +
+                "          \"category\": \"ThreeSofa\",\n" +
+                "          \"name\": \"ThreeSofa\"\n" +
+                "        },\n" +
+                "        {\n" +
+                "          \"bbox\": [928, 432.5, 1004, 508.5],\n" +
+                "          \"category\": \"DoubleBed\",\n" +
+                "          \"name\": \"DoubleBed\"\n" +
+                "        },\n" +
+                "        {\n" +
+                "          \"bbox\": [974, 236, 1002, 264],\n" +
+                "          \"category\": \"Chair\",\n" +
+                "          \"name\": \"Chair\"\n" +
+                "        },\n" +
+                "        {\n" +
+                "          \"bbox\": [1417, 73, 1503, 266],\n" +
+                "          \"category\": \"Tag\",\n" +
+                "          \"name\": \"卫生间\"\n" +
+                "        },\n" +
+                "        {\n" +
+                "          \"bbox\": [1251, 364, 1394, 589],\n" +
+                "          \"category\": \"Tag\",\n" +
+                "          \"name\": \"厨房\"\n" +
+                "        },\n" +
+                "        {\n" +
+                "          \"bbox\": [1501, 71.2244458500226, 1453, 47.8271541499773],\n" +
+                "          \"category\": \"BayWindow\",\n" +
+                "          \"name\": \"BayWindow\"\n" +
+                "        },\n" +
+                "        {\n" +
+                "          \"bbox\": [1367, 71.2244458500226, 1295, 47.8271541499773],\n" +
+                "          \"category\": \"BayWindow\",\n" +
+                "          \"name\": \"BayWindow\"\n" +
+                "        },\n" +
+                "        {\n" +
+                "          \"bbox\": [1197, 71.2244458500226, 1152, 47.8271541499773],\n" +
+                "          \"category\": \"BayWindow\",\n" +
+                "          \"name\": \"BayWindow\"\n" +
+                "        },\n" +
+                "        {\n" +
+                "          \"bbox\": [1530, 596.635330850023, 1457, 573.238039149977],\n" +
+                "          \"category\": \"BayWindow\",\n" +
+                "          \"name\": \"BayWindow\"\n" +
+                "        },\n" +
+                "        {\n" +
+                "          \"bbox\": [1351, 596.635330850023, 1298, 573.238039149977],\n" +
+                "          \"category\": \"BayWindow\",\n" +
+                "          \"name\": \"BayWindow\"\n" +
+                "        }\n" +
+                "      ],\n" +
+                "      \"name\": \"1楼\",\n" +
+                "      \"subgroup\": 0\n" +
+                "    },\n" +
+                "    {\n" +
+                "      \"imageWidth\": 2557,\n" +
+                "      \"imageHeight\": 648,\n" +
+                "      \"shapes\": [\n" +
+                "        {\n" +
+                "          \"bbox\": [169, 247, 253, 331],\n" +
+                "          \"category\": \"Desk\",\n" +
+                "          \"name\": \"Desk\"\n" +
+                "        },\n" +
+                "        {\n" +
+                "          \"bbox\": [1492, 459, 1526, 493],\n" +
+                "          \"category\": \"Desk\",\n" +
+                "          \"name\": \"Desk\"\n" +
+                "        },\n" +
+                "        {\n" +
+                "          \"bbox\": [428.5, 446, 477.5, 495],\n" +
+                "          \"category\": \"ThreeSofa\",\n" +
+                "          \"name\": \"ThreeSofa\"\n" +
+                "        },\n" +
+                "        {\n" +
+                "          \"bbox\": [789.5, 446, 836.5, 493],\n" +
+                "          \"category\": \"Desk\",\n" +
+                "          \"name\": \"Desk\"\n" +
+                "        },\n" +
+                "        {\n" +
+                "          \"bbox\": [1717, 389, 1761, 433],\n" +
+                "          \"category\": \"DoubleBed\",\n" +
+                "          \"name\": \"DoubleBed\"\n" +
+                "        },\n" +
+                "        {\n" +
+                "          \"bbox\": [1562, 452, 1594, 484],\n" +
+                "          \"category\": \"Desk\",\n" +
+                "          \"name\": \"Desk\"\n" +
+                "        },\n" +
+                "        {\n" +
+                "          \"bbox\": [891, 435.5, 922, 466.5],\n" +
+                "          \"category\": \"Desk\",\n" +
+                "          \"name\": \"Desk\"\n" +
+                "        },\n" +
+                "        {\n" +
+                "          \"bbox\": [1449, 185, 1494, 230],\n" +
+                "          \"category\": \"DoubleBed\",\n" +
+                "          \"name\": \"DoubleBed\"\n" +
+                "        },\n" +
+                "        {\n" +
+                "          \"bbox\": [577, 285, 728, 497],\n" +
+                "          \"category\": \"Tag\",\n" +
+                "          \"name\": \"卧室1\"\n" +
+                "        },\n" +
+                "        {\n" +
+                "          \"bbox\": [54, 68, 385, 492],\n" +
+                "          \"category\": \"Tag\",\n" +
+                "          \"name\": \"客厅\"\n" +
+                "        },\n" +
+                "        {\n" +
+                "          \"bbox\": [1293, 68, 1429, 260],\n" +
+                "          \"category\": \"Tag\",\n" +
+                "          \"name\": \"卧室2\"\n" +
+                "        },\n" +
+                "        {\n" +
+                "          \"bbox\": [1863.134, 63.8968958500227, 1814.134, 40.4996041499774],\n" +
+                "          \"category\": \"BayWindow\",\n" +
+                "          \"name\": \"BayWindow\"\n" +
+                "        },\n" +
+                "        {\n" +
+                "          \"bbox\": [700, 510.573880850023, 616, 487.176589149977],\n" +
+                "          \"category\": \"BayWindow\",\n" +
+                "          \"name\": \"BayWindow\"\n" +
+                "        },\n" +
+                "        {\n" +
+                "          \"bbox\": [514, 512.116400850023, 451, 488.719109149977],\n" +
+                "          \"category\": \"BayWindow\",\n" +
+                "          \"name\": \"BayWindow\"\n" +
+                "        },\n" +
+                "        {\n" +
+                "          \"bbox\": [1555, 63.8968958500227, 1485, 40.4996041499774],\n" +
+                "          \"category\": \"BayWindow\",\n" +
+                "          \"name\": \"BayWindow\"\n" +
+                "        },\n" +
+                "        {\n" +
+                "          \"bbox\": [1047, 513.958695850023, 966, 490.561404149977],\n" +
+                "          \"category\": \"BayWindow\",\n" +
+                "          \"name\": \"BayWindow\"\n" +
+                "        },\n" +
+                "        {\n" +
+                "          \"bbox\": [868, 509.423120850023, 805, 486.025829149977],\n" +
+                "          \"category\": \"BayWindow\",\n" +
+                "          \"name\": \"BayWindow\"\n" +
+                "        },\n" +
+                "        {\n" +
+                "          \"bbox\": [1935.44619585002, 278, 1912.04890414998, 337],\n" +
+                "          \"category\": \"BayWindow\",\n" +
+                "          \"name\": \"BayWindow\"\n" +
+                "        },\n" +
+                "        {\n" +
+                "          \"bbox\": [50.4670000000001, 476.833979149977, 256.9774, 500.231270850023],\n" +
+                "          \"category\": \"BayWindow\",\n" +
+                "          \"name\": \"BayWindow\"\n" +
+                "        }\n" +
+                "      ],\n" +
+                "      \"name\": \"2楼\",\n" +
+                "      \"subgroup\": 1\n" +
+                "    },\n" +
+                "    {\n" +
+                "      \"imageWidth\": 1423,\n" +
+                "      \"imageHeight\": 647,\n" +
+                "      \"shapes\": [\n" +
+                "        {\n" +
+                "          \"bbox\": [1147, 384, 1196, 433],\n" +
+                "          \"category\": \"DoubleBed\",\n" +
+                "          \"name\": \"DoubleBed\"\n" +
+                "        },\n" +
+                "        {\n" +
+                "          \"bbox\": [1211, 270, 1355, 359],\n" +
+                "          \"category\": \"Tag\",\n" +
+                "          \"name\": \"厨房\"\n" +
+                "        },\n" +
+                "        {\n" +
+                "          \"bbox\": [1271, 77.3732258500226, 1249, 53.9759341499773],\n" +
+                "          \"category\": \"BayWindow\",\n" +
+                "          \"name\": \"BayWindow\"\n" +
+                "        }\n" +
+                "      ],\n" +
+                "      \"name\": \"3楼\",\n" +
+                "      \"subgroup\": 2\n" +
+                "    }\n" +
+                "  ],\n" +
+                "  \"unit\": \"m\",\n" +
+                "  \"angle\": 0,\n" +
+                "  \"compass\": 0\n" +
+                "}"; // 你的 JSON 字符串
         JSONObject input = JSON.parseObject(jsonInput);
         Floors floor = input.getJSONArray("floors").getObject(0, Floors.class);