DawnC commited on
Commit
f7601ee
·
verified ·
1 Parent(s): 2d7a6b0

Upload 5 files

Browse files
app.py CHANGED
@@ -640,7 +640,6 @@ def create_interface():
640
  gr.Examples(
641
  examples=[
642
  "room_01.jpg",
643
- "room_02.jpg",
644
  "street_04.jpg",
645
  "street_05.jpg",
646
  "landmark_Louvre_01.jpg",
 
640
  gr.Examples(
641
  examples=[
642
  "room_01.jpg",
 
643
  "street_04.jpg",
644
  "street_05.jpg",
645
  "landmark_Louvre_01.jpg",
confidence_templates.py ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+
2
+ CONFIDENCE_TEMPLATES = {
3
+ "high": "{description} {details}",
4
+ "medium": "This appears to be {description} {details}",
5
+ "low": "This might be {description}, but the confidence is low. {details}"
6
+ }
enhance_scene_describer.py CHANGED
@@ -12,7 +12,7 @@ from object_template_fillers import OBJECT_TEMPLATE_FILLERS
12
  from lighting_conditions import LIGHTING_CONDITIONS
13
  from viewpoint_templates import VIEWPOINT_TEMPLATES
14
  from cultural_templates import CULTURAL_TEMPLATES
15
- from confifence_templates import CONFIDENCE_TEMPLATES
16
  from landmark_data import ALL_LANDMARKS
17
 
18
  class EnhancedSceneDescriber:
 
12
  from lighting_conditions import LIGHTING_CONDITIONS
13
  from viewpoint_templates import VIEWPOINT_TEMPLATES
14
  from cultural_templates import CULTURAL_TEMPLATES
15
+ from confidence_templates import CONFIDENCE_TEMPLATES
16
  from landmark_data import ALL_LANDMARKS
17
 
18
  class EnhancedSceneDescriber:
lighting_analyzer.py CHANGED
@@ -167,13 +167,12 @@ class LightingAnalyzer:
167
  # Separate HSV channels
168
  h_channel, s_channel, v_channel = cv2.split(hsv_img)
169
 
170
- # --- Brightness Features ---
171
  avg_brightness = np.mean(v_channel)
172
  brightness_std = np.std(v_channel)
173
  dark_pixel_ratio = np.sum(v_channel < self.config.get("dark_pixel_threshold", 50)) / (height * width) # 使用配置閾值
174
  bright_pixel_ratio = np.sum(v_channel > self.config.get("bright_pixel_threshold", 220)) / (height * width) # 新增:亮部像素比例
175
 
176
- # --- Color Features ---
177
  # Yellow-Orange Ratio
178
  yellow_orange_mask = ((h_channel >= 15) & (h_channel <= 45)) # Adjusted range slightly
179
  yellow_orange_ratio = np.sum(yellow_orange_mask) / (height * width)
@@ -183,7 +182,6 @@ class LightingAnalyzer:
183
  blue_ratio = np.sum(blue_mask) / (height * width)
184
 
185
  # More specific "Sky-Like Blue" Ratio - for clearer skies
186
- # 中文備註:更精確地定義「天空藍」,排除室內常見的深藍或青色。
187
  sky_like_blue_hue_min = self.config.get("sky_blue_hue_min", 100)
188
  sky_like_blue_hue_max = self.config.get("sky_blue_hue_max", 130) # Typical sky blue Hues in HSV
189
  sky_like_blue_sat_min = self.config.get("sky_blue_sat_min", 60) # Sky is usually somewhat saturated
@@ -201,8 +199,7 @@ class LightingAnalyzer:
201
 
202
  avg_saturation = np.mean(s_channel)
203
 
204
- # --- Sky Region Analysis (Top 1/3 of image) ---
205
- # 中文備註:專門分析圖像頂部區域,這是判斷天空的關鍵。
206
  top_third_height = height // 3
207
  sky_region_v = v_channel[:top_third_height, :]
208
  sky_region_s = s_channel[:top_third_height, :]
@@ -241,8 +238,7 @@ class LightingAnalyzer:
241
  else:
242
  color_atmosphere = "neutral"
243
 
244
- # --- Gradient and Texture Features (on small image for speed) ---
245
- # 中文備註:在縮小的灰階圖像上計算梯度,以提高效率。
246
  gx = cv2.Sobel(small_gray, cv2.CV_32F, 1, 0, ksize=3)
247
  gy = cv2.Sobel(small_gray, cv2.CV_32F, 0, 1, ksize=3)
248
 
@@ -253,7 +249,6 @@ class LightingAnalyzer:
253
 
254
 
255
  # Texture complexity of the top region (potential ceiling or sky)
256
- # 中文備註:分析頂部區域的紋理複雜度,天空通常紋理簡單,天花板可能複雜。
257
  small_top_third_height = small_gray.shape[0] // 3
258
  small_sky_region_gray = small_gray[:small_top_third_height, :]
259
  if small_sky_region_gray.size > 0:
 
167
  # Separate HSV channels
168
  h_channel, s_channel, v_channel = cv2.split(hsv_img)
169
 
170
+ # Brightness Features
171
  avg_brightness = np.mean(v_channel)
172
  brightness_std = np.std(v_channel)
173
  dark_pixel_ratio = np.sum(v_channel < self.config.get("dark_pixel_threshold", 50)) / (height * width) # 使用配置閾值
174
  bright_pixel_ratio = np.sum(v_channel > self.config.get("bright_pixel_threshold", 220)) / (height * width) # 新增:亮部像素比例
175
 
 
176
  # Yellow-Orange Ratio
177
  yellow_orange_mask = ((h_channel >= 15) & (h_channel <= 45)) # Adjusted range slightly
178
  yellow_orange_ratio = np.sum(yellow_orange_mask) / (height * width)
 
182
  blue_ratio = np.sum(blue_mask) / (height * width)
183
 
184
  # More specific "Sky-Like Blue" Ratio - for clearer skies
 
185
  sky_like_blue_hue_min = self.config.get("sky_blue_hue_min", 100)
186
  sky_like_blue_hue_max = self.config.get("sky_blue_hue_max", 130) # Typical sky blue Hues in HSV
187
  sky_like_blue_sat_min = self.config.get("sky_blue_sat_min", 60) # Sky is usually somewhat saturated
 
199
 
200
  avg_saturation = np.mean(s_channel)
201
 
202
+ # 專門分析圖像頂部區域,這是判斷天空的關鍵
 
203
  top_third_height = height // 3
204
  sky_region_v = v_channel[:top_third_height, :]
205
  sky_region_s = s_channel[:top_third_height, :]
 
238
  else:
239
  color_atmosphere = "neutral"
240
 
241
+ # Gradient and Texture Features (on small image for speed)
 
242
  gx = cv2.Sobel(small_gray, cv2.CV_32F, 1, 0, ksize=3)
243
  gy = cv2.Sobel(small_gray, cv2.CV_32F, 0, 1, ksize=3)
244
 
 
249
 
250
 
251
  # Texture complexity of the top region (potential ceiling or sky)
 
252
  small_top_third_height = small_gray.shape[0] // 3
253
  small_sky_region_gray = small_gray[:small_top_third_height, :]
254
  if small_sky_region_gray.size > 0:
scene_description.py CHANGED
@@ -7,7 +7,7 @@ from scene_detail_templates import SCENE_DETAIL_TEMPLATES
7
  from object_template_fillers import OBJECT_TEMPLATE_FILLERS
8
  from activity_templates import ACTIVITY_TEMPLATES
9
  from safety_templates import SAFETY_TEMPLATES
10
- from confifence_templates import CONFIDENCE_TEMPLATES
11
 
12
  class SceneDescriptor:
13
  """
 
7
  from object_template_fillers import OBJECT_TEMPLATE_FILLERS
8
  from activity_templates import ACTIVITY_TEMPLATES
9
  from safety_templates import SAFETY_TEMPLATES
10
+ from confidence_templates import CONFIDENCE_TEMPLATES
11
 
12
  class SceneDescriptor:
13
  """