commit 4ad53f4e97945c680561c5c352c9baa0219e7280 Author: orisys Date: Fri Aug 21 14:51:57 2026 +0800 first diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..9303ea2 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,20 @@ +{ + "terminal.integrated.env.windows": { + "Path": "C:\\Users\\13799\\miniconda3\\condabin;C:\\Users\\13799\\miniconda3\\Scripts;${env:Path}" + }, + "terminal.integrated.profiles.windows": { + "PowerShell": { + "source": "PowerShell", + "icon": "terminal-powershell", + "args": [ + "-NoExit", + "-ExecutionPolicy", + "Bypass", + "-NoLogo", + "-Command", + "conda activate camera_test" + ] + } + }, + "terminal.integrated.defaultProfile.windows": "PowerShell" +} diff --git a/01data.yaml b/01data.yaml new file mode 100644 index 0000000..a2f889e --- /dev/null +++ b/01data.yaml @@ -0,0 +1,8 @@ +# 由 split_dataset.py 自动生成 +# 训练: yolo train cfg=train.yaml + +path: datasets/gongjian/split +train: images/train +val: images/val +names: + 0: gongjian diff --git a/__pycache__/capture.cpython-311.pyc b/__pycache__/capture.cpython-311.pyc new file mode 100644 index 0000000..71bb1fd Binary files /dev/null and b/__pycache__/capture.cpython-311.pyc differ diff --git a/__pycache__/detectors.cpython-311.pyc b/__pycache__/detectors.cpython-311.pyc new file mode 100644 index 0000000..e3b9987 Binary files /dev/null and b/__pycache__/detectors.cpython-311.pyc differ diff --git a/__pycache__/hole_detect.cpython-311.pyc b/__pycache__/hole_detect.cpython-311.pyc new file mode 100644 index 0000000..105be15 Binary files /dev/null and b/__pycache__/hole_detect.cpython-311.pyc differ diff --git a/__pycache__/infer_realtime.cpython-311.pyc b/__pycache__/infer_realtime.cpython-311.pyc new file mode 100644 index 0000000..1a47a02 Binary files /dev/null and b/__pycache__/infer_realtime.cpython-311.pyc differ diff --git a/__pycache__/split_dataset.cpython-311.pyc b/__pycache__/split_dataset.cpython-311.pyc new file mode 100644 index 0000000..08d9968 Binary files /dev/null and b/__pycache__/split_dataset.cpython-311.pyc differ diff --git a/capture.py b/capture.py new file mode 100644 index 0000000..b62d6e3 --- /dev/null +++ b/capture.py @@ -0,0 +1,1057 @@ +"""RealSense D435/D405 双目采集:左右红外、RGB、可选深度,抽清晰帧后删除原视频。""" + +from __future__ import annotations + +import shutil +import threading +import time +import tkinter as tk +from datetime import datetime +from pathlib import Path +from tkinter import filedialog, messagebox, ttk + +import cv2 +import numpy as np +import pyrealsense2 as rs +from PIL import Image, ImageTk + +ROOT = Path(__file__).resolve().parent +DEFAULT_OUT = ROOT / "datasets" / "my_dataset" / "images" / "train" +RESOLUTIONS = [(1280, 720), (848, 480), (640, 480)] +COLOR_RESOLUTIONS = [(1280, 720), (1920, 1080), (848, 480), (640, 480)] + + +def sharpness(frame: np.ndarray) -> float: + gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) if frame.ndim == 3 else frame + return float(cv2.Laplacian(gray, cv2.CV_64F).var()) + + +def pair_score(left: np.ndarray, right: np.ndarray, color: np.ndarray | None = None) -> float: + """左右红外平均清晰度;有 RGB 时加权,避免弱纹理红外分数过低抽不到帧。""" + s_ir = 0.5 * (sharpness(left) + sharpness(right)) + if color is None: + return s_ir + s_rgb = sharpness(color) + return 0.35 * s_ir + 0.65 * s_rgb + + +def to_bgr(frame: np.ndarray) -> np.ndarray: + if frame.ndim == 2: + return cv2.cvtColor(frame, cv2.COLOR_GRAY2BGR) + return frame + + +def list_realsense_devices() -> list[tuple[str, str]]: + devices = [] + for dev in rs.context().query_devices(): + name = dev.get_info(rs.camera_info.name) + serial = dev.get_info(rs.camera_info.serial_number) + devices.append((f"{name} [{serial}]", serial)) + return devices + + +def extract_clear_pairs( + left_path: Path, + right_path: Path, + out_dir: Path, + prefix: str, + min_sharpness: float, + interval: float, + max_frames: int, + rgb_path: Path | None = None, + depth_vis_path: Path | None = None, + depth_raw_dir: Path | None = None, +) -> tuple[int, str]: + """抽取清晰成对帧。返回 (保存数量, 说明)。阈值过高时自动按相对清晰度回退。""" + cap_l = cv2.VideoCapture(str(left_path)) + cap_r = cv2.VideoCapture(str(right_path)) + cap_c = cv2.VideoCapture(str(rgb_path)) if rgb_path is not None else None + cap_d = cv2.VideoCapture(str(depth_vis_path)) if depth_vis_path is not None else None + if not cap_l.isOpened() or not cap_r.isOpened(): + cap_l.release() + cap_r.release() + if cap_c is not None: + cap_c.release() + if cap_d is not None: + cap_d.release() + raise RuntimeError("无法读取左右目视频") + if rgb_path is not None and (cap_c is None or not cap_c.isOpened()): + raise RuntimeError("无法读取 RGB 视频") + if depth_vis_path is not None and (cap_d is None or not cap_d.isOpened()): + raise RuntimeError("无法读取深度视频") + + fps = cap_l.get(cv2.CAP_PROP_FPS) or 30 + min_gap = max(1, int(round(interval * fps))) + left_dir = out_dir / "left" + right_dir = out_dir / "right" + rgb_dir = out_dir / "rgb" + depth_dir = out_dir / "depth" + depth_vis_dir = out_dir / "depth_vis" + left_dir.mkdir(parents=True, exist_ok=True) + right_dir.mkdir(parents=True, exist_ok=True) + if rgb_path is not None: + rgb_dir.mkdir(parents=True, exist_ok=True) + if depth_vis_path is not None: + depth_dir.mkdir(parents=True, exist_ok=True) + depth_vis_dir.mkdir(parents=True, exist_ok=True) + + # 每隔 interval 取最清晰一帧;阈值稍后过滤,过高则自动回退 + windows: list[tuple[float, np.ndarray, np.ndarray, np.ndarray | None, np.ndarray | None, int]] = [] + best: tuple[float, np.ndarray, np.ndarray, np.ndarray | None, np.ndarray | None, int] | None = None + last_saved_idx = -min_gap + idx = 0 + all_scores: list[float] = [] + + while True: + ok_l, frame_l = cap_l.read() + ok_r, frame_r = cap_r.read() + frame_c = None + frame_d = None + if cap_c is not None: + ok_c, frame_c = cap_c.read() + if not ok_c: + break + if cap_d is not None: + ok_d, frame_d = cap_d.read() + if not ok_d: + break + if not ok_l or not ok_r: + break + score = pair_score(frame_l, frame_r, frame_c) + all_scores.append(score) + if best is None or score > best[0]: + best = ( + score, + frame_l.copy(), + frame_r.copy(), + None if frame_c is None else frame_c.copy(), + None if frame_d is None else frame_d.copy(), + idx, + ) + if best is not None and idx - last_saved_idx >= min_gap: + windows.append(best) + last_saved_idx = idx + best = None + idx += 1 + + if best is not None: + windows.append(best) + + cap_l.release() + cap_r.release() + if cap_c is not None: + cap_c.release() + if cap_d is not None: + cap_d.release() + + if not windows: + return 0, "视频里没有可读帧" + + scores = np.asarray(all_scores, dtype=np.float64) + p50 = float(np.median(scores)) + p80 = float(np.percentile(scores, 80)) + thr = float(min_sharpness) + selected = [w for w in windows if w[0] >= thr] + if not selected: + adaptive = max(0.5, p50 * 0.5) + selected = [w for w in windows if w[0] >= adaptive] + if not selected: + selected = sorted(windows, key=lambda x: x[0], reverse=True) + keep = len(selected) if max_frames <= 0 else min(len(selected), max(1, max_frames)) + selected = selected[:keep] + note = ( + f"阈值 {thr:.0f} 过高(本段综合分 median={p50:.0f} p80={p80:.0f})," + f"已按相对清晰度自动保存" + ) + else: + note = f"按阈值 {thr:.0f} 筛选(本段 median={p50:.0f} p80={p80:.0f})" + + selected.sort(key=lambda x: x[5]) + if max_frames > 0 and len(selected) > max_frames: + selected = sorted(selected, key=lambda x: x[0], reverse=True)[:max_frames] + selected.sort(key=lambda x: x[5]) + + saved = 0 + for item in selected: + saved += 1 + name = f"{prefix}_{saved:04d}_s{item[0]:.0f}" + cv2.imwrite(str(left_dir / f"{name}.jpg"), item[1]) + cv2.imwrite(str(right_dir / f"{name}.jpg"), item[2]) + if item[3] is not None: + cv2.imwrite(str(rgb_dir / f"{name}.jpg"), item[3]) + if item[4] is not None: + cv2.imwrite(str(depth_vis_dir / f"{name}.jpg"), item[4]) + raw = None if depth_raw_dir is None else depth_raw_dir / f"{item[5]:06d}.png" + if raw is not None and raw.exists(): + shutil.copy2(raw, depth_dir / f"{name}.png") + return saved, note + + +class CaptureApp(tk.Tk): + def __init__(self) -> None: + super().__init__() + self.title("RealSense D435 / D405 双目采集") + self.geometry("1480x900") + self.minsize(1200, 760) + + self.pipeline: rs.pipeline | None = None + self.align: rs.align | None = None + self.colorizer = rs.colorizer() + self.has_rgb = False + self.has_depth = False + self.writer_left: cv2.VideoWriter | None = None + self.writer_right: cv2.VideoWriter | None = None + self.writer_rgb: cv2.VideoWriter | None = None + self.writer_depth: cv2.VideoWriter | None = None + self.preview_job: str | None = None + self.photo_left: ImageTk.PhotoImage | None = None + self.photo_right: ImageTk.PhotoImage | None = None + self.photo_rgb: ImageTk.PhotoImage | None = None + self.photo_depth: ImageTk.PhotoImage | None = None + self.busy = False + self.recording = False + self.stop_flag = False + self.rec_start = 0.0 + self.rec_frames = 0 + self.video_left: Path | None = None + self.video_right: Path | None = None + self.video_rgb: Path | None = None + self.video_depth: Path | None = None + self.depth_raw_dir: Path | None = None + self.devices: list[tuple[str, str]] = [] + self.depth_sensor = None + self.color_sensor = None + self.shared_exposure = False + + self._build() + self.protocol("WM_DELETE_WINDOW", self.on_close) + self.after(200, self.refresh_devices) + + def _build(self) -> None: + self.columnconfigure(0, weight=1) + self.rowconfigure(0, weight=1) + + self.preview = ttk.Frame(self, padding=8) + self.preview.grid(row=0, column=0, sticky="nsew") + + self.lbl_left = ttk.Label(self.preview, text="左目 Infrared 1", font=("Segoe UI", 11, "bold")) + self.lbl_right = ttk.Label(self.preview, text="右目 Infrared 2", font=("Segoe UI", 11, "bold")) + self.lbl_rgb = ttk.Label(self.preview, text="RGB Color", font=("Segoe UI", 11, "bold")) + self.lbl_depth = ttk.Label(self.preview, text="Depth 深度图", font=("Segoe UI", 11, "bold")) + self.view_left = tk.Label(self.preview, bg="#111", fg="#eee", text="左目") + self.view_right = tk.Label(self.preview, bg="#111", fg="#eee", text="右目") + self.view_rgb = tk.Label(self.preview, bg="#111", fg="#eee", text="RGB") + self.view_depth = tk.Label(self.preview, bg="#111", fg="#eee", text="深度图") + self.status = ttk.Label(self.preview, text="就绪") + + panel = ttk.LabelFrame(self, text="RealSense 采集参数", padding=10) + panel.grid(row=1, column=0, sticky="ew", padx=8, pady=(0, 8)) + for col in range(8): + panel.columnconfigure(col, weight=1) + + self.var_device = tk.StringVar() + self.var_width = tk.IntVar(value=1280) + self.var_height = tk.IntVar(value=720) + self.var_fps = tk.IntVar(value=30) + self.var_duration = tk.DoubleVar(value=10) + self.var_sharp = tk.DoubleVar(value=5) + self.var_interval = tk.DoubleVar(value=0.2) + self.var_max = tk.IntVar(value=0) + self.var_swap = tk.BooleanVar(value=False) + self.var_emitter_off = tk.BooleanVar(value=True) + self.var_rgb = tk.BooleanVar(value=True) + self.var_align_rgb = tk.BooleanVar(value=True) + self.var_depth = tk.BooleanVar(value=False) + self.var_out = tk.StringVar(value=str(DEFAULT_OUT)) + self.var_name = tk.StringVar(value="") + self.var_overwrite = tk.StringVar(value="rename") + self.var_preview_rec = tk.BooleanVar(value=False) + self.var_prev_left = tk.BooleanVar(value=True) + self.var_prev_right = tk.BooleanVar(value=False) + self.var_prev_rgb = tk.BooleanVar(value=True) + self.var_prev_depth = tk.BooleanVar(value=False) + self.var_ir_auto = tk.BooleanVar(value=True) + self.var_rgb_auto = tk.BooleanVar(value=True) + self.var_ir_exposure = tk.DoubleVar(value=8500) # µs,D435 红外常见默认附近 + self.var_rgb_exposure = tk.DoubleVar(value=156) # µs,RGB 常见默认附近 + self.save_prefix = "" + + ttk.Label(panel, text="设备").grid(row=0, column=0, sticky="w") + self.cmb_device = ttk.Combobox(panel, textvariable=self.var_device, state="readonly") + self.cmb_device.grid(row=0, column=1, columnspan=2, sticky="ew") + ttk.Button(panel, text="刷新设备", command=self.refresh_devices).grid(row=0, column=3, sticky="ew", padx=(8, 0)) + ttk.Checkbutton(panel, text="同时采集 RGB", variable=self.var_rgb, command=self.on_stream_toggle).grid( + row=0, column=4, sticky="w" + ) + ttk.Checkbutton(panel, text="同时采集深度图", variable=self.var_depth, command=self.on_depth_toggle).grid( + row=0, column=5, sticky="w" + ) + ttk.Checkbutton(panel, text="RGB对齐到左目", variable=self.var_align_rgb, command=self.on_stream_toggle).grid( + row=0, column=6, sticky="w" + ) + ttk.Checkbutton(panel, text="交换左右", variable=self.var_swap).grid(row=0, column=7, sticky="w") + + ttk.Label(panel, text="分辨率").grid(row=1, column=0, sticky="w", pady=(8, 0)) + ttk.Combobox(panel, textvariable=self.var_width, values=[1280, 848, 640], width=8, state="readonly").grid( + row=1, column=1, sticky="w", pady=(8, 0) + ) + ttk.Label(panel, text="x").grid(row=1, column=2, pady=(8, 0)) + ttk.Combobox(panel, textvariable=self.var_height, values=[720, 480], width=8, state="readonly").grid( + row=1, column=3, sticky="w", pady=(8, 0) + ) + ttk.Label(panel, text="FPS").grid(row=1, column=4, sticky="w", pady=(8, 0)) + ttk.Combobox(panel, textvariable=self.var_fps, values=[30, 15, 6], width=8, state="readonly").grid( + row=1, column=5, sticky="w", pady=(8, 0) + ) + self.chk_emitter = ttk.Checkbutton(panel, text="关闭红外点阵(D435)", variable=self.var_emitter_off) + self.chk_emitter.grid(row=1, column=6, columnspan=2, sticky="w", pady=(8, 0)) + + exp = ttk.LabelFrame(panel, text="曝光(单位 µs,取消自动后可手调)", padding=6) + exp.grid(row=2, column=0, columnspan=8, sticky="ew", pady=(10, 0)) + self.chk_ir_auto = ttk.Checkbutton( + exp, text="红外自动曝光", variable=self.var_ir_auto, command=self.on_exposure_mode_change + ) + self.chk_ir_auto.pack(side="left") + ttk.Label(exp, text="红外曝光").pack(side="left", padx=(10, 2)) + self.spn_ir_exp = ttk.Spinbox( + exp, + from_=1, + to=165000, + increment=100, + textvariable=self.var_ir_exposure, + width=8, + command=self.apply_exposure, + ) + self.spn_ir_exp.pack(side="left") + self.chk_rgb_auto = ttk.Checkbutton( + exp, text="RGB自动曝光", variable=self.var_rgb_auto, command=self.on_exposure_mode_change + ) + self.chk_rgb_auto.pack(side="left", padx=(16, 0)) + ttk.Label(exp, text="RGB曝光").pack(side="left", padx=(10, 2)) + self.spn_rgb_exp = ttk.Spinbox( + exp, + from_=1, + to=10000, + increment=10, + textvariable=self.var_rgb_exposure, + width=8, + command=self.apply_exposure, + ) + self.spn_rgb_exp.pack(side="left") + ttk.Button(exp, text="应用曝光", command=self.apply_exposure).pack(side="left", padx=(12, 0)) + self.lbl_exp_hint = ttk.Label(exp, text="打开相机后改手动值再点应用即可生效") + self.lbl_exp_hint.pack(side="left", padx=(10, 0)) + self.spn_ir_exp.bind("", lambda _e: self.apply_exposure()) + self.spn_rgb_exp.bind("", lambda _e: self.apply_exposure()) + self.on_exposure_mode_change(apply=False) + + ttk.Label(panel, text="录制秒数").grid(row=3, column=0, sticky="w", pady=(8, 0)) + ttk.Entry(panel, textvariable=self.var_duration, width=8).grid(row=3, column=1, sticky="w", pady=(8, 0)) + ttk.Label(panel, text="清晰度阈值").grid(row=3, column=2, sticky="w", pady=(8, 0)) + sharp_box = ttk.Frame(panel) + sharp_box.grid(row=3, column=3, sticky="w", pady=(8, 0)) + ttk.Entry(sharp_box, textvariable=self.var_sharp, width=6).pack(side="left") + ttk.Button(sharp_box, text="宽松", width=4, command=lambda: self.var_sharp.set(2)).pack(side="left", padx=(4, 0)) + ttk.Button(sharp_box, text="适中", width=4, command=lambda: self.var_sharp.set(5)).pack(side="left") + ttk.Button(sharp_box, text="严格", width=4, command=lambda: self.var_sharp.set(20)).pack(side="left") + ttk.Label(panel, text="抽帧间隔(秒)").grid(row=3, column=4, sticky="w", pady=(8, 0)) + ttk.Entry(panel, textvariable=self.var_interval, width=8).grid(row=3, column=5, sticky="w", pady=(8, 0)) + ttk.Label(panel, text="最多保存").grid(row=3, column=6, sticky="w", pady=(8, 0)) + ttk.Entry(panel, textvariable=self.var_max, width=8).grid(row=3, column=7, sticky="w", pady=(8, 0)) + + ttk.Label(panel, text="输出目录").grid(row=4, column=0, sticky="w", pady=(8, 0)) + ttk.Entry(panel, textvariable=self.var_out).grid(row=4, column=1, columnspan=6, sticky="ew", pady=(8, 0)) + ttk.Button(panel, text="浏览", command=self.browse_out).grid(row=4, column=7, sticky="e", pady=(8, 0)) + + ttk.Label(panel, text="命名前缀").grid(row=5, column=0, sticky="w", pady=(8, 0)) + ttk.Entry(panel, textvariable=self.var_name).grid(row=5, column=1, columnspan=2, sticky="ew", pady=(8, 0)) + self.lbl_name_hint = ttk.Label(panel, text="空则用时间戳。示例: 批次A_20260818_173000_0001_s112.jpg") + self.lbl_name_hint.grid(row=5, column=3, columnspan=5, sticky="w", pady=(8, 0)) + + ttk.Label(panel, text="同名文件").grid(row=6, column=0, sticky="w", pady=(8, 0)) + ow = ttk.Frame(panel) + ow.grid(row=6, column=1, columnspan=7, sticky="w", pady=(8, 0)) + ttk.Radiobutton(ow, text="自动改名(不覆盖)", variable=self.var_overwrite, value="rename").pack(side="left") + ttk.Radiobutton(ow, text="覆盖已有同前缀文件", variable=self.var_overwrite, value="overwrite").pack(side="left", padx=(12, 0)) + ttk.Radiobutton(ow, text="每次询问", variable=self.var_overwrite, value="ask").pack(side="left", padx=(12, 0)) + + prev = ttk.LabelFrame(panel, text="录制时 UI 预览(关掉可防止卡死)", padding=6) + prev.grid(row=7, column=0, columnspan=8, sticky="ew", pady=(10, 0)) + ttk.Checkbutton(prev, text="录制时开启实时渲染", variable=self.var_preview_rec).pack(side="left") + ttk.Checkbutton(prev, text="左红外", variable=self.var_prev_left).pack(side="left", padx=(12, 0)) + ttk.Checkbutton(prev, text="右红外", variable=self.var_prev_right).pack(side="left", padx=(8, 0)) + ttk.Checkbutton(prev, text="RGB", variable=self.var_prev_rgb).pack(side="left", padx=(8, 0)) + ttk.Checkbutton(prev, text="深度", variable=self.var_prev_depth).pack(side="left", padx=(8, 0)) + ttk.Label(prev, text="未勾选的窗口录制时不刷新画面").pack(side="left", padx=(12, 0)) + + prog = ttk.Frame(panel) + prog.grid(row=8, column=0, columnspan=8, sticky="ew", pady=(10, 0)) + prog.columnconfigure(1, weight=1) + ttk.Label(prog, text="进度").grid(row=0, column=0, sticky="w") + self.progress = ttk.Progressbar(prog, mode="determinate", maximum=100) + self.progress.grid(row=0, column=1, sticky="ew", padx=8) + self.lbl_progress = ttk.Label(prog, text="未录制", width=22) + self.lbl_progress.grid(row=0, column=2, sticky="e") + + btns = ttk.Frame(panel) + btns.grid(row=9, column=0, columnspan=8, sticky="ew", pady=(12, 0)) + self.btn_open = ttk.Button(btns, text="打开相机", command=self.open_camera_ui) + self.btn_open.pack(side="left") + self.btn_start = ttk.Button(btns, text="开始采集", command=self.start_capture) + self.btn_start.pack(side="left", padx=8) + self.btn_stop = ttk.Button(btns, text="停止", command=self.stop_capture, state="disabled") + self.btn_stop.pack(side="left") + self.var_name.trace_add("write", lambda *_: self.refresh_name_hint()) + self.refresh_name_hint() + + self.apply_preview_layout() + + def apply_preview_layout(self) -> None: + for child in self.preview.winfo_children(): + child.grid_forget() + show_depth = self.var_depth.get() + if show_depth: + for col in range(2): + self.preview.columnconfigure(col, weight=1) + self.preview.columnconfigure(2, weight=0) + self.preview.rowconfigure(1, weight=1) + self.preview.rowconfigure(3, weight=1) + self.lbl_left.grid(row=0, column=0, sticky="w") + self.lbl_right.grid(row=0, column=1, sticky="w") + self.view_left.grid(row=1, column=0, sticky="nsew", padx=(0, 4), pady=(0, 4)) + self.view_right.grid(row=1, column=1, sticky="nsew", padx=(4, 0), pady=(0, 4)) + self.lbl_rgb.grid(row=2, column=0, sticky="w") + self.lbl_depth.grid(row=2, column=1, sticky="w") + self.view_rgb.grid(row=3, column=0, sticky="nsew", padx=(0, 4), pady=(4, 0)) + self.view_depth.grid(row=3, column=1, sticky="nsew", padx=(4, 0), pady=(4, 0)) + self.status.grid(row=4, column=0, columnspan=2, sticky="w", pady=(8, 0)) + else: + for col in range(3): + self.preview.columnconfigure(col, weight=1) + self.preview.rowconfigure(1, weight=1) + self.preview.rowconfigure(3, weight=0) + self.lbl_left.grid(row=0, column=0, sticky="w") + self.lbl_right.grid(row=0, column=1, sticky="w") + self.lbl_rgb.grid(row=0, column=2, sticky="w") + self.view_left.grid(row=1, column=0, sticky="nsew", padx=(0, 4)) + self.view_right.grid(row=1, column=1, sticky="nsew", padx=4) + self.view_rgb.grid(row=1, column=2, sticky="nsew", padx=(4, 0)) + self.status.grid(row=2, column=0, columnspan=3, sticky="w", pady=(8, 0)) + + def on_depth_toggle(self) -> None: + if self.var_depth.get(): + self.var_emitter_off.set(False) + self.chk_emitter.state(["disabled"]) + else: + self.chk_emitter.state(["!disabled"]) + self.apply_preview_layout() + self.on_stream_toggle() + + def on_stream_toggle(self) -> None: + if not self.recording and not self.busy and self.devices: + self.open_camera_ui() + + def on_exposure_mode_change(self, apply: bool = True) -> None: + ir_auto = self.var_ir_auto.get() + rgb_auto = self.var_rgb_auto.get() + self.spn_ir_exp.state(["disabled"] if ir_auto else ["!disabled"]) + # D405 等机型 RGB/红外共用曝光时,RGB 控件跟随红外 + if self.shared_exposure: + self.chk_rgb_auto.state(["disabled"]) + self.spn_rgb_exp.state(["disabled"]) + self.var_rgb_auto.set(ir_auto) + if not ir_auto: + self.var_rgb_exposure.set(self.var_ir_exposure.get()) + self.lbl_exp_hint.config(text="当前设备 RGB/红外共用曝光,请调左侧红外项") + else: + self.chk_rgb_auto.state(["!disabled"]) + self.spn_rgb_exp.state(["disabled"] if rgb_auto else ["!disabled"]) + self.lbl_exp_hint.config(text="打开相机后改手动值再点应用即可生效") + if apply: + self.apply_exposure() + + @staticmethod + def _set_sensor_option(sensor, option, value: float) -> bool: + if sensor is None or not sensor.supports(option): + return False + rng = sensor.get_option_range(option) + clamped = max(rng.min, min(rng.max, float(value))) + if rng.step > 0: + clamped = rng.min + round((clamped - rng.min) / rng.step) * rng.step + clamped = max(rng.min, min(rng.max, clamped)) + sensor.set_option(option, clamped) + return True + + def _bind_exposure_sensors(self, device, with_rgb: bool) -> None: + self.depth_sensor = device.first_depth_sensor() + self.color_sensor = None + try: + self.color_sensor = device.first_color_sensor() + except Exception: + self.color_sensor = None + if self.color_sensor is None and with_rgb: + for sensor in device.query_sensors(): + name = "" + if sensor.supports(rs.camera_info.name): + name = sensor.get_info(rs.camera_info.name).lower() + if "rgb" in name or "color" in name: + self.color_sensor = sensor + break + # D405:彩色与红外同属 Stereo Module,无独立 RGB sensor + self.shared_exposure = with_rgb and ( + self.color_sensor is None or self.color_sensor is self.depth_sensor + ) + if self.shared_exposure: + self.color_sensor = None + self.on_exposure_mode_change(apply=False) + + def apply_exposure(self) -> None: + if self.pipeline is None: + self.set_status("相机未打开:曝光设置会在下次打开时生效") + return + notes: list[str] = [] + try: + if self.depth_sensor is not None: + if self.var_ir_auto.get(): + ok = self._set_sensor_option(self.depth_sensor, rs.option.enable_auto_exposure, 1.0) + notes.append("红外AE开" if ok else "红外AE不支持") + if self.shared_exposure and ok: + notes.append("RGB共用AE") + else: + self._set_sensor_option(self.depth_sensor, rs.option.enable_auto_exposure, 0.0) + ok = self._set_sensor_option( + self.depth_sensor, rs.option.exposure, float(self.var_ir_exposure.get()) + ) + if ok: + cur = self.depth_sensor.get_option(rs.option.exposure) + self.var_ir_exposure.set(cur) + if self.shared_exposure: + self.var_rgb_exposure.set(cur) + notes.append(f"共用曝光 {cur:.0f}µs") + else: + notes.append(f"红外曝光 {cur:.0f}µs") + else: + notes.append("红外手动曝光失败") + if self.color_sensor is not None and not self.shared_exposure: + if self.var_rgb_auto.get(): + ok = self._set_sensor_option(self.color_sensor, rs.option.enable_auto_exposure, 1.0) + notes.append("RGB AE开" if ok else "RGB AE不支持") + else: + self._set_sensor_option(self.color_sensor, rs.option.enable_auto_exposure, 0.0) + ok = self._set_sensor_option( + self.color_sensor, rs.option.exposure, float(self.var_rgb_exposure.get()) + ) + if ok: + cur = self.color_sensor.get_option(rs.option.exposure) + self.var_rgb_exposure.set(cur) + notes.append(f"RGB曝光 {cur:.0f}µs") + else: + notes.append("RGB手动曝光失败") + except Exception as exc: + self.set_status(f"曝光设置失败: {exc}") + messagebox.showerror("曝光", str(exc)) + return + if notes: + self.set_status("曝光已应用: " + " / ".join(notes)) + + def set_status(self, text: str) -> None: + self.status.config(text=text) + + def refresh_name_hint(self) -> None: + custom = self.var_name.get().strip() or "时间戳" + stamp = datetime.now().strftime("%Y%m%d_%H%M%S") + prefix = f"{custom}_{stamp}" if self.var_name.get().strip() else stamp + self.lbl_name_hint.config(text=f"左右/RGB/深度同名。示例: {prefix}_0001_s112.jpg") + + def make_prefix(self) -> str: + stamp = datetime.now().strftime("%Y%m%d_%H%M%S") + custom = self.var_name.get().strip() + return f"{custom}_{stamp}" if custom else stamp + + def existing_prefix_files(self, out_dir: Path, prefix: str) -> list[Path]: + hits: list[Path] = [] + for folder in ("left", "right", "rgb", "depth", "depth_vis"): + d = out_dir / folder + if not d.exists(): + continue + hits.extend(sorted(d.glob(f"{prefix}_*"))) + return hits + + def unique_prefix(self, out_dir: Path, prefix: str) -> str: + candidate = prefix + n = 2 + while self.existing_prefix_files(out_dir, candidate): + candidate = f"{prefix}_{n}" + n += 1 + return candidate + + def resolve_save_prefix(self, out_dir: Path, prefix: str) -> str | None: + existing = self.existing_prefix_files(out_dir, prefix) + if not existing: + return prefix + mode = self.var_overwrite.get() + msg = ( + f"目录中已有 {len(existing)} 个同前缀文件:\n{prefix}_*.jpg/png\n\n" + "覆盖会删除这些旧文件。左右/RGB/深度使用同一文件名。" + ) + if mode == "rename": + new_prefix = self.unique_prefix(out_dir, prefix) + self.set_status(f"已有同名,自动改为 {new_prefix}") + return new_prefix + if mode == "overwrite": + if not messagebox.askyesno("覆盖确认", msg + "\n\n确定覆盖?"): + return None + for path in existing: + path.unlink(missing_ok=True) + return prefix + choice = messagebox.askyesnocancel( + "同名文件", + msg + "\n\n是 = 覆盖\n否 = 自动改名\n取消 = 不开始录制", + ) + if choice is None: + return None + if choice: + for path in existing: + path.unlink(missing_ok=True) + return prefix + return self.unique_prefix(out_dir, prefix) + + def set_progress(self, ratio: float, text: str) -> None: + self.progress["value"] = max(0.0, min(100.0, ratio * 100.0)) + self.lbl_progress.config(text=text) + + def browse_out(self) -> None: + path = filedialog.askdirectory(initialdir=self.var_out.get() or str(ROOT)) + if path: + self.var_out.set(path) + + def current_serial(self) -> str: + label = self.var_device.get() + for text, serial in self.devices: + if text == label: + return serial + raise RuntimeError("请先选择 RealSense 设备") + + def refresh_devices(self) -> None: + if self.recording or self.busy: + return + self.devices = list_realsense_devices() + labels = [item[0] for item in self.devices] + self.cmb_device["values"] = labels + if labels: + self.var_device.set(labels[0]) + self.set_status(f"找到 {len(labels)} 台 RealSense,可点「打开相机」") + self.after(100, self.open_camera_ui) + else: + self.var_device.set("") + self.set_status("未检测到 D435/D405。请插上相机,并确认已安装 Intel RealSense 驱动") + + def release_writers(self) -> None: + for attr in ("writer_left", "writer_right", "writer_rgb", "writer_depth"): + writer = getattr(self, attr) + if writer is not None: + writer.release() + setattr(self, attr, None) + + def stop_pipeline(self) -> None: + if self.preview_job is not None: + self.after_cancel(self.preview_job) + self.preview_job = None + self.release_writers() + self.align = None + self.has_rgb = False + self.has_depth = False + self.depth_sensor = None + self.color_sensor = None + self.shared_exposure = False + if self.pipeline is not None: + try: + self.pipeline.stop() + except Exception: + pass + self.pipeline = None + + def _try_start(self, serial: str, w: int, h: int, f: int, with_rgb: bool, with_depth: bool) -> rs.pipeline: + pipeline = rs.pipeline() + config = rs.config() + config.enable_device(serial) + config.enable_stream(rs.stream.infrared, 1, w, h, rs.format.y8, f) + config.enable_stream(rs.stream.infrared, 2, w, h, rs.format.y8, f) + if with_depth: + config.enable_stream(rs.stream.depth, w, h, rs.format.z16, f) + if with_rgb: + cw, ch = (w, h) if (w, h) in COLOR_RESOLUTIONS else (1280, 720) + config.enable_stream(rs.stream.color, cw, ch, rs.format.bgr8, f) + profile = pipeline.start(config) + self.pipeline = pipeline + self.has_rgb = with_rgb + self.has_depth = with_depth + need_align = (with_rgb and self.var_align_rgb.get()) or with_depth + self.align = rs.align(rs.stream.infrared) if need_align else None + self.var_width.set(w) + self.var_height.set(h) + device = profile.get_device() + self._bind_exposure_sensors(device, with_rgb) + if self.depth_sensor is not None and self.depth_sensor.supports(rs.option.emitter_enabled): + # 采深度时强制打开点阵;否则按勾选关闭 + emitter_on = 1.0 if with_depth else (0.0 if self.var_emitter_off.get() else 1.0) + self.depth_sensor.set_option(rs.option.emitter_enabled, emitter_on) + self.apply_exposure() + return pipeline + + def start_pipeline(self) -> None: + serial = self.current_serial() + width, height, fps = int(self.var_width.get()), int(self.var_height.get()), int(self.var_fps.get()) + attempts = [(width, height, fps)] + [(w, h, fps) for w, h in RESOLUTIONS if (w, h) != (width, height)] + want_rgb = self.var_rgb.get() + want_depth = self.var_depth.get() + last_error = None + rgb_options = [True, False] if want_rgb else [False] + depth_options = [True, False] if want_depth else [False] + for with_depth in depth_options: + for with_rgb in rgb_options: + for w, h, f in attempts: + try: + self._try_start(serial, w, h, f, with_rgb, with_depth) + if want_depth and not with_depth: + self.set_status("深度流无法打开,已回退") + if want_rgb and not with_rgb: + self.set_status("RGB 流无法打开,已回退") + return + except Exception as exc: + last_error = exc + try: + if self.pipeline is not None: + self.pipeline.stop() + except Exception: + pass + self.pipeline = None + raise RuntimeError(f"无法打开 RealSense: {last_error}") + + def open_camera_ui(self) -> None: + if self.recording or self.busy: + return + if not self.devices: + self.refresh_devices() + if not self.devices: + messagebox.showerror("RealSense", "没有检测到 D435/D405") + return + self.stop_pipeline() + try: + self.start_pipeline() + except Exception as exc: + self.view_left.config(image="", text=str(exc)) + self.view_right.config(image="", text="") + self.view_rgb.config(image="", text="") + self.view_depth.config(image="", text="") + self.set_status(str(exc)) + messagebox.showerror("RealSense", str(exc)) + return + parts = ["左右红外"] + if self.has_rgb: + parts.append("RGB" + ("对齐左目" if self.var_align_rgb.get() else "")) + if self.has_depth: + parts.append("深度(点阵已开)") + self.set_status(f"{self.var_width.get()}x{self.var_height.get()} @{self.var_fps.get()} " + " + ".join(parts)) + if not self.has_rgb: + self.view_rgb.config(image="", text="未开启 RGB") + if not self.has_depth: + self.view_depth.config(image="", text="未开启深度") + self.loop_preview() + + def read_frames(self) -> tuple[np.ndarray, np.ndarray, np.ndarray | None, np.ndarray | None, np.ndarray | None] | None: + if self.pipeline is None: + return None + try: + frames = self.pipeline.wait_for_frames(1000) + except Exception: + return None + if self.align is not None: + frames = self.align.process(frames) + ir_l = frames.get_infrared_frame(1) + ir_r = frames.get_infrared_frame(2) + if not ir_l or not ir_r: + return None + left = to_bgr(np.asanyarray(ir_l.get_data())) + right = to_bgr(np.asanyarray(ir_r.get_data())) + if self.var_swap.get(): + left, right = right, left + color = None + depth_raw = None + depth_vis = None + if self.has_rgb: + color_frame = frames.get_color_frame() + if color_frame: + color = np.asanyarray(color_frame.get_data()) + if self.has_depth: + depth_frame = frames.get_depth_frame() + if depth_frame: + depth_raw = np.asanyarray(depth_frame.get_data()) + depth_vis = np.asanyarray(self.colorizer.colorize(depth_frame).get_data()) + return left, right, color, depth_raw, depth_vis + + def loop_preview(self) -> None: + pack = self.read_frames() + if pack is not None: + left, right, color, depth_raw, depth_vis = pack + if self.recording: + duration = max(0.001, float(self.var_duration.get())) + elapsed = time.perf_counter() - self.rec_start + remain = max(0.0, duration - elapsed) + self.set_progress(elapsed / duration, f"录制 {elapsed:.1f}/{duration:.1f}s") + if self.writer_left is not None and self.writer_right is not None: + self.writer_left.write(left) + self.writer_right.write(right) + if self.writer_rgb is not None and color is not None: + self.writer_rgb.write(color) + if self.writer_depth is not None and depth_vis is not None: + self.writer_depth.write(depth_vis) + if self.depth_raw_dir is not None and depth_raw is not None: + cv2.imwrite(str(self.depth_raw_dir / f"{self.rec_frames:06d}.png"), depth_raw) + self.rec_frames += 1 + if self.var_preview_rec.get(): + if self.var_prev_left.get(): + self.show_frame(self.view_left, left, "left") + if self.var_prev_right.get(): + self.show_frame(self.view_right, right, "right") + if self.var_prev_rgb.get() and color is not None: + self.show_frame(self.view_rgb, color, "rgb") + if self.var_prev_depth.get() and depth_vis is not None: + self.show_frame(self.view_depth, depth_vis, "depth") + if remain <= 0 or self.stop_flag: + self.after(10, self.finish_capture) + return + else: + score_l, score_r = sharpness(left), sharpness(right) + score = pair_score(left, right, color) + thr = self.var_sharp.get() + show_l, show_r = left.copy(), right.copy() + ok = score >= thr + cv2.putText( + show_l, + f"L {score_l:.0f} score={score:.0f}/{thr:.0f}", + (18, 40), + cv2.FONT_HERSHEY_SIMPLEX, + 0.7, + (0, 220, 0) if ok else (0, 180, 255), + 2, + ) + cv2.putText( + show_r, + f"R {score_r:.0f} score={score:.0f}/{thr:.0f}", + (18, 40), + cv2.FONT_HERSHEY_SIMPLEX, + 0.7, + (0, 220, 0) if ok else (0, 180, 255), + 2, + ) + self.show_frame(self.view_left, show_l, "left") + self.show_frame(self.view_right, show_r, "right") + if color is not None: + show_c = color.copy() + s_rgb = sharpness(color) + cv2.putText( + show_c, + f"RGB {s_rgb:.0f} score={score:.0f}/{thr:.0f}", + (18, 40), + cv2.FONT_HERSHEY_SIMPLEX, + 0.7, + (0, 220, 0) if ok else (0, 180, 255), + 2, + ) + self.show_frame(self.view_rgb, show_c, "rgb") + if depth_vis is not None: + show_d = depth_vis.copy() + cv2.putText(show_d, "DEPTH", (18, 40), cv2.FONT_HERSHEY_SIMPLEX, 0.8, (0, 220, 0), 2) + self.show_frame(self.view_depth, show_d, "depth") + delay = 30 if self.recording and not self.var_preview_rec.get() else 10 + self.preview_job = self.after(delay, self.loop_preview) + + def show_frame(self, widget: tk.Label, frame: np.ndarray, side: str) -> None: + rgb = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB) + h, w = rgb.shape[:2] + max_w = max(widget.winfo_width(), 240) + max_h = max(widget.winfo_height(), 180) + scale = min(max_w / w, max_h / h) + if scale <= 0: + return + size = (max(1, int(w * scale)), max(1, int(h * scale))) + img = Image.fromarray(rgb).resize(size, Image.Resampling.BILINEAR) + photo = ImageTk.PhotoImage(img) + if side == "left": + self.photo_left = photo + elif side == "right": + self.photo_right = photo + elif side == "rgb": + self.photo_rgb = photo + else: + self.photo_depth = photo + widget.config(image=photo, text="") + + def start_capture(self) -> None: + if self.pipeline is None: + self.open_camera_ui() + if self.pipeline is None: + return + if self.recording or self.busy: + return + duration = float(self.var_duration.get()) + if duration <= 0: + messagebox.showwarning("参数", "录制秒数必须大于 0") + return + pack = self.read_frames() + if pack is None: + messagebox.showerror("采集", "读不到画面") + return + left, right, color, _, depth_vis = pack + out_dir = Path(self.var_out.get()) + prefix = self.resolve_save_prefix(out_dir, self.make_prefix()) + if prefix is None: + self.set_status("已取消录制") + return + self.save_prefix = prefix + fps = max(1, int(self.var_fps.get())) + tmp_dir = ROOT / "datasets" / "_tmp" + tmp_dir.mkdir(parents=True, exist_ok=True) + self.video_left = tmp_dir / f"{prefix}_left.avi" + self.video_right = tmp_dir / f"{prefix}_right.avi" + self.video_rgb = tmp_dir / f"{prefix}_rgb.avi" if self.has_rgb else None + self.video_depth = tmp_dir / f"{prefix}_depth.avi" if self.has_depth else None + self.depth_raw_dir = tmp_dir / f"{prefix}_depth_raw" if self.has_depth else None + if self.depth_raw_dir is not None: + self.depth_raw_dir.mkdir(parents=True, exist_ok=True) + h_l, w_l = left.shape[:2] + h_r, w_r = right.shape[:2] + self.writer_left = cv2.VideoWriter(str(self.video_left), cv2.VideoWriter_fourcc(*"XVID"), fps, (w_l, h_l)) + self.writer_right = cv2.VideoWriter(str(self.video_right), cv2.VideoWriter_fourcc(*"XVID"), fps, (w_r, h_r)) + if self.has_rgb and color is not None and self.video_rgb is not None: + h_c, w_c = color.shape[:2] + self.writer_rgb = cv2.VideoWriter(str(self.video_rgb), cv2.VideoWriter_fourcc(*"XVID"), fps, (w_c, h_c)) + if self.has_depth and depth_vis is not None and self.video_depth is not None: + h_d, w_d = depth_vis.shape[:2] + self.writer_depth = cv2.VideoWriter(str(self.video_depth), cv2.VideoWriter_fourcc(*"XVID"), fps, (w_d, h_d)) + if not self.writer_left.isOpened() or not self.writer_right.isOpened(): + self.release_writers() + messagebox.showerror("采集", "无法写入视频") + return + + self.recording = True + self.stop_flag = False + self.rec_start = time.perf_counter() + self.rec_frames = 0 + self.btn_start.config(state="disabled") + self.btn_open.config(state="disabled") + self.btn_stop.config(state="normal") + extra = "" + if self.has_rgb: + extra += " + RGB" + if self.has_depth: + extra += " + 深度" + preview_hint = "预览已关" if not self.var_preview_rec.get() else "预览已开" + self.set_progress(0, f"录制 0.0/{duration:.1f}s") + self.set_status(f"正在同步录制左右红外{extra} {duration:.1f} 秒… 命名 {prefix} {preview_hint}") + + def stop_capture(self) -> None: + if self.recording: + self.stop_flag = True + + def finish_capture(self) -> None: + if not self.recording: + return + self.recording = False + self.btn_stop.config(state="disabled") + self.release_writers() + + left_path, right_path = self.video_left, self.video_right + rgb_path, depth_path, depth_raw_dir = self.video_rgb, self.video_depth, self.depth_raw_dir + if left_path is None or right_path is None or not left_path.exists() or not right_path.exists(): + self.btn_start.config(state="normal") + self.btn_open.config(state="normal") + self.set_status("没有录到左右目视频") + return + if self.has_rgb and (rgb_path is None or not rgb_path.exists()): + rgb_path = None + if self.has_depth and (depth_path is None or not depth_path.exists()): + depth_path = None + + self.busy = True + self.set_progress(1.0, "正在抽帧…") + self.set_status("正在抽取清晰帧…") + prefix = self.save_prefix or left_path.stem.replace("_left", "") + out_dir = Path(self.var_out.get()) + min_sharp = float(self.var_sharp.get()) + interval = float(self.var_interval.get()) + max_frames = int(self.var_max.get()) + has_rgb = self.has_rgb + has_depth = self.has_depth + + def work() -> None: + error = "" + saved = 0 + note = "" + try: + saved, note = extract_clear_pairs( + left_path, + right_path, + out_dir, + prefix, + min_sharp, + interval, + max_frames, + rgb_path, + depth_path, + depth_raw_dir, + ) + except Exception as exc: + error = str(exc) + finally: + left_path.unlink(missing_ok=True) + right_path.unlink(missing_ok=True) + if rgb_path is not None: + rgb_path.unlink(missing_ok=True) + if depth_path is not None: + depth_path.unlink(missing_ok=True) + if depth_raw_dir is not None and depth_raw_dir.exists(): + shutil.rmtree(depth_raw_dir, ignore_errors=True) + + def done() -> None: + self.busy = False + self.btn_start.config(state="normal") + self.btn_open.config(state="normal") + if error: + self.set_progress(0, "抽帧失败") + self.set_status(error) + messagebox.showerror("抽帧失败", error) + return + folders = f"{out_dir}/left 、 {out_dir}/right" + if has_rgb: + folders += f" 、 {out_dir}/rgb" + if has_depth: + folders += f" 、 {out_dir}/depth (16位)与 {out_dir}/depth_vis" + if saved == 0: + msg = "仍未抽到帧,请检查相机画面或缩短抽帧间隔后再试。原视频已删除" + else: + msg = f"已保存 {saved} 组,前缀 {prefix},到 {folders},原视频已删除" + if note: + msg += f"\n\n{note}" + self.set_progress(1.0, f"完成 {saved} 组") + self.set_status(msg.replace("\n", " ")) + messagebox.showinfo("采集完成", msg + f"\n\n文件名格式: {prefix}_0001_s清晰度.jpg") + + self.after(0, done) + + threading.Thread(target=work, daemon=True).start() + + def on_close(self) -> None: + self.recording = False + self.stop_pipeline() + for path in (self.video_left, self.video_right, self.video_rgb, self.video_depth): + if path is not None: + path.unlink(missing_ok=True) + if self.depth_raw_dir is not None and self.depth_raw_dir.exists(): + shutil.rmtree(self.depth_raw_dir, ignore_errors=True) + self.destroy() + + +if __name__ == "__main__": + CaptureApp().mainloop() diff --git a/data.yaml b/data.yaml new file mode 100644 index 0000000..670f15e --- /dev/null +++ b/data.yaml @@ -0,0 +1,12 @@ +# YOLO 数据集配置(phonedata) +# 训练: 在 train.yaml 里设置 data: data.yaml +# 然后: yolo train cfg=train.yaml + +path: datasets/phonedata +train: images/train +val: images/val +# test: images/test # 有测试集时取消注释 + +# 类别从 0 连续编号 +names: + 0: phone diff --git a/datasets/gongjian/split/images/train/20260820_112741_0001_s26.jpg b/datasets/gongjian/split/images/train/20260820_112741_0001_s26.jpg new file mode 100644 index 0000000..3f2f918 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0001_s26.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0002_s29.jpg b/datasets/gongjian/split/images/train/20260820_112741_0002_s29.jpg new file mode 100644 index 0000000..f0ece39 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0002_s29.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0003_s30.jpg b/datasets/gongjian/split/images/train/20260820_112741_0003_s30.jpg new file mode 100644 index 0000000..a8be160 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0003_s30.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0005_s30.jpg b/datasets/gongjian/split/images/train/20260820_112741_0005_s30.jpg new file mode 100644 index 0000000..8a7ee5a Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0005_s30.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0006_s30.jpg b/datasets/gongjian/split/images/train/20260820_112741_0006_s30.jpg new file mode 100644 index 0000000..f3509e8 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0006_s30.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0007_s30.jpg b/datasets/gongjian/split/images/train/20260820_112741_0007_s30.jpg new file mode 100644 index 0000000..f2af497 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0007_s30.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0008_s30.jpg b/datasets/gongjian/split/images/train/20260820_112741_0008_s30.jpg new file mode 100644 index 0000000..3988545 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0008_s30.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0009_s31.jpg b/datasets/gongjian/split/images/train/20260820_112741_0009_s31.jpg new file mode 100644 index 0000000..5cdc0b7 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0009_s31.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0010_s31.jpg b/datasets/gongjian/split/images/train/20260820_112741_0010_s31.jpg new file mode 100644 index 0000000..64fb34d Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0010_s31.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0011_s32.jpg b/datasets/gongjian/split/images/train/20260820_112741_0011_s32.jpg new file mode 100644 index 0000000..96074b4 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0011_s32.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0015_s48.jpg b/datasets/gongjian/split/images/train/20260820_112741_0015_s48.jpg new file mode 100644 index 0000000..b3a4abe Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0015_s48.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0019_s24.jpg b/datasets/gongjian/split/images/train/20260820_112741_0019_s24.jpg new file mode 100644 index 0000000..e942ca9 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0019_s24.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0020_s27.jpg b/datasets/gongjian/split/images/train/20260820_112741_0020_s27.jpg new file mode 100644 index 0000000..91b4c51 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0020_s27.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0022_s26.jpg b/datasets/gongjian/split/images/train/20260820_112741_0022_s26.jpg new file mode 100644 index 0000000..2d99fcd Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0022_s26.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0024_s33.jpg b/datasets/gongjian/split/images/train/20260820_112741_0024_s33.jpg new file mode 100644 index 0000000..b21ee99 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0024_s33.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0025_s34.jpg b/datasets/gongjian/split/images/train/20260820_112741_0025_s34.jpg new file mode 100644 index 0000000..163e192 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0025_s34.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0027_s35.jpg b/datasets/gongjian/split/images/train/20260820_112741_0027_s35.jpg new file mode 100644 index 0000000..c5c0f3c Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0027_s35.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0028_s37.jpg b/datasets/gongjian/split/images/train/20260820_112741_0028_s37.jpg new file mode 100644 index 0000000..9b21756 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0028_s37.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0029_s24.jpg b/datasets/gongjian/split/images/train/20260820_112741_0029_s24.jpg new file mode 100644 index 0000000..3ad8953 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0029_s24.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0030_s24.jpg b/datasets/gongjian/split/images/train/20260820_112741_0030_s24.jpg new file mode 100644 index 0000000..2588d49 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0030_s24.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0031_s33.jpg b/datasets/gongjian/split/images/train/20260820_112741_0031_s33.jpg new file mode 100644 index 0000000..4e80bde Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0031_s33.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0032_s34.jpg b/datasets/gongjian/split/images/train/20260820_112741_0032_s34.jpg new file mode 100644 index 0000000..e5c2a04 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0032_s34.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0033_s32.jpg b/datasets/gongjian/split/images/train/20260820_112741_0033_s32.jpg new file mode 100644 index 0000000..fad01c0 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0033_s32.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0034_s29.jpg b/datasets/gongjian/split/images/train/20260820_112741_0034_s29.jpg new file mode 100644 index 0000000..2c3cb2a Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0034_s29.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0035_s30.jpg b/datasets/gongjian/split/images/train/20260820_112741_0035_s30.jpg new file mode 100644 index 0000000..eeaa8c1 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0035_s30.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0036_s26.jpg b/datasets/gongjian/split/images/train/20260820_112741_0036_s26.jpg new file mode 100644 index 0000000..89ff7e9 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0036_s26.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0037_s31.jpg b/datasets/gongjian/split/images/train/20260820_112741_0037_s31.jpg new file mode 100644 index 0000000..7542b18 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0037_s31.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0038_s32.jpg b/datasets/gongjian/split/images/train/20260820_112741_0038_s32.jpg new file mode 100644 index 0000000..dbcf0e6 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0038_s32.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0039_s32.jpg b/datasets/gongjian/split/images/train/20260820_112741_0039_s32.jpg new file mode 100644 index 0000000..176a322 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0039_s32.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0040_s26.jpg b/datasets/gongjian/split/images/train/20260820_112741_0040_s26.jpg new file mode 100644 index 0000000..25935f5 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0040_s26.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0042_s31.jpg b/datasets/gongjian/split/images/train/20260820_112741_0042_s31.jpg new file mode 100644 index 0000000..c3cb93c Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0042_s31.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0043_s30.jpg b/datasets/gongjian/split/images/train/20260820_112741_0043_s30.jpg new file mode 100644 index 0000000..72f0088 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0043_s30.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0044_s32.jpg b/datasets/gongjian/split/images/train/20260820_112741_0044_s32.jpg new file mode 100644 index 0000000..7024af0 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0044_s32.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0046_s30.jpg b/datasets/gongjian/split/images/train/20260820_112741_0046_s30.jpg new file mode 100644 index 0000000..10f8d07 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0046_s30.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0047_s34.jpg b/datasets/gongjian/split/images/train/20260820_112741_0047_s34.jpg new file mode 100644 index 0000000..fc70ebe Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0047_s34.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0049_s30.jpg b/datasets/gongjian/split/images/train/20260820_112741_0049_s30.jpg new file mode 100644 index 0000000..7b3ba18 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0049_s30.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0051_s20.jpg b/datasets/gongjian/split/images/train/20260820_112741_0051_s20.jpg new file mode 100644 index 0000000..e0b3e36 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0051_s20.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0052_s28.jpg b/datasets/gongjian/split/images/train/20260820_112741_0052_s28.jpg new file mode 100644 index 0000000..1a381e6 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0052_s28.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0054_s22.jpg b/datasets/gongjian/split/images/train/20260820_112741_0054_s22.jpg new file mode 100644 index 0000000..e0e1627 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0054_s22.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0055_s31.jpg b/datasets/gongjian/split/images/train/20260820_112741_0055_s31.jpg new file mode 100644 index 0000000..74bd366 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0055_s31.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0056_s30.jpg b/datasets/gongjian/split/images/train/20260820_112741_0056_s30.jpg new file mode 100644 index 0000000..5461415 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0056_s30.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0057_s26.jpg b/datasets/gongjian/split/images/train/20260820_112741_0057_s26.jpg new file mode 100644 index 0000000..ef0fcf6 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0057_s26.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0061_s38.jpg b/datasets/gongjian/split/images/train/20260820_112741_0061_s38.jpg new file mode 100644 index 0000000..84e152d Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0061_s38.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0062_s39.jpg b/datasets/gongjian/split/images/train/20260820_112741_0062_s39.jpg new file mode 100644 index 0000000..fcc29eb Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0062_s39.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0063_s40.jpg b/datasets/gongjian/split/images/train/20260820_112741_0063_s40.jpg new file mode 100644 index 0000000..b96560d Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0063_s40.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0065_s35.jpg b/datasets/gongjian/split/images/train/20260820_112741_0065_s35.jpg new file mode 100644 index 0000000..4f73a76 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0065_s35.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0066_s34.jpg b/datasets/gongjian/split/images/train/20260820_112741_0066_s34.jpg new file mode 100644 index 0000000..4413960 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0066_s34.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0067_s34.jpg b/datasets/gongjian/split/images/train/20260820_112741_0067_s34.jpg new file mode 100644 index 0000000..bd817f5 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0067_s34.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0068_s34.jpg b/datasets/gongjian/split/images/train/20260820_112741_0068_s34.jpg new file mode 100644 index 0000000..34d1cf7 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0068_s34.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0069_s38.jpg b/datasets/gongjian/split/images/train/20260820_112741_0069_s38.jpg new file mode 100644 index 0000000..8b3bd67 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0069_s38.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0070_s39.jpg b/datasets/gongjian/split/images/train/20260820_112741_0070_s39.jpg new file mode 100644 index 0000000..a060428 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0070_s39.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0071_s45.jpg b/datasets/gongjian/split/images/train/20260820_112741_0071_s45.jpg new file mode 100644 index 0000000..caf8b5b Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0071_s45.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0073_s38.jpg b/datasets/gongjian/split/images/train/20260820_112741_0073_s38.jpg new file mode 100644 index 0000000..72ac636 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0073_s38.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0074_s46.jpg b/datasets/gongjian/split/images/train/20260820_112741_0074_s46.jpg new file mode 100644 index 0000000..bce84b8 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0074_s46.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0076_s38.jpg b/datasets/gongjian/split/images/train/20260820_112741_0076_s38.jpg new file mode 100644 index 0000000..0dd1682 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0076_s38.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0077_s47.jpg b/datasets/gongjian/split/images/train/20260820_112741_0077_s47.jpg new file mode 100644 index 0000000..e7cd2dd Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0077_s47.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0078_s43.jpg b/datasets/gongjian/split/images/train/20260820_112741_0078_s43.jpg new file mode 100644 index 0000000..e6c95d1 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0078_s43.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0079_s42.jpg b/datasets/gongjian/split/images/train/20260820_112741_0079_s42.jpg new file mode 100644 index 0000000..f966552 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0079_s42.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0081_s37.jpg b/datasets/gongjian/split/images/train/20260820_112741_0081_s37.jpg new file mode 100644 index 0000000..46a590b Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0081_s37.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0083_s45.jpg b/datasets/gongjian/split/images/train/20260820_112741_0083_s45.jpg new file mode 100644 index 0000000..23ea1ed Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0083_s45.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0084_s44.jpg b/datasets/gongjian/split/images/train/20260820_112741_0084_s44.jpg new file mode 100644 index 0000000..ae9112b Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0084_s44.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0085_s43.jpg b/datasets/gongjian/split/images/train/20260820_112741_0085_s43.jpg new file mode 100644 index 0000000..f9cc0f6 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0085_s43.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0086_s40.jpg b/datasets/gongjian/split/images/train/20260820_112741_0086_s40.jpg new file mode 100644 index 0000000..6b35d18 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0086_s40.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0087_s35.jpg b/datasets/gongjian/split/images/train/20260820_112741_0087_s35.jpg new file mode 100644 index 0000000..9171764 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0087_s35.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0088_s32.jpg b/datasets/gongjian/split/images/train/20260820_112741_0088_s32.jpg new file mode 100644 index 0000000..23d7695 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0088_s32.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0089_s32.jpg b/datasets/gongjian/split/images/train/20260820_112741_0089_s32.jpg new file mode 100644 index 0000000..2a9beeb Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0089_s32.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0090_s31.jpg b/datasets/gongjian/split/images/train/20260820_112741_0090_s31.jpg new file mode 100644 index 0000000..1cef6f8 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0090_s31.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0091_s31.jpg b/datasets/gongjian/split/images/train/20260820_112741_0091_s31.jpg new file mode 100644 index 0000000..8a992b3 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0091_s31.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0092_s28.jpg b/datasets/gongjian/split/images/train/20260820_112741_0092_s28.jpg new file mode 100644 index 0000000..bac1a36 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0092_s28.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0093_s23.jpg b/datasets/gongjian/split/images/train/20260820_112741_0093_s23.jpg new file mode 100644 index 0000000..6b925f9 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0093_s23.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0094_s27.jpg b/datasets/gongjian/split/images/train/20260820_112741_0094_s27.jpg new file mode 100644 index 0000000..cbda645 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0094_s27.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0095_s29.jpg b/datasets/gongjian/split/images/train/20260820_112741_0095_s29.jpg new file mode 100644 index 0000000..1cdc908 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0095_s29.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0096_s30.jpg b/datasets/gongjian/split/images/train/20260820_112741_0096_s30.jpg new file mode 100644 index 0000000..02d1e03 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0096_s30.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0097_s31.jpg b/datasets/gongjian/split/images/train/20260820_112741_0097_s31.jpg new file mode 100644 index 0000000..fb03ceb Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0097_s31.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0100_s24.jpg b/datasets/gongjian/split/images/train/20260820_112741_0100_s24.jpg new file mode 100644 index 0000000..06359a1 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0100_s24.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0101_s24.jpg b/datasets/gongjian/split/images/train/20260820_112741_0101_s24.jpg new file mode 100644 index 0000000..156259f Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0101_s24.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0103_s27.jpg b/datasets/gongjian/split/images/train/20260820_112741_0103_s27.jpg new file mode 100644 index 0000000..3221943 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0103_s27.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0104_s25.jpg b/datasets/gongjian/split/images/train/20260820_112741_0104_s25.jpg new file mode 100644 index 0000000..a628357 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0104_s25.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0105_s21.jpg b/datasets/gongjian/split/images/train/20260820_112741_0105_s21.jpg new file mode 100644 index 0000000..7e9059e Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0105_s21.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0106_s31.jpg b/datasets/gongjian/split/images/train/20260820_112741_0106_s31.jpg new file mode 100644 index 0000000..d333d03 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0106_s31.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0107_s34.jpg b/datasets/gongjian/split/images/train/20260820_112741_0107_s34.jpg new file mode 100644 index 0000000..efebd4e Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0107_s34.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0108_s31.jpg b/datasets/gongjian/split/images/train/20260820_112741_0108_s31.jpg new file mode 100644 index 0000000..e1c48db Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0108_s31.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0109_s31.jpg b/datasets/gongjian/split/images/train/20260820_112741_0109_s31.jpg new file mode 100644 index 0000000..218ebdf Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0109_s31.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0110_s36.jpg b/datasets/gongjian/split/images/train/20260820_112741_0110_s36.jpg new file mode 100644 index 0000000..fa05599 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0110_s36.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0114_s31.jpg b/datasets/gongjian/split/images/train/20260820_112741_0114_s31.jpg new file mode 100644 index 0000000..602ccda Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0114_s31.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0116_s39.jpg b/datasets/gongjian/split/images/train/20260820_112741_0116_s39.jpg new file mode 100644 index 0000000..1b49965 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0116_s39.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0117_s41.jpg b/datasets/gongjian/split/images/train/20260820_112741_0117_s41.jpg new file mode 100644 index 0000000..84dd937 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0117_s41.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0118_s41.jpg b/datasets/gongjian/split/images/train/20260820_112741_0118_s41.jpg new file mode 100644 index 0000000..c142d89 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0118_s41.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0119_s38.jpg b/datasets/gongjian/split/images/train/20260820_112741_0119_s38.jpg new file mode 100644 index 0000000..f5a0f3d Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0119_s38.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0121_s41.jpg b/datasets/gongjian/split/images/train/20260820_112741_0121_s41.jpg new file mode 100644 index 0000000..bc8e9d7 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0121_s41.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0122_s34.jpg b/datasets/gongjian/split/images/train/20260820_112741_0122_s34.jpg new file mode 100644 index 0000000..22e1fa2 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0122_s34.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0123_s37.jpg b/datasets/gongjian/split/images/train/20260820_112741_0123_s37.jpg new file mode 100644 index 0000000..a417f74 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0123_s37.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0124_s34.jpg b/datasets/gongjian/split/images/train/20260820_112741_0124_s34.jpg new file mode 100644 index 0000000..d9504f1 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0124_s34.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0125_s38.jpg b/datasets/gongjian/split/images/train/20260820_112741_0125_s38.jpg new file mode 100644 index 0000000..de36a79 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0125_s38.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0127_s18.jpg b/datasets/gongjian/split/images/train/20260820_112741_0127_s18.jpg new file mode 100644 index 0000000..c303d0a Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0127_s18.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0128_s19.jpg b/datasets/gongjian/split/images/train/20260820_112741_0128_s19.jpg new file mode 100644 index 0000000..04dac3e Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0128_s19.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0129_s21.jpg b/datasets/gongjian/split/images/train/20260820_112741_0129_s21.jpg new file mode 100644 index 0000000..6a14f9a Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0129_s21.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0130_s18.jpg b/datasets/gongjian/split/images/train/20260820_112741_0130_s18.jpg new file mode 100644 index 0000000..eb218fe Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0130_s18.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0131_s25.jpg b/datasets/gongjian/split/images/train/20260820_112741_0131_s25.jpg new file mode 100644 index 0000000..60da1df Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0131_s25.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0132_s39.jpg b/datasets/gongjian/split/images/train/20260820_112741_0132_s39.jpg new file mode 100644 index 0000000..b3f1978 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0132_s39.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0133_s42.jpg b/datasets/gongjian/split/images/train/20260820_112741_0133_s42.jpg new file mode 100644 index 0000000..6112f87 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0133_s42.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0134_s29.jpg b/datasets/gongjian/split/images/train/20260820_112741_0134_s29.jpg new file mode 100644 index 0000000..dee99b1 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0134_s29.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0135_s24.jpg b/datasets/gongjian/split/images/train/20260820_112741_0135_s24.jpg new file mode 100644 index 0000000..4a066b1 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0135_s24.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0137_s25.jpg b/datasets/gongjian/split/images/train/20260820_112741_0137_s25.jpg new file mode 100644 index 0000000..4c465d7 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0137_s25.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0138_s25.jpg b/datasets/gongjian/split/images/train/20260820_112741_0138_s25.jpg new file mode 100644 index 0000000..64b8085 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0138_s25.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0139_s26.jpg b/datasets/gongjian/split/images/train/20260820_112741_0139_s26.jpg new file mode 100644 index 0000000..b3b9916 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0139_s26.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0140_s25.jpg b/datasets/gongjian/split/images/train/20260820_112741_0140_s25.jpg new file mode 100644 index 0000000..9050176 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0140_s25.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0142_s15.jpg b/datasets/gongjian/split/images/train/20260820_112741_0142_s15.jpg new file mode 100644 index 0000000..ba4711b Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0142_s15.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0144_s25.jpg b/datasets/gongjian/split/images/train/20260820_112741_0144_s25.jpg new file mode 100644 index 0000000..37e3a32 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0144_s25.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0145_s25.jpg b/datasets/gongjian/split/images/train/20260820_112741_0145_s25.jpg new file mode 100644 index 0000000..2a0ba8c Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0145_s25.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0146_s17.jpg b/datasets/gongjian/split/images/train/20260820_112741_0146_s17.jpg new file mode 100644 index 0000000..e01ac06 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0146_s17.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0147_s21.jpg b/datasets/gongjian/split/images/train/20260820_112741_0147_s21.jpg new file mode 100644 index 0000000..211e541 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0147_s21.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0148_s28.jpg b/datasets/gongjian/split/images/train/20260820_112741_0148_s28.jpg new file mode 100644 index 0000000..3c19043 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0148_s28.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0149_s30.jpg b/datasets/gongjian/split/images/train/20260820_112741_0149_s30.jpg new file mode 100644 index 0000000..16c588e Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0149_s30.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0150_s30.jpg b/datasets/gongjian/split/images/train/20260820_112741_0150_s30.jpg new file mode 100644 index 0000000..042d239 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0150_s30.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0152_s31.jpg b/datasets/gongjian/split/images/train/20260820_112741_0152_s31.jpg new file mode 100644 index 0000000..2aded3f Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0152_s31.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0153_s32.jpg b/datasets/gongjian/split/images/train/20260820_112741_0153_s32.jpg new file mode 100644 index 0000000..1045a4e Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0153_s32.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0154_s31.jpg b/datasets/gongjian/split/images/train/20260820_112741_0154_s31.jpg new file mode 100644 index 0000000..ca11907 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0154_s31.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0155_s20.jpg b/datasets/gongjian/split/images/train/20260820_112741_0155_s20.jpg new file mode 100644 index 0000000..bffece5 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0155_s20.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0156_s24.jpg b/datasets/gongjian/split/images/train/20260820_112741_0156_s24.jpg new file mode 100644 index 0000000..1cd30d8 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0156_s24.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0157_s25.jpg b/datasets/gongjian/split/images/train/20260820_112741_0157_s25.jpg new file mode 100644 index 0000000..0613e09 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0157_s25.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0158_s24.jpg b/datasets/gongjian/split/images/train/20260820_112741_0158_s24.jpg new file mode 100644 index 0000000..c5cfb0b Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0158_s24.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0159_s25.jpg b/datasets/gongjian/split/images/train/20260820_112741_0159_s25.jpg new file mode 100644 index 0000000..87cb313 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0159_s25.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0160_s23.jpg b/datasets/gongjian/split/images/train/20260820_112741_0160_s23.jpg new file mode 100644 index 0000000..64cbcde Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0160_s23.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0161_s20.jpg b/datasets/gongjian/split/images/train/20260820_112741_0161_s20.jpg new file mode 100644 index 0000000..31543c9 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0161_s20.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0162_s31.jpg b/datasets/gongjian/split/images/train/20260820_112741_0162_s31.jpg new file mode 100644 index 0000000..0748110 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0162_s31.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0163_s33.jpg b/datasets/gongjian/split/images/train/20260820_112741_0163_s33.jpg new file mode 100644 index 0000000..99dd87e Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0163_s33.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0164_s32.jpg b/datasets/gongjian/split/images/train/20260820_112741_0164_s32.jpg new file mode 100644 index 0000000..c920a2d Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0164_s32.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0165_s41.jpg b/datasets/gongjian/split/images/train/20260820_112741_0165_s41.jpg new file mode 100644 index 0000000..88e8a48 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0165_s41.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0166_s43.jpg b/datasets/gongjian/split/images/train/20260820_112741_0166_s43.jpg new file mode 100644 index 0000000..270be1e Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0166_s43.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0167_s44.jpg b/datasets/gongjian/split/images/train/20260820_112741_0167_s44.jpg new file mode 100644 index 0000000..bfcb2fe Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0167_s44.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0168_s29.jpg b/datasets/gongjian/split/images/train/20260820_112741_0168_s29.jpg new file mode 100644 index 0000000..efdbcb6 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0168_s29.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0169_s19.jpg b/datasets/gongjian/split/images/train/20260820_112741_0169_s19.jpg new file mode 100644 index 0000000..b3aa063 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0169_s19.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0171_s36.jpg b/datasets/gongjian/split/images/train/20260820_112741_0171_s36.jpg new file mode 100644 index 0000000..736a9c3 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0171_s36.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0172_s28.jpg b/datasets/gongjian/split/images/train/20260820_112741_0172_s28.jpg new file mode 100644 index 0000000..d9f84a7 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0172_s28.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0174_s33.jpg b/datasets/gongjian/split/images/train/20260820_112741_0174_s33.jpg new file mode 100644 index 0000000..9c10304 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0174_s33.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0176_s32.jpg b/datasets/gongjian/split/images/train/20260820_112741_0176_s32.jpg new file mode 100644 index 0000000..a2831c5 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0176_s32.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0178_s32.jpg b/datasets/gongjian/split/images/train/20260820_112741_0178_s32.jpg new file mode 100644 index 0000000..bf65031 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0178_s32.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0179_s33.jpg b/datasets/gongjian/split/images/train/20260820_112741_0179_s33.jpg new file mode 100644 index 0000000..4b23308 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0179_s33.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0180_s34.jpg b/datasets/gongjian/split/images/train/20260820_112741_0180_s34.jpg new file mode 100644 index 0000000..a9d81e9 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0180_s34.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0182_s25.jpg b/datasets/gongjian/split/images/train/20260820_112741_0182_s25.jpg new file mode 100644 index 0000000..0883f8b Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0182_s25.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0183_s28.jpg b/datasets/gongjian/split/images/train/20260820_112741_0183_s28.jpg new file mode 100644 index 0000000..5e97e27 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0183_s28.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0185_s29.jpg b/datasets/gongjian/split/images/train/20260820_112741_0185_s29.jpg new file mode 100644 index 0000000..f25cbd1 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0185_s29.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0187_s30.jpg b/datasets/gongjian/split/images/train/20260820_112741_0187_s30.jpg new file mode 100644 index 0000000..ec259f3 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0187_s30.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0188_s28.jpg b/datasets/gongjian/split/images/train/20260820_112741_0188_s28.jpg new file mode 100644 index 0000000..5f6348f Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0188_s28.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0189_s27.jpg b/datasets/gongjian/split/images/train/20260820_112741_0189_s27.jpg new file mode 100644 index 0000000..85956e8 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0189_s27.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0190_s26.jpg b/datasets/gongjian/split/images/train/20260820_112741_0190_s26.jpg new file mode 100644 index 0000000..5e9a65d Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0190_s26.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0191_s28.jpg b/datasets/gongjian/split/images/train/20260820_112741_0191_s28.jpg new file mode 100644 index 0000000..3455cb8 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0191_s28.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0192_s29.jpg b/datasets/gongjian/split/images/train/20260820_112741_0192_s29.jpg new file mode 100644 index 0000000..8dde078 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0192_s29.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0193_s29.jpg b/datasets/gongjian/split/images/train/20260820_112741_0193_s29.jpg new file mode 100644 index 0000000..8f3e331 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0193_s29.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0196_s28.jpg b/datasets/gongjian/split/images/train/20260820_112741_0196_s28.jpg new file mode 100644 index 0000000..d8aa514 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0196_s28.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0197_s24.jpg b/datasets/gongjian/split/images/train/20260820_112741_0197_s24.jpg new file mode 100644 index 0000000..eda44db Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0197_s24.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0199_s20.jpg b/datasets/gongjian/split/images/train/20260820_112741_0199_s20.jpg new file mode 100644 index 0000000..17d1c2e Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0199_s20.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0200_s19.jpg b/datasets/gongjian/split/images/train/20260820_112741_0200_s19.jpg new file mode 100644 index 0000000..a61a1fc Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0200_s19.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0201_s14.jpg b/datasets/gongjian/split/images/train/20260820_112741_0201_s14.jpg new file mode 100644 index 0000000..a4bb110 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0201_s14.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0202_s14.jpg b/datasets/gongjian/split/images/train/20260820_112741_0202_s14.jpg new file mode 100644 index 0000000..4b433fa Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0202_s14.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0203_s20.jpg b/datasets/gongjian/split/images/train/20260820_112741_0203_s20.jpg new file mode 100644 index 0000000..8c7cf14 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0203_s20.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0204_s23.jpg b/datasets/gongjian/split/images/train/20260820_112741_0204_s23.jpg new file mode 100644 index 0000000..1e53932 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0204_s23.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0205_s32.jpg b/datasets/gongjian/split/images/train/20260820_112741_0205_s32.jpg new file mode 100644 index 0000000..fe1abb2 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0205_s32.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0206_s24.jpg b/datasets/gongjian/split/images/train/20260820_112741_0206_s24.jpg new file mode 100644 index 0000000..caea70a Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0206_s24.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0207_s22.jpg b/datasets/gongjian/split/images/train/20260820_112741_0207_s22.jpg new file mode 100644 index 0000000..aa2c2bd Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0207_s22.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0208_s22.jpg b/datasets/gongjian/split/images/train/20260820_112741_0208_s22.jpg new file mode 100644 index 0000000..62f1c5d Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0208_s22.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0209_s22.jpg b/datasets/gongjian/split/images/train/20260820_112741_0209_s22.jpg new file mode 100644 index 0000000..675501b Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0209_s22.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0210_s20.jpg b/datasets/gongjian/split/images/train/20260820_112741_0210_s20.jpg new file mode 100644 index 0000000..73b9a05 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0210_s20.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0211_s19.jpg b/datasets/gongjian/split/images/train/20260820_112741_0211_s19.jpg new file mode 100644 index 0000000..e4a7fab Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0211_s19.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0212_s19.jpg b/datasets/gongjian/split/images/train/20260820_112741_0212_s19.jpg new file mode 100644 index 0000000..e2500ea Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0212_s19.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0213_s19.jpg b/datasets/gongjian/split/images/train/20260820_112741_0213_s19.jpg new file mode 100644 index 0000000..8ed032b Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0213_s19.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0214_s19.jpg b/datasets/gongjian/split/images/train/20260820_112741_0214_s19.jpg new file mode 100644 index 0000000..9055379 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0214_s19.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0216_s15.jpg b/datasets/gongjian/split/images/train/20260820_112741_0216_s15.jpg new file mode 100644 index 0000000..e985c48 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0216_s15.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0218_s23.jpg b/datasets/gongjian/split/images/train/20260820_112741_0218_s23.jpg new file mode 100644 index 0000000..aeaa659 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0218_s23.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0220_s25.jpg b/datasets/gongjian/split/images/train/20260820_112741_0220_s25.jpg new file mode 100644 index 0000000..1a808c0 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0220_s25.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0221_s26.jpg b/datasets/gongjian/split/images/train/20260820_112741_0221_s26.jpg new file mode 100644 index 0000000..2417370 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0221_s26.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0223_s21.jpg b/datasets/gongjian/split/images/train/20260820_112741_0223_s21.jpg new file mode 100644 index 0000000..d368d6e Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0223_s21.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0224_s19.jpg b/datasets/gongjian/split/images/train/20260820_112741_0224_s19.jpg new file mode 100644 index 0000000..e59911b Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0224_s19.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0225_s25.jpg b/datasets/gongjian/split/images/train/20260820_112741_0225_s25.jpg new file mode 100644 index 0000000..7c8bfef Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0225_s25.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0226_s26.jpg b/datasets/gongjian/split/images/train/20260820_112741_0226_s26.jpg new file mode 100644 index 0000000..060419e Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0226_s26.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0227_s26.jpg b/datasets/gongjian/split/images/train/20260820_112741_0227_s26.jpg new file mode 100644 index 0000000..dfbceac Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0227_s26.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0228_s28.jpg b/datasets/gongjian/split/images/train/20260820_112741_0228_s28.jpg new file mode 100644 index 0000000..b829cca Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0228_s28.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0229_s26.jpg b/datasets/gongjian/split/images/train/20260820_112741_0229_s26.jpg new file mode 100644 index 0000000..af32146 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0229_s26.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0231_s31.jpg b/datasets/gongjian/split/images/train/20260820_112741_0231_s31.jpg new file mode 100644 index 0000000..76db615 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0231_s31.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0232_s31.jpg b/datasets/gongjian/split/images/train/20260820_112741_0232_s31.jpg new file mode 100644 index 0000000..4c9a51f Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0232_s31.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0233_s29.jpg b/datasets/gongjian/split/images/train/20260820_112741_0233_s29.jpg new file mode 100644 index 0000000..2def6fe Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0233_s29.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0234_s20.jpg b/datasets/gongjian/split/images/train/20260820_112741_0234_s20.jpg new file mode 100644 index 0000000..69deb44 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0234_s20.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0235_s29.jpg b/datasets/gongjian/split/images/train/20260820_112741_0235_s29.jpg new file mode 100644 index 0000000..6a30637 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0235_s29.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0237_s30.jpg b/datasets/gongjian/split/images/train/20260820_112741_0237_s30.jpg new file mode 100644 index 0000000..a6f4791 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0237_s30.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0238_s27.jpg b/datasets/gongjian/split/images/train/20260820_112741_0238_s27.jpg new file mode 100644 index 0000000..8926cc0 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0238_s27.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0239_s30.jpg b/datasets/gongjian/split/images/train/20260820_112741_0239_s30.jpg new file mode 100644 index 0000000..caf87ba Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0239_s30.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0240_s27.jpg b/datasets/gongjian/split/images/train/20260820_112741_0240_s27.jpg new file mode 100644 index 0000000..52fd474 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0240_s27.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0241_s21.jpg b/datasets/gongjian/split/images/train/20260820_112741_0241_s21.jpg new file mode 100644 index 0000000..36de6a6 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0241_s21.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0242_s31.jpg b/datasets/gongjian/split/images/train/20260820_112741_0242_s31.jpg new file mode 100644 index 0000000..ac8e714 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0242_s31.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0243_s31.jpg b/datasets/gongjian/split/images/train/20260820_112741_0243_s31.jpg new file mode 100644 index 0000000..8893e09 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0243_s31.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0244_s29.jpg b/datasets/gongjian/split/images/train/20260820_112741_0244_s29.jpg new file mode 100644 index 0000000..c3b26e0 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0244_s29.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0245_s29.jpg b/datasets/gongjian/split/images/train/20260820_112741_0245_s29.jpg new file mode 100644 index 0000000..d1b27ac Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0245_s29.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0246_s18.jpg b/datasets/gongjian/split/images/train/20260820_112741_0246_s18.jpg new file mode 100644 index 0000000..32cf23b Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0246_s18.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0247_s25.jpg b/datasets/gongjian/split/images/train/20260820_112741_0247_s25.jpg new file mode 100644 index 0000000..91694e2 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0247_s25.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0248_s21.jpg b/datasets/gongjian/split/images/train/20260820_112741_0248_s21.jpg new file mode 100644 index 0000000..369d99c Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0248_s21.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0249_s23.jpg b/datasets/gongjian/split/images/train/20260820_112741_0249_s23.jpg new file mode 100644 index 0000000..29aaeef Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0249_s23.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0250_s23.jpg b/datasets/gongjian/split/images/train/20260820_112741_0250_s23.jpg new file mode 100644 index 0000000..a004e19 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0250_s23.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0251_s24.jpg b/datasets/gongjian/split/images/train/20260820_112741_0251_s24.jpg new file mode 100644 index 0000000..69da97e Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0251_s24.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0252_s24.jpg b/datasets/gongjian/split/images/train/20260820_112741_0252_s24.jpg new file mode 100644 index 0000000..85698ab Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0252_s24.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0253_s23.jpg b/datasets/gongjian/split/images/train/20260820_112741_0253_s23.jpg new file mode 100644 index 0000000..551c080 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0253_s23.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0254_s29.jpg b/datasets/gongjian/split/images/train/20260820_112741_0254_s29.jpg new file mode 100644 index 0000000..50f0163 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0254_s29.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0255_s30.jpg b/datasets/gongjian/split/images/train/20260820_112741_0255_s30.jpg new file mode 100644 index 0000000..4aa55ee Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0255_s30.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0256_s26.jpg b/datasets/gongjian/split/images/train/20260820_112741_0256_s26.jpg new file mode 100644 index 0000000..205715d Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0256_s26.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0257_s30.jpg b/datasets/gongjian/split/images/train/20260820_112741_0257_s30.jpg new file mode 100644 index 0000000..20730ec Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0257_s30.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0258_s27.jpg b/datasets/gongjian/split/images/train/20260820_112741_0258_s27.jpg new file mode 100644 index 0000000..31e1669 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0258_s27.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0260_s26.jpg b/datasets/gongjian/split/images/train/20260820_112741_0260_s26.jpg new file mode 100644 index 0000000..1134503 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0260_s26.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0261_s22.jpg b/datasets/gongjian/split/images/train/20260820_112741_0261_s22.jpg new file mode 100644 index 0000000..ca38dd8 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0261_s22.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0262_s24.jpg b/datasets/gongjian/split/images/train/20260820_112741_0262_s24.jpg new file mode 100644 index 0000000..d9c3ed0 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0262_s24.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0263_s31.jpg b/datasets/gongjian/split/images/train/20260820_112741_0263_s31.jpg new file mode 100644 index 0000000..293b546 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0263_s31.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0264_s29.jpg b/datasets/gongjian/split/images/train/20260820_112741_0264_s29.jpg new file mode 100644 index 0000000..1a99ef6 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0264_s29.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0265_s25.jpg b/datasets/gongjian/split/images/train/20260820_112741_0265_s25.jpg new file mode 100644 index 0000000..944c186 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0265_s25.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0266_s28.jpg b/datasets/gongjian/split/images/train/20260820_112741_0266_s28.jpg new file mode 100644 index 0000000..8368b6d Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0266_s28.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0267_s20.jpg b/datasets/gongjian/split/images/train/20260820_112741_0267_s20.jpg new file mode 100644 index 0000000..25f4426 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0267_s20.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0268_s20.jpg b/datasets/gongjian/split/images/train/20260820_112741_0268_s20.jpg new file mode 100644 index 0000000..ab32812 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0268_s20.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0269_s22.jpg b/datasets/gongjian/split/images/train/20260820_112741_0269_s22.jpg new file mode 100644 index 0000000..202f2b9 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0269_s22.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0270_s19.jpg b/datasets/gongjian/split/images/train/20260820_112741_0270_s19.jpg new file mode 100644 index 0000000..d57465f Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0270_s19.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0271_s22.jpg b/datasets/gongjian/split/images/train/20260820_112741_0271_s22.jpg new file mode 100644 index 0000000..fe920e0 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0271_s22.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0272_s26.jpg b/datasets/gongjian/split/images/train/20260820_112741_0272_s26.jpg new file mode 100644 index 0000000..a5500f4 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0272_s26.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0273_s28.jpg b/datasets/gongjian/split/images/train/20260820_112741_0273_s28.jpg new file mode 100644 index 0000000..832a122 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0273_s28.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0274_s26.jpg b/datasets/gongjian/split/images/train/20260820_112741_0274_s26.jpg new file mode 100644 index 0000000..06075fd Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0274_s26.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0275_s33.jpg b/datasets/gongjian/split/images/train/20260820_112741_0275_s33.jpg new file mode 100644 index 0000000..816e33c Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0275_s33.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0276_s32.jpg b/datasets/gongjian/split/images/train/20260820_112741_0276_s32.jpg new file mode 100644 index 0000000..bd85fd7 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0276_s32.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0277_s33.jpg b/datasets/gongjian/split/images/train/20260820_112741_0277_s33.jpg new file mode 100644 index 0000000..3033b5f Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0277_s33.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0278_s30.jpg b/datasets/gongjian/split/images/train/20260820_112741_0278_s30.jpg new file mode 100644 index 0000000..ac6ae65 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0278_s30.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0281_s33.jpg b/datasets/gongjian/split/images/train/20260820_112741_0281_s33.jpg new file mode 100644 index 0000000..df62921 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0281_s33.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0282_s32.jpg b/datasets/gongjian/split/images/train/20260820_112741_0282_s32.jpg new file mode 100644 index 0000000..32acae7 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0282_s32.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0283_s33.jpg b/datasets/gongjian/split/images/train/20260820_112741_0283_s33.jpg new file mode 100644 index 0000000..dd32774 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0283_s33.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0284_s32.jpg b/datasets/gongjian/split/images/train/20260820_112741_0284_s32.jpg new file mode 100644 index 0000000..77db10f Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0284_s32.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0285_s33.jpg b/datasets/gongjian/split/images/train/20260820_112741_0285_s33.jpg new file mode 100644 index 0000000..c5214b4 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0285_s33.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0286_s31.jpg b/datasets/gongjian/split/images/train/20260820_112741_0286_s31.jpg new file mode 100644 index 0000000..c002643 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0286_s31.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0287_s31.jpg b/datasets/gongjian/split/images/train/20260820_112741_0287_s31.jpg new file mode 100644 index 0000000..67ae036 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0287_s31.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0288_s29.jpg b/datasets/gongjian/split/images/train/20260820_112741_0288_s29.jpg new file mode 100644 index 0000000..a1b692a Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0288_s29.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0290_s29.jpg b/datasets/gongjian/split/images/train/20260820_112741_0290_s29.jpg new file mode 100644 index 0000000..5c7d1ce Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0290_s29.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0291_s22.jpg b/datasets/gongjian/split/images/train/20260820_112741_0291_s22.jpg new file mode 100644 index 0000000..50153b2 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0291_s22.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0293_s34.jpg b/datasets/gongjian/split/images/train/20260820_112741_0293_s34.jpg new file mode 100644 index 0000000..86cd204 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0293_s34.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0297_s29.jpg b/datasets/gongjian/split/images/train/20260820_112741_0297_s29.jpg new file mode 100644 index 0000000..753d4dd Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0297_s29.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0298_s28.jpg b/datasets/gongjian/split/images/train/20260820_112741_0298_s28.jpg new file mode 100644 index 0000000..b6ab10f Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0298_s28.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0299_s29.jpg b/datasets/gongjian/split/images/train/20260820_112741_0299_s29.jpg new file mode 100644 index 0000000..39fb1d9 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0299_s29.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0300_s27.jpg b/datasets/gongjian/split/images/train/20260820_112741_0300_s27.jpg new file mode 100644 index 0000000..95e30bc Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0300_s27.jpg differ diff --git a/datasets/gongjian/split/images/train/20260820_112741_0301_s26.jpg b/datasets/gongjian/split/images/train/20260820_112741_0301_s26.jpg new file mode 100644 index 0000000..e22b486 Binary files /dev/null and b/datasets/gongjian/split/images/train/20260820_112741_0301_s26.jpg differ diff --git a/datasets/gongjian/split/images/val/20260820_112741_0004_s29.jpg b/datasets/gongjian/split/images/val/20260820_112741_0004_s29.jpg new file mode 100644 index 0000000..9f9f811 Binary files /dev/null and b/datasets/gongjian/split/images/val/20260820_112741_0004_s29.jpg differ diff --git a/datasets/gongjian/split/images/val/20260820_112741_0012_s34.jpg b/datasets/gongjian/split/images/val/20260820_112741_0012_s34.jpg new file mode 100644 index 0000000..c5e6fb7 Binary files /dev/null and b/datasets/gongjian/split/images/val/20260820_112741_0012_s34.jpg differ diff --git a/datasets/gongjian/split/images/val/20260820_112741_0013_s39.jpg b/datasets/gongjian/split/images/val/20260820_112741_0013_s39.jpg new file mode 100644 index 0000000..be0416f Binary files /dev/null and b/datasets/gongjian/split/images/val/20260820_112741_0013_s39.jpg differ diff --git a/datasets/gongjian/split/images/val/20260820_112741_0014_s41.jpg b/datasets/gongjian/split/images/val/20260820_112741_0014_s41.jpg new file mode 100644 index 0000000..c415f4d Binary files /dev/null and b/datasets/gongjian/split/images/val/20260820_112741_0014_s41.jpg differ diff --git a/datasets/gongjian/split/images/val/20260820_112741_0016_s48.jpg b/datasets/gongjian/split/images/val/20260820_112741_0016_s48.jpg new file mode 100644 index 0000000..ee4252c Binary files /dev/null and b/datasets/gongjian/split/images/val/20260820_112741_0016_s48.jpg differ diff --git a/datasets/gongjian/split/images/val/20260820_112741_0017_s50.jpg b/datasets/gongjian/split/images/val/20260820_112741_0017_s50.jpg new file mode 100644 index 0000000..e6f631f Binary files /dev/null and b/datasets/gongjian/split/images/val/20260820_112741_0017_s50.jpg differ diff --git a/datasets/gongjian/split/images/val/20260820_112741_0018_s27.jpg b/datasets/gongjian/split/images/val/20260820_112741_0018_s27.jpg new file mode 100644 index 0000000..98beed5 Binary files /dev/null and b/datasets/gongjian/split/images/val/20260820_112741_0018_s27.jpg differ diff --git a/datasets/gongjian/split/images/val/20260820_112741_0021_s26.jpg b/datasets/gongjian/split/images/val/20260820_112741_0021_s26.jpg new file mode 100644 index 0000000..7d70b30 Binary files /dev/null and b/datasets/gongjian/split/images/val/20260820_112741_0021_s26.jpg differ diff --git a/datasets/gongjian/split/images/val/20260820_112741_0023_s34.jpg b/datasets/gongjian/split/images/val/20260820_112741_0023_s34.jpg new file mode 100644 index 0000000..3cc6b18 Binary files /dev/null and b/datasets/gongjian/split/images/val/20260820_112741_0023_s34.jpg differ diff --git a/datasets/gongjian/split/images/val/20260820_112741_0026_s34.jpg b/datasets/gongjian/split/images/val/20260820_112741_0026_s34.jpg new file mode 100644 index 0000000..a743341 Binary files /dev/null and b/datasets/gongjian/split/images/val/20260820_112741_0026_s34.jpg differ diff --git a/datasets/gongjian/split/images/val/20260820_112741_0041_s23.jpg b/datasets/gongjian/split/images/val/20260820_112741_0041_s23.jpg new file mode 100644 index 0000000..693c82b Binary files /dev/null and b/datasets/gongjian/split/images/val/20260820_112741_0041_s23.jpg differ diff --git a/datasets/gongjian/split/images/val/20260820_112741_0045_s29.jpg b/datasets/gongjian/split/images/val/20260820_112741_0045_s29.jpg new file mode 100644 index 0000000..4ba4346 Binary files /dev/null and b/datasets/gongjian/split/images/val/20260820_112741_0045_s29.jpg differ diff --git a/datasets/gongjian/split/images/val/20260820_112741_0048_s27.jpg b/datasets/gongjian/split/images/val/20260820_112741_0048_s27.jpg new file mode 100644 index 0000000..cb733bc Binary files /dev/null and b/datasets/gongjian/split/images/val/20260820_112741_0048_s27.jpg differ diff --git a/datasets/gongjian/split/images/val/20260820_112741_0050_s31.jpg b/datasets/gongjian/split/images/val/20260820_112741_0050_s31.jpg new file mode 100644 index 0000000..2424f78 Binary files /dev/null and b/datasets/gongjian/split/images/val/20260820_112741_0050_s31.jpg differ diff --git a/datasets/gongjian/split/images/val/20260820_112741_0053_s27.jpg b/datasets/gongjian/split/images/val/20260820_112741_0053_s27.jpg new file mode 100644 index 0000000..0560593 Binary files /dev/null and b/datasets/gongjian/split/images/val/20260820_112741_0053_s27.jpg differ diff --git a/datasets/gongjian/split/images/val/20260820_112741_0058_s34.jpg b/datasets/gongjian/split/images/val/20260820_112741_0058_s34.jpg new file mode 100644 index 0000000..3d61279 Binary files /dev/null and b/datasets/gongjian/split/images/val/20260820_112741_0058_s34.jpg differ diff --git a/datasets/gongjian/split/images/val/20260820_112741_0059_s36.jpg b/datasets/gongjian/split/images/val/20260820_112741_0059_s36.jpg new file mode 100644 index 0000000..88ddbdf Binary files /dev/null and b/datasets/gongjian/split/images/val/20260820_112741_0059_s36.jpg differ diff --git a/datasets/gongjian/split/images/val/20260820_112741_0060_s34.jpg b/datasets/gongjian/split/images/val/20260820_112741_0060_s34.jpg new file mode 100644 index 0000000..d980a05 Binary files /dev/null and b/datasets/gongjian/split/images/val/20260820_112741_0060_s34.jpg differ diff --git a/datasets/gongjian/split/images/val/20260820_112741_0064_s38.jpg b/datasets/gongjian/split/images/val/20260820_112741_0064_s38.jpg new file mode 100644 index 0000000..493ce53 Binary files /dev/null and b/datasets/gongjian/split/images/val/20260820_112741_0064_s38.jpg differ diff --git a/datasets/gongjian/split/images/val/20260820_112741_0072_s39.jpg b/datasets/gongjian/split/images/val/20260820_112741_0072_s39.jpg new file mode 100644 index 0000000..d37a3e6 Binary files /dev/null and b/datasets/gongjian/split/images/val/20260820_112741_0072_s39.jpg differ diff --git a/datasets/gongjian/split/images/val/20260820_112741_0075_s46.jpg b/datasets/gongjian/split/images/val/20260820_112741_0075_s46.jpg new file mode 100644 index 0000000..64f2acb Binary files /dev/null and b/datasets/gongjian/split/images/val/20260820_112741_0075_s46.jpg differ diff --git a/datasets/gongjian/split/images/val/20260820_112741_0080_s42.jpg b/datasets/gongjian/split/images/val/20260820_112741_0080_s42.jpg new file mode 100644 index 0000000..89021f8 Binary files /dev/null and b/datasets/gongjian/split/images/val/20260820_112741_0080_s42.jpg differ diff --git a/datasets/gongjian/split/images/val/20260820_112741_0082_s40.jpg b/datasets/gongjian/split/images/val/20260820_112741_0082_s40.jpg new file mode 100644 index 0000000..ed33387 Binary files /dev/null and b/datasets/gongjian/split/images/val/20260820_112741_0082_s40.jpg differ diff --git a/datasets/gongjian/split/images/val/20260820_112741_0098_s29.jpg b/datasets/gongjian/split/images/val/20260820_112741_0098_s29.jpg new file mode 100644 index 0000000..fb236c1 Binary files /dev/null and b/datasets/gongjian/split/images/val/20260820_112741_0098_s29.jpg differ diff --git a/datasets/gongjian/split/images/val/20260820_112741_0099_s25.jpg b/datasets/gongjian/split/images/val/20260820_112741_0099_s25.jpg new file mode 100644 index 0000000..fb72cf5 Binary files /dev/null and b/datasets/gongjian/split/images/val/20260820_112741_0099_s25.jpg differ diff --git a/datasets/gongjian/split/images/val/20260820_112741_0102_s25.jpg b/datasets/gongjian/split/images/val/20260820_112741_0102_s25.jpg new file mode 100644 index 0000000..38a20c5 Binary files /dev/null and b/datasets/gongjian/split/images/val/20260820_112741_0102_s25.jpg differ diff --git a/datasets/gongjian/split/images/val/20260820_112741_0111_s35.jpg b/datasets/gongjian/split/images/val/20260820_112741_0111_s35.jpg new file mode 100644 index 0000000..68205a8 Binary files /dev/null and b/datasets/gongjian/split/images/val/20260820_112741_0111_s35.jpg differ diff --git a/datasets/gongjian/split/images/val/20260820_112741_0112_s31.jpg b/datasets/gongjian/split/images/val/20260820_112741_0112_s31.jpg new file mode 100644 index 0000000..c68510b Binary files /dev/null and b/datasets/gongjian/split/images/val/20260820_112741_0112_s31.jpg differ diff --git a/datasets/gongjian/split/images/val/20260820_112741_0113_s31.jpg b/datasets/gongjian/split/images/val/20260820_112741_0113_s31.jpg new file mode 100644 index 0000000..4cfe858 Binary files /dev/null and b/datasets/gongjian/split/images/val/20260820_112741_0113_s31.jpg differ diff --git a/datasets/gongjian/split/images/val/20260820_112741_0115_s35.jpg b/datasets/gongjian/split/images/val/20260820_112741_0115_s35.jpg new file mode 100644 index 0000000..8aa1a21 Binary files /dev/null and b/datasets/gongjian/split/images/val/20260820_112741_0115_s35.jpg differ diff --git a/datasets/gongjian/split/images/val/20260820_112741_0120_s39.jpg b/datasets/gongjian/split/images/val/20260820_112741_0120_s39.jpg new file mode 100644 index 0000000..e836249 Binary files /dev/null and b/datasets/gongjian/split/images/val/20260820_112741_0120_s39.jpg differ diff --git a/datasets/gongjian/split/images/val/20260820_112741_0126_s40.jpg b/datasets/gongjian/split/images/val/20260820_112741_0126_s40.jpg new file mode 100644 index 0000000..bf26eee Binary files /dev/null and b/datasets/gongjian/split/images/val/20260820_112741_0126_s40.jpg differ diff --git a/datasets/gongjian/split/images/val/20260820_112741_0136_s23.jpg b/datasets/gongjian/split/images/val/20260820_112741_0136_s23.jpg new file mode 100644 index 0000000..2125d18 Binary files /dev/null and b/datasets/gongjian/split/images/val/20260820_112741_0136_s23.jpg differ diff --git a/datasets/gongjian/split/images/val/20260820_112741_0141_s22.jpg b/datasets/gongjian/split/images/val/20260820_112741_0141_s22.jpg new file mode 100644 index 0000000..23b001c Binary files /dev/null and b/datasets/gongjian/split/images/val/20260820_112741_0141_s22.jpg differ diff --git a/datasets/gongjian/split/images/val/20260820_112741_0143_s23.jpg b/datasets/gongjian/split/images/val/20260820_112741_0143_s23.jpg new file mode 100644 index 0000000..bad0865 Binary files /dev/null and b/datasets/gongjian/split/images/val/20260820_112741_0143_s23.jpg differ diff --git a/datasets/gongjian/split/images/val/20260820_112741_0151_s31.jpg b/datasets/gongjian/split/images/val/20260820_112741_0151_s31.jpg new file mode 100644 index 0000000..e2909a9 Binary files /dev/null and b/datasets/gongjian/split/images/val/20260820_112741_0151_s31.jpg differ diff --git a/datasets/gongjian/split/images/val/20260820_112741_0170_s34.jpg b/datasets/gongjian/split/images/val/20260820_112741_0170_s34.jpg new file mode 100644 index 0000000..95dbaa5 Binary files /dev/null and b/datasets/gongjian/split/images/val/20260820_112741_0170_s34.jpg differ diff --git a/datasets/gongjian/split/images/val/20260820_112741_0173_s33.jpg b/datasets/gongjian/split/images/val/20260820_112741_0173_s33.jpg new file mode 100644 index 0000000..8cea0a4 Binary files /dev/null and b/datasets/gongjian/split/images/val/20260820_112741_0173_s33.jpg differ diff --git a/datasets/gongjian/split/images/val/20260820_112741_0175_s33.jpg b/datasets/gongjian/split/images/val/20260820_112741_0175_s33.jpg new file mode 100644 index 0000000..401b35f Binary files /dev/null and b/datasets/gongjian/split/images/val/20260820_112741_0175_s33.jpg differ diff --git a/datasets/gongjian/split/images/val/20260820_112741_0177_s28.jpg b/datasets/gongjian/split/images/val/20260820_112741_0177_s28.jpg new file mode 100644 index 0000000..bd25bf1 Binary files /dev/null and b/datasets/gongjian/split/images/val/20260820_112741_0177_s28.jpg differ diff --git a/datasets/gongjian/split/images/val/20260820_112741_0181_s25.jpg b/datasets/gongjian/split/images/val/20260820_112741_0181_s25.jpg new file mode 100644 index 0000000..def6286 Binary files /dev/null and b/datasets/gongjian/split/images/val/20260820_112741_0181_s25.jpg differ diff --git a/datasets/gongjian/split/images/val/20260820_112741_0184_s28.jpg b/datasets/gongjian/split/images/val/20260820_112741_0184_s28.jpg new file mode 100644 index 0000000..8e42876 Binary files /dev/null and b/datasets/gongjian/split/images/val/20260820_112741_0184_s28.jpg differ diff --git a/datasets/gongjian/split/images/val/20260820_112741_0186_s29.jpg b/datasets/gongjian/split/images/val/20260820_112741_0186_s29.jpg new file mode 100644 index 0000000..6087df1 Binary files /dev/null and b/datasets/gongjian/split/images/val/20260820_112741_0186_s29.jpg differ diff --git a/datasets/gongjian/split/images/val/20260820_112741_0194_s30.jpg b/datasets/gongjian/split/images/val/20260820_112741_0194_s30.jpg new file mode 100644 index 0000000..63202ea Binary files /dev/null and b/datasets/gongjian/split/images/val/20260820_112741_0194_s30.jpg differ diff --git a/datasets/gongjian/split/images/val/20260820_112741_0195_s30.jpg b/datasets/gongjian/split/images/val/20260820_112741_0195_s30.jpg new file mode 100644 index 0000000..49b3254 Binary files /dev/null and b/datasets/gongjian/split/images/val/20260820_112741_0195_s30.jpg differ diff --git a/datasets/gongjian/split/images/val/20260820_112741_0198_s15.jpg b/datasets/gongjian/split/images/val/20260820_112741_0198_s15.jpg new file mode 100644 index 0000000..4025447 Binary files /dev/null and b/datasets/gongjian/split/images/val/20260820_112741_0198_s15.jpg differ diff --git a/datasets/gongjian/split/images/val/20260820_112741_0215_s20.jpg b/datasets/gongjian/split/images/val/20260820_112741_0215_s20.jpg new file mode 100644 index 0000000..381cf49 Binary files /dev/null and b/datasets/gongjian/split/images/val/20260820_112741_0215_s20.jpg differ diff --git a/datasets/gongjian/split/images/val/20260820_112741_0217_s23.jpg b/datasets/gongjian/split/images/val/20260820_112741_0217_s23.jpg new file mode 100644 index 0000000..722e8f1 Binary files /dev/null and b/datasets/gongjian/split/images/val/20260820_112741_0217_s23.jpg differ diff --git a/datasets/gongjian/split/images/val/20260820_112741_0219_s24.jpg b/datasets/gongjian/split/images/val/20260820_112741_0219_s24.jpg new file mode 100644 index 0000000..a30389d Binary files /dev/null and b/datasets/gongjian/split/images/val/20260820_112741_0219_s24.jpg differ diff --git a/datasets/gongjian/split/images/val/20260820_112741_0222_s25.jpg b/datasets/gongjian/split/images/val/20260820_112741_0222_s25.jpg new file mode 100644 index 0000000..ccf89ce Binary files /dev/null and b/datasets/gongjian/split/images/val/20260820_112741_0222_s25.jpg differ diff --git a/datasets/gongjian/split/images/val/20260820_112741_0230_s29.jpg b/datasets/gongjian/split/images/val/20260820_112741_0230_s29.jpg new file mode 100644 index 0000000..c9b844a Binary files /dev/null and b/datasets/gongjian/split/images/val/20260820_112741_0230_s29.jpg differ diff --git a/datasets/gongjian/split/images/val/20260820_112741_0236_s30.jpg b/datasets/gongjian/split/images/val/20260820_112741_0236_s30.jpg new file mode 100644 index 0000000..be11654 Binary files /dev/null and b/datasets/gongjian/split/images/val/20260820_112741_0236_s30.jpg differ diff --git a/datasets/gongjian/split/images/val/20260820_112741_0259_s25.jpg b/datasets/gongjian/split/images/val/20260820_112741_0259_s25.jpg new file mode 100644 index 0000000..8010b48 Binary files /dev/null and b/datasets/gongjian/split/images/val/20260820_112741_0259_s25.jpg differ diff --git a/datasets/gongjian/split/images/val/20260820_112741_0279_s32.jpg b/datasets/gongjian/split/images/val/20260820_112741_0279_s32.jpg new file mode 100644 index 0000000..14a1c05 Binary files /dev/null and b/datasets/gongjian/split/images/val/20260820_112741_0279_s32.jpg differ diff --git a/datasets/gongjian/split/images/val/20260820_112741_0280_s23.jpg b/datasets/gongjian/split/images/val/20260820_112741_0280_s23.jpg new file mode 100644 index 0000000..ec78363 Binary files /dev/null and b/datasets/gongjian/split/images/val/20260820_112741_0280_s23.jpg differ diff --git a/datasets/gongjian/split/images/val/20260820_112741_0289_s31.jpg b/datasets/gongjian/split/images/val/20260820_112741_0289_s31.jpg new file mode 100644 index 0000000..518585d Binary files /dev/null and b/datasets/gongjian/split/images/val/20260820_112741_0289_s31.jpg differ diff --git a/datasets/gongjian/split/images/val/20260820_112741_0292_s32.jpg b/datasets/gongjian/split/images/val/20260820_112741_0292_s32.jpg new file mode 100644 index 0000000..2de3277 Binary files /dev/null and b/datasets/gongjian/split/images/val/20260820_112741_0292_s32.jpg differ diff --git a/datasets/gongjian/split/images/val/20260820_112741_0294_s33.jpg b/datasets/gongjian/split/images/val/20260820_112741_0294_s33.jpg new file mode 100644 index 0000000..96add94 Binary files /dev/null and b/datasets/gongjian/split/images/val/20260820_112741_0294_s33.jpg differ diff --git a/datasets/gongjian/split/images/val/20260820_112741_0295_s32.jpg b/datasets/gongjian/split/images/val/20260820_112741_0295_s32.jpg new file mode 100644 index 0000000..a63fa49 Binary files /dev/null and b/datasets/gongjian/split/images/val/20260820_112741_0295_s32.jpg differ diff --git a/datasets/gongjian/split/images/val/20260820_112741_0296_s26.jpg b/datasets/gongjian/split/images/val/20260820_112741_0296_s26.jpg new file mode 100644 index 0000000..b52af35 Binary files /dev/null and b/datasets/gongjian/split/images/val/20260820_112741_0296_s26.jpg differ diff --git a/datasets/gongjian/split/labels/train.cache b/datasets/gongjian/split/labels/train.cache new file mode 100644 index 0000000..3fc5956 Binary files /dev/null and b/datasets/gongjian/split/labels/train.cache differ diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0001_s26.txt b/datasets/gongjian/split/labels/train/20260820_112741_0001_s26.txt new file mode 100644 index 0000000..91706f0 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0001_s26.txt @@ -0,0 +1 @@ +0 0.569442 0.765800 0.333376 0.461934 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0002_s29.txt b/datasets/gongjian/split/labels/train/20260820_112741_0002_s29.txt new file mode 100644 index 0000000..2ca6499 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0002_s29.txt @@ -0,0 +1 @@ +0 0.569356 0.766161 0.333162 0.461863 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0003_s30.txt b/datasets/gongjian/split/labels/train/20260820_112741_0003_s30.txt new file mode 100644 index 0000000..ad7d144 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0003_s30.txt @@ -0,0 +1 @@ +0 0.569495 0.766256 0.332998 0.461987 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0005_s30.txt b/datasets/gongjian/split/labels/train/20260820_112741_0005_s30.txt new file mode 100644 index 0000000..c2494b3 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0005_s30.txt @@ -0,0 +1 @@ +0 0.569607 0.766791 0.332839 0.461367 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0006_s30.txt b/datasets/gongjian/split/labels/train/20260820_112741_0006_s30.txt new file mode 100644 index 0000000..a18788a --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0006_s30.txt @@ -0,0 +1 @@ +0 0.569533 0.766650 0.333012 0.461777 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0007_s30.txt b/datasets/gongjian/split/labels/train/20260820_112741_0007_s30.txt new file mode 100644 index 0000000..e61ee54 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0007_s30.txt @@ -0,0 +1 @@ +0 0.569512 0.766784 0.332753 0.461267 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0008_s30.txt b/datasets/gongjian/split/labels/train/20260820_112741_0008_s30.txt new file mode 100644 index 0000000..b9b4362 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0008_s30.txt @@ -0,0 +1 @@ +0 0.569520 0.766823 0.332832 0.461306 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0009_s31.txt b/datasets/gongjian/split/labels/train/20260820_112741_0009_s31.txt new file mode 100644 index 0000000..ab8f71f --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0009_s31.txt @@ -0,0 +1 @@ +0 0.569666 0.767047 0.332688 0.461032 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0010_s31.txt b/datasets/gongjian/split/labels/train/20260820_112741_0010_s31.txt new file mode 100644 index 0000000..d951bcc --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0010_s31.txt @@ -0,0 +1 @@ +0 0.569667 0.767253 0.332780 0.460495 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0011_s32.txt b/datasets/gongjian/split/labels/train/20260820_112741_0011_s32.txt new file mode 100644 index 0000000..5e03d4c --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0011_s32.txt @@ -0,0 +1 @@ +0 0.569861 0.767400 0.332622 0.460366 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0015_s48.txt b/datasets/gongjian/split/labels/train/20260820_112741_0015_s48.txt new file mode 100644 index 0000000..8e5b432 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0015_s48.txt @@ -0,0 +1 @@ +0 0.562394 0.772594 0.303042 0.450086 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0019_s24.txt b/datasets/gongjian/split/labels/train/20260820_112741_0019_s24.txt new file mode 100644 index 0000000..3b16666 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0019_s24.txt @@ -0,0 +1 @@ +0 0.371399 0.503263 0.201543 0.537267 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0020_s27.txt b/datasets/gongjian/split/labels/train/20260820_112741_0020_s27.txt new file mode 100644 index 0000000..a29959d --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0020_s27.txt @@ -0,0 +1 @@ +0 0.371741 0.498212 0.200305 0.541431 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0022_s26.txt b/datasets/gongjian/split/labels/train/20260820_112741_0022_s26.txt new file mode 100644 index 0000000..9ab687f --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0022_s26.txt @@ -0,0 +1 @@ +0 0.410385 0.468981 0.196236 0.557181 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0024_s33.txt b/datasets/gongjian/split/labels/train/20260820_112741_0024_s33.txt new file mode 100644 index 0000000..78e9537 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0024_s33.txt @@ -0,0 +1 @@ +0 0.447651 0.473731 0.193526 0.534939 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0025_s34.txt b/datasets/gongjian/split/labels/train/20260820_112741_0025_s34.txt new file mode 100644 index 0000000..c68f299 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0025_s34.txt @@ -0,0 +1 @@ +0 0.463993 0.500898 0.210835 0.508550 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0027_s35.txt b/datasets/gongjian/split/labels/train/20260820_112741_0027_s35.txt new file mode 100644 index 0000000..93023ff --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0027_s35.txt @@ -0,0 +1 @@ +0 0.456835 0.456783 0.321137 0.323474 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0028_s37.txt b/datasets/gongjian/split/labels/train/20260820_112741_0028_s37.txt new file mode 100644 index 0000000..9ddc77c --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0028_s37.txt @@ -0,0 +1 @@ +0 0.456776 0.456939 0.321221 0.322906 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0029_s24.txt b/datasets/gongjian/split/labels/train/20260820_112741_0029_s24.txt new file mode 100644 index 0000000..f843b33 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0029_s24.txt @@ -0,0 +1 @@ +0 0.438374 0.436252 0.330737 0.319794 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0030_s24.txt b/datasets/gongjian/split/labels/train/20260820_112741_0030_s24.txt new file mode 100644 index 0000000..52e76c3 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0030_s24.txt @@ -0,0 +1 @@ +0 0.416819 0.436627 0.336654 0.319238 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0031_s33.txt b/datasets/gongjian/split/labels/train/20260820_112741_0031_s33.txt new file mode 100644 index 0000000..cbd3367 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0031_s33.txt @@ -0,0 +1 @@ +0 0.417020 0.437325 0.338843 0.321492 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0032_s34.txt b/datasets/gongjian/split/labels/train/20260820_112741_0032_s34.txt new file mode 100644 index 0000000..a919e79 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0032_s34.txt @@ -0,0 +1 @@ +0 0.417096 0.437105 0.338867 0.320287 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0033_s32.txt b/datasets/gongjian/split/labels/train/20260820_112741_0033_s32.txt new file mode 100644 index 0000000..98ae48c --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0033_s32.txt @@ -0,0 +1 @@ +0 0.416659 0.436939 0.337862 0.319489 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0034_s29.txt b/datasets/gongjian/split/labels/train/20260820_112741_0034_s29.txt new file mode 100644 index 0000000..7147714 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0034_s29.txt @@ -0,0 +1 @@ +0 0.418450 0.444874 0.339510 0.322111 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0035_s30.txt b/datasets/gongjian/split/labels/train/20260820_112741_0035_s30.txt new file mode 100644 index 0000000..58f1951 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0035_s30.txt @@ -0,0 +1 @@ +0 0.418692 0.446398 0.339427 0.322615 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0036_s26.txt b/datasets/gongjian/split/labels/train/20260820_112741_0036_s26.txt new file mode 100644 index 0000000..5ecd29c --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0036_s26.txt @@ -0,0 +1 @@ +0 0.421449 0.446794 0.334032 0.322022 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0037_s31.txt b/datasets/gongjian/split/labels/train/20260820_112741_0037_s31.txt new file mode 100644 index 0000000..dd750ff --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0037_s31.txt @@ -0,0 +1 @@ +0 0.457107 0.474355 0.320222 0.326046 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0038_s32.txt b/datasets/gongjian/split/labels/train/20260820_112741_0038_s32.txt new file mode 100644 index 0000000..0675462 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0038_s32.txt @@ -0,0 +1 @@ +0 0.454003 0.480269 0.316167 0.328952 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0039_s32.txt b/datasets/gongjian/split/labels/train/20260820_112741_0039_s32.txt new file mode 100644 index 0000000..6422be0 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0039_s32.txt @@ -0,0 +1 @@ +0 0.470685 0.480254 0.283904 0.328527 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0040_s26.txt b/datasets/gongjian/split/labels/train/20260820_112741_0040_s26.txt new file mode 100644 index 0000000..be970c6 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0040_s26.txt @@ -0,0 +1 @@ +0 0.447478 0.450263 0.252998 0.369136 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0042_s31.txt b/datasets/gongjian/split/labels/train/20260820_112741_0042_s31.txt new file mode 100644 index 0000000..25d708b --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0042_s31.txt @@ -0,0 +1 @@ +0 0.421376 0.408054 0.189129 0.507963 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0043_s30.txt b/datasets/gongjian/split/labels/train/20260820_112741_0043_s30.txt new file mode 100644 index 0000000..55c0fb2 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0043_s30.txt @@ -0,0 +1 @@ +0 0.421562 0.408017 0.189138 0.507482 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0044_s32.txt b/datasets/gongjian/split/labels/train/20260820_112741_0044_s32.txt new file mode 100644 index 0000000..6142334 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0044_s32.txt @@ -0,0 +1 @@ +0 0.463610 0.407999 0.187312 0.524550 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0046_s30.txt b/datasets/gongjian/split/labels/train/20260820_112741_0046_s30.txt new file mode 100644 index 0000000..3f78da3 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0046_s30.txt @@ -0,0 +1 @@ +0 0.490058 0.394257 0.193335 0.469521 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0047_s34.txt b/datasets/gongjian/split/labels/train/20260820_112741_0047_s34.txt new file mode 100644 index 0000000..2e3e60b --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0047_s34.txt @@ -0,0 +1 @@ +0 0.490061 0.394384 0.194262 0.469630 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0049_s30.txt b/datasets/gongjian/split/labels/train/20260820_112741_0049_s30.txt new file mode 100644 index 0000000..a916bec --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0049_s30.txt @@ -0,0 +1 @@ +0 0.523083 0.360323 0.271300 0.327702 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0051_s20.txt b/datasets/gongjian/split/labels/train/20260820_112741_0051_s20.txt new file mode 100644 index 0000000..00b0ba2 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0051_s20.txt @@ -0,0 +1 @@ +0 0.524647 0.362062 0.269222 0.332163 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0052_s28.txt b/datasets/gongjian/split/labels/train/20260820_112741_0052_s28.txt new file mode 100644 index 0000000..598d1be --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0052_s28.txt @@ -0,0 +1 @@ +0 0.591658 0.402361 0.184183 0.478170 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0054_s22.txt b/datasets/gongjian/split/labels/train/20260820_112741_0054_s22.txt new file mode 100644 index 0000000..fecf7f3 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0054_s22.txt @@ -0,0 +1 @@ +0 0.592076 0.455439 0.189621 0.534744 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0055_s31.txt b/datasets/gongjian/split/labels/train/20260820_112741_0055_s31.txt new file mode 100644 index 0000000..d661602 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0055_s31.txt @@ -0,0 +1 @@ +0 0.565442 0.478073 0.192139 0.533758 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0056_s30.txt b/datasets/gongjian/split/labels/train/20260820_112741_0056_s30.txt new file mode 100644 index 0000000..cd81dee --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0056_s30.txt @@ -0,0 +1 @@ +0 0.565493 0.478165 0.191493 0.533482 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0057_s26.txt b/datasets/gongjian/split/labels/train/20260820_112741_0057_s26.txt new file mode 100644 index 0000000..b99ea25 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0057_s26.txt @@ -0,0 +1 @@ +0 0.524712 0.526930 0.224620 0.513770 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0061_s38.txt b/datasets/gongjian/split/labels/train/20260820_112741_0061_s38.txt new file mode 100644 index 0000000..fea3583 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0061_s38.txt @@ -0,0 +1 @@ +0 0.459496 0.615741 0.269815 0.492954 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0062_s39.txt b/datasets/gongjian/split/labels/train/20260820_112741_0062_s39.txt new file mode 100644 index 0000000..e14591c --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0062_s39.txt @@ -0,0 +1 @@ +0 0.459476 0.615907 0.269968 0.493555 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0063_s40.txt b/datasets/gongjian/split/labels/train/20260820_112741_0063_s40.txt new file mode 100644 index 0000000..69aaa7c --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0063_s40.txt @@ -0,0 +1 @@ +0 0.459394 0.616224 0.269904 0.493799 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0065_s35.txt b/datasets/gongjian/split/labels/train/20260820_112741_0065_s35.txt new file mode 100644 index 0000000..b759d9b --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0065_s35.txt @@ -0,0 +1 @@ +0 0.449077 0.633250 0.293329 0.465182 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0066_s34.txt b/datasets/gongjian/split/labels/train/20260820_112741_0066_s34.txt new file mode 100644 index 0000000..5f67abc --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0066_s34.txt @@ -0,0 +1 @@ +0 0.448411 0.634101 0.294655 0.460851 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0067_s34.txt b/datasets/gongjian/split/labels/train/20260820_112741_0067_s34.txt new file mode 100644 index 0000000..adb3845 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0067_s34.txt @@ -0,0 +1 @@ +0 0.413877 0.700852 0.360560 0.383758 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0068_s34.txt b/datasets/gongjian/split/labels/train/20260820_112741_0068_s34.txt new file mode 100644 index 0000000..862eeb9 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0068_s34.txt @@ -0,0 +1 @@ +0 0.413225 0.702331 0.361054 0.383718 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0069_s38.txt b/datasets/gongjian/split/labels/train/20260820_112741_0069_s38.txt new file mode 100644 index 0000000..8c4c998 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0069_s38.txt @@ -0,0 +1 @@ +0 0.412828 0.661278 0.367105 0.372111 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0070_s39.txt b/datasets/gongjian/split/labels/train/20260820_112741_0070_s39.txt new file mode 100644 index 0000000..fb09327 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0070_s39.txt @@ -0,0 +1 @@ +0 0.397789 0.595963 0.363797 0.357956 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0071_s45.txt b/datasets/gongjian/split/labels/train/20260820_112741_0071_s45.txt new file mode 100644 index 0000000..180e122 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0071_s45.txt @@ -0,0 +1 @@ +0 0.393919 0.566109 0.356705 0.351411 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0073_s38.txt b/datasets/gongjian/split/labels/train/20260820_112741_0073_s38.txt new file mode 100644 index 0000000..86a1afd --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0073_s38.txt @@ -0,0 +1 @@ +0 0.425776 0.545304 0.348678 0.344383 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0074_s46.txt b/datasets/gongjian/split/labels/train/20260820_112741_0074_s46.txt new file mode 100644 index 0000000..adc8859 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0074_s46.txt @@ -0,0 +1 @@ +0 0.462484 0.535169 0.344190 0.340678 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0076_s38.txt b/datasets/gongjian/split/labels/train/20260820_112741_0076_s38.txt new file mode 100644 index 0000000..90f713e --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0076_s38.txt @@ -0,0 +1 @@ +0 0.488923 0.531322 0.340413 0.340117 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0077_s47.txt b/datasets/gongjian/split/labels/train/20260820_112741_0077_s47.txt new file mode 100644 index 0000000..6e3eb99 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0077_s47.txt @@ -0,0 +1 @@ +0 0.497375 0.518249 0.342358 0.336856 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0078_s43.txt b/datasets/gongjian/split/labels/train/20260820_112741_0078_s43.txt new file mode 100644 index 0000000..a021197 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0078_s43.txt @@ -0,0 +1 @@ +0 0.497616 0.518085 0.342077 0.336357 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0079_s42.txt b/datasets/gongjian/split/labels/train/20260820_112741_0079_s42.txt new file mode 100644 index 0000000..4dde22c --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0079_s42.txt @@ -0,0 +1 @@ +0 0.493738 0.488307 0.331160 0.329256 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0081_s37.txt b/datasets/gongjian/split/labels/train/20260820_112741_0081_s37.txt new file mode 100644 index 0000000..d43a449 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0081_s37.txt @@ -0,0 +1 @@ +0 0.496548 0.459852 0.315403 0.322858 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0083_s45.txt b/datasets/gongjian/split/labels/train/20260820_112741_0083_s45.txt new file mode 100644 index 0000000..5857594 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0083_s45.txt @@ -0,0 +1 @@ +0 0.505627 0.500733 0.341724 0.332761 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0084_s44.txt b/datasets/gongjian/split/labels/train/20260820_112741_0084_s44.txt new file mode 100644 index 0000000..43e7b3d --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0084_s44.txt @@ -0,0 +1 @@ +0 0.505575 0.500767 0.341260 0.332093 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0085_s43.txt b/datasets/gongjian/split/labels/train/20260820_112741_0085_s43.txt new file mode 100644 index 0000000..fe237a2 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0085_s43.txt @@ -0,0 +1 @@ +0 0.505317 0.499026 0.340963 0.331103 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0086_s40.txt b/datasets/gongjian/split/labels/train/20260820_112741_0086_s40.txt new file mode 100644 index 0000000..72e8e3b --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0086_s40.txt @@ -0,0 +1 @@ +0 0.505443 0.499090 0.342109 0.331428 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0087_s35.txt b/datasets/gongjian/split/labels/train/20260820_112741_0087_s35.txt new file mode 100644 index 0000000..4f2d851 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0087_s35.txt @@ -0,0 +1 @@ +0 0.505332 0.499013 0.341860 0.330664 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0088_s32.txt b/datasets/gongjian/split/labels/train/20260820_112741_0088_s32.txt new file mode 100644 index 0000000..2d20162 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0088_s32.txt @@ -0,0 +1 @@ +0 0.505355 0.499191 0.341541 0.331153 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0089_s32.txt b/datasets/gongjian/split/labels/train/20260820_112741_0089_s32.txt new file mode 100644 index 0000000..37d207c --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0089_s32.txt @@ -0,0 +1 @@ +0 0.505377 0.499220 0.341482 0.330803 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0090_s31.txt b/datasets/gongjian/split/labels/train/20260820_112741_0090_s31.txt new file mode 100644 index 0000000..b72a47c --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0090_s31.txt @@ -0,0 +1 @@ +0 0.505323 0.499114 0.341393 0.331181 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0091_s31.txt b/datasets/gongjian/split/labels/train/20260820_112741_0091_s31.txt new file mode 100644 index 0000000..83d5e3d --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0091_s31.txt @@ -0,0 +1 @@ +0 0.505137 0.499062 0.340770 0.330926 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0092_s28.txt b/datasets/gongjian/split/labels/train/20260820_112741_0092_s28.txt new file mode 100644 index 0000000..7c30bfb --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0092_s28.txt @@ -0,0 +1 @@ +0 0.498369 0.504061 0.343034 0.333154 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0093_s23.txt b/datasets/gongjian/split/labels/train/20260820_112741_0093_s23.txt new file mode 100644 index 0000000..05d43bb --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0093_s23.txt @@ -0,0 +1 @@ +0 0.490350 0.510174 0.343370 0.334236 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0094_s27.txt b/datasets/gongjian/split/labels/train/20260820_112741_0094_s27.txt new file mode 100644 index 0000000..0e8b8a6 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0094_s27.txt @@ -0,0 +1 @@ +0 0.439280 0.518889 0.340327 0.337439 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0095_s29.txt b/datasets/gongjian/split/labels/train/20260820_112741_0095_s29.txt new file mode 100644 index 0000000..3f82046 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0095_s29.txt @@ -0,0 +1 @@ +0 0.439362 0.519490 0.341368 0.338767 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0096_s30.txt b/datasets/gongjian/split/labels/train/20260820_112741_0096_s30.txt new file mode 100644 index 0000000..3e84994 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0096_s30.txt @@ -0,0 +1 @@ +0 0.439211 0.519186 0.340755 0.337716 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0097_s31.txt b/datasets/gongjian/split/labels/train/20260820_112741_0097_s31.txt new file mode 100644 index 0000000..ab5faac --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0097_s31.txt @@ -0,0 +1 @@ +0 0.439257 0.519250 0.340908 0.337529 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0100_s24.txt b/datasets/gongjian/split/labels/train/20260820_112741_0100_s24.txt new file mode 100644 index 0000000..3db9bd0 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0100_s24.txt @@ -0,0 +1 @@ +0 0.426635 0.427004 0.333245 0.317175 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0101_s24.txt b/datasets/gongjian/split/labels/train/20260820_112741_0101_s24.txt new file mode 100644 index 0000000..95eca5d --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0101_s24.txt @@ -0,0 +1 @@ +0 0.408537 0.375527 0.305247 0.308629 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0103_s27.txt b/datasets/gongjian/split/labels/train/20260820_112741_0103_s27.txt new file mode 100644 index 0000000..575b973 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0103_s27.txt @@ -0,0 +1 @@ +0 0.408071 0.374542 0.304467 0.309378 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0104_s25.txt b/datasets/gongjian/split/labels/train/20260820_112741_0104_s25.txt new file mode 100644 index 0000000..df9f06f --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0104_s25.txt @@ -0,0 +1 @@ +0 0.417208 0.407512 0.313852 0.314653 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0105_s21.txt b/datasets/gongjian/split/labels/train/20260820_112741_0105_s21.txt new file mode 100644 index 0000000..1a31740 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0105_s21.txt @@ -0,0 +1 @@ +0 0.420779 0.411689 0.291611 0.355462 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0106_s31.txt b/datasets/gongjian/split/labels/train/20260820_112741_0106_s31.txt new file mode 100644 index 0000000..0dc7466 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0106_s31.txt @@ -0,0 +1 @@ +0 0.470201 0.467023 0.192632 0.529837 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0107_s34.txt b/datasets/gongjian/split/labels/train/20260820_112741_0107_s34.txt new file mode 100644 index 0000000..19beef1 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0107_s34.txt @@ -0,0 +1 @@ +0 0.470225 0.466869 0.192521 0.529792 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0108_s31.txt b/datasets/gongjian/split/labels/train/20260820_112741_0108_s31.txt new file mode 100644 index 0000000..27aed73 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0108_s31.txt @@ -0,0 +1 @@ +0 0.470255 0.466927 0.192741 0.530123 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0109_s31.txt b/datasets/gongjian/split/labels/train/20260820_112741_0109_s31.txt new file mode 100644 index 0000000..9ff8569 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0109_s31.txt @@ -0,0 +1 @@ +0 0.466102 0.495697 0.195162 0.556606 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0110_s36.txt b/datasets/gongjian/split/labels/train/20260820_112741_0110_s36.txt new file mode 100644 index 0000000..a249b41 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0110_s36.txt @@ -0,0 +1 @@ +0 0.466085 0.492863 0.195236 0.561253 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0114_s31.txt b/datasets/gongjian/split/labels/train/20260820_112741_0114_s31.txt new file mode 100644 index 0000000..238e927 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0114_s31.txt @@ -0,0 +1 @@ +0 0.473232 0.462339 0.220191 0.429274 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0116_s39.txt b/datasets/gongjian/split/labels/train/20260820_112741_0116_s39.txt new file mode 100644 index 0000000..8255ec8 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0116_s39.txt @@ -0,0 +1 @@ +0 0.470630 0.514057 0.343950 0.337704 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0117_s41.txt b/datasets/gongjian/split/labels/train/20260820_112741_0117_s41.txt new file mode 100644 index 0000000..372880a --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0117_s41.txt @@ -0,0 +1 @@ +0 0.470740 0.514304 0.344163 0.337349 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0118_s41.txt b/datasets/gongjian/split/labels/train/20260820_112741_0118_s41.txt new file mode 100644 index 0000000..7bdd022 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0118_s41.txt @@ -0,0 +1 @@ +0 0.470665 0.514299 0.343818 0.337230 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0119_s38.txt b/datasets/gongjian/split/labels/train/20260820_112741_0119_s38.txt new file mode 100644 index 0000000..5449c00 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0119_s38.txt @@ -0,0 +1 @@ +0 0.470395 0.514242 0.343152 0.337103 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0121_s41.txt b/datasets/gongjian/split/labels/train/20260820_112741_0121_s41.txt new file mode 100644 index 0000000..4119d95 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0121_s41.txt @@ -0,0 +1 @@ +0 0.452129 0.530621 0.350317 0.340338 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0122_s34.txt b/datasets/gongjian/split/labels/train/20260820_112741_0122_s34.txt new file mode 100644 index 0000000..65adaad --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0122_s34.txt @@ -0,0 +1 @@ +0 0.438920 0.528647 0.335048 0.336266 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0123_s37.txt b/datasets/gongjian/split/labels/train/20260820_112741_0123_s37.txt new file mode 100644 index 0000000..da71e76 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0123_s37.txt @@ -0,0 +1 @@ +0 0.436509 0.516145 0.332880 0.336523 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0124_s34.txt b/datasets/gongjian/split/labels/train/20260820_112741_0124_s34.txt new file mode 100644 index 0000000..3e6951a --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0124_s34.txt @@ -0,0 +1 @@ +0 0.436333 0.518410 0.332534 0.336369 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0125_s38.txt b/datasets/gongjian/split/labels/train/20260820_112741_0125_s38.txt new file mode 100644 index 0000000..0268153 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0125_s38.txt @@ -0,0 +1 @@ +0 0.436168 0.507479 0.327501 0.336603 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0127_s18.txt b/datasets/gongjian/split/labels/train/20260820_112741_0127_s18.txt new file mode 100644 index 0000000..8df2d17 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0127_s18.txt @@ -0,0 +1 @@ +0 0.439709 0.504705 0.316171 0.333886 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0128_s19.txt b/datasets/gongjian/split/labels/train/20260820_112741_0128_s19.txt new file mode 100644 index 0000000..c7583da --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0128_s19.txt @@ -0,0 +1 @@ +0 0.413883 0.568603 0.287750 0.186552 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0129_s21.txt b/datasets/gongjian/split/labels/train/20260820_112741_0129_s21.txt new file mode 100644 index 0000000..216554b --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0129_s21.txt @@ -0,0 +1 @@ +0 0.408387 0.493377 0.275794 0.336947 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0130_s18.txt b/datasets/gongjian/split/labels/train/20260820_112741_0130_s18.txt new file mode 100644 index 0000000..e578a7e --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0130_s18.txt @@ -0,0 +1 @@ +0 0.406308 0.490783 0.256551 0.378432 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0131_s25.txt b/datasets/gongjian/split/labels/train/20260820_112741_0131_s25.txt new file mode 100644 index 0000000..ac627ec --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0131_s25.txt @@ -0,0 +1 @@ +0 0.426653 0.490528 0.226315 0.497378 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0132_s39.txt b/datasets/gongjian/split/labels/train/20260820_112741_0132_s39.txt new file mode 100644 index 0000000..b5cc690 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0132_s39.txt @@ -0,0 +1 @@ +0 0.422798 0.486453 0.214453 0.507976 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0133_s42.txt b/datasets/gongjian/split/labels/train/20260820_112741_0133_s42.txt new file mode 100644 index 0000000..f0f8432 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0133_s42.txt @@ -0,0 +1 @@ +0 0.422781 0.486282 0.214029 0.507416 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0134_s29.txt b/datasets/gongjian/split/labels/train/20260820_112741_0134_s29.txt new file mode 100644 index 0000000..2d46eec --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0134_s29.txt @@ -0,0 +1 @@ +0 0.414280 0.487482 0.208779 0.517503 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0135_s24.txt b/datasets/gongjian/split/labels/train/20260820_112741_0135_s24.txt new file mode 100644 index 0000000..89c59df --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0135_s24.txt @@ -0,0 +1 @@ +0 0.403632 0.477423 0.195224 0.536870 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0137_s25.txt b/datasets/gongjian/split/labels/train/20260820_112741_0137_s25.txt new file mode 100644 index 0000000..faa8345 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0137_s25.txt @@ -0,0 +1 @@ +0 0.373499 0.469170 0.197316 0.555345 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0138_s25.txt b/datasets/gongjian/split/labels/train/20260820_112741_0138_s25.txt new file mode 100644 index 0000000..90dea7a --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0138_s25.txt @@ -0,0 +1 @@ +0 0.373424 0.468947 0.197117 0.555015 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0139_s26.txt b/datasets/gongjian/split/labels/train/20260820_112741_0139_s26.txt new file mode 100644 index 0000000..5a8794e --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0139_s26.txt @@ -0,0 +1 @@ +0 0.373534 0.468985 0.196778 0.554805 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0140_s25.txt b/datasets/gongjian/split/labels/train/20260820_112741_0140_s25.txt new file mode 100644 index 0000000..969c7b8 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0140_s25.txt @@ -0,0 +1 @@ +0 0.373605 0.468976 0.197192 0.555136 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0142_s15.txt b/datasets/gongjian/split/labels/train/20260820_112741_0142_s15.txt new file mode 100644 index 0000000..3f54110 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0142_s15.txt @@ -0,0 +1 @@ +0 0.457624 0.370598 0.184206 0.501725 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0144_s25.txt b/datasets/gongjian/split/labels/train/20260820_112741_0144_s25.txt new file mode 100644 index 0000000..faa63d1 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0144_s25.txt @@ -0,0 +1 @@ +0 0.499118 0.347019 0.192447 0.459474 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0145_s25.txt b/datasets/gongjian/split/labels/train/20260820_112741_0145_s25.txt new file mode 100644 index 0000000..ff160d4 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0145_s25.txt @@ -0,0 +1 @@ +0 0.499061 0.347016 0.192336 0.459373 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0146_s17.txt b/datasets/gongjian/split/labels/train/20260820_112741_0146_s17.txt new file mode 100644 index 0000000..d94ba7d --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0146_s17.txt @@ -0,0 +1 @@ +0 0.498304 0.348134 0.195338 0.458993 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0147_s21.txt b/datasets/gongjian/split/labels/train/20260820_112741_0147_s21.txt new file mode 100644 index 0000000..8291fc6 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0147_s21.txt @@ -0,0 +1 @@ +0 0.453470 0.443733 0.307768 0.327131 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0148_s28.txt b/datasets/gongjian/split/labels/train/20260820_112741_0148_s28.txt new file mode 100644 index 0000000..8a7d81f --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0148_s28.txt @@ -0,0 +1 @@ +0 0.436294 0.502091 0.341052 0.334608 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0149_s30.txt b/datasets/gongjian/split/labels/train/20260820_112741_0149_s30.txt new file mode 100644 index 0000000..8c89bb1 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0149_s30.txt @@ -0,0 +1 @@ +0 0.436128 0.502148 0.341156 0.334821 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0150_s30.txt b/datasets/gongjian/split/labels/train/20260820_112741_0150_s30.txt new file mode 100644 index 0000000..b403dad --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0150_s30.txt @@ -0,0 +1 @@ +0 0.436201 0.501910 0.340924 0.334222 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0152_s31.txt b/datasets/gongjian/split/labels/train/20260820_112741_0152_s31.txt new file mode 100644 index 0000000..da7c025 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0152_s31.txt @@ -0,0 +1 @@ +0 0.436255 0.501964 0.341136 0.334375 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0153_s32.txt b/datasets/gongjian/split/labels/train/20260820_112741_0153_s32.txt new file mode 100644 index 0000000..080f8bb --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0153_s32.txt @@ -0,0 +1 @@ +0 0.436268 0.501871 0.341613 0.335148 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0154_s31.txt b/datasets/gongjian/split/labels/train/20260820_112741_0154_s31.txt new file mode 100644 index 0000000..585b15c --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0154_s31.txt @@ -0,0 +1 @@ +0 0.436249 0.501665 0.341429 0.334597 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0155_s20.txt b/datasets/gongjian/split/labels/train/20260820_112741_0155_s20.txt new file mode 100644 index 0000000..a45776b --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0155_s20.txt @@ -0,0 +1 @@ +0 0.423508 0.419198 0.333101 0.316184 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0156_s24.txt b/datasets/gongjian/split/labels/train/20260820_112741_0156_s24.txt new file mode 100644 index 0000000..2229781 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0156_s24.txt @@ -0,0 +1 @@ +0 0.417433 0.397538 0.323655 0.310275 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0157_s25.txt b/datasets/gongjian/split/labels/train/20260820_112741_0157_s25.txt new file mode 100644 index 0000000..9ac862d --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0157_s25.txt @@ -0,0 +1 @@ +0 0.417381 0.397829 0.323472 0.310162 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0158_s24.txt b/datasets/gongjian/split/labels/train/20260820_112741_0158_s24.txt new file mode 100644 index 0000000..71b4fd6 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0158_s24.txt @@ -0,0 +1 @@ +0 0.417329 0.397801 0.323840 0.309949 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0159_s25.txt b/datasets/gongjian/split/labels/train/20260820_112741_0159_s25.txt new file mode 100644 index 0000000..c45f5ef --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0159_s25.txt @@ -0,0 +1 @@ +0 0.417356 0.397815 0.323674 0.310122 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0160_s23.txt b/datasets/gongjian/split/labels/train/20260820_112741_0160_s23.txt new file mode 100644 index 0000000..8b56d8a --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0160_s23.txt @@ -0,0 +1 @@ +0 0.414326 0.435253 0.328734 0.318171 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0161_s20.txt b/datasets/gongjian/split/labels/train/20260820_112741_0161_s20.txt new file mode 100644 index 0000000..84f4510 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0161_s20.txt @@ -0,0 +1 @@ +0 0.405581 0.500572 0.329119 0.333386 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0162_s31.txt b/datasets/gongjian/split/labels/train/20260820_112741_0162_s31.txt new file mode 100644 index 0000000..533ef62 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0162_s31.txt @@ -0,0 +1 @@ +0 0.407097 0.577544 0.329860 0.368154 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0163_s33.txt b/datasets/gongjian/split/labels/train/20260820_112741_0163_s33.txt new file mode 100644 index 0000000..778fe10 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0163_s33.txt @@ -0,0 +1 @@ +0 0.407281 0.577277 0.330102 0.368094 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0164_s32.txt b/datasets/gongjian/split/labels/train/20260820_112741_0164_s32.txt new file mode 100644 index 0000000..9e8cf0c --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0164_s32.txt @@ -0,0 +1 @@ +0 0.405479 0.575981 0.320489 0.396714 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0165_s41.txt b/datasets/gongjian/split/labels/train/20260820_112741_0165_s41.txt new file mode 100644 index 0000000..18f90c9 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0165_s41.txt @@ -0,0 +1 @@ +0 0.435502 0.570787 0.269432 0.480354 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0166_s43.txt b/datasets/gongjian/split/labels/train/20260820_112741_0166_s43.txt new file mode 100644 index 0000000..6d46104 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0166_s43.txt @@ -0,0 +1 @@ +0 0.435460 0.570880 0.268601 0.480067 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0167_s44.txt b/datasets/gongjian/split/labels/train/20260820_112741_0167_s44.txt new file mode 100644 index 0000000..f6539d6 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0167_s44.txt @@ -0,0 +1 @@ +0 0.435208 0.570912 0.268135 0.480704 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0168_s29.txt b/datasets/gongjian/split/labels/train/20260820_112741_0168_s29.txt new file mode 100644 index 0000000..bba1afe --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0168_s29.txt @@ -0,0 +1 @@ +0 0.435357 0.571215 0.268625 0.481042 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0169_s19.txt b/datasets/gongjian/split/labels/train/20260820_112741_0169_s19.txt new file mode 100644 index 0000000..41e02a4 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0169_s19.txt @@ -0,0 +1 @@ +0 0.535981 0.508996 0.219622 0.486096 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0171_s36.txt b/datasets/gongjian/split/labels/train/20260820_112741_0171_s36.txt new file mode 100644 index 0000000..daac51f --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0171_s36.txt @@ -0,0 +1 @@ +0 0.544524 0.502465 0.214300 0.485000 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0172_s28.txt b/datasets/gongjian/split/labels/train/20260820_112741_0172_s28.txt new file mode 100644 index 0000000..872efde --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0172_s28.txt @@ -0,0 +1 @@ +0 0.493376 0.466311 0.191143 0.541587 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0174_s33.txt b/datasets/gongjian/split/labels/train/20260820_112741_0174_s33.txt new file mode 100644 index 0000000..54a6a24 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0174_s33.txt @@ -0,0 +1 @@ +0 0.485053 0.464073 0.191236 0.544761 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0176_s32.txt b/datasets/gongjian/split/labels/train/20260820_112741_0176_s32.txt new file mode 100644 index 0000000..4ea1c8f --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0176_s32.txt @@ -0,0 +1 @@ +0 0.476521 0.462414 0.190815 0.546345 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0178_s32.txt b/datasets/gongjian/split/labels/train/20260820_112741_0178_s32.txt new file mode 100644 index 0000000..cbf4ba3 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0178_s32.txt @@ -0,0 +1 @@ +0 0.455376 0.523625 0.197891 0.574000 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0179_s33.txt b/datasets/gongjian/split/labels/train/20260820_112741_0179_s33.txt new file mode 100644 index 0000000..b7b19c3 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0179_s33.txt @@ -0,0 +1 @@ +0 0.455605 0.523510 0.197007 0.575797 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0180_s34.txt b/datasets/gongjian/split/labels/train/20260820_112741_0180_s34.txt new file mode 100644 index 0000000..0c556ca --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0180_s34.txt @@ -0,0 +1 @@ +0 0.455481 0.523518 0.197073 0.577685 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0182_s25.txt b/datasets/gongjian/split/labels/train/20260820_112741_0182_s25.txt new file mode 100644 index 0000000..6bb4ec5 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0182_s25.txt @@ -0,0 +1 @@ +0 0.398098 0.545868 0.210349 0.538278 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0183_s28.txt b/datasets/gongjian/split/labels/train/20260820_112741_0183_s28.txt new file mode 100644 index 0000000..49a93ef --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0183_s28.txt @@ -0,0 +1 @@ +0 0.398016 0.545496 0.210915 0.538630 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0185_s29.txt b/datasets/gongjian/split/labels/train/20260820_112741_0185_s29.txt new file mode 100644 index 0000000..96dac6c --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0185_s29.txt @@ -0,0 +1 @@ +0 0.397894 0.545703 0.210222 0.537905 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0187_s30.txt b/datasets/gongjian/split/labels/train/20260820_112741_0187_s30.txt new file mode 100644 index 0000000..0dc2839 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0187_s30.txt @@ -0,0 +1 @@ +0 0.397917 0.546820 0.210416 0.540229 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0188_s28.txt b/datasets/gongjian/split/labels/train/20260820_112741_0188_s28.txt new file mode 100644 index 0000000..b348fa3 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0188_s28.txt @@ -0,0 +1 @@ +0 0.398109 0.546007 0.211185 0.539089 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0189_s27.txt b/datasets/gongjian/split/labels/train/20260820_112741_0189_s27.txt new file mode 100644 index 0000000..10a509f --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0189_s27.txt @@ -0,0 +1 @@ +0 0.397862 0.544881 0.210573 0.537177 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0190_s26.txt b/datasets/gongjian/split/labels/train/20260820_112741_0190_s26.txt new file mode 100644 index 0000000..26c0d96 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0190_s26.txt @@ -0,0 +1 @@ +0 0.433411 0.418230 0.256369 0.413798 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0191_s28.txt b/datasets/gongjian/split/labels/train/20260820_112741_0191_s28.txt new file mode 100644 index 0000000..47c46bb --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0191_s28.txt @@ -0,0 +1 @@ +0 0.433386 0.418299 0.256453 0.414193 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0192_s29.txt b/datasets/gongjian/split/labels/train/20260820_112741_0192_s29.txt new file mode 100644 index 0000000..d274203 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0192_s29.txt @@ -0,0 +1 @@ +0 0.433343 0.418210 0.256183 0.414449 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0193_s29.txt b/datasets/gongjian/split/labels/train/20260820_112741_0193_s29.txt new file mode 100644 index 0000000..a1de0a5 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0193_s29.txt @@ -0,0 +1 @@ +0 0.433358 0.418266 0.256283 0.414526 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0196_s28.txt b/datasets/gongjian/split/labels/train/20260820_112741_0196_s28.txt new file mode 100644 index 0000000..80e1ba9 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0196_s28.txt @@ -0,0 +1 @@ +0 0.440251 0.416140 0.255759 0.412878 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0197_s24.txt b/datasets/gongjian/split/labels/train/20260820_112741_0197_s24.txt new file mode 100644 index 0000000..4fa47bb --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0197_s24.txt @@ -0,0 +1 @@ +0 0.432304 0.402342 0.239756 0.384886 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0199_s20.txt b/datasets/gongjian/split/labels/train/20260820_112741_0199_s20.txt new file mode 100644 index 0000000..e4d70f0 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0199_s20.txt @@ -0,0 +1,2 @@ +0 0.034084 0.959319 0.068168 0.078780 +0 0.489899 0.309386 0.269501 0.313977 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0200_s19.txt b/datasets/gongjian/split/labels/train/20260820_112741_0200_s19.txt new file mode 100644 index 0000000..2569f96 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0200_s19.txt @@ -0,0 +1 @@ +0 0.486365 0.303740 0.255140 0.308288 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0201_s14.txt b/datasets/gongjian/split/labels/train/20260820_112741_0201_s14.txt new file mode 100644 index 0000000..55c7086 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0201_s14.txt @@ -0,0 +1 @@ +0 0.436878 0.282861 0.223982 0.371382 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0202_s14.txt b/datasets/gongjian/split/labels/train/20260820_112741_0202_s14.txt new file mode 100644 index 0000000..c4ec782 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0202_s14.txt @@ -0,0 +1 @@ +0 0.400431 0.394955 0.225379 0.237376 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0203_s20.txt b/datasets/gongjian/split/labels/train/20260820_112741_0203_s20.txt new file mode 100644 index 0000000..8337933 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0203_s20.txt @@ -0,0 +1 @@ +0 0.391262 0.383706 0.201464 0.301111 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0204_s23.txt b/datasets/gongjian/split/labels/train/20260820_112741_0204_s23.txt new file mode 100644 index 0000000..a0f10a4 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0204_s23.txt @@ -0,0 +1 @@ +0 0.429396 0.384939 0.278656 0.307701 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0205_s32.txt b/datasets/gongjian/split/labels/train/20260820_112741_0205_s32.txt new file mode 100644 index 0000000..64bd1b4 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0205_s32.txt @@ -0,0 +1 @@ +0 0.447832 0.385156 0.315529 0.306648 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0206_s24.txt b/datasets/gongjian/split/labels/train/20260820_112741_0206_s24.txt new file mode 100644 index 0000000..268f351 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0206_s24.txt @@ -0,0 +1 @@ +0 0.447844 0.385072 0.315691 0.307313 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0207_s22.txt b/datasets/gongjian/split/labels/train/20260820_112741_0207_s22.txt new file mode 100644 index 0000000..d6c26aa --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0207_s22.txt @@ -0,0 +1 @@ +0 0.447908 0.385145 0.315608 0.306856 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0208_s22.txt b/datasets/gongjian/split/labels/train/20260820_112741_0208_s22.txt new file mode 100644 index 0000000..c760194 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0208_s22.txt @@ -0,0 +1 @@ +0 0.447953 0.385178 0.315434 0.306536 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0209_s22.txt b/datasets/gongjian/split/labels/train/20260820_112741_0209_s22.txt new file mode 100644 index 0000000..2d5be32 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0209_s22.txt @@ -0,0 +1 @@ +0 0.441223 0.380316 0.309755 0.305276 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0210_s20.txt b/datasets/gongjian/split/labels/train/20260820_112741_0210_s20.txt new file mode 100644 index 0000000..6218a62 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0210_s20.txt @@ -0,0 +1 @@ +0 0.441134 0.380260 0.309068 0.305163 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0211_s19.txt b/datasets/gongjian/split/labels/train/20260820_112741_0211_s19.txt new file mode 100644 index 0000000..af72f49 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0211_s19.txt @@ -0,0 +1 @@ +0 0.413102 0.367850 0.209292 0.457282 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0212_s19.txt b/datasets/gongjian/split/labels/train/20260820_112741_0212_s19.txt new file mode 100644 index 0000000..b96c93d --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0212_s19.txt @@ -0,0 +1 @@ +0 0.412954 0.368256 0.207820 0.456996 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0213_s19.txt b/datasets/gongjian/split/labels/train/20260820_112741_0213_s19.txt new file mode 100644 index 0000000..286e983 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0213_s19.txt @@ -0,0 +1 @@ +0 0.413071 0.368212 0.207854 0.457315 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0214_s19.txt b/datasets/gongjian/split/labels/train/20260820_112741_0214_s19.txt new file mode 100644 index 0000000..344c331 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0214_s19.txt @@ -0,0 +1 @@ +0 0.412899 0.368203 0.207527 0.456639 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0216_s15.txt b/datasets/gongjian/split/labels/train/20260820_112741_0216_s15.txt new file mode 100644 index 0000000..fed80d5 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0216_s15.txt @@ -0,0 +1 @@ +0 0.474902 0.464435 0.191642 0.537318 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0218_s23.txt b/datasets/gongjian/split/labels/train/20260820_112741_0218_s23.txt new file mode 100644 index 0000000..590fe0b --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0218_s23.txt @@ -0,0 +1 @@ +0 0.478768 0.466362 0.191476 0.542333 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0220_s25.txt b/datasets/gongjian/split/labels/train/20260820_112741_0220_s25.txt new file mode 100644 index 0000000..5fcb98b --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0220_s25.txt @@ -0,0 +1 @@ +0 0.478877 0.466286 0.191528 0.542508 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0221_s26.txt b/datasets/gongjian/split/labels/train/20260820_112741_0221_s26.txt new file mode 100644 index 0000000..889f98d --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0221_s26.txt @@ -0,0 +1 @@ +0 0.478801 0.466451 0.191323 0.542364 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0223_s21.txt b/datasets/gongjian/split/labels/train/20260820_112741_0223_s21.txt new file mode 100644 index 0000000..9b67db0 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0223_s21.txt @@ -0,0 +1 @@ +0 0.478392 0.467073 0.191895 0.543717 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0224_s19.txt b/datasets/gongjian/split/labels/train/20260820_112741_0224_s19.txt new file mode 100644 index 0000000..fd51977 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0224_s19.txt @@ -0,0 +1 @@ +0 0.449616 0.473924 0.193565 0.554755 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0225_s25.txt b/datasets/gongjian/split/labels/train/20260820_112741_0225_s25.txt new file mode 100644 index 0000000..4268560 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0225_s25.txt @@ -0,0 +1 @@ +0 0.405474 0.507268 0.207222 0.524033 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0226_s26.txt b/datasets/gongjian/split/labels/train/20260820_112741_0226_s26.txt new file mode 100644 index 0000000..e1e6b2a --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0226_s26.txt @@ -0,0 +1 @@ +0 0.405463 0.507359 0.206818 0.524143 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0227_s26.txt b/datasets/gongjian/split/labels/train/20260820_112741_0227_s26.txt new file mode 100644 index 0000000..0ab7295 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0227_s26.txt @@ -0,0 +1 @@ +0 0.405476 0.507403 0.206830 0.523763 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0228_s28.txt b/datasets/gongjian/split/labels/train/20260820_112741_0228_s28.txt new file mode 100644 index 0000000..2f07a60 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0228_s28.txt @@ -0,0 +1 @@ +0 0.405593 0.505239 0.207131 0.519753 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0229_s26.txt b/datasets/gongjian/split/labels/train/20260820_112741_0229_s26.txt new file mode 100644 index 0000000..382ac1a --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0229_s26.txt @@ -0,0 +1 @@ +0 0.410008 0.501109 0.211664 0.511812 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0231_s31.txt b/datasets/gongjian/split/labels/train/20260820_112741_0231_s31.txt new file mode 100644 index 0000000..d041df5 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0231_s31.txt @@ -0,0 +1 @@ +0 0.388909 0.438976 0.319134 0.321492 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0232_s31.txt b/datasets/gongjian/split/labels/train/20260820_112741_0232_s31.txt new file mode 100644 index 0000000..a6691d7 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0232_s31.txt @@ -0,0 +1 @@ +0 0.389018 0.438904 0.319018 0.321348 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0233_s29.txt b/datasets/gongjian/split/labels/train/20260820_112741_0233_s29.txt new file mode 100644 index 0000000..fc24232 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0233_s29.txt @@ -0,0 +1 @@ +0 0.389079 0.438935 0.318924 0.321607 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0234_s20.txt b/datasets/gongjian/split/labels/train/20260820_112741_0234_s20.txt new file mode 100644 index 0000000..c5de9f3 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0234_s20.txt @@ -0,0 +1 @@ +0 0.398778 0.448226 0.339195 0.321233 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0235_s29.txt b/datasets/gongjian/split/labels/train/20260820_112741_0235_s29.txt new file mode 100644 index 0000000..6d72d68 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0235_s29.txt @@ -0,0 +1 @@ +0 0.399809 0.473267 0.330228 0.326707 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0237_s30.txt b/datasets/gongjian/split/labels/train/20260820_112741_0237_s30.txt new file mode 100644 index 0000000..f214fe2 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0237_s30.txt @@ -0,0 +1 @@ +0 0.400222 0.473353 0.330437 0.328316 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0238_s27.txt b/datasets/gongjian/split/labels/train/20260820_112741_0238_s27.txt new file mode 100644 index 0000000..85ae2f1 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0238_s27.txt @@ -0,0 +1 @@ +0 0.400872 0.489362 0.324569 0.332081 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0239_s30.txt b/datasets/gongjian/split/labels/train/20260820_112741_0239_s30.txt new file mode 100644 index 0000000..69d3cbf --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0239_s30.txt @@ -0,0 +1 @@ +0 0.400763 0.489695 0.325122 0.334121 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0240_s27.txt b/datasets/gongjian/split/labels/train/20260820_112741_0240_s27.txt new file mode 100644 index 0000000..bf00e64 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0240_s27.txt @@ -0,0 +1 @@ +0 0.400850 0.489439 0.324598 0.333110 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0241_s21.txt b/datasets/gongjian/split/labels/train/20260820_112741_0241_s21.txt new file mode 100644 index 0000000..c7769de --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0241_s21.txt @@ -0,0 +1 @@ +0 0.415910 0.505697 0.256607 0.470948 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0242_s31.txt b/datasets/gongjian/split/labels/train/20260820_112741_0242_s31.txt new file mode 100644 index 0000000..d3b59bf --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0242_s31.txt @@ -0,0 +1 @@ +0 0.424292 0.494226 0.224991 0.498831 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0243_s31.txt b/datasets/gongjian/split/labels/train/20260820_112741_0243_s31.txt new file mode 100644 index 0000000..358ac17 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0243_s31.txt @@ -0,0 +1 @@ +0 0.424208 0.494611 0.224768 0.499076 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0244_s29.txt b/datasets/gongjian/split/labels/train/20260820_112741_0244_s29.txt new file mode 100644 index 0000000..0b3148b --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0244_s29.txt @@ -0,0 +1 @@ +0 0.424240 0.494435 0.224958 0.499133 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0245_s29.txt b/datasets/gongjian/split/labels/train/20260820_112741_0245_s29.txt new file mode 100644 index 0000000..24b1fff --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0245_s29.txt @@ -0,0 +1 @@ +0 0.424395 0.494430 0.225227 0.499037 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0246_s18.txt b/datasets/gongjian/split/labels/train/20260820_112741_0246_s18.txt new file mode 100644 index 0000000..2c6d7fc --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0246_s18.txt @@ -0,0 +1 @@ +0 0.412128 0.502017 0.197843 0.557050 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0247_s25.txt b/datasets/gongjian/split/labels/train/20260820_112741_0247_s25.txt new file mode 100644 index 0000000..0f88048 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0247_s25.txt @@ -0,0 +1 @@ +0 0.384734 0.496105 0.198740 0.567627 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0248_s21.txt b/datasets/gongjian/split/labels/train/20260820_112741_0248_s21.txt new file mode 100644 index 0000000..31306bc --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0248_s21.txt @@ -0,0 +1 @@ +0 0.372236 0.504683 0.199716 0.557305 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0249_s23.txt b/datasets/gongjian/split/labels/train/20260820_112741_0249_s23.txt new file mode 100644 index 0000000..0a3147f --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0249_s23.txt @@ -0,0 +1 @@ +0 0.368794 0.509513 0.200333 0.552438 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0250_s23.txt b/datasets/gongjian/split/labels/train/20260820_112741_0250_s23.txt new file mode 100644 index 0000000..816f2d2 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0250_s23.txt @@ -0,0 +1 @@ +0 0.368542 0.510357 0.199856 0.552127 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0251_s24.txt b/datasets/gongjian/split/labels/train/20260820_112741_0251_s24.txt new file mode 100644 index 0000000..f3484fc --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0251_s24.txt @@ -0,0 +1 @@ +0 0.368531 0.510692 0.199579 0.551553 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0252_s24.txt b/datasets/gongjian/split/labels/train/20260820_112741_0252_s24.txt new file mode 100644 index 0000000..81b858a --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0252_s24.txt @@ -0,0 +1 @@ +0 0.368580 0.506884 0.199978 0.544366 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0253_s23.txt b/datasets/gongjian/split/labels/train/20260820_112741_0253_s23.txt new file mode 100644 index 0000000..47d7249 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0253_s23.txt @@ -0,0 +1 @@ +0 0.405063 0.466277 0.270924 0.414284 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0254_s29.txt b/datasets/gongjian/split/labels/train/20260820_112741_0254_s29.txt new file mode 100644 index 0000000..976d7b2 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0254_s29.txt @@ -0,0 +1 @@ +0 0.403904 0.463236 0.275375 0.404156 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0255_s30.txt b/datasets/gongjian/split/labels/train/20260820_112741_0255_s30.txt new file mode 100644 index 0000000..a8d6be4 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0255_s30.txt @@ -0,0 +1 @@ +0 0.403860 0.463092 0.275267 0.403429 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0256_s26.txt b/datasets/gongjian/split/labels/train/20260820_112741_0256_s26.txt new file mode 100644 index 0000000..f1ff1d9 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0256_s26.txt @@ -0,0 +1 @@ +0 0.385447 0.428349 0.332512 0.318374 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0257_s30.txt b/datasets/gongjian/split/labels/train/20260820_112741_0257_s30.txt new file mode 100644 index 0000000..16948be --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0257_s30.txt @@ -0,0 +1 @@ +0 0.385580 0.428331 0.332996 0.320034 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0258_s27.txt b/datasets/gongjian/split/labels/train/20260820_112741_0258_s27.txt new file mode 100644 index 0000000..a3b082b --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0258_s27.txt @@ -0,0 +1 @@ +0 0.385503 0.428345 0.332512 0.318952 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0260_s26.txt b/datasets/gongjian/split/labels/train/20260820_112741_0260_s26.txt new file mode 100644 index 0000000..02f1134 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0260_s26.txt @@ -0,0 +1 @@ +0 0.377089 0.503369 0.246222 0.494623 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0261_s22.txt b/datasets/gongjian/split/labels/train/20260820_112741_0261_s22.txt new file mode 100644 index 0000000..a607079 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0261_s22.txt @@ -0,0 +1 @@ +0 0.385358 0.540103 0.228338 0.530216 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0262_s24.txt b/datasets/gongjian/split/labels/train/20260820_112741_0262_s24.txt new file mode 100644 index 0000000..c1b4df5 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0262_s24.txt @@ -0,0 +1 @@ +0 0.424539 0.494395 0.197035 0.560303 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0263_s31.txt b/datasets/gongjian/split/labels/train/20260820_112741_0263_s31.txt new file mode 100644 index 0000000..58d44d5 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0263_s31.txt @@ -0,0 +1 @@ +0 0.424802 0.494735 0.197130 0.560190 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0264_s29.txt b/datasets/gongjian/split/labels/train/20260820_112741_0264_s29.txt new file mode 100644 index 0000000..791be22 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0264_s29.txt @@ -0,0 +1 @@ +0 0.424800 0.494537 0.196692 0.559731 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0265_s25.txt b/datasets/gongjian/split/labels/train/20260820_112741_0265_s25.txt new file mode 100644 index 0000000..e5f445f --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0265_s25.txt @@ -0,0 +1 @@ +0 0.424904 0.494644 0.196586 0.559489 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0266_s28.txt b/datasets/gongjian/split/labels/train/20260820_112741_0266_s28.txt new file mode 100644 index 0000000..6c8658a --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0266_s28.txt @@ -0,0 +1 @@ +0 0.424437 0.494470 0.195717 0.559493 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0267_s20.txt b/datasets/gongjian/split/labels/train/20260820_112741_0267_s20.txt new file mode 100644 index 0000000..68e81f8 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0267_s20.txt @@ -0,0 +1 @@ +0 0.420256 0.495548 0.196208 0.562986 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0268_s20.txt b/datasets/gongjian/split/labels/train/20260820_112741_0268_s20.txt new file mode 100644 index 0000000..484af6a --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0268_s20.txt @@ -0,0 +1 @@ +0 0.377799 0.519985 0.200536 0.561815 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0269_s22.txt b/datasets/gongjian/split/labels/train/20260820_112741_0269_s22.txt new file mode 100644 index 0000000..b506be4 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0269_s22.txt @@ -0,0 +1 @@ +0 0.372264 0.525470 0.200936 0.557262 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0270_s19.txt b/datasets/gongjian/split/labels/train/20260820_112741_0270_s19.txt new file mode 100644 index 0000000..0fdd145 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0270_s19.txt @@ -0,0 +1 @@ +0 0.357683 0.552231 0.235861 0.502643 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0271_s22.txt b/datasets/gongjian/split/labels/train/20260820_112741_0271_s22.txt new file mode 100644 index 0000000..03a1284 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0271_s22.txt @@ -0,0 +1 @@ +0 0.348902 0.572323 0.283965 0.441290 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0272_s26.txt b/datasets/gongjian/split/labels/train/20260820_112741_0272_s26.txt new file mode 100644 index 0000000..878483f --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0272_s26.txt @@ -0,0 +1 @@ +0 0.344603 0.589038 0.313977 0.390891 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0273_s28.txt b/datasets/gongjian/split/labels/train/20260820_112741_0273_s28.txt new file mode 100644 index 0000000..c295b01 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0273_s28.txt @@ -0,0 +1 @@ +0 0.344497 0.587981 0.314018 0.388283 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0274_s26.txt b/datasets/gongjian/split/labels/train/20260820_112741_0274_s26.txt new file mode 100644 index 0000000..2c04fa1 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0274_s26.txt @@ -0,0 +1 @@ +0 0.348349 0.593995 0.326506 0.365550 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0275_s33.txt b/datasets/gongjian/split/labels/train/20260820_112741_0275_s33.txt new file mode 100644 index 0000000..30c9ad1 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0275_s33.txt @@ -0,0 +1 @@ +0 0.374231 0.625258 0.342446 0.365920 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0276_s32.txt b/datasets/gongjian/split/labels/train/20260820_112741_0276_s32.txt new file mode 100644 index 0000000..f111a05 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0276_s32.txt @@ -0,0 +1 @@ +0 0.374279 0.625194 0.342631 0.365079 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0277_s33.txt b/datasets/gongjian/split/labels/train/20260820_112741_0277_s33.txt new file mode 100644 index 0000000..6339aa1 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0277_s33.txt @@ -0,0 +1 @@ +0 0.393186 0.644188 0.348481 0.369357 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0278_s30.txt b/datasets/gongjian/split/labels/train/20260820_112741_0278_s30.txt new file mode 100644 index 0000000..f87c710 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0278_s30.txt @@ -0,0 +1 @@ +0 0.395329 0.646554 0.348447 0.370354 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0281_s33.txt b/datasets/gongjian/split/labels/train/20260820_112741_0281_s33.txt new file mode 100644 index 0000000..88978eb --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0281_s33.txt @@ -0,0 +1 @@ +0 0.453208 0.690711 0.373713 0.380400 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0282_s32.txt b/datasets/gongjian/split/labels/train/20260820_112741_0282_s32.txt new file mode 100644 index 0000000..6a03006 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0282_s32.txt @@ -0,0 +1 @@ +0 0.453156 0.690666 0.373561 0.379851 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0283_s33.txt b/datasets/gongjian/split/labels/train/20260820_112741_0283_s33.txt new file mode 100644 index 0000000..55256ba --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0283_s33.txt @@ -0,0 +1 @@ +0 0.453358 0.690741 0.373334 0.379943 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0284_s32.txt b/datasets/gongjian/split/labels/train/20260820_112741_0284_s32.txt new file mode 100644 index 0000000..522d484 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0284_s32.txt @@ -0,0 +1 @@ +0 0.453404 0.691185 0.373771 0.381390 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0285_s33.txt b/datasets/gongjian/split/labels/train/20260820_112741_0285_s33.txt new file mode 100644 index 0000000..42fbe47 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0285_s33.txt @@ -0,0 +1 @@ +0 0.453396 0.695644 0.374628 0.381970 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0286_s31.txt b/datasets/gongjian/split/labels/train/20260820_112741_0286_s31.txt new file mode 100644 index 0000000..af4600a --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0286_s31.txt @@ -0,0 +1 @@ +0 0.453240 0.696052 0.374021 0.382239 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0287_s31.txt b/datasets/gongjian/split/labels/train/20260820_112741_0287_s31.txt new file mode 100644 index 0000000..e0bba68 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0287_s31.txt @@ -0,0 +1 @@ +0 0.454172 0.707147 0.375014 0.384721 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0288_s29.txt b/datasets/gongjian/split/labels/train/20260820_112741_0288_s29.txt new file mode 100644 index 0000000..991985f --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0288_s29.txt @@ -0,0 +1 @@ +0 0.454971 0.713050 0.375850 0.389827 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0290_s29.txt b/datasets/gongjian/split/labels/train/20260820_112741_0290_s29.txt new file mode 100644 index 0000000..67724e7 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0290_s29.txt @@ -0,0 +1 @@ +0 0.454115 0.687700 0.372066 0.379407 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0291_s22.txt b/datasets/gongjian/split/labels/train/20260820_112741_0291_s22.txt new file mode 100644 index 0000000..808144e --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0291_s22.txt @@ -0,0 +1 @@ +0 0.456923 0.586269 0.356610 0.354634 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0293_s34.txt b/datasets/gongjian/split/labels/train/20260820_112741_0293_s34.txt new file mode 100644 index 0000000..83a3e56 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0293_s34.txt @@ -0,0 +1 @@ +0 0.460033 0.567550 0.350926 0.348718 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0297_s29.txt b/datasets/gongjian/split/labels/train/20260820_112741_0297_s29.txt new file mode 100644 index 0000000..f144026 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0297_s29.txt @@ -0,0 +1 @@ +0 0.453298 0.625778 0.355339 0.367087 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0298_s28.txt b/datasets/gongjian/split/labels/train/20260820_112741_0298_s28.txt new file mode 100644 index 0000000..3400099 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0298_s28.txt @@ -0,0 +1 @@ +0 0.453192 0.625644 0.354796 0.366354 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0299_s29.txt b/datasets/gongjian/split/labels/train/20260820_112741_0299_s29.txt new file mode 100644 index 0000000..e541749 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0299_s29.txt @@ -0,0 +1 @@ +0 0.453282 0.624305 0.354621 0.363577 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0300_s27.txt b/datasets/gongjian/split/labels/train/20260820_112741_0300_s27.txt new file mode 100644 index 0000000..c5d86d6 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0300_s27.txt @@ -0,0 +1 @@ +0 0.453413 0.623324 0.355426 0.361826 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/train/20260820_112741_0301_s26.txt b/datasets/gongjian/split/labels/train/20260820_112741_0301_s26.txt new file mode 100644 index 0000000..8c5b5a6 --- /dev/null +++ b/datasets/gongjian/split/labels/train/20260820_112741_0301_s26.txt @@ -0,0 +1 @@ +0 0.452642 0.623698 0.354517 0.363418 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/val.cache b/datasets/gongjian/split/labels/val.cache new file mode 100644 index 0000000..82656fd Binary files /dev/null and b/datasets/gongjian/split/labels/val.cache differ diff --git a/datasets/gongjian/split/labels/val/20260820_112741_0004_s29.txt b/datasets/gongjian/split/labels/val/20260820_112741_0004_s29.txt new file mode 100644 index 0000000..c90fdca --- /dev/null +++ b/datasets/gongjian/split/labels/val/20260820_112741_0004_s29.txt @@ -0,0 +1 @@ +0 0.569453 0.766409 0.333291 0.461769 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/val/20260820_112741_0012_s34.txt b/datasets/gongjian/split/labels/val/20260820_112741_0012_s34.txt new file mode 100644 index 0000000..83a20fe --- /dev/null +++ b/datasets/gongjian/split/labels/val/20260820_112741_0012_s34.txt @@ -0,0 +1 @@ +0 0.569657 0.767490 0.332608 0.460380 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/val/20260820_112741_0013_s39.txt b/datasets/gongjian/split/labels/val/20260820_112741_0013_s39.txt new file mode 100644 index 0000000..f208a35 --- /dev/null +++ b/datasets/gongjian/split/labels/val/20260820_112741_0013_s39.txt @@ -0,0 +1 @@ +0 0.569794 0.767061 0.333149 0.460634 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/val/20260820_112741_0014_s41.txt b/datasets/gongjian/split/labels/val/20260820_112741_0014_s41.txt new file mode 100644 index 0000000..79bcae6 --- /dev/null +++ b/datasets/gongjian/split/labels/val/20260820_112741_0014_s41.txt @@ -0,0 +1 @@ +0 0.573579 0.767437 0.324016 0.460557 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/val/20260820_112741_0016_s48.txt b/datasets/gongjian/split/labels/val/20260820_112741_0016_s48.txt new file mode 100644 index 0000000..36e1c8e --- /dev/null +++ b/datasets/gongjian/split/labels/val/20260820_112741_0016_s48.txt @@ -0,0 +1 @@ +0 0.562591 0.772608 0.302800 0.450539 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/val/20260820_112741_0017_s50.txt b/datasets/gongjian/split/labels/val/20260820_112741_0017_s50.txt new file mode 100644 index 0000000..3ebb010 --- /dev/null +++ b/datasets/gongjian/split/labels/val/20260820_112741_0017_s50.txt @@ -0,0 +1 @@ +0 0.501137 0.710211 0.269882 0.498173 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/val/20260820_112741_0018_s27.txt b/datasets/gongjian/split/labels/val/20260820_112741_0018_s27.txt new file mode 100644 index 0000000..cbfc942 --- /dev/null +++ b/datasets/gongjian/split/labels/val/20260820_112741_0018_s27.txt @@ -0,0 +1 @@ +0 0.423231 0.643675 0.248314 0.522588 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/val/20260820_112741_0021_s26.txt b/datasets/gongjian/split/labels/val/20260820_112741_0021_s26.txt new file mode 100644 index 0000000..cc24f7a --- /dev/null +++ b/datasets/gongjian/split/labels/val/20260820_112741_0021_s26.txt @@ -0,0 +1 @@ +0 0.407613 0.468452 0.196790 0.558792 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/val/20260820_112741_0023_s34.txt b/datasets/gongjian/split/labels/val/20260820_112741_0023_s34.txt new file mode 100644 index 0000000..f9e4a49 --- /dev/null +++ b/datasets/gongjian/split/labels/val/20260820_112741_0023_s34.txt @@ -0,0 +1 @@ +0 0.447737 0.473604 0.194043 0.535430 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/val/20260820_112741_0026_s34.txt b/datasets/gongjian/split/labels/val/20260820_112741_0026_s34.txt new file mode 100644 index 0000000..da5cbc9 --- /dev/null +++ b/datasets/gongjian/split/labels/val/20260820_112741_0026_s34.txt @@ -0,0 +1 @@ +0 0.451675 0.469368 0.280500 0.398006 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/val/20260820_112741_0041_s23.txt b/datasets/gongjian/split/labels/val/20260820_112741_0041_s23.txt new file mode 100644 index 0000000..a19f9a7 --- /dev/null +++ b/datasets/gongjian/split/labels/val/20260820_112741_0041_s23.txt @@ -0,0 +1 @@ +0 0.452560 0.429080 0.238839 0.408533 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/val/20260820_112741_0045_s29.txt b/datasets/gongjian/split/labels/val/20260820_112741_0045_s29.txt new file mode 100644 index 0000000..a4bc2b2 --- /dev/null +++ b/datasets/gongjian/split/labels/val/20260820_112741_0045_s29.txt @@ -0,0 +1 @@ +0 0.472020 0.406828 0.186850 0.517116 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/val/20260820_112741_0048_s27.txt b/datasets/gongjian/split/labels/val/20260820_112741_0048_s27.txt new file mode 100644 index 0000000..2d822c5 --- /dev/null +++ b/datasets/gongjian/split/labels/val/20260820_112741_0048_s27.txt @@ -0,0 +1 @@ +0 0.490534 0.394389 0.194005 0.469293 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/val/20260820_112741_0050_s31.txt b/datasets/gongjian/split/labels/val/20260820_112741_0050_s31.txt new file mode 100644 index 0000000..b18048e --- /dev/null +++ b/datasets/gongjian/split/labels/val/20260820_112741_0050_s31.txt @@ -0,0 +1 @@ +0 0.523169 0.360686 0.271729 0.327743 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/val/20260820_112741_0053_s27.txt b/datasets/gongjian/split/labels/val/20260820_112741_0053_s27.txt new file mode 100644 index 0000000..1ff3475 --- /dev/null +++ b/datasets/gongjian/split/labels/val/20260820_112741_0053_s27.txt @@ -0,0 +1 @@ +0 0.591478 0.402387 0.184766 0.478826 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/val/20260820_112741_0058_s34.txt b/datasets/gongjian/split/labels/val/20260820_112741_0058_s34.txt new file mode 100644 index 0000000..259c036 --- /dev/null +++ b/datasets/gongjian/split/labels/val/20260820_112741_0058_s34.txt @@ -0,0 +1 @@ +0 0.518647 0.531142 0.235619 0.501603 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/val/20260820_112741_0059_s36.txt b/datasets/gongjian/split/labels/val/20260820_112741_0059_s36.txt new file mode 100644 index 0000000..e56e81f --- /dev/null +++ b/datasets/gongjian/split/labels/val/20260820_112741_0059_s36.txt @@ -0,0 +1 @@ +0 0.518875 0.531228 0.235318 0.501782 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/val/20260820_112741_0060_s34.txt b/datasets/gongjian/split/labels/val/20260820_112741_0060_s34.txt new file mode 100644 index 0000000..668b532 --- /dev/null +++ b/datasets/gongjian/split/labels/val/20260820_112741_0060_s34.txt @@ -0,0 +1 @@ +0 0.459423 0.615733 0.269817 0.492783 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/val/20260820_112741_0064_s38.txt b/datasets/gongjian/split/labels/val/20260820_112741_0064_s38.txt new file mode 100644 index 0000000..aebce06 --- /dev/null +++ b/datasets/gongjian/split/labels/val/20260820_112741_0064_s38.txt @@ -0,0 +1 @@ +0 0.459662 0.616286 0.270406 0.495026 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/val/20260820_112741_0072_s39.txt b/datasets/gongjian/split/labels/val/20260820_112741_0072_s39.txt new file mode 100644 index 0000000..93e952b --- /dev/null +++ b/datasets/gongjian/split/labels/val/20260820_112741_0072_s39.txt @@ -0,0 +1 @@ +0 0.394462 0.565664 0.356244 0.350553 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/val/20260820_112741_0075_s46.txt b/datasets/gongjian/split/labels/val/20260820_112741_0075_s46.txt new file mode 100644 index 0000000..8c93fb5 --- /dev/null +++ b/datasets/gongjian/split/labels/val/20260820_112741_0075_s46.txt @@ -0,0 +1 @@ +0 0.463000 0.535217 0.343036 0.340990 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/val/20260820_112741_0080_s42.txt b/datasets/gongjian/split/labels/val/20260820_112741_0080_s42.txt new file mode 100644 index 0000000..9ae06b1 --- /dev/null +++ b/datasets/gongjian/split/labels/val/20260820_112741_0080_s42.txt @@ -0,0 +1 @@ +0 0.495119 0.488088 0.328219 0.329408 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/val/20260820_112741_0082_s40.txt b/datasets/gongjian/split/labels/val/20260820_112741_0082_s40.txt new file mode 100644 index 0000000..027def0 --- /dev/null +++ b/datasets/gongjian/split/labels/val/20260820_112741_0082_s40.txt @@ -0,0 +1 @@ +0 0.506034 0.502891 0.338431 0.333056 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/val/20260820_112741_0098_s29.txt b/datasets/gongjian/split/labels/val/20260820_112741_0098_s29.txt new file mode 100644 index 0000000..e7fc090 --- /dev/null +++ b/datasets/gongjian/split/labels/val/20260820_112741_0098_s29.txt @@ -0,0 +1 @@ +0 0.438260 0.519376 0.339001 0.338251 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/val/20260820_112741_0099_s25.txt b/datasets/gongjian/split/labels/val/20260820_112741_0099_s25.txt new file mode 100644 index 0000000..2b92f90 --- /dev/null +++ b/datasets/gongjian/split/labels/val/20260820_112741_0099_s25.txt @@ -0,0 +1 @@ +0 0.434119 0.466176 0.341899 0.326764 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/val/20260820_112741_0102_s25.txt b/datasets/gongjian/split/labels/val/20260820_112741_0102_s25.txt new file mode 100644 index 0000000..108391a --- /dev/null +++ b/datasets/gongjian/split/labels/val/20260820_112741_0102_s25.txt @@ -0,0 +1 @@ +0 0.408030 0.374868 0.304597 0.309670 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/val/20260820_112741_0111_s35.txt b/datasets/gongjian/split/labels/val/20260820_112741_0111_s35.txt new file mode 100644 index 0000000..f851e20 --- /dev/null +++ b/datasets/gongjian/split/labels/val/20260820_112741_0111_s35.txt @@ -0,0 +1 @@ +0 0.466083 0.482123 0.194079 0.540039 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/val/20260820_112741_0112_s31.txt b/datasets/gongjian/split/labels/val/20260820_112741_0112_s31.txt new file mode 100644 index 0000000..b0ea559 --- /dev/null +++ b/datasets/gongjian/split/labels/val/20260820_112741_0112_s31.txt @@ -0,0 +1 @@ +0 0.455413 0.442421 0.194902 0.446845 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/val/20260820_112741_0113_s31.txt b/datasets/gongjian/split/labels/val/20260820_112741_0113_s31.txt new file mode 100644 index 0000000..69b9199 --- /dev/null +++ b/datasets/gongjian/split/labels/val/20260820_112741_0113_s31.txt @@ -0,0 +1 @@ +0 0.455333 0.441975 0.194682 0.446169 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/val/20260820_112741_0115_s35.txt b/datasets/gongjian/split/labels/val/20260820_112741_0115_s35.txt new file mode 100644 index 0000000..f4e493d --- /dev/null +++ b/datasets/gongjian/split/labels/val/20260820_112741_0115_s35.txt @@ -0,0 +1 @@ +0 0.487969 0.466269 0.265636 0.395683 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/val/20260820_112741_0120_s39.txt b/datasets/gongjian/split/labels/val/20260820_112741_0120_s39.txt new file mode 100644 index 0000000..ba60734 --- /dev/null +++ b/datasets/gongjian/split/labels/val/20260820_112741_0120_s39.txt @@ -0,0 +1 @@ +0 0.452166 0.530527 0.350227 0.341185 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/val/20260820_112741_0126_s40.txt b/datasets/gongjian/split/labels/val/20260820_112741_0126_s40.txt new file mode 100644 index 0000000..e31fb99 --- /dev/null +++ b/datasets/gongjian/split/labels/val/20260820_112741_0126_s40.txt @@ -0,0 +1 @@ +0 0.436166 0.507057 0.326991 0.334773 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/val/20260820_112741_0136_s23.txt b/datasets/gongjian/split/labels/val/20260820_112741_0136_s23.txt new file mode 100644 index 0000000..873abde --- /dev/null +++ b/datasets/gongjian/split/labels/val/20260820_112741_0136_s23.txt @@ -0,0 +1 @@ +0 0.373368 0.469112 0.196461 0.555135 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/val/20260820_112741_0141_s22.txt b/datasets/gongjian/split/labels/val/20260820_112741_0141_s22.txt new file mode 100644 index 0000000..0790702 --- /dev/null +++ b/datasets/gongjian/split/labels/val/20260820_112741_0141_s22.txt @@ -0,0 +1 @@ +0 0.369210 0.468490 0.195324 0.553965 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/val/20260820_112741_0143_s23.txt b/datasets/gongjian/split/labels/val/20260820_112741_0143_s23.txt new file mode 100644 index 0000000..82b63fd --- /dev/null +++ b/datasets/gongjian/split/labels/val/20260820_112741_0143_s23.txt @@ -0,0 +1 @@ +0 0.499141 0.346871 0.193113 0.460778 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/val/20260820_112741_0151_s31.txt b/datasets/gongjian/split/labels/val/20260820_112741_0151_s31.txt new file mode 100644 index 0000000..edcc0a4 --- /dev/null +++ b/datasets/gongjian/split/labels/val/20260820_112741_0151_s31.txt @@ -0,0 +1 @@ +0 0.436175 0.501781 0.340790 0.333856 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/val/20260820_112741_0170_s34.txt b/datasets/gongjian/split/labels/val/20260820_112741_0170_s34.txt new file mode 100644 index 0000000..c395337 --- /dev/null +++ b/datasets/gongjian/split/labels/val/20260820_112741_0170_s34.txt @@ -0,0 +1 @@ +0 0.544434 0.502567 0.213804 0.484705 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/val/20260820_112741_0173_s33.txt b/datasets/gongjian/split/labels/val/20260820_112741_0173_s33.txt new file mode 100644 index 0000000..bbfc36b --- /dev/null +++ b/datasets/gongjian/split/labels/val/20260820_112741_0173_s33.txt @@ -0,0 +1 @@ +0 0.485048 0.464049 0.191642 0.545049 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/val/20260820_112741_0175_s33.txt b/datasets/gongjian/split/labels/val/20260820_112741_0175_s33.txt new file mode 100644 index 0000000..54fd685 --- /dev/null +++ b/datasets/gongjian/split/labels/val/20260820_112741_0175_s33.txt @@ -0,0 +1 @@ +0 0.476488 0.462824 0.191309 0.547289 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/val/20260820_112741_0177_s28.txt b/datasets/gongjian/split/labels/val/20260820_112741_0177_s28.txt new file mode 100644 index 0000000..781a14e --- /dev/null +++ b/datasets/gongjian/split/labels/val/20260820_112741_0177_s28.txt @@ -0,0 +1 @@ +0 0.462584 0.501326 0.195100 0.565715 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/val/20260820_112741_0181_s25.txt b/datasets/gongjian/split/labels/val/20260820_112741_0181_s25.txt new file mode 100644 index 0000000..1914251 --- /dev/null +++ b/datasets/gongjian/split/labels/val/20260820_112741_0181_s25.txt @@ -0,0 +1 @@ +0 0.434482 0.528439 0.197928 0.570508 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/val/20260820_112741_0184_s28.txt b/datasets/gongjian/split/labels/val/20260820_112741_0184_s28.txt new file mode 100644 index 0000000..3605b72 --- /dev/null +++ b/datasets/gongjian/split/labels/val/20260820_112741_0184_s28.txt @@ -0,0 +1 @@ +0 0.397889 0.546048 0.210086 0.538707 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/val/20260820_112741_0186_s29.txt b/datasets/gongjian/split/labels/val/20260820_112741_0186_s29.txt new file mode 100644 index 0000000..9327c8c --- /dev/null +++ b/datasets/gongjian/split/labels/val/20260820_112741_0186_s29.txt @@ -0,0 +1 @@ +0 0.397905 0.545265 0.210294 0.537385 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/val/20260820_112741_0194_s30.txt b/datasets/gongjian/split/labels/val/20260820_112741_0194_s30.txt new file mode 100644 index 0000000..0ca0afb --- /dev/null +++ b/datasets/gongjian/split/labels/val/20260820_112741_0194_s30.txt @@ -0,0 +1 @@ +0 0.433451 0.417953 0.256434 0.415799 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/val/20260820_112741_0195_s30.txt b/datasets/gongjian/split/labels/val/20260820_112741_0195_s30.txt new file mode 100644 index 0000000..c8ef591 --- /dev/null +++ b/datasets/gongjian/split/labels/val/20260820_112741_0195_s30.txt @@ -0,0 +1 @@ +0 0.433505 0.417795 0.256465 0.415436 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/val/20260820_112741_0198_s15.txt b/datasets/gongjian/split/labels/val/20260820_112741_0198_s15.txt new file mode 100644 index 0000000..a2bac70 --- /dev/null +++ b/datasets/gongjian/split/labels/val/20260820_112741_0198_s15.txt @@ -0,0 +1 @@ +0 0.456569 0.380856 0.269204 0.380334 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/val/20260820_112741_0215_s20.txt b/datasets/gongjian/split/labels/val/20260820_112741_0215_s20.txt new file mode 100644 index 0000000..73e0ffa --- /dev/null +++ b/datasets/gongjian/split/labels/val/20260820_112741_0215_s20.txt @@ -0,0 +1 @@ +0 0.412905 0.368099 0.207487 0.456458 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/val/20260820_112741_0217_s23.txt b/datasets/gongjian/split/labels/val/20260820_112741_0217_s23.txt new file mode 100644 index 0000000..66d39d1 --- /dev/null +++ b/datasets/gongjian/split/labels/val/20260820_112741_0217_s23.txt @@ -0,0 +1 @@ +0 0.478697 0.466331 0.191705 0.541767 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/val/20260820_112741_0219_s24.txt b/datasets/gongjian/split/labels/val/20260820_112741_0219_s24.txt new file mode 100644 index 0000000..2d8bf54 --- /dev/null +++ b/datasets/gongjian/split/labels/val/20260820_112741_0219_s24.txt @@ -0,0 +1 @@ +0 0.478752 0.466660 0.191396 0.543346 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/val/20260820_112741_0222_s25.txt b/datasets/gongjian/split/labels/val/20260820_112741_0222_s25.txt new file mode 100644 index 0000000..a52d515 --- /dev/null +++ b/datasets/gongjian/split/labels/val/20260820_112741_0222_s25.txt @@ -0,0 +1 @@ +0 0.478884 0.466865 0.191708 0.542935 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/val/20260820_112741_0230_s29.txt b/datasets/gongjian/split/labels/val/20260820_112741_0230_s29.txt new file mode 100644 index 0000000..d344337 --- /dev/null +++ b/datasets/gongjian/split/labels/val/20260820_112741_0230_s29.txt @@ -0,0 +1 @@ +0 0.389001 0.438920 0.318705 0.320679 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/val/20260820_112741_0236_s30.txt b/datasets/gongjian/split/labels/val/20260820_112741_0236_s30.txt new file mode 100644 index 0000000..4a91c1c --- /dev/null +++ b/datasets/gongjian/split/labels/val/20260820_112741_0236_s30.txt @@ -0,0 +1 @@ +0 0.400022 0.473080 0.330462 0.328596 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/val/20260820_112741_0259_s25.txt b/datasets/gongjian/split/labels/val/20260820_112741_0259_s25.txt new file mode 100644 index 0000000..3c67d11 --- /dev/null +++ b/datasets/gongjian/split/labels/val/20260820_112741_0259_s25.txt @@ -0,0 +1 @@ +0 0.377066 0.503891 0.246819 0.495226 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/val/20260820_112741_0279_s32.txt b/datasets/gongjian/split/labels/val/20260820_112741_0279_s32.txt new file mode 100644 index 0000000..7600209 --- /dev/null +++ b/datasets/gongjian/split/labels/val/20260820_112741_0279_s32.txt @@ -0,0 +1 @@ +0 0.404066 0.654761 0.352106 0.371281 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/val/20260820_112741_0280_s23.txt b/datasets/gongjian/split/labels/val/20260820_112741_0280_s23.txt new file mode 100644 index 0000000..f04e4b4 --- /dev/null +++ b/datasets/gongjian/split/labels/val/20260820_112741_0280_s23.txt @@ -0,0 +1 @@ +0 0.405854 0.661890 0.358169 0.374140 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/val/20260820_112741_0289_s31.txt b/datasets/gongjian/split/labels/val/20260820_112741_0289_s31.txt new file mode 100644 index 0000000..a6c03a8 --- /dev/null +++ b/datasets/gongjian/split/labels/val/20260820_112741_0289_s31.txt @@ -0,0 +1 @@ +0 0.454780 0.690127 0.372617 0.380520 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/val/20260820_112741_0292_s32.txt b/datasets/gongjian/split/labels/val/20260820_112741_0292_s32.txt new file mode 100644 index 0000000..bfae6d6 --- /dev/null +++ b/datasets/gongjian/split/labels/val/20260820_112741_0292_s32.txt @@ -0,0 +1 @@ +0 0.460103 0.567453 0.350632 0.348976 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/val/20260820_112741_0294_s33.txt b/datasets/gongjian/split/labels/val/20260820_112741_0294_s33.txt new file mode 100644 index 0000000..2888a88 --- /dev/null +++ b/datasets/gongjian/split/labels/val/20260820_112741_0294_s33.txt @@ -0,0 +1 @@ +0 0.460172 0.567832 0.350991 0.349285 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/val/20260820_112741_0295_s32.txt b/datasets/gongjian/split/labels/val/20260820_112741_0295_s32.txt new file mode 100644 index 0000000..5ac4ea3 --- /dev/null +++ b/datasets/gongjian/split/labels/val/20260820_112741_0295_s32.txt @@ -0,0 +1 @@ +0 0.460107 0.567689 0.350791 0.348415 \ No newline at end of file diff --git a/datasets/gongjian/split/labels/val/20260820_112741_0296_s26.txt b/datasets/gongjian/split/labels/val/20260820_112741_0296_s26.txt new file mode 100644 index 0000000..81aef28 --- /dev/null +++ b/datasets/gongjian/split/labels/val/20260820_112741_0296_s26.txt @@ -0,0 +1 @@ +0 0.453230 0.625882 0.355040 0.364519 \ No newline at end of file diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0001_s26.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0001_s26.jpg new file mode 100644 index 0000000..8a6f70c Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0001_s26.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0002_s29.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0002_s29.jpg new file mode 100644 index 0000000..478ed6f Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0002_s29.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0003_s30.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0003_s30.jpg new file mode 100644 index 0000000..9d6fbfe Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0003_s30.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0004_s29.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0004_s29.jpg new file mode 100644 index 0000000..65e60ec Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0004_s29.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0005_s30.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0005_s30.jpg new file mode 100644 index 0000000..15cda4b Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0005_s30.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0006_s30.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0006_s30.jpg new file mode 100644 index 0000000..6676401 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0006_s30.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0007_s30.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0007_s30.jpg new file mode 100644 index 0000000..5dea223 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0007_s30.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0008_s30.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0008_s30.jpg new file mode 100644 index 0000000..8528aa3 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0008_s30.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0009_s31.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0009_s31.jpg new file mode 100644 index 0000000..060edf3 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0009_s31.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0010_s31.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0010_s31.jpg new file mode 100644 index 0000000..846bcbd Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0010_s31.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0011_s32.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0011_s32.jpg new file mode 100644 index 0000000..66fcc0f Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0011_s32.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0012_s34.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0012_s34.jpg new file mode 100644 index 0000000..f0ecfd1 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0012_s34.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0013_s39.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0013_s39.jpg new file mode 100644 index 0000000..547622f Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0013_s39.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0014_s41.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0014_s41.jpg new file mode 100644 index 0000000..bd2237a Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0014_s41.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0015_s48.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0015_s48.jpg new file mode 100644 index 0000000..8460131 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0015_s48.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0016_s48.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0016_s48.jpg new file mode 100644 index 0000000..73788bc Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0016_s48.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0017_s50.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0017_s50.jpg new file mode 100644 index 0000000..06abc54 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0017_s50.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0018_s27.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0018_s27.jpg new file mode 100644 index 0000000..ccc4df4 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0018_s27.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0019_s24.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0019_s24.jpg new file mode 100644 index 0000000..d6521d8 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0019_s24.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0020_s27.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0020_s27.jpg new file mode 100644 index 0000000..afc0499 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0020_s27.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0021_s26.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0021_s26.jpg new file mode 100644 index 0000000..71e3423 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0021_s26.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0022_s26.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0022_s26.jpg new file mode 100644 index 0000000..cad7595 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0022_s26.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0023_s34.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0023_s34.jpg new file mode 100644 index 0000000..216515e Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0023_s34.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0024_s33.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0024_s33.jpg new file mode 100644 index 0000000..4009c68 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0024_s33.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0025_s34.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0025_s34.jpg new file mode 100644 index 0000000..1c17c1b Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0025_s34.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0026_s34.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0026_s34.jpg new file mode 100644 index 0000000..7f41fd6 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0026_s34.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0027_s35.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0027_s35.jpg new file mode 100644 index 0000000..8127bfe Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0027_s35.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0028_s37.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0028_s37.jpg new file mode 100644 index 0000000..82018d7 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0028_s37.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0029_s24.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0029_s24.jpg new file mode 100644 index 0000000..9a5883d Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0029_s24.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0030_s24.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0030_s24.jpg new file mode 100644 index 0000000..6625850 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0030_s24.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0031_s33.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0031_s33.jpg new file mode 100644 index 0000000..61cf306 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0031_s33.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0032_s34.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0032_s34.jpg new file mode 100644 index 0000000..ad49ffd Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0032_s34.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0033_s32.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0033_s32.jpg new file mode 100644 index 0000000..482cc2f Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0033_s32.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0034_s29.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0034_s29.jpg new file mode 100644 index 0000000..0524719 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0034_s29.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0035_s30.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0035_s30.jpg new file mode 100644 index 0000000..d1351cb Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0035_s30.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0036_s26.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0036_s26.jpg new file mode 100644 index 0000000..2672bb6 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0036_s26.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0037_s31.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0037_s31.jpg new file mode 100644 index 0000000..153efda Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0037_s31.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0038_s32.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0038_s32.jpg new file mode 100644 index 0000000..bb4c19b Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0038_s32.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0039_s32.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0039_s32.jpg new file mode 100644 index 0000000..4e30086 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0039_s32.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0040_s26.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0040_s26.jpg new file mode 100644 index 0000000..86e1955 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0040_s26.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0041_s23.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0041_s23.jpg new file mode 100644 index 0000000..174b5de Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0041_s23.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0042_s31.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0042_s31.jpg new file mode 100644 index 0000000..d208e03 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0042_s31.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0043_s30.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0043_s30.jpg new file mode 100644 index 0000000..b73b760 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0043_s30.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0044_s32.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0044_s32.jpg new file mode 100644 index 0000000..191ea5d Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0044_s32.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0045_s29.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0045_s29.jpg new file mode 100644 index 0000000..50fc35d Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0045_s29.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0046_s30.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0046_s30.jpg new file mode 100644 index 0000000..80a89fd Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0046_s30.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0047_s34.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0047_s34.jpg new file mode 100644 index 0000000..61a5206 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0047_s34.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0048_s27.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0048_s27.jpg new file mode 100644 index 0000000..2fc3d2b Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0048_s27.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0049_s30.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0049_s30.jpg new file mode 100644 index 0000000..241f66b Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0049_s30.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0050_s31.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0050_s31.jpg new file mode 100644 index 0000000..fb526c0 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0050_s31.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0051_s20.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0051_s20.jpg new file mode 100644 index 0000000..eef1103 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0051_s20.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0052_s28.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0052_s28.jpg new file mode 100644 index 0000000..8906146 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0052_s28.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0053_s27.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0053_s27.jpg new file mode 100644 index 0000000..7a4552c Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0053_s27.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0054_s22.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0054_s22.jpg new file mode 100644 index 0000000..5e5609b Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0054_s22.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0055_s31.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0055_s31.jpg new file mode 100644 index 0000000..4118190 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0055_s31.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0056_s30.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0056_s30.jpg new file mode 100644 index 0000000..a884e49 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0056_s30.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0057_s26.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0057_s26.jpg new file mode 100644 index 0000000..5897ef3 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0057_s26.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0058_s34.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0058_s34.jpg new file mode 100644 index 0000000..b7a8c0d Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0058_s34.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0059_s36.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0059_s36.jpg new file mode 100644 index 0000000..bae2811 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0059_s36.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0060_s34.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0060_s34.jpg new file mode 100644 index 0000000..423fe20 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0060_s34.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0061_s38.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0061_s38.jpg new file mode 100644 index 0000000..04d076b Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0061_s38.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0062_s39.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0062_s39.jpg new file mode 100644 index 0000000..4a48afb Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0062_s39.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0063_s40.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0063_s40.jpg new file mode 100644 index 0000000..788b447 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0063_s40.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0064_s38.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0064_s38.jpg new file mode 100644 index 0000000..c6bb864 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0064_s38.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0065_s35.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0065_s35.jpg new file mode 100644 index 0000000..c558c31 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0065_s35.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0066_s34.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0066_s34.jpg new file mode 100644 index 0000000..e24cf3c Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0066_s34.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0067_s34.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0067_s34.jpg new file mode 100644 index 0000000..c0a4589 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0067_s34.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0068_s34.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0068_s34.jpg new file mode 100644 index 0000000..57e2d21 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0068_s34.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0069_s38.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0069_s38.jpg new file mode 100644 index 0000000..b58eeda Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0069_s38.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0070_s39.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0070_s39.jpg new file mode 100644 index 0000000..3bbe937 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0070_s39.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0071_s45.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0071_s45.jpg new file mode 100644 index 0000000..6995282 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0071_s45.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0072_s39.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0072_s39.jpg new file mode 100644 index 0000000..6074f91 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0072_s39.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0073_s38.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0073_s38.jpg new file mode 100644 index 0000000..5f161c7 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0073_s38.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0074_s46.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0074_s46.jpg new file mode 100644 index 0000000..ad80fb9 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0074_s46.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0075_s46.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0075_s46.jpg new file mode 100644 index 0000000..fd2ad92 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0075_s46.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0076_s38.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0076_s38.jpg new file mode 100644 index 0000000..20f008a Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0076_s38.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0077_s47.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0077_s47.jpg new file mode 100644 index 0000000..657a6b1 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0077_s47.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0078_s43.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0078_s43.jpg new file mode 100644 index 0000000..38d56ee Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0078_s43.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0079_s42.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0079_s42.jpg new file mode 100644 index 0000000..1a97c69 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0079_s42.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0080_s42.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0080_s42.jpg new file mode 100644 index 0000000..284056c Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0080_s42.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0081_s37.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0081_s37.jpg new file mode 100644 index 0000000..b225a3e Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0081_s37.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0082_s40.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0082_s40.jpg new file mode 100644 index 0000000..a6d1d77 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0082_s40.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0083_s45.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0083_s45.jpg new file mode 100644 index 0000000..4845122 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0083_s45.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0084_s44.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0084_s44.jpg new file mode 100644 index 0000000..0b0a827 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0084_s44.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0085_s43.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0085_s43.jpg new file mode 100644 index 0000000..1ea6eb9 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0085_s43.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0086_s40.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0086_s40.jpg new file mode 100644 index 0000000..6116626 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0086_s40.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0087_s35.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0087_s35.jpg new file mode 100644 index 0000000..e915171 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0087_s35.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0088_s32.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0088_s32.jpg new file mode 100644 index 0000000..e92f145 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0088_s32.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0089_s32.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0089_s32.jpg new file mode 100644 index 0000000..eff70f1 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0089_s32.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0090_s31.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0090_s31.jpg new file mode 100644 index 0000000..e93aaf7 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0090_s31.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0091_s31.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0091_s31.jpg new file mode 100644 index 0000000..a93352e Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0091_s31.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0092_s28.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0092_s28.jpg new file mode 100644 index 0000000..af6fc12 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0092_s28.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0093_s23.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0093_s23.jpg new file mode 100644 index 0000000..da8b89b Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0093_s23.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0094_s27.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0094_s27.jpg new file mode 100644 index 0000000..d98e304 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0094_s27.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0095_s29.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0095_s29.jpg new file mode 100644 index 0000000..3af1f91 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0095_s29.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0096_s30.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0096_s30.jpg new file mode 100644 index 0000000..dea0f84 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0096_s30.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0097_s31.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0097_s31.jpg new file mode 100644 index 0000000..6614ce0 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0097_s31.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0098_s29.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0098_s29.jpg new file mode 100644 index 0000000..aa7c1f6 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0098_s29.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0099_s25.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0099_s25.jpg new file mode 100644 index 0000000..72a4edf Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0099_s25.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0100_s24.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0100_s24.jpg new file mode 100644 index 0000000..e649a89 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0100_s24.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0101_s24.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0101_s24.jpg new file mode 100644 index 0000000..5e61e29 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0101_s24.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0102_s25.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0102_s25.jpg new file mode 100644 index 0000000..63a6945 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0102_s25.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0103_s27.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0103_s27.jpg new file mode 100644 index 0000000..2e10bab Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0103_s27.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0104_s25.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0104_s25.jpg new file mode 100644 index 0000000..ed5db8e Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0104_s25.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0105_s21.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0105_s21.jpg new file mode 100644 index 0000000..ef34dcb Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0105_s21.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0106_s31.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0106_s31.jpg new file mode 100644 index 0000000..4ec2905 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0106_s31.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0107_s34.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0107_s34.jpg new file mode 100644 index 0000000..f612a16 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0107_s34.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0108_s31.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0108_s31.jpg new file mode 100644 index 0000000..79be6cc Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0108_s31.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0109_s31.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0109_s31.jpg new file mode 100644 index 0000000..0c8858c Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0109_s31.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0110_s36.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0110_s36.jpg new file mode 100644 index 0000000..3e30125 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0110_s36.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0111_s35.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0111_s35.jpg new file mode 100644 index 0000000..01a0687 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0111_s35.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0112_s31.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0112_s31.jpg new file mode 100644 index 0000000..593a405 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0112_s31.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0113_s31.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0113_s31.jpg new file mode 100644 index 0000000..2952400 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0113_s31.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0114_s31.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0114_s31.jpg new file mode 100644 index 0000000..a0f3018 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0114_s31.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0115_s35.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0115_s35.jpg new file mode 100644 index 0000000..61ab326 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0115_s35.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0116_s39.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0116_s39.jpg new file mode 100644 index 0000000..51ad5de Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0116_s39.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0117_s41.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0117_s41.jpg new file mode 100644 index 0000000..e220ad4 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0117_s41.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0118_s41.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0118_s41.jpg new file mode 100644 index 0000000..19bcdbf Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0118_s41.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0119_s38.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0119_s38.jpg new file mode 100644 index 0000000..8b1ab2c Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0119_s38.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0120_s39.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0120_s39.jpg new file mode 100644 index 0000000..d8224fd Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0120_s39.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0121_s41.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0121_s41.jpg new file mode 100644 index 0000000..0b04599 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0121_s41.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0122_s34.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0122_s34.jpg new file mode 100644 index 0000000..6d2a27e Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0122_s34.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0123_s37.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0123_s37.jpg new file mode 100644 index 0000000..761c072 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0123_s37.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0124_s34.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0124_s34.jpg new file mode 100644 index 0000000..b2a4ba9 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0124_s34.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0125_s38.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0125_s38.jpg new file mode 100644 index 0000000..293b87d Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0125_s38.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0126_s40.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0126_s40.jpg new file mode 100644 index 0000000..dc91852 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0126_s40.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0127_s18.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0127_s18.jpg new file mode 100644 index 0000000..49ee6b9 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0127_s18.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0128_s19.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0128_s19.jpg new file mode 100644 index 0000000..3e13c52 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0128_s19.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0129_s21.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0129_s21.jpg new file mode 100644 index 0000000..e40c3c0 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0129_s21.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0130_s18.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0130_s18.jpg new file mode 100644 index 0000000..1d0030e Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0130_s18.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0131_s25.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0131_s25.jpg new file mode 100644 index 0000000..368d0b5 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0131_s25.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0132_s39.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0132_s39.jpg new file mode 100644 index 0000000..7761c89 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0132_s39.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0133_s42.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0133_s42.jpg new file mode 100644 index 0000000..41d5e14 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0133_s42.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0134_s29.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0134_s29.jpg new file mode 100644 index 0000000..4f0fb52 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0134_s29.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0135_s24.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0135_s24.jpg new file mode 100644 index 0000000..9545e3c Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0135_s24.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0136_s23.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0136_s23.jpg new file mode 100644 index 0000000..350b3aa Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0136_s23.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0137_s25.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0137_s25.jpg new file mode 100644 index 0000000..6f33740 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0137_s25.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0138_s25.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0138_s25.jpg new file mode 100644 index 0000000..a33b398 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0138_s25.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0139_s26.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0139_s26.jpg new file mode 100644 index 0000000..c1dd94e Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0139_s26.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0140_s25.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0140_s25.jpg new file mode 100644 index 0000000..2784334 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0140_s25.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0141_s22.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0141_s22.jpg new file mode 100644 index 0000000..382200a Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0141_s22.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0142_s15.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0142_s15.jpg new file mode 100644 index 0000000..378808e Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0142_s15.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0143_s23.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0143_s23.jpg new file mode 100644 index 0000000..5ba254b Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0143_s23.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0144_s25.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0144_s25.jpg new file mode 100644 index 0000000..57df4be Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0144_s25.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0145_s25.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0145_s25.jpg new file mode 100644 index 0000000..5c74bcf Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0145_s25.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0146_s17.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0146_s17.jpg new file mode 100644 index 0000000..dc8dd86 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0146_s17.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0147_s21.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0147_s21.jpg new file mode 100644 index 0000000..9ab7e2b Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0147_s21.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0148_s28.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0148_s28.jpg new file mode 100644 index 0000000..d72747b Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0148_s28.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0149_s30.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0149_s30.jpg new file mode 100644 index 0000000..350378f Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0149_s30.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0150_s30.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0150_s30.jpg new file mode 100644 index 0000000..82e6af6 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0150_s30.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0151_s31.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0151_s31.jpg new file mode 100644 index 0000000..d15b191 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0151_s31.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0152_s31.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0152_s31.jpg new file mode 100644 index 0000000..0a797a5 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0152_s31.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0153_s32.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0153_s32.jpg new file mode 100644 index 0000000..7917530 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0153_s32.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0154_s31.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0154_s31.jpg new file mode 100644 index 0000000..7bad30e Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0154_s31.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0155_s20.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0155_s20.jpg new file mode 100644 index 0000000..e921ff5 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0155_s20.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0156_s24.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0156_s24.jpg new file mode 100644 index 0000000..0a91bbd Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0156_s24.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0157_s25.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0157_s25.jpg new file mode 100644 index 0000000..e7ecbdd Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0157_s25.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0158_s24.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0158_s24.jpg new file mode 100644 index 0000000..d6055da Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0158_s24.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0159_s25.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0159_s25.jpg new file mode 100644 index 0000000..42aea39 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0159_s25.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0160_s23.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0160_s23.jpg new file mode 100644 index 0000000..26f6ef6 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0160_s23.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0161_s20.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0161_s20.jpg new file mode 100644 index 0000000..40d5237 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0161_s20.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0162_s31.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0162_s31.jpg new file mode 100644 index 0000000..3bd91a7 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0162_s31.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0163_s33.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0163_s33.jpg new file mode 100644 index 0000000..f31cd25 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0163_s33.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0164_s32.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0164_s32.jpg new file mode 100644 index 0000000..4362aaf Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0164_s32.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0165_s41.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0165_s41.jpg new file mode 100644 index 0000000..2d90b07 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0165_s41.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0166_s43.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0166_s43.jpg new file mode 100644 index 0000000..93d8ac7 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0166_s43.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0167_s44.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0167_s44.jpg new file mode 100644 index 0000000..43f0cd6 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0167_s44.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0168_s29.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0168_s29.jpg new file mode 100644 index 0000000..ff3baa0 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0168_s29.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0169_s19.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0169_s19.jpg new file mode 100644 index 0000000..a154edd Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0169_s19.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0170_s34.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0170_s34.jpg new file mode 100644 index 0000000..fbe286a Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0170_s34.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0171_s36.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0171_s36.jpg new file mode 100644 index 0000000..b2b1d42 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0171_s36.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0172_s28.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0172_s28.jpg new file mode 100644 index 0000000..b9ee463 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0172_s28.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0173_s33.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0173_s33.jpg new file mode 100644 index 0000000..22ad3c7 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0173_s33.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0174_s33.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0174_s33.jpg new file mode 100644 index 0000000..ab51163 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0174_s33.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0175_s33.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0175_s33.jpg new file mode 100644 index 0000000..c7e2919 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0175_s33.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0176_s32.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0176_s32.jpg new file mode 100644 index 0000000..1adaa47 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0176_s32.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0177_s28.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0177_s28.jpg new file mode 100644 index 0000000..b2ccae9 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0177_s28.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0178_s32.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0178_s32.jpg new file mode 100644 index 0000000..2db475d Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0178_s32.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0179_s33.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0179_s33.jpg new file mode 100644 index 0000000..997e536 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0179_s33.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0180_s34.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0180_s34.jpg new file mode 100644 index 0000000..54ff141 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0180_s34.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0181_s25.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0181_s25.jpg new file mode 100644 index 0000000..6e1c5a7 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0181_s25.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0182_s25.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0182_s25.jpg new file mode 100644 index 0000000..b5944ed Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0182_s25.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0183_s28.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0183_s28.jpg new file mode 100644 index 0000000..2e5247e Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0183_s28.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0184_s28.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0184_s28.jpg new file mode 100644 index 0000000..006458e Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0184_s28.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0185_s29.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0185_s29.jpg new file mode 100644 index 0000000..7ae5328 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0185_s29.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0186_s29.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0186_s29.jpg new file mode 100644 index 0000000..f86418b Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0186_s29.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0187_s30.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0187_s30.jpg new file mode 100644 index 0000000..66dc009 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0187_s30.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0188_s28.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0188_s28.jpg new file mode 100644 index 0000000..7311828 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0188_s28.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0189_s27.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0189_s27.jpg new file mode 100644 index 0000000..b546b02 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0189_s27.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0190_s26.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0190_s26.jpg new file mode 100644 index 0000000..1919586 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0190_s26.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0191_s28.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0191_s28.jpg new file mode 100644 index 0000000..db11064 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0191_s28.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0192_s29.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0192_s29.jpg new file mode 100644 index 0000000..0cadfff Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0192_s29.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0193_s29.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0193_s29.jpg new file mode 100644 index 0000000..660a91c Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0193_s29.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0194_s30.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0194_s30.jpg new file mode 100644 index 0000000..d91ff2c Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0194_s30.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0195_s30.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0195_s30.jpg new file mode 100644 index 0000000..2685a03 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0195_s30.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0196_s28.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0196_s28.jpg new file mode 100644 index 0000000..2ba1b87 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0196_s28.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0197_s24.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0197_s24.jpg new file mode 100644 index 0000000..7abce0c Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0197_s24.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0198_s15.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0198_s15.jpg new file mode 100644 index 0000000..ce70043 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0198_s15.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0199_s20.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0199_s20.jpg new file mode 100644 index 0000000..dc1783d Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0199_s20.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0200_s19.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0200_s19.jpg new file mode 100644 index 0000000..72bce24 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0200_s19.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0201_s14.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0201_s14.jpg new file mode 100644 index 0000000..41911d2 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0201_s14.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0202_s14.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0202_s14.jpg new file mode 100644 index 0000000..1149294 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0202_s14.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0203_s20.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0203_s20.jpg new file mode 100644 index 0000000..7058a4f Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0203_s20.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0204_s23.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0204_s23.jpg new file mode 100644 index 0000000..f6744a3 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0204_s23.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0205_s32.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0205_s32.jpg new file mode 100644 index 0000000..185b895 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0205_s32.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0206_s24.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0206_s24.jpg new file mode 100644 index 0000000..38e1b2f Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0206_s24.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0207_s22.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0207_s22.jpg new file mode 100644 index 0000000..6a1c895 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0207_s22.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0208_s22.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0208_s22.jpg new file mode 100644 index 0000000..342c844 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0208_s22.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0209_s22.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0209_s22.jpg new file mode 100644 index 0000000..71369dd Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0209_s22.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0210_s20.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0210_s20.jpg new file mode 100644 index 0000000..cef20ca Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0210_s20.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0211_s19.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0211_s19.jpg new file mode 100644 index 0000000..3422808 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0211_s19.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0212_s19.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0212_s19.jpg new file mode 100644 index 0000000..1f4e11f Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0212_s19.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0213_s19.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0213_s19.jpg new file mode 100644 index 0000000..18968a7 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0213_s19.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0214_s19.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0214_s19.jpg new file mode 100644 index 0000000..fbae1c6 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0214_s19.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0215_s20.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0215_s20.jpg new file mode 100644 index 0000000..6fe0fb9 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0215_s20.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0216_s15.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0216_s15.jpg new file mode 100644 index 0000000..83f4ff5 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0216_s15.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0217_s23.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0217_s23.jpg new file mode 100644 index 0000000..060bf83 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0217_s23.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0218_s23.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0218_s23.jpg new file mode 100644 index 0000000..baa210d Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0218_s23.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0219_s24.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0219_s24.jpg new file mode 100644 index 0000000..d98966c Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0219_s24.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0220_s25.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0220_s25.jpg new file mode 100644 index 0000000..81afec6 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0220_s25.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0221_s26.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0221_s26.jpg new file mode 100644 index 0000000..4f56125 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0221_s26.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0222_s25.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0222_s25.jpg new file mode 100644 index 0000000..0f82f11 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0222_s25.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0223_s21.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0223_s21.jpg new file mode 100644 index 0000000..18f1d56 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0223_s21.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0224_s19.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0224_s19.jpg new file mode 100644 index 0000000..c5f5390 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0224_s19.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0225_s25.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0225_s25.jpg new file mode 100644 index 0000000..296b579 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0225_s25.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0226_s26.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0226_s26.jpg new file mode 100644 index 0000000..3f9ab41 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0226_s26.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0227_s26.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0227_s26.jpg new file mode 100644 index 0000000..1745732 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0227_s26.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0228_s28.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0228_s28.jpg new file mode 100644 index 0000000..0a825be Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0228_s28.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0229_s26.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0229_s26.jpg new file mode 100644 index 0000000..97dd526 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0229_s26.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0230_s29.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0230_s29.jpg new file mode 100644 index 0000000..37dc92a Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0230_s29.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0231_s31.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0231_s31.jpg new file mode 100644 index 0000000..495a227 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0231_s31.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0232_s31.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0232_s31.jpg new file mode 100644 index 0000000..9855bc0 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0232_s31.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0233_s29.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0233_s29.jpg new file mode 100644 index 0000000..024e320 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0233_s29.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0234_s20.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0234_s20.jpg new file mode 100644 index 0000000..8f9eb22 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0234_s20.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0235_s29.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0235_s29.jpg new file mode 100644 index 0000000..9df383c Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0235_s29.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0236_s30.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0236_s30.jpg new file mode 100644 index 0000000..770dde8 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0236_s30.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0237_s30.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0237_s30.jpg new file mode 100644 index 0000000..e228f9d Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0237_s30.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0238_s27.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0238_s27.jpg new file mode 100644 index 0000000..a542662 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0238_s27.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0239_s30.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0239_s30.jpg new file mode 100644 index 0000000..529c52f Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0239_s30.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0240_s27.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0240_s27.jpg new file mode 100644 index 0000000..f480a40 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0240_s27.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0241_s21.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0241_s21.jpg new file mode 100644 index 0000000..6bc51ae Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0241_s21.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0242_s31.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0242_s31.jpg new file mode 100644 index 0000000..64d500b Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0242_s31.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0243_s31.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0243_s31.jpg new file mode 100644 index 0000000..5f11b2f Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0243_s31.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0244_s29.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0244_s29.jpg new file mode 100644 index 0000000..21a1211 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0244_s29.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0245_s29.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0245_s29.jpg new file mode 100644 index 0000000..a7a1a5a Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0245_s29.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0246_s18.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0246_s18.jpg new file mode 100644 index 0000000..4b25c61 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0246_s18.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0247_s25.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0247_s25.jpg new file mode 100644 index 0000000..65b06e4 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0247_s25.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0248_s21.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0248_s21.jpg new file mode 100644 index 0000000..d8d9c47 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0248_s21.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0249_s23.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0249_s23.jpg new file mode 100644 index 0000000..579dcae Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0249_s23.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0250_s23.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0250_s23.jpg new file mode 100644 index 0000000..1c117bc Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0250_s23.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0251_s24.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0251_s24.jpg new file mode 100644 index 0000000..7f8cbe6 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0251_s24.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0252_s24.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0252_s24.jpg new file mode 100644 index 0000000..873dcc4 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0252_s24.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0253_s23.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0253_s23.jpg new file mode 100644 index 0000000..218092f Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0253_s23.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0254_s29.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0254_s29.jpg new file mode 100644 index 0000000..e8ccfa6 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0254_s29.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0255_s30.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0255_s30.jpg new file mode 100644 index 0000000..57b2866 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0255_s30.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0256_s26.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0256_s26.jpg new file mode 100644 index 0000000..4db1dd3 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0256_s26.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0257_s30.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0257_s30.jpg new file mode 100644 index 0000000..dca287f Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0257_s30.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0258_s27.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0258_s27.jpg new file mode 100644 index 0000000..e651faf Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0258_s27.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0259_s25.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0259_s25.jpg new file mode 100644 index 0000000..f7eae98 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0259_s25.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0260_s26.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0260_s26.jpg new file mode 100644 index 0000000..4b86c2f Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0260_s26.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0261_s22.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0261_s22.jpg new file mode 100644 index 0000000..8a75d62 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0261_s22.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0262_s24.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0262_s24.jpg new file mode 100644 index 0000000..b1959ce Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0262_s24.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0263_s31.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0263_s31.jpg new file mode 100644 index 0000000..23e0501 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0263_s31.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0264_s29.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0264_s29.jpg new file mode 100644 index 0000000..ba23814 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0264_s29.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0265_s25.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0265_s25.jpg new file mode 100644 index 0000000..6487b54 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0265_s25.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0266_s28.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0266_s28.jpg new file mode 100644 index 0000000..29402f4 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0266_s28.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0267_s20.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0267_s20.jpg new file mode 100644 index 0000000..b656876 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0267_s20.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0268_s20.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0268_s20.jpg new file mode 100644 index 0000000..0b8c953 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0268_s20.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0269_s22.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0269_s22.jpg new file mode 100644 index 0000000..9032977 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0269_s22.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0270_s19.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0270_s19.jpg new file mode 100644 index 0000000..c292936 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0270_s19.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0271_s22.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0271_s22.jpg new file mode 100644 index 0000000..03bf208 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0271_s22.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0272_s26.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0272_s26.jpg new file mode 100644 index 0000000..75b5f12 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0272_s26.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0273_s28.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0273_s28.jpg new file mode 100644 index 0000000..5757059 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0273_s28.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0274_s26.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0274_s26.jpg new file mode 100644 index 0000000..8df2e66 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0274_s26.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0275_s33.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0275_s33.jpg new file mode 100644 index 0000000..e95f115 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0275_s33.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0276_s32.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0276_s32.jpg new file mode 100644 index 0000000..b897589 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0276_s32.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0277_s33.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0277_s33.jpg new file mode 100644 index 0000000..d9cd91f Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0277_s33.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0278_s30.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0278_s30.jpg new file mode 100644 index 0000000..b02c888 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0278_s30.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0279_s32.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0279_s32.jpg new file mode 100644 index 0000000..66148bc Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0279_s32.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0280_s23.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0280_s23.jpg new file mode 100644 index 0000000..155c514 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0280_s23.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0281_s33.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0281_s33.jpg new file mode 100644 index 0000000..035a3a0 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0281_s33.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0282_s32.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0282_s32.jpg new file mode 100644 index 0000000..f792386 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0282_s32.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0283_s33.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0283_s33.jpg new file mode 100644 index 0000000..2564631 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0283_s33.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0284_s32.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0284_s32.jpg new file mode 100644 index 0000000..61c4107 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0284_s32.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0285_s33.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0285_s33.jpg new file mode 100644 index 0000000..1864824 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0285_s33.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0286_s31.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0286_s31.jpg new file mode 100644 index 0000000..c73546e Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0286_s31.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0287_s31.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0287_s31.jpg new file mode 100644 index 0000000..3e5b79a Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0287_s31.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0288_s29.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0288_s29.jpg new file mode 100644 index 0000000..015c5ea Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0288_s29.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0289_s31.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0289_s31.jpg new file mode 100644 index 0000000..65cbe1a Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0289_s31.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0290_s29.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0290_s29.jpg new file mode 100644 index 0000000..65382c0 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0290_s29.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0291_s22.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0291_s22.jpg new file mode 100644 index 0000000..c3e37e2 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0291_s22.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0292_s32.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0292_s32.jpg new file mode 100644 index 0000000..68ed37a Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0292_s32.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0293_s34.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0293_s34.jpg new file mode 100644 index 0000000..3ce3fcd Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0293_s34.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0294_s33.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0294_s33.jpg new file mode 100644 index 0000000..bf58763 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0294_s33.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0295_s32.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0295_s32.jpg new file mode 100644 index 0000000..a198319 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0295_s32.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0296_s26.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0296_s26.jpg new file mode 100644 index 0000000..bd7b224 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0296_s26.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0297_s29.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0297_s29.jpg new file mode 100644 index 0000000..1697c07 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0297_s29.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0298_s28.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0298_s28.jpg new file mode 100644 index 0000000..272f7a6 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0298_s28.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0299_s29.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0299_s29.jpg new file mode 100644 index 0000000..754eb65 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0299_s29.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0300_s27.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0300_s27.jpg new file mode 100644 index 0000000..a1bc8ae Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0300_s27.jpg differ diff --git a/datasets/my_dataset/images/train/left/20260820_112741_0301_s26.jpg b/datasets/my_dataset/images/train/left/20260820_112741_0301_s26.jpg new file mode 100644 index 0000000..53a16b9 Binary files /dev/null and b/datasets/my_dataset/images/train/left/20260820_112741_0301_s26.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0001_s26.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0001_s26.jpg new file mode 100644 index 0000000..3f2f918 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0001_s26.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0002_s29.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0002_s29.jpg new file mode 100644 index 0000000..f0ece39 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0002_s29.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0003_s30.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0003_s30.jpg new file mode 100644 index 0000000..a8be160 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0003_s30.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0004_s29.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0004_s29.jpg new file mode 100644 index 0000000..9f9f811 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0004_s29.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0005_s30.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0005_s30.jpg new file mode 100644 index 0000000..8a7ee5a Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0005_s30.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0006_s30.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0006_s30.jpg new file mode 100644 index 0000000..f3509e8 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0006_s30.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0007_s30.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0007_s30.jpg new file mode 100644 index 0000000..f2af497 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0007_s30.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0008_s30.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0008_s30.jpg new file mode 100644 index 0000000..3988545 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0008_s30.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0009_s31.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0009_s31.jpg new file mode 100644 index 0000000..5cdc0b7 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0009_s31.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0010_s31.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0010_s31.jpg new file mode 100644 index 0000000..64fb34d Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0010_s31.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0011_s32.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0011_s32.jpg new file mode 100644 index 0000000..96074b4 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0011_s32.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0012_s34.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0012_s34.jpg new file mode 100644 index 0000000..c5e6fb7 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0012_s34.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0013_s39.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0013_s39.jpg new file mode 100644 index 0000000..be0416f Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0013_s39.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0014_s41.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0014_s41.jpg new file mode 100644 index 0000000..c415f4d Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0014_s41.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0015_s48.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0015_s48.jpg new file mode 100644 index 0000000..b3a4abe Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0015_s48.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0016_s48.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0016_s48.jpg new file mode 100644 index 0000000..ee4252c Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0016_s48.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0017_s50.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0017_s50.jpg new file mode 100644 index 0000000..e6f631f Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0017_s50.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0018_s27.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0018_s27.jpg new file mode 100644 index 0000000..98beed5 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0018_s27.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0019_s24.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0019_s24.jpg new file mode 100644 index 0000000..e942ca9 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0019_s24.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0020_s27.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0020_s27.jpg new file mode 100644 index 0000000..91b4c51 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0020_s27.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0021_s26.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0021_s26.jpg new file mode 100644 index 0000000..7d70b30 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0021_s26.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0022_s26.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0022_s26.jpg new file mode 100644 index 0000000..2d99fcd Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0022_s26.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0023_s34.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0023_s34.jpg new file mode 100644 index 0000000..3cc6b18 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0023_s34.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0024_s33.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0024_s33.jpg new file mode 100644 index 0000000..b21ee99 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0024_s33.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0025_s34.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0025_s34.jpg new file mode 100644 index 0000000..163e192 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0025_s34.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0026_s34.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0026_s34.jpg new file mode 100644 index 0000000..a743341 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0026_s34.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0027_s35.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0027_s35.jpg new file mode 100644 index 0000000..c5c0f3c Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0027_s35.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0028_s37.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0028_s37.jpg new file mode 100644 index 0000000..9b21756 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0028_s37.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0029_s24.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0029_s24.jpg new file mode 100644 index 0000000..3ad8953 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0029_s24.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0030_s24.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0030_s24.jpg new file mode 100644 index 0000000..2588d49 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0030_s24.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0031_s33.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0031_s33.jpg new file mode 100644 index 0000000..4e80bde Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0031_s33.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0032_s34.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0032_s34.jpg new file mode 100644 index 0000000..e5c2a04 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0032_s34.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0033_s32.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0033_s32.jpg new file mode 100644 index 0000000..fad01c0 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0033_s32.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0034_s29.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0034_s29.jpg new file mode 100644 index 0000000..2c3cb2a Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0034_s29.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0035_s30.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0035_s30.jpg new file mode 100644 index 0000000..eeaa8c1 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0035_s30.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0036_s26.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0036_s26.jpg new file mode 100644 index 0000000..89ff7e9 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0036_s26.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0037_s31.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0037_s31.jpg new file mode 100644 index 0000000..7542b18 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0037_s31.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0038_s32.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0038_s32.jpg new file mode 100644 index 0000000..dbcf0e6 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0038_s32.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0039_s32.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0039_s32.jpg new file mode 100644 index 0000000..176a322 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0039_s32.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0040_s26.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0040_s26.jpg new file mode 100644 index 0000000..25935f5 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0040_s26.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0041_s23.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0041_s23.jpg new file mode 100644 index 0000000..693c82b Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0041_s23.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0042_s31.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0042_s31.jpg new file mode 100644 index 0000000..c3cb93c Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0042_s31.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0043_s30.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0043_s30.jpg new file mode 100644 index 0000000..72f0088 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0043_s30.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0044_s32.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0044_s32.jpg new file mode 100644 index 0000000..7024af0 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0044_s32.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0045_s29.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0045_s29.jpg new file mode 100644 index 0000000..4ba4346 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0045_s29.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0046_s30.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0046_s30.jpg new file mode 100644 index 0000000..10f8d07 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0046_s30.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0047_s34.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0047_s34.jpg new file mode 100644 index 0000000..fc70ebe Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0047_s34.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0048_s27.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0048_s27.jpg new file mode 100644 index 0000000..cb733bc Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0048_s27.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0049_s30.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0049_s30.jpg new file mode 100644 index 0000000..7b3ba18 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0049_s30.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0050_s31.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0050_s31.jpg new file mode 100644 index 0000000..2424f78 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0050_s31.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0051_s20.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0051_s20.jpg new file mode 100644 index 0000000..e0b3e36 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0051_s20.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0052_s28.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0052_s28.jpg new file mode 100644 index 0000000..1a381e6 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0052_s28.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0053_s27.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0053_s27.jpg new file mode 100644 index 0000000..0560593 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0053_s27.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0054_s22.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0054_s22.jpg new file mode 100644 index 0000000..e0e1627 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0054_s22.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0055_s31.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0055_s31.jpg new file mode 100644 index 0000000..74bd366 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0055_s31.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0056_s30.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0056_s30.jpg new file mode 100644 index 0000000..5461415 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0056_s30.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0057_s26.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0057_s26.jpg new file mode 100644 index 0000000..ef0fcf6 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0057_s26.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0058_s34.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0058_s34.jpg new file mode 100644 index 0000000..3d61279 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0058_s34.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0059_s36.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0059_s36.jpg new file mode 100644 index 0000000..88ddbdf Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0059_s36.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0060_s34.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0060_s34.jpg new file mode 100644 index 0000000..d980a05 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0060_s34.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0061_s38.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0061_s38.jpg new file mode 100644 index 0000000..84e152d Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0061_s38.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0062_s39.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0062_s39.jpg new file mode 100644 index 0000000..fcc29eb Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0062_s39.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0063_s40.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0063_s40.jpg new file mode 100644 index 0000000..b96560d Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0063_s40.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0064_s38.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0064_s38.jpg new file mode 100644 index 0000000..493ce53 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0064_s38.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0065_s35.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0065_s35.jpg new file mode 100644 index 0000000..4f73a76 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0065_s35.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0066_s34.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0066_s34.jpg new file mode 100644 index 0000000..4413960 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0066_s34.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0067_s34.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0067_s34.jpg new file mode 100644 index 0000000..bd817f5 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0067_s34.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0068_s34.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0068_s34.jpg new file mode 100644 index 0000000..34d1cf7 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0068_s34.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0069_s38.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0069_s38.jpg new file mode 100644 index 0000000..8b3bd67 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0069_s38.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0070_s39.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0070_s39.jpg new file mode 100644 index 0000000..a060428 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0070_s39.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0071_s45.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0071_s45.jpg new file mode 100644 index 0000000..caf8b5b Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0071_s45.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0072_s39.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0072_s39.jpg new file mode 100644 index 0000000..d37a3e6 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0072_s39.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0073_s38.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0073_s38.jpg new file mode 100644 index 0000000..72ac636 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0073_s38.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0074_s46.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0074_s46.jpg new file mode 100644 index 0000000..bce84b8 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0074_s46.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0075_s46.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0075_s46.jpg new file mode 100644 index 0000000..64f2acb Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0075_s46.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0076_s38.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0076_s38.jpg new file mode 100644 index 0000000..0dd1682 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0076_s38.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0077_s47.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0077_s47.jpg new file mode 100644 index 0000000..e7cd2dd Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0077_s47.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0078_s43.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0078_s43.jpg new file mode 100644 index 0000000..e6c95d1 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0078_s43.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0079_s42.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0079_s42.jpg new file mode 100644 index 0000000..f966552 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0079_s42.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0080_s42.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0080_s42.jpg new file mode 100644 index 0000000..89021f8 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0080_s42.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0081_s37.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0081_s37.jpg new file mode 100644 index 0000000..46a590b Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0081_s37.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0082_s40.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0082_s40.jpg new file mode 100644 index 0000000..ed33387 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0082_s40.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0083_s45.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0083_s45.jpg new file mode 100644 index 0000000..23ea1ed Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0083_s45.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0084_s44.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0084_s44.jpg new file mode 100644 index 0000000..ae9112b Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0084_s44.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0085_s43.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0085_s43.jpg new file mode 100644 index 0000000..f9cc0f6 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0085_s43.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0086_s40.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0086_s40.jpg new file mode 100644 index 0000000..6b35d18 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0086_s40.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0087_s35.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0087_s35.jpg new file mode 100644 index 0000000..9171764 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0087_s35.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0088_s32.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0088_s32.jpg new file mode 100644 index 0000000..23d7695 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0088_s32.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0089_s32.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0089_s32.jpg new file mode 100644 index 0000000..2a9beeb Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0089_s32.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0090_s31.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0090_s31.jpg new file mode 100644 index 0000000..1cef6f8 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0090_s31.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0091_s31.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0091_s31.jpg new file mode 100644 index 0000000..8a992b3 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0091_s31.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0092_s28.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0092_s28.jpg new file mode 100644 index 0000000..bac1a36 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0092_s28.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0093_s23.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0093_s23.jpg new file mode 100644 index 0000000..6b925f9 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0093_s23.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0094_s27.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0094_s27.jpg new file mode 100644 index 0000000..cbda645 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0094_s27.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0095_s29.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0095_s29.jpg new file mode 100644 index 0000000..1cdc908 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0095_s29.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0096_s30.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0096_s30.jpg new file mode 100644 index 0000000..02d1e03 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0096_s30.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0097_s31.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0097_s31.jpg new file mode 100644 index 0000000..fb03ceb Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0097_s31.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0098_s29.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0098_s29.jpg new file mode 100644 index 0000000..fb236c1 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0098_s29.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0099_s25.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0099_s25.jpg new file mode 100644 index 0000000..fb72cf5 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0099_s25.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0100_s24.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0100_s24.jpg new file mode 100644 index 0000000..06359a1 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0100_s24.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0101_s24.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0101_s24.jpg new file mode 100644 index 0000000..156259f Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0101_s24.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0102_s25.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0102_s25.jpg new file mode 100644 index 0000000..38a20c5 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0102_s25.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0103_s27.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0103_s27.jpg new file mode 100644 index 0000000..3221943 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0103_s27.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0104_s25.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0104_s25.jpg new file mode 100644 index 0000000..a628357 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0104_s25.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0105_s21.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0105_s21.jpg new file mode 100644 index 0000000..7e9059e Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0105_s21.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0106_s31.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0106_s31.jpg new file mode 100644 index 0000000..d333d03 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0106_s31.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0107_s34.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0107_s34.jpg new file mode 100644 index 0000000..efebd4e Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0107_s34.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0108_s31.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0108_s31.jpg new file mode 100644 index 0000000..e1c48db Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0108_s31.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0109_s31.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0109_s31.jpg new file mode 100644 index 0000000..218ebdf Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0109_s31.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0110_s36.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0110_s36.jpg new file mode 100644 index 0000000..fa05599 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0110_s36.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0111_s35.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0111_s35.jpg new file mode 100644 index 0000000..68205a8 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0111_s35.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0112_s31.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0112_s31.jpg new file mode 100644 index 0000000..c68510b Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0112_s31.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0113_s31.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0113_s31.jpg new file mode 100644 index 0000000..4cfe858 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0113_s31.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0114_s31.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0114_s31.jpg new file mode 100644 index 0000000..602ccda Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0114_s31.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0115_s35.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0115_s35.jpg new file mode 100644 index 0000000..8aa1a21 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0115_s35.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0116_s39.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0116_s39.jpg new file mode 100644 index 0000000..1b49965 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0116_s39.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0117_s41.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0117_s41.jpg new file mode 100644 index 0000000..84dd937 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0117_s41.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0118_s41.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0118_s41.jpg new file mode 100644 index 0000000..c142d89 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0118_s41.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0119_s38.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0119_s38.jpg new file mode 100644 index 0000000..f5a0f3d Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0119_s38.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0120_s39.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0120_s39.jpg new file mode 100644 index 0000000..e836249 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0120_s39.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0121_s41.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0121_s41.jpg new file mode 100644 index 0000000..bc8e9d7 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0121_s41.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0122_s34.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0122_s34.jpg new file mode 100644 index 0000000..22e1fa2 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0122_s34.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0123_s37.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0123_s37.jpg new file mode 100644 index 0000000..a417f74 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0123_s37.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0124_s34.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0124_s34.jpg new file mode 100644 index 0000000..d9504f1 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0124_s34.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0125_s38.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0125_s38.jpg new file mode 100644 index 0000000..de36a79 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0125_s38.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0126_s40.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0126_s40.jpg new file mode 100644 index 0000000..bf26eee Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0126_s40.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0127_s18.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0127_s18.jpg new file mode 100644 index 0000000..c303d0a Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0127_s18.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0128_s19.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0128_s19.jpg new file mode 100644 index 0000000..04dac3e Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0128_s19.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0129_s21.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0129_s21.jpg new file mode 100644 index 0000000..6a14f9a Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0129_s21.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0130_s18.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0130_s18.jpg new file mode 100644 index 0000000..eb218fe Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0130_s18.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0131_s25.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0131_s25.jpg new file mode 100644 index 0000000..60da1df Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0131_s25.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0132_s39.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0132_s39.jpg new file mode 100644 index 0000000..b3f1978 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0132_s39.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0133_s42.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0133_s42.jpg new file mode 100644 index 0000000..6112f87 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0133_s42.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0134_s29.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0134_s29.jpg new file mode 100644 index 0000000..dee99b1 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0134_s29.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0135_s24.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0135_s24.jpg new file mode 100644 index 0000000..4a066b1 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0135_s24.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0136_s23.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0136_s23.jpg new file mode 100644 index 0000000..2125d18 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0136_s23.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0137_s25.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0137_s25.jpg new file mode 100644 index 0000000..4c465d7 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0137_s25.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0138_s25.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0138_s25.jpg new file mode 100644 index 0000000..64b8085 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0138_s25.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0139_s26.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0139_s26.jpg new file mode 100644 index 0000000..b3b9916 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0139_s26.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0140_s25.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0140_s25.jpg new file mode 100644 index 0000000..9050176 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0140_s25.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0141_s22.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0141_s22.jpg new file mode 100644 index 0000000..23b001c Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0141_s22.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0142_s15.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0142_s15.jpg new file mode 100644 index 0000000..ba4711b Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0142_s15.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0143_s23.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0143_s23.jpg new file mode 100644 index 0000000..bad0865 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0143_s23.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0144_s25.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0144_s25.jpg new file mode 100644 index 0000000..37e3a32 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0144_s25.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0145_s25.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0145_s25.jpg new file mode 100644 index 0000000..2a0ba8c Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0145_s25.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0146_s17.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0146_s17.jpg new file mode 100644 index 0000000..e01ac06 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0146_s17.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0147_s21.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0147_s21.jpg new file mode 100644 index 0000000..211e541 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0147_s21.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0148_s28.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0148_s28.jpg new file mode 100644 index 0000000..3c19043 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0148_s28.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0149_s30.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0149_s30.jpg new file mode 100644 index 0000000..16c588e Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0149_s30.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0150_s30.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0150_s30.jpg new file mode 100644 index 0000000..042d239 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0150_s30.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0151_s31.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0151_s31.jpg new file mode 100644 index 0000000..e2909a9 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0151_s31.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0152_s31.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0152_s31.jpg new file mode 100644 index 0000000..2aded3f Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0152_s31.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0153_s32.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0153_s32.jpg new file mode 100644 index 0000000..1045a4e Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0153_s32.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0154_s31.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0154_s31.jpg new file mode 100644 index 0000000..ca11907 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0154_s31.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0155_s20.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0155_s20.jpg new file mode 100644 index 0000000..bffece5 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0155_s20.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0156_s24.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0156_s24.jpg new file mode 100644 index 0000000..1cd30d8 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0156_s24.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0157_s25.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0157_s25.jpg new file mode 100644 index 0000000..0613e09 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0157_s25.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0158_s24.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0158_s24.jpg new file mode 100644 index 0000000..c5cfb0b Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0158_s24.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0159_s25.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0159_s25.jpg new file mode 100644 index 0000000..87cb313 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0159_s25.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0160_s23.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0160_s23.jpg new file mode 100644 index 0000000..64cbcde Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0160_s23.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0161_s20.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0161_s20.jpg new file mode 100644 index 0000000..31543c9 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0161_s20.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0162_s31.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0162_s31.jpg new file mode 100644 index 0000000..0748110 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0162_s31.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0163_s33.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0163_s33.jpg new file mode 100644 index 0000000..99dd87e Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0163_s33.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0164_s32.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0164_s32.jpg new file mode 100644 index 0000000..c920a2d Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0164_s32.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0165_s41.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0165_s41.jpg new file mode 100644 index 0000000..88e8a48 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0165_s41.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0166_s43.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0166_s43.jpg new file mode 100644 index 0000000..270be1e Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0166_s43.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0167_s44.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0167_s44.jpg new file mode 100644 index 0000000..bfcb2fe Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0167_s44.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0168_s29.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0168_s29.jpg new file mode 100644 index 0000000..efdbcb6 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0168_s29.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0169_s19.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0169_s19.jpg new file mode 100644 index 0000000..b3aa063 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0169_s19.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0170_s34.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0170_s34.jpg new file mode 100644 index 0000000..95dbaa5 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0170_s34.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0171_s36.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0171_s36.jpg new file mode 100644 index 0000000..736a9c3 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0171_s36.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0172_s28.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0172_s28.jpg new file mode 100644 index 0000000..d9f84a7 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0172_s28.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0173_s33.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0173_s33.jpg new file mode 100644 index 0000000..8cea0a4 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0173_s33.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0174_s33.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0174_s33.jpg new file mode 100644 index 0000000..9c10304 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0174_s33.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0175_s33.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0175_s33.jpg new file mode 100644 index 0000000..401b35f Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0175_s33.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0176_s32.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0176_s32.jpg new file mode 100644 index 0000000..a2831c5 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0176_s32.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0177_s28.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0177_s28.jpg new file mode 100644 index 0000000..bd25bf1 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0177_s28.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0178_s32.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0178_s32.jpg new file mode 100644 index 0000000..bf65031 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0178_s32.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0179_s33.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0179_s33.jpg new file mode 100644 index 0000000..4b23308 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0179_s33.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0180_s34.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0180_s34.jpg new file mode 100644 index 0000000..a9d81e9 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0180_s34.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0181_s25.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0181_s25.jpg new file mode 100644 index 0000000..def6286 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0181_s25.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0182_s25.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0182_s25.jpg new file mode 100644 index 0000000..0883f8b Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0182_s25.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0183_s28.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0183_s28.jpg new file mode 100644 index 0000000..5e97e27 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0183_s28.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0184_s28.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0184_s28.jpg new file mode 100644 index 0000000..8e42876 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0184_s28.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0185_s29.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0185_s29.jpg new file mode 100644 index 0000000..f25cbd1 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0185_s29.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0186_s29.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0186_s29.jpg new file mode 100644 index 0000000..6087df1 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0186_s29.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0187_s30.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0187_s30.jpg new file mode 100644 index 0000000..ec259f3 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0187_s30.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0188_s28.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0188_s28.jpg new file mode 100644 index 0000000..5f6348f Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0188_s28.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0189_s27.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0189_s27.jpg new file mode 100644 index 0000000..85956e8 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0189_s27.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0190_s26.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0190_s26.jpg new file mode 100644 index 0000000..5e9a65d Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0190_s26.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0191_s28.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0191_s28.jpg new file mode 100644 index 0000000..3455cb8 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0191_s28.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0192_s29.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0192_s29.jpg new file mode 100644 index 0000000..8dde078 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0192_s29.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0193_s29.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0193_s29.jpg new file mode 100644 index 0000000..8f3e331 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0193_s29.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0194_s30.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0194_s30.jpg new file mode 100644 index 0000000..63202ea Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0194_s30.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0195_s30.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0195_s30.jpg new file mode 100644 index 0000000..49b3254 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0195_s30.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0196_s28.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0196_s28.jpg new file mode 100644 index 0000000..d8aa514 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0196_s28.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0197_s24.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0197_s24.jpg new file mode 100644 index 0000000..eda44db Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0197_s24.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0198_s15.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0198_s15.jpg new file mode 100644 index 0000000..4025447 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0198_s15.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0199_s20.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0199_s20.jpg new file mode 100644 index 0000000..17d1c2e Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0199_s20.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0200_s19.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0200_s19.jpg new file mode 100644 index 0000000..a61a1fc Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0200_s19.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0201_s14.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0201_s14.jpg new file mode 100644 index 0000000..a4bb110 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0201_s14.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0202_s14.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0202_s14.jpg new file mode 100644 index 0000000..4b433fa Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0202_s14.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0203_s20.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0203_s20.jpg new file mode 100644 index 0000000..8c7cf14 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0203_s20.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0204_s23.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0204_s23.jpg new file mode 100644 index 0000000..1e53932 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0204_s23.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0205_s32.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0205_s32.jpg new file mode 100644 index 0000000..fe1abb2 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0205_s32.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0206_s24.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0206_s24.jpg new file mode 100644 index 0000000..caea70a Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0206_s24.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0207_s22.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0207_s22.jpg new file mode 100644 index 0000000..aa2c2bd Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0207_s22.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0208_s22.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0208_s22.jpg new file mode 100644 index 0000000..62f1c5d Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0208_s22.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0209_s22.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0209_s22.jpg new file mode 100644 index 0000000..675501b Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0209_s22.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0210_s20.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0210_s20.jpg new file mode 100644 index 0000000..73b9a05 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0210_s20.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0211_s19.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0211_s19.jpg new file mode 100644 index 0000000..e4a7fab Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0211_s19.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0212_s19.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0212_s19.jpg new file mode 100644 index 0000000..e2500ea Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0212_s19.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0213_s19.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0213_s19.jpg new file mode 100644 index 0000000..8ed032b Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0213_s19.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0214_s19.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0214_s19.jpg new file mode 100644 index 0000000..9055379 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0214_s19.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0215_s20.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0215_s20.jpg new file mode 100644 index 0000000..381cf49 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0215_s20.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0216_s15.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0216_s15.jpg new file mode 100644 index 0000000..e985c48 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0216_s15.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0217_s23.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0217_s23.jpg new file mode 100644 index 0000000..722e8f1 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0217_s23.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0218_s23.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0218_s23.jpg new file mode 100644 index 0000000..aeaa659 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0218_s23.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0219_s24.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0219_s24.jpg new file mode 100644 index 0000000..a30389d Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0219_s24.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0220_s25.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0220_s25.jpg new file mode 100644 index 0000000..1a808c0 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0220_s25.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0221_s26.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0221_s26.jpg new file mode 100644 index 0000000..2417370 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0221_s26.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0222_s25.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0222_s25.jpg new file mode 100644 index 0000000..ccf89ce Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0222_s25.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0223_s21.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0223_s21.jpg new file mode 100644 index 0000000..d368d6e Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0223_s21.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0224_s19.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0224_s19.jpg new file mode 100644 index 0000000..e59911b Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0224_s19.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0225_s25.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0225_s25.jpg new file mode 100644 index 0000000..7c8bfef Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0225_s25.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0226_s26.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0226_s26.jpg new file mode 100644 index 0000000..060419e Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0226_s26.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0227_s26.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0227_s26.jpg new file mode 100644 index 0000000..dfbceac Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0227_s26.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0228_s28.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0228_s28.jpg new file mode 100644 index 0000000..b829cca Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0228_s28.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0229_s26.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0229_s26.jpg new file mode 100644 index 0000000..af32146 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0229_s26.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0230_s29.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0230_s29.jpg new file mode 100644 index 0000000..c9b844a Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0230_s29.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0231_s31.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0231_s31.jpg new file mode 100644 index 0000000..76db615 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0231_s31.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0232_s31.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0232_s31.jpg new file mode 100644 index 0000000..4c9a51f Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0232_s31.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0233_s29.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0233_s29.jpg new file mode 100644 index 0000000..2def6fe Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0233_s29.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0234_s20.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0234_s20.jpg new file mode 100644 index 0000000..69deb44 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0234_s20.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0235_s29.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0235_s29.jpg new file mode 100644 index 0000000..6a30637 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0235_s29.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0236_s30.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0236_s30.jpg new file mode 100644 index 0000000..be11654 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0236_s30.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0237_s30.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0237_s30.jpg new file mode 100644 index 0000000..a6f4791 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0237_s30.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0238_s27.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0238_s27.jpg new file mode 100644 index 0000000..8926cc0 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0238_s27.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0239_s30.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0239_s30.jpg new file mode 100644 index 0000000..caf87ba Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0239_s30.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0240_s27.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0240_s27.jpg new file mode 100644 index 0000000..52fd474 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0240_s27.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0241_s21.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0241_s21.jpg new file mode 100644 index 0000000..36de6a6 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0241_s21.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0242_s31.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0242_s31.jpg new file mode 100644 index 0000000..ac8e714 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0242_s31.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0243_s31.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0243_s31.jpg new file mode 100644 index 0000000..8893e09 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0243_s31.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0244_s29.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0244_s29.jpg new file mode 100644 index 0000000..c3b26e0 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0244_s29.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0245_s29.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0245_s29.jpg new file mode 100644 index 0000000..d1b27ac Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0245_s29.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0246_s18.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0246_s18.jpg new file mode 100644 index 0000000..32cf23b Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0246_s18.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0247_s25.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0247_s25.jpg new file mode 100644 index 0000000..91694e2 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0247_s25.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0248_s21.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0248_s21.jpg new file mode 100644 index 0000000..369d99c Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0248_s21.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0249_s23.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0249_s23.jpg new file mode 100644 index 0000000..29aaeef Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0249_s23.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0250_s23.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0250_s23.jpg new file mode 100644 index 0000000..a004e19 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0250_s23.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0251_s24.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0251_s24.jpg new file mode 100644 index 0000000..69da97e Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0251_s24.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0252_s24.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0252_s24.jpg new file mode 100644 index 0000000..85698ab Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0252_s24.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0253_s23.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0253_s23.jpg new file mode 100644 index 0000000..551c080 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0253_s23.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0254_s29.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0254_s29.jpg new file mode 100644 index 0000000..50f0163 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0254_s29.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0255_s30.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0255_s30.jpg new file mode 100644 index 0000000..4aa55ee Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0255_s30.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0256_s26.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0256_s26.jpg new file mode 100644 index 0000000..205715d Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0256_s26.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0257_s30.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0257_s30.jpg new file mode 100644 index 0000000..20730ec Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0257_s30.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0258_s27.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0258_s27.jpg new file mode 100644 index 0000000..31e1669 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0258_s27.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0259_s25.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0259_s25.jpg new file mode 100644 index 0000000..8010b48 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0259_s25.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0260_s26.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0260_s26.jpg new file mode 100644 index 0000000..1134503 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0260_s26.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0261_s22.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0261_s22.jpg new file mode 100644 index 0000000..ca38dd8 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0261_s22.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0262_s24.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0262_s24.jpg new file mode 100644 index 0000000..d9c3ed0 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0262_s24.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0263_s31.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0263_s31.jpg new file mode 100644 index 0000000..293b546 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0263_s31.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0264_s29.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0264_s29.jpg new file mode 100644 index 0000000..1a99ef6 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0264_s29.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0265_s25.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0265_s25.jpg new file mode 100644 index 0000000..944c186 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0265_s25.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0266_s28.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0266_s28.jpg new file mode 100644 index 0000000..8368b6d Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0266_s28.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0267_s20.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0267_s20.jpg new file mode 100644 index 0000000..25f4426 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0267_s20.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0268_s20.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0268_s20.jpg new file mode 100644 index 0000000..ab32812 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0268_s20.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0269_s22.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0269_s22.jpg new file mode 100644 index 0000000..202f2b9 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0269_s22.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0270_s19.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0270_s19.jpg new file mode 100644 index 0000000..d57465f Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0270_s19.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0271_s22.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0271_s22.jpg new file mode 100644 index 0000000..fe920e0 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0271_s22.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0272_s26.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0272_s26.jpg new file mode 100644 index 0000000..a5500f4 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0272_s26.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0273_s28.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0273_s28.jpg new file mode 100644 index 0000000..832a122 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0273_s28.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0274_s26.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0274_s26.jpg new file mode 100644 index 0000000..06075fd Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0274_s26.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0275_s33.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0275_s33.jpg new file mode 100644 index 0000000..816e33c Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0275_s33.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0276_s32.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0276_s32.jpg new file mode 100644 index 0000000..bd85fd7 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0276_s32.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0277_s33.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0277_s33.jpg new file mode 100644 index 0000000..3033b5f Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0277_s33.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0278_s30.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0278_s30.jpg new file mode 100644 index 0000000..ac6ae65 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0278_s30.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0279_s32.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0279_s32.jpg new file mode 100644 index 0000000..14a1c05 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0279_s32.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0280_s23.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0280_s23.jpg new file mode 100644 index 0000000..ec78363 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0280_s23.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0281_s33.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0281_s33.jpg new file mode 100644 index 0000000..df62921 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0281_s33.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0282_s32.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0282_s32.jpg new file mode 100644 index 0000000..32acae7 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0282_s32.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0283_s33.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0283_s33.jpg new file mode 100644 index 0000000..dd32774 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0283_s33.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0284_s32.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0284_s32.jpg new file mode 100644 index 0000000..77db10f Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0284_s32.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0285_s33.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0285_s33.jpg new file mode 100644 index 0000000..c5214b4 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0285_s33.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0286_s31.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0286_s31.jpg new file mode 100644 index 0000000..c002643 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0286_s31.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0287_s31.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0287_s31.jpg new file mode 100644 index 0000000..67ae036 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0287_s31.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0288_s29.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0288_s29.jpg new file mode 100644 index 0000000..a1b692a Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0288_s29.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0289_s31.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0289_s31.jpg new file mode 100644 index 0000000..518585d Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0289_s31.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0290_s29.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0290_s29.jpg new file mode 100644 index 0000000..5c7d1ce Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0290_s29.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0291_s22.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0291_s22.jpg new file mode 100644 index 0000000..50153b2 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0291_s22.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0292_s32.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0292_s32.jpg new file mode 100644 index 0000000..2de3277 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0292_s32.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0293_s34.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0293_s34.jpg new file mode 100644 index 0000000..86cd204 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0293_s34.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0294_s33.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0294_s33.jpg new file mode 100644 index 0000000..96add94 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0294_s33.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0295_s32.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0295_s32.jpg new file mode 100644 index 0000000..a63fa49 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0295_s32.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0296_s26.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0296_s26.jpg new file mode 100644 index 0000000..b52af35 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0296_s26.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0297_s29.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0297_s29.jpg new file mode 100644 index 0000000..753d4dd Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0297_s29.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0298_s28.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0298_s28.jpg new file mode 100644 index 0000000..b6ab10f Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0298_s28.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0299_s29.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0299_s29.jpg new file mode 100644 index 0000000..39fb1d9 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0299_s29.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0300_s27.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0300_s27.jpg new file mode 100644 index 0000000..95e30bc Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0300_s27.jpg differ diff --git a/datasets/my_dataset/images/train/rgb/20260820_112741_0301_s26.jpg b/datasets/my_dataset/images/train/rgb/20260820_112741_0301_s26.jpg new file mode 100644 index 0000000..e22b486 Binary files /dev/null and b/datasets/my_dataset/images/train/rgb/20260820_112741_0301_s26.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0001_s26.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0001_s26.jpg new file mode 100644 index 0000000..5648bfb Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0001_s26.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0002_s29.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0002_s29.jpg new file mode 100644 index 0000000..dc20110 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0002_s29.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0003_s30.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0003_s30.jpg new file mode 100644 index 0000000..de02d5e Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0003_s30.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0004_s29.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0004_s29.jpg new file mode 100644 index 0000000..d119610 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0004_s29.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0005_s30.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0005_s30.jpg new file mode 100644 index 0000000..309ef46 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0005_s30.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0006_s30.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0006_s30.jpg new file mode 100644 index 0000000..367e8e3 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0006_s30.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0007_s30.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0007_s30.jpg new file mode 100644 index 0000000..bee08b6 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0007_s30.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0008_s30.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0008_s30.jpg new file mode 100644 index 0000000..a2d8f1e Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0008_s30.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0009_s31.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0009_s31.jpg new file mode 100644 index 0000000..e4e695b Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0009_s31.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0010_s31.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0010_s31.jpg new file mode 100644 index 0000000..2f30f25 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0010_s31.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0011_s32.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0011_s32.jpg new file mode 100644 index 0000000..47a5a57 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0011_s32.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0012_s34.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0012_s34.jpg new file mode 100644 index 0000000..8916048 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0012_s34.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0013_s39.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0013_s39.jpg new file mode 100644 index 0000000..6232e2f Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0013_s39.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0014_s41.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0014_s41.jpg new file mode 100644 index 0000000..9fc3e4a Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0014_s41.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0015_s48.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0015_s48.jpg new file mode 100644 index 0000000..f477b84 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0015_s48.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0016_s48.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0016_s48.jpg new file mode 100644 index 0000000..cd92bd7 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0016_s48.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0017_s50.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0017_s50.jpg new file mode 100644 index 0000000..3f3381a Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0017_s50.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0018_s27.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0018_s27.jpg new file mode 100644 index 0000000..1597b77 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0018_s27.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0019_s24.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0019_s24.jpg new file mode 100644 index 0000000..33404ac Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0019_s24.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0020_s27.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0020_s27.jpg new file mode 100644 index 0000000..85b7a80 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0020_s27.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0021_s26.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0021_s26.jpg new file mode 100644 index 0000000..711b370 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0021_s26.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0022_s26.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0022_s26.jpg new file mode 100644 index 0000000..556a880 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0022_s26.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0023_s34.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0023_s34.jpg new file mode 100644 index 0000000..3050734 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0023_s34.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0024_s33.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0024_s33.jpg new file mode 100644 index 0000000..d99ed22 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0024_s33.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0025_s34.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0025_s34.jpg new file mode 100644 index 0000000..b0c231f Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0025_s34.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0026_s34.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0026_s34.jpg new file mode 100644 index 0000000..b46efcf Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0026_s34.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0027_s35.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0027_s35.jpg new file mode 100644 index 0000000..77b9a4c Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0027_s35.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0028_s37.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0028_s37.jpg new file mode 100644 index 0000000..93e8691 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0028_s37.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0029_s24.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0029_s24.jpg new file mode 100644 index 0000000..6a6c7f6 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0029_s24.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0030_s24.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0030_s24.jpg new file mode 100644 index 0000000..606b138 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0030_s24.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0031_s33.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0031_s33.jpg new file mode 100644 index 0000000..475b095 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0031_s33.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0032_s34.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0032_s34.jpg new file mode 100644 index 0000000..e4a29cd Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0032_s34.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0033_s32.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0033_s32.jpg new file mode 100644 index 0000000..94014bd Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0033_s32.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0034_s29.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0034_s29.jpg new file mode 100644 index 0000000..5a4d4f7 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0034_s29.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0035_s30.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0035_s30.jpg new file mode 100644 index 0000000..1d0fdc9 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0035_s30.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0036_s26.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0036_s26.jpg new file mode 100644 index 0000000..e90bd1c Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0036_s26.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0037_s31.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0037_s31.jpg new file mode 100644 index 0000000..085def6 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0037_s31.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0038_s32.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0038_s32.jpg new file mode 100644 index 0000000..fd2b389 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0038_s32.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0039_s32.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0039_s32.jpg new file mode 100644 index 0000000..d5253de Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0039_s32.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0040_s26.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0040_s26.jpg new file mode 100644 index 0000000..1f1be3f Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0040_s26.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0041_s23.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0041_s23.jpg new file mode 100644 index 0000000..09961bb Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0041_s23.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0042_s31.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0042_s31.jpg new file mode 100644 index 0000000..cab3e49 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0042_s31.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0043_s30.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0043_s30.jpg new file mode 100644 index 0000000..029f9cb Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0043_s30.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0044_s32.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0044_s32.jpg new file mode 100644 index 0000000..f6e2e96 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0044_s32.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0045_s29.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0045_s29.jpg new file mode 100644 index 0000000..c18340e Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0045_s29.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0046_s30.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0046_s30.jpg new file mode 100644 index 0000000..5442937 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0046_s30.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0047_s34.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0047_s34.jpg new file mode 100644 index 0000000..aa8cce5 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0047_s34.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0048_s27.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0048_s27.jpg new file mode 100644 index 0000000..34a428e Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0048_s27.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0049_s30.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0049_s30.jpg new file mode 100644 index 0000000..38406e0 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0049_s30.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0050_s31.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0050_s31.jpg new file mode 100644 index 0000000..307255c Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0050_s31.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0051_s20.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0051_s20.jpg new file mode 100644 index 0000000..458eba1 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0051_s20.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0052_s28.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0052_s28.jpg new file mode 100644 index 0000000..c7f5eee Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0052_s28.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0053_s27.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0053_s27.jpg new file mode 100644 index 0000000..30716a0 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0053_s27.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0054_s22.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0054_s22.jpg new file mode 100644 index 0000000..1f2f51e Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0054_s22.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0055_s31.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0055_s31.jpg new file mode 100644 index 0000000..0ed6ac5 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0055_s31.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0056_s30.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0056_s30.jpg new file mode 100644 index 0000000..64de343 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0056_s30.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0057_s26.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0057_s26.jpg new file mode 100644 index 0000000..997eb3b Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0057_s26.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0058_s34.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0058_s34.jpg new file mode 100644 index 0000000..14dc5ba Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0058_s34.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0059_s36.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0059_s36.jpg new file mode 100644 index 0000000..407efef Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0059_s36.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0060_s34.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0060_s34.jpg new file mode 100644 index 0000000..8de8a0c Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0060_s34.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0061_s38.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0061_s38.jpg new file mode 100644 index 0000000..ab41d9e Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0061_s38.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0062_s39.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0062_s39.jpg new file mode 100644 index 0000000..17b3a33 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0062_s39.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0063_s40.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0063_s40.jpg new file mode 100644 index 0000000..c45574d Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0063_s40.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0064_s38.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0064_s38.jpg new file mode 100644 index 0000000..2b582ea Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0064_s38.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0065_s35.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0065_s35.jpg new file mode 100644 index 0000000..51620dc Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0065_s35.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0066_s34.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0066_s34.jpg new file mode 100644 index 0000000..f5c05a7 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0066_s34.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0067_s34.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0067_s34.jpg new file mode 100644 index 0000000..32ac523 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0067_s34.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0068_s34.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0068_s34.jpg new file mode 100644 index 0000000..d416940 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0068_s34.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0069_s38.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0069_s38.jpg new file mode 100644 index 0000000..f05dc1c Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0069_s38.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0070_s39.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0070_s39.jpg new file mode 100644 index 0000000..2a7fb00 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0070_s39.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0071_s45.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0071_s45.jpg new file mode 100644 index 0000000..18eaf1d Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0071_s45.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0072_s39.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0072_s39.jpg new file mode 100644 index 0000000..64f8ed2 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0072_s39.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0073_s38.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0073_s38.jpg new file mode 100644 index 0000000..1525eb9 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0073_s38.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0074_s46.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0074_s46.jpg new file mode 100644 index 0000000..9fafec4 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0074_s46.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0075_s46.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0075_s46.jpg new file mode 100644 index 0000000..ea496a9 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0075_s46.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0076_s38.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0076_s38.jpg new file mode 100644 index 0000000..9df85c9 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0076_s38.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0077_s47.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0077_s47.jpg new file mode 100644 index 0000000..2818e6f Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0077_s47.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0078_s43.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0078_s43.jpg new file mode 100644 index 0000000..957a7b1 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0078_s43.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0079_s42.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0079_s42.jpg new file mode 100644 index 0000000..9b89653 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0079_s42.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0080_s42.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0080_s42.jpg new file mode 100644 index 0000000..ed533db Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0080_s42.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0081_s37.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0081_s37.jpg new file mode 100644 index 0000000..6982ca6 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0081_s37.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0082_s40.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0082_s40.jpg new file mode 100644 index 0000000..bde2f99 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0082_s40.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0083_s45.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0083_s45.jpg new file mode 100644 index 0000000..459fb4f Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0083_s45.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0084_s44.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0084_s44.jpg new file mode 100644 index 0000000..4ca3f3e Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0084_s44.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0085_s43.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0085_s43.jpg new file mode 100644 index 0000000..a1e6793 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0085_s43.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0086_s40.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0086_s40.jpg new file mode 100644 index 0000000..f72c487 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0086_s40.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0087_s35.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0087_s35.jpg new file mode 100644 index 0000000..4bf1648 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0087_s35.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0088_s32.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0088_s32.jpg new file mode 100644 index 0000000..da96d64 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0088_s32.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0089_s32.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0089_s32.jpg new file mode 100644 index 0000000..a4687a4 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0089_s32.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0090_s31.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0090_s31.jpg new file mode 100644 index 0000000..9db6132 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0090_s31.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0091_s31.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0091_s31.jpg new file mode 100644 index 0000000..9a7defa Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0091_s31.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0092_s28.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0092_s28.jpg new file mode 100644 index 0000000..126c2da Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0092_s28.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0093_s23.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0093_s23.jpg new file mode 100644 index 0000000..9f0c3e1 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0093_s23.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0094_s27.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0094_s27.jpg new file mode 100644 index 0000000..d181a46 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0094_s27.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0095_s29.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0095_s29.jpg new file mode 100644 index 0000000..9055742 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0095_s29.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0096_s30.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0096_s30.jpg new file mode 100644 index 0000000..534bdd7 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0096_s30.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0097_s31.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0097_s31.jpg new file mode 100644 index 0000000..e0d1120 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0097_s31.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0098_s29.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0098_s29.jpg new file mode 100644 index 0000000..a39d2d4 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0098_s29.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0099_s25.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0099_s25.jpg new file mode 100644 index 0000000..e62c895 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0099_s25.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0100_s24.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0100_s24.jpg new file mode 100644 index 0000000..98432df Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0100_s24.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0101_s24.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0101_s24.jpg new file mode 100644 index 0000000..961cf06 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0101_s24.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0102_s25.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0102_s25.jpg new file mode 100644 index 0000000..2f706f8 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0102_s25.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0103_s27.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0103_s27.jpg new file mode 100644 index 0000000..25b0a0e Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0103_s27.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0104_s25.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0104_s25.jpg new file mode 100644 index 0000000..ec9259c Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0104_s25.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0105_s21.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0105_s21.jpg new file mode 100644 index 0000000..9a47765 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0105_s21.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0106_s31.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0106_s31.jpg new file mode 100644 index 0000000..5b8cd7a Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0106_s31.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0107_s34.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0107_s34.jpg new file mode 100644 index 0000000..fc5d145 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0107_s34.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0108_s31.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0108_s31.jpg new file mode 100644 index 0000000..5072469 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0108_s31.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0109_s31.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0109_s31.jpg new file mode 100644 index 0000000..f96e057 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0109_s31.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0110_s36.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0110_s36.jpg new file mode 100644 index 0000000..3611b1b Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0110_s36.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0111_s35.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0111_s35.jpg new file mode 100644 index 0000000..6630fbf Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0111_s35.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0112_s31.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0112_s31.jpg new file mode 100644 index 0000000..3b3d81d Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0112_s31.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0113_s31.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0113_s31.jpg new file mode 100644 index 0000000..1be7e83 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0113_s31.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0114_s31.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0114_s31.jpg new file mode 100644 index 0000000..977e69b Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0114_s31.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0115_s35.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0115_s35.jpg new file mode 100644 index 0000000..9e1664d Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0115_s35.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0116_s39.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0116_s39.jpg new file mode 100644 index 0000000..3d14f88 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0116_s39.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0117_s41.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0117_s41.jpg new file mode 100644 index 0000000..07fe656 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0117_s41.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0118_s41.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0118_s41.jpg new file mode 100644 index 0000000..e738c91 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0118_s41.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0119_s38.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0119_s38.jpg new file mode 100644 index 0000000..085aaa5 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0119_s38.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0120_s39.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0120_s39.jpg new file mode 100644 index 0000000..a20b229 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0120_s39.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0121_s41.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0121_s41.jpg new file mode 100644 index 0000000..f60f3ee Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0121_s41.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0122_s34.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0122_s34.jpg new file mode 100644 index 0000000..ca3c8bf Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0122_s34.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0123_s37.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0123_s37.jpg new file mode 100644 index 0000000..9d0f640 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0123_s37.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0124_s34.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0124_s34.jpg new file mode 100644 index 0000000..0eaa1b2 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0124_s34.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0125_s38.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0125_s38.jpg new file mode 100644 index 0000000..55f6739 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0125_s38.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0126_s40.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0126_s40.jpg new file mode 100644 index 0000000..8a57c5c Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0126_s40.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0127_s18.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0127_s18.jpg new file mode 100644 index 0000000..267df7a Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0127_s18.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0128_s19.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0128_s19.jpg new file mode 100644 index 0000000..926e598 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0128_s19.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0129_s21.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0129_s21.jpg new file mode 100644 index 0000000..d2e3631 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0129_s21.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0130_s18.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0130_s18.jpg new file mode 100644 index 0000000..8319ea7 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0130_s18.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0131_s25.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0131_s25.jpg new file mode 100644 index 0000000..3f3ad97 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0131_s25.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0132_s39.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0132_s39.jpg new file mode 100644 index 0000000..2a415a7 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0132_s39.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0133_s42.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0133_s42.jpg new file mode 100644 index 0000000..13b0171 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0133_s42.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0134_s29.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0134_s29.jpg new file mode 100644 index 0000000..57bc962 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0134_s29.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0135_s24.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0135_s24.jpg new file mode 100644 index 0000000..389b5de Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0135_s24.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0136_s23.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0136_s23.jpg new file mode 100644 index 0000000..d263845 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0136_s23.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0137_s25.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0137_s25.jpg new file mode 100644 index 0000000..8ebf6ac Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0137_s25.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0138_s25.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0138_s25.jpg new file mode 100644 index 0000000..2144618 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0138_s25.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0139_s26.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0139_s26.jpg new file mode 100644 index 0000000..6850aec Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0139_s26.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0140_s25.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0140_s25.jpg new file mode 100644 index 0000000..f8c4dd1 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0140_s25.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0141_s22.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0141_s22.jpg new file mode 100644 index 0000000..72bc559 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0141_s22.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0142_s15.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0142_s15.jpg new file mode 100644 index 0000000..3fbc30a Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0142_s15.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0143_s23.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0143_s23.jpg new file mode 100644 index 0000000..418ce9b Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0143_s23.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0144_s25.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0144_s25.jpg new file mode 100644 index 0000000..1e23f91 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0144_s25.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0145_s25.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0145_s25.jpg new file mode 100644 index 0000000..deede8e Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0145_s25.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0146_s17.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0146_s17.jpg new file mode 100644 index 0000000..f139ab7 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0146_s17.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0147_s21.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0147_s21.jpg new file mode 100644 index 0000000..fb3e5e3 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0147_s21.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0148_s28.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0148_s28.jpg new file mode 100644 index 0000000..89cf613 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0148_s28.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0149_s30.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0149_s30.jpg new file mode 100644 index 0000000..09049ad Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0149_s30.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0150_s30.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0150_s30.jpg new file mode 100644 index 0000000..4ee3e22 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0150_s30.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0151_s31.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0151_s31.jpg new file mode 100644 index 0000000..5264bda Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0151_s31.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0152_s31.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0152_s31.jpg new file mode 100644 index 0000000..48546d7 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0152_s31.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0153_s32.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0153_s32.jpg new file mode 100644 index 0000000..8dea88b Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0153_s32.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0154_s31.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0154_s31.jpg new file mode 100644 index 0000000..30bd503 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0154_s31.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0155_s20.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0155_s20.jpg new file mode 100644 index 0000000..d613304 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0155_s20.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0156_s24.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0156_s24.jpg new file mode 100644 index 0000000..a93e29a Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0156_s24.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0157_s25.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0157_s25.jpg new file mode 100644 index 0000000..d363d32 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0157_s25.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0158_s24.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0158_s24.jpg new file mode 100644 index 0000000..c546d5d Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0158_s24.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0159_s25.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0159_s25.jpg new file mode 100644 index 0000000..0858c92 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0159_s25.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0160_s23.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0160_s23.jpg new file mode 100644 index 0000000..1fdcb5d Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0160_s23.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0161_s20.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0161_s20.jpg new file mode 100644 index 0000000..5ef2591 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0161_s20.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0162_s31.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0162_s31.jpg new file mode 100644 index 0000000..ec9abf2 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0162_s31.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0163_s33.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0163_s33.jpg new file mode 100644 index 0000000..2ed3872 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0163_s33.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0164_s32.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0164_s32.jpg new file mode 100644 index 0000000..ad0b47f Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0164_s32.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0165_s41.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0165_s41.jpg new file mode 100644 index 0000000..a2f572b Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0165_s41.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0166_s43.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0166_s43.jpg new file mode 100644 index 0000000..0b0c5d8 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0166_s43.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0167_s44.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0167_s44.jpg new file mode 100644 index 0000000..f6be3eb Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0167_s44.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0168_s29.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0168_s29.jpg new file mode 100644 index 0000000..e43314a Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0168_s29.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0169_s19.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0169_s19.jpg new file mode 100644 index 0000000..036edcf Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0169_s19.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0170_s34.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0170_s34.jpg new file mode 100644 index 0000000..39aa475 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0170_s34.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0171_s36.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0171_s36.jpg new file mode 100644 index 0000000..f388ddb Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0171_s36.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0172_s28.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0172_s28.jpg new file mode 100644 index 0000000..539e9eb Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0172_s28.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0173_s33.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0173_s33.jpg new file mode 100644 index 0000000..883e64a Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0173_s33.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0174_s33.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0174_s33.jpg new file mode 100644 index 0000000..1b6ddc0 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0174_s33.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0175_s33.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0175_s33.jpg new file mode 100644 index 0000000..966a96c Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0175_s33.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0176_s32.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0176_s32.jpg new file mode 100644 index 0000000..2f008f3 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0176_s32.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0177_s28.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0177_s28.jpg new file mode 100644 index 0000000..60c7829 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0177_s28.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0178_s32.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0178_s32.jpg new file mode 100644 index 0000000..6214aa9 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0178_s32.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0179_s33.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0179_s33.jpg new file mode 100644 index 0000000..c16aa82 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0179_s33.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0180_s34.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0180_s34.jpg new file mode 100644 index 0000000..576f3fb Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0180_s34.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0181_s25.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0181_s25.jpg new file mode 100644 index 0000000..f5b70aa Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0181_s25.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0182_s25.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0182_s25.jpg new file mode 100644 index 0000000..0f3c2ce Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0182_s25.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0183_s28.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0183_s28.jpg new file mode 100644 index 0000000..be2490a Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0183_s28.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0184_s28.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0184_s28.jpg new file mode 100644 index 0000000..f840d27 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0184_s28.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0185_s29.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0185_s29.jpg new file mode 100644 index 0000000..ce867d1 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0185_s29.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0186_s29.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0186_s29.jpg new file mode 100644 index 0000000..79a2564 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0186_s29.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0187_s30.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0187_s30.jpg new file mode 100644 index 0000000..cf1b7d3 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0187_s30.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0188_s28.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0188_s28.jpg new file mode 100644 index 0000000..1208cc4 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0188_s28.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0189_s27.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0189_s27.jpg new file mode 100644 index 0000000..0ff33e8 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0189_s27.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0190_s26.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0190_s26.jpg new file mode 100644 index 0000000..f6ff0e3 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0190_s26.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0191_s28.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0191_s28.jpg new file mode 100644 index 0000000..c223fb9 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0191_s28.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0192_s29.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0192_s29.jpg new file mode 100644 index 0000000..4627d7e Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0192_s29.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0193_s29.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0193_s29.jpg new file mode 100644 index 0000000..9d191d8 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0193_s29.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0194_s30.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0194_s30.jpg new file mode 100644 index 0000000..1fc0afa Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0194_s30.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0195_s30.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0195_s30.jpg new file mode 100644 index 0000000..dc989ec Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0195_s30.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0196_s28.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0196_s28.jpg new file mode 100644 index 0000000..5e1ba21 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0196_s28.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0197_s24.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0197_s24.jpg new file mode 100644 index 0000000..e5d1e38 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0197_s24.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0198_s15.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0198_s15.jpg new file mode 100644 index 0000000..f81693c Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0198_s15.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0199_s20.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0199_s20.jpg new file mode 100644 index 0000000..8c03d49 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0199_s20.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0200_s19.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0200_s19.jpg new file mode 100644 index 0000000..bfc3675 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0200_s19.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0201_s14.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0201_s14.jpg new file mode 100644 index 0000000..6825af1 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0201_s14.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0202_s14.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0202_s14.jpg new file mode 100644 index 0000000..2d28c63 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0202_s14.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0203_s20.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0203_s20.jpg new file mode 100644 index 0000000..a1eb7b9 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0203_s20.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0204_s23.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0204_s23.jpg new file mode 100644 index 0000000..1c96c4e Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0204_s23.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0205_s32.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0205_s32.jpg new file mode 100644 index 0000000..d9b078e Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0205_s32.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0206_s24.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0206_s24.jpg new file mode 100644 index 0000000..5bd5360 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0206_s24.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0207_s22.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0207_s22.jpg new file mode 100644 index 0000000..6e5a66c Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0207_s22.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0208_s22.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0208_s22.jpg new file mode 100644 index 0000000..c0d46c9 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0208_s22.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0209_s22.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0209_s22.jpg new file mode 100644 index 0000000..3b07396 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0209_s22.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0210_s20.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0210_s20.jpg new file mode 100644 index 0000000..5a414f6 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0210_s20.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0211_s19.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0211_s19.jpg new file mode 100644 index 0000000..902b3a1 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0211_s19.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0212_s19.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0212_s19.jpg new file mode 100644 index 0000000..03f8308 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0212_s19.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0213_s19.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0213_s19.jpg new file mode 100644 index 0000000..f1433a8 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0213_s19.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0214_s19.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0214_s19.jpg new file mode 100644 index 0000000..e30edd5 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0214_s19.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0215_s20.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0215_s20.jpg new file mode 100644 index 0000000..c6f56dd Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0215_s20.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0216_s15.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0216_s15.jpg new file mode 100644 index 0000000..83987b5 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0216_s15.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0217_s23.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0217_s23.jpg new file mode 100644 index 0000000..c52c450 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0217_s23.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0218_s23.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0218_s23.jpg new file mode 100644 index 0000000..2ebc88d Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0218_s23.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0219_s24.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0219_s24.jpg new file mode 100644 index 0000000..c345637 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0219_s24.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0220_s25.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0220_s25.jpg new file mode 100644 index 0000000..05723b3 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0220_s25.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0221_s26.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0221_s26.jpg new file mode 100644 index 0000000..67003e9 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0221_s26.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0222_s25.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0222_s25.jpg new file mode 100644 index 0000000..89d609c Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0222_s25.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0223_s21.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0223_s21.jpg new file mode 100644 index 0000000..20fbe28 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0223_s21.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0224_s19.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0224_s19.jpg new file mode 100644 index 0000000..e07629e Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0224_s19.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0225_s25.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0225_s25.jpg new file mode 100644 index 0000000..e1622f7 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0225_s25.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0226_s26.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0226_s26.jpg new file mode 100644 index 0000000..266d2cc Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0226_s26.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0227_s26.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0227_s26.jpg new file mode 100644 index 0000000..c77ccd4 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0227_s26.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0228_s28.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0228_s28.jpg new file mode 100644 index 0000000..c8ff60f Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0228_s28.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0229_s26.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0229_s26.jpg new file mode 100644 index 0000000..7125650 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0229_s26.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0230_s29.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0230_s29.jpg new file mode 100644 index 0000000..5783421 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0230_s29.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0231_s31.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0231_s31.jpg new file mode 100644 index 0000000..4815b9e Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0231_s31.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0232_s31.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0232_s31.jpg new file mode 100644 index 0000000..142755d Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0232_s31.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0233_s29.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0233_s29.jpg new file mode 100644 index 0000000..d78180a Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0233_s29.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0234_s20.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0234_s20.jpg new file mode 100644 index 0000000..1c8afbf Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0234_s20.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0235_s29.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0235_s29.jpg new file mode 100644 index 0000000..5add29c Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0235_s29.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0236_s30.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0236_s30.jpg new file mode 100644 index 0000000..a0c09da Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0236_s30.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0237_s30.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0237_s30.jpg new file mode 100644 index 0000000..aed2095 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0237_s30.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0238_s27.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0238_s27.jpg new file mode 100644 index 0000000..0d10dd3 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0238_s27.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0239_s30.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0239_s30.jpg new file mode 100644 index 0000000..8bd9c09 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0239_s30.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0240_s27.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0240_s27.jpg new file mode 100644 index 0000000..7c914ff Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0240_s27.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0241_s21.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0241_s21.jpg new file mode 100644 index 0000000..c42276b Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0241_s21.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0242_s31.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0242_s31.jpg new file mode 100644 index 0000000..c24f608 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0242_s31.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0243_s31.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0243_s31.jpg new file mode 100644 index 0000000..294f358 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0243_s31.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0244_s29.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0244_s29.jpg new file mode 100644 index 0000000..1fb6b7d Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0244_s29.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0245_s29.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0245_s29.jpg new file mode 100644 index 0000000..ba74496 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0245_s29.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0246_s18.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0246_s18.jpg new file mode 100644 index 0000000..df3a189 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0246_s18.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0247_s25.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0247_s25.jpg new file mode 100644 index 0000000..4d78781 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0247_s25.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0248_s21.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0248_s21.jpg new file mode 100644 index 0000000..6a21be5 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0248_s21.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0249_s23.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0249_s23.jpg new file mode 100644 index 0000000..df8c25e Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0249_s23.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0250_s23.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0250_s23.jpg new file mode 100644 index 0000000..4522b0d Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0250_s23.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0251_s24.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0251_s24.jpg new file mode 100644 index 0000000..24e0aa0 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0251_s24.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0252_s24.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0252_s24.jpg new file mode 100644 index 0000000..3cb587a Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0252_s24.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0253_s23.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0253_s23.jpg new file mode 100644 index 0000000..b8192b5 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0253_s23.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0254_s29.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0254_s29.jpg new file mode 100644 index 0000000..bd0cc8c Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0254_s29.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0255_s30.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0255_s30.jpg new file mode 100644 index 0000000..a94ba36 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0255_s30.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0256_s26.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0256_s26.jpg new file mode 100644 index 0000000..49b37b7 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0256_s26.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0257_s30.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0257_s30.jpg new file mode 100644 index 0000000..1f71218 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0257_s30.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0258_s27.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0258_s27.jpg new file mode 100644 index 0000000..5dee0b5 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0258_s27.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0259_s25.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0259_s25.jpg new file mode 100644 index 0000000..a2909eb Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0259_s25.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0260_s26.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0260_s26.jpg new file mode 100644 index 0000000..196822c Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0260_s26.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0261_s22.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0261_s22.jpg new file mode 100644 index 0000000..ef8256c Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0261_s22.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0262_s24.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0262_s24.jpg new file mode 100644 index 0000000..83cb6ba Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0262_s24.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0263_s31.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0263_s31.jpg new file mode 100644 index 0000000..287520d Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0263_s31.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0264_s29.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0264_s29.jpg new file mode 100644 index 0000000..3d3a313 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0264_s29.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0265_s25.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0265_s25.jpg new file mode 100644 index 0000000..013d504 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0265_s25.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0266_s28.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0266_s28.jpg new file mode 100644 index 0000000..d5f01a5 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0266_s28.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0267_s20.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0267_s20.jpg new file mode 100644 index 0000000..d63ef33 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0267_s20.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0268_s20.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0268_s20.jpg new file mode 100644 index 0000000..05196bf Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0268_s20.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0269_s22.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0269_s22.jpg new file mode 100644 index 0000000..55c4a1f Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0269_s22.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0270_s19.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0270_s19.jpg new file mode 100644 index 0000000..83cf6c9 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0270_s19.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0271_s22.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0271_s22.jpg new file mode 100644 index 0000000..e6a4f62 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0271_s22.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0272_s26.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0272_s26.jpg new file mode 100644 index 0000000..58116fe Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0272_s26.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0273_s28.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0273_s28.jpg new file mode 100644 index 0000000..64dcda1 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0273_s28.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0274_s26.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0274_s26.jpg new file mode 100644 index 0000000..9762149 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0274_s26.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0275_s33.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0275_s33.jpg new file mode 100644 index 0000000..1c7ea56 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0275_s33.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0276_s32.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0276_s32.jpg new file mode 100644 index 0000000..395d456 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0276_s32.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0277_s33.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0277_s33.jpg new file mode 100644 index 0000000..6ef49db Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0277_s33.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0278_s30.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0278_s30.jpg new file mode 100644 index 0000000..67b6c7e Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0278_s30.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0279_s32.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0279_s32.jpg new file mode 100644 index 0000000..13c2770 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0279_s32.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0280_s23.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0280_s23.jpg new file mode 100644 index 0000000..99a69d3 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0280_s23.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0281_s33.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0281_s33.jpg new file mode 100644 index 0000000..c49fd84 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0281_s33.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0282_s32.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0282_s32.jpg new file mode 100644 index 0000000..cf07084 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0282_s32.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0283_s33.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0283_s33.jpg new file mode 100644 index 0000000..85b1c4f Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0283_s33.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0284_s32.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0284_s32.jpg new file mode 100644 index 0000000..b920582 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0284_s32.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0285_s33.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0285_s33.jpg new file mode 100644 index 0000000..f33133d Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0285_s33.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0286_s31.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0286_s31.jpg new file mode 100644 index 0000000..97ea8e9 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0286_s31.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0287_s31.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0287_s31.jpg new file mode 100644 index 0000000..0b4d296 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0287_s31.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0288_s29.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0288_s29.jpg new file mode 100644 index 0000000..9dec8d3 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0288_s29.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0289_s31.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0289_s31.jpg new file mode 100644 index 0000000..9f4f4e6 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0289_s31.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0290_s29.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0290_s29.jpg new file mode 100644 index 0000000..c754f0a Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0290_s29.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0291_s22.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0291_s22.jpg new file mode 100644 index 0000000..a1153a7 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0291_s22.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0292_s32.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0292_s32.jpg new file mode 100644 index 0000000..f610c19 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0292_s32.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0293_s34.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0293_s34.jpg new file mode 100644 index 0000000..ec84f0c Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0293_s34.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0294_s33.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0294_s33.jpg new file mode 100644 index 0000000..8e9fb06 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0294_s33.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0295_s32.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0295_s32.jpg new file mode 100644 index 0000000..2399f97 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0295_s32.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0296_s26.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0296_s26.jpg new file mode 100644 index 0000000..4f5d77c Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0296_s26.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0297_s29.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0297_s29.jpg new file mode 100644 index 0000000..0b9dfd0 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0297_s29.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0298_s28.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0298_s28.jpg new file mode 100644 index 0000000..3633719 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0298_s28.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0299_s29.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0299_s29.jpg new file mode 100644 index 0000000..0e31230 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0299_s29.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0300_s27.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0300_s27.jpg new file mode 100644 index 0000000..5cf665c Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0300_s27.jpg differ diff --git a/datasets/my_dataset/images/train/right/20260820_112741_0301_s26.jpg b/datasets/my_dataset/images/train/right/20260820_112741_0301_s26.jpg new file mode 100644 index 0000000..99f4078 Binary files /dev/null and b/datasets/my_dataset/images/train/right/20260820_112741_0301_s26.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0001_s64.jpg b/datasets/phonedata/images/train/20260820_091420_0001_s64.jpg new file mode 100644 index 0000000..8530432 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0001_s64.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0003_s55.jpg b/datasets/phonedata/images/train/20260820_091420_0003_s55.jpg new file mode 100644 index 0000000..7c8a77a Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0003_s55.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0004_s56.jpg b/datasets/phonedata/images/train/20260820_091420_0004_s56.jpg new file mode 100644 index 0000000..b6772ed Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0004_s56.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0005_s58.jpg b/datasets/phonedata/images/train/20260820_091420_0005_s58.jpg new file mode 100644 index 0000000..14e074a Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0005_s58.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0006_s60.jpg b/datasets/phonedata/images/train/20260820_091420_0006_s60.jpg new file mode 100644 index 0000000..3c9f0d5 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0006_s60.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0010_s62.jpg b/datasets/phonedata/images/train/20260820_091420_0010_s62.jpg new file mode 100644 index 0000000..ff09115 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0010_s62.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0011_s62.jpg b/datasets/phonedata/images/train/20260820_091420_0011_s62.jpg new file mode 100644 index 0000000..055daa3 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0011_s62.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0012_s62.jpg b/datasets/phonedata/images/train/20260820_091420_0012_s62.jpg new file mode 100644 index 0000000..d70f68d Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0012_s62.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0013_s61.jpg b/datasets/phonedata/images/train/20260820_091420_0013_s61.jpg new file mode 100644 index 0000000..8e64329 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0013_s61.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0014_s60.jpg b/datasets/phonedata/images/train/20260820_091420_0014_s60.jpg new file mode 100644 index 0000000..8b7f21c Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0014_s60.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0015_s59.jpg b/datasets/phonedata/images/train/20260820_091420_0015_s59.jpg new file mode 100644 index 0000000..2210244 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0015_s59.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0016_s58.jpg b/datasets/phonedata/images/train/20260820_091420_0016_s58.jpg new file mode 100644 index 0000000..d082af4 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0016_s58.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0017_s58.jpg b/datasets/phonedata/images/train/20260820_091420_0017_s58.jpg new file mode 100644 index 0000000..2374553 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0017_s58.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0018_s57.jpg b/datasets/phonedata/images/train/20260820_091420_0018_s57.jpg new file mode 100644 index 0000000..483730c Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0018_s57.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0019_s57.jpg b/datasets/phonedata/images/train/20260820_091420_0019_s57.jpg new file mode 100644 index 0000000..ada7100 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0019_s57.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0020_s56.jpg b/datasets/phonedata/images/train/20260820_091420_0020_s56.jpg new file mode 100644 index 0000000..fa464c0 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0020_s56.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0021_s56.jpg b/datasets/phonedata/images/train/20260820_091420_0021_s56.jpg new file mode 100644 index 0000000..fa38c59 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0021_s56.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0022_s56.jpg b/datasets/phonedata/images/train/20260820_091420_0022_s56.jpg new file mode 100644 index 0000000..1e0cf6c Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0022_s56.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0025_s56.jpg b/datasets/phonedata/images/train/20260820_091420_0025_s56.jpg new file mode 100644 index 0000000..b746a04 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0025_s56.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0026_s56.jpg b/datasets/phonedata/images/train/20260820_091420_0026_s56.jpg new file mode 100644 index 0000000..15eecd3 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0026_s56.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0028_s55.jpg b/datasets/phonedata/images/train/20260820_091420_0028_s55.jpg new file mode 100644 index 0000000..cf2c7e0 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0028_s55.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0030_s55.jpg b/datasets/phonedata/images/train/20260820_091420_0030_s55.jpg new file mode 100644 index 0000000..ad50200 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0030_s55.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0031_s53.jpg b/datasets/phonedata/images/train/20260820_091420_0031_s53.jpg new file mode 100644 index 0000000..e17c4b2 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0031_s53.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0032_s52.jpg b/datasets/phonedata/images/train/20260820_091420_0032_s52.jpg new file mode 100644 index 0000000..82adaf2 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0032_s52.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0033_s54.jpg b/datasets/phonedata/images/train/20260820_091420_0033_s54.jpg new file mode 100644 index 0000000..b99d1b1 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0033_s54.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0034_s53.jpg b/datasets/phonedata/images/train/20260820_091420_0034_s53.jpg new file mode 100644 index 0000000..a355f3d Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0034_s53.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0035_s58.jpg b/datasets/phonedata/images/train/20260820_091420_0035_s58.jpg new file mode 100644 index 0000000..29ae0e3 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0035_s58.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0037_s55.jpg b/datasets/phonedata/images/train/20260820_091420_0037_s55.jpg new file mode 100644 index 0000000..ed13a9f Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0037_s55.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0038_s54.jpg b/datasets/phonedata/images/train/20260820_091420_0038_s54.jpg new file mode 100644 index 0000000..6f05d81 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0038_s54.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0039_s54.jpg b/datasets/phonedata/images/train/20260820_091420_0039_s54.jpg new file mode 100644 index 0000000..1026dba Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0039_s54.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0042_s53.jpg b/datasets/phonedata/images/train/20260820_091420_0042_s53.jpg new file mode 100644 index 0000000..e2be320 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0042_s53.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0043_s53.jpg b/datasets/phonedata/images/train/20260820_091420_0043_s53.jpg new file mode 100644 index 0000000..a69a584 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0043_s53.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0044_s52.jpg b/datasets/phonedata/images/train/20260820_091420_0044_s52.jpg new file mode 100644 index 0000000..668ad82 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0044_s52.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0045_s53.jpg b/datasets/phonedata/images/train/20260820_091420_0045_s53.jpg new file mode 100644 index 0000000..16fe727 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0045_s53.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0046_s52.jpg b/datasets/phonedata/images/train/20260820_091420_0046_s52.jpg new file mode 100644 index 0000000..6d40c9c Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0046_s52.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0047_s53.jpg b/datasets/phonedata/images/train/20260820_091420_0047_s53.jpg new file mode 100644 index 0000000..8ca5708 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0047_s53.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0048_s53.jpg b/datasets/phonedata/images/train/20260820_091420_0048_s53.jpg new file mode 100644 index 0000000..fec3a32 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0048_s53.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0049_s53.jpg b/datasets/phonedata/images/train/20260820_091420_0049_s53.jpg new file mode 100644 index 0000000..a516c4d Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0049_s53.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0050_s53.jpg b/datasets/phonedata/images/train/20260820_091420_0050_s53.jpg new file mode 100644 index 0000000..3462467 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0050_s53.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0052_s53.jpg b/datasets/phonedata/images/train/20260820_091420_0052_s53.jpg new file mode 100644 index 0000000..3f63cc6 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0052_s53.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0053_s54.jpg b/datasets/phonedata/images/train/20260820_091420_0053_s54.jpg new file mode 100644 index 0000000..c3ed2c8 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0053_s54.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0054_s53.jpg b/datasets/phonedata/images/train/20260820_091420_0054_s53.jpg new file mode 100644 index 0000000..0dd8ef3 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0054_s53.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0055_s55.jpg b/datasets/phonedata/images/train/20260820_091420_0055_s55.jpg new file mode 100644 index 0000000..76c4298 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0055_s55.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0059_s56.jpg b/datasets/phonedata/images/train/20260820_091420_0059_s56.jpg new file mode 100644 index 0000000..6d8237c Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0059_s56.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0061_s57.jpg b/datasets/phonedata/images/train/20260820_091420_0061_s57.jpg new file mode 100644 index 0000000..68784b4 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0061_s57.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0062_s57.jpg b/datasets/phonedata/images/train/20260820_091420_0062_s57.jpg new file mode 100644 index 0000000..f0fdf2d Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0062_s57.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0064_s58.jpg b/datasets/phonedata/images/train/20260820_091420_0064_s58.jpg new file mode 100644 index 0000000..07753d2 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0064_s58.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0065_s57.jpg b/datasets/phonedata/images/train/20260820_091420_0065_s57.jpg new file mode 100644 index 0000000..03eca6c Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0065_s57.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0066_s56.jpg b/datasets/phonedata/images/train/20260820_091420_0066_s56.jpg new file mode 100644 index 0000000..653b6b1 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0066_s56.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0067_s57.jpg b/datasets/phonedata/images/train/20260820_091420_0067_s57.jpg new file mode 100644 index 0000000..f5f5945 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0067_s57.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0068_s56.jpg b/datasets/phonedata/images/train/20260820_091420_0068_s56.jpg new file mode 100644 index 0000000..fd5dd29 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0068_s56.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0069_s57.jpg b/datasets/phonedata/images/train/20260820_091420_0069_s57.jpg new file mode 100644 index 0000000..1f5e34a Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0069_s57.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0070_s56.jpg b/datasets/phonedata/images/train/20260820_091420_0070_s56.jpg new file mode 100644 index 0000000..320221f Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0070_s56.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0073_s57.jpg b/datasets/phonedata/images/train/20260820_091420_0073_s57.jpg new file mode 100644 index 0000000..b84a46f Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0073_s57.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0074_s56.jpg b/datasets/phonedata/images/train/20260820_091420_0074_s56.jpg new file mode 100644 index 0000000..81a84c6 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0074_s56.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0075_s57.jpg b/datasets/phonedata/images/train/20260820_091420_0075_s57.jpg new file mode 100644 index 0000000..66267e9 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0075_s57.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0076_s56.jpg b/datasets/phonedata/images/train/20260820_091420_0076_s56.jpg new file mode 100644 index 0000000..2700663 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0076_s56.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0077_s57.jpg b/datasets/phonedata/images/train/20260820_091420_0077_s57.jpg new file mode 100644 index 0000000..5099110 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0077_s57.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0078_s56.jpg b/datasets/phonedata/images/train/20260820_091420_0078_s56.jpg new file mode 100644 index 0000000..d3ae7e7 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0078_s56.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0079_s57.jpg b/datasets/phonedata/images/train/20260820_091420_0079_s57.jpg new file mode 100644 index 0000000..902e7dd Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0079_s57.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0080_s56.jpg b/datasets/phonedata/images/train/20260820_091420_0080_s56.jpg new file mode 100644 index 0000000..dd332dd Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0080_s56.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0081_s58.jpg b/datasets/phonedata/images/train/20260820_091420_0081_s58.jpg new file mode 100644 index 0000000..d29476c Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0081_s58.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0082_s58.jpg b/datasets/phonedata/images/train/20260820_091420_0082_s58.jpg new file mode 100644 index 0000000..2520847 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0082_s58.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0083_s59.jpg b/datasets/phonedata/images/train/20260820_091420_0083_s59.jpg new file mode 100644 index 0000000..a4ccfeb Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0083_s59.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0084_s58.jpg b/datasets/phonedata/images/train/20260820_091420_0084_s58.jpg new file mode 100644 index 0000000..cb4d0a6 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0084_s58.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0085_s58.jpg b/datasets/phonedata/images/train/20260820_091420_0085_s58.jpg new file mode 100644 index 0000000..4a3b279 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0085_s58.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0086_s57.jpg b/datasets/phonedata/images/train/20260820_091420_0086_s57.jpg new file mode 100644 index 0000000..5cd7be2 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0086_s57.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0089_s56.jpg b/datasets/phonedata/images/train/20260820_091420_0089_s56.jpg new file mode 100644 index 0000000..fb4854f Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0089_s56.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0090_s55.jpg b/datasets/phonedata/images/train/20260820_091420_0090_s55.jpg new file mode 100644 index 0000000..57d6149 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0090_s55.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0091_s55.jpg b/datasets/phonedata/images/train/20260820_091420_0091_s55.jpg new file mode 100644 index 0000000..5b3065b Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0091_s55.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0092_s54.jpg b/datasets/phonedata/images/train/20260820_091420_0092_s54.jpg new file mode 100644 index 0000000..0882f7c Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0092_s54.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0093_s55.jpg b/datasets/phonedata/images/train/20260820_091420_0093_s55.jpg new file mode 100644 index 0000000..d4d2e0e Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0093_s55.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0094_s54.jpg b/datasets/phonedata/images/train/20260820_091420_0094_s54.jpg new file mode 100644 index 0000000..b503285 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0094_s54.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0095_s54.jpg b/datasets/phonedata/images/train/20260820_091420_0095_s54.jpg new file mode 100644 index 0000000..924e936 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0095_s54.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0096_s54.jpg b/datasets/phonedata/images/train/20260820_091420_0096_s54.jpg new file mode 100644 index 0000000..cc122a9 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0096_s54.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0097_s54.jpg b/datasets/phonedata/images/train/20260820_091420_0097_s54.jpg new file mode 100644 index 0000000..ed02b53 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0097_s54.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0098_s53.jpg b/datasets/phonedata/images/train/20260820_091420_0098_s53.jpg new file mode 100644 index 0000000..53da1ee Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0098_s53.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0099_s54.jpg b/datasets/phonedata/images/train/20260820_091420_0099_s54.jpg new file mode 100644 index 0000000..c2ee4d2 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0099_s54.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0100_s53.jpg b/datasets/phonedata/images/train/20260820_091420_0100_s53.jpg new file mode 100644 index 0000000..574f587 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0100_s53.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0101_s53.jpg b/datasets/phonedata/images/train/20260820_091420_0101_s53.jpg new file mode 100644 index 0000000..025df6d Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0101_s53.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0102_s53.jpg b/datasets/phonedata/images/train/20260820_091420_0102_s53.jpg new file mode 100644 index 0000000..69bb6e2 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0102_s53.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0103_s53.jpg b/datasets/phonedata/images/train/20260820_091420_0103_s53.jpg new file mode 100644 index 0000000..ebd0869 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0103_s53.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0104_s52.jpg b/datasets/phonedata/images/train/20260820_091420_0104_s52.jpg new file mode 100644 index 0000000..a2c94dc Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0104_s52.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0105_s52.jpg b/datasets/phonedata/images/train/20260820_091420_0105_s52.jpg new file mode 100644 index 0000000..86cd873 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0105_s52.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0106_s51.jpg b/datasets/phonedata/images/train/20260820_091420_0106_s51.jpg new file mode 100644 index 0000000..44af14a Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0106_s51.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0107_s51.jpg b/datasets/phonedata/images/train/20260820_091420_0107_s51.jpg new file mode 100644 index 0000000..817f4b4 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0107_s51.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0110_s50.jpg b/datasets/phonedata/images/train/20260820_091420_0110_s50.jpg new file mode 100644 index 0000000..c337478 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0110_s50.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0111_s51.jpg b/datasets/phonedata/images/train/20260820_091420_0111_s51.jpg new file mode 100644 index 0000000..32767b6 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0111_s51.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0112_s50.jpg b/datasets/phonedata/images/train/20260820_091420_0112_s50.jpg new file mode 100644 index 0000000..fd07e5d Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0112_s50.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0113_s52.jpg b/datasets/phonedata/images/train/20260820_091420_0113_s52.jpg new file mode 100644 index 0000000..01a9174 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0113_s52.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0114_s51.jpg b/datasets/phonedata/images/train/20260820_091420_0114_s51.jpg new file mode 100644 index 0000000..faa1cf2 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0114_s51.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0116_s52.jpg b/datasets/phonedata/images/train/20260820_091420_0116_s52.jpg new file mode 100644 index 0000000..9364988 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0116_s52.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0117_s53.jpg b/datasets/phonedata/images/train/20260820_091420_0117_s53.jpg new file mode 100644 index 0000000..9f267d5 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0117_s53.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0118_s53.jpg b/datasets/phonedata/images/train/20260820_091420_0118_s53.jpg new file mode 100644 index 0000000..1d7d70c Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0118_s53.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0119_s54.jpg b/datasets/phonedata/images/train/20260820_091420_0119_s54.jpg new file mode 100644 index 0000000..206f995 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0119_s54.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0120_s53.jpg b/datasets/phonedata/images/train/20260820_091420_0120_s53.jpg new file mode 100644 index 0000000..427fa86 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0120_s53.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0121_s53.jpg b/datasets/phonedata/images/train/20260820_091420_0121_s53.jpg new file mode 100644 index 0000000..99fe410 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0121_s53.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0122_s53.jpg b/datasets/phonedata/images/train/20260820_091420_0122_s53.jpg new file mode 100644 index 0000000..5727e34 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0122_s53.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0123_s53.jpg b/datasets/phonedata/images/train/20260820_091420_0123_s53.jpg new file mode 100644 index 0000000..dbc695c Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0123_s53.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0124_s52.jpg b/datasets/phonedata/images/train/20260820_091420_0124_s52.jpg new file mode 100644 index 0000000..f45db8b Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0124_s52.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0125_s53.jpg b/datasets/phonedata/images/train/20260820_091420_0125_s53.jpg new file mode 100644 index 0000000..2915d21 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0125_s53.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0126_s52.jpg b/datasets/phonedata/images/train/20260820_091420_0126_s52.jpg new file mode 100644 index 0000000..0ee5070 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0126_s52.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0127_s53.jpg b/datasets/phonedata/images/train/20260820_091420_0127_s53.jpg new file mode 100644 index 0000000..fc7706a Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0127_s53.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0128_s53.jpg b/datasets/phonedata/images/train/20260820_091420_0128_s53.jpg new file mode 100644 index 0000000..55ccfb4 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0128_s53.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0129_s54.jpg b/datasets/phonedata/images/train/20260820_091420_0129_s54.jpg new file mode 100644 index 0000000..0b29158 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0129_s54.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0131_s54.jpg b/datasets/phonedata/images/train/20260820_091420_0131_s54.jpg new file mode 100644 index 0000000..1dde983 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0131_s54.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0132_s53.jpg b/datasets/phonedata/images/train/20260820_091420_0132_s53.jpg new file mode 100644 index 0000000..7e68718 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0132_s53.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0133_s54.jpg b/datasets/phonedata/images/train/20260820_091420_0133_s54.jpg new file mode 100644 index 0000000..dd0a918 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0133_s54.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0134_s53.jpg b/datasets/phonedata/images/train/20260820_091420_0134_s53.jpg new file mode 100644 index 0000000..d9d4283 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0134_s53.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0135_s54.jpg b/datasets/phonedata/images/train/20260820_091420_0135_s54.jpg new file mode 100644 index 0000000..608ae9e Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0135_s54.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0136_s53.jpg b/datasets/phonedata/images/train/20260820_091420_0136_s53.jpg new file mode 100644 index 0000000..5b268c6 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0136_s53.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0137_s55.jpg b/datasets/phonedata/images/train/20260820_091420_0137_s55.jpg new file mode 100644 index 0000000..bc93976 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0137_s55.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0138_s54.jpg b/datasets/phonedata/images/train/20260820_091420_0138_s54.jpg new file mode 100644 index 0000000..91e4b5b Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0138_s54.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0139_s54.jpg b/datasets/phonedata/images/train/20260820_091420_0139_s54.jpg new file mode 100644 index 0000000..70dcf8a Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0139_s54.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0141_s54.jpg b/datasets/phonedata/images/train/20260820_091420_0141_s54.jpg new file mode 100644 index 0000000..ce9585d Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0141_s54.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0142_s53.jpg b/datasets/phonedata/images/train/20260820_091420_0142_s53.jpg new file mode 100644 index 0000000..0f7270e Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0142_s53.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0143_s54.jpg b/datasets/phonedata/images/train/20260820_091420_0143_s54.jpg new file mode 100644 index 0000000..6c6a859 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0143_s54.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0145_s54.jpg b/datasets/phonedata/images/train/20260820_091420_0145_s54.jpg new file mode 100644 index 0000000..83d4b8c Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0145_s54.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0146_s53.jpg b/datasets/phonedata/images/train/20260820_091420_0146_s53.jpg new file mode 100644 index 0000000..fc903e9 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0146_s53.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0147_s56.jpg b/datasets/phonedata/images/train/20260820_091420_0147_s56.jpg new file mode 100644 index 0000000..df82436 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0147_s56.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0148_s65.jpg b/datasets/phonedata/images/train/20260820_091420_0148_s65.jpg new file mode 100644 index 0000000..7817d50 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0148_s65.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0149_s66.jpg b/datasets/phonedata/images/train/20260820_091420_0149_s66.jpg new file mode 100644 index 0000000..86414de Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0149_s66.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0150_s65.jpg b/datasets/phonedata/images/train/20260820_091420_0150_s65.jpg new file mode 100644 index 0000000..a89ae9d Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0150_s65.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0153_s63.jpg b/datasets/phonedata/images/train/20260820_091420_0153_s63.jpg new file mode 100644 index 0000000..b7e7531 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0153_s63.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0154_s63.jpg b/datasets/phonedata/images/train/20260820_091420_0154_s63.jpg new file mode 100644 index 0000000..b1b576d Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0154_s63.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0156_s59.jpg b/datasets/phonedata/images/train/20260820_091420_0156_s59.jpg new file mode 100644 index 0000000..d0d0d2a Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0156_s59.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0157_s61.jpg b/datasets/phonedata/images/train/20260820_091420_0157_s61.jpg new file mode 100644 index 0000000..7a9c505 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0157_s61.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0158_s61.jpg b/datasets/phonedata/images/train/20260820_091420_0158_s61.jpg new file mode 100644 index 0000000..9cc8c40 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0158_s61.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0159_s63.jpg b/datasets/phonedata/images/train/20260820_091420_0159_s63.jpg new file mode 100644 index 0000000..4674e90 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0159_s63.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0160_s62.jpg b/datasets/phonedata/images/train/20260820_091420_0160_s62.jpg new file mode 100644 index 0000000..0835aba Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0160_s62.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0161_s65.jpg b/datasets/phonedata/images/train/20260820_091420_0161_s65.jpg new file mode 100644 index 0000000..1f1d1c8 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0161_s65.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0162_s65.jpg b/datasets/phonedata/images/train/20260820_091420_0162_s65.jpg new file mode 100644 index 0000000..55ccad5 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0162_s65.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0163_s65.jpg b/datasets/phonedata/images/train/20260820_091420_0163_s65.jpg new file mode 100644 index 0000000..36d353e Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0163_s65.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0165_s67.jpg b/datasets/phonedata/images/train/20260820_091420_0165_s67.jpg new file mode 100644 index 0000000..31953fb Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0165_s67.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0166_s67.jpg b/datasets/phonedata/images/train/20260820_091420_0166_s67.jpg new file mode 100644 index 0000000..b68d74e Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0166_s67.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0168_s70.jpg b/datasets/phonedata/images/train/20260820_091420_0168_s70.jpg new file mode 100644 index 0000000..af53bfd Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0168_s70.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0169_s71.jpg b/datasets/phonedata/images/train/20260820_091420_0169_s71.jpg new file mode 100644 index 0000000..488383a Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0169_s71.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0170_s71.jpg b/datasets/phonedata/images/train/20260820_091420_0170_s71.jpg new file mode 100644 index 0000000..8e66eb2 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0170_s71.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0171_s71.jpg b/datasets/phonedata/images/train/20260820_091420_0171_s71.jpg new file mode 100644 index 0000000..99eb931 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0171_s71.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0172_s70.jpg b/datasets/phonedata/images/train/20260820_091420_0172_s70.jpg new file mode 100644 index 0000000..6cb4d6f Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0172_s70.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0173_s70.jpg b/datasets/phonedata/images/train/20260820_091420_0173_s70.jpg new file mode 100644 index 0000000..d4b58ae Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0173_s70.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0175_s73.jpg b/datasets/phonedata/images/train/20260820_091420_0175_s73.jpg new file mode 100644 index 0000000..14f8893 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0175_s73.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0176_s72.jpg b/datasets/phonedata/images/train/20260820_091420_0176_s72.jpg new file mode 100644 index 0000000..2379ce4 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0176_s72.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0177_s70.jpg b/datasets/phonedata/images/train/20260820_091420_0177_s70.jpg new file mode 100644 index 0000000..0f14707 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0177_s70.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0178_s69.jpg b/datasets/phonedata/images/train/20260820_091420_0178_s69.jpg new file mode 100644 index 0000000..ab00c66 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0178_s69.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0179_s70.jpg b/datasets/phonedata/images/train/20260820_091420_0179_s70.jpg new file mode 100644 index 0000000..3142db3 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0179_s70.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0182_s70.jpg b/datasets/phonedata/images/train/20260820_091420_0182_s70.jpg new file mode 100644 index 0000000..8aad46a Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0182_s70.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0183_s69.jpg b/datasets/phonedata/images/train/20260820_091420_0183_s69.jpg new file mode 100644 index 0000000..ab1a6cf Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0183_s69.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0185_s66.jpg b/datasets/phonedata/images/train/20260820_091420_0185_s66.jpg new file mode 100644 index 0000000..877164e Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0185_s66.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0186_s65.jpg b/datasets/phonedata/images/train/20260820_091420_0186_s65.jpg new file mode 100644 index 0000000..4343033 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0186_s65.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0187_s63.jpg b/datasets/phonedata/images/train/20260820_091420_0187_s63.jpg new file mode 100644 index 0000000..3f2dd04 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0187_s63.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0188_s62.jpg b/datasets/phonedata/images/train/20260820_091420_0188_s62.jpg new file mode 100644 index 0000000..37b20ef Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0188_s62.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0191_s61.jpg b/datasets/phonedata/images/train/20260820_091420_0191_s61.jpg new file mode 100644 index 0000000..608a0db Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0191_s61.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0192_s60.jpg b/datasets/phonedata/images/train/20260820_091420_0192_s60.jpg new file mode 100644 index 0000000..d050cfb Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0192_s60.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0193_s60.jpg b/datasets/phonedata/images/train/20260820_091420_0193_s60.jpg new file mode 100644 index 0000000..061057f Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0193_s60.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0194_s60.jpg b/datasets/phonedata/images/train/20260820_091420_0194_s60.jpg new file mode 100644 index 0000000..38d0684 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0194_s60.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0195_s60.jpg b/datasets/phonedata/images/train/20260820_091420_0195_s60.jpg new file mode 100644 index 0000000..ab71df1 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0195_s60.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0197_s60.jpg b/datasets/phonedata/images/train/20260820_091420_0197_s60.jpg new file mode 100644 index 0000000..612330f Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0197_s60.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0198_s60.jpg b/datasets/phonedata/images/train/20260820_091420_0198_s60.jpg new file mode 100644 index 0000000..c357501 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0198_s60.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0199_s60.jpg b/datasets/phonedata/images/train/20260820_091420_0199_s60.jpg new file mode 100644 index 0000000..790fa80 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0199_s60.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0201_s59.jpg b/datasets/phonedata/images/train/20260820_091420_0201_s59.jpg new file mode 100644 index 0000000..da4a61b Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0201_s59.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0202_s58.jpg b/datasets/phonedata/images/train/20260820_091420_0202_s58.jpg new file mode 100644 index 0000000..2166af2 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0202_s58.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0204_s58.jpg b/datasets/phonedata/images/train/20260820_091420_0204_s58.jpg new file mode 100644 index 0000000..7cd26dd Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0204_s58.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0205_s58.jpg b/datasets/phonedata/images/train/20260820_091420_0205_s58.jpg new file mode 100644 index 0000000..ba3d1cf Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0205_s58.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0206_s58.jpg b/datasets/phonedata/images/train/20260820_091420_0206_s58.jpg new file mode 100644 index 0000000..0d7ff76 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0206_s58.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0207_s59.jpg b/datasets/phonedata/images/train/20260820_091420_0207_s59.jpg new file mode 100644 index 0000000..b452ce0 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0207_s59.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0208_s58.jpg b/datasets/phonedata/images/train/20260820_091420_0208_s58.jpg new file mode 100644 index 0000000..b139d70 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0208_s58.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0209_s61.jpg b/datasets/phonedata/images/train/20260820_091420_0209_s61.jpg new file mode 100644 index 0000000..3ba9341 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0209_s61.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0210_s61.jpg b/datasets/phonedata/images/train/20260820_091420_0210_s61.jpg new file mode 100644 index 0000000..b189d20 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0210_s61.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0211_s63.jpg b/datasets/phonedata/images/train/20260820_091420_0211_s63.jpg new file mode 100644 index 0000000..8911844 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0211_s63.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0214_s63.jpg b/datasets/phonedata/images/train/20260820_091420_0214_s63.jpg new file mode 100644 index 0000000..cb43f87 Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0214_s63.jpg differ diff --git a/datasets/phonedata/images/train/20260820_091420_0215_s61.jpg b/datasets/phonedata/images/train/20260820_091420_0215_s61.jpg new file mode 100644 index 0000000..a84dffb Binary files /dev/null and b/datasets/phonedata/images/train/20260820_091420_0215_s61.jpg differ diff --git a/datasets/phonedata/images/val/20260820_091420_0002_s56.jpg b/datasets/phonedata/images/val/20260820_091420_0002_s56.jpg new file mode 100644 index 0000000..0591136 Binary files /dev/null and b/datasets/phonedata/images/val/20260820_091420_0002_s56.jpg differ diff --git a/datasets/phonedata/images/val/20260820_091420_0007_s63.jpg b/datasets/phonedata/images/val/20260820_091420_0007_s63.jpg new file mode 100644 index 0000000..3fe4f66 Binary files /dev/null and b/datasets/phonedata/images/val/20260820_091420_0007_s63.jpg differ diff --git a/datasets/phonedata/images/val/20260820_091420_0008_s63.jpg b/datasets/phonedata/images/val/20260820_091420_0008_s63.jpg new file mode 100644 index 0000000..65fa5cc Binary files /dev/null and b/datasets/phonedata/images/val/20260820_091420_0008_s63.jpg differ diff --git a/datasets/phonedata/images/val/20260820_091420_0009_s62.jpg b/datasets/phonedata/images/val/20260820_091420_0009_s62.jpg new file mode 100644 index 0000000..a5dea0b Binary files /dev/null and b/datasets/phonedata/images/val/20260820_091420_0009_s62.jpg differ diff --git a/datasets/phonedata/images/val/20260820_091420_0023_s56.jpg b/datasets/phonedata/images/val/20260820_091420_0023_s56.jpg new file mode 100644 index 0000000..45927a2 Binary files /dev/null and b/datasets/phonedata/images/val/20260820_091420_0023_s56.jpg differ diff --git a/datasets/phonedata/images/val/20260820_091420_0024_s56.jpg b/datasets/phonedata/images/val/20260820_091420_0024_s56.jpg new file mode 100644 index 0000000..334c115 Binary files /dev/null and b/datasets/phonedata/images/val/20260820_091420_0024_s56.jpg differ diff --git a/datasets/phonedata/images/val/20260820_091420_0027_s56.jpg b/datasets/phonedata/images/val/20260820_091420_0027_s56.jpg new file mode 100644 index 0000000..f08850a Binary files /dev/null and b/datasets/phonedata/images/val/20260820_091420_0027_s56.jpg differ diff --git a/datasets/phonedata/images/val/20260820_091420_0029_s55.jpg b/datasets/phonedata/images/val/20260820_091420_0029_s55.jpg new file mode 100644 index 0000000..038bb6f Binary files /dev/null and b/datasets/phonedata/images/val/20260820_091420_0029_s55.jpg differ diff --git a/datasets/phonedata/images/val/20260820_091420_0036_s58.jpg b/datasets/phonedata/images/val/20260820_091420_0036_s58.jpg new file mode 100644 index 0000000..ea13db5 Binary files /dev/null and b/datasets/phonedata/images/val/20260820_091420_0036_s58.jpg differ diff --git a/datasets/phonedata/images/val/20260820_091420_0040_s53.jpg b/datasets/phonedata/images/val/20260820_091420_0040_s53.jpg new file mode 100644 index 0000000..3082319 Binary files /dev/null and b/datasets/phonedata/images/val/20260820_091420_0040_s53.jpg differ diff --git a/datasets/phonedata/images/val/20260820_091420_0041_s54.jpg b/datasets/phonedata/images/val/20260820_091420_0041_s54.jpg new file mode 100644 index 0000000..aa8df77 Binary files /dev/null and b/datasets/phonedata/images/val/20260820_091420_0041_s54.jpg differ diff --git a/datasets/phonedata/images/val/20260820_091420_0051_s54.jpg b/datasets/phonedata/images/val/20260820_091420_0051_s54.jpg new file mode 100644 index 0000000..ce35c1a Binary files /dev/null and b/datasets/phonedata/images/val/20260820_091420_0051_s54.jpg differ diff --git a/datasets/phonedata/images/val/20260820_091420_0056_s54.jpg b/datasets/phonedata/images/val/20260820_091420_0056_s54.jpg new file mode 100644 index 0000000..0e88fc3 Binary files /dev/null and b/datasets/phonedata/images/val/20260820_091420_0056_s54.jpg differ diff --git a/datasets/phonedata/images/val/20260820_091420_0057_s55.jpg b/datasets/phonedata/images/val/20260820_091420_0057_s55.jpg new file mode 100644 index 0000000..d193d8c Binary files /dev/null and b/datasets/phonedata/images/val/20260820_091420_0057_s55.jpg differ diff --git a/datasets/phonedata/images/val/20260820_091420_0058_s54.jpg b/datasets/phonedata/images/val/20260820_091420_0058_s54.jpg new file mode 100644 index 0000000..3221be5 Binary files /dev/null and b/datasets/phonedata/images/val/20260820_091420_0058_s54.jpg differ diff --git a/datasets/phonedata/images/val/20260820_091420_0060_s55.jpg b/datasets/phonedata/images/val/20260820_091420_0060_s55.jpg new file mode 100644 index 0000000..edb1d55 Binary files /dev/null and b/datasets/phonedata/images/val/20260820_091420_0060_s55.jpg differ diff --git a/datasets/phonedata/images/val/20260820_091420_0063_s58.jpg b/datasets/phonedata/images/val/20260820_091420_0063_s58.jpg new file mode 100644 index 0000000..a0a7128 Binary files /dev/null and b/datasets/phonedata/images/val/20260820_091420_0063_s58.jpg differ diff --git a/datasets/phonedata/images/val/20260820_091420_0071_s57.jpg b/datasets/phonedata/images/val/20260820_091420_0071_s57.jpg new file mode 100644 index 0000000..bb6125b Binary files /dev/null and b/datasets/phonedata/images/val/20260820_091420_0071_s57.jpg differ diff --git a/datasets/phonedata/images/val/20260820_091420_0072_s55.jpg b/datasets/phonedata/images/val/20260820_091420_0072_s55.jpg new file mode 100644 index 0000000..170e245 Binary files /dev/null and b/datasets/phonedata/images/val/20260820_091420_0072_s55.jpg differ diff --git a/datasets/phonedata/images/val/20260820_091420_0087_s57.jpg b/datasets/phonedata/images/val/20260820_091420_0087_s57.jpg new file mode 100644 index 0000000..af2cb37 Binary files /dev/null and b/datasets/phonedata/images/val/20260820_091420_0087_s57.jpg differ diff --git a/datasets/phonedata/images/val/20260820_091420_0088_s56.jpg b/datasets/phonedata/images/val/20260820_091420_0088_s56.jpg new file mode 100644 index 0000000..69922d2 Binary files /dev/null and b/datasets/phonedata/images/val/20260820_091420_0088_s56.jpg differ diff --git a/datasets/phonedata/images/val/20260820_091420_0108_s51.jpg b/datasets/phonedata/images/val/20260820_091420_0108_s51.jpg new file mode 100644 index 0000000..81ca0cf Binary files /dev/null and b/datasets/phonedata/images/val/20260820_091420_0108_s51.jpg differ diff --git a/datasets/phonedata/images/val/20260820_091420_0109_s51.jpg b/datasets/phonedata/images/val/20260820_091420_0109_s51.jpg new file mode 100644 index 0000000..6140d1c Binary files /dev/null and b/datasets/phonedata/images/val/20260820_091420_0109_s51.jpg differ diff --git a/datasets/phonedata/images/val/20260820_091420_0115_s53.jpg b/datasets/phonedata/images/val/20260820_091420_0115_s53.jpg new file mode 100644 index 0000000..238cd66 Binary files /dev/null and b/datasets/phonedata/images/val/20260820_091420_0115_s53.jpg differ diff --git a/datasets/phonedata/images/val/20260820_091420_0130_s52.jpg b/datasets/phonedata/images/val/20260820_091420_0130_s52.jpg new file mode 100644 index 0000000..6299bac Binary files /dev/null and b/datasets/phonedata/images/val/20260820_091420_0130_s52.jpg differ diff --git a/datasets/phonedata/images/val/20260820_091420_0140_s54.jpg b/datasets/phonedata/images/val/20260820_091420_0140_s54.jpg new file mode 100644 index 0000000..8ddad9a Binary files /dev/null and b/datasets/phonedata/images/val/20260820_091420_0140_s54.jpg differ diff --git a/datasets/phonedata/images/val/20260820_091420_0144_s53.jpg b/datasets/phonedata/images/val/20260820_091420_0144_s53.jpg new file mode 100644 index 0000000..386529d Binary files /dev/null and b/datasets/phonedata/images/val/20260820_091420_0144_s53.jpg differ diff --git a/datasets/phonedata/images/val/20260820_091420_0151_s66.jpg b/datasets/phonedata/images/val/20260820_091420_0151_s66.jpg new file mode 100644 index 0000000..4cb372a Binary files /dev/null and b/datasets/phonedata/images/val/20260820_091420_0151_s66.jpg differ diff --git a/datasets/phonedata/images/val/20260820_091420_0152_s64.jpg b/datasets/phonedata/images/val/20260820_091420_0152_s64.jpg new file mode 100644 index 0000000..47ca24f Binary files /dev/null and b/datasets/phonedata/images/val/20260820_091420_0152_s64.jpg differ diff --git a/datasets/phonedata/images/val/20260820_091420_0155_s60.jpg b/datasets/phonedata/images/val/20260820_091420_0155_s60.jpg new file mode 100644 index 0000000..2a5456b Binary files /dev/null and b/datasets/phonedata/images/val/20260820_091420_0155_s60.jpg differ diff --git a/datasets/phonedata/images/val/20260820_091420_0164_s65.jpg b/datasets/phonedata/images/val/20260820_091420_0164_s65.jpg new file mode 100644 index 0000000..0a84bac Binary files /dev/null and b/datasets/phonedata/images/val/20260820_091420_0164_s65.jpg differ diff --git a/datasets/phonedata/images/val/20260820_091420_0167_s69.jpg b/datasets/phonedata/images/val/20260820_091420_0167_s69.jpg new file mode 100644 index 0000000..db2faf7 Binary files /dev/null and b/datasets/phonedata/images/val/20260820_091420_0167_s69.jpg differ diff --git a/datasets/phonedata/images/val/20260820_091420_0174_s72.jpg b/datasets/phonedata/images/val/20260820_091420_0174_s72.jpg new file mode 100644 index 0000000..011c82b Binary files /dev/null and b/datasets/phonedata/images/val/20260820_091420_0174_s72.jpg differ diff --git a/datasets/phonedata/images/val/20260820_091420_0180_s70.jpg b/datasets/phonedata/images/val/20260820_091420_0180_s70.jpg new file mode 100644 index 0000000..c2e70b7 Binary files /dev/null and b/datasets/phonedata/images/val/20260820_091420_0180_s70.jpg differ diff --git a/datasets/phonedata/images/val/20260820_091420_0181_s70.jpg b/datasets/phonedata/images/val/20260820_091420_0181_s70.jpg new file mode 100644 index 0000000..a061a46 Binary files /dev/null and b/datasets/phonedata/images/val/20260820_091420_0181_s70.jpg differ diff --git a/datasets/phonedata/images/val/20260820_091420_0184_s67.jpg b/datasets/phonedata/images/val/20260820_091420_0184_s67.jpg new file mode 100644 index 0000000..6b525e4 Binary files /dev/null and b/datasets/phonedata/images/val/20260820_091420_0184_s67.jpg differ diff --git a/datasets/phonedata/images/val/20260820_091420_0189_s62.jpg b/datasets/phonedata/images/val/20260820_091420_0189_s62.jpg new file mode 100644 index 0000000..fabcd47 Binary files /dev/null and b/datasets/phonedata/images/val/20260820_091420_0189_s62.jpg differ diff --git a/datasets/phonedata/images/val/20260820_091420_0190_s62.jpg b/datasets/phonedata/images/val/20260820_091420_0190_s62.jpg new file mode 100644 index 0000000..b11c6cc Binary files /dev/null and b/datasets/phonedata/images/val/20260820_091420_0190_s62.jpg differ diff --git a/datasets/phonedata/images/val/20260820_091420_0196_s60.jpg b/datasets/phonedata/images/val/20260820_091420_0196_s60.jpg new file mode 100644 index 0000000..1484365 Binary files /dev/null and b/datasets/phonedata/images/val/20260820_091420_0196_s60.jpg differ diff --git a/datasets/phonedata/images/val/20260820_091420_0200_s60.jpg b/datasets/phonedata/images/val/20260820_091420_0200_s60.jpg new file mode 100644 index 0000000..2b65549 Binary files /dev/null and b/datasets/phonedata/images/val/20260820_091420_0200_s60.jpg differ diff --git a/datasets/phonedata/images/val/20260820_091420_0203_s58.jpg b/datasets/phonedata/images/val/20260820_091420_0203_s58.jpg new file mode 100644 index 0000000..8a0d98a Binary files /dev/null and b/datasets/phonedata/images/val/20260820_091420_0203_s58.jpg differ diff --git a/datasets/phonedata/images/val/20260820_091420_0212_s62.jpg b/datasets/phonedata/images/val/20260820_091420_0212_s62.jpg new file mode 100644 index 0000000..8d39d43 Binary files /dev/null and b/datasets/phonedata/images/val/20260820_091420_0212_s62.jpg differ diff --git a/datasets/phonedata/images/val/20260820_091420_0213_s64.jpg b/datasets/phonedata/images/val/20260820_091420_0213_s64.jpg new file mode 100644 index 0000000..8c6a766 Binary files /dev/null and b/datasets/phonedata/images/val/20260820_091420_0213_s64.jpg differ diff --git a/datasets/phonedata/labels/train.cache b/datasets/phonedata/labels/train.cache new file mode 100644 index 0000000..b050eaa Binary files /dev/null and b/datasets/phonedata/labels/train.cache differ diff --git a/datasets/phonedata/labels/train/20260820_091420_0001_s64.txt b/datasets/phonedata/labels/train/20260820_091420_0001_s64.txt new file mode 100644 index 0000000..b154cf1 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0001_s64.txt @@ -0,0 +1 @@ +0 0.540496 0.618313 0.211641 0.205658 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0003_s55.txt b/datasets/phonedata/labels/train/20260820_091420_0003_s55.txt new file mode 100644 index 0000000..083f826 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0003_s55.txt @@ -0,0 +1 @@ +0 0.540444 0.617606 0.211727 0.206644 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0004_s56.txt b/datasets/phonedata/labels/train/20260820_091420_0004_s56.txt new file mode 100644 index 0000000..855c747 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0004_s56.txt @@ -0,0 +1 @@ +0 0.540606 0.617639 0.211613 0.205758 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0005_s58.txt b/datasets/phonedata/labels/train/20260820_091420_0005_s58.txt new file mode 100644 index 0000000..099b8f0 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0005_s58.txt @@ -0,0 +1 @@ +0 0.540471 0.617738 0.211732 0.206555 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0006_s60.txt b/datasets/phonedata/labels/train/20260820_091420_0006_s60.txt new file mode 100644 index 0000000..8b1d88a --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0006_s60.txt @@ -0,0 +1 @@ +0 0.540502 0.618015 0.211550 0.204357 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0010_s62.txt b/datasets/phonedata/labels/train/20260820_091420_0010_s62.txt new file mode 100644 index 0000000..0666afe --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0010_s62.txt @@ -0,0 +1 @@ +0 0.539130 0.598649 0.209047 0.166868 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0011_s62.txt b/datasets/phonedata/labels/train/20260820_091420_0011_s62.txt new file mode 100644 index 0000000..f1b3b42 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0011_s62.txt @@ -0,0 +1 @@ +0 0.537788 0.596507 0.208931 0.190657 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0012_s62.txt b/datasets/phonedata/labels/train/20260820_091420_0012_s62.txt new file mode 100644 index 0000000..02bfede --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0012_s62.txt @@ -0,0 +1 @@ +0 0.537399 0.595351 0.207990 0.192524 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0013_s61.txt b/datasets/phonedata/labels/train/20260820_091420_0013_s61.txt new file mode 100644 index 0000000..6bdc4a8 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0013_s61.txt @@ -0,0 +1 @@ +0 0.533619 0.587123 0.202990 0.212063 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0014_s60.txt b/datasets/phonedata/labels/train/20260820_091420_0014_s60.txt new file mode 100644 index 0000000..ecf00e5 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0014_s60.txt @@ -0,0 +1 @@ +0 0.533291 0.586494 0.202050 0.213310 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0015_s59.txt b/datasets/phonedata/labels/train/20260820_091420_0015_s59.txt new file mode 100644 index 0000000..85c8694 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0015_s59.txt @@ -0,0 +1 @@ +0 0.530108 0.593128 0.192606 0.250375 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0016_s58.txt b/datasets/phonedata/labels/train/20260820_091420_0016_s58.txt new file mode 100644 index 0000000..db395f6 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0016_s58.txt @@ -0,0 +1 @@ +0 0.530118 0.593200 0.191961 0.251689 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0017_s58.txt b/datasets/phonedata/labels/train/20260820_091420_0017_s58.txt new file mode 100644 index 0000000..ead255c --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0017_s58.txt @@ -0,0 +1 @@ +0 0.528176 0.597205 0.171917 0.277225 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0018_s57.txt b/datasets/phonedata/labels/train/20260820_091420_0018_s57.txt new file mode 100644 index 0000000..a3bd669 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0018_s57.txt @@ -0,0 +1 @@ +0 0.528134 0.597339 0.170343 0.277559 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0019_s57.txt b/datasets/phonedata/labels/train/20260820_091420_0019_s57.txt new file mode 100644 index 0000000..f5cc311 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0019_s57.txt @@ -0,0 +1 @@ +0 0.529505 0.601740 0.147911 0.288603 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0020_s56.txt b/datasets/phonedata/labels/train/20260820_091420_0020_s56.txt new file mode 100644 index 0000000..f27dd78 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0020_s56.txt @@ -0,0 +1 @@ +0 0.530064 0.603066 0.139715 0.291214 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0021_s56.txt b/datasets/phonedata/labels/train/20260820_091420_0021_s56.txt new file mode 100644 index 0000000..c1f43ad --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0021_s56.txt @@ -0,0 +1 @@ +0 0.528478 0.604367 0.119082 0.295533 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0022_s56.txt b/datasets/phonedata/labels/train/20260820_091420_0022_s56.txt new file mode 100644 index 0000000..8f740b6 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0022_s56.txt @@ -0,0 +1 @@ +0 0.528298 0.604021 0.117154 0.299559 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0025_s56.txt b/datasets/phonedata/labels/train/20260820_091420_0025_s56.txt new file mode 100644 index 0000000..8cb837b --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0025_s56.txt @@ -0,0 +1 @@ +0 0.530297 0.557982 0.114321 0.261957 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0026_s56.txt b/datasets/phonedata/labels/train/20260820_091420_0026_s56.txt new file mode 100644 index 0000000..c833f24 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0026_s56.txt @@ -0,0 +1 @@ +0 0.530196 0.557266 0.114255 0.263693 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0028_s55.txt b/datasets/phonedata/labels/train/20260820_091420_0028_s55.txt new file mode 100644 index 0000000..cf174a7 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0028_s55.txt @@ -0,0 +1 @@ +0 0.535337 0.559270 0.105897 0.304948 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0030_s55.txt b/datasets/phonedata/labels/train/20260820_091420_0030_s55.txt new file mode 100644 index 0000000..d29b647 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0030_s55.txt @@ -0,0 +1 @@ +0 0.533945 0.571538 0.108500 0.334249 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0031_s53.txt b/datasets/phonedata/labels/train/20260820_091420_0031_s53.txt new file mode 100644 index 0000000..744faa8 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0031_s53.txt @@ -0,0 +1 @@ +0 0.532654 0.577007 0.110741 0.345786 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0032_s52.txt b/datasets/phonedata/labels/train/20260820_091420_0032_s52.txt new file mode 100644 index 0000000..fb3224c --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0032_s52.txt @@ -0,0 +1 @@ +0 0.531995 0.574863 0.118944 0.352204 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0033_s54.txt b/datasets/phonedata/labels/train/20260820_091420_0033_s54.txt new file mode 100644 index 0000000..25c43aa --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0033_s54.txt @@ -0,0 +1 @@ +0 0.534447 0.566183 0.148074 0.373912 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0034_s53.txt b/datasets/phonedata/labels/train/20260820_091420_0034_s53.txt new file mode 100644 index 0000000..6d2274b --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0034_s53.txt @@ -0,0 +1 @@ +0 0.535299 0.565326 0.151173 0.375615 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0035_s58.txt b/datasets/phonedata/labels/train/20260820_091420_0035_s58.txt new file mode 100644 index 0000000..2604c53 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0035_s58.txt @@ -0,0 +1 @@ +0 0.541791 0.556426 0.170727 0.395525 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0037_s55.txt b/datasets/phonedata/labels/train/20260820_091420_0037_s55.txt new file mode 100644 index 0000000..03483bb --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0037_s55.txt @@ -0,0 +1 @@ +0 0.540038 0.553956 0.168359 0.400561 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0038_s54.txt b/datasets/phonedata/labels/train/20260820_091420_0038_s54.txt new file mode 100644 index 0000000..92cff80 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0038_s54.txt @@ -0,0 +1 @@ +0 0.539394 0.554370 0.168458 0.401129 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0039_s54.txt b/datasets/phonedata/labels/train/20260820_091420_0039_s54.txt new file mode 100644 index 0000000..de4743b --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0039_s54.txt @@ -0,0 +1 @@ +0 0.526841 0.549824 0.159638 0.395397 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0042_s53.txt b/datasets/phonedata/labels/train/20260820_091420_0042_s53.txt new file mode 100644 index 0000000..2b40049 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0042_s53.txt @@ -0,0 +1 @@ +0 0.499490 0.541910 0.157362 0.349018 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0043_s53.txt b/datasets/phonedata/labels/train/20260820_091420_0043_s53.txt new file mode 100644 index 0000000..dc1e0a9 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0043_s53.txt @@ -0,0 +1 @@ +0 0.497634 0.543385 0.167129 0.296957 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0044_s52.txt b/datasets/phonedata/labels/train/20260820_091420_0044_s52.txt new file mode 100644 index 0000000..6879ae1 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0044_s52.txt @@ -0,0 +1 @@ +0 0.497512 0.543083 0.166559 0.294164 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0045_s53.txt b/datasets/phonedata/labels/train/20260820_091420_0045_s53.txt new file mode 100644 index 0000000..279f206 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0045_s53.txt @@ -0,0 +1 @@ +0 0.493337 0.538399 0.170436 0.268395 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0046_s52.txt b/datasets/phonedata/labels/train/20260820_091420_0046_s52.txt new file mode 100644 index 0000000..658ff66 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0046_s52.txt @@ -0,0 +1 @@ +0 0.492945 0.539157 0.170816 0.269887 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0047_s53.txt b/datasets/phonedata/labels/train/20260820_091420_0047_s53.txt new file mode 100644 index 0000000..ce1c66d --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0047_s53.txt @@ -0,0 +1 @@ +0 0.487346 0.534703 0.162352 0.301067 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0048_s53.txt b/datasets/phonedata/labels/train/20260820_091420_0048_s53.txt new file mode 100644 index 0000000..a5f648a --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0048_s53.txt @@ -0,0 +1 @@ +0 0.485936 0.537692 0.155998 0.319592 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0049_s53.txt b/datasets/phonedata/labels/train/20260820_091420_0049_s53.txt new file mode 100644 index 0000000..3b73555 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0049_s53.txt @@ -0,0 +1 @@ +0 0.484253 0.544791 0.144245 0.335749 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0050_s53.txt b/datasets/phonedata/labels/train/20260820_091420_0050_s53.txt new file mode 100644 index 0000000..0e10201 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0050_s53.txt @@ -0,0 +1 @@ +0 0.484300 0.544829 0.143435 0.336245 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0052_s53.txt b/datasets/phonedata/labels/train/20260820_091420_0052_s53.txt new file mode 100644 index 0000000..a517c0b --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0052_s53.txt @@ -0,0 +1 @@ +0 0.477682 0.546818 0.128064 0.341996 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0053_s54.txt b/datasets/phonedata/labels/train/20260820_091420_0053_s54.txt new file mode 100644 index 0000000..0cb5530 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0053_s54.txt @@ -0,0 +1 @@ +0 0.474000 0.580709 0.108803 0.326917 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0054_s53.txt b/datasets/phonedata/labels/train/20260820_091420_0054_s53.txt new file mode 100644 index 0000000..cb82825 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0054_s53.txt @@ -0,0 +1 @@ +0 0.474633 0.585641 0.105481 0.323527 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0055_s55.txt b/datasets/phonedata/labels/train/20260820_091420_0055_s55.txt new file mode 100644 index 0000000..fa23fa0 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0055_s55.txt @@ -0,0 +1 @@ +0 0.478876 0.604300 0.120222 0.311097 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0059_s56.txt b/datasets/phonedata/labels/train/20260820_091420_0059_s56.txt new file mode 100644 index 0000000..31775d0 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0059_s56.txt @@ -0,0 +1 @@ +0 0.491196 0.674206 0.202332 0.265075 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0061_s57.txt b/datasets/phonedata/labels/train/20260820_091420_0061_s57.txt new file mode 100644 index 0000000..6bbe030 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0061_s57.txt @@ -0,0 +1 @@ +0 0.505485 0.721407 0.215172 0.271729 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0062_s57.txt b/datasets/phonedata/labels/train/20260820_091420_0062_s57.txt new file mode 100644 index 0000000..2e95f78 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0062_s57.txt @@ -0,0 +1 @@ +0 0.506316 0.728194 0.222213 0.263976 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0064_s58.txt b/datasets/phonedata/labels/train/20260820_091420_0064_s58.txt new file mode 100644 index 0000000..ca6e322 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0064_s58.txt @@ -0,0 +1 @@ +0 0.504245 0.727501 0.226263 0.265725 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0065_s57.txt b/datasets/phonedata/labels/train/20260820_091420_0065_s57.txt new file mode 100644 index 0000000..c522d92 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0065_s57.txt @@ -0,0 +1 @@ +0 0.503038 0.725832 0.226967 0.262696 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0066_s56.txt b/datasets/phonedata/labels/train/20260820_091420_0066_s56.txt new file mode 100644 index 0000000..0b46be2 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0066_s56.txt @@ -0,0 +1 @@ +0 0.502935 0.726031 0.226821 0.262310 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0067_s57.txt b/datasets/phonedata/labels/train/20260820_091420_0067_s57.txt new file mode 100644 index 0000000..89bc09a --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0067_s57.txt @@ -0,0 +1 @@ +0 0.502624 0.723243 0.226867 0.257095 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0068_s56.txt b/datasets/phonedata/labels/train/20260820_091420_0068_s56.txt new file mode 100644 index 0000000..9e70667 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0068_s56.txt @@ -0,0 +1 @@ +0 0.502793 0.723527 0.226980 0.256770 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0069_s57.txt b/datasets/phonedata/labels/train/20260820_091420_0069_s57.txt new file mode 100644 index 0000000..a631bae --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0069_s57.txt @@ -0,0 +1 @@ +0 0.526928 0.738692 0.233954 0.227387 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0070_s56.txt b/datasets/phonedata/labels/train/20260820_091420_0070_s56.txt new file mode 100644 index 0000000..52af703 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0070_s56.txt @@ -0,0 +1 @@ +0 0.528306 0.740888 0.234119 0.225575 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0073_s57.txt b/datasets/phonedata/labels/train/20260820_091420_0073_s57.txt new file mode 100644 index 0000000..ac69138 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0073_s57.txt @@ -0,0 +1 @@ +0 0.552144 0.735216 0.208790 0.247634 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0074_s56.txt b/datasets/phonedata/labels/train/20260820_091420_0074_s56.txt new file mode 100644 index 0000000..526d73c --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0074_s56.txt @@ -0,0 +1 @@ +0 0.547800 0.729906 0.207092 0.246409 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0075_s57.txt b/datasets/phonedata/labels/train/20260820_091420_0075_s57.txt new file mode 100644 index 0000000..fe7598f --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0075_s57.txt @@ -0,0 +1 @@ +0 0.540270 0.678245 0.214853 0.246598 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0076_s56.txt b/datasets/phonedata/labels/train/20260820_091420_0076_s56.txt new file mode 100644 index 0000000..67a2c4c --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0076_s56.txt @@ -0,0 +1 @@ +0 0.541369 0.675947 0.217539 0.242054 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0077_s57.txt b/datasets/phonedata/labels/train/20260820_091420_0077_s57.txt new file mode 100644 index 0000000..e385f33 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0077_s57.txt @@ -0,0 +1 @@ +0 0.548248 0.698204 0.208961 0.228812 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0078_s56.txt b/datasets/phonedata/labels/train/20260820_091420_0078_s56.txt new file mode 100644 index 0000000..738ef20 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0078_s56.txt @@ -0,0 +1 @@ +0 0.548581 0.699572 0.208571 0.226294 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0079_s57.txt b/datasets/phonedata/labels/train/20260820_091420_0079_s57.txt new file mode 100644 index 0000000..87b6f0a --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0079_s57.txt @@ -0,0 +1 @@ +0 0.552559 0.772322 0.214385 0.293837 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0080_s56.txt b/datasets/phonedata/labels/train/20260820_091420_0080_s56.txt new file mode 100644 index 0000000..88db1d2 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0080_s56.txt @@ -0,0 +1 @@ +0 0.551699 0.775140 0.213931 0.301065 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0081_s58.txt b/datasets/phonedata/labels/train/20260820_091420_0081_s58.txt new file mode 100644 index 0000000..35fd5dd --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0081_s58.txt @@ -0,0 +1 @@ +0 0.544297 0.793770 0.215080 0.337535 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0082_s58.txt b/datasets/phonedata/labels/train/20260820_091420_0082_s58.txt new file mode 100644 index 0000000..9e807c9 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0082_s58.txt @@ -0,0 +1 @@ +0 0.535750 0.757359 0.227844 0.269923 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0083_s59.txt b/datasets/phonedata/labels/train/20260820_091420_0083_s59.txt new file mode 100644 index 0000000..d034490 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0083_s59.txt @@ -0,0 +1 @@ +0 0.510120 0.747814 0.229842 0.214553 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0084_s58.txt b/datasets/phonedata/labels/train/20260820_091420_0084_s58.txt new file mode 100644 index 0000000..672d49a --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0084_s58.txt @@ -0,0 +1 @@ +0 0.507418 0.747876 0.229079 0.213679 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0085_s58.txt b/datasets/phonedata/labels/train/20260820_091420_0085_s58.txt new file mode 100644 index 0000000..66b3ee1 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0085_s58.txt @@ -0,0 +1 @@ +0 0.499908 0.743874 0.225481 0.202374 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0086_s57.txt b/datasets/phonedata/labels/train/20260820_091420_0086_s57.txt new file mode 100644 index 0000000..511e814 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0086_s57.txt @@ -0,0 +1 @@ +0 0.500582 0.742586 0.224949 0.206692 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0089_s56.txt b/datasets/phonedata/labels/train/20260820_091420_0089_s56.txt new file mode 100644 index 0000000..9b1d820 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0089_s56.txt @@ -0,0 +1 @@ +0 0.482629 0.662977 0.193041 0.323847 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0090_s55.txt b/datasets/phonedata/labels/train/20260820_091420_0090_s55.txt new file mode 100644 index 0000000..54d7b95 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0090_s55.txt @@ -0,0 +1 @@ +0 0.480690 0.662025 0.191321 0.323398 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0091_s55.txt b/datasets/phonedata/labels/train/20260820_091420_0091_s55.txt new file mode 100644 index 0000000..67127dc --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0091_s55.txt @@ -0,0 +1 @@ +0 0.455851 0.635973 0.160375 0.325269 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0092_s54.txt b/datasets/phonedata/labels/train/20260820_091420_0092_s54.txt new file mode 100644 index 0000000..517689f --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0092_s54.txt @@ -0,0 +1 @@ +0 0.454733 0.635874 0.158122 0.323773 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0093_s55.txt b/datasets/phonedata/labels/train/20260820_091420_0093_s55.txt new file mode 100644 index 0000000..585f516 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0093_s55.txt @@ -0,0 +1 @@ +0 0.434823 0.634585 0.108318 0.311396 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0094_s54.txt b/datasets/phonedata/labels/train/20260820_091420_0094_s54.txt new file mode 100644 index 0000000..d177e75 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0094_s54.txt @@ -0,0 +1 @@ +0 0.436445 0.635052 0.107909 0.313686 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0095_s54.txt b/datasets/phonedata/labels/train/20260820_091420_0095_s54.txt new file mode 100644 index 0000000..effaf5a --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0095_s54.txt @@ -0,0 +1 @@ +0 0.437842 0.627581 0.118895 0.310113 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0096_s54.txt b/datasets/phonedata/labels/train/20260820_091420_0096_s54.txt new file mode 100644 index 0000000..2e08cef --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0096_s54.txt @@ -0,0 +1 @@ +0 0.439067 0.625759 0.121513 0.311644 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0097_s54.txt b/datasets/phonedata/labels/train/20260820_091420_0097_s54.txt new file mode 100644 index 0000000..51b566d --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0097_s54.txt @@ -0,0 +1 @@ +0 0.463678 0.596488 0.162473 0.308942 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0098_s53.txt b/datasets/phonedata/labels/train/20260820_091420_0098_s53.txt new file mode 100644 index 0000000..078ce2c --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0098_s53.txt @@ -0,0 +1 @@ +0 0.465410 0.594210 0.163830 0.307527 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0099_s54.txt b/datasets/phonedata/labels/train/20260820_091420_0099_s54.txt new file mode 100644 index 0000000..07a27f1 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0099_s54.txt @@ -0,0 +1 @@ +0 0.503092 0.566582 0.187356 0.275135 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0100_s53.txt b/datasets/phonedata/labels/train/20260820_091420_0100_s53.txt new file mode 100644 index 0000000..69dc8bc --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0100_s53.txt @@ -0,0 +1 @@ +0 0.504503 0.565384 0.188556 0.272261 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0101_s53.txt b/datasets/phonedata/labels/train/20260820_091420_0101_s53.txt new file mode 100644 index 0000000..604fabd --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0101_s53.txt @@ -0,0 +1 @@ +0 0.518420 0.540924 0.199337 0.198172 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0102_s53.txt b/datasets/phonedata/labels/train/20260820_091420_0102_s53.txt new file mode 100644 index 0000000..7c465ad --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0102_s53.txt @@ -0,0 +1 @@ +0 0.521567 0.541199 0.197704 0.174711 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0103_s53.txt b/datasets/phonedata/labels/train/20260820_091420_0103_s53.txt new file mode 100644 index 0000000..58f70e5 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0103_s53.txt @@ -0,0 +1 @@ +0 0.522267 0.542561 0.196998 0.168104 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0104_s52.txt b/datasets/phonedata/labels/train/20260820_091420_0104_s52.txt new file mode 100644 index 0000000..133a54d --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0104_s52.txt @@ -0,0 +1 @@ +0 0.522071 0.542428 0.196828 0.168632 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0105_s52.txt b/datasets/phonedata/labels/train/20260820_091420_0105_s52.txt new file mode 100644 index 0000000..fa86f17 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0105_s52.txt @@ -0,0 +1 @@ +0 0.518446 0.542820 0.190809 0.169192 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0106_s51.txt b/datasets/phonedata/labels/train/20260820_091420_0106_s51.txt new file mode 100644 index 0000000..c511e3a --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0106_s51.txt @@ -0,0 +1 @@ +0 0.518662 0.542837 0.190850 0.169250 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0107_s51.txt b/datasets/phonedata/labels/train/20260820_091420_0107_s51.txt new file mode 100644 index 0000000..7cf9396 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0107_s51.txt @@ -0,0 +1 @@ +0 0.522462 0.546408 0.197640 0.149050 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0110_s50.txt b/datasets/phonedata/labels/train/20260820_091420_0110_s50.txt new file mode 100644 index 0000000..4c4fc5c --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0110_s50.txt @@ -0,0 +1 @@ +0 0.521454 0.548386 0.197394 0.146329 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0111_s51.txt b/datasets/phonedata/labels/train/20260820_091420_0111_s51.txt new file mode 100644 index 0000000..741d0e7 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0111_s51.txt @@ -0,0 +1 @@ +0 0.514152 0.568643 0.203333 0.181296 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0112_s50.txt b/datasets/phonedata/labels/train/20260820_091420_0112_s50.txt new file mode 100644 index 0000000..59d120c --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0112_s50.txt @@ -0,0 +1 @@ +0 0.513871 0.571073 0.204115 0.185804 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0113_s52.txt b/datasets/phonedata/labels/train/20260820_091420_0113_s52.txt new file mode 100644 index 0000000..6a85826 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0113_s52.txt @@ -0,0 +1 @@ +0 0.506578 0.606152 0.204039 0.264008 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0114_s51.txt b/datasets/phonedata/labels/train/20260820_091420_0114_s51.txt new file mode 100644 index 0000000..3c3c8ef --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0114_s51.txt @@ -0,0 +1 @@ +0 0.505705 0.608170 0.203092 0.267542 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0116_s52.txt b/datasets/phonedata/labels/train/20260820_091420_0116_s52.txt new file mode 100644 index 0000000..953329d --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0116_s52.txt @@ -0,0 +1 @@ +0 0.493238 0.646383 0.177127 0.315152 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0117_s53.txt b/datasets/phonedata/labels/train/20260820_091420_0117_s53.txt new file mode 100644 index 0000000..3c5b0dd --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0117_s53.txt @@ -0,0 +1 @@ +0 0.479201 0.672712 0.139047 0.328112 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0118_s53.txt b/datasets/phonedata/labels/train/20260820_091420_0118_s53.txt new file mode 100644 index 0000000..f7b9884 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0118_s53.txt @@ -0,0 +1 @@ +0 0.478121 0.673940 0.136903 0.327723 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0119_s54.txt b/datasets/phonedata/labels/train/20260820_091420_0119_s54.txt new file mode 100644 index 0000000..54b28bb --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0119_s54.txt @@ -0,0 +1 @@ +0 0.463053 0.684246 0.111607 0.324139 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0120_s53.txt b/datasets/phonedata/labels/train/20260820_091420_0120_s53.txt new file mode 100644 index 0000000..0d6d2b5 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0120_s53.txt @@ -0,0 +1 @@ +0 0.448363 0.688063 0.115382 0.320407 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0121_s53.txt b/datasets/phonedata/labels/train/20260820_091420_0121_s53.txt new file mode 100644 index 0000000..c6d1d39 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0121_s53.txt @@ -0,0 +1 @@ +0 0.448159 0.687962 0.116534 0.320873 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0122_s53.txt b/datasets/phonedata/labels/train/20260820_091420_0122_s53.txt new file mode 100644 index 0000000..b4c3f93 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0122_s53.txt @@ -0,0 +1 @@ +0 0.448449 0.687900 0.116937 0.320758 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0123_s53.txt b/datasets/phonedata/labels/train/20260820_091420_0123_s53.txt new file mode 100644 index 0000000..925a5c3 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0123_s53.txt @@ -0,0 +1 @@ +0 0.448089 0.688643 0.116281 0.320955 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0124_s52.txt b/datasets/phonedata/labels/train/20260820_091420_0124_s52.txt new file mode 100644 index 0000000..8b62b22 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0124_s52.txt @@ -0,0 +1 @@ +0 0.449188 0.689864 0.120011 0.324490 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0125_s53.txt b/datasets/phonedata/labels/train/20260820_091420_0125_s53.txt new file mode 100644 index 0000000..60c9dac --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0125_s53.txt @@ -0,0 +1 @@ +0 0.459763 0.710457 0.156196 0.343333 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0126_s52.txt b/datasets/phonedata/labels/train/20260820_091420_0126_s52.txt new file mode 100644 index 0000000..efe076c --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0126_s52.txt @@ -0,0 +1 @@ +0 0.459864 0.710356 0.156220 0.342865 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0127_s53.txt b/datasets/phonedata/labels/train/20260820_091420_0127_s53.txt new file mode 100644 index 0000000..5433203 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0127_s53.txt @@ -0,0 +1 @@ +0 0.483511 0.693863 0.178494 0.336784 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0128_s53.txt b/datasets/phonedata/labels/train/20260820_091420_0128_s53.txt new file mode 100644 index 0000000..312fa22 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0128_s53.txt @@ -0,0 +1 @@ +0 0.489516 0.691663 0.184918 0.335231 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0129_s54.txt b/datasets/phonedata/labels/train/20260820_091420_0129_s54.txt new file mode 100644 index 0000000..957b2ee --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0129_s54.txt @@ -0,0 +1 @@ +0 0.515833 0.677020 0.200713 0.350580 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0131_s54.txt b/datasets/phonedata/labels/train/20260820_091420_0131_s54.txt new file mode 100644 index 0000000..dae7fbf --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0131_s54.txt @@ -0,0 +1 @@ +0 0.526480 0.669936 0.197585 0.369332 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0132_s53.txt b/datasets/phonedata/labels/train/20260820_091420_0132_s53.txt new file mode 100644 index 0000000..7e7ed17 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0132_s53.txt @@ -0,0 +1 @@ +0 0.528310 0.677258 0.193099 0.381634 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0133_s54.txt b/datasets/phonedata/labels/train/20260820_091420_0133_s54.txt new file mode 100644 index 0000000..9be1879 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0133_s54.txt @@ -0,0 +1 @@ +0 0.535290 0.683215 0.206185 0.403238 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0134_s53.txt b/datasets/phonedata/labels/train/20260820_091420_0134_s53.txt new file mode 100644 index 0000000..be512f9 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0134_s53.txt @@ -0,0 +1 @@ +0 0.536464 0.683483 0.208230 0.403704 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0135_s54.txt b/datasets/phonedata/labels/train/20260820_091420_0135_s54.txt new file mode 100644 index 0000000..2c91247 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0135_s54.txt @@ -0,0 +1 @@ +0 0.546731 0.692257 0.234543 0.405318 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0136_s53.txt b/datasets/phonedata/labels/train/20260820_091420_0136_s53.txt new file mode 100644 index 0000000..70b0d20 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0136_s53.txt @@ -0,0 +1 @@ +0 0.546966 0.693219 0.235387 0.403704 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0137_s55.txt b/datasets/phonedata/labels/train/20260820_091420_0137_s55.txt new file mode 100644 index 0000000..42f90fe --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0137_s55.txt @@ -0,0 +1 @@ +0 0.548119 0.700822 0.244567 0.396680 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0138_s54.txt b/datasets/phonedata/labels/train/20260820_091420_0138_s54.txt new file mode 100644 index 0000000..776ec61 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0138_s54.txt @@ -0,0 +1 @@ +0 0.547533 0.703350 0.245698 0.395394 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0139_s54.txt b/datasets/phonedata/labels/train/20260820_091420_0139_s54.txt new file mode 100644 index 0000000..97fc7b3 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0139_s54.txt @@ -0,0 +1 @@ +0 0.544939 0.717271 0.253406 0.384788 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0141_s54.txt b/datasets/phonedata/labels/train/20260820_091420_0141_s54.txt new file mode 100644 index 0000000..7e5b586 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0141_s54.txt @@ -0,0 +1 @@ +0 0.540890 0.732643 0.257079 0.372387 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0142_s53.txt b/datasets/phonedata/labels/train/20260820_091420_0142_s53.txt new file mode 100644 index 0000000..132bf28 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0142_s53.txt @@ -0,0 +1 @@ +0 0.540346 0.733223 0.257053 0.372143 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0143_s54.txt b/datasets/phonedata/labels/train/20260820_091420_0143_s54.txt new file mode 100644 index 0000000..eaf7e4c --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0143_s54.txt @@ -0,0 +1 @@ +0 0.540493 0.744455 0.261492 0.352708 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0145_s54.txt b/datasets/phonedata/labels/train/20260820_091420_0145_s54.txt new file mode 100644 index 0000000..5345f18 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0145_s54.txt @@ -0,0 +1 @@ +0 0.552500 0.674245 0.273817 0.271353 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0146_s53.txt b/datasets/phonedata/labels/train/20260820_091420_0146_s53.txt new file mode 100644 index 0000000..aef5a80 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0146_s53.txt @@ -0,0 +1 @@ +0 0.554188 0.667879 0.275710 0.273232 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0147_s56.txt b/datasets/phonedata/labels/train/20260820_091420_0147_s56.txt new file mode 100644 index 0000000..79cef47 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0147_s56.txt @@ -0,0 +1 @@ +0 0.581794 0.565953 0.298710 0.368218 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0148_s65.txt b/datasets/phonedata/labels/train/20260820_091420_0148_s65.txt new file mode 100644 index 0000000..46daec6 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0148_s65.txt @@ -0,0 +1 @@ +0 0.592471 0.502894 0.298097 0.441753 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0149_s66.txt b/datasets/phonedata/labels/train/20260820_091420_0149_s66.txt new file mode 100644 index 0000000..105556e --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0149_s66.txt @@ -0,0 +1 @@ +0 0.593999 0.428183 0.292049 0.469871 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0150_s65.txt b/datasets/phonedata/labels/train/20260820_091420_0150_s65.txt new file mode 100644 index 0000000..62c0e6e --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0150_s65.txt @@ -0,0 +1 @@ +0 0.594782 0.407470 0.290275 0.474562 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0153_s63.txt b/datasets/phonedata/labels/train/20260820_091420_0153_s63.txt new file mode 100644 index 0000000..ef1e3dd --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0153_s63.txt @@ -0,0 +1 @@ +0 0.540567 0.502373 0.222933 0.461927 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0154_s63.txt b/datasets/phonedata/labels/train/20260820_091420_0154_s63.txt new file mode 100644 index 0000000..4fe1aa4 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0154_s63.txt @@ -0,0 +1 @@ +0 0.535242 0.510707 0.222538 0.456841 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0156_s59.txt b/datasets/phonedata/labels/train/20260820_091420_0156_s59.txt new file mode 100644 index 0000000..751189f --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0156_s59.txt @@ -0,0 +1 @@ +0 0.566536 0.528365 0.151542 0.386872 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0157_s61.txt b/datasets/phonedata/labels/train/20260820_091420_0157_s61.txt new file mode 100644 index 0000000..221a075 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0157_s61.txt @@ -0,0 +1 @@ +0 0.559571 0.526993 0.232971 0.415231 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0158_s61.txt b/datasets/phonedata/labels/train/20260820_091420_0158_s61.txt new file mode 100644 index 0000000..007e11a --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0158_s61.txt @@ -0,0 +1 @@ +0 0.555305 0.538468 0.267746 0.414931 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0159_s63.txt b/datasets/phonedata/labels/train/20260820_091420_0159_s63.txt new file mode 100644 index 0000000..dc834a3 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0159_s63.txt @@ -0,0 +1 @@ +0 0.543823 0.540761 0.286944 0.394517 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0160_s62.txt b/datasets/phonedata/labels/train/20260820_091420_0160_s62.txt new file mode 100644 index 0000000..0e5497f --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0160_s62.txt @@ -0,0 +1 @@ +0 0.533703 0.542820 0.292629 0.374182 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0161_s65.txt b/datasets/phonedata/labels/train/20260820_091420_0161_s65.txt new file mode 100644 index 0000000..cc6c31a --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0161_s65.txt @@ -0,0 +1 @@ +0 0.511329 0.557839 0.298329 0.342624 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0162_s65.txt b/datasets/phonedata/labels/train/20260820_091420_0162_s65.txt new file mode 100644 index 0000000..dba4277 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0162_s65.txt @@ -0,0 +1 @@ +0 0.506673 0.554047 0.298534 0.330545 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0163_s65.txt b/datasets/phonedata/labels/train/20260820_091420_0163_s65.txt new file mode 100644 index 0000000..b98d2c7 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0163_s65.txt @@ -0,0 +1 @@ +0 0.488795 0.554220 0.294638 0.270434 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0165_s67.txt b/datasets/phonedata/labels/train/20260820_091420_0165_s67.txt new file mode 100644 index 0000000..be0fd86 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0165_s67.txt @@ -0,0 +1 @@ +0 0.503608 0.566350 0.298064 0.226202 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0166_s67.txt b/datasets/phonedata/labels/train/20260820_091420_0166_s67.txt new file mode 100644 index 0000000..6259e10 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0166_s67.txt @@ -0,0 +1 @@ +0 0.503159 0.568631 0.297568 0.230595 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0168_s70.txt b/datasets/phonedata/labels/train/20260820_091420_0168_s70.txt new file mode 100644 index 0000000..b462d7d --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0168_s70.txt @@ -0,0 +1 @@ +0 0.488456 0.665068 0.298870 0.233578 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0169_s71.txt b/datasets/phonedata/labels/train/20260820_091420_0169_s71.txt new file mode 100644 index 0000000..56b7083 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0169_s71.txt @@ -0,0 +1 @@ +0 0.484038 0.658188 0.295615 0.210698 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0170_s71.txt b/datasets/phonedata/labels/train/20260820_091420_0170_s71.txt new file mode 100644 index 0000000..d7eca21 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0170_s71.txt @@ -0,0 +1 @@ +0 0.486833 0.661524 0.296592 0.200833 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0171_s71.txt b/datasets/phonedata/labels/train/20260820_091420_0171_s71.txt new file mode 100644 index 0000000..b7e5bc0 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0171_s71.txt @@ -0,0 +1 @@ +0 0.470352 0.685725 0.293721 0.222314 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0172_s70.txt b/datasets/phonedata/labels/train/20260820_091420_0172_s70.txt new file mode 100644 index 0000000..e7f9de4 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0172_s70.txt @@ -0,0 +1 @@ +0 0.468474 0.685224 0.292964 0.230426 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0173_s70.txt b/datasets/phonedata/labels/train/20260820_091420_0173_s70.txt new file mode 100644 index 0000000..33fd802 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0173_s70.txt @@ -0,0 +1 @@ +0 0.451798 0.698610 0.289912 0.304628 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0175_s73.txt b/datasets/phonedata/labels/train/20260820_091420_0175_s73.txt new file mode 100644 index 0000000..4dcc421 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0175_s73.txt @@ -0,0 +1 @@ +0 0.466981 0.756293 0.296673 0.271046 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0176_s72.txt b/datasets/phonedata/labels/train/20260820_091420_0176_s72.txt new file mode 100644 index 0000000..ef92aa8 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0176_s72.txt @@ -0,0 +1 @@ +0 0.467644 0.758376 0.296014 0.265456 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0177_s70.txt b/datasets/phonedata/labels/train/20260820_091420_0177_s70.txt new file mode 100644 index 0000000..c42c90d --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0177_s70.txt @@ -0,0 +1 @@ +0 0.475660 0.769617 0.297578 0.289632 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0178_s69.txt b/datasets/phonedata/labels/train/20260820_091420_0178_s69.txt new file mode 100644 index 0000000..f8e54f1 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0178_s69.txt @@ -0,0 +1 @@ +0 0.485487 0.768306 0.302855 0.343214 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0179_s70.txt b/datasets/phonedata/labels/train/20260820_091420_0179_s70.txt new file mode 100644 index 0000000..22e3adf --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0179_s70.txt @@ -0,0 +1 @@ +0 0.489797 0.712976 0.303473 0.298311 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0182_s70.txt b/datasets/phonedata/labels/train/20260820_091420_0182_s70.txt new file mode 100644 index 0000000..65e61db --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0182_s70.txt @@ -0,0 +1 @@ +0 0.496078 0.683774 0.294534 0.262265 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0183_s69.txt b/datasets/phonedata/labels/train/20260820_091420_0183_s69.txt new file mode 100644 index 0000000..190f09e --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0183_s69.txt @@ -0,0 +1 @@ +0 0.495577 0.665571 0.291719 0.207582 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0185_s66.txt b/datasets/phonedata/labels/train/20260820_091420_0185_s66.txt new file mode 100644 index 0000000..589bd37 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0185_s66.txt @@ -0,0 +1 @@ +0 0.514180 0.593466 0.261521 0.331063 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0186_s65.txt b/datasets/phonedata/labels/train/20260820_091420_0186_s65.txt new file mode 100644 index 0000000..554ae8d --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0186_s65.txt @@ -0,0 +1 @@ +0 0.527042 0.559280 0.241491 0.364824 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0187_s63.txt b/datasets/phonedata/labels/train/20260820_091420_0187_s63.txt new file mode 100644 index 0000000..a382d57 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0187_s63.txt @@ -0,0 +1 @@ +0 0.536315 0.537853 0.212399 0.380803 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0188_s62.txt b/datasets/phonedata/labels/train/20260820_091420_0188_s62.txt new file mode 100644 index 0000000..fa4e83c --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0188_s62.txt @@ -0,0 +1 @@ +0 0.553518 0.520034 0.164851 0.394963 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0191_s61.txt b/datasets/phonedata/labels/train/20260820_091420_0191_s61.txt new file mode 100644 index 0000000..5995ef5 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0191_s61.txt @@ -0,0 +1 @@ +0 0.586676 0.510323 0.148147 0.409065 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0192_s60.txt b/datasets/phonedata/labels/train/20260820_091420_0192_s60.txt new file mode 100644 index 0000000..55249ad --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0192_s60.txt @@ -0,0 +1 @@ +0 0.587211 0.504856 0.149220 0.405420 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0193_s60.txt b/datasets/phonedata/labels/train/20260820_091420_0193_s60.txt new file mode 100644 index 0000000..54d5fdd --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0193_s60.txt @@ -0,0 +1 @@ +0 0.589132 0.468016 0.143918 0.392448 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0194_s60.txt b/datasets/phonedata/labels/train/20260820_091420_0194_s60.txt new file mode 100644 index 0000000..0971f5e --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0194_s60.txt @@ -0,0 +1 @@ +0 0.600953 0.435844 0.142678 0.393266 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0195_s60.txt b/datasets/phonedata/labels/train/20260820_091420_0195_s60.txt new file mode 100644 index 0000000..e74df58 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0195_s60.txt @@ -0,0 +1 @@ +0 0.615076 0.420422 0.152680 0.394998 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0197_s60.txt b/datasets/phonedata/labels/train/20260820_091420_0197_s60.txt new file mode 100644 index 0000000..e7d4c70 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0197_s60.txt @@ -0,0 +1 @@ +0 0.636720 0.384012 0.161804 0.409983 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0198_s60.txt b/datasets/phonedata/labels/train/20260820_091420_0198_s60.txt new file mode 100644 index 0000000..3043373 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0198_s60.txt @@ -0,0 +1 @@ +0 0.636266 0.378281 0.157555 0.409870 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0199_s60.txt b/datasets/phonedata/labels/train/20260820_091420_0199_s60.txt new file mode 100644 index 0000000..8e71433 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0199_s60.txt @@ -0,0 +1 @@ +0 0.631032 0.342348 0.144167 0.408432 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0201_s59.txt b/datasets/phonedata/labels/train/20260820_091420_0201_s59.txt new file mode 100644 index 0000000..0f6a681 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0201_s59.txt @@ -0,0 +1 @@ +0 0.588284 0.264119 0.172435 0.379851 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0202_s58.txt b/datasets/phonedata/labels/train/20260820_091420_0202_s58.txt new file mode 100644 index 0000000..d492ef2 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0202_s58.txt @@ -0,0 +1 @@ +0 0.585398 0.258516 0.175254 0.372480 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0204_s58.txt b/datasets/phonedata/labels/train/20260820_091420_0204_s58.txt new file mode 100644 index 0000000..6cae3e5 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0204_s58.txt @@ -0,0 +1 @@ +0 0.569269 0.242750 0.169462 0.348872 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0205_s58.txt b/datasets/phonedata/labels/train/20260820_091420_0205_s58.txt new file mode 100644 index 0000000..a0e9f87 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0205_s58.txt @@ -0,0 +1 @@ +0 0.563371 0.247500 0.113363 0.361790 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0206_s58.txt b/datasets/phonedata/labels/train/20260820_091420_0206_s58.txt new file mode 100644 index 0000000..74d5bd1 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0206_s58.txt @@ -0,0 +1 @@ +0 0.563943 0.250109 0.109690 0.368037 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0207_s59.txt b/datasets/phonedata/labels/train/20260820_091420_0207_s59.txt new file mode 100644 index 0000000..1b76e73 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0207_s59.txt @@ -0,0 +1 @@ +0 0.604029 0.214397 0.181788 0.380491 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0208_s58.txt b/datasets/phonedata/labels/train/20260820_091420_0208_s58.txt new file mode 100644 index 0000000..d90600e --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0208_s58.txt @@ -0,0 +1 @@ +0 0.609134 0.214643 0.183425 0.380986 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0209_s61.txt b/datasets/phonedata/labels/train/20260820_091420_0209_s61.txt new file mode 100644 index 0000000..f769bef --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0209_s61.txt @@ -0,0 +1 @@ +0 0.576916 0.309644 0.186934 0.419801 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0210_s61.txt b/datasets/phonedata/labels/train/20260820_091420_0210_s61.txt new file mode 100644 index 0000000..658a2c3 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0210_s61.txt @@ -0,0 +1 @@ +0 0.548833 0.347443 0.191095 0.426533 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0211_s63.txt b/datasets/phonedata/labels/train/20260820_091420_0211_s63.txt new file mode 100644 index 0000000..4d67c9c --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0211_s63.txt @@ -0,0 +1 @@ +0 0.514086 0.362385 0.196482 0.423857 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0214_s63.txt b/datasets/phonedata/labels/train/20260820_091420_0214_s63.txt new file mode 100644 index 0000000..b30b07c --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0214_s63.txt @@ -0,0 +1 @@ +0 0.497768 0.433616 0.203515 0.410023 \ No newline at end of file diff --git a/datasets/phonedata/labels/train/20260820_091420_0215_s61.txt b/datasets/phonedata/labels/train/20260820_091420_0215_s61.txt new file mode 100644 index 0000000..c2b6364 --- /dev/null +++ b/datasets/phonedata/labels/train/20260820_091420_0215_s61.txt @@ -0,0 +1 @@ +0 0.493022 0.447160 0.203370 0.400789 \ No newline at end of file diff --git a/datasets/phonedata/labels/val.cache b/datasets/phonedata/labels/val.cache new file mode 100644 index 0000000..bfd255c Binary files /dev/null and b/datasets/phonedata/labels/val.cache differ diff --git a/datasets/phonedata/labels/val/20260820_091420_0002_s56.txt b/datasets/phonedata/labels/val/20260820_091420_0002_s56.txt new file mode 100644 index 0000000..945da00 --- /dev/null +++ b/datasets/phonedata/labels/val/20260820_091420_0002_s56.txt @@ -0,0 +1 @@ +0 0.540509 0.617657 0.211657 0.206282 \ No newline at end of file diff --git a/datasets/phonedata/labels/val/20260820_091420_0007_s63.txt b/datasets/phonedata/labels/val/20260820_091420_0007_s63.txt new file mode 100644 index 0000000..ef8522f --- /dev/null +++ b/datasets/phonedata/labels/val/20260820_091420_0007_s63.txt @@ -0,0 +1 @@ +0 0.540529 0.600416 0.211039 0.169944 \ No newline at end of file diff --git a/datasets/phonedata/labels/val/20260820_091420_0008_s63.txt b/datasets/phonedata/labels/val/20260820_091420_0008_s63.txt new file mode 100644 index 0000000..92a957f --- /dev/null +++ b/datasets/phonedata/labels/val/20260820_091420_0008_s63.txt @@ -0,0 +1 @@ +0 0.540404 0.599567 0.210638 0.168206 \ No newline at end of file diff --git a/datasets/phonedata/labels/val/20260820_091420_0009_s62.txt b/datasets/phonedata/labels/val/20260820_091420_0009_s62.txt new file mode 100644 index 0000000..d116c85 --- /dev/null +++ b/datasets/phonedata/labels/val/20260820_091420_0009_s62.txt @@ -0,0 +1 @@ +0 0.539219 0.598793 0.209759 0.167124 \ No newline at end of file diff --git a/datasets/phonedata/labels/val/20260820_091420_0023_s56.txt b/datasets/phonedata/labels/val/20260820_091420_0023_s56.txt new file mode 100644 index 0000000..5814f12 --- /dev/null +++ b/datasets/phonedata/labels/val/20260820_091420_0023_s56.txt @@ -0,0 +1 @@ +0 0.529583 0.592042 0.114677 0.289956 \ No newline at end of file diff --git a/datasets/phonedata/labels/val/20260820_091420_0024_s56.txt b/datasets/phonedata/labels/val/20260820_091420_0024_s56.txt new file mode 100644 index 0000000..a4ebaae --- /dev/null +++ b/datasets/phonedata/labels/val/20260820_091420_0024_s56.txt @@ -0,0 +1 @@ +0 0.529556 0.589294 0.114722 0.286774 \ No newline at end of file diff --git a/datasets/phonedata/labels/val/20260820_091420_0027_s56.txt b/datasets/phonedata/labels/val/20260820_091420_0027_s56.txt new file mode 100644 index 0000000..cc80536 --- /dev/null +++ b/datasets/phonedata/labels/val/20260820_091420_0027_s56.txt @@ -0,0 +1 @@ +0 0.535252 0.559090 0.106150 0.302325 \ No newline at end of file diff --git a/datasets/phonedata/labels/val/20260820_091420_0029_s55.txt b/datasets/phonedata/labels/val/20260820_091420_0029_s55.txt new file mode 100644 index 0000000..40e8d52 --- /dev/null +++ b/datasets/phonedata/labels/val/20260820_091420_0029_s55.txt @@ -0,0 +1 @@ +0 0.534472 0.571823 0.107717 0.334116 \ No newline at end of file diff --git a/datasets/phonedata/labels/val/20260820_091420_0036_s58.txt b/datasets/phonedata/labels/val/20260820_091420_0036_s58.txt new file mode 100644 index 0000000..3854f10 --- /dev/null +++ b/datasets/phonedata/labels/val/20260820_091420_0036_s58.txt @@ -0,0 +1 @@ +0 0.542400 0.555598 0.172261 0.397709 \ No newline at end of file diff --git a/datasets/phonedata/labels/val/20260820_091420_0040_s53.txt b/datasets/phonedata/labels/val/20260820_091420_0040_s53.txt new file mode 100644 index 0000000..3581bd5 --- /dev/null +++ b/datasets/phonedata/labels/val/20260820_091420_0040_s53.txt @@ -0,0 +1 @@ +0 0.523636 0.548050 0.158566 0.393138 \ No newline at end of file diff --git a/datasets/phonedata/labels/val/20260820_091420_0041_s54.txt b/datasets/phonedata/labels/val/20260820_091420_0041_s54.txt new file mode 100644 index 0000000..a68e27e --- /dev/null +++ b/datasets/phonedata/labels/val/20260820_091420_0041_s54.txt @@ -0,0 +1 @@ +0 0.500284 0.542033 0.156240 0.352885 \ No newline at end of file diff --git a/datasets/phonedata/labels/val/20260820_091420_0051_s54.txt b/datasets/phonedata/labels/val/20260820_091420_0051_s54.txt new file mode 100644 index 0000000..34a1de0 --- /dev/null +++ b/datasets/phonedata/labels/val/20260820_091420_0051_s54.txt @@ -0,0 +1 @@ +0 0.478054 0.546250 0.129653 0.343163 \ No newline at end of file diff --git a/datasets/phonedata/labels/val/20260820_091420_0056_s54.txt b/datasets/phonedata/labels/val/20260820_091420_0056_s54.txt new file mode 100644 index 0000000..fe2f5ba --- /dev/null +++ b/datasets/phonedata/labels/val/20260820_091420_0056_s54.txt @@ -0,0 +1 @@ +0 0.480713 0.608943 0.126466 0.306145 \ No newline at end of file diff --git a/datasets/phonedata/labels/val/20260820_091420_0057_s55.txt b/datasets/phonedata/labels/val/20260820_091420_0057_s55.txt new file mode 100644 index 0000000..204c75e --- /dev/null +++ b/datasets/phonedata/labels/val/20260820_091420_0057_s55.txt @@ -0,0 +1 @@ +0 0.487847 0.643200 0.160039 0.293832 \ No newline at end of file diff --git a/datasets/phonedata/labels/val/20260820_091420_0058_s54.txt b/datasets/phonedata/labels/val/20260820_091420_0058_s54.txt new file mode 100644 index 0000000..38baf17 --- /dev/null +++ b/datasets/phonedata/labels/val/20260820_091420_0058_s54.txt @@ -0,0 +1 @@ +0 0.488357 0.644776 0.161665 0.293345 \ No newline at end of file diff --git a/datasets/phonedata/labels/val/20260820_091420_0060_s55.txt b/datasets/phonedata/labels/val/20260820_091420_0060_s55.txt new file mode 100644 index 0000000..418fbc6 --- /dev/null +++ b/datasets/phonedata/labels/val/20260820_091420_0060_s55.txt @@ -0,0 +1 @@ +0 0.491386 0.677382 0.204065 0.263465 \ No newline at end of file diff --git a/datasets/phonedata/labels/val/20260820_091420_0063_s58.txt b/datasets/phonedata/labels/val/20260820_091420_0063_s58.txt new file mode 100644 index 0000000..ed4b0ce --- /dev/null +++ b/datasets/phonedata/labels/val/20260820_091420_0063_s58.txt @@ -0,0 +1 @@ +0 0.504178 0.727482 0.226514 0.265949 \ No newline at end of file diff --git a/datasets/phonedata/labels/val/20260820_091420_0071_s57.txt b/datasets/phonedata/labels/val/20260820_091420_0071_s57.txt new file mode 100644 index 0000000..2887684 --- /dev/null +++ b/datasets/phonedata/labels/val/20260820_091420_0071_s57.txt @@ -0,0 +1 @@ +0 0.564034 0.782653 0.237401 0.204650 \ No newline at end of file diff --git a/datasets/phonedata/labels/val/20260820_091420_0072_s55.txt b/datasets/phonedata/labels/val/20260820_091420_0072_s55.txt new file mode 100644 index 0000000..a59191d --- /dev/null +++ b/datasets/phonedata/labels/val/20260820_091420_0072_s55.txt @@ -0,0 +1 @@ +0 0.565327 0.781084 0.236814 0.205902 \ No newline at end of file diff --git a/datasets/phonedata/labels/val/20260820_091420_0087_s57.txt b/datasets/phonedata/labels/val/20260820_091420_0087_s57.txt new file mode 100644 index 0000000..de70428 --- /dev/null +++ b/datasets/phonedata/labels/val/20260820_091420_0087_s57.txt @@ -0,0 +1 @@ +0 0.498983 0.693373 0.218270 0.289999 \ No newline at end of file diff --git a/datasets/phonedata/labels/val/20260820_091420_0088_s56.txt b/datasets/phonedata/labels/val/20260820_091420_0088_s56.txt new file mode 100644 index 0000000..df475a8 --- /dev/null +++ b/datasets/phonedata/labels/val/20260820_091420_0088_s56.txt @@ -0,0 +1 @@ +0 0.497825 0.684898 0.214161 0.299794 \ No newline at end of file diff --git a/datasets/phonedata/labels/val/20260820_091420_0108_s51.txt b/datasets/phonedata/labels/val/20260820_091420_0108_s51.txt new file mode 100644 index 0000000..ff80e17 --- /dev/null +++ b/datasets/phonedata/labels/val/20260820_091420_0108_s51.txt @@ -0,0 +1 @@ +0 0.522385 0.546532 0.197107 0.148727 \ No newline at end of file diff --git a/datasets/phonedata/labels/val/20260820_091420_0109_s51.txt b/datasets/phonedata/labels/val/20260820_091420_0109_s51.txt new file mode 100644 index 0000000..95858e1 --- /dev/null +++ b/datasets/phonedata/labels/val/20260820_091420_0109_s51.txt @@ -0,0 +1 @@ +0 0.522019 0.547635 0.197258 0.147204 \ No newline at end of file diff --git a/datasets/phonedata/labels/val/20260820_091420_0115_s53.txt b/datasets/phonedata/labels/val/20260820_091420_0115_s53.txt new file mode 100644 index 0000000..edc40b3 --- /dev/null +++ b/datasets/phonedata/labels/val/20260820_091420_0115_s53.txt @@ -0,0 +1 @@ +0 0.494287 0.644078 0.179856 0.312699 \ No newline at end of file diff --git a/datasets/phonedata/labels/val/20260820_091420_0130_s52.txt b/datasets/phonedata/labels/val/20260820_091420_0130_s52.txt new file mode 100644 index 0000000..f3ae7a0 --- /dev/null +++ b/datasets/phonedata/labels/val/20260820_091420_0130_s52.txt @@ -0,0 +1 @@ +0 0.516668 0.677155 0.200913 0.350475 \ No newline at end of file diff --git a/datasets/phonedata/labels/val/20260820_091420_0140_s54.txt b/datasets/phonedata/labels/val/20260820_091420_0140_s54.txt new file mode 100644 index 0000000..24cb77e --- /dev/null +++ b/datasets/phonedata/labels/val/20260820_091420_0140_s54.txt @@ -0,0 +1 @@ +0 0.543739 0.719824 0.253404 0.383020 \ No newline at end of file diff --git a/datasets/phonedata/labels/val/20260820_091420_0144_s53.txt b/datasets/phonedata/labels/val/20260820_091420_0144_s53.txt new file mode 100644 index 0000000..cf4c542 --- /dev/null +++ b/datasets/phonedata/labels/val/20260820_091420_0144_s53.txt @@ -0,0 +1 @@ +0 0.540451 0.744049 0.261588 0.350298 \ No newline at end of file diff --git a/datasets/phonedata/labels/val/20260820_091420_0151_s66.txt b/datasets/phonedata/labels/val/20260820_091420_0151_s66.txt new file mode 100644 index 0000000..1918f09 --- /dev/null +++ b/datasets/phonedata/labels/val/20260820_091420_0151_s66.txt @@ -0,0 +1 @@ +0 0.584078 0.422126 0.245848 0.499982 \ No newline at end of file diff --git a/datasets/phonedata/labels/val/20260820_091420_0152_s64.txt b/datasets/phonedata/labels/val/20260820_091420_0152_s64.txt new file mode 100644 index 0000000..8fba6e0 --- /dev/null +++ b/datasets/phonedata/labels/val/20260820_091420_0152_s64.txt @@ -0,0 +1 @@ +0 0.584215 0.431036 0.239944 0.495922 \ No newline at end of file diff --git a/datasets/phonedata/labels/val/20260820_091420_0155_s60.txt b/datasets/phonedata/labels/val/20260820_091420_0155_s60.txt new file mode 100644 index 0000000..33e2bd2 --- /dev/null +++ b/datasets/phonedata/labels/val/20260820_091420_0155_s60.txt @@ -0,0 +1 @@ +0 0.546699 0.539903 0.176599 0.417523 \ No newline at end of file diff --git a/datasets/phonedata/labels/val/20260820_091420_0164_s65.txt b/datasets/phonedata/labels/val/20260820_091420_0164_s65.txt new file mode 100644 index 0000000..ccd8dbd --- /dev/null +++ b/datasets/phonedata/labels/val/20260820_091420_0164_s65.txt @@ -0,0 +1 @@ +0 0.489420 0.554145 0.294376 0.262153 \ No newline at end of file diff --git a/datasets/phonedata/labels/val/20260820_091420_0167_s69.txt b/datasets/phonedata/labels/val/20260820_091420_0167_s69.txt new file mode 100644 index 0000000..ac19cc1 --- /dev/null +++ b/datasets/phonedata/labels/val/20260820_091420_0167_s69.txt @@ -0,0 +1 @@ +0 0.497747 0.625750 0.305599 0.270615 \ No newline at end of file diff --git a/datasets/phonedata/labels/val/20260820_091420_0174_s72.txt b/datasets/phonedata/labels/val/20260820_091420_0174_s72.txt new file mode 100644 index 0000000..daedd51 --- /dev/null +++ b/datasets/phonedata/labels/val/20260820_091420_0174_s72.txt @@ -0,0 +1 @@ +0 0.456466 0.716169 0.294679 0.314897 \ No newline at end of file diff --git a/datasets/phonedata/labels/val/20260820_091420_0180_s70.txt b/datasets/phonedata/labels/val/20260820_091420_0180_s70.txt new file mode 100644 index 0000000..b230422 --- /dev/null +++ b/datasets/phonedata/labels/val/20260820_091420_0180_s70.txt @@ -0,0 +1 @@ +0 0.489365 0.707916 0.302797 0.295009 \ No newline at end of file diff --git a/datasets/phonedata/labels/val/20260820_091420_0181_s70.txt b/datasets/phonedata/labels/val/20260820_091420_0181_s70.txt new file mode 100644 index 0000000..ca579b0 --- /dev/null +++ b/datasets/phonedata/labels/val/20260820_091420_0181_s70.txt @@ -0,0 +1 @@ +0 0.495049 0.688074 0.295872 0.273182 \ No newline at end of file diff --git a/datasets/phonedata/labels/val/20260820_091420_0184_s67.txt b/datasets/phonedata/labels/val/20260820_091420_0184_s67.txt new file mode 100644 index 0000000..b7309d7 --- /dev/null +++ b/datasets/phonedata/labels/val/20260820_091420_0184_s67.txt @@ -0,0 +1 @@ +0 0.496177 0.633156 0.281963 0.285002 \ No newline at end of file diff --git a/datasets/phonedata/labels/val/20260820_091420_0189_s62.txt b/datasets/phonedata/labels/val/20260820_091420_0189_s62.txt new file mode 100644 index 0000000..97de077 --- /dev/null +++ b/datasets/phonedata/labels/val/20260820_091420_0189_s62.txt @@ -0,0 +1 @@ +0 0.569857 0.518462 0.124356 0.409831 \ No newline at end of file diff --git a/datasets/phonedata/labels/val/20260820_091420_0190_s62.txt b/datasets/phonedata/labels/val/20260820_091420_0190_s62.txt new file mode 100644 index 0000000..c81b142 --- /dev/null +++ b/datasets/phonedata/labels/val/20260820_091420_0190_s62.txt @@ -0,0 +1 @@ +0 0.571214 0.520623 0.119375 0.409558 \ No newline at end of file diff --git a/datasets/phonedata/labels/val/20260820_091420_0196_s60.txt b/datasets/phonedata/labels/val/20260820_091420_0196_s60.txt new file mode 100644 index 0000000..915cd04 --- /dev/null +++ b/datasets/phonedata/labels/val/20260820_091420_0196_s60.txt @@ -0,0 +1 @@ +0 0.624544 0.414071 0.160634 0.397178 \ No newline at end of file diff --git a/datasets/phonedata/labels/val/20260820_091420_0200_s60.txt b/datasets/phonedata/labels/val/20260820_091420_0200_s60.txt new file mode 100644 index 0000000..487be7b --- /dev/null +++ b/datasets/phonedata/labels/val/20260820_091420_0200_s60.txt @@ -0,0 +1 @@ +0 0.627499 0.340033 0.144035 0.405890 \ No newline at end of file diff --git a/datasets/phonedata/labels/val/20260820_091420_0203_s58.txt b/datasets/phonedata/labels/val/20260820_091420_0203_s58.txt new file mode 100644 index 0000000..f51b27b --- /dev/null +++ b/datasets/phonedata/labels/val/20260820_091420_0203_s58.txt @@ -0,0 +1 @@ +0 0.568168 0.248038 0.170646 0.347637 \ No newline at end of file diff --git a/datasets/phonedata/labels/val/20260820_091420_0212_s62.txt b/datasets/phonedata/labels/val/20260820_091420_0212_s62.txt new file mode 100644 index 0000000..00843f7 --- /dev/null +++ b/datasets/phonedata/labels/val/20260820_091420_0212_s62.txt @@ -0,0 +1 @@ +0 0.512462 0.362507 0.197821 0.422789 \ No newline at end of file diff --git a/datasets/phonedata/labels/val/20260820_091420_0213_s64.txt b/datasets/phonedata/labels/val/20260820_091420_0213_s64.txt new file mode 100644 index 0000000..8a90c38 --- /dev/null +++ b/datasets/phonedata/labels/val/20260820_091420_0213_s64.txt @@ -0,0 +1 @@ +0 0.503113 0.405894 0.196848 0.416032 \ No newline at end of file diff --git a/detectors.py b/detectors.py new file mode 100644 index 0000000..556e4f2 --- /dev/null +++ b/detectors.py @@ -0,0 +1,230 @@ +"""统一检测器接口:YOLO / Faster R-CNN,供推理与二阶段脚本共用。""" + +from __future__ import annotations + +from dataclasses import dataclass +from pathlib import Path +from typing import Any + +import cv2 +import numpy as np +import torch + +ROOT = Path(__file__).resolve().parent + + +@dataclass +class DetBox: + xyxy: tuple[int, int, int, int] + conf: float + cls_id: int = 0 + + +def import_yolo(): + """导入 YOLO。项目下 ultralytics/ 源码目录会挡住包,需优先指向仓库根。""" + import sys + + repo = ROOT / "ultralytics" + if (repo / "ultralytics" / "__init__.py").exists(): + repo_s = str(repo) + while repo_s in sys.path: + sys.path.remove(repo_s) + sys.path.insert(0, repo_s) + + mod = sys.modules.get("ultralytics") + if mod is not None and getattr(mod, "__file__", None) is None: + for key in list(sys.modules): + if key == "ultralytics" or key.startswith("ultralytics."): + del sys.modules[key] + + from ultralytics import YOLO + + return YOLO + + +def resolve_device(device: str | int) -> torch.device: + text = str(device).strip().lower() + if text in {"cpu", "-1"}: + return torch.device("cpu") + if torch.cuda.is_available(): + try: + return torch.device(f"cuda:{int(text)}") + except Exception: + return torch.device("cuda:0") + return torch.device("cpu") + + +def build_faster_rcnn(num_classes: int, pretrained_backbone: bool = True): + """num_classes = 前景类数 + 1(含背景)。""" + from torchvision.models.detection import ( + FasterRCNN_ResNet50_FPN_Weights, + fasterrcnn_resnet50_fpn, + ) + from torchvision.models.detection.faster_rcnn import FastRCNNPredictor + + weights = FasterRCNN_ResNet50_FPN_Weights.DEFAULT if pretrained_backbone else None + model = fasterrcnn_resnet50_fpn(weights=weights) + in_features = model.roi_heads.box_predictor.cls_score.in_features + model.roi_heads.box_predictor = FastRCNNPredictor(in_features, num_classes) + return model + + +class YOLODetector: + backend = "yolo" + + def __init__(self, weights: str | Path, device: str | int = "0") -> None: + YOLO = import_yolo() + self.model = YOLO(str(weights)) + self.device = str(device) + + def detect(self, image_bgr: np.ndarray, conf: float = 0.25, iou: float = 0.7, imgsz: int = 640) -> list[DetBox]: + results = self.model.predict( + source=image_bgr, + imgsz=imgsz, + conf=conf, + iou=iou, + device=self.device, + verbose=False, + max_det=50, + ) + if not results: + return [] + boxes = results[0].boxes + if boxes is None or len(boxes) == 0: + return [] + out: list[DetBox] = [] + xyxy = boxes.xyxy.cpu().numpy() + confs = boxes.conf.cpu().numpy() + clss = boxes.cls.cpu().numpy() if boxes.cls is not None else np.zeros(len(boxes)) + for i in range(len(boxes)): + x1, y1, x2, y2 = xyxy[i] + out.append( + DetBox( + xyxy=(int(round(x1)), int(round(y1)), int(round(x2)), int(round(y2))), + conf=float(confs[i]), + cls_id=int(clss[i]), + ) + ) + out.sort(key=lambda b: b.conf, reverse=True) + return out + + def plot(self, image_bgr: np.ndarray, conf: float = 0.25, iou: float = 0.7, imgsz: int = 640) -> np.ndarray: + results = self.model.predict( + source=image_bgr, + imgsz=imgsz, + conf=conf, + iou=iou, + device=self.device, + verbose=False, + ) + if not results: + return image_bgr.copy() + return results[0].plot() + + +class FasterRCNNDetector: + backend = "faster_rcnn" + + def __init__( + self, + weights: str | Path | None = None, + device: str | int = "0", + num_classes: int = 2, + score_thresh: float = 0.25, + ) -> None: + self.device = resolve_device(device) + self.score_thresh = float(score_thresh) + self.num_classes = int(num_classes) + self.model = build_faster_rcnn(self.num_classes, pretrained_backbone=weights is None) + if weights is not None: + ckpt = torch.load(str(weights), map_location="cpu", weights_only=False) + state = ckpt["model"] if isinstance(ckpt, dict) and "model" in ckpt else ckpt + self.model.load_state_dict(state) + self.model.to(self.device) + self.model.eval() + + @torch.inference_mode() + def detect(self, image_bgr: np.ndarray, conf: float | None = None, **_: Any) -> list[DetBox]: + thr = self.score_thresh if conf is None else float(conf) + rgb = cv2.cvtColor(image_bgr, cv2.COLOR_BGR2RGB) + tensor = torch.from_numpy(rgb).permute(2, 0, 1).float() / 255.0 + tensor = tensor.to(self.device) + out = self.model([tensor])[0] + boxes = out["boxes"].detach().cpu().numpy() + scores = out["scores"].detach().cpu().numpy() + labels = out["labels"].detach().cpu().numpy() + dets: list[DetBox] = [] + for box, score, label in zip(boxes, scores, labels): + if float(score) < thr: + continue + # Faster R-CNN: 0=背景,前景从 1 开始;对外统一成 0-based 类别 + cls_id = int(label) - 1 if int(label) > 0 else 0 + x1, y1, x2, y2 = box + dets.append( + DetBox( + xyxy=(int(round(x1)), int(round(y1)), int(round(x2)), int(round(y2))), + conf=float(score), + cls_id=cls_id, + ) + ) + dets.sort(key=lambda b: b.conf, reverse=True) + return dets + + def plot(self, image_bgr: np.ndarray, conf: float | None = None, **kwargs: Any) -> np.ndarray: + dets = self.detect(image_bgr, conf=conf, **kwargs) + vis = image_bgr.copy() + for det in dets: + x1, y1, x2, y2 = det.xyxy + cv2.rectangle(vis, (x1, y1), (x2, y2), (0, 255, 0), 2) + cv2.putText( + vis, + f"id{det.cls_id} {det.conf:.2f}", + (x1, max(20, y1 - 6)), + cv2.FONT_HERSHEY_SIMPLEX, + 0.6, + (0, 255, 0), + 2, + ) + return vis + + +def guess_backend(weights: str | Path) -> str: + path = Path(weights) + name = path.name.lower() + suffix = path.suffix.lower() + if "faster" in name or "rcnn" in name or "frcnn" in name: + return "faster_rcnn" + if suffix == ".pt": + # Ultralytics YOLO 常用 .pt;torchvision 训练脚本默认 .pth + return "yolo" + if suffix in {".pth", ".pkl"}: + return "faster_rcnn" + return "yolo" + + +def load_detector( + backend: str, + weights: str | Path, + device: str | int = "0", + num_classes: int = 2, + conf: float = 0.25, +): + """ + backend: yolo | faster_rcnn | auto + Faster R-CNN 的 num_classes = 前景类数 + 1(背景) + """ + kind = backend.strip().lower() + if kind == "auto": + kind = guess_backend(weights) + if kind in {"yolo", "ultralytics"}: + return YOLODetector(weights, device=device) + if kind in {"faster_rcnn", "rcnn", "faster-rcnn", "frcnn"}: + return FasterRCNNDetector(weights, device=device, num_classes=num_classes, score_thresh=conf) + raise ValueError(f"不支持的检测后端: {backend}") + + +def best_box(dets: list[DetBox], conf_thr: float = 0.25) -> DetBox | None: + for det in dets: + if det.conf >= conf_thr: + return det + return None diff --git a/environment.yml b/environment.yml new file mode 100644 index 0000000..7e68e6e --- /dev/null +++ b/environment.yml @@ -0,0 +1,19 @@ +name: camera_test +channels: + - conda-forge +dependencies: + - python=3.11 + - pip + - pip: + - opencv-python + - numpy + - pillow + - matplotlib + - ipython + - scipy + - pandas + - jupyter + - notebook + - torch + - torchvision + - -e ./ultralytics diff --git a/faster_rcnn.yaml b/faster_rcnn.yaml new file mode 100644 index 0000000..b6f5bed --- /dev/null +++ b/faster_rcnn.yaml @@ -0,0 +1,22 @@ +# Faster R-CNN 训练配置(torchvision) +# 运行: python train_faster_rcnn.py --cfg faster_rcnn.yaml + +data: 01data.yaml +num_classes: 2 # 背景 + gongjian +epochs: 30 +batch_size: 2 +lr: 0.005 +momentum: 0.9 +weight_decay: 0.0005 +step_size: 12 +gamma: 0.1 +num_workers: 2 +device: 0 +imgsz: 640 # 短边缩放到该值附近 +print_freq: 20 +eval_every: 1 +pretrained: true +project: runs/faster_rcnn +name: gongjian_frcnn +exist_ok: true +resume: "" # 断点 .pth 路径,空则从头训练 diff --git a/hole_detect.py b/hole_detect.py new file mode 100644 index 0000000..dbfb255 --- /dev/null +++ b/hole_detect.py @@ -0,0 +1,418 @@ +"""工件二阶段检测:YOLO 定位工件 + HoughCircles 检测左右螺纹孔中心。""" + +from __future__ import annotations + +from pathlib import Path +from typing import Any + +import cv2 +import numpy as np +import yaml + +ROOT = Path(__file__).resolve().parent +DEFAULT_CONFIG = ROOT / "hole_detect_config.yaml" + + +def load_config(path: str | Path | None = None) -> dict[str, Any]: + cfg_path = Path(path) if path else DEFAULT_CONFIG + with open(cfg_path, encoding="utf-8") as f: + data = yaml.safe_load(f) or {} + if not isinstance(data, dict): + raise ValueError(f"配置格式错误: {cfg_path}") + return data + + +def _fail( + msg: str, + draw_img: np.ndarray, + bbox: tuple[int, int, int, int] | None = None, + gate_block: bool = False, +) -> dict[str, Any]: + return { + "status": False, + "msg": msg, + "hole_points": [], + "hole_radii": [], + "bbox": list(bbox) if bbox is not None else None, + "gate_block": gate_block, + "draw_img": draw_img, + } + + +def _draw_bbox(img: np.ndarray, bbox: tuple[int, int, int, int], color=(0, 255, 0)) -> None: + x1, y1, x2, y2 = bbox + cv2.rectangle(img, (x1, y1), (x2, y2), color, 2) + cv2.putText(img, "gongjian", (x1, max(20, y1 - 8)), cv2.FONT_HERSHEY_SIMPLEX, 0.7, color, 2) + + +def _draw_center_gate(img: np.ndarray, max_dx: float, max_dy: float, ok: bool) -> None: + h, w = img.shape[:2] + cx, cy = w * 0.5, h * 0.5 + x1 = int(round(cx - max_dx)) + y1 = int(round(cy - max_dy)) + x2 = int(round(cx + max_dx)) + y2 = int(round(cy + max_dy)) + color = (0, 255, 0) if ok else (0, 165, 255) + cv2.rectangle(img, (x1, y1), (x2, y2), color, 1) + cv2.drawMarker(img, (int(cx), int(cy)), color, markerType=cv2.MARKER_CROSS, markerSize=18, thickness=1) + + +def _bbox_center_ok( + bbox: tuple[int, int, int, int], + img_w: int, + img_h: int, + cfg: dict[str, Any], +) -> tuple[bool, float, float, float, float]: + """返回 (是否居中, bbox_cx, bbox_cy, max_dx, max_dy)。""" + x1, y1, x2, y2 = bbox + bx = 0.5 * (x1 + x2) + by = 0.5 * (y1 + y2) + max_dx = float(cfg.get("center_max_offset_ratio_x", 0.12)) * img_w + max_dy = float(cfg.get("center_max_offset_ratio_y", 0.12)) * img_h + ok = abs(bx - img_w * 0.5) <= max_dx and abs(by - img_h * 0.5) <= max_dy + return ok, bx, by, max_dx, max_dy + + +def _draw_holes( + img: np.ndarray, + points: list[list[float]], + radii: list[float] | None = None, +) -> None: + """画孔轮廓圆 + 中心点(十字+实心点)+ 坐标。""" + for i, (cx, cy) in enumerate(points): + px, py = int(round(cx)), int(round(cy)) + r = 12.0 if radii is None or i >= len(radii) else float(radii[i]) + rr = max(4, int(round(r))) + # 轮廓 + cv2.circle(img, (px, py), rr, (0, 0, 255), 2) + # 中心十字 + 黄点 + cv2.drawMarker(img, (px, py), (0, 0, 255), markerType=cv2.MARKER_CROSS, markerSize=16, thickness=2) + cv2.circle(img, (px, py), 3, (0, 255, 255), -1) + label = f"P{i + 1}({px},{py}) r={rr}" + cv2.putText(img, label, (px + 12, py - 8), cv2.FONT_HERSHEY_SIMPLEX, 0.55, (0, 0, 255), 2) + + +def _parse_best_bbox(dets, conf_thr: float) -> tuple[int, int, int, int] | None: + """最多取 1 个工件:取置信度最高且 >= conf 的框。""" + if not dets: + return None + ordered = sorted(dets, key=lambda d: d.conf, reverse=True) + for det in ordered: + if float(det.conf) < conf_thr: + continue + return tuple(int(v) for v in det.xyxy) # type: ignore[return-value] + return None + + +def _pad_roi( + img_w: int, + img_h: int, + bbox: tuple[int, int, int, int], + padding: int, +) -> tuple[int, int, int, int, int, int]: + """返回 x1,y1,x2,y2,offset_x,offset_y(裁剪左上角在原图坐标)。""" + x1, y1, x2, y2 = bbox + px1 = max(0, x1 - padding) + py1 = max(0, y1 - padding) + px2 = min(img_w, x2 + padding) + py2 = min(img_h, y2 + padding) + if px2 <= px1 or py2 <= py1: + raise ValueError("ROI 无效(宽或高为 0)") + return px1, py1, px2, py2, px1, py1 + + +def _render_success( + image: np.ndarray, + bbox: tuple[int, int, int, int], + hole_points: list[list[float]], + hole_radii: list[float], + dist: float, + gate: tuple[float, float] | None = None, +) -> np.ndarray: + draw_img = image.copy() + if gate is not None: + _draw_center_gate(draw_img, gate[0], gate[1], True) + _draw_bbox(draw_img, bbox) + _draw_holes(draw_img, hole_points, hole_radii) + cv2.putText( + draw_img, + f"OK dist={dist:.1f}px", + (16, 36), + cv2.FONT_HERSHEY_SIMPLEX, + 0.8, + (0, 255, 0), + 2, + ) + return draw_img + + +def detect_holes( + image: np.ndarray, + detector, + config: dict[str, Any] | None = None, + device: str | int = 0, +) -> dict[str, Any]: + """ + 二阶段检测螺纹孔中心。 + + detector: 需提供 detect(image_bgr, conf=..., iou=..., imgsz=...) -> list[DetBox] + (YOLODetector / FasterRCNNDetector 均可) + + 返回: + status, msg, hole_points [[cx,cy],...], hole_radii [r1,r2], bbox, draw_img(BGR) + """ + try: + if image is None or not isinstance(image, np.ndarray) or image.size == 0: + return _fail("输入图像无效", np.zeros((480, 640, 3), dtype=np.uint8)) + + cfg = config if config is not None else load_config() + draw_img = image.copy() + h, w = image.shape[:2] + + conf = float(cfg.get("conf", 0.25)) + iou = float(cfg.get("iou", 0.7)) + imgsz = int(cfg.get("imgsz", 640)) + padding = int(cfg.get("bbox_padding", 25)) + ksize = int(cfg.get("gaussian_ksize", 5)) + if ksize % 2 == 0: + ksize += 1 + sigma = float(cfg.get("gaussian_sigma", 1.5)) + + # 1) 检测器定位工件 bbox(最多 1 个)— 兼容 YOLO / Faster R-CNN + dets = detector.detect(image, conf=conf, iou=iou, imgsz=imgsz) + bbox = _parse_best_bbox(dets, conf) + if bbox is None: + return _fail("未检测到工件", draw_img) + + _draw_bbox(draw_img, bbox) + + # 1.5) 居中门控:bbox 中心接近画面中心才进入二阶检测 + center_enable = bool(cfg.get("center_gate_enable", True)) + centered, bx, by, max_dx, max_dy = _bbox_center_ok(bbox, w, h, cfg) + if bool(cfg.get("center_gate_draw", True)): + _draw_center_gate(draw_img, max_dx, max_dy, centered if center_enable else True) + if center_enable and not centered: + dx = abs(bx - w * 0.5) + dy = abs(by - h * 0.5) + cv2.putText( + draw_img, + "MOVE TO CENTER", + (16, 36), + cv2.FONT_HERSHEY_SIMPLEX, + 0.8, + (0, 165, 255), + 2, + ) + return _fail( + f"工件未居中:offset=({dx:.0f},{dy:.0f})px,允许<=({max_dx:.0f},{max_dy:.0f})px", + draw_img, + bbox, + gate_block=True, + ) + + # 2) padding ROI + 边界保护 + rx1, ry1, rx2, ry2, offset_x, offset_y = _pad_roi(w, h, bbox, padding) + roi = image[ry1:ry2, rx1:rx2] + if roi.size == 0: + return _fail("ROI 裁剪失败", draw_img, bbox) + + # 3) 灰度 + 高斯模糊 + gray = cv2.cvtColor(roi, cv2.COLOR_BGR2GRAY) if roi.ndim == 3 else roi + blur = cv2.GaussianBlur(gray, (ksize, ksize), sigma) + + # 4) HoughCircles + circles = cv2.HoughCircles( + blur, + cv2.HOUGH_GRADIENT, + dp=float(cfg.get("hough_dp", 1.2)), + minDist=float(cfg.get("hough_min_dist", 40)), + param1=float(cfg.get("hough_param1", 100)), + param2=float(cfg.get("hough_param2", 28)), + minRadius=int(cfg.get("hough_min_radius", 6)), + maxRadius=int(cfg.get("hough_max_radius", 45)), + ) + if circles is None: + return _fail("HoughCircles 未检测到圆孔", draw_img, bbox) + + # 5) ROI 坐标 -> 原图坐标 + circles = np.asarray(circles[0], dtype=np.float64) + mapped: list[tuple[float, float, float]] = [] + for cx, cy, r in circles: + mapped.append((float(cx + offset_x), float(cy + offset_y), float(r))) + + # 6) 工业校验 + bx1, by1, bx2, by2 = bbox + min_r = float(cfg.get("min_radius", 6)) + max_r = float(cfg.get("max_radius", 45)) + dist_min = float(cfg.get("hole_distance_min", 80)) + dist_max = float(cfg.get("hole_distance_max", 900)) + + valid: list[tuple[float, float, float]] = [] + for cx, cy, r in mapped: + if not (bx1 <= cx <= bx2 and by1 <= cy <= by2): + continue + if not (min_r <= r <= max_r): + continue + valid.append((cx, cy, r)) + + # 多于 2 个时取最左/最右一对(对应左右螺纹孔),仍须满足间距规则 + if len(valid) > 2: + ordered = sorted(valid, key=lambda c: c[0]) + left, right = ordered[0], ordered[-1] + d = float(np.hypot(left[0] - right[0], left[1] - right[1])) + if dist_min <= d <= dist_max: + valid = [left, right] + else: + return _fail( + f"候选圆孔={len(valid)},左右端点距离={d:.1f}px 不在 [{dist_min}, {dist_max}]", + draw_img, + bbox, + ) + + if len(valid) != 2: + return _fail(f"有效圆孔数量={len(valid)},要求严格等于 2", draw_img, bbox) + + ordered = sorted(valid, key=lambda c: c[0]) + (x1, y1, r1), (x2, y2, r2) = ordered + dist = float(np.hypot(x1 - x2, y1 - y2)) + if not (dist_min <= dist <= dist_max): + return _fail( + f"两孔距离={dist:.1f}px,不在 [{dist_min}, {dist_max}]", + draw_img, + bbox, + ) + + hole_points = [[x1, y1], [x2, y2]] + hole_radii = [r1, r2] + gate = (max_dx, max_dy) if bool(cfg.get("center_gate_draw", True)) else None + draw_img = _render_success(image, bbox, hole_points, hole_radii, dist, gate=gate) + return { + "status": True, + "msg": f"检测成功,两孔距离 {dist:.1f}px", + "hole_points": hole_points, + "hole_radii": hole_radii, + "bbox": list(bbox), + "draw_img": draw_img, + } + except Exception as exc: + fallback = image.copy() if isinstance(image, np.ndarray) and image.size else np.zeros((480, 640, 3), dtype=np.uint8) + return _fail(f"异常: {exc}", fallback) + + +class HoleStabilizer: + """时序稳帧:EMA 平滑中心/半径,短暂失败时沿用上一帧结果,抑制闪烁。""" + + def __init__(self, config: dict[str, Any] | None = None) -> None: + cfg = config or {} + self.cfg = cfg + self.hold_frames = int(cfg.get("stabilize_hold_frames", 15)) + self.ema_alpha = float(cfg.get("stabilize_ema_alpha", 0.35)) + self.max_jump = float(cfg.get("stabilize_max_jump", 60)) + self.reset() + + def reset(self) -> None: + self.points: list[list[float]] | None = None + self.radii: list[float] | None = None + self.bbox: tuple[int, int, int, int] | None = None + self.miss = 0 + + def update(self, image: np.ndarray, result: dict[str, Any]) -> dict[str, Any]: + try: + # 未居中:不做二阶、不沿用旧孔,立即清空稳帧 + if result.get("gate_block"): + self.reset() + out = dict(result) + out["hole_points"] = [] + out["hole_radii"] = [] + return out + + bbox = result.get("bbox") + if bbox is not None and len(bbox) == 4: + self.bbox = (int(bbox[0]), int(bbox[1]), int(bbox[2]), int(bbox[3])) + + if result.get("status") and len(result.get("hole_points") or []) == 2: + pts = [[float(p[0]), float(p[1])] for p in result["hole_points"]] + pts = sorted(pts, key=lambda p: p[0]) + rad = result.get("hole_radii") or [12.0, 12.0] + rad = [float(rad[0]), float(rad[1])] if len(rad) >= 2 else [12.0, 12.0] + + if self.points is not None: + jump = max( + float(np.hypot(pts[0][0] - self.points[0][0], pts[0][1] - self.points[0][1])), + float(np.hypot(pts[1][0] - self.points[1][0], pts[1][1] - self.points[1][1])), + ) + if jump > self.max_jump: + # 跳变过大,当作本帧失败,沿用稳定值 + self.miss += 1 + else: + a = self.ema_alpha + self.points = [ + [ + (1 - a) * self.points[0][0] + a * pts[0][0], + (1 - a) * self.points[0][1] + a * pts[0][1], + ], + [ + (1 - a) * self.points[1][0] + a * pts[1][0], + (1 - a) * self.points[1][1] + a * pts[1][1], + ], + ] + self.radii = [ + (1 - a) * self.radii[0] + a * rad[0], + (1 - a) * self.radii[1] + a * rad[1], + ] + self.miss = 0 + else: + self.points = pts + self.radii = rad + self.miss = 0 + else: + self.miss += 1 + if self.miss > self.hold_frames: + self.points = None + self.radii = None + + if self.points is None or self.radii is None: + # 彻底丢失:只保留当前帧绘制(可能仅有 bbox) + out = dict(result) + out["hole_points"] = [] + out["hole_radii"] = [] + return out + + dist = float( + np.hypot( + self.points[0][0] - self.points[1][0], + self.points[0][1] - self.points[1][1], + ) + ) + bbox_draw = self.bbox + if bbox_draw is None and result.get("bbox") is not None: + b = result["bbox"] + bbox_draw = (int(b[0]), int(b[1]), int(b[2]), int(b[3])) + if bbox_draw is None: + # 无框时仍画孔 + draw_img = image.copy() + _draw_holes(draw_img, self.points, self.radii) + else: + gate = None + if bool(self.cfg.get("center_gate_draw", True)): + ih, iw = image.shape[:2] + max_dx = float(self.cfg.get("center_max_offset_ratio_x", 0.12)) * iw + max_dy = float(self.cfg.get("center_max_offset_ratio_y", 0.12)) * ih + gate = (max_dx, max_dy) + draw_img = _render_success(image, bbox_draw, self.points, self.radii, dist, gate=gate) + + held = self.miss > 0 + return { + "status": True, + "msg": ( + f"检测成功,两孔距离 {dist:.1f}px" + + (f"(稳帧 hold={self.miss})" if held else "") + ), + "hole_points": [[p[0], p[1]] for p in self.points], + "hole_radii": [float(self.radii[0]), float(self.radii[1])], + "bbox": list(bbox_draw) if bbox_draw is not None else result.get("bbox"), + "draw_img": draw_img, + } + except Exception as exc: + fallback = image.copy() if isinstance(image, np.ndarray) and image.size else np.zeros((480, 640, 3), dtype=np.uint8) + return _fail(f"稳帧异常: {exc}", fallback) diff --git a/hole_detect_config.yaml b/hole_detect_config.yaml new file mode 100644 index 0000000..d2b7fc1 --- /dev/null +++ b/hole_detect_config.yaml @@ -0,0 +1,39 @@ +# 工件二阶段检测配置:YOLO 定位 + HoughCircles 螺纹孔 +# 供 hole_detect.py / infer_holes_realtime.py 使用 + +# ----- YOLO ----- +conf: 0.25 +iou: 0.7 +imgsz: 640 + +# ----- 居中门控:bbox 中心接近画面中心才做二阶圆孔检测 ----- +center_gate_enable: true +center_max_offset_ratio_x: 0.15 # |bbox_cx - 图像中心x| <= 该比例 * 宽 +center_max_offset_ratio_y: 0.18 # |bbox_cy - 图像中心y| <= 该比例 * 高 +center_gate_draw: true # 可视化画出允许居中区域 + +# ----- ROI:bbox 向外膨胀像素,裁剪时做边界保护 ----- +bbox_padding: 25 + +# ----- ROI 预处理 ----- +gaussian_ksize: 5 # 必须为奇数 +gaussian_sigma: 1.5 + +# ----- HoughCircles(全部由此读取)----- +hough_dp: 1.2 +hough_min_dist: 50 +hough_param1: 100 +hough_param2: 26 +hough_min_radius: 10 +hough_max_radius: 30 + +# ----- 工业校验 ----- +min_radius: 10 # 有效圆孔半径下限(滤掉噪点) +max_radius: 30 # 有效圆孔半径上限(滤掉中间大孔) +hole_distance_min: 150 # 两孔像素距离下限 +hole_distance_max: 700 # 两孔像素距离上限 + +# ----- 时序稳帧(抑制闪烁)----- +stabilize_hold_frames: 15 # 连续失败多少帧后才清空结果 +stabilize_ema_alpha: 0.35 # 中心点/半径 EMA,越小越稳 +stabilize_max_jump: 60 # 单帧跳变超过该像素则忽略(防闪) diff --git a/infer_holes_realtime.py b/infer_holes_realtime.py new file mode 100644 index 0000000..37aaa2b --- /dev/null +++ b/infer_holes_realtime.py @@ -0,0 +1,479 @@ +"""工件螺纹孔二阶段视频推理:YOLO / Faster R-CNN 定位 + HoughCircles。""" + +from __future__ import annotations + +import threading +import time +import tkinter as tk +from pathlib import Path +from tkinter import filedialog, messagebox, ttk + +import cv2 +import numpy as np +from PIL import Image, ImageTk + +from detectors import guess_backend, load_detector +from hole_detect import HoleStabilizer, detect_holes, load_config +from infer_realtime import ( + list_realsense, + open_source, +) + +ROOT = Path(__file__).resolve().parent + + +def default_model_path(backend: str = "yolo") -> str: + if backend == "faster_rcnn": + candidates = [ + ROOT / "runs" / "faster_rcnn" / "gongjian_frcnn" / "weights" / "best.pth", + ROOT / "runs" / "faster_rcnn" / "gongjian_frcnn" / "weights" / "last.pth", + ] + for path in candidates: + if path.exists(): + return str(path) + return str(ROOT / "runs" / "faster_rcnn" / "gongjian_frcnn" / "weights" / "best.pth") + candidates = [ + ROOT / "ultralytics" / "runs" / "detect" / "runs" / "yolov8_gongjian" / "weights" / "best.pt", + ROOT / "ultralytics" / "runs" / "detect" / "runs" / "yolov8_gongjian" / "weights" / "last.pt", + ROOT / "ultralytics" / "runs" / "detect" / "runs" / "yolov8_exp" / "weights" / "best.pt", + ROOT / "yolov8n.pt", + ] + for path in candidates: + if path.exists(): + return str(path) + return str(ROOT / "yolov8n.pt") + + +def default_config_path() -> str: + path = ROOT / "hole_detect_config.yaml" + return str(path) + + +class HoleInferApp(tk.Tk): + def __init__(self) -> None: + super().__init__() + self.title("工件螺纹孔二阶段检测") + self.geometry("1180x860") + self.minsize(980, 720) + + self.model = None + self.cfg: dict = {} + self.cam = None + self.running = False + self.opening = False + self.infer_enabled = False + self.photo: ImageTk.PhotoImage | None = None + self.latest: np.ndarray | None = None + self.last_result: dict | None = None + self.stabilizer = HoleStabilizer() + self.fps = 0.0 + self.lock = threading.Lock() + self.cam_lock = threading.Lock() + self.fail_reads = 0 + self.rs_devices = list_realsense() + + self.var_backend = tk.StringVar(value="yolo") + self.var_model = tk.StringVar(value=default_model_path("yolo")) + self.var_num_classes = tk.IntVar(value=2) + self.var_config = tk.StringVar(value=default_config_path()) + self.var_source = tk.StringVar(value="realsense" if self.rs_devices else "webcam") + self.var_rs = tk.StringVar(value=self.rs_devices[0][0] if self.rs_devices else "") + self.var_camera = tk.IntVar(value=1) + self.var_width = tk.IntVar(value=1280) + self.var_height = tk.IntVar(value=720) + self.var_device = tk.StringVar(value="0") + self.var_status = tk.StringVar(value="就绪:打开摄像头 → 开始推理") + + self._build() + self.protocol("WM_DELETE_WINDOW", self.on_close) + self.after(33, self.refresh_view) + self.reload_config(silent=True) + + def _build(self) -> None: + self.columnconfigure(0, weight=1) + self.rowconfigure(0, weight=1) + + view = ttk.Frame(self, padding=8) + view.grid(row=0, column=0, sticky="nsew") + view.columnconfigure(0, weight=1) + view.rowconfigure(0, weight=1) + self.canvas = tk.Label(view, bg="#111", fg="#eee", text="检测画面", width=80, height=20) + self.canvas.grid(row=0, column=0, sticky="nsew") + ttk.Label(view, textvariable=self.var_status).grid(row=1, column=0, sticky="w", pady=(8, 0)) + + panel = ttk.LabelFrame(self, text="二阶段检测参数", padding=10) + panel.grid(row=1, column=0, sticky="ew", padx=8, pady=(0, 8)) + for c in range(8): + panel.columnconfigure(c, weight=1) + + ttk.Label(panel, text="算法").grid(row=0, column=0, sticky="w") + ttk.Combobox( + panel, + textvariable=self.var_backend, + values=["yolo", "faster_rcnn", "auto"], + width=12, + state="readonly", + ).grid(row=0, column=1, sticky="w") + ttk.Label(panel, text="RCNN类数(+背景)").grid(row=0, column=2, sticky="w") + ttk.Entry(panel, textvariable=self.var_num_classes, width=6).grid(row=0, column=3, sticky="w") + self.var_backend.trace_add("write", lambda *_: self.on_backend_change()) + + ttk.Label(panel, text="检测权重").grid(row=1, column=0, sticky="w", pady=(8, 0)) + ttk.Entry(panel, textvariable=self.var_model).grid(row=1, column=1, columnspan=5, sticky="ew", padx=4, pady=(8, 0)) + ttk.Button(panel, text="浏览…", command=self.browse_model).grid(row=1, column=6, sticky="ew", pady=(8, 0)) + ttk.Button(panel, text="自动查找", command=self.autofill_model).grid(row=1, column=7, sticky="ew", padx=(4, 0), pady=(8, 0)) + + ttk.Label(panel, text="检测配置").grid(row=2, column=0, sticky="w", pady=(8, 0)) + ttk.Entry(panel, textvariable=self.var_config).grid(row=2, column=1, columnspan=5, sticky="ew", padx=4, pady=(8, 0)) + ttk.Button(panel, text="浏览…", command=self.browse_config).grid(row=2, column=6, sticky="ew", pady=(8, 0)) + ttk.Button(panel, text="重新加载", command=self.reload_config).grid(row=2, column=7, sticky="ew", padx=(4, 0), pady=(8, 0)) + + ttk.Label(panel, text="视频源").grid(row=3, column=0, sticky="w", pady=(8, 0)) + src = ttk.Frame(panel) + src.grid(row=3, column=1, columnspan=3, sticky="w", pady=(8, 0)) + ttk.Radiobutton(src, text="RealSense RGB", variable=self.var_source, value="realsense").pack(side="left") + ttk.Radiobutton(src, text="普通摄像头", variable=self.var_source, value="webcam").pack(side="left", padx=(10, 0)) + ttk.Label(panel, text="设备").grid(row=3, column=4, sticky="w", pady=(8, 0)) + ttk.Combobox(panel, textvariable=self.var_device, values=["0", "cpu"], width=8, state="readonly").grid( + row=3, column=5, sticky="w", pady=(8, 0) + ) + + ttk.Label(panel, text="RealSense").grid(row=4, column=0, sticky="w", pady=(8, 0)) + self.cmb_rs = ttk.Combobox( + panel, + textvariable=self.var_rs, + values=[x[0] for x in self.rs_devices], + state="readonly", + ) + self.cmb_rs.grid(row=4, column=1, columnspan=3, sticky="ew", pady=(8, 0)) + ttk.Button(panel, text="刷新设备", command=self.refresh_devices).grid(row=4, column=4, sticky="w", pady=(8, 0)) + ttk.Label(panel, text="摄像头编号").grid(row=4, column=5, sticky="w", pady=(8, 0)) + ttk.Spinbox(panel, from_=0, to=8, textvariable=self.var_camera, width=6).grid( + row=4, column=6, sticky="w", pady=(8, 0) + ) + + ttk.Label(panel, text="分辨率").grid(row=5, column=0, sticky="w", pady=(8, 0)) + ttk.Entry(panel, textvariable=self.var_width, width=8).grid(row=5, column=1, sticky="w", pady=(8, 0)) + ttk.Label(panel, text="x").grid(row=5, column=2, pady=(8, 0)) + ttk.Entry(panel, textvariable=self.var_height, width=8).grid(row=5, column=3, sticky="w", pady=(8, 0)) + + btns = ttk.Frame(panel) + btns.grid(row=6, column=0, columnspan=8, sticky="ew", pady=(12, 0)) + self.btn_open = ttk.Button(btns, text="打开摄像头", command=self.open_camera) + self.btn_open.pack(side="left") + self.btn_infer = ttk.Button(btns, text="开始推理", command=self.start_infer, state="disabled") + self.btn_infer.pack(side="left", padx=8) + self.btn_stop = ttk.Button(btns, text="停止", command=self.stop, state="disabled") + self.btn_stop.pack(side="left") + ttk.Button(btns, text="保存当前帧", command=self.save_frame).pack(side="left", padx=8) + + def refresh_devices(self) -> None: + self.rs_devices = list_realsense() + labels = [x[0] for x in self.rs_devices] + self.cmb_rs["values"] = labels + if labels: + self.var_rs.set(labels[0]) + self.var_status.set(f"找到 {len(labels)} 台 RealSense") + else: + self.var_rs.set("") + self.var_status.set("未检测到 RealSense") + + def current_rs_serial(self) -> str | None: + label = self.var_rs.get() + for text, serial in self.rs_devices: + if text == label: + return serial + return None + + def on_backend_change(self) -> None: + backend = self.var_backend.get() + if backend == "auto": + return + self.var_model.set(default_model_path(backend)) + + def browse_model(self) -> None: + initial = self.var_model.get() + initial_dir = str(Path(initial).parent) if initial else str(ROOT) + path = filedialog.askopenfilename( + title="选择检测权重", + initialdir=initial_dir, + filetypes=[("PyTorch 权重", "*.pt *.pth"), ("所有文件", "*.*")], + ) + if path: + self.var_model.set(path) + if self.var_backend.get() == "auto": + self.var_status.set(f"auto 将按文件识别为: {guess_backend(path)}") + + def autofill_model(self) -> None: + backend = self.var_backend.get() + if backend == "auto": + backend = "yolo" + path = default_model_path(backend) + self.var_model.set(path) + self.var_status.set(f"已填入权重: {path}") + + def browse_config(self) -> None: + initial = self.var_config.get() + initial_dir = str(Path(initial).parent) if initial else str(ROOT) + path = filedialog.askopenfilename( + title="选择检测配置", + initialdir=initial_dir, + filetypes=[("YAML", "*.yaml;*.yml"), ("所有文件", "*.*")], + ) + if path: + self.var_config.set(path) + self.reload_config() + + def reload_config(self, silent: bool = False) -> None: + try: + path = Path(self.var_config.get().strip()) + if not path.is_absolute(): + path = ROOT / path + self.cfg = load_config(path) + self.var_config.set(str(path)) + self.stabilizer = HoleStabilizer(self.cfg) + if not silent: + self.var_status.set(f"已加载配置: {path.name}") + except Exception as exc: + self.cfg = {} + self.stabilizer = HoleStabilizer() + if not silent: + messagebox.showerror("配置", str(exc)) + self.var_status.set(f"配置加载失败: {exc}") + + def release_cam(self) -> None: + with self.cam_lock: + if self.cam is not None: + try: + self.cam.release() + except Exception: + pass + self.cam = None + + def open_camera(self) -> None: + if self.running or self.opening: + return + self.opening = True + self.btn_open.config(state="disabled") + self.var_status.set("正在打开摄像头…") + self.update_idletasks() + + source = self.var_source.get() + width = int(self.var_width.get()) + height = int(self.var_height.get()) + serial = self.current_rs_serial() + cam_index = int(self.var_camera.get()) + + def worker() -> None: + cam = None + err = "" + try: + self.release_cam() + if source == "realsense": + devices = list_realsense() + if not devices: + raise RuntimeError("没有 RealSense,可改选普通摄像头编号 1") + cam = open_source("realsense", width, height, serial or devices[0][1], cam_index) + else: + cam = open_source("webcam", width, height, None, cam_index) + ok, frame = cam.read() + if not ok or frame is None: + raise RuntimeError("摄像头打开后读不到画面") + except Exception as exc: + if cam is not None: + try: + cam.release() + except Exception: + pass + cam = None + err = str(exc) + self.after(0, lambda: self._open_done(cam, err)) + + threading.Thread(target=worker, daemon=True).start() + + def _open_done(self, cam, err: str) -> None: + self.opening = False + if err or cam is None: + self.btn_open.config(state="normal") + self.btn_infer.config(state="disabled") + self.btn_stop.config(state="disabled") + self.var_status.set(err or "打开失败") + messagebox.showerror("摄像头", err or "打开失败") + return + with self.cam_lock: + self.cam = cam + self.running = True + self.infer_enabled = False + self.fail_reads = 0 + self.btn_open.config(state="disabled") + self.btn_infer.config(state="normal") + self.btn_stop.config(state="normal") + self.var_status.set("摄像头已打开。点「开始推理」加载权重并检测螺纹孔") + threading.Thread(target=self.loop_capture, daemon=True).start() + + def start_infer(self) -> None: + if not self.running or self.cam is None: + messagebox.showwarning("推理", "请先打开摄像头") + return + model_path = Path(self.var_model.get().strip()) + if not model_path.is_absolute(): + model_path = ROOT / model_path + if not model_path.exists(): + messagebox.showerror("权重", f"找不到权重:\n{model_path}") + return + self.reload_config(silent=True) + if not self.cfg: + messagebox.showerror("配置", "请先加载有效的 hole_detect_config.yaml") + return + + self.btn_infer.config(state="disabled") + self.var_status.set(f"正在加载模型: {model_path.name} …") + warmup = None + with self.lock: + if self.latest is not None: + warmup = self.latest.copy() + + def load() -> None: + try: + backend = self.var_backend.get() + model = load_detector( + backend=backend, + weights=model_path, + device=self.var_device.get(), + num_classes=int(self.var_num_classes.get()), + conf=float(self.cfg.get("conf", 0.25)), + ) + if warmup is not None: + detect_holes(warmup, model, self.cfg, device=self.var_device.get()) + except Exception as exc: + self.after(0, lambda e=str(exc): self._infer_load_failed(e)) + return + self.model = model + self.infer_enabled = True + self.stabilizer.reset() + used = getattr(model, "backend", backend) + self.after(0, lambda: self.var_status.set(f"推理中 backend={used} 模型={model_path.name}")) + + threading.Thread(target=load, daemon=True).start() + + def _infer_load_failed(self, msg: str) -> None: + self.infer_enabled = False + self.model = None + self.btn_infer.config(state="normal") + self.var_status.set(msg) + messagebox.showerror("模型加载失败", msg) + + def stop(self) -> None: + self.running = False + self.infer_enabled = False + self.var_status.set("正在停止…") + + def loop_capture(self) -> None: + t0, n = time.perf_counter(), 0 + while self.running: + with self.cam_lock: + cam = self.cam + if cam is None: + break + ok, frame = cam.read() + if not ok or frame is None: + self.fail_reads += 1 + if self.fail_reads >= 30: + self.after(0, lambda: self.var_status.set("连续读帧失败,请停止后重开")) + self.fail_reads = 0 + time.sleep(0.02) + continue + self.fail_reads = 0 + + show = frame + result = None + if self.infer_enabled and self.model is not None: + raw = detect_holes(frame, self.model, self.cfg, device=self.var_device.get()) + result = self.stabilizer.update(frame, raw) + show = result["draw_img"] + self.last_result = result + + n += 1 + if n >= 8: + now = time.perf_counter() + self.fps = n / max(1e-6, now - t0) + t0, n = now, 0 + + overlay = show.copy() + if result is None: + mode = "PREVIEW" + color = (0, 200, 255) + info = "" + elif result["status"]: + mode = "OK" + color = (0, 255, 0) + pts = result["hole_points"] + info = f" holes={pts}" + else: + mode = "FAIL" + color = (0, 0, 255) + info = f" {result['msg']}" + cv2.putText( + overlay, + f"{mode} FPS {self.fps:.1f}{info}", + (16, overlay.shape[0] - 20), + cv2.FONT_HERSHEY_SIMPLEX, + 0.7, + color, + 2, + ) + with self.lock: + self.latest = overlay + + self.release_cam() + self.model = None + self.infer_enabled = False + self.after(0, self._stopped_ui) + + def _stopped_ui(self) -> None: + self.btn_open.config(state="normal") + self.btn_infer.config(state="disabled") + self.btn_stop.config(state="disabled") + self.var_status.set("已停止") + + def refresh_view(self) -> None: + frame = None + with self.lock: + if self.latest is not None: + frame = self.latest.copy() + if frame is not None: + try: + rgb = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB) + h, w = rgb.shape[:2] + max_w = max(int(self.canvas.winfo_width()), 640) + max_h = max(int(self.canvas.winfo_height()), 360) + scale = min(max_w / w, max_h / h, 1.0) + size = (max(1, int(w * scale)), max(1, int(h * scale))) + img = Image.fromarray(rgb).resize(size, Image.Resampling.BILINEAR) + self.photo = ImageTk.PhotoImage(img) + self.canvas.config(image=self.photo, text="") + except Exception as exc: + self.var_status.set(f"画面刷新失败: {exc}") + self.after(33, self.refresh_view) + + def save_frame(self) -> None: + with self.lock: + frame = None if self.latest is None else self.latest.copy() + if frame is None: + messagebox.showwarning("保存", "当前没有可保存的画面") + return + out_dir = ROOT / "runs" / "predict_holes" + out_dir.mkdir(parents=True, exist_ok=True) + out = out_dir / f"hole_{int(time.time())}.jpg" + cv2.imwrite(str(out), frame) + self.var_status.set(f"已保存: {out}") + + def on_close(self) -> None: + self.running = False + self.infer_enabled = False + self.release_cam() + self.destroy() + + +if __name__ == "__main__": + HoleInferApp().mainloop() diff --git a/infer_realtime.py b/infer_realtime.py new file mode 100644 index 0000000..ba83171 --- /dev/null +++ b/infer_realtime.py @@ -0,0 +1,588 @@ +"""实时摄像头推理:支持 YOLO / Faster R-CNN 权重。""" + +from __future__ import annotations + +import threading +import time +import tkinter as tk +from pathlib import Path +from tkinter import filedialog, messagebox, ttk + +import cv2 +import numpy as np +from PIL import Image, ImageTk + +from detectors import guess_backend, load_detector + +ROOT = Path(__file__).resolve().parent +COLOR_RESOLUTIONS = [(1280, 720), (848, 480), (640, 480), (1920, 1080)] + + +def default_model_path(backend: str = "yolo") -> str: + if backend == "faster_rcnn": + candidates = [ + ROOT / "runs" / "faster_rcnn" / "gongjian_frcnn" / "weights" / "best.pth", + ROOT / "runs" / "faster_rcnn" / "gongjian_frcnn" / "weights" / "last.pth", + ] + for path in candidates: + if path.exists(): + return str(path) + return str(ROOT / "runs" / "faster_rcnn" / "gongjian_frcnn" / "weights" / "best.pth") + + candidates = [ + ROOT / "ultralytics" / "runs" / "detect" / "runs" / "yolov8_gongjian" / "weights" / "best.pt", + ROOT / "ultralytics" / "runs" / "detect" / "runs" / "yolov8_exp" / "weights" / "best.pt", + ROOT / "ultralytics" / "runs" / "detect" / "runs" / "yolov8_exp" / "weights" / "last.pt", + ROOT / "runs" / "detect" / "yolov8_exp" / "weights" / "best.pt", + ROOT / "yolov8n.pt", + ] + for path in candidates: + if path.exists(): + return str(path) + return str(ROOT / "yolov8n.pt") + + +def list_realsense() -> list[tuple[str, str]]: + try: + import pyrealsense2 as rs + except Exception: + return [] + items = [] + for dev in rs.context().query_devices(): + name = dev.get_info(rs.camera_info.name) + serial = dev.get_info(rs.camera_info.serial_number) + items.append((f"{name} [{serial}]", serial)) + return items + + +class RealSenseRGB: + """与 capture.py 一致:同时开左右红外 + RGB,界面只用 RGB。""" + + def __init__(self, width: int, height: int, fps: int = 30, serial: str | None = None) -> None: + import pyrealsense2 as rs + + self.rs = rs + self.pipeline = None + self.size = (width, height) + last_error: Exception | None = None + attempts = [(width, height, fps)] + [(w, h, fps) for w, h in COLOR_RESOLUTIONS if (w, h) != (width, height)] + # 推理只要 RGB:先试仅彩色(快、省带宽);失败再试红外+RGB(与 capture 相同) + modes = ("rgb_only", "rgb_ir") + + for mode in modes: + for w, h, f in attempts: + pipeline = rs.pipeline() + config = rs.config() + if serial: + config.enable_device(serial) + try: + if mode == "rgb_ir": + config.enable_stream(rs.stream.infrared, 1, w, h, rs.format.y8, f) + config.enable_stream(rs.stream.infrared, 2, w, h, rs.format.y8, f) + cw, ch = (w, h) if (w, h) in COLOR_RESOLUTIONS else (1280, 720) + config.enable_stream(rs.stream.color, cw, ch, rs.format.bgr8, f) + profile = pipeline.start(config) + try: + depth_sensor = profile.get_device().first_depth_sensor() + if depth_sensor.supports(rs.option.emitter_enabled): + depth_sensor.set_option(rs.option.emitter_enabled, 0.0) + except Exception: + pass + for _ in range(5): + pipeline.wait_for_frames(1500) + self.pipeline = pipeline + self.size = (cw, ch) + return + except Exception as exc: + last_error = exc + try: + pipeline.stop() + except Exception: + pass + + raise RuntimeError( + f"无法打开 RealSense RGB(请先关掉 capture.py / RealSense Viewer): {last_error}" + ) + + def read(self) -> tuple[bool, np.ndarray | None]: + if self.pipeline is None: + return False, None + try: + frames = self.pipeline.wait_for_frames(1000) + except Exception: + return False, None + color = frames.get_color_frame() + if not color: + return False, None + return True, np.asanyarray(color.get_data()) + + def release(self) -> None: + if self.pipeline is None: + return + try: + self.pipeline.stop() + except Exception: + pass + self.pipeline = None + + +class Webcam: + def __init__(self, index: int, width: int, height: int, fps: int = 30) -> None: + cap = None + for backend in (cv2.CAP_DSHOW, cv2.CAP_MSMF, cv2.CAP_ANY): + trial = cv2.VideoCapture(index, backend) + if trial.isOpened(): + cap = trial + break + trial.release() + if cap is None or not cap.isOpened(): + raise RuntimeError(f"无法打开摄像头 {index}。本机可试编号 1(0 常被 RealSense UVC 占住)") + + cap.set(cv2.CAP_PROP_FRAME_WIDTH, width) + cap.set(cv2.CAP_PROP_FRAME_HEIGHT, height) + cap.set(cv2.CAP_PROP_FPS, fps) + ok, frame = False, None + for _ in range(15): + ok, frame = cap.read() + if ok and frame is not None: + break + time.sleep(0.05) + if not ok or frame is None: + cap.release() + raise RuntimeError(f"摄像头 {index} 已打开但读不到画面,请换编号或关掉占用程序") + self.cap = cap + + def read(self) -> tuple[bool, np.ndarray | None]: + ok, frame = self.cap.read() + return ok, frame if ok else None + + def release(self) -> None: + self.cap.release() + + +def open_source(source: str, width: int, height: int, serial: str | None, cam_index: int): + if source == "realsense": + return RealSenseRGB(width, height, 30, serial) + return Webcam(cam_index, width, height, 30) + + +class InferApp(tk.Tk): + def __init__(self) -> None: + super().__init__() + self.title("实时检测推理(YOLO / Faster R-CNN)") + self.geometry("1180x820") + self.minsize(980, 700) + + self.model = None + self.cam = None + self.running = False + self.opening = False + self.infer_enabled = False + self.photo: ImageTk.PhotoImage | None = None + self.latest: np.ndarray | None = None + self.fps = 0.0 + self.lock = threading.Lock() + self.cam_lock = threading.Lock() + self.fail_reads = 0 + self.rs_devices = list_realsense() + + self.var_backend = tk.StringVar(value="yolo") + self.var_model = tk.StringVar(value=default_model_path("yolo")) + self.var_num_classes = tk.IntVar(value=2) + self.var_source = tk.StringVar(value="realsense" if self.rs_devices else "webcam") + self.var_rs = tk.StringVar(value=self.rs_devices[0][0] if self.rs_devices else "") + # 本机普通摄像头能出图的多半是 1 + self.var_camera = tk.IntVar(value=1) + self.var_width = tk.IntVar(value=1280) + self.var_height = tk.IntVar(value=720) + self.var_conf = tk.DoubleVar(value=0.25) + self.var_iou = tk.DoubleVar(value=0.7) + self.var_imgsz = tk.IntVar(value=640) + self.var_device = tk.StringVar(value="0") + self.var_status = tk.StringVar(value="就绪:点「打开摄像头」先出画面,再点「开始推理」") + + self._build() + self.protocol("WM_DELETE_WINDOW", self.on_close) + self.after(33, self.refresh_view) + + def _build(self) -> None: + self.columnconfigure(0, weight=1) + self.rowconfigure(0, weight=1) + + view = ttk.Frame(self, padding=8) + view.grid(row=0, column=0, sticky="nsew") + view.columnconfigure(0, weight=1) + view.rowconfigure(0, weight=1) + + self.canvas = tk.Label(view, bg="#111", fg="#eee", text="摄像头画面", width=80, height=20) + self.canvas.grid(row=0, column=0, sticky="nsew") + ttk.Label(view, textvariable=self.var_status).grid(row=1, column=0, sticky="w", pady=(8, 0)) + + panel = ttk.LabelFrame(self, text="推理参数", padding=10) + panel.grid(row=1, column=0, sticky="ew", padx=8, pady=(0, 8)) + for c in range(8): + panel.columnconfigure(c, weight=1) + + ttk.Label(panel, text="算法").grid(row=0, column=0, sticky="w") + ttk.Combobox( + panel, + textvariable=self.var_backend, + values=["yolo", "faster_rcnn", "auto"], + width=12, + state="readonly", + ).grid(row=0, column=1, sticky="w") + ttk.Label(panel, text="RCNN类数(+背景)").grid(row=0, column=2, sticky="w") + ttk.Entry(panel, textvariable=self.var_num_classes, width=6).grid(row=0, column=3, sticky="w") + self.var_backend.trace_add("write", lambda *_: self.on_backend_change()) + + ttk.Label(panel, text="权重文件").grid(row=1, column=0, sticky="w", pady=(8, 0)) + ttk.Entry(panel, textvariable=self.var_model).grid(row=1, column=1, columnspan=5, sticky="ew", padx=4, pady=(8, 0)) + ttk.Button(panel, text="浏览…", command=self.browse_model).grid(row=1, column=6, sticky="ew", pady=(8, 0)) + ttk.Button(panel, text="自动查找", command=self.autofill_model).grid(row=1, column=7, sticky="ew", padx=(4, 0), pady=(8, 0)) + + ttk.Label(panel, text="视频源").grid(row=2, column=0, sticky="w", pady=(8, 0)) + src = ttk.Frame(panel) + src.grid(row=2, column=1, columnspan=3, sticky="w", pady=(8, 0)) + ttk.Radiobutton(src, text="RealSense RGB", variable=self.var_source, value="realsense").pack(side="left") + ttk.Radiobutton(src, text="普通摄像头", variable=self.var_source, value="webcam").pack(side="left", padx=(10, 0)) + + ttk.Label(panel, text="RealSense").grid(row=3, column=0, sticky="w", pady=(8, 0)) + self.cmb_rs = ttk.Combobox( + panel, + textvariable=self.var_rs, + values=[x[0] for x in self.rs_devices], + state="readonly", + ) + self.cmb_rs.grid(row=3, column=1, columnspan=3, sticky="ew", pady=(8, 0)) + ttk.Button(panel, text="刷新设备", command=self.refresh_devices).grid(row=3, column=4, sticky="w", pady=(8, 0)) + ttk.Label(panel, text="摄像头编号").grid(row=3, column=5, sticky="w", pady=(8, 0)) + ttk.Spinbox(panel, from_=0, to=8, textvariable=self.var_camera, width=6).grid( + row=3, column=6, sticky="w", pady=(8, 0) + ) + + ttk.Label(panel, text="分辨率").grid(row=4, column=0, sticky="w", pady=(8, 0)) + ttk.Entry(panel, textvariable=self.var_width, width=8).grid(row=4, column=1, sticky="w", pady=(8, 0)) + ttk.Label(panel, text="x").grid(row=4, column=2, pady=(8, 0)) + ttk.Entry(panel, textvariable=self.var_height, width=8).grid(row=4, column=3, sticky="w", pady=(8, 0)) + ttk.Label(panel, text="imgsz").grid(row=4, column=4, sticky="w", pady=(8, 0)) + ttk.Entry(panel, textvariable=self.var_imgsz, width=8).grid(row=4, column=5, sticky="w", pady=(8, 0)) + ttk.Label(panel, text="设备").grid(row=4, column=6, sticky="w", pady=(8, 0)) + ttk.Combobox(panel, textvariable=self.var_device, values=["0", "cpu"], width=8, state="readonly").grid( + row=4, column=7, sticky="w", pady=(8, 0) + ) + + ttk.Label(panel, text="置信度").grid(row=5, column=0, sticky="w", pady=(8, 0)) + ttk.Scale(panel, from_=0.05, to=0.95, variable=self.var_conf, orient="horizontal").grid( + row=5, column=1, columnspan=2, sticky="ew", pady=(8, 0) + ) + self.lbl_conf = ttk.Label(panel, text="0.25") + self.lbl_conf.grid(row=5, column=3, sticky="w", pady=(8, 0)) + self.var_conf.trace_add("write", lambda *_: self.lbl_conf.config(text=f"{float(self.var_conf.get()):.2f}")) + ttk.Label(panel, text="IoU").grid(row=5, column=4, sticky="w", pady=(8, 0)) + ttk.Entry(panel, textvariable=self.var_iou, width=8).grid(row=5, column=5, sticky="w", pady=(8, 0)) + + btns = ttk.Frame(panel) + btns.grid(row=6, column=0, columnspan=8, sticky="ew", pady=(12, 0)) + self.btn_open = ttk.Button(btns, text="打开摄像头", command=self.open_camera) + self.btn_open.pack(side="left") + self.btn_infer = ttk.Button(btns, text="开始推理", command=self.start_infer, state="disabled") + self.btn_infer.pack(side="left", padx=8) + self.btn_stop = ttk.Button(btns, text="停止", command=self.stop, state="disabled") + self.btn_stop.pack(side="left") + ttk.Button(btns, text="保存当前帧", command=self.save_frame).pack(side="left", padx=8) + + def refresh_devices(self) -> None: + self.rs_devices = list_realsense() + labels = [x[0] for x in self.rs_devices] + self.cmb_rs["values"] = labels + if labels: + self.var_rs.set(labels[0]) + self.var_status.set(f"找到 {len(labels)} 台 RealSense") + else: + self.var_rs.set("") + self.var_status.set("未检测到 RealSense,请改用普通摄像头或检查驱动") + + def current_rs_serial(self) -> str | None: + label = self.var_rs.get() + for text, serial in self.rs_devices: + if text == label: + return serial + return None + + def on_backend_change(self) -> None: + backend = self.var_backend.get() + if backend == "auto": + return + self.var_model.set(default_model_path(backend if backend != "auto" else "yolo")) + + def browse_model(self) -> None: + initial = self.var_model.get() + initial_dir = str(Path(initial).parent) if initial else str(ROOT) + path = filedialog.askopenfilename( + title="选择检测权重", + initialdir=initial_dir, + filetypes=[("PyTorch 权重", "*.pt *.pth"), ("所有文件", "*.*")], + ) + if path: + self.var_model.set(path) + if self.var_backend.get() == "auto": + self.var_status.set(f"auto 将按文件识别为: {guess_backend(path)}") + + def autofill_model(self) -> None: + backend = self.var_backend.get() + if backend == "auto": + backend = "yolo" + path = default_model_path(backend) + self.var_model.set(path) + self.var_status.set(f"已填入: {path}") + + def release_cam(self) -> None: + with self.cam_lock: + if self.cam is not None: + try: + self.cam.release() + except Exception: + pass + self.cam = None + + def open_camera(self) -> None: + if self.running or self.opening: + return + self.opening = True + self.btn_open.config(state="disabled") + self.var_status.set("正在打开摄像头…(请稍候,不要重复点击)") + self.update_idletasks() + + source = self.var_source.get() + width = int(self.var_width.get()) + height = int(self.var_height.get()) + serial = self.current_rs_serial() + cam_index = int(self.var_camera.get()) + + def worker() -> None: + cam = None + err = "" + try: + self.release_cam() + if source == "realsense": + devices = list_realsense() + if not devices: + raise RuntimeError("没有 RealSense 设备。可改选「普通摄像头」,编号试 1") + use_serial = serial or devices[0][1] + cam = open_source("realsense", width, height, use_serial, cam_index) + else: + cam = open_source("webcam", width, height, None, cam_index) + ok, frame = cam.read() + if not ok or frame is None: + raise RuntimeError("摄像头打开后读不到画面") + except Exception as exc: + if cam is not None: + try: + cam.release() + except Exception: + pass + cam = None + err = str(exc) + self.after(0, lambda: self._open_done(cam, err)) + + threading.Thread(target=worker, daemon=True).start() + + def _open_done(self, cam, err: str) -> None: + self.opening = False + if err or cam is None: + self.btn_open.config(state="normal") + self.btn_infer.config(state="disabled") + self.btn_stop.config(state="disabled") + self.var_status.set(err or "打开失败") + messagebox.showerror("摄像头", err or "打开失败") + return + + with self.cam_lock: + self.cam = cam + self.running = True + self.infer_enabled = False + self.fail_reads = 0 + self.btn_open.config(state="disabled") + self.btn_infer.config(state="normal") + self.btn_stop.config(state="normal") + w, h = getattr(cam, "size", (self.var_width.get(), self.var_height.get())) + self.var_status.set(f"摄像头已打开 {w}x{h}(预览中)。确认画面后点「开始推理」") + threading.Thread(target=self.loop_capture, daemon=True).start() + + def start_infer(self) -> None: + if not self.running or self.cam is None: + messagebox.showwarning("推理", "请先打开摄像头") + return + model_path = Path(self.var_model.get().strip()) + if not model_path.is_absolute(): + model_path = ROOT / model_path + if not model_path.exists(): + messagebox.showerror("权重", f"找不到权重文件:\n{model_path}") + return + + self.btn_infer.config(state="disabled") + self.var_status.set(f"正在加载模型: {model_path.name} …") + + # 取一帧热身,避免和采集线程同时 wait_for_frames + warmup = None + with self.lock: + if self.latest is not None: + warmup = self.latest.copy() + + def load() -> None: + try: + backend = self.var_backend.get() + model = load_detector( + backend=backend, + weights=model_path, + device=self.var_device.get(), + num_classes=int(self.var_num_classes.get()), + conf=float(self.var_conf.get()), + ) + if warmup is not None: + model.plot( + warmup, + conf=float(self.var_conf.get()), + iou=float(self.var_iou.get()), + imgsz=int(self.var_imgsz.get()), + ) + except Exception as exc: + self.after(0, lambda e=str(exc): self._infer_load_failed(e)) + return + self.model = model + self.infer_enabled = True + used = getattr(model, "backend", backend) + self.after(0, lambda: self.var_status.set(f"推理中 backend={used} 模型={model_path.name}")) + + threading.Thread(target=load, daemon=True).start() + + def _infer_load_failed(self, msg: str) -> None: + self.infer_enabled = False + self.model = None + self.btn_infer.config(state="normal") + self.var_status.set(msg) + messagebox.showerror("模型加载失败", msg) + + def stop(self) -> None: + self.running = False + self.infer_enabled = False + self.var_status.set("正在停止…") + + def loop_capture(self) -> None: + t0, n = time.perf_counter(), 0 + while self.running: + with self.cam_lock: + cam = self.cam + if cam is None: + break + ok, frame = cam.read() + if not ok or frame is None: + self.fail_reads += 1 + if self.fail_reads >= 30: + self.after(0, lambda: self.var_status.set("连续读帧失败,请停止后重开摄像头")) + self.fail_reads = 0 + time.sleep(0.02) + continue + self.fail_reads = 0 + + plotted = frame + det = 0 + if self.infer_enabled and self.model is not None: + try: + dets = self.model.detect( + frame, + conf=float(self.var_conf.get()), + iou=float(self.var_iou.get()), + imgsz=int(self.var_imgsz.get()), + ) + plotted = frame.copy() + for d in dets: + x1, y1, x2, y2 = d.xyxy + cv2.rectangle(plotted, (x1, y1), (x2, y2), (0, 255, 0), 2) + cv2.putText( + plotted, + f"{d.conf:.2f}", + (x1, max(20, y1 - 6)), + cv2.FONT_HERSHEY_SIMPLEX, + 0.6, + (0, 255, 0), + 2, + ) + det = len(dets) + except Exception as exc: + self.after(0, lambda e=str(exc): self.var_status.set(f"推理错误: {e}")) + time.sleep(0.05) + continue + + n += 1 + if n >= 8: + now = time.perf_counter() + self.fps = n / max(1e-6, now - t0) + t0, n = now, 0 + + show = plotted.copy() + mode = "DET" if self.infer_enabled else "PREVIEW" + cv2.putText( + show, + f"{mode} FPS {self.fps:.1f} det={det} conf>={float(self.var_conf.get()):.2f}", + (16, 36), + cv2.FONT_HERSHEY_SIMPLEX, + 0.8, + (0, 255, 0) if self.infer_enabled else (0, 200, 255), + 2, + ) + with self.lock: + self.latest = show + + self.release_cam() + self.model = None + self.infer_enabled = False + self.after(0, self._stopped_ui) + + def _stopped_ui(self) -> None: + self.btn_open.config(state="normal") + self.btn_infer.config(state="disabled") + self.btn_stop.config(state="disabled") + self.var_status.set("已停止") + + def refresh_view(self) -> None: + frame = None + with self.lock: + if self.latest is not None: + frame = self.latest.copy() + if frame is not None: + try: + rgb = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB) + h, w = rgb.shape[:2] + max_w = max(int(self.canvas.winfo_width()), 640) + max_h = max(int(self.canvas.winfo_height()), 360) + scale = min(max_w / w, max_h / h, 1.0) + size = (max(1, int(w * scale)), max(1, int(h * scale))) + img = Image.fromarray(rgb).resize(size, Image.Resampling.BILINEAR) + self.photo = ImageTk.PhotoImage(img) + self.canvas.config(image=self.photo, text="") + except Exception as exc: + self.var_status.set(f"画面刷新失败: {exc}") + self.after(33, self.refresh_view) + + def save_frame(self) -> None: + with self.lock: + frame = None if self.latest is None else self.latest.copy() + if frame is None: + messagebox.showwarning("保存", "当前没有可保存的画面") + return + out_dir = ROOT / "runs" / "predict_realtime" + out_dir.mkdir(parents=True, exist_ok=True) + out = out_dir / f"shot_{int(time.time())}.jpg" + cv2.imwrite(str(out), frame) + self.var_status.set(f"已保存: {out}") + + def on_close(self) -> None: + self.running = False + self.infer_enabled = False + self.release_cam() + self.destroy() + + +if __name__ == "__main__": + InferApp().mainloop() diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..8b4dd10 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,15 @@ +opencv-python +numpy +pillow +pyrealsense2 +pyyaml +tqdm +matplotlib +ipython +scipy +pandas +jupyter +notebook +torch +torchvision +-e ./ultralytics diff --git a/ros_flexiv/CHANGELOG.md b/ros_flexiv/CHANGELOG.md new file mode 100644 index 0000000..aac3d72 --- /dev/null +++ b/ros_flexiv/CHANGELOG.md @@ -0,0 +1,21 @@ +# Changelog — ros_flexiv + +格式:`[版本] YYYY-MM-DD` — 摘要 + +## [0.1.0] 2026-08-21 — 架构初版 + +### Added +- 跨平台 Python 核心包 `flexiv_assembly`(robot/camera/calib/gripper/tactile/projects/motion/app) +- 工业风 HMI:项目运行、标定、安全点/初始点配置、Mock 后端 +- 通止规螺纹检测项目脚本骨架(双孔、悬停高度、稳坐标、暂停回安全点) +- RealSense 内参导出脚本;棋盘格手眼标定 + 自动走点方案(FOV 未知时的两阶段策略) +- 触觉算法预留接口 `tactile/interface.py` +- 夹爪抽象(大寰 PGEA-100-40 适配器占位,可替换) +- Flexiv 后端:`mock` / `rdk` / `ros2` / `sim_isaac` 四档 +- ROS2 工作空间骨架:`flexiv_msgs`、`flexiv_robot_driver`、`flexiv_vision_bridge`、`flexiv_bringup` +- 文档:ARCHITECTURE / DEPENDENCIES / MIGRATION_UBUNTU / 手眼自动走点方案 +- 依赖说明与 `pyproject.toml` + +### Notes +- Windows 无法联真机/ROS2,默认 `--backend mock` 验证状态机与 UI。 +- 迁移 Ubuntu 后接入 `flexivrdk` 与 RealSense,再切 `rdk` 或 `ros2`。 diff --git a/ros_flexiv/DEPENDENCIES.md b/ros_flexiv/DEPENDENCIES.md new file mode 100644 index 0000000..7da047f --- /dev/null +++ b/ros_flexiv/DEPENDENCIES.md @@ -0,0 +1,67 @@ +# 依赖说明 — ros_flexiv + +## Windows 开发(本机) + +```text +Python >= 3.10 +PySide6 +opencv-python +numpy +pyyaml +Pillow +pyrealsense2 # 有相机时 +# 可选 +torch / torchvision # 复用 camera_test 视觉权重时 +``` + +安装: + +```powershell +cd ros_flexiv +pip install -e ".[dev]" +# 有 RealSense: +pip install pyrealsense2 +``` + +**不需要**在 Windows 上安装 ROS2 / Isaac Sim 才能跑 Mock HMI。 + +## Ubuntu 22.04 工控机(落地) + +### 系统 +- Ubuntu 22.04 LTS +- NVIDIA 驱动 + CUDA(3090) +- ROS 2 Humble(推荐) + +### Python / 硬件 +```text +flexivrdk # pip install flexivrdk(需匹配机器人软件版本) +pyrealsense2 +librealsense2 +PySide6 / python3-pyqt5 +opencv-python +numpy pyyaml +``` + +### ROS2 包编译 +```bash +cd ros_flexiv/ros2_ws +rosdep install --from-paths src -y --ignore-src +colcon build --symlink-install +source install/setup.bash +``` + +### 仿真(可选) +- NVIDIA Isaac Sim + Flexiv Sim Plugin +- 或 Flexiv Elements / Primitive 在线文档对应版本 + +### 第三方源码 +- `third_party/flexiv_rdk` — GitHub flexivrobotics/flexiv_rdk +- `third_party/flexiv_description` — URDF + +## 与 camera_test 的关系 + +视觉二阶段检测可复用上级目录已有脚本: + +- `../hole_detect.py` / `../detectors.py` / `../infer_holes_realtime.py` + +本仓库通过 `flexiv_assembly.vision.hole_bridge` 做适配,不强制复制算法代码,便于两边各自升级。 diff --git a/ros_flexiv/README.md b/ros_flexiv/README.md new file mode 100644 index 0000000..b3dc965 --- /dev/null +++ b/ros_flexiv/README.md @@ -0,0 +1,47 @@ +# ros_flexiv — Flexiv Rizon 4 装配视觉系统 + +跨平台(Windows 开发 / Ubuntu 22.04 工控落地)的机械臂装配框架:HMI + ROS2 + RealSense + Flexiv RDK/仿真 + 可插拔项目脚本。 + +## 设计原则 + +1. **核心逻辑与 ROS2 解耦**:`src/flexiv_assembly` 纯 Python,Windows 可用 `mock` 跑通流程。 +2. **硬件全接口化**:相机 / 机械臂 / 夹爪 / 触觉均可替换。 +3. **项目脚本插件化**:新项目只需加 YAML + 一个 Script 类。 +4. **仿真优先落地**:无真机时用 Mock;有 IsaacSim / Flexiv 仿真时切 `sim`;真机切 `rdk`/`ros2`。 + +## 快速开始(Windows 开发) + +```powershell +cd d:\camera_test\ros_flexiv +pip install -e . +python scripts/run_hmi.py --backend mock +``` + +## Ubuntu 22.04 落地 + +见 [docs/MIGRATION_UBUNTU.md](docs/MIGRATION_UBUNTU.md)。 + +## 目录 + +| 路径 | 说明 | +|------|------| +| `src/flexiv_assembly/` | 可移植 Python 核心 | +| `configs/` | 硬件与项目配置 | +| `ros2_ws/` | ROS2 包骨架(Ubuntu 编译) | +| `scripts/` | 入口脚本 | +| `third_party/` | Flexiv RDK / URDF 克隆 | +| `docs/` | 架构、标定方案、迁移 | +| `CHANGELOG.md` | 每次 AI/人工升级记录 | + +## 相机标定结论(D405 / D435) + +- **出厂内参/畸变**:SDK 可读,一般装配精度下**优先直接取内参**,不必强制重新标定。 +- **建议仍做**:两台相机的**手眼标定**(D435 眼在手外、D405 眼在手上)。 +- **可选**:棋盘格复核内参(精度审计),见 `scripts/dump_realsense_intrinsics.py`。 + +## 第一个项目:通止规螺纹检测 + +配置:`configs/projects/thread_gauge.yaml` +脚本:`flexiv_assembly.projects.thread_gauge` + +流程:初始拍照点 → 稳坐标 → 悬停 → 腕部相机双孔 → 触觉检测(预留)→ 复位初始点;暂停可回安全点。 diff --git a/ros_flexiv/configs/calibration.yaml b/ros_flexiv/configs/calibration.yaml new file mode 100644 index 0000000..f7a5c73 --- /dev/null +++ b/ros_flexiv/configs/calibration.yaml @@ -0,0 +1,23 @@ +board: + type: chessboard + cols: 9 # 内角点列 + rows: 6 # 内角点行 + square_size_m: 0.025 # 方格边长 + +handeye: + methods: [TSAI, PARK, HORAUD, ANDREFF, DANIILIDIS] + min_samples: 12 + max_reproj_px: 1.5 + +auto_waypoints: + board_distance_m: 0.45 + margin_ratio: 0.10 + trans_steps_m: [0.0, 0.03, -0.03, 0.05, -0.05] + z_steps_m: [0.0, 0.02, -0.02] + rot_deg: [0, 8, -8, 12, -12] + target_samples: 20 + +quality: + max_solver_spread_mm: 3.0 + max_axxb_mm: 2.0 + warn_coplanar: true diff --git a/ros_flexiv/configs/cameras.yaml b/ros_flexiv/configs/cameras.yaml new file mode 100644 index 0000000..54766a3 --- /dev/null +++ b/ros_flexiv/configs/cameras.yaml @@ -0,0 +1,17 @@ +cameras: + d435: + role: eye_to_hand + serial: "" # 空=自动按名称匹配 + name_hint: "D435" + stream: color + width: 1280 + height: 720 + fps: 30 + d405: + role: eye_in_hand + serial: "" + name_hint: "D405" + stream: color + width: 1280 + height: 720 + fps: 30 diff --git a/ros_flexiv/configs/gripper.yaml b/ros_flexiv/configs/gripper.yaml new file mode 100644 index 0000000..e0bb04b --- /dev/null +++ b/ros_flexiv/configs/gripper.yaml @@ -0,0 +1,7 @@ +# 夹爪(可替换型号) +model: dharma_pgea_100_40 +comm: modbus_rtu # 占位 +port: "COM3" # Windows;Ubuntu 改为 /dev/ttyUSB* +baud: 115200 +open_pos: 40.0 +close_force: 50.0 diff --git a/ros_flexiv/configs/projects/_template.yaml b/ros_flexiv/configs/projects/_template.yaml new file mode 100644 index 0000000..00cca80 --- /dev/null +++ b/ros_flexiv/configs/projects/_template.yaml @@ -0,0 +1,12 @@ +# 新项目模板 +# 1) 复制本文件为 configs/projects/.yaml +# 2) 复制 projects/_template 为 projects//script.py 并改类名 +# 3) 在 HMI 刷新即可出现 + +id: my_new_project +name: 我的新项目 +version: "0.1.0" +enabled: false +module: flexiv_assembly.projects._template.script +class: TemplateScript +params: {} diff --git a/ros_flexiv/configs/projects/thread_gauge.yaml b/ros_flexiv/configs/projects/thread_gauge.yaml new file mode 100644 index 0000000..2d34126 --- /dev/null +++ b/ros_flexiv/configs/projects/thread_gauge.yaml @@ -0,0 +1,22 @@ +id: thread_gauge +name: 通止规螺纹孔检测 +version: "0.1.0" +description: > + 外部相机定位工件 → 悬停 → 腕部相机双螺纹孔 → 触觉通止检测(预留)→ 复位。 + +enabled: true +module: flexiv_assembly.projects.thread_gauge.script +class: ThreadGaugeScript + +params: + detector_backend: yolo # yolo | faster_rcnn + weights: "" # 空则用 camera_test 默认 gongjian best.pt + hole_config: "" # 空则用 ../hole_detect_config.yaml + camera_eye_to_hand: d435 + camera_eye_in_hand: d405 + standoff_m: 0.08 + coord_window: 7 + coord_ema: 0.35 + coord_max_jump_m: 0.01 + settle_frames: 10 + require_both_holes: true diff --git a/ros_flexiv/configs/robot.yaml b/ros_flexiv/configs/robot.yaml new file mode 100644 index 0000000..fc5311d --- /dev/null +++ b/ros_flexiv/configs/robot.yaml @@ -0,0 +1,17 @@ +# 机器人与安全点(真机部署时修改) +robot_sn: "Rizon4-XXXXXX" +backend: mock # mock | rdk | ros2 | sim_isaac + +# 初始拍照点(相机视野内,base 系 xyz + quat wxyz) +inspect_home: + xyz: [0.55, 0.0, 0.45] + quat_wxyz: [1.0, 0.0, 0.0, 0.0] + +# 安全点(暂停复位,与 inspect_home 不同) +safe_home: + xyz: [0.40, 0.0, 0.55] + quat_wxyz: [1.0, 0.0, 0.0, 0.0] + +tcp_standoff_m: 0.08 # 悬停相对工件表面预留高度,可调 +max_lin_vel: 0.25 +max_ang_vel: 0.8 diff --git a/ros_flexiv/docs/ARCHITECTURE.md b/ros_flexiv/docs/ARCHITECTURE.md new file mode 100644 index 0000000..af9062d --- /dev/null +++ b/ros_flexiv/docs/ARCHITECTURE.md @@ -0,0 +1,42 @@ +# 架构说明 + +``` +┌─────────────────────────────────────────────────────────────┐ +│ HMI (PySide6) │ +│ 运行脚本 | 标定 | 点位配置 | 日志 | 仿真/真机切换 │ +└───────────────┬─────────────────────────────────────────────┘ + │ ScriptRunner / ProjectRegistry +┌───────────────▼─────────────────────────────────────────────┐ +│ Project Scripts (插件) │ +│ thread_gauge | (future projects...) │ +└───────┬───────────────┬───────────────┬─────────────────────┘ + │ │ │ + Motion/Pose Vision Bridge Tactile API + │ │ │ +┌───────▼──────┐ ┌──────▼──────┐ ┌─────▼──────┐ +│ RobotBackend │ │ RealSense │ │ Tactile │ +│ mock/rdk/ │ │ D435/D405 │ │ Interface │ +│ ros2/sim │ │ + hole det │ │ (自研预留) │ +└───────┬──────┘ └─────────────┘ └────────────┘ + │ + Flexiv Rizon 4 ←→ GripperBackend (PGEA / 可替换) +``` + +## 后端模式 + +| mode | 用途 | +|------|------| +| `mock` | Windows 无真机联调状态机/UI | +| `rdk` | 直连 `flexivrdk`(工控机推荐早期联调) | +| `ros2` | 经 ROS2 topic/service(多节点扩展) | +| `sim_isaac` | Isaac Sim + Flexiv Plugin(渲染仿真) | + +## 坐标稳帧 + +视觉输出像素/三维坐标使用 `CoordStabilizer`:中位数窗 + EMA + 最大跳变门限,避免单帧闪烁导致规划抖动。 + +## 手眼与两相机 + +- D435:眼在手外 → `T_base_cam_d435` +- D405:眼在手上 → `T_flange_cam_d405`(或 TCP 系,配置可选) +- 规划时统一变换到 `base` / `tcp` 系 diff --git a/ros_flexiv/docs/HANDEYE_AUTO_WAYPOINTS.md b/ros_flexiv/docs/HANDEYE_AUTO_WAYPOINTS.md new file mode 100644 index 0000000..f3e5212 --- /dev/null +++ b/ros_flexiv/docs/HANDEYE_AUTO_WAYPOINTS.md @@ -0,0 +1,50 @@ +# 手眼自动走点方案(无真机 FOV 未知) + +## 问题 + +没有真机时无法实测「棋盘格在画面里多大、臂能伸多远还不丢板」。若盲目生成关节空间轨迹,易导致板出画、奇异、碰撞。 + +## 推荐:两阶段 + 虚拟视锥 + +### 阶段 0 — 配置(现在就能做) + +在 `configs/calibration.yaml` 填: + +- 棋盘格:内角点行列、方格边长 (mm) +- 相机:D435/D405 标称水平/垂直 FOV(或从内参推) +- 假设板心距离相机 `board_distance_m`(先 0.35~0.55,真机再改) +- 机器人工作空间软限位(关节或笛卡尔盒子) + +### 阶段 1 — 示教锚点(真机第一次上电,1 分钟) + +人工把臂移到:**标定板完整、清晰、大致居中** 的一个姿态,点「设为锚点」。 +只需要 **1 个** 合格锚点,不靠猜 FOV。 + +### 阶段 2 — 自动扇出采样 + +以锚点法兰位姿为中心,在 SE(3) 小扰动生成候选: + +- 平移:±X/±Y/±Z(默认 30/30/20 mm 阶梯) +- 旋转:绕板法向/绕相机光轴小角度(±10°~15°) +- **视锥过滤**:用内参 + `board_distance_m` 估计板四角是否仍落在图像内(留 10% 边距) +- **多样性门控**:拒绝共面退化集(平移主成分、旋转跨度) +- 实际采集时:**只有 OpenCV 检出棋盘且角点误差 < 阈值才入库** + +目标:每相机 **15~25** 组优质样本。 + +### 阶段 3 — 求解与精度报告 + +- Eye-in-hand / Eye-to-hand 分别调用 `calibrateHandEye`(手外对法兰位姿做逆变换) +- 多算法交叉(TSAI / PARK / DANIILIDIS…)一致性 +- 输出:重投影误差、AX=XB 残差、留一法、共面警告 +- **自动诊断文案**:模糊、过曝、样本过少、近似共面、跳变过大等 + +### Windows 现在能做什么 + +- UI 走完流程、生成「计划走点 JSON」 +- Mock 后端模拟「检出成功/失败」 +- 真机到了:同一套计划 + 锚点示教即可采数 + +## 为何不强制重标 D400 内参 + +D405/D435 出厂标定写在设备里,深度/RGB 对齐依赖它。装配级手眼通常 **读取内参即可**;若审计超差再棋盘格复核,避免覆盖出厂模型导致深度异常。 diff --git a/ros_flexiv/docs/MIGRATION_UBUNTU.md b/ros_flexiv/docs/MIGRATION_UBUNTU.md new file mode 100644 index 0000000..03dec61 --- /dev/null +++ b/ros_flexiv/docs/MIGRATION_UBUNTU.md @@ -0,0 +1,13 @@ +# Ubuntu 22.04 迁移清单 + +1. 拷贝整个 `ros_flexiv/`(可不含 Windows 虚拟环境) +2. 安装依赖见 `DEPENDENCIES.md` +3. 确认 RealSense 串口/USB、Flexiv 网段互通 +4. 填写 `configs/robot.yaml` 序列号、安全点、初始拍照点 +5. `python scripts/dump_realsense_intrinsics.py` 导出两相机内参 +6. 完成 D435 / D405 手眼标定,结果写入 `data/calib/` +7. `colcon build` ROS2 包,或直接 `rdk` 后端验证运动 +8. HMI:`python scripts/run_hmi.py --backend rdk` +9. 仿真:安装 Isaac Sim Flexiv Plugin 后 `--backend sim_isaac` + +Windows 上验证过的脚本状态机无需改业务逻辑,只切 backend 与配置路径。 diff --git a/ros_flexiv/pyproject.toml b/ros_flexiv/pyproject.toml new file mode 100644 index 0000000..8dd39dc --- /dev/null +++ b/ros_flexiv/pyproject.toml @@ -0,0 +1,28 @@ +[build-system] +requires = ["setuptools>=68", "wheel"] +build-backend = "setuptools.build_meta" + +[project] +name = "flexiv-assembly" +version = "0.1.0" +description = "Flexiv Rizon4 assembly vision framework (Windows mock / Ubuntu deploy)" +readme = "README.md" +requires-python = ">=3.10" +dependencies = [ + "numpy>=1.24", + "opencv-python>=4.8", + "PyYAML>=6.0", + "Pillow>=10.0", + "PySide6>=6.5", +] + +[project.optional-dependencies] +dev = ["pytest>=7.0"] +camera = ["pyrealsense2"] +robot = ["flexivrdk"] + +[project.scripts] +flexiv-hmi = "flexiv_assembly.app.main:main" + +[tool.setuptools.packages.find] +where = ["src"] diff --git a/ros_flexiv/ros2_ws/src/flexiv_msgs/CMakeLists.txt b/ros_flexiv/ros2_ws/src/flexiv_msgs/CMakeLists.txt new file mode 100644 index 0000000..1649491 --- /dev/null +++ b/ros_flexiv/ros2_ws/src/flexiv_msgs/CMakeLists.txt @@ -0,0 +1,12 @@ +cmake_minimum_required(VERSION 3.8) +project(flexiv_msgs) +find_package(ament_cmake REQUIRED) +find_package(rosidl_default_generators REQUIRED) +find_package(std_msgs REQUIRED) +find_package(geometry_msgs REQUIRED) +rosidl_generate_interfaces(${PROJECT_NAME} + "msg/RobotState.msg" + "msg/ScriptCommand.msg" + DEPENDENCIES std_msgs geometry_msgs +) +ament_package() diff --git a/ros_flexiv/ros2_ws/src/flexiv_msgs/msg/RobotState.msg b/ros_flexiv/ros2_ws/src/flexiv_msgs/msg/RobotState.msg new file mode 100644 index 0000000..3ed3cb9 --- /dev/null +++ b/ros_flexiv/ros2_ws/src/flexiv_msgs/msg/RobotState.msg @@ -0,0 +1,4 @@ +std_msgs/Header header +geometry_msgs/Pose tcp_pose +float64[] joint_pos +string fault diff --git a/ros_flexiv/ros2_ws/src/flexiv_msgs/msg/ScriptCommand.msg b/ros_flexiv/ros2_ws/src/flexiv_msgs/msg/ScriptCommand.msg new file mode 100644 index 0000000..df1b682 --- /dev/null +++ b/ros_flexiv/ros2_ws/src/flexiv_msgs/msg/ScriptCommand.msg @@ -0,0 +1,3 @@ +std_msgs/Header header +string project_id +string action # start|pause|stop|reset_safe diff --git a/ros_flexiv/ros2_ws/src/flexiv_msgs/package.xml b/ros_flexiv/ros2_ws/src/flexiv_msgs/package.xml new file mode 100644 index 0000000..d7608f9 --- /dev/null +++ b/ros_flexiv/ros2_ws/src/flexiv_msgs/package.xml @@ -0,0 +1,18 @@ + + + + flexiv_msgs + 0.1.0 + Messages for Flexiv assembly stack + dev + Apache-2.0 + ament_cmake + std_msgs + geometry_msgs + rosidl_default_generators + rosidl_default_runtime + rosidl_interface_packages + + ament_cmake + + diff --git a/ros_flexiv/ros2_ws/src/flexiv_robot_driver/flexiv_robot_driver/__init__.py b/ros_flexiv/ros2_ws/src/flexiv_robot_driver/flexiv_robot_driver/__init__.py new file mode 100644 index 0000000..5bb534f --- /dev/null +++ b/ros_flexiv/ros2_ws/src/flexiv_robot_driver/flexiv_robot_driver/__init__.py @@ -0,0 +1 @@ +# package diff --git a/ros_flexiv/ros2_ws/src/flexiv_robot_driver/flexiv_robot_driver/driver_node.py b/ros_flexiv/ros2_ws/src/flexiv_robot_driver/flexiv_robot_driver/driver_node.py new file mode 100644 index 0000000..d6e342e --- /dev/null +++ b/ros_flexiv/ros2_ws/src/flexiv_robot_driver/flexiv_robot_driver/driver_node.py @@ -0,0 +1,8 @@ +"""Ubuntu 上实现:读 RDK 状态,提供 MoveLin service/action。""" + +def main(): + print("flexiv_robot_driver stub — implement with rclpy + flexivrdk on Ubuntu 22.04") + + +if __name__ == "__main__": + main() diff --git a/ros_flexiv/ros2_ws/src/flexiv_robot_driver/package.xml b/ros_flexiv/ros2_ws/src/flexiv_robot_driver/package.xml new file mode 100644 index 0000000..9d63d43 --- /dev/null +++ b/ros_flexiv/ros2_ws/src/flexiv_robot_driver/package.xml @@ -0,0 +1,15 @@ + + + + flexiv_robot_driver + 0.1.0 + Flexiv RDK ROS2 driver stub — implement on Ubuntu + dev + Apache-2.0 + rclpy + flexiv_msgs + ament_copyright + + ament_python + + diff --git a/ros_flexiv/ros2_ws/src/flexiv_robot_driver/resource/flexiv_robot_driver b/ros_flexiv/ros2_ws/src/flexiv_robot_driver/resource/flexiv_robot_driver new file mode 100644 index 0000000..0d2f875 --- /dev/null +++ b/ros_flexiv/ros2_ws/src/flexiv_robot_driver/resource/flexiv_robot_driver @@ -0,0 +1 @@ +# marker diff --git a/ros_flexiv/ros2_ws/src/flexiv_robot_driver/setup.py b/ros_flexiv/ros2_ws/src/flexiv_robot_driver/setup.py new file mode 100644 index 0000000..c075484 --- /dev/null +++ b/ros_flexiv/ros2_ws/src/flexiv_robot_driver/setup.py @@ -0,0 +1,18 @@ +from setuptools import setup +package_name = 'flexiv_robot_driver' +setup( + name=package_name, + version='0.1.0', + packages=[package_name], + data_files=[ + ('share/ament_index/resource_index/packages', ['resource/' + package_name]), + ('share/' + package_name, ['package.xml']), + ], + install_requires=['setuptools'], + zip_safe=True, + maintainer='dev', + maintainer_email='dev@local', + description='Flexiv RDK ROS2 driver stub', + license='Apache-2.0', + entry_points={'console_scripts': ['driver = flexiv_robot_driver.driver_node:main']}, +) diff --git a/ros_flexiv/scripts/dump_realsense_intrinsics.py b/ros_flexiv/scripts/dump_realsense_intrinsics.py new file mode 100644 index 0000000..c9c77ec --- /dev/null +++ b/ros_flexiv/scripts/dump_realsense_intrinsics.py @@ -0,0 +1,25 @@ +#!/usr/bin/env python3 +"""导出已连接 RealSense 出厂内参到 data/calib/intrinsics.json""" + +from __future__ import annotations + +import json +from pathlib import Path + +from flexiv_assembly.camera.intrinsics import dump_realsense_intrinsics + +ROOT = Path(__file__).resolve().parents[1] + + +def main() -> None: + data = dump_realsense_intrinsics() + out = ROOT / "data" / "calib" / "intrinsics.json" + out.parent.mkdir(parents=True, exist_ok=True) + out.write_text(json.dumps(data, indent=2), encoding="utf-8") + print(f"saved {out} devices={len(data)}") + for d in data: + print(f" - {d['name']} [{d['serial']}] fx={d['fx']:.1f} fy={d['fy']:.1f}") + + +if __name__ == "__main__": + main() diff --git a/ros_flexiv/scripts/handeye_solve.py b/ros_flexiv/scripts/handeye_solve.py new file mode 100644 index 0000000..9a1534e --- /dev/null +++ b/ros_flexiv/scripts/handeye_solve.py @@ -0,0 +1,56 @@ +#!/usr/bin/env python3 +"""最小手眼求解示例:从已保存的 R,t 列表求解(采集流程真机再接)。""" + +from __future__ import annotations + +import argparse +from pathlib import Path + +import numpy as np +import yaml + +from flexiv_assembly.calibration.handeye import solve_handeye +from flexiv_assembly.calibration.quality_report import diagnose + + +def main() -> None: + parser = argparse.ArgumentParser() + parser.add_argument("--setup", choices=["eye_in_hand", "eye_to_hand"], required=True) + parser.add_argument("--session", type=Path, required=True, help="含 poses.yaml 的会话目录") + parser.add_argument("--out", type=Path, required=True) + args = parser.parse_args() + + data = yaml.safe_load((args.session / "poses.yaml").read_text(encoding="utf-8")) + Rg = [np.asarray(x, float) for x in data["R_gripper2base"]] + tg = [np.asarray(x, float).reshape(3, 1) for x in data["t_gripper2base"]] + Rt = [np.asarray(x, float) for x in data["R_target2cam"]] + tt = [np.asarray(x, float).reshape(3, 1) for x in data["t_target2cam"]] + + results = [] + for m in ["TSAI", "PARK", "HORAUD", "ANDREFF", "DANIILIDIS"]: + try: + results.append(solve_handeye(Rg, tg, Rt, tt, setup=args.setup, method=m)) + except Exception as exc: + print("skip", m, exc) + + if not results: + raise SystemExit("无求解结果") + # 简化 spread:平移向量标准差 + ts = np.stack([r.t for r in results], axis=0) + spread = float(np.linalg.norm(ts.std(axis=0)) * 1000) + report = diagnose(len(Rg), spread, spread, 0.5, False, {"handeye": {"min_samples": 8}, "quality": {}}) + best = results[-1] + args.out.parent.mkdir(parents=True, exist_ok=True) + payload = { + "setup": args.setup, + "method": best.method, + "T": best.T.tolist(), + "quality": report.__dict__, + } + args.out.write_text(yaml.safe_dump(payload, allow_unicode=True), encoding="utf-8") + print("wrote", args.out) + print("ok", report.ok, report.errors or report.messages) + + +if __name__ == "__main__": + main() diff --git a/ros_flexiv/scripts/run_hmi.py b/ros_flexiv/scripts/run_hmi.py new file mode 100644 index 0000000..676d7b7 --- /dev/null +++ b/ros_flexiv/scripts/run_hmi.py @@ -0,0 +1,5 @@ +#!/usr/bin/env python3 +from flexiv_assembly.app.main import main + +if __name__ == "__main__": + main() diff --git a/ros_flexiv/src/flexiv_assembly.egg-info/PKG-INFO b/ros_flexiv/src/flexiv_assembly.egg-info/PKG-INFO new file mode 100644 index 0000000..c0853c3 --- /dev/null +++ b/ros_flexiv/src/flexiv_assembly.egg-info/PKG-INFO @@ -0,0 +1,65 @@ +Metadata-Version: 2.4 +Name: flexiv-assembly +Version: 0.1.0 +Summary: Flexiv Rizon4 assembly vision framework (Windows mock / Ubuntu deploy) +Requires-Python: >=3.10 +Description-Content-Type: text/markdown +Requires-Dist: numpy>=1.24 +Requires-Dist: opencv-python>=4.8 +Requires-Dist: PyYAML>=6.0 +Requires-Dist: Pillow>=10.0 +Requires-Dist: PySide6>=6.5 +Provides-Extra: dev +Requires-Dist: pytest>=7.0; extra == "dev" +Provides-Extra: camera +Requires-Dist: pyrealsense2; extra == "camera" +Provides-Extra: robot +Requires-Dist: flexivrdk; extra == "robot" + +# ros_flexiv — Flexiv Rizon 4 装配视觉系统 + +跨平台(Windows 开发 / Ubuntu 22.04 工控落地)的机械臂装配框架:HMI + ROS2 + RealSense + Flexiv RDK/仿真 + 可插拔项目脚本。 + +## 设计原则 + +1. **核心逻辑与 ROS2 解耦**:`src/flexiv_assembly` 纯 Python,Windows 可用 `mock` 跑通流程。 +2. **硬件全接口化**:相机 / 机械臂 / 夹爪 / 触觉均可替换。 +3. **项目脚本插件化**:新项目只需加 YAML + 一个 Script 类。 +4. **仿真优先落地**:无真机时用 Mock;有 IsaacSim / Flexiv 仿真时切 `sim`;真机切 `rdk`/`ros2`。 + +## 快速开始(Windows 开发) + +```powershell +cd d:\camera_test\ros_flexiv +pip install -e . +python scripts/run_hmi.py --backend mock +``` + +## Ubuntu 22.04 落地 + +见 [docs/MIGRATION_UBUNTU.md](docs/MIGRATION_UBUNTU.md)。 + +## 目录 + +| 路径 | 说明 | +|------|------| +| `src/flexiv_assembly/` | 可移植 Python 核心 | +| `configs/` | 硬件与项目配置 | +| `ros2_ws/` | ROS2 包骨架(Ubuntu 编译) | +| `scripts/` | 入口脚本 | +| `third_party/` | Flexiv RDK / URDF 克隆 | +| `docs/` | 架构、标定方案、迁移 | +| `CHANGELOG.md` | 每次 AI/人工升级记录 | + +## 相机标定结论(D405 / D435) + +- **出厂内参/畸变**:SDK 可读,一般装配精度下**优先直接取内参**,不必强制重新标定。 +- **建议仍做**:两台相机的**手眼标定**(D435 眼在手外、D405 眼在手上)。 +- **可选**:棋盘格复核内参(精度审计),见 `scripts/dump_realsense_intrinsics.py`。 + +## 第一个项目:通止规螺纹检测 + +配置:`configs/projects/thread_gauge.yaml` +脚本:`flexiv_assembly.projects.thread_gauge` + +流程:初始拍照点 → 稳坐标 → 悬停 → 腕部相机双孔 → 触觉检测(预留)→ 复位初始点;暂停可回安全点。 diff --git a/ros_flexiv/src/flexiv_assembly.egg-info/SOURCES.txt b/ros_flexiv/src/flexiv_assembly.egg-info/SOURCES.txt new file mode 100644 index 0000000..0d8f38f --- /dev/null +++ b/ros_flexiv/src/flexiv_assembly.egg-info/SOURCES.txt @@ -0,0 +1,42 @@ +README.md +pyproject.toml +src/flexiv_assembly/__init__.py +src/flexiv_assembly.egg-info/PKG-INFO +src/flexiv_assembly.egg-info/SOURCES.txt +src/flexiv_assembly.egg-info/dependency_links.txt +src/flexiv_assembly.egg-info/entry_points.txt +src/flexiv_assembly.egg-info/requires.txt +src/flexiv_assembly.egg-info/top_level.txt +src/flexiv_assembly/app/__init__.py +src/flexiv_assembly/app/main.py +src/flexiv_assembly/calibration/__init__.py +src/flexiv_assembly/calibration/auto_waypoints.py +src/flexiv_assembly/calibration/chessboard.py +src/flexiv_assembly/calibration/handeye.py +src/flexiv_assembly/calibration/quality_report.py +src/flexiv_assembly/camera/__init__.py +src/flexiv_assembly/camera/intrinsics.py +src/flexiv_assembly/gripper/__init__.py +src/flexiv_assembly/gripper/base.py +src/flexiv_assembly/motion/__init__.py +src/flexiv_assembly/motion/planner.py +src/flexiv_assembly/motion/poses.py +src/flexiv_assembly/projects/__init__.py +src/flexiv_assembly/projects/base_script.py +src/flexiv_assembly/projects/registry.py +src/flexiv_assembly/projects/_template/__init__.py +src/flexiv_assembly/projects/_template/script.py +src/flexiv_assembly/projects/thread_gauge/__init__.py +src/flexiv_assembly/projects/thread_gauge/script.py +src/flexiv_assembly/robot/__init__.py +src/flexiv_assembly/robot/base.py +src/flexiv_assembly/robot/factory.py +src/flexiv_assembly/robot/mock.py +src/flexiv_assembly/robot/rdk.py +src/flexiv_assembly/robot/ros2_bridge.py +src/flexiv_assembly/robot/sim_isaac.py +src/flexiv_assembly/tactile/__init__.py +src/flexiv_assembly/tactile/interface.py +src/flexiv_assembly/vision/__init__.py +src/flexiv_assembly/vision/hole_bridge.py +src/flexiv_assembly/vision/stabilizer.py \ No newline at end of file diff --git a/ros_flexiv/src/flexiv_assembly.egg-info/dependency_links.txt b/ros_flexiv/src/flexiv_assembly.egg-info/dependency_links.txt new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/ros_flexiv/src/flexiv_assembly.egg-info/dependency_links.txt @@ -0,0 +1 @@ + diff --git a/ros_flexiv/src/flexiv_assembly.egg-info/entry_points.txt b/ros_flexiv/src/flexiv_assembly.egg-info/entry_points.txt new file mode 100644 index 0000000..22af5a3 --- /dev/null +++ b/ros_flexiv/src/flexiv_assembly.egg-info/entry_points.txt @@ -0,0 +1,2 @@ +[console_scripts] +flexiv-hmi = flexiv_assembly.app.main:main diff --git a/ros_flexiv/src/flexiv_assembly.egg-info/requires.txt b/ros_flexiv/src/flexiv_assembly.egg-info/requires.txt new file mode 100644 index 0000000..6a43987 --- /dev/null +++ b/ros_flexiv/src/flexiv_assembly.egg-info/requires.txt @@ -0,0 +1,14 @@ +numpy>=1.24 +opencv-python>=4.8 +PyYAML>=6.0 +Pillow>=10.0 +PySide6>=6.5 + +[camera] +pyrealsense2 + +[dev] +pytest>=7.0 + +[robot] +flexivrdk diff --git a/ros_flexiv/src/flexiv_assembly.egg-info/top_level.txt b/ros_flexiv/src/flexiv_assembly.egg-info/top_level.txt new file mode 100644 index 0000000..08d64e3 --- /dev/null +++ b/ros_flexiv/src/flexiv_assembly.egg-info/top_level.txt @@ -0,0 +1 @@ +flexiv_assembly diff --git a/ros_flexiv/src/flexiv_assembly/__init__.py b/ros_flexiv/src/flexiv_assembly/__init__.py new file mode 100644 index 0000000..8110a3a --- /dev/null +++ b/ros_flexiv/src/flexiv_assembly/__init__.py @@ -0,0 +1,3 @@ +"""Flexiv assembly portable core.""" + +__version__ = "0.1.0" diff --git a/ros_flexiv/src/flexiv_assembly/__pycache__/__init__.cpython-311.pyc b/ros_flexiv/src/flexiv_assembly/__pycache__/__init__.cpython-311.pyc new file mode 100644 index 0000000..fbd57c3 Binary files /dev/null and b/ros_flexiv/src/flexiv_assembly/__pycache__/__init__.cpython-311.pyc differ diff --git a/ros_flexiv/src/flexiv_assembly/app/__init__.py b/ros_flexiv/src/flexiv_assembly/app/__init__.py new file mode 100644 index 0000000..5bb534f --- /dev/null +++ b/ros_flexiv/src/flexiv_assembly/app/__init__.py @@ -0,0 +1 @@ +# package diff --git a/ros_flexiv/src/flexiv_assembly/app/__pycache__/__init__.cpython-311.pyc b/ros_flexiv/src/flexiv_assembly/app/__pycache__/__init__.cpython-311.pyc new file mode 100644 index 0000000..d7aad97 Binary files /dev/null and b/ros_flexiv/src/flexiv_assembly/app/__pycache__/__init__.cpython-311.pyc differ diff --git a/ros_flexiv/src/flexiv_assembly/app/__pycache__/main.cpython-311.pyc b/ros_flexiv/src/flexiv_assembly/app/__pycache__/main.cpython-311.pyc new file mode 100644 index 0000000..e33085f Binary files /dev/null and b/ros_flexiv/src/flexiv_assembly/app/__pycache__/main.cpython-311.pyc differ diff --git a/ros_flexiv/src/flexiv_assembly/app/main.py b/ros_flexiv/src/flexiv_assembly/app/main.py new file mode 100644 index 0000000..5309967 --- /dev/null +++ b/ros_flexiv/src/flexiv_assembly/app/main.py @@ -0,0 +1,310 @@ +from __future__ import annotations + +import sys +import threading +from pathlib import Path + +from PySide6.QtCore import Qt, Signal, QObject +from PySide6.QtGui import QFont, QColor, QPalette +from PySide6.QtWidgets import ( + QApplication, + QComboBox, + QFormLayout, + QGroupBox, + QHBoxLayout, + QLabel, + QLineEdit, + QListWidget, + QMainWindow, + QMessageBox, + QPushButton, + QPlainTextEdit, + QDoubleSpinBox, + QTabWidget, + QVBoxLayout, + QWidget, + QFileDialog, +) + +from flexiv_assembly.gripper.base import MockGripper +from flexiv_assembly.projects.base_script import ScriptContext +from flexiv_assembly.projects.registry import list_projects, load_script +from flexiv_assembly.robot.factory import load_robot_backend +from flexiv_assembly.tactile.interface import MockTactile +from flexiv_assembly.calibration.auto_waypoints import plan_around_anchor +from flexiv_assembly.motion.poses import Pose +import yaml + +PKG_ROOT = Path(__file__).resolve().parents[3] + + +class LogBridge(QObject): + message = Signal(str) + + +class MainWindow(QMainWindow): + def __init__(self, backend: str = "mock") -> None: + super().__init__() + self.setWindowTitle("FLEXIV ASSEMBLY · ros_flexiv") + self.resize(1280, 800) + self.backend = backend + self._worker: threading.Thread | None = None + self._script = None + self.log_bridge = LogBridge() + self.log_bridge.message.connect(self._append_log) + + self.robot_cfg_path = PKG_ROOT / "configs" / "robot.yaml" + self.projects_dir = PKG_ROOT / "configs" / "projects" + self.calib_cfg_path = PKG_ROOT / "configs" / "calibration.yaml" + + tabs = QTabWidget() + tabs.addTab(self._build_run_tab(), "运行脚本") + tabs.addTab(self._build_calib_tab(), "标定") + tabs.addTab(self._build_points_tab(), "点位配置") + self.setCentralWidget(tabs) + self._apply_theme() + self.refresh_projects() + + def _apply_theme(self) -> None: + self.setStyleSheet( + """ + QMainWindow, QWidget { background: #12151a; color: #e8eaed; font-family: 'Segoe UI'; } + QTabWidget::pane { border: 1px solid #2a3038; } + QTabBar::tab { background: #1a1f26; color: #9aa3ad; padding: 10px 18px; margin-right: 2px; } + QTabBar::tab:selected { background: #232a33; color: #f0c674; border-bottom: 2px solid #f0c674; } + QGroupBox { border: 1px solid #2a3038; margin-top: 12px; padding: 12px; font-weight: 600; } + QGroupBox::title { subcontrol-origin: margin; left: 10px; padding: 0 6px; color: #f0c674; } + QPushButton { background: #2b3340; border: 1px solid #3a4452; padding: 8px 14px; border-radius: 4px; } + QPushButton:hover { background: #354050; } + QPushButton#primary { background: #3d4f3a; border-color: #6a8f5a; color: #d7f0c8; } + QPushButton#danger { background: #4a3030; border-color: #a06060; color: #ffd0d0; } + QPlainTextEdit, QListWidget, QLineEdit, QComboBox, QDoubleSpinBox { + background: #0e1116; border: 1px solid #2a3038; padding: 6px; selection-background-color: #3d4f3a; + } + QLabel#hero { font-size: 22px; font-weight: 700; color: #f0c674; letter-spacing: 1px; } + QLabel#sub { color: #9aa3ad; } + """ + ) + + def _build_run_tab(self) -> QWidget: + w = QWidget() + layout = QHBoxLayout(w) + left = QVBoxLayout() + hero = QLabel("ASSEMBLY CONSOLE") + hero.setObjectName("hero") + sub = QLabel("选择项目脚本 → 启动。暂停可复位到安全点(≠ 拍照点)。") + sub.setObjectName("sub") + left.addWidget(hero) + left.addWidget(sub) + self.project_list = QListWidget() + left.addWidget(self.project_list, 1) + row = QHBoxLayout() + self.cmb_backend = QComboBox() + self.cmb_backend.addItems(["mock", "rdk", "ros2", "sim_isaac"]) + self.cmb_backend.setCurrentText(self.backend) + row.addWidget(QLabel("Backend")) + row.addWidget(self.cmb_backend) + left.addLayout(row) + btns = QHBoxLayout() + self.btn_start = QPushButton("启动脚本") + self.btn_start.setObjectName("primary") + self.btn_pause = QPushButton("暂停 / 安全复位") + self.btn_stop = QPushButton("停止") + self.btn_stop.setObjectName("danger") + self.btn_start.clicked.connect(self.start_script) + self.btn_pause.clicked.connect(self.pause_script) + self.btn_stop.clicked.connect(self.stop_script) + btns.addWidget(self.btn_start) + btns.addWidget(self.btn_pause) + btns.addWidget(self.btn_stop) + left.addLayout(btns) + layout.addLayout(left, 2) + right = QVBoxLayout() + right.addWidget(QLabel("运行日志")) + self.log_view = QPlainTextEdit() + self.log_view.setReadOnly(True) + right.addWidget(self.log_view, 1) + layout.addLayout(right, 3) + return w + + def _build_calib_tab(self) -> QWidget: + w = QWidget() + layout = QVBoxLayout(w) + layout.addWidget(QLabel("标定(D405 眼在手内 / D435 眼在手外)")) + form = QFormLayout() + self.sp_square = QDoubleSpinBox() + self.sp_square.setDecimals(4) + self.sp_square.setRange(0.001, 0.2) + self.sp_square.setValue(0.025) + self.sp_square.setSuffix(" m") + self.cmb_setup = QComboBox() + self.cmb_setup.addItems(["eye_in_hand (D405)", "eye_to_hand (D435)"]) + self.cmb_cam = QComboBox() + self.cmb_cam.addItems(["d405", "d435"]) + form.addRow("方格边长", self.sp_square) + form.addRow("手眼类型", self.cmb_setup) + form.addRow("相机", self.cmb_cam) + layout.addLayout(form) + row = QHBoxLayout() + b1 = QPushButton("导出 RealSense 内参") + b1.clicked.connect(self.dump_intrinsics) + b2 = QPushButton("生成自动走点计划(需锚点)") + b2.clicked.connect(self.gen_waypoints) + b3 = QPushButton("打开标定说明") + b3.clicked.connect(lambda: self._append_log("见 docs/HANDEYE_AUTO_WAYPOINTS.md")) + row.addWidget(b1) + row.addWidget(b2) + row.addWidget(b3) + layout.addLayout(row) + tip = QLabel( + "建议:出厂内参直接读取;两相机必须手眼标定。无真机时先生成走点计划," + "真机示教 1 个锚点后自动扇出采样。" + ) + tip.setWordWrap(True) + tip.setObjectName("sub") + layout.addWidget(tip) + layout.addStretch(1) + return w + + def _build_points_tab(self) -> QWidget: + w = QWidget() + layout = QVBoxLayout(w) + box = QGroupBox("robot.yaml 关键点") + form = QFormLayout(box) + self.ed_inspect = QLineEdit("0.55, 0.0, 0.45") + self.ed_safe = QLineEdit("0.40, 0.0, 0.55") + self.sp_standoff = QDoubleSpinBox() + self.sp_standoff.setRange(0.01, 0.3) + self.sp_standoff.setSingleStep(0.005) + self.sp_standoff.setValue(0.08) + form.addRow("初始拍照点 xyz", self.ed_inspect) + form.addRow("安全点 xyz", self.ed_safe) + form.addRow("悬停预留高度 m", self.sp_standoff) + layout.addWidget(box) + save = QPushButton("保存到 configs/robot.yaml") + save.setObjectName("primary") + save.clicked.connect(self.save_points) + layout.addWidget(save) + self._load_points_into_form() + layout.addStretch(1) + return w + + def refresh_projects(self) -> None: + self.project_list.clear() + for p in list_projects(self.projects_dir): + self.project_list.addItem(f"{p['name']} [{p['id']}]") + self.project_list.item(self.project_list.count() - 1).setData(Qt.UserRole, p["path"]) + + def _append_log(self, text: str) -> None: + self.log_view.appendPlainText(text) + + def _selected_project(self) -> str | None: + item = self.project_list.currentItem() + return item.data(Qt.UserRole) if item else None + + def start_script(self) -> None: + path = self._selected_project() + if not path: + QMessageBox.warning(self, "项目", "请先选择一个脚本项目") + return + if self._worker and self._worker.is_alive(): + QMessageBox.warning(self, "项目", "已有脚本在运行") + return + + def work() -> None: + try: + script, pdata = load_script(path) + self._script = script + robot = load_robot_backend(self.robot_cfg_path, self.cmb_backend.currentText()) + robot_cfg = yaml.safe_load(self.robot_cfg_path.read_text(encoding="utf-8")) + ctx = ScriptContext( + robot=robot, + gripper=MockGripper(), + tactile=MockTactile(), + robot_cfg=robot_cfg, + project_cfg=pdata, + log=lambda m: self.log_bridge.message.emit(m), + ask_reset_to_safe=lambda: True, + ) + self.log_bridge.message.emit(f"启动: {pdata.get('name')}") + script.run(ctx) + except Exception as exc: + self.log_bridge.message.emit(f"启动失败: {exc}") + + self._worker = threading.Thread(target=work, daemon=True) + self._worker.start() + + def pause_script(self) -> None: + if self._script: + self._script.request_pause() + self._append_log("已请求暂停(将询问/执行安全点复位)") + + def stop_script(self) -> None: + if self._script: + self._script.request_stop() + self._append_log("已请求停止") + + def dump_intrinsics(self) -> None: + try: + from flexiv_assembly.camera.intrinsics import dump_realsense_intrinsics + import json + + data = dump_realsense_intrinsics() + out = PKG_ROOT / "data" / "calib" / "intrinsics.json" + out.parent.mkdir(parents=True, exist_ok=True) + out.write_text(json.dumps(data, indent=2), encoding="utf-8") + self._append_log(f"已写入 {out} 设备数={len(data)}") + except Exception as exc: + self._append_log(f"导出内参失败(无相机/驱动也可忽略): {exc}") + + def gen_waypoints(self) -> None: + cfg = yaml.safe_load(self.calib_cfg_path.read_text(encoding="utf-8")) or {} + aw = cfg.get("auto_waypoints", {}) + # 用当前 inspect_home 当临时锚点演示 + robot_cfg = yaml.safe_load(self.robot_cfg_path.read_text(encoding="utf-8")) + anchor = Pose.from_lists(robot_cfg["inspect_home"]["xyz"], robot_cfg["inspect_home"]["quat_wxyz"]) + plan = plan_around_anchor( + anchor, + aw.get("trans_steps_m", [0, 0.03, -0.03]), + aw.get("z_steps_m", [0, 0.02, -0.02]), + aw.get("rot_deg", [0, 8, -8]), + int(aw.get("target_samples", 20)), + ) + out = PKG_ROOT / "data" / "calib" / "waypoint_plan.yaml" + payload = { + "anchor": {"xyz": anchor.xyz.tolist(), "quat_wxyz": anchor.quat_wxyz.tolist()}, + "poses": [{"xyz": p.xyz.tolist(), "quat_wxyz": p.quat_wxyz.tolist(), "note": n} for p, n in zip(plan.poses, plan.notes)], + } + out.write_text(yaml.safe_dump(payload, allow_unicode=True), encoding="utf-8") + self._append_log(f"已生成走点计划 {out} 共 {len(plan.poses)} 点(真机请先示教真实锚点)") + + def _load_points_into_form(self) -> None: + cfg = yaml.safe_load(self.robot_cfg_path.read_text(encoding="utf-8")) or {} + self.ed_inspect.setText(", ".join(str(x) for x in cfg["inspect_home"]["xyz"])) + self.ed_safe.setText(", ".join(str(x) for x in cfg["safe_home"]["xyz"])) + self.sp_standoff.setValue(float(cfg.get("tcp_standoff_m", 0.08))) + + def save_points(self) -> None: + cfg = yaml.safe_load(self.robot_cfg_path.read_text(encoding="utf-8")) or {} + cfg["inspect_home"]["xyz"] = [float(x.strip()) for x in self.ed_inspect.text().split(",")] + cfg["safe_home"]["xyz"] = [float(x.strip()) for x in self.ed_safe.text().split(",")] + cfg["tcp_standoff_m"] = float(self.sp_standoff.value()) + self.robot_cfg_path.write_text(yaml.safe_dump(cfg, allow_unicode=True, sort_keys=False), encoding="utf-8") + self._append_log("点位已保存") + + +def main(argv: list[str] | None = None) -> None: + argv = list(sys.argv if argv is None else argv) + backend = "mock" + if "--backend" in argv: + i = argv.index("--backend") + if i + 1 < len(argv): + backend = argv[i + 1] + app = QApplication(sys.argv) + win = MainWindow(backend=backend) + win.show() + sys.exit(app.exec()) + + +if __name__ == "__main__": + main() diff --git a/ros_flexiv/src/flexiv_assembly/calibration/__init__.py b/ros_flexiv/src/flexiv_assembly/calibration/__init__.py new file mode 100644 index 0000000..323c228 --- /dev/null +++ b/ros_flexiv/src/flexiv_assembly/calibration/__init__.py @@ -0,0 +1 @@ +# package marker diff --git a/ros_flexiv/src/flexiv_assembly/calibration/__pycache__/__init__.cpython-311.pyc b/ros_flexiv/src/flexiv_assembly/calibration/__pycache__/__init__.cpython-311.pyc new file mode 100644 index 0000000..719ce16 Binary files /dev/null and b/ros_flexiv/src/flexiv_assembly/calibration/__pycache__/__init__.cpython-311.pyc differ diff --git a/ros_flexiv/src/flexiv_assembly/calibration/__pycache__/auto_waypoints.cpython-311.pyc b/ros_flexiv/src/flexiv_assembly/calibration/__pycache__/auto_waypoints.cpython-311.pyc new file mode 100644 index 0000000..b1199b8 Binary files /dev/null and b/ros_flexiv/src/flexiv_assembly/calibration/__pycache__/auto_waypoints.cpython-311.pyc differ diff --git a/ros_flexiv/src/flexiv_assembly/calibration/auto_waypoints.py b/ros_flexiv/src/flexiv_assembly/calibration/auto_waypoints.py new file mode 100644 index 0000000..b3dc12c --- /dev/null +++ b/ros_flexiv/src/flexiv_assembly/calibration/auto_waypoints.py @@ -0,0 +1,63 @@ +from __future__ import annotations + +from dataclasses import dataclass + +import numpy as np + +from flexiv_assembly.motion.poses import Pose + + +@dataclass +class WaypointPlan: + poses: list[Pose] + notes: list[str] + + +def plan_around_anchor( + anchor: Pose, + trans_steps_m: list[float], + z_steps_m: list[float], + rot_deg: list[float], + target_samples: int = 20, +) -> WaypointPlan: + """ + 以示教锚点为中心生成笛卡尔扰动候选。 + 真机采集时再用棋盘格检出 + 视锥过滤筛掉无效点。 + """ + poses: list[Pose] = [] + notes: list[str] = [] + for dx in trans_steps_m: + for dy in trans_steps_m: + for dz in z_steps_m: + for yaw in rot_deg: + if len(poses) >= target_samples * 2: + break + xyz = anchor.xyz.copy() + xyz[0] += dx + xyz[1] += dy + xyz[2] += dz + # 简化:仅记录 yaw 扰动意图(真机用旋转矩阵组合) + q = anchor.quat_wxyz.copy() + poses.append(Pose(xyz=xyz, quat_wxyz=q)) + notes.append(f"d=({dx:.3f},{dy:.3f},{dz:.3f}) yaw={yaw}") + # 多样性:隔点取样 + step = max(1, len(poses) // max(1, target_samples)) + poses = poses[::step][:target_samples] + notes = notes[::step][:target_samples] + return WaypointPlan(poses=poses, notes=notes) + + +def estimate_board_in_fov( + fx: float, + fy: float, + width: int, + height: int, + board_w_m: float, + board_h_m: float, + distance_m: float, + margin_ratio: float = 0.1, +) -> bool: + """粗略:板在给定距离下投影是否落在图像内(含边距)。""" + u = fx * (board_w_m / 2) / max(distance_m, 1e-6) + v = fy * (board_h_m / 2) / max(distance_m, 1e-6) + return (u < width * (0.5 - margin_ratio)) and (v < height * (0.5 - margin_ratio)) diff --git a/ros_flexiv/src/flexiv_assembly/calibration/chessboard.py b/ros_flexiv/src/flexiv_assembly/calibration/chessboard.py new file mode 100644 index 0000000..973c396 --- /dev/null +++ b/ros_flexiv/src/flexiv_assembly/calibration/chessboard.py @@ -0,0 +1,36 @@ +from __future__ import annotations + +from dataclasses import dataclass + +import numpy as np + + +@dataclass +class ChessboardSpec: + cols: int + rows: int + square_size_m: float + + +def make_object_points(spec: ChessboardSpec) -> np.ndarray: + obj = np.zeros((spec.rows * spec.cols, 3), np.float32) + grid = np.mgrid[0 : spec.cols, 0 : spec.rows].T.reshape(-1, 2) + obj[:, :2] = grid * spec.square_size_m + return obj + + +def detect_chessboard(gray: np.ndarray, spec: ChessboardSpec): + import cv2 + + flags = cv2.CALIB_CB_ADAPTIVE_THRESH | cv2.CALIB_CB_NORMALIZE_IMAGE + ok, corners = cv2.findChessboardCorners(gray, (spec.cols, spec.rows), flags) + if not ok: + return False, None + corners = cv2.cornerSubPix( + gray, + corners, + (11, 11), + (-1, -1), + (cv2.TERM_CRITERIA_EPS + cv2.TERM_CRITERIA_MAX_ITER, 30, 0.001), + ) + return True, corners diff --git a/ros_flexiv/src/flexiv_assembly/calibration/handeye.py b/ros_flexiv/src/flexiv_assembly/calibration/handeye.py new file mode 100644 index 0000000..bdb2011 --- /dev/null +++ b/ros_flexiv/src/flexiv_assembly/calibration/handeye.py @@ -0,0 +1,58 @@ +from __future__ import annotations + +from dataclasses import dataclass + +import cv2 +import numpy as np + + +@dataclass +class HandEyeResult: + R: np.ndarray + t: np.ndarray + method: str + T: np.ndarray + + +def _method_const(name: str): + table = { + "TSAI": cv2.CALIB_HAND_EYE_TSAI, + "PARK": cv2.CALIB_HAND_EYE_PARK, + "HORAUD": cv2.CALIB_HAND_EYE_HORAUD, + "ANDREFF": cv2.CALIB_HAND_EYE_ANDREFF, + "DANIILIDIS": cv2.CALIB_HAND_EYE_DANIILIDIS, + } + return table[name.upper()] + + +def solve_handeye( + R_gripper2base: list[np.ndarray], + t_gripper2base: list[np.ndarray], + R_target2cam: list[np.ndarray], + t_target2cam: list[np.ndarray], + setup: str = "eye_in_hand", + method: str = "DANIILIDIS", +) -> HandEyeResult: + """ + setup: + - eye_in_hand: 相机在法兰/TCP 上(D405) + - eye_to_hand: 相机固定(D435)——对 gripper2base 取逆后再解 + """ + Rg, tg = R_gripper2base, t_gripper2base + if setup == "eye_to_hand": + Rg, tg = [], [] + for R, t in zip(R_gripper2base, t_gripper2base): + T = np.eye(4) + T[:3, :3] = R + T[:3, 3] = t.reshape(3) + Ti = np.linalg.inv(T) + Rg.append(Ti[:3, :3]) + tg.append(Ti[:3, 3].reshape(3, 1)) + + R_cam2gripper, t_cam2gripper = cv2.calibrateHandEye( + Rg, tg, R_target2cam, t_target2cam, method=_method_const(method) + ) + T = np.eye(4) + T[:3, :3] = R_cam2gripper + T[:3, 3] = t_cam2gripper.reshape(3) + return HandEyeResult(R=R_cam2gripper, t=t_cam2gripper.reshape(3), method=method, T=T) diff --git a/ros_flexiv/src/flexiv_assembly/calibration/quality_report.py b/ros_flexiv/src/flexiv_assembly/calibration/quality_report.py new file mode 100644 index 0000000..cb31bf1 --- /dev/null +++ b/ros_flexiv/src/flexiv_assembly/calibration/quality_report.py @@ -0,0 +1,42 @@ +from __future__ import annotations + +from dataclasses import dataclass, field + + +@dataclass +class CalibQualityReport: + ok: bool + score_mm: float + messages: list[str] = field(default_factory=list) + warnings: list[str] = field(default_factory=list) + errors: list[str] = field(default_factory=list) + + +def diagnose( + n_samples: int, + solver_spread_mm: float, + axxb_mm: float, + mean_reproj_px: float, + coplanar_hint: bool, + cfg: dict, +) -> CalibQualityReport: + msgs, warns, errs = [], [], [] + min_samples = int(cfg.get("handeye", {}).get("min_samples", 12)) + max_spread = float(cfg.get("quality", {}).get("max_solver_spread_mm", 3.0)) + max_axxb = float(cfg.get("quality", {}).get("max_axxb_mm", 2.0)) + max_reproj = float(cfg.get("handeye", {}).get("max_reproj_px", 1.5)) + + if n_samples < min_samples: + errs.append(f"有效样本不足 {n_samples}/{min_samples}:请增加姿态多样性或检查板是否出画。") + if mean_reproj_px > max_reproj: + warns.append(f"重投影误差偏高 {mean_reproj_px:.2f}px:检查清晰度/曝光/板平整度。") + if solver_spread_mm > max_spread: + errs.append(f"多算法结果离散 {solver_spread_mm:.2f}mm:样本可能近似共面或噪声大。") + if axxb_mm > max_axxb: + errs.append(f"AX=XB 残差 {axxb_mm:.2f}mm:法兰位姿与板位姿时间对齐/坐标系可能有误。") + if coplanar_hint and cfg.get("quality", {}).get("warn_coplanar", True): + warns.append("姿态共面风险:请增加绕板法向/深度方向的旋转与平移。") + if not errs: + msgs.append("标定质量门控通过(仍建议做一次探针触碰验证)。") + score = max(solver_spread_mm, axxb_mm) + return CalibQualityReport(ok=not errs, score_mm=score, messages=msgs, warnings=warns, errors=errs) diff --git a/ros_flexiv/src/flexiv_assembly/camera/__init__.py b/ros_flexiv/src/flexiv_assembly/camera/__init__.py new file mode 100644 index 0000000..323c228 --- /dev/null +++ b/ros_flexiv/src/flexiv_assembly/camera/__init__.py @@ -0,0 +1 @@ +# package marker diff --git a/ros_flexiv/src/flexiv_assembly/camera/intrinsics.py b/ros_flexiv/src/flexiv_assembly/camera/intrinsics.py new file mode 100644 index 0000000..3c546fd --- /dev/null +++ b/ros_flexiv/src/flexiv_assembly/camera/intrinsics.py @@ -0,0 +1,76 @@ +from __future__ import annotations + +from dataclasses import dataclass +from typing import Any + +import numpy as np + + +@dataclass +class CameraIntrinsics: + serial: str + name: str + width: int + height: int + fx: float + fy: float + ppx: float + ppy: float + coeffs: list[float] + model: str = "brown_conrady" + + def as_K(self) -> np.ndarray: + return np.array([[self.fx, 0, self.ppx], [0, self.fy, self.ppy], [0, 0, 1]], dtype=float) + + +def dump_realsense_intrinsics() -> list[dict[str, Any]]: + """读取已连接 RealSense 的出厂彩色内参(无需棋盘格)。""" + import pyrealsense2 as rs + + out: list[dict[str, Any]] = [] + ctx = rs.context() + for dev in ctx.query_devices(): + name = dev.get_info(rs.camera_info.name) + serial = dev.get_info(rs.camera_info.serial_number) + # 启临时 pipeline 拿 color profile intrinsics + pipe = rs.pipeline() + cfg = rs.config() + cfg.enable_device(serial) + cfg.enable_stream(rs.stream.color, 1280, 720, rs.format.bgr8, 30) + try: + profile = pipe.start(cfg) + stream = profile.get_stream(rs.stream.color).as_video_stream_profile() + intr = stream.get_intrinsics() + item = CameraIntrinsics( + serial=serial, + name=name, + width=intr.width, + height=intr.height, + fx=intr.fx, + fy=intr.fy, + ppx=intr.ppx, + ppy=intr.ppy, + coeffs=list(intr.coeffs), + model=str(intr.model), + ) + out.append( + { + "serial": item.serial, + "name": item.name, + "width": item.width, + "height": item.height, + "fx": item.fx, + "fy": item.fy, + "ppx": item.ppx, + "ppy": item.ppy, + "coeffs": item.coeffs, + "model": item.model, + "K": item.as_K().tolist(), + } + ) + finally: + try: + pipe.stop() + except Exception: + pass + return out diff --git a/ros_flexiv/src/flexiv_assembly/gripper/__init__.py b/ros_flexiv/src/flexiv_assembly/gripper/__init__.py new file mode 100644 index 0000000..323c228 --- /dev/null +++ b/ros_flexiv/src/flexiv_assembly/gripper/__init__.py @@ -0,0 +1 @@ +# package marker diff --git a/ros_flexiv/src/flexiv_assembly/gripper/__pycache__/__init__.cpython-311.pyc b/ros_flexiv/src/flexiv_assembly/gripper/__pycache__/__init__.cpython-311.pyc new file mode 100644 index 0000000..9da977f Binary files /dev/null and b/ros_flexiv/src/flexiv_assembly/gripper/__pycache__/__init__.cpython-311.pyc differ diff --git a/ros_flexiv/src/flexiv_assembly/gripper/__pycache__/base.cpython-311.pyc b/ros_flexiv/src/flexiv_assembly/gripper/__pycache__/base.cpython-311.pyc new file mode 100644 index 0000000..3daed07 Binary files /dev/null and b/ros_flexiv/src/flexiv_assembly/gripper/__pycache__/base.cpython-311.pyc differ diff --git a/ros_flexiv/src/flexiv_assembly/gripper/base.py b/ros_flexiv/src/flexiv_assembly/gripper/base.py new file mode 100644 index 0000000..d2d9ee1 --- /dev/null +++ b/ros_flexiv/src/flexiv_assembly/gripper/base.py @@ -0,0 +1,57 @@ +from __future__ import annotations + +from abc import ABC, abstractmethod + + +class GripperBackend(ABC): + name: str = "gripper" + + @abstractmethod + def connect(self) -> None: ... + + @abstractmethod + def open(self, pos: float | None = None) -> None: ... + + @abstractmethod + def close(self, force: float | None = None) -> None: ... + + @abstractmethod + def disconnect(self) -> None: ... + + +class MockGripper(GripperBackend): + name = "mock_gripper" + + def connect(self) -> None: + pass + + def open(self, pos: float | None = None) -> None: + pass + + def close(self, force: float | None = None) -> None: + pass + + def disconnect(self) -> None: + pass + + +class DharmaPGEA(GripperBackend): + """大寰 PGEA-100-40 占位;通讯协议按厂家手册补全,便于整夹爪替换。""" + + name = "dharma_pgea_100_40" + + def __init__(self, port: str = "COM3", baud: int = 115200) -> None: + self.port = port + self.baud = baud + + def connect(self) -> None: + raise NotImplementedError("接入 Modbus/厂家 SDK") + + def open(self, pos: float | None = None) -> None: + raise NotImplementedError + + def close(self, force: float | None = None) -> None: + raise NotImplementedError + + def disconnect(self) -> None: + pass diff --git a/ros_flexiv/src/flexiv_assembly/motion/__init__.py b/ros_flexiv/src/flexiv_assembly/motion/__init__.py new file mode 100644 index 0000000..323c228 --- /dev/null +++ b/ros_flexiv/src/flexiv_assembly/motion/__init__.py @@ -0,0 +1 @@ +# package marker diff --git a/ros_flexiv/src/flexiv_assembly/motion/__pycache__/__init__.cpython-311.pyc b/ros_flexiv/src/flexiv_assembly/motion/__pycache__/__init__.cpython-311.pyc new file mode 100644 index 0000000..65a59f3 Binary files /dev/null and b/ros_flexiv/src/flexiv_assembly/motion/__pycache__/__init__.cpython-311.pyc differ diff --git a/ros_flexiv/src/flexiv_assembly/motion/__pycache__/planner.cpython-311.pyc b/ros_flexiv/src/flexiv_assembly/motion/__pycache__/planner.cpython-311.pyc new file mode 100644 index 0000000..c13c7fb Binary files /dev/null and b/ros_flexiv/src/flexiv_assembly/motion/__pycache__/planner.cpython-311.pyc differ diff --git a/ros_flexiv/src/flexiv_assembly/motion/__pycache__/poses.cpython-311.pyc b/ros_flexiv/src/flexiv_assembly/motion/__pycache__/poses.cpython-311.pyc new file mode 100644 index 0000000..34b7b3b Binary files /dev/null and b/ros_flexiv/src/flexiv_assembly/motion/__pycache__/poses.cpython-311.pyc differ diff --git a/ros_flexiv/src/flexiv_assembly/motion/planner.py b/ros_flexiv/src/flexiv_assembly/motion/planner.py new file mode 100644 index 0000000..3fb726d --- /dev/null +++ b/ros_flexiv/src/flexiv_assembly/motion/planner.py @@ -0,0 +1,10 @@ +from __future__ import annotations + +from flexiv_assembly.motion.poses import Pose + + +def offset_z(pose: Pose, dz: float) -> Pose: + p = pose.copy() + p.xyz = p.xyz.copy() + p.xyz[2] += dz + return p diff --git a/ros_flexiv/src/flexiv_assembly/motion/poses.py b/ros_flexiv/src/flexiv_assembly/motion/poses.py new file mode 100644 index 0000000..b78ed8f --- /dev/null +++ b/ros_flexiv/src/flexiv_assembly/motion/poses.py @@ -0,0 +1,28 @@ +from __future__ import annotations + +from dataclasses import dataclass +from typing import Sequence + +import numpy as np + + +@dataclass +class Pose: + """刚体位姿:位置 (m) + 四元数 wxyz。""" + + xyz: np.ndarray + quat_wxyz: np.ndarray + + @staticmethod + def from_lists(xyz: Sequence[float], quat_wxyz: Sequence[float]) -> "Pose": + return Pose(np.asarray(xyz, dtype=float), np.asarray(quat_wxyz, dtype=float)) + + def copy(self) -> "Pose": + return Pose(self.xyz.copy(), self.quat_wxyz.copy()) + + +@dataclass +class RobotState: + pose: Pose + joint_pos: np.ndarray | None = None + fault: str = "" diff --git a/ros_flexiv/src/flexiv_assembly/projects/__init__.py b/ros_flexiv/src/flexiv_assembly/projects/__init__.py new file mode 100644 index 0000000..323c228 --- /dev/null +++ b/ros_flexiv/src/flexiv_assembly/projects/__init__.py @@ -0,0 +1 @@ +# package marker diff --git a/ros_flexiv/src/flexiv_assembly/projects/__pycache__/__init__.cpython-311.pyc b/ros_flexiv/src/flexiv_assembly/projects/__pycache__/__init__.cpython-311.pyc new file mode 100644 index 0000000..30e0e19 Binary files /dev/null and b/ros_flexiv/src/flexiv_assembly/projects/__pycache__/__init__.cpython-311.pyc differ diff --git a/ros_flexiv/src/flexiv_assembly/projects/__pycache__/base_script.cpython-311.pyc b/ros_flexiv/src/flexiv_assembly/projects/__pycache__/base_script.cpython-311.pyc new file mode 100644 index 0000000..ab49740 Binary files /dev/null and b/ros_flexiv/src/flexiv_assembly/projects/__pycache__/base_script.cpython-311.pyc differ diff --git a/ros_flexiv/src/flexiv_assembly/projects/__pycache__/registry.cpython-311.pyc b/ros_flexiv/src/flexiv_assembly/projects/__pycache__/registry.cpython-311.pyc new file mode 100644 index 0000000..e0c5b9f Binary files /dev/null and b/ros_flexiv/src/flexiv_assembly/projects/__pycache__/registry.cpython-311.pyc differ diff --git a/ros_flexiv/src/flexiv_assembly/projects/_template/__init__.py b/ros_flexiv/src/flexiv_assembly/projects/_template/__init__.py new file mode 100644 index 0000000..5bb534f --- /dev/null +++ b/ros_flexiv/src/flexiv_assembly/projects/_template/__init__.py @@ -0,0 +1 @@ +# package diff --git a/ros_flexiv/src/flexiv_assembly/projects/_template/script.py b/ros_flexiv/src/flexiv_assembly/projects/_template/script.py new file mode 100644 index 0000000..aa5d2dd --- /dev/null +++ b/ros_flexiv/src/flexiv_assembly/projects/_template/script.py @@ -0,0 +1,17 @@ +from __future__ import annotations + +from flexiv_assembly.projects.base_script import BaseScript, ScriptContext, ScriptState + + +class TemplateScript(BaseScript): + id = "my_new_project" + name = "模板项目" + + def __init__(self, params: dict | None = None) -> None: + super().__init__() + self.params = params or {} + + def run(self, ctx: ScriptContext) -> None: + self.state = ScriptState.RUNNING + ctx.log("模板脚本:在此编写你的工艺流程") + self.state = ScriptState.DONE diff --git a/ros_flexiv/src/flexiv_assembly/projects/base_script.py b/ros_flexiv/src/flexiv_assembly/projects/base_script.py new file mode 100644 index 0000000..e35b025 --- /dev/null +++ b/ros_flexiv/src/flexiv_assembly/projects/base_script.py @@ -0,0 +1,47 @@ +from __future__ import annotations + +from abc import ABC, abstractmethod +from dataclasses import dataclass, field +from enum import Enum, auto +from typing import Callable + + +class ScriptState(Enum): + IDLE = auto() + RUNNING = auto() + PAUSED = auto() + RESETTING = auto() + DONE = auto() + ERROR = auto() + + +@dataclass +class ScriptContext: + robot: object + gripper: object + tactile: object + robot_cfg: dict + project_cfg: dict + log: Callable[[str], None] = field(default=lambda _m: None) + ask_reset_to_safe: Callable[[], bool] = field(default=lambda: True) + + +class BaseScript(ABC): + """所有可运行项目脚本的基类。""" + + id: str = "base" + name: str = "Base" + + def __init__(self) -> None: + self.state = ScriptState.IDLE + self._stop = False + self._pause = False + + def request_pause(self) -> None: + self._pause = True + + def request_stop(self) -> None: + self._stop = True + + @abstractmethod + def run(self, ctx: ScriptContext) -> None: ... diff --git a/ros_flexiv/src/flexiv_assembly/projects/registry.py b/ros_flexiv/src/flexiv_assembly/projects/registry.py new file mode 100644 index 0000000..9568f45 --- /dev/null +++ b/ros_flexiv/src/flexiv_assembly/projects/registry.py @@ -0,0 +1,29 @@ +from __future__ import annotations + +import importlib +from pathlib import Path + +import yaml + +from flexiv_assembly.projects.base_script import BaseScript + + +def list_projects(config_dir: str | Path) -> list[dict]: + root = Path(config_dir) + items = [] + for path in sorted(root.glob("*.yaml")): + data = yaml.safe_load(path.read_text(encoding="utf-8")) or {} + if not data.get("enabled", True): + continue + items.append({"id": data.get("id", path.stem), "name": data.get("name", path.stem), "path": str(path), "raw": data}) + return items + + +def load_script(project_yaml: str | Path) -> tuple[BaseScript, dict]: + data = yaml.safe_load(Path(project_yaml).read_text(encoding="utf-8")) or {} + module_name = data["module"] + class_name = data["class"] + mod = importlib.import_module(module_name) + cls = getattr(mod, class_name) + script: BaseScript = cls(data.get("params") or {}) + return script, data diff --git a/ros_flexiv/src/flexiv_assembly/projects/thread_gauge/__init__.py b/ros_flexiv/src/flexiv_assembly/projects/thread_gauge/__init__.py new file mode 100644 index 0000000..323c228 --- /dev/null +++ b/ros_flexiv/src/flexiv_assembly/projects/thread_gauge/__init__.py @@ -0,0 +1 @@ +# package marker diff --git a/ros_flexiv/src/flexiv_assembly/projects/thread_gauge/__pycache__/__init__.cpython-311.pyc b/ros_flexiv/src/flexiv_assembly/projects/thread_gauge/__pycache__/__init__.cpython-311.pyc new file mode 100644 index 0000000..2d97bcf Binary files /dev/null and b/ros_flexiv/src/flexiv_assembly/projects/thread_gauge/__pycache__/__init__.cpython-311.pyc differ diff --git a/ros_flexiv/src/flexiv_assembly/projects/thread_gauge/__pycache__/script.cpython-311.pyc b/ros_flexiv/src/flexiv_assembly/projects/thread_gauge/__pycache__/script.cpython-311.pyc new file mode 100644 index 0000000..8559161 Binary files /dev/null and b/ros_flexiv/src/flexiv_assembly/projects/thread_gauge/__pycache__/script.cpython-311.pyc differ diff --git a/ros_flexiv/src/flexiv_assembly/projects/thread_gauge/script.py b/ros_flexiv/src/flexiv_assembly/projects/thread_gauge/script.py new file mode 100644 index 0000000..99cfd9a --- /dev/null +++ b/ros_flexiv/src/flexiv_assembly/projects/thread_gauge/script.py @@ -0,0 +1,149 @@ +from __future__ import annotations + +import time + +import numpy as np + +from flexiv_assembly.motion.planner import offset_z +from flexiv_assembly.motion.poses import Pose +from flexiv_assembly.projects.base_script import BaseScript, ScriptContext, ScriptState +from flexiv_assembly.tactile.interface import MockTactile, TactileSample +from flexiv_assembly.vision.stabilizer import CoordStabilizer + + +class ThreadGaugeScript(BaseScript): + """ + 通止规螺纹检测流程骨架: + 1) 到 inspect_home + 2) 外相机检测工件世界坐标(稳帧) + 3) 带 standoff 悬停 + 4) 腕部相机双孔 → 逐孔触觉(预留)→ 回悬停 + 5) 回 inspect_home;暂停可回 safe_home + """ + + id = "thread_gauge" + name = "通止规螺纹孔检测" + + def __init__(self, params: dict | None = None) -> None: + super().__init__() + self.params = params or {} + + def run(self, ctx: ScriptContext) -> None: + self.state = ScriptState.RUNNING + self._stop = False + self._pause = False + log = ctx.log + robot = ctx.robot + cfg = ctx.robot_cfg + standoff = float(self.params.get("standoff_m", cfg.get("tcp_standoff_m", 0.08))) + + inspect = Pose.from_lists(cfg["inspect_home"]["xyz"], cfg["inspect_home"]["quat_wxyz"]) + safe = Pose.from_lists(cfg["safe_home"]["xyz"], cfg["safe_home"]["quat_wxyz"]) + + try: + log("连接设备…") + robot.connect() + ctx.gripper.connect() + ctx.tactile.connect() + + log("移动到初始拍照点 inspect_home") + robot.move_linear(inspect) + if not self._checkpoint(ctx, safe): + return + + log("外相机检测工件(此处接 D435 + hole/bbox 管线;Mock 给固定点)") + stab = CoordStabilizer( + window=int(self.params.get("coord_window", 7)), + ema=float(self.params.get("coord_ema", 0.35)), + max_jump=float(self.params.get("coord_max_jump_m", 0.01)), + ) + workpiece = None + for _ in range(int(self.params.get("settle_frames", 10))): + # TODO: 真机替换为视觉测距/手眼变换后的 base 系坐标 + raw = np.array([0.55, 0.02, 0.12], dtype=float) + workpiece = stab.update(raw) + time.sleep(0.05) + if workpiece is None: + raise RuntimeError("工件坐标稳帧失败") + log(f"稳坐标 workpiece_xyz={workpiece}") + + hover = Pose.from_lists( + [float(workpiece[0]), float(workpiece[1]), float(workpiece[2]) + standoff], + inspect.quat_wxyz.tolist(), + ) + log(f"移动到悬停点 standoff={standoff}m") + robot.move_linear(hover) + if not self._checkpoint(ctx, safe): + return + + # 腕部相机双孔(像素/相机系)— 真机用 D405 + detect_holes + log("腕部相机检测双螺纹孔中心") + holes = [[ -0.02, 0.0, 0.0], [0.02, 0.0, 0.0]] # Mock 相对悬停 + for hi, hole in enumerate(holes): + if not self._checkpoint(ctx, safe): + return + target = Pose.from_lists( + [ + hover.xyz[0] + hole[0], + hover.xyz[1] + hole[1], + hover.xyz[2], + ], + hover.quat_wxyz.tolist(), + ) + log(f"孔 {hi+1}: 移到孔上方") + robot.move_linear(target) + log(f"孔 {hi+1}: 切换触觉策略(相机不用)") + ctx.tactile.reset(hi) + for _ in range(40): + if not self._checkpoint(ctx, safe): + return + sample = TactileSample( + timestamp=time.time(), + force_xyz=np.zeros(3), + torque_xyz=np.zeros(3), + contact=True, + ) + cmd = ctx.tactile.step(sample) + log(cmd.message) + if cmd.done: + break + time.sleep(0.05) + log(f"孔 {hi+1}: 回悬停") + robot.move_linear(hover) + + log("全部孔完成,复位 inspect_home") + robot.move_linear(inspect) + self.state = ScriptState.DONE + log("脚本完成") + except Exception as exc: + self.state = ScriptState.ERROR + log(f"ERROR: {exc}") + try: + robot.move_linear(safe) + except Exception: + pass + finally: + try: + ctx.tactile.disconnect() + ctx.gripper.disconnect() + robot.disconnect() + except Exception: + pass + + def _checkpoint(self, ctx: ScriptContext, safe: Pose) -> bool: + if self._stop: + ctx.log("收到停止") + self.state = ScriptState.RESETTING + ctx.robot.move_linear(safe) + self.state = ScriptState.IDLE + return False + if self._pause: + self.state = ScriptState.PAUSED + ctx.log("已暂停:请求复位到安全点?") + if ctx.ask_reset_to_safe(): + self.state = ScriptState.RESETTING + ctx.robot.move_linear(safe) + ctx.log("已复位安全点") + self._pause = False + self.state = ScriptState.RUNNING + return True diff --git a/ros_flexiv/src/flexiv_assembly/robot/__init__.py b/ros_flexiv/src/flexiv_assembly/robot/__init__.py new file mode 100644 index 0000000..323c228 --- /dev/null +++ b/ros_flexiv/src/flexiv_assembly/robot/__init__.py @@ -0,0 +1 @@ +# package marker diff --git a/ros_flexiv/src/flexiv_assembly/robot/__pycache__/__init__.cpython-311.pyc b/ros_flexiv/src/flexiv_assembly/robot/__pycache__/__init__.cpython-311.pyc new file mode 100644 index 0000000..78a9693 Binary files /dev/null and b/ros_flexiv/src/flexiv_assembly/robot/__pycache__/__init__.cpython-311.pyc differ diff --git a/ros_flexiv/src/flexiv_assembly/robot/__pycache__/base.cpython-311.pyc b/ros_flexiv/src/flexiv_assembly/robot/__pycache__/base.cpython-311.pyc new file mode 100644 index 0000000..dc8c641 Binary files /dev/null and b/ros_flexiv/src/flexiv_assembly/robot/__pycache__/base.cpython-311.pyc differ diff --git a/ros_flexiv/src/flexiv_assembly/robot/__pycache__/factory.cpython-311.pyc b/ros_flexiv/src/flexiv_assembly/robot/__pycache__/factory.cpython-311.pyc new file mode 100644 index 0000000..e81ff2a Binary files /dev/null and b/ros_flexiv/src/flexiv_assembly/robot/__pycache__/factory.cpython-311.pyc differ diff --git a/ros_flexiv/src/flexiv_assembly/robot/__pycache__/mock.cpython-311.pyc b/ros_flexiv/src/flexiv_assembly/robot/__pycache__/mock.cpython-311.pyc new file mode 100644 index 0000000..b3b360c Binary files /dev/null and b/ros_flexiv/src/flexiv_assembly/robot/__pycache__/mock.cpython-311.pyc differ diff --git a/ros_flexiv/src/flexiv_assembly/robot/__pycache__/rdk.cpython-311.pyc b/ros_flexiv/src/flexiv_assembly/robot/__pycache__/rdk.cpython-311.pyc new file mode 100644 index 0000000..e85623e Binary files /dev/null and b/ros_flexiv/src/flexiv_assembly/robot/__pycache__/rdk.cpython-311.pyc differ diff --git a/ros_flexiv/src/flexiv_assembly/robot/__pycache__/ros2_bridge.cpython-311.pyc b/ros_flexiv/src/flexiv_assembly/robot/__pycache__/ros2_bridge.cpython-311.pyc new file mode 100644 index 0000000..33727f4 Binary files /dev/null and b/ros_flexiv/src/flexiv_assembly/robot/__pycache__/ros2_bridge.cpython-311.pyc differ diff --git a/ros_flexiv/src/flexiv_assembly/robot/__pycache__/sim_isaac.cpython-311.pyc b/ros_flexiv/src/flexiv_assembly/robot/__pycache__/sim_isaac.cpython-311.pyc new file mode 100644 index 0000000..e047b4f Binary files /dev/null and b/ros_flexiv/src/flexiv_assembly/robot/__pycache__/sim_isaac.cpython-311.pyc differ diff --git a/ros_flexiv/src/flexiv_assembly/robot/base.py b/ros_flexiv/src/flexiv_assembly/robot/base.py new file mode 100644 index 0000000..333da2a --- /dev/null +++ b/ros_flexiv/src/flexiv_assembly/robot/base.py @@ -0,0 +1,30 @@ +from __future__ import annotations + +from abc import ABC, abstractmethod + +from flexiv_assembly.motion.poses import Pose, RobotState + + +class RobotBackend(ABC): + """机械臂统一后端。Windows 用 Mock;Ubuntu 接 RDK/ROS2/仿真。""" + + name: str = "base" + + @abstractmethod + def connect(self) -> None: ... + + @abstractmethod + def disconnect(self) -> None: ... + + @abstractmethod + def get_state(self) -> RobotState: ... + + @abstractmethod + def move_linear(self, target: Pose, vel: float = 0.2, asym: float = 0.5) -> None: + """阻塞式直线移动到目标(仿真/真机实现可改为异步+回调)。""" + + @abstractmethod + def stop(self) -> None: ... + + def is_connected(self) -> bool: + return True diff --git a/ros_flexiv/src/flexiv_assembly/robot/factory.py b/ros_flexiv/src/flexiv_assembly/robot/factory.py new file mode 100644 index 0000000..3864266 --- /dev/null +++ b/ros_flexiv/src/flexiv_assembly/robot/factory.py @@ -0,0 +1,27 @@ +from __future__ import annotations + +from pathlib import Path + +import yaml + +from flexiv_assembly.motion.poses import Pose +from flexiv_assembly.robot.base import RobotBackend +from flexiv_assembly.robot.mock import MockRobot +from flexiv_assembly.robot.rdk import RdkRobot +from flexiv_assembly.robot.ros2_bridge import Ros2Robot +from flexiv_assembly.robot.sim_isaac import IsaacSimRobot + + +def load_robot_backend(cfg_path: str | Path, backend_override: str | None = None) -> RobotBackend: + cfg = yaml.safe_load(Path(cfg_path).read_text(encoding="utf-8")) or {} + mode = (backend_override or cfg.get("backend") or "mock").lower() + home = Pose.from_lists(cfg["inspect_home"]["xyz"], cfg["inspect_home"]["quat_wxyz"]) + if mode == "mock": + return MockRobot(home=home) + if mode == "rdk": + return RdkRobot(str(cfg.get("robot_sn", "Rizon4-XXXXXX"))) + if mode == "ros2": + return Ros2Robot() + if mode in {"sim", "sim_isaac", "isaac"}: + return IsaacSimRobot() + raise ValueError(f"未知 backend: {mode}") diff --git a/ros_flexiv/src/flexiv_assembly/robot/mock.py b/ros_flexiv/src/flexiv_assembly/robot/mock.py new file mode 100644 index 0000000..1d9f1bb --- /dev/null +++ b/ros_flexiv/src/flexiv_assembly/robot/mock.py @@ -0,0 +1,45 @@ +from __future__ import annotations + +import time + +import numpy as np + +from flexiv_assembly.motion.poses import Pose, RobotState +from flexiv_assembly.robot.base import RobotBackend + + +class MockRobot(RobotBackend): + """无真机时的状态机联调后端。""" + + name = "mock" + + def __init__(self, home: Pose | None = None) -> None: + self._pose = home or Pose.from_lists([0.5, 0.0, 0.4], [1, 0, 0, 0]) + self._connected = False + + def connect(self) -> None: + self._connected = True + + def disconnect(self) -> None: + self._connected = False + + def is_connected(self) -> bool: + return self._connected + + def get_state(self) -> RobotState: + return RobotState(pose=self._pose.copy(), joint_pos=np.zeros(7)) + + def move_linear(self, target: Pose, vel: float = 0.2, asym: float = 0.5) -> None: + if not self._connected: + raise RuntimeError("MockRobot 未连接") + # 简单插值,体现耗时 + steps = max(5, int(20 * np.linalg.norm(target.xyz - self._pose.xyz) / max(vel, 1e-3))) + start = self._pose.copy() + for i in range(1, steps + 1): + a = i / steps + self._pose.xyz = (1 - a) * start.xyz + a * target.xyz + self._pose.quat_wxyz = target.quat_wxyz.copy() + time.sleep(0.02) + + def stop(self) -> None: + pass diff --git a/ros_flexiv/src/flexiv_assembly/robot/rdk.py b/ros_flexiv/src/flexiv_assembly/robot/rdk.py new file mode 100644 index 0000000..166f378 --- /dev/null +++ b/ros_flexiv/src/flexiv_assembly/robot/rdk.py @@ -0,0 +1,38 @@ +from __future__ import annotations + +from flexiv_assembly.motion.poses import Pose, RobotState +from flexiv_assembly.robot.base import RobotBackend + + +class RdkRobot(RobotBackend): + """Flexiv RDK 后端。需安装 flexivrdk,仅在工控机/有机器人网络时可用。""" + + name = "rdk" + + def __init__(self, robot_sn: str) -> None: + self.robot_sn = robot_sn + self._robot = None + + def connect(self) -> None: + try: + import flexivrdk # type: ignore + except ImportError as exc: + raise RuntimeError( + "未安装 flexivrdk。Ubuntu: pip install flexivrdk;并确认与机器人软件版本匹配。" + ) from exc + self._robot = flexivrdk.Robot(self.robot_sn) + # 具体使能/模式切换请按 RDK Manual 补全 + # self._robot.Enable(...) + + def disconnect(self) -> None: + self._robot = None + + def get_state(self) -> RobotState: + raise NotImplementedError("请按 flexivrdk API 填充 TCP/法兰位姿读取") + + def move_linear(self, target: Pose, vel: float = 0.2, asym: float = 0.5) -> None: + raise NotImplementedError("请按 RDK Primitive / NRT 运动接口实现直线移动") + + def stop(self) -> None: + if self._robot is not None: + pass # Stop / fault clear per manual diff --git a/ros_flexiv/src/flexiv_assembly/robot/ros2_bridge.py b/ros_flexiv/src/flexiv_assembly/robot/ros2_bridge.py new file mode 100644 index 0000000..497e76d --- /dev/null +++ b/ros_flexiv/src/flexiv_assembly/robot/ros2_bridge.py @@ -0,0 +1,35 @@ +from __future__ import annotations + +from flexiv_assembly.motion.poses import Pose, RobotState +from flexiv_assembly.robot.base import RobotBackend + + +class Ros2Robot(RobotBackend): + """经 ROS2 与驱动节点通信。Windows 上仅占位。""" + + name = "ros2" + + def __init__(self, node_name: str = "flexiv_hmi_client") -> None: + self.node_name = node_name + self._node = None + + def connect(self) -> None: + try: + import rclpy # type: ignore + except ImportError as exc: + raise RuntimeError("当前环境无 ROS2 Python(rclpy)。请在 Ubuntu Humble 上使用。") from exc + rclpy.init(args=None) + # TODO: 创建 node,订阅 /flexiv/state,调用 MoveLin action/service + raise NotImplementedError("ROS2 客户端在 Ubuntu 工控机上完善") + + def disconnect(self) -> None: + self._node = None + + def get_state(self) -> RobotState: + raise NotImplementedError + + def move_linear(self, target: Pose, vel: float = 0.2, asym: float = 0.5) -> None: + raise NotImplementedError + + def stop(self) -> None: + pass diff --git a/ros_flexiv/src/flexiv_assembly/robot/sim_isaac.py b/ros_flexiv/src/flexiv_assembly/robot/sim_isaac.py new file mode 100644 index 0000000..28c39c6 --- /dev/null +++ b/ros_flexiv/src/flexiv_assembly/robot/sim_isaac.py @@ -0,0 +1,34 @@ +from __future__ import annotations + +from flexiv_assembly.motion.poses import Pose, RobotState +from flexiv_assembly.robot.base import RobotBackend + + +class IsaacSimRobot(RobotBackend): + """ + Flexiv Isaac Sim Plugin 仿真后端占位。 + 落地时:通过插件 RPC / ROS2 bridge / 官方接口驱动仿真臂,并带渲染。 + """ + + name = "sim_isaac" + + def __init__(self, usd_path: str = "") -> None: + self.usd_path = usd_path + + def connect(self) -> None: + raise NotImplementedError( + "请安装 Isaac Sim + Flexiv Sim Plugin 后,在此接入仿真控制通道。" + "资源:Flexiv IsaacSim Plugin / Primitive 文档。" + ) + + def disconnect(self) -> None: + pass + + def get_state(self) -> RobotState: + raise NotImplementedError + + def move_linear(self, target: Pose, vel: float = 0.2, asym: float = 0.5) -> None: + raise NotImplementedError + + def stop(self) -> None: + pass diff --git a/ros_flexiv/src/flexiv_assembly/tactile/__init__.py b/ros_flexiv/src/flexiv_assembly/tactile/__init__.py new file mode 100644 index 0000000..323c228 --- /dev/null +++ b/ros_flexiv/src/flexiv_assembly/tactile/__init__.py @@ -0,0 +1 @@ +# package marker diff --git a/ros_flexiv/src/flexiv_assembly/tactile/__pycache__/__init__.cpython-311.pyc b/ros_flexiv/src/flexiv_assembly/tactile/__pycache__/__init__.cpython-311.pyc new file mode 100644 index 0000000..61c6141 Binary files /dev/null and b/ros_flexiv/src/flexiv_assembly/tactile/__pycache__/__init__.cpython-311.pyc differ diff --git a/ros_flexiv/src/flexiv_assembly/tactile/__pycache__/interface.cpython-311.pyc b/ros_flexiv/src/flexiv_assembly/tactile/__pycache__/interface.cpython-311.pyc new file mode 100644 index 0000000..722790e Binary files /dev/null and b/ros_flexiv/src/flexiv_assembly/tactile/__pycache__/interface.cpython-311.pyc differ diff --git a/ros_flexiv/src/flexiv_assembly/tactile/interface.py b/ros_flexiv/src/flexiv_assembly/tactile/interface.py new file mode 100644 index 0000000..a5687d1 --- /dev/null +++ b/ros_flexiv/src/flexiv_assembly/tactile/interface.py @@ -0,0 +1,88 @@ +""" +自研视触觉算法预留接口。 + +触觉模型未就绪时使用 MockTactile;研发完成后实现 TactileInterface 并在配置中切换。 +夹爪/传感器更换时只改适配器,不改项目脚本。 +""" + +from __future__ import annotations + +from abc import ABC, abstractmethod +from dataclasses import dataclass +from typing import Any + +import numpy as np + + +@dataclass +class TactileSample: + """一帧触觉观测(字段可按传感器扩展)。""" + + timestamp: float + force_xyz: np.ndarray # 估计接触力 + torque_xyz: np.ndarray # 估计力矩 + contact: bool + embedding: np.ndarray | None = None # 深度学习特征 + raw: dict[str, Any] | None = None + + +@dataclass +class TactileCommand: + """下发给机械臂/夹爪的控制意图(由策略层解释)。""" + + delta_xyz: np.ndarray + delta_rpy: np.ndarray + gripper_pos: float | None = None + done: bool = False + ok: bool = True + message: str = "" + + +class TactileInterface(ABC): + """螺纹通止等操作的感知-控制闭环接口。""" + + name: str = "tactile_base" + + @abstractmethod + def connect(self) -> None: ... + + @abstractmethod + def disconnect(self) -> None: ... + + @abstractmethod + def reset(self, hole_id: int) -> None: + """开始检测某一螺纹孔前复位内部状态。""" + + @abstractmethod + def step(self, sample: TactileSample) -> TactileCommand: + """消费一帧触觉,输出运动增量/结束标志。""" + + +class MockTactile(TactileInterface): + name = "mock_tactile" + + def __init__(self) -> None: + self._i = 0 + self._hole = 0 + + def connect(self) -> None: + self._i = 0 + + def disconnect(self) -> None: + pass + + def reset(self, hole_id: int) -> None: + self._hole = hole_id + self._i = 0 + + def step(self, sample: TactileSample) -> TactileCommand: + self._i += 1 + # 模拟若干步后完成 + done = self._i >= 15 + return TactileCommand( + delta_xyz=np.zeros(3), + delta_rpy=np.zeros(3), + done=done, + ok=True, + message=f"mock hole={self._hole} step={self._i}", + ) diff --git a/ros_flexiv/src/flexiv_assembly/vision/__init__.py b/ros_flexiv/src/flexiv_assembly/vision/__init__.py new file mode 100644 index 0000000..323c228 --- /dev/null +++ b/ros_flexiv/src/flexiv_assembly/vision/__init__.py @@ -0,0 +1 @@ +# package marker diff --git a/ros_flexiv/src/flexiv_assembly/vision/__pycache__/__init__.cpython-311.pyc b/ros_flexiv/src/flexiv_assembly/vision/__pycache__/__init__.cpython-311.pyc new file mode 100644 index 0000000..d003785 Binary files /dev/null and b/ros_flexiv/src/flexiv_assembly/vision/__pycache__/__init__.cpython-311.pyc differ diff --git a/ros_flexiv/src/flexiv_assembly/vision/__pycache__/stabilizer.cpython-311.pyc b/ros_flexiv/src/flexiv_assembly/vision/__pycache__/stabilizer.cpython-311.pyc new file mode 100644 index 0000000..3559aeb Binary files /dev/null and b/ros_flexiv/src/flexiv_assembly/vision/__pycache__/stabilizer.cpython-311.pyc differ diff --git a/ros_flexiv/src/flexiv_assembly/vision/hole_bridge.py b/ros_flexiv/src/flexiv_assembly/vision/hole_bridge.py new file mode 100644 index 0000000..24a92f3 --- /dev/null +++ b/ros_flexiv/src/flexiv_assembly/vision/hole_bridge.py @@ -0,0 +1,62 @@ +"""桥接上级 camera_test 的二阶段孔检测;路径失败时返回 Mock。""" + +from __future__ import annotations + +import sys +from pathlib import Path +from typing import Any + +import numpy as np + +ROOT = Path(__file__).resolve().parents[4] # camera_test/ + + +def _ensure_camera_test_path() -> None: + p = str(ROOT) + if p not in sys.path: + sys.path.insert(0, p) + + +def detect_holes_bgr(image_bgr: np.ndarray, detector=None, config: dict | None = None) -> dict[str, Any]: + _ensure_camera_test_path() + try: + from hole_detect import detect_holes, load_config + from detectors import load_detector, default_model_path # type: ignore + except Exception as exc: + return { + "status": False, + "msg": f"无法导入 camera_test 视觉模块: {exc}", + "hole_points": [], + "draw_img": image_bgr, + } + + cfg = config or load_config(ROOT / "hole_detect_config.yaml") + if detector is None: + # 延迟导入 default — detectors 里若无该函数则手写路径 + try: + from detectors import default_model_path as _dmp # type: ignore + + weights = _dmp("yolo") + except Exception: + weights = str( + ROOT + / "ultralytics" + / "runs" + / "detect" + / "runs" + / "yolov8_gongjian" + / "weights" + / "best.pt" + ) + try: + from detectors import load_detector + + detector = load_detector("yolo", weights, device="cpu", num_classes=2) + except Exception as exc: + return { + "status": False, + "msg": f"检测器加载失败: {exc}", + "hole_points": [], + "draw_img": image_bgr, + } + return detect_holes(image_bgr, detector, cfg) diff --git a/ros_flexiv/src/flexiv_assembly/vision/stabilizer.py b/ros_flexiv/src/flexiv_assembly/vision/stabilizer.py new file mode 100644 index 0000000..bcfe6ee --- /dev/null +++ b/ros_flexiv/src/flexiv_assembly/vision/stabilizer.py @@ -0,0 +1,33 @@ +from __future__ import annotations + +import numpy as np + + +class CoordStabilizer: + """抑制视觉坐标闪烁:中位数窗 + EMA + 跳变门限。""" + + def __init__(self, window: int = 7, ema: float = 0.35, max_jump: float = 0.01) -> None: + self.window = max(1, window) + self.ema = float(ema) + self.max_jump = float(max_jump) + self._buf: list[np.ndarray] = [] + self._stable: np.ndarray | None = None + + def reset(self) -> None: + self._buf.clear() + self._stable = None + + def update(self, xyz: np.ndarray) -> np.ndarray | None: + x = np.asarray(xyz, dtype=float).reshape(3) + self._buf.append(x) + self._buf = self._buf[-self.window :] + med = np.median(np.stack(self._buf, axis=0), axis=0) + if self._stable is None: + self._stable = med + return self._stable.copy() + if np.linalg.norm(med - self._stable) > self.max_jump: + # 跳变过大:不立刻跟随,等待窗口一致 + return self._stable.copy() + a = self.ema + self._stable = (1 - a) * self._stable + a * med + return self._stable.copy() diff --git a/ros_flexiv/third_party/flexiv_description b/ros_flexiv/third_party/flexiv_description new file mode 160000 index 0000000..f33331a --- /dev/null +++ b/ros_flexiv/third_party/flexiv_description @@ -0,0 +1 @@ +Subproject commit f33331a7f75b9a25ec903674595ddfebbe1fb998 diff --git a/ros_flexiv/third_party/flexiv_rdk b/ros_flexiv/third_party/flexiv_rdk new file mode 160000 index 0000000..159d41f --- /dev/null +++ b/ros_flexiv/third_party/flexiv_rdk @@ -0,0 +1 @@ +Subproject commit 159d41f3ab7fbd74117b6357ba612a0842bed6b9 diff --git a/runs/predict_holes/viz_test.jpg b/runs/predict_holes/viz_test.jpg new file mode 100644 index 0000000..3ca0b8e Binary files /dev/null and b/runs/predict_holes/viz_test.jpg differ diff --git a/split_dataset.py b/split_dataset.py new file mode 100644 index 0000000..2e5a152 --- /dev/null +++ b/split_dataset.py @@ -0,0 +1,519 @@ +"""YOLO 数据集划分:可创建输出文件夹,自定义 train/val/test 百分比(带界面)。""" + +from __future__ import annotations + +import argparse +import random +import shutil +import tkinter as tk +from pathlib import Path +from tkinter import filedialog, messagebox, ttk + +import yaml + +ROOT = Path(__file__).resolve().parent +IMAGE_EXTS = {".jpg", ".jpeg", ".png", ".bmp", ".webp", ".tif", ".tiff"} + + +def iter_images(folder: Path) -> list[Path]: + if not folder.is_dir(): + return [] + return sorted(p for p in folder.iterdir() if p.is_file() and p.suffix.lower() in IMAGE_EXTS) + + +def find_label_for(img: Path, src: Path, split_hint: str | None = None) -> Path | None: + """按 stem 在常见 labels 位置查找同名 txt。""" + candidates: list[Path] = [] + if split_hint: + candidates.append(src / "labels" / split_hint / f"{img.stem}.txt") + candidates.extend( + [ + src / "labels" / "all" / f"{img.stem}.txt", + src / "labels" / f"{img.stem}.txt", + img.with_suffix(".txt"), + img.parent.parent / "labels" / img.parent.name / f"{img.stem}.txt", + img.parent.parent / "labels" / f"{img.stem}.txt", + ] + ) + for cand in candidates: + if cand.exists(): + return cand + return None + + +def find_image_label_pairs(src: Path) -> list[tuple[Path, Path | None]]: + """收集源目录全部样本。 + + 支持: + - images/{all|train|val|test} + labels/... + - images/ 扁平目录 + - 根目录直接放图片 + 若已有 train/val,会合并后再重新划分。 + """ + pairs_map: dict[str, tuple[Path, Path | None]] = {} + + split_dirs = [] + for name in ("all", "train", "val", "test"): + d = src / "images" / name + if d.is_dir() and any(d.iterdir()): + split_dirs.append((name if name != "all" else None, d)) + + if split_dirs: + for hint, img_dir in split_dirs: + for img in iter_images(img_dir): + pairs_map[img.stem] = (img, find_label_for(img, src, hint)) + else: + flat_candidates = [src / "images", src] + img_dir = next((p for p in flat_candidates if iter_images(p)), None) + if img_dir is None: + raise FileNotFoundError(f"找不到图片目录,请检查: {src}") + for img in iter_images(img_dir): + pairs_map[img.stem] = (img, find_label_for(img, src, None)) + + pairs = [pairs_map[k] for k in sorted(pairs_map)] + if not pairs: + raise FileNotFoundError(f"在 {src} 下没有找到图片") + return pairs + + +def validate_pairs(pairs: list[tuple[Path, Path | None]]) -> list[str]: + warnings: list[str] = [] + missing = [img.name for img, lb in pairs if lb is None] + if missing: + warnings.append(f"有 {len(missing)} 张图缺少标签,例如: {', '.join(missing[:3])}") + bad = 0 + for img, lb in pairs: + if lb is None: + continue + text = lb.read_text(encoding="utf-8").strip() + if not text: + continue + for line in text.splitlines(): + parts = line.split() + if len(parts) != 5: + bad += 1 + continue + try: + vals = list(map(float, parts[1:])) + except ValueError: + bad += 1 + continue + if any(v < 0 or v > 1 for v in vals): + bad += 1 + if bad: + warnings.append(f"有 {bad} 行标签格式异常(应为: class x y w h,且坐标 0~1)") + return warnings + + + +def split_indices(n: int, train_r: float, val_r: float, test_r: float, seed: int) -> dict[str, list[int]]: + total = train_r + val_r + test_r + if abs(total - 1.0) > 1e-6: + raise ValueError(f"train+val+test 必须等于 100%,当前为 {total * 100:.1f}%") + if n < 2: + raise ValueError("样本太少,至少需要 2 张图") + if test_r > 0 and n < 3: + raise ValueError("划分测试集至少需要 3 张图") + + idxs = list(range(n)) + random.Random(seed).shuffle(idxs) + + n_test = int(round(n * test_r)) if test_r > 0 else 0 + n_val = int(round(n * val_r)) + n_train = n - n_val - n_test + if n_train < 1: + raise ValueError("训练集为空,请调大训练比例") + if n_val < 1: + raise ValueError("验证集为空,请调大验证比例") + if test_r > 0 and n_test < 1: + raise ValueError("测试集为空,请调大测试比例") + + return { + "train": idxs[:n_train], + "val": idxs[n_train : n_train + n_val], + "test": idxs[n_train + n_val :] if n_test else [], + } + + +def transfer(src: Path, dst: Path, move: bool) -> None: + dst.parent.mkdir(parents=True, exist_ok=True) + if move: + shutil.move(str(src), str(dst)) + else: + shutil.copy2(src, dst) + + +def write_data_yaml(yaml_path: Path, dataset_root: Path, has_test: bool, names: dict[int, str]) -> None: + try: + rel = dataset_root.resolve().relative_to(ROOT.resolve()).as_posix() + except ValueError: + rel = dataset_root.resolve().as_posix() + + data = { + "path": rel, + "train": "images/train", + "val": "images/val", + "test": "images/test" if has_test else None, + "names": names, + } + if data["test"] is None: + data.pop("test") + + yaml_path.parent.mkdir(parents=True, exist_ok=True) + with yaml_path.open("w", encoding="utf-8") as f: + f.write("# 由 split_dataset.py 自动生成\n") + f.write("# 训练: yolo train cfg=train.yaml\n\n") + yaml.safe_dump(data, f, allow_unicode=True, sort_keys=False) + + +def load_or_build_names(yaml_path: Path, names_arg: str) -> dict[int, str]: + if names_arg.strip(): + return {i: n.strip() for i, n in enumerate(names_arg.split(",")) if n.strip()} + if yaml_path.exists(): + with yaml_path.open(encoding="utf-8") as f: + old = yaml.safe_load(f) or {} + old_names = old.get("names") + if isinstance(old_names, dict): + return {int(k): str(v) for k, v in old_names.items()} + if isinstance(old_names, list): + return {i: str(v) for i, v in enumerate(old_names)} + return {0: "object"} + + +def run_split( + src: Path, + dst: Path, + train_pct: float, + val_pct: float, + test_pct: float, + seed: int, + move: bool, + names_arg: str, + yaml_path: Path, +) -> str: + if not src.exists(): + raise FileNotFoundError(f"源目录不存在: {src}") + + dst.mkdir(parents=True, exist_ok=True) + pairs = find_image_label_pairs(src) + warnings = validate_pairs(pairs) + missing = sum(1 for _, lb in pairs if lb is None) + splits = split_indices(len(pairs), train_pct / 100.0, val_pct / 100.0, test_pct / 100.0, seed) + + same_dir = src.resolve() == dst.resolve() + stage = dst / "_split_stage" + if stage.exists(): + shutil.rmtree(stage) + stage_img = stage / "images" + stage_lbl = stage / "labels" + stage_img.mkdir(parents=True) + stage_lbl.mkdir(parents=True) + + staged: list[tuple[Path, Path | None]] = [] + for img, label in pairs: + new_img = stage_img / img.name + transfer(img, new_img, move=False) + new_lbl = None + if label is not None: + new_lbl = stage_lbl / label.name + transfer(label, new_lbl, move=False) + staged.append((new_img, new_lbl)) + + if move: + # 源文件已暂存后,再删除源侧原文件 + for img, label in pairs: + img.unlink(missing_ok=True) + if label is not None: + label.unlink(missing_ok=True) + + for split in ("train", "val", "test"): + for kind in ("images", "labels"): + out = dst / kind / split + if out.exists(): + shutil.rmtree(out) + out.mkdir(parents=True, exist_ok=True) + + for split, idxs in splits.items(): + if not idxs: + continue + img_out = dst / "images" / split + lbl_out = dst / "labels" / split + for i in idxs: + img, label = staged[i] + transfer(img, img_out / img.name, move=True) + if label is not None: + transfer(label, lbl_out / label.name, move=True) + else: + (lbl_out / f"{img.stem}.txt").write_text("", encoding="utf-8") + + shutil.rmtree(stage, ignore_errors=True) + + names = load_or_build_names(yaml_path, names_arg) + write_data_yaml(yaml_path, dst, has_test=bool(splits["test"]), names=names) + + lines = [ + f"源目录: {src}", + f"输出目录: {dst}" + ("(原地重划分)" if same_dir else ""), + f"总样本: {len(pairs)} 无标签: {missing}", + ] + for split, idxs in splits.items(): + if idxs: + lines.append(f" {split}: {len(idxs)}") + for w in warnings: + lines.append(f"警告: {w}") + lines.append(f"已生成: {yaml_path}") + return "\n".join(lines) + + +class SplitApp(tk.Tk): + def __init__(self) -> None: + super().__init__() + self.title("YOLO 数据集划分") + self.geometry("760x520") + self.minsize(700, 480) + + self.var_src = tk.StringVar(value=str(ROOT / "datasets" / "phonedata")) + self.var_dst = tk.StringVar(value=str(ROOT / "datasets" / "phonedata")) + self.var_yaml = tk.StringVar(value=str(ROOT / "data.yaml")) + self.var_names = tk.StringVar(value="phone") + self.var_train = tk.DoubleVar(value=80) + self.var_val = tk.DoubleVar(value=20) + self.var_test = tk.DoubleVar(value=0) + self.var_use_test = tk.BooleanVar(value=False) + self.var_seed = tk.IntVar(value=42) + self.var_move = tk.BooleanVar(value=False) + self.var_sum = tk.StringVar(value="合计: 100%") + + self._build() + self.on_test_toggle() + self.refresh_sum() + + def _build(self) -> None: + pad = {"padx": 8, "pady": 6} + frm = ttk.Frame(self, padding=12) + frm.pack(fill="both", expand=True) + frm.columnconfigure(1, weight=1) + + ttk.Label(frm, text="源数据文件夹").grid(row=0, column=0, sticky="w", **pad) + ttk.Entry(frm, textvariable=self.var_src).grid(row=0, column=1, sticky="ew", **pad) + ttk.Button(frm, text="浏览", command=self.browse_src).grid(row=0, column=2, **pad) + + ttk.Label(frm, text="输出文件夹").grid(row=1, column=0, sticky="w", **pad) + ttk.Entry(frm, textvariable=self.var_dst).grid(row=1, column=1, sticky="ew", **pad) + btns = ttk.Frame(frm) + btns.grid(row=1, column=2, **pad) + ttk.Button(btns, text="浏览", command=self.browse_dst).pack(side="left") + ttk.Button(btns, text="新建", command=self.create_dst).pack(side="left", padx=(6, 0)) + + ttk.Label(frm, text="data.yaml").grid(row=2, column=0, sticky="w", **pad) + ttk.Entry(frm, textvariable=self.var_yaml).grid(row=2, column=1, sticky="ew", **pad) + ttk.Button(frm, text="浏览", command=self.browse_yaml).grid(row=2, column=2, **pad) + + ttk.Label(frm, text="类别名").grid(row=3, column=0, sticky="w", **pad) + ttk.Entry(frm, textvariable=self.var_names).grid(row=3, column=1, sticky="ew", **pad) + ttk.Label(frm, text="逗号分隔,如 phone,cable").grid(row=3, column=2, sticky="w", **pad) + + ratio = ttk.LabelFrame(frm, text="划分百分比(合计必须 100%)", padding=10) + ratio.grid(row=4, column=0, columnspan=3, sticky="ew", **pad) + for c in range(6): + ratio.columnconfigure(c, weight=1) + + ttk.Label(ratio, text="训练 %").grid(row=0, column=0, sticky="w") + train_entry = ttk.Entry(ratio, textvariable=self.var_train, width=8) + train_entry.grid(row=0, column=1, sticky="w") + ttk.Label(ratio, text="验证 %").grid(row=0, column=2, sticky="w") + val_entry = ttk.Entry(ratio, textvariable=self.var_val, width=8) + val_entry.grid(row=0, column=3, sticky="w") + ttk.Checkbutton(ratio, text="启用测试集", variable=self.var_use_test, command=self.on_test_toggle).grid( + row=0, column=4, sticky="w" + ) + self.test_entry = ttk.Entry(ratio, textvariable=self.var_test, width=8) + self.test_entry.grid(row=0, column=5, sticky="w") + ttk.Label(ratio, textvariable=self.var_sum).grid(row=1, column=0, columnspan=3, sticky="w", pady=(8, 0)) + ttk.Label(ratio, text="快捷:").grid(row=1, column=3, sticky="e", pady=(8, 0)) + ttk.Button(ratio, text="80/20", command=lambda: self.set_ratio(80, 20, 0)).grid(row=1, column=4, sticky="w", pady=(8, 0)) + ttk.Button(ratio, text="70/20/10", command=lambda: self.set_ratio(70, 20, 10)).grid( + row=1, column=5, sticky="w", pady=(8, 0) + ) + + for var in (self.var_train, self.var_val, self.var_test): + var.trace_add("write", lambda *_: self.refresh_sum()) + + opts = ttk.Frame(frm) + opts.grid(row=5, column=0, columnspan=3, sticky="ew", **pad) + ttk.Label(opts, text="随机种子").pack(side="left") + ttk.Entry(opts, textvariable=self.var_seed, width=8).pack(side="left", padx=(6, 16)) + ttk.Checkbutton(opts, text="移动文件(默认复制)", variable=self.var_move).pack(side="left") + + ttk.Button(frm, text="扫描源目录", command=self.scan_src).grid(row=6, column=0, columnspan=1, sticky="ew", pady=10) + ttk.Button(frm, text="开始划分", command=self.run).grid(row=6, column=1, columnspan=2, sticky="ew", pady=10) + + self.log = tk.Text(frm, height=12, wrap="word") + self.log.grid(row=7, column=0, columnspan=3, sticky="nsew") + frm.rowconfigure(7, weight=1) + self.log.insert("end", "说明:\n") + self.log.insert("end", "1. 源目录可为未划分数据,或已有 train/val(会合并后重新划分)\n") + self.log.insert("end", "2. 输出目录可新建;结构: images/train|val|test + labels/...\n") + self.log.insert("end", "3. 百分比自定义,启用测试集时 train+val+test=100\n") + self.log.insert("end", "4. 当前 phonedata 格式正确时可直接点「扫描源目录」确认数量\n") + + def browse_src(self) -> None: + path = filedialog.askdirectory(initialdir=self.var_src.get() or str(ROOT)) + if path: + self.var_src.set(path) + + def browse_dst(self) -> None: + path = filedialog.askdirectory(initialdir=self.var_dst.get() or str(ROOT)) + if path: + self.var_dst.set(path) + + def create_dst(self) -> None: + parent = filedialog.askdirectory(title="选择新建文件夹的父目录", initialdir=str(ROOT / "datasets")) + if not parent: + return + dialog = tk.Toplevel(self) + dialog.title("新建输出文件夹") + dialog.geometry("420x140") + dialog.transient(self) + dialog.grab_set() + name_var = tk.StringVar(value="split") + ttk.Label(dialog, text=f"父目录: {parent}").pack(anchor="w", padx=12, pady=(12, 4)) + row = ttk.Frame(dialog) + row.pack(fill="x", padx=12) + ttk.Label(row, text="文件夹名").pack(side="left") + ttk.Entry(row, textvariable=name_var).pack(side="left", fill="x", expand=True, padx=8) + + def ok() -> None: + name = name_var.get().strip() + if not name: + messagebox.showwarning("新建", "请输入文件夹名", parent=dialog) + return + path = Path(parent) / name + path.mkdir(parents=True, exist_ok=True) + self.var_dst.set(str(path)) + dialog.destroy() + + ttk.Button(dialog, text="创建", command=ok).pack(pady=12) + + def browse_yaml(self) -> None: + path = filedialog.asksaveasfilename( + initialdir=str(ROOT), + initialfile="data.yaml", + defaultextension=".yaml", + filetypes=[("YAML", "*.yaml;*.yml"), ("All", "*.*")], + ) + if path: + self.var_yaml.set(path) + + def set_ratio(self, train: float, val: float, test: float) -> None: + self.var_use_test.set(test > 0) + self.on_test_toggle() + self.var_train.set(train) + self.var_val.set(val) + self.var_test.set(test) + self.refresh_sum() + + def on_test_toggle(self) -> None: + if self.var_use_test.get(): + self.test_entry.state(["!disabled"]) + if float(self.var_test.get() or 0) <= 0: + self.var_test.set(10) + self.var_train.set(70) + self.var_val.set(20) + else: + self.var_test.set(0) + self.test_entry.state(["disabled"]) + self.refresh_sum() + + def refresh_sum(self) -> None: + try: + train = float(self.var_train.get()) + val = float(self.var_val.get()) + test = float(self.var_test.get()) if self.var_use_test.get() else 0.0 + total = train + val + test + ok = abs(total - 100.0) < 0.05 + self.var_sum.set(f"合计: {total:.1f}% {'✓' if ok else '(必须等于 100%)'}") + except (tk.TclError, ValueError, TypeError): + self.var_sum.set("合计: --") + + def scan_src(self) -> None: + try: + pairs = find_image_label_pairs(Path(self.var_src.get())) + warnings = validate_pairs(pairs) + missing = sum(1 for _, lb in pairs if lb is None) + msg = f"扫描完成: 共 {len(pairs)} 张图,缺标签 {missing}\n" + for w in warnings: + msg += f"警告: {w}\n" + if not warnings and missing == 0: + msg += "图文配对与标签格式检查通过。\n" + except Exception as exc: + messagebox.showerror("扫描失败", str(exc)) + self.log.insert("end", f"\n扫描错误: {exc}\n") + return + self.log.insert("end", f"\n{msg}") + self.log.see("end") + messagebox.showinfo("扫描结果", msg) + + def run(self) -> None: + try: + train = float(self.var_train.get()) + val = float(self.var_val.get()) + test = float(self.var_test.get()) if self.var_use_test.get() else 0.0 + if abs(train + val + test - 100.0) > 0.05: + raise ValueError("百分比合计必须等于 100") + msg = run_split( + src=Path(self.var_src.get()), + dst=Path(self.var_dst.get()), + train_pct=train, + val_pct=val, + test_pct=test, + seed=int(self.var_seed.get()), + move=self.var_move.get(), + names_arg=self.var_names.get(), + yaml_path=Path(self.var_yaml.get()), + ) + except Exception as exc: + messagebox.showerror("划分失败", str(exc)) + self.log.insert("end", f"\n错误: {exc}\n") + return + self.log.insert("end", f"\n{msg}\n") + self.log.see("end") + messagebox.showinfo("完成", msg) + + +def parse_args() -> argparse.Namespace: + parser = argparse.ArgumentParser(description="YOLO 数据集划分") + parser.add_argument("--cli", action="store_true", help="命令行模式(默认打开界面)") + parser.add_argument("--src", type=Path, default=ROOT / "datasets" / "phonedata") + parser.add_argument("--dst", type=Path, default=ROOT / "datasets" / "phonedata") + parser.add_argument("--train", type=float, default=80, help="训练集百分比,如 80") + parser.add_argument("--val", type=float, default=20, help="验证集百分比,如 20") + parser.add_argument("--test", type=float, default=0, help="测试集百分比,如 10") + parser.add_argument("--seed", type=int, default=42) + parser.add_argument("--move", action="store_true") + parser.add_argument("--names", type=str, default="phone") + parser.add_argument("--yaml", type=Path, default=ROOT / "data.yaml") + return parser.parse_args() + + +def main() -> None: + args = parse_args() + if args.cli: + msg = run_split( + src=args.src if args.src.is_absolute() else ROOT / args.src, + dst=args.dst if args.dst.is_absolute() else ROOT / args.dst, + train_pct=args.train, + val_pct=args.val, + test_pct=args.test, + seed=args.seed, + move=args.move, + names_arg=args.names, + yaml_path=args.yaml if args.yaml.is_absolute() else ROOT / args.yaml, + ) + print(msg) + return + SplitApp().mainloop() + + +if __name__ == "__main__": + main() diff --git a/train.yaml b/train.yaml new file mode 100644 index 0000000..5ae5bfd --- /dev/null +++ b/train.yaml @@ -0,0 +1,50 @@ +# YOLOv8 训练配置模板 +# 改完后在项目根目录执行: +# yolo train cfg=train.yaml + +task: detect +mode: train +model: yolov8n.pt # n/s/m/l/x,或本地 best.pt +data: 01data.yaml # 指向本项目数据集配置 + +epochs: 100 +batch: 8 # 显存不够改 4 或 2,-1 为自动 +imgsz: 640 +device: 0 # 0=GPU,cpu=CPU +workers: 4 # Windows 报错可改 0 +amp: true + +project: runs +name: yolov8_gongjian +exist_ok: true +save: true +save_period: 10 +plots: true +val: true +patience: 50 + +optimizer: auto # auto / SGD / Adam / AdamW +lr0: 0.01 +lrf: 0.01 +momentum: 0.937 +weight_decay: 0.0005 +warmup_epochs: 3.0 +cos_lr: false +close_mosaic: 10 +pretrained: true +resume: false +seed: 0 + +hsv_h: 0.015 +hsv_s: 0.7 +hsv_v: 0.4 +degrees: 0.0 +translate: 0.1 +scale: 0.5 +fliplr: 0.5 +mosaic: 1.0 +mixup: 0.0 + +box: 7.5 +cls: 0.5 +dfl: 1.5 diff --git a/train_faster_rcnn.py b/train_faster_rcnn.py new file mode 100644 index 0000000..9035a8c --- /dev/null +++ b/train_faster_rcnn.py @@ -0,0 +1,291 @@ +"""用 YOLO 格式数据集训练 torchvision Faster R-CNN。""" + +from __future__ import annotations + +import argparse +import time +from pathlib import Path + +import cv2 +import numpy as np +import torch +import yaml +from torch.utils.data import DataLoader, Dataset +from tqdm import tqdm + +from detectors import build_faster_rcnn, resolve_device + +ROOT = Path(__file__).resolve().parent + + +class YoloDetDataset(Dataset): + """读取 Ultralytics YOLO txt 标签(class cx cy w h,归一化)。""" + + def __init__(self, img_dir: Path, label_dir: Path, imgsz: int = 640) -> None: + self.img_paths = sorted( + [p for p in img_dir.iterdir() if p.suffix.lower() in {".jpg", ".jpeg", ".png", ".bmp"}] + ) + self.label_dir = label_dir + self.imgsz = int(imgsz) + + def __len__(self) -> int: + return len(self.img_paths) + + def __getitem__(self, idx: int): + path = self.img_paths[idx] + bgr = cv2.imread(str(path)) + if bgr is None: + raise RuntimeError(f"无法读取图像: {path}") + h0, w0 = bgr.shape[:2] + scale = self.imgsz / max(h0, w0) + nh, nw = max(1, int(round(h0 * scale))), max(1, int(round(w0 * scale))) + bgr = cv2.resize(bgr, (nw, nh), interpolation=cv2.INTER_LINEAR) + rgb = cv2.cvtColor(bgr, cv2.COLOR_BGR2RGB) + image = torch.from_numpy(rgb).permute(2, 0, 1).float() / 255.0 + + label_path = self.label_dir / f"{path.stem}.txt" + boxes = [] + labels = [] + if label_path.exists(): + for line in label_path.read_text(encoding="utf-8").splitlines(): + parts = line.strip().split() + if len(parts) < 5: + continue + cls_id = int(float(parts[0])) + cx, cy, bw, bh = map(float, parts[1:5]) + x1 = (cx - bw / 2.0) * nw + y1 = (cy - bh / 2.0) * nh + x2 = (cx + bw / 2.0) * nw + y2 = (cy + bh / 2.0) * nh + x1 = float(np.clip(x1, 0, nw - 1)) + y1 = float(np.clip(y1, 0, nh - 1)) + x2 = float(np.clip(x2, 0, nw - 1)) + y2 = float(np.clip(y2, 0, nh - 1)) + if x2 <= x1 or y2 <= y1: + continue + boxes.append([x1, y1, x2, y2]) + # Faster R-CNN 前景从 1 开始 + labels.append(cls_id + 1) + + if boxes: + boxes_t = torch.tensor(boxes, dtype=torch.float32) + labels_t = torch.tensor(labels, dtype=torch.int64) + else: + boxes_t = torch.zeros((0, 4), dtype=torch.float32) + labels_t = torch.zeros((0,), dtype=torch.int64) + + target = { + "boxes": boxes_t, + "labels": labels_t, + "image_id": torch.tensor([idx]), + "area": (boxes_t[:, 3] - boxes_t[:, 1]) * (boxes_t[:, 2] - boxes_t[:, 0]) + if len(boxes_t) + else torch.zeros((0,), dtype=torch.float32), + "iscrowd": torch.zeros((len(boxes_t),), dtype=torch.int64), + } + return image, target + + +def collate_fn(batch): + return tuple(zip(*batch)) + + +def load_data_yaml(path: Path) -> dict: + data = yaml.safe_load(path.read_text(encoding="utf-8")) or {} + root = Path(data["path"]) + if not root.is_absolute(): + root = (path.parent / root).resolve() + return { + "root": root, + "train": root / data.get("train", "images/train"), + "val": root / data.get("val", "images/val"), + "names": data.get("names", {0: "object"}), + } + + +def load_cfg(path: Path) -> dict: + cfg = yaml.safe_load(path.read_text(encoding="utf-8")) or {} + return cfg + + +@torch.inference_mode() +def evaluate(model, loader, device) -> dict[str, float]: + model.eval() + total = 0 + hit = 0 + score_sum = 0.0 + for images, targets in loader: + images = [img.to(device) for img in images] + outputs = model(images) + for out, tgt in zip(outputs, targets): + total += 1 + gt = tgt["boxes"] + if len(gt) == 0: + continue + if len(out["boxes"]) == 0: + continue + # 简化指标:最高分框与任一 GT IoU>0.5 记命中 + scores = out["scores"].detach().cpu() + boxes = out["boxes"].detach().cpu() + best = int(torch.argmax(scores)) + score_sum += float(scores[best]) + pb = boxes[best] + for gb in gt: + xx1 = max(float(pb[0]), float(gb[0])) + yy1 = max(float(pb[1]), float(gb[1])) + xx2 = min(float(pb[2]), float(gb[2])) + yy2 = min(float(pb[3]), float(gb[3])) + inter = max(0.0, xx2 - xx1) * max(0.0, yy2 - yy1) + area_p = max(0.0, float(pb[2] - pb[0])) * max(0.0, float(pb[3] - pb[1])) + area_g = max(0.0, float(gb[2] - gb[0])) * max(0.0, float(gb[3] - gb[1])) + union = area_p + area_g - inter + 1e-6 + if inter / union >= 0.5: + hit += 1 + break + return { + "val_images": float(total), + "recall_proxy": hit / max(1, total), + "avg_top_score": score_sum / max(1, total), + } + + +def train_one_epoch(model, optimizer, loader, device, print_freq: int) -> float: + model.train() + loss_meter = 0.0 + n = 0 + pbar = tqdm(loader, desc="train", leave=False) + for i, (images, targets) in enumerate(pbar): + images = [img.to(device) for img in images] + targets = [{k: v.to(device) for k, v in t.items()} for t in targets] + loss_dict = model(images, targets) + losses = sum(loss for loss in loss_dict.values()) + optimizer.zero_grad(set_to_none=True) + losses.backward() + optimizer.step() + loss_meter += float(losses.detach().cpu()) + n += 1 + if (i + 1) % print_freq == 0: + pbar.set_postfix(loss=f"{loss_meter / n:.4f}") + return loss_meter / max(1, n) + + +def main() -> None: + parser = argparse.ArgumentParser(description="Train Faster R-CNN on YOLO-format dataset") + parser.add_argument("--cfg", type=str, default=str(ROOT / "faster_rcnn.yaml")) + args = parser.parse_args() + + cfg = load_cfg(Path(args.cfg)) + data_yaml = Path(cfg.get("data", "01data.yaml")) + if not data_yaml.is_absolute(): + data_yaml = ROOT / data_yaml + data = load_data_yaml(data_yaml) + + train_img = Path(data["train"]) + val_img = Path(data["val"]) + # YOLO layout: images/train -> labels/train + train_lbl = train_img.parent.parent / "labels" / train_img.name + val_lbl = val_img.parent.parent / "labels" / val_img.name + if not train_lbl.exists(): + train_lbl = Path(str(train_img).replace("images", "labels")) + if not val_lbl.exists(): + val_lbl = Path(str(val_img).replace("images", "labels")) + + imgsz = int(cfg.get("imgsz", 640)) + train_set = YoloDetDataset(train_img, train_lbl, imgsz=imgsz) + val_set = YoloDetDataset(val_img, val_lbl, imgsz=imgsz) + if len(train_set) == 0: + raise RuntimeError(f"训练集为空: {train_img}") + + device = resolve_device(cfg.get("device", "0")) + num_classes = int(cfg.get("num_classes", 2)) + model = build_faster_rcnn(num_classes, pretrained_backbone=bool(cfg.get("pretrained", True))) + model.to(device) + + resume = str(cfg.get("resume") or "").strip() + start_epoch = 1 + if resume: + ckpt = torch.load(resume, map_location="cpu", weights_only=False) + model.load_state_dict(ckpt["model"] if isinstance(ckpt, dict) and "model" in ckpt else ckpt) + start_epoch = int(ckpt.get("epoch", 0)) + 1 if isinstance(ckpt, dict) else 1 + print(f"已从 {resume} 恢复,下一轮 epoch={start_epoch}") + + workers = int(cfg.get("num_workers", 2)) + batch = int(cfg.get("batch_size", 2)) + train_loader = DataLoader( + train_set, + batch_size=batch, + shuffle=True, + num_workers=workers, + collate_fn=collate_fn, + pin_memory=device.type == "cuda", + ) + val_loader = DataLoader( + val_set, + batch_size=1, + shuffle=False, + num_workers=max(0, workers // 2), + collate_fn=collate_fn, + ) + + params = [p for p in model.parameters() if p.requires_grad] + optimizer = torch.optim.SGD( + params, + lr=float(cfg.get("lr", 0.005)), + momentum=float(cfg.get("momentum", 0.9)), + weight_decay=float(cfg.get("weight_decay", 0.0005)), + ) + lr_scheduler = torch.optim.lr_scheduler.StepLR( + optimizer, + step_size=int(cfg.get("step_size", 12)), + gamma=float(cfg.get("gamma", 0.1)), + ) + + out_dir = ROOT / cfg.get("project", "runs/faster_rcnn") / cfg.get("name", "exp") + if out_dir.exists() and not bool(cfg.get("exist_ok", True)): + raise RuntimeError(f"输出目录已存在: {out_dir}") + out_dir.mkdir(parents=True, exist_ok=True) + weights_dir = out_dir / "weights" + weights_dir.mkdir(exist_ok=True) + + epochs = int(cfg.get("epochs", 30)) + print_freq = int(cfg.get("print_freq", 20)) + eval_every = int(cfg.get("eval_every", 1)) + best_score = -1.0 + + print(f"device={device} train={len(train_set)} val={len(val_set)} out={out_dir}") + for epoch in range(start_epoch, epochs + 1): + t0 = time.perf_counter() + avg_loss = train_one_epoch(model, optimizer, train_loader, device, print_freq) + lr_scheduler.step() + metrics = {"loss": avg_loss} + if epoch % eval_every == 0 and len(val_set) > 0: + metrics.update(evaluate(model, val_loader, device)) + elapsed = time.perf_counter() - t0 + print( + f"epoch {epoch}/{epochs} loss={avg_loss:.4f} " + f"recall_proxy={metrics.get('recall_proxy', float('nan')):.3f} " + f"time={elapsed:.1f}s" + ) + + ckpt = { + "epoch": epoch, + "model": model.state_dict(), + "num_classes": num_classes, + "names": data["names"], + "cfg": cfg, + "metrics": metrics, + } + torch.save(ckpt, weights_dir / "last.pth") + if epoch % 5 == 0: + torch.save(ckpt, weights_dir / f"epoch{epoch}.pth") + score = float(metrics.get("recall_proxy", 0.0)) + if score >= best_score: + best_score = score + torch.save(ckpt, weights_dir / "best.pth") + print(f" saved best.pth (recall_proxy={best_score:.3f})") + + print(f"训练完成。权重目录: {weights_dir}") + + +if __name__ == "__main__": + main() diff --git a/ultralytics b/ultralytics new file mode 160000 index 0000000..3702ebe --- /dev/null +++ b/ultralytics @@ -0,0 +1 @@ +Subproject commit 3702ebede664e3dd46835400986a885e7022eeb6 diff --git a/yolo26n.pt b/yolo26n.pt new file mode 100644 index 0000000..be48188 Binary files /dev/null and b/yolo26n.pt differ diff --git a/yolov8n.pt b/yolov8n.pt new file mode 100644 index 0000000..0db4ca4 Binary files /dev/null and b/yolov8n.pt differ