Chrisyichuan commited on
Commit
d140f7d
·
1 Parent(s): f11fb28

add small format fix

Browse files
Files changed (4) hide show
  1. benchmark.py +9 -2
  2. mapcrunch_controller.py +1 -1
  3. readme.md +3 -1
  4. select_regions.py +66 -0
benchmark.py CHANGED
@@ -102,7 +102,8 @@ class MapGuesserBenchmark:
102
  headless=self.headless,
103
  ) as bot:
104
  for i, sample in enumerate(test_samples):
105
- print(f" 📍 Sample {i + 1}/{len(test_samples)}")
 
106
  try:
107
  result = self.run_single_test_with_bot(bot, sample)
108
  all_results.append(result)
@@ -114,7 +115,7 @@ class MapGuesserBenchmark:
114
  dist_str = (
115
  f"{distance:.1f} km" if distance is not None else "N/A"
116
  )
117
- print(f" {status} (Distance: {dist_str})")
118
 
119
  except KeyboardInterrupt:
120
  raise
@@ -165,6 +166,12 @@ class MapGuesserBenchmark:
165
  # **核心修复**: 从顶级的 "lat" 和 "lng" 键构造真实坐标字典
166
  true_coords = {"lat": location_data.get("lat"), "lng": location_data.get("lng")}
167
 
 
 
 
 
 
 
168
  distance_km = self.calculate_distance(true_coords, predicted_lat_lon)
169
 
170
  is_success = distance_km is not None and distance_km <= SUCCESS_THRESHOLD_KM
 
102
  headless=self.headless,
103
  ) as bot:
104
  for i, sample in enumerate(test_samples):
105
+ print('########################################################')
106
+ print(f"📍 Sample {i + 1}/{len(test_samples)}")
107
  try:
108
  result = self.run_single_test_with_bot(bot, sample)
109
  all_results.append(result)
 
115
  dist_str = (
116
  f"{distance:.1f} km" if distance is not None else "N/A"
117
  )
118
+ print(f"{status} (Distance: {dist_str})")
119
 
120
  except KeyboardInterrupt:
121
  raise
 
166
  # **核心修复**: 从顶级的 "lat" 和 "lng" 键构造真实坐标字典
167
  true_coords = {"lat": location_data.get("lat"), "lng": location_data.get("lng")}
168
 
169
+ true_location = location_data["address"]
170
+ print(f"🔍 True location: {true_location}")
171
+ # print true coords
172
+ print(f"🔍 True coords: {true_coords}")
173
+ # print predicted coords
174
+ print(f"🔍 Predicted coords: {predicted_lat_lon}")
175
  distance_km = self.calculate_distance(true_coords, predicted_lat_lon)
176
 
177
  is_success = distance_km is not None and distance_km <= SUCCESS_THRESHOLD_KM
mapcrunch_controller.py CHANGED
@@ -130,7 +130,7 @@ class MapCrunchController:
130
 
131
  # 策略B:优先尝试通过JS直接设置场景,速度最快
132
  if pano_id and pov:
133
- print(f"✅ Loading location via JS Call: PanoID {pano_id[:10]}...")
134
  self.driver.execute_script(
135
  "window.panorama.setPano(arguments[0]);"
136
  "window.panorama.setPov(arguments[1]);",
 
130
 
131
  # 策略B:优先尝试通过JS直接设置场景,速度最快
132
  if pano_id and pov:
133
+ # print(f"✅ Loading location via JS Call: PanoID {pano_id[:10]}...")
134
  self.driver.execute_script(
135
  "window.panorama.setPano(arguments[0]);"
136
  "window.panorama.setPov(arguments[1]);",
readme.md CHANGED
@@ -1,4 +1,6 @@
 
 
1
  python main.py --mode data --samples 50 --urban --no-indoor
2
 
3
 
4
- python main.py --mode benchmark --models gpt-4o
 
1
+ uv sync
2
+
3
  python main.py --mode data --samples 50 --urban --no-indoor
4
 
5
 
6
+ python main.py --mode benchmark --models gpt-4o --samples 5
select_regions.py ADDED
@@ -0,0 +1,66 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import pyautogui
2
+ from pynput import keyboard
3
+ import yaml
4
+
5
+
6
+ regions = [
7
+ "screen_top_left",
8
+ "screen_bot_right",
9
+ ]
10
+
11
+ map_regions = [
12
+ "map_top_left",
13
+ "map_bot_right",
14
+ "confirm_button",
15
+ "kodiak",
16
+ "hobart",
17
+ ]
18
+
19
+ next_round_button = "next_round_button"
20
+
21
+ coords = []
22
+
23
+ PRESS_KEY = "a"
24
+
25
+
26
+ def on_press(key):
27
+ try:
28
+ if key.char == PRESS_KEY:
29
+ x, y = pyautogui.position()
30
+ print(x, y)
31
+ coords.append([x, y])
32
+ return False
33
+ except AttributeError:
34
+ pass
35
+
36
+
37
+ def get_coords(players=1):
38
+ for region in regions:
39
+ print(f"Move the mouse to the {region} region and press 'a'.")
40
+ with keyboard.Listener(on_press=on_press) as keyboard_listener:
41
+ keyboard_listener.join(timeout=40)
42
+
43
+ for p in range(1, players+1):
44
+ for region in map_regions:
45
+ region = region + f"_{p}"
46
+ regions.append(region)
47
+ print(f"Move the mouse to the {region} region and press 'a'.")
48
+ with keyboard.Listener(on_press=on_press) as keyboard_listener:
49
+ keyboard_listener.join(timeout=40)
50
+
51
+ regions.append(next_round_button)
52
+ print(f"Move the mouse to the {next_round_button} region and press 'a'.")
53
+ with keyboard.Listener(on_press=on_press) as keyboard_listener:
54
+ keyboard_listener.join(timeout=40)
55
+
56
+ screen_regions = {reg: coord for reg, coord in zip(regions, coords)}
57
+
58
+ # save dict as a yaml file
59
+ with open("screen_regions.yaml", "w") as f:
60
+ yaml.dump(screen_regions, f)
61
+
62
+ return screen_regions
63
+
64
+
65
+ if __name__ == "__main__":
66
+ _ = get_coords(players=1)