DawnC commited on
Commit
0377514
·
verified ·
1 Parent(s): d823aa6

Update scene_analyzer.py

Browse files
Files changed (1) hide show
  1. scene_analyzer.py +10 -11
scene_analyzer.py CHANGED
@@ -72,10 +72,9 @@ class SceneAnalyzer:
72
  """
73
  Use new implement
74
  """
75
- # 獲取功能區域信息(如果需要的話)
76
  functional_zones = self.spatial_analyzer._identify_functional_zones(detected_objects, scene_type)
77
 
78
- # 使用增強的場景描述生成器
79
  return self.generate_scene_description(
80
  scene_type,
81
  detected_objects,
@@ -123,7 +122,7 @@ class SceneAnalyzer:
123
  "regions": {},
124
  "possible_activities": [],
125
  "safety_concerns": [],
126
- "lighting_conditions": lighting_info or {"time_of_day": "unknown", "confidence": 0.0}
127
  }
128
 
129
  # Get class names from detection result if not already set
@@ -149,7 +148,7 @@ class SceneAnalyzer:
149
  "regions": {},
150
  "possible_activities": [],
151
  "safety_concerns": [],
152
- "lighting_conditions": lighting_info or {"time_of_day": "unknown", "confidence": 0.0}
153
  }
154
 
155
  # Analyze object distribution in regions
@@ -257,7 +256,7 @@ class SceneAnalyzer:
257
  # 添加 CLIP 特定的結果(新增)
258
  if clip_analysis and "error" not in clip_analysis:
259
  result["clip_analysis"] = {
260
- "top_scene": clip_analysis.get("top_scene", ("unknown", 0.0)),
261
  "cultural_analysis": clip_analysis.get("cultural_analysis", {})
262
  }
263
 
@@ -375,15 +374,15 @@ class SceneAnalyzer:
375
 
376
  for scene_type in all_scene_types:
377
  # 獲取兩個模型的分數
378
- yolo_score = yolo_scene_scores.get(scene_type, 0.0)
379
- clip_score = clip_scene_scores.get(scene_type, 0.0)
380
 
381
  # 設置基本權重
382
- yolo_weight = 0.7 # YOLO 提供更詳細的物體資訊
383
- clip_weight = 0.3 # CLIP 提供更好的整體場景理解
384
 
385
  # 對特定類型場景調整權重
386
- # 文化特定場景或具有特殊布局的場景,CLIP 可能有優勢
387
  if any(keyword in scene_type for keyword in ["asian", "cultural", "aerial"]):
388
  yolo_weight = 0.3
389
  clip_weight = 0.7
@@ -393,7 +392,7 @@ class SceneAnalyzer:
393
  yolo_weight = 0.8
394
  clip_weight = 0.2
395
  elif scene_type == "beach_water_recreation":
396
- yolo_weight = 0.8 # 衝浪板等特定物品的檢測非常重要
397
  clip_weight = 0.2
398
  elif scene_type == "sports_venue":
399
  yolo_weight = 0.7
 
72
  """
73
  Use new implement
74
  """
75
+ # get the functional zones info
76
  functional_zones = self.spatial_analyzer._identify_functional_zones(detected_objects, scene_type)
77
 
 
78
  return self.generate_scene_description(
79
  scene_type,
80
  detected_objects,
 
122
  "regions": {},
123
  "possible_activities": [],
124
  "safety_concerns": [],
125
+ "lighting_conditions": lighting_info or {"time_of_day": "unknown", "confidence": 0}
126
  }
127
 
128
  # Get class names from detection result if not already set
 
148
  "regions": {},
149
  "possible_activities": [],
150
  "safety_concerns": [],
151
+ "lighting_conditions": lighting_info or {"time_of_day": "unknown", "confidence": 0}
152
  }
153
 
154
  # Analyze object distribution in regions
 
256
  # 添加 CLIP 特定的結果(新增)
257
  if clip_analysis and "error" not in clip_analysis:
258
  result["clip_analysis"] = {
259
+ "top_scene": clip_analysis.get("top_scene", ("unknown", 0)),
260
  "cultural_analysis": clip_analysis.get("cultural_analysis", {})
261
  }
262
 
 
374
 
375
  for scene_type in all_scene_types:
376
  # 獲取兩個模型的分數
377
+ yolo_score = yolo_scene_scores.get(scene_type, 0)
378
+ clip_score = clip_scene_scores.get(scene_type, 0)
379
 
380
  # 設置基本權重
381
+ yolo_weight = 0.7 # YOLO 可提供比較好的物體資訊
382
+ clip_weight = 0.3 # CLIP 強項是理解整體的場景關係
383
 
384
  # 對特定類型場景調整權重
385
+ # 文化特定場景或具有特殊布局的場景,CLIP可能比較能理解
386
  if any(keyword in scene_type for keyword in ["asian", "cultural", "aerial"]):
387
  yolo_weight = 0.3
388
  clip_weight = 0.7
 
392
  yolo_weight = 0.8
393
  clip_weight = 0.2
394
  elif scene_type == "beach_water_recreation":
395
+ yolo_weight = 0.8 # 衝浪板等特定物品的檢測
396
  clip_weight = 0.2
397
  elif scene_type == "sports_venue":
398
  yolo_weight = 0.7