DawnC commited on
Commit
8b000fd
·
verified ·
1 Parent(s): a43ff7a

Upload functional_zone_identifier.py

Browse files
Files changed (1) hide show
  1. functional_zone_identifier.py +64 -27
functional_zone_identifier.py CHANGED
@@ -688,7 +688,7 @@ class FunctionalZoneIdentifier:
688
  if not high_conf_objects:
689
  high_conf_objects = detected_objects # 後備到所有物件
690
 
691
- # 基於個別重要物件創建區域
692
  processed_objects = set() # 避免重複處理相同類型的物件
693
 
694
  for obj in high_conf_objects[:3]: # 限制為前3個物件
@@ -788,7 +788,6 @@ class FunctionalZoneIdentifier:
788
  區域描述字串
789
  """
790
  try:
791
- # 物件特定描述
792
  descriptions = {
793
  "bed": "Sleeping and rest area",
794
  "sofa": "Seating and relaxation area",
@@ -797,10 +796,42 @@ class FunctionalZoneIdentifier:
797
  "tv": "Entertainment and media area",
798
  "laptop": "Work and computing area",
799
  "potted plant": "Decorative and green space area",
800
- "refrigerator": "Food storage and kitchen area",
801
  "car": "Vehicle and transportation area",
802
  "person": "Activity and social area"
803
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
804
 
805
  return descriptions.get(class_name, f"Functional area with {class_name}")
806
 
@@ -899,30 +930,36 @@ class FunctionalZoneIdentifier:
899
  "surfboard": "sports area",
900
  "tennis racket": "sports area",
901
 
902
- # 廚房與食品(Kitchen)
903
- "bottle": "kitchen area",
904
- "wine glass": "kitchen area",
905
- "cup": "kitchen area",
906
- "fork": "kitchen area",
907
- "knife": "kitchen area",
908
- "spoon": "kitchen area",
909
- "bowl": "kitchen area",
910
- "banana": "kitchen area",
911
- "apple": "kitchen area",
912
- "sandwich": "kitchen area",
913
- "orange": "kitchen area",
914
- "broccoli": "kitchen area",
915
- "carrot": "kitchen area",
916
- "hot dog": "kitchen area",
917
- "pizza": "kitchen area",
918
- "donut": "kitchen area",
919
- "cake": "kitchen area",
920
- "dining table": "furniture arrangement area",
921
- "refrigerator": "kitchen area",
922
- "oven": "kitchen area",
923
- "microwave": "kitchen area",
924
- "toaster": "kitchen area",
925
- "sink": "kitchen area",
 
 
 
 
 
 
926
  "book": "miscellaneous area",
927
  "clock": "miscellaneous area",
928
  "vase": "decorative area",
 
688
  if not high_conf_objects:
689
  high_conf_objects = detected_objects # 後備到所有物件
690
 
691
+ # 根據個別重要物件創建區域
692
  processed_objects = set() # 避免重複處理相同類型的物件
693
 
694
  for obj in high_conf_objects[:3]: # 限制為前3個物件
 
788
  區域描述字串
789
  """
790
  try:
 
791
  descriptions = {
792
  "bed": "Sleeping and rest area",
793
  "sofa": "Seating and relaxation area",
 
796
  "tv": "Entertainment and media area",
797
  "laptop": "Work and computing area",
798
  "potted plant": "Decorative and green space area",
 
799
  "car": "Vehicle and transportation area",
800
  "person": "Activity and social area"
801
  }
802
+
803
+ # 只有在明確的廚房場景中才使用廚房描述
804
+ kitchen_related_objects = ["refrigerator", "microwave", "oven", "sink", "dishwasher", "stove"]
805
+
806
+ if class_name in kitchen_related_objects:
807
+ # 檢查場景類型是否真的是廚房相關
808
+ kitchen_scene_types = ["kitchen", "professional_kitchen", "cooking_area"]
809
+
810
+ if scene_type in kitchen_scene_types:
811
+ # 只有在明確的廚房場景中才使用廚房描述
812
+ if class_name == "refrigerator":
813
+ descriptions[class_name] = "Food storage and kitchen area"
814
+ elif class_name == "microwave":
815
+ descriptions[class_name] = "Food preparation area"
816
+ elif class_name == "oven":
817
+ descriptions[class_name] = "Cooking area"
818
+ elif class_name == "sink":
819
+ descriptions[class_name] = "Washing and preparation area"
820
+ else:
821
+ descriptions[class_name] = "Kitchen appliance area"
822
+ else:
823
+ # === 修正:非廚房場景中的廚房物件使用中性描述 ===
824
+ # 在餐廳、客廳等場景中,即使檢測到這些物件也不使用廚房描述
825
+ if class_name == "refrigerator":
826
+ descriptions[class_name] = "Storage area"
827
+ elif class_name == "microwave":
828
+ descriptions[class_name] = "Appliance area"
829
+ elif class_name == "oven":
830
+ descriptions[class_name] = "Equipment area"
831
+ elif class_name == "sink":
832
+ descriptions[class_name] = "Utility area"
833
+ else:
834
+ descriptions[class_name] = "Equipment area"
835
 
836
  return descriptions.get(class_name, f"Functional area with {class_name}")
837
 
 
930
  "surfboard": "sports area",
931
  "tennis racket": "sports area",
932
 
933
+ # 餐具與用餐相關物品重新歸類為 dining area
934
+ "bottle": "dining area",
935
+ "wine glass": "dining area",
936
+ "cup": "dining area",
937
+ "fork": "dining area",
938
+ "knife": "dining area",
939
+ "spoon": "dining area",
940
+ "bowl": "dining area",
941
+ "dining table": "dining area", # 確保 dining table 也歸類為 dining area
942
+
943
+ # 食品使用中性的 food area
944
+ "banana": "food area",
945
+ "apple": "food area",
946
+ "sandwich": "food area",
947
+ "orange": "food area",
948
+ "broccoli": "food area",
949
+ "carrot": "food area",
950
+ "hot dog": "food area",
951
+ "pizza": "food area",
952
+ "donut": "food area",
953
+ "cake": "food area",
954
+
955
+ # 只有在有明確的廚房設備才使用 kitchen area
956
+ "refrigerator": "kitchen appliance area",
957
+ "oven": "kitchen appliance area",
958
+ "microwave": "kitchen appliance area",
959
+ "toaster": "kitchen appliance area",
960
+ "sink": "kitchen appliance area",
961
+
962
+ # 其他物品
963
  "book": "miscellaneous area",
964
  "clock": "miscellaneous area",
965
  "vase": "decorative area",