From 5fd630c27bf115ead1a739c983f9ac28a05727d6 Mon Sep 17 00:00:00 2001 From: Havoc <2993167370@qq.com> Date: Mon, 26 May 2025 00:44:24 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96follow=5Fleft=5Fside=5Ftrack?= =?UTF-8?q?=E5=87=BD=E6=95=B0=EF=BC=8C=E8=B0=83=E6=95=B4=E7=9B=AE=E6=A0=87?= =?UTF-8?q?=E8=B7=9D=E7=A6=BB=E5=8F=82=E6=95=B0=E8=87=B3540=E5=83=8F?= =?UTF-8?q?=E7=B4=A0=EF=BC=8C=E5=A2=9E=E5=BC=BA=E7=A8=B3=E5=AE=9A=E6=80=A7?= =?UTF-8?q?=E5=92=8C=E5=93=8D=E5=BA=94=E9=80=9F=E5=BA=A6=EF=BC=9B=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=E6=BB=A4=E6=B3=A2=E9=98=9F=E5=88=97=E5=A4=A7=E5=B0=8F?= =?UTF-8?q?=E8=87=B37=E4=BB=A5=E6=8F=90=E9=AB=98=E7=A8=B3=E5=AE=9A?= =?UTF-8?q?=E6=80=A7=EF=BC=9B=E6=94=B9=E8=BF=9B=E9=80=9F=E5=BA=A6=E8=AE=A1?= =?UTF-8?q?=E7=AE=97=E9=80=BB=E8=BE=91=EF=BC=8C=E7=A1=AE=E4=BF=9D=E6=9B=B4?= =?UTF-8?q?=E5=B9=B3=E6=BB=91=E7=9A=84=E8=B0=83=E6=95=B4=E5=92=8C=E5=81=9C?= =?UTF-8?q?=E6=AD=A2=E8=BF=87=E7=A8=8B=EF=BC=9B=E6=9B=B4=E6=96=B0=E5=B7=A6?= =?UTF-8?q?=E4=BE=A7=E8=BD=A8=E8=BF=B9=E7=BA=BF=E6=A3=80=E6=B5=8B=E6=BC=94?= =?UTF-8?q?=E7=A4=BA=E7=A8=8B=E5=BA=8F=E7=9A=84=E8=BE=93=E5=85=A5=E8=B7=AF?= =?UTF-8?q?=E5=BE=84=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- base_move/move_base_hori_line.py | 180 ++++++++++-------- logs/robot_2025-05-25.log | 20 ++ logs/robot_2025-05-26.log | 30 +++ res/path/left/1.png | Bin 0 -> 49178 bytes res/path/left/2.png | Bin 0 -> 50427 bytes res/path/test/left_track_results/result_2.png | Bin 0 -> 65505 bytes test/task-path-track/left_track_demo.py | 2 +- utils/detect_track.py | 5 +- 8 files changed, 149 insertions(+), 88 deletions(-) create mode 100644 logs/robot_2025-05-26.log create mode 100644 res/path/left/1.png create mode 100644 res/path/left/2.png create mode 100644 res/path/test/left_track_results/result_2.png diff --git a/base_move/move_base_hori_line.py b/base_move/move_base_hori_line.py index c48a8b1..2d9bc49 100644 --- a/base_move/move_base_hori_line.py +++ b/base_move/move_base_hori_line.py @@ -1222,14 +1222,14 @@ def follow_dual_tracks(ctrl, msg, speed=0.5, max_time=30, target_distance=None, return True -def follow_left_side_track(ctrl, msg, target_distance=150, speed=0.3, max_time=30, observe=False): +def follow_left_side_track(ctrl, msg, target_distance=540, speed=0.3, max_time=30, observe=False): """ 控制机器狗向左侧移动并靠近左侧的黄色轨迹线,只进行侧向移动,不进行前进 参数: ctrl: Robot_Ctrl 对象,包含里程计信息 msg: robot_control_cmd_lcmt 对象,用于发送命令 - target_distance: 目标与左侧线的像素距离,默认为150像素(保持一定间距) + target_distance: 目标与左侧线的像素距离,默认为540像素(考虑机器狗视角、高度的合适距离) speed: 侧向移动的最大速度(米/秒),默认为0.3米/秒 max_time: 最大执行时间(秒),默认为30秒 observe: 是否输出中间状态信息和可视化结果,默认为False @@ -1256,22 +1256,9 @@ def follow_left_side_track(ctrl, msg, target_distance=150, speed=0.3, max_time=3 if hasattr(ctrl, 'place_marker'): ctrl.place_marker(start_position[0], start_position[1], start_position[2] if len(start_position) > 2 else 0.0, 'green', observe=True) - # PID控制参数 - 侧向移动的PID参数,根据近距离跟踪需求调整 - kp_side = 0.0025 # 比例系数 - ki_side = 0.0001 # 积分系数 - kd_side = 0.001 # 微分系数 - - # 记录目标到达状态和稳定计数 - target_reached = False - stable_count = 0 - required_stable_count = 8 # 需要连续稳定的检测次数 - - # PID控制变量 - previous_error = 0 - integral = 0 - - # 最大侧向速度限制 - max_side_velocity = speed # 使用参数传入的速度作为最大侧向速度 + # 最大侧向速度限制与动态调整 + max_side_velocity = speed + min_side_velocity = 0.05 # 最小侧向速度,确保能够缓慢移动 # 检测成功计数器 detection_success_count = 0 @@ -1280,12 +1267,17 @@ def follow_left_side_track(ctrl, msg, target_distance=150, speed=0.3, max_time=3 # 保存上一次有效的检测结果,用于检测失败时的平滑过渡 last_valid_track_info = None - # 滤波队列 - filter_size = 5 + # 滤波队列 - 增大滤波窗口以提高稳定性 + filter_size = 7 distance_queue = [] - # 动态调整目标距离的阈值 - target_reached_threshold = 25 # 在目标距离±25像素范围内视为达到目标 + # 设置差值阈值 - 当距离与目标的差值小于此阈值时,认为已达到目标 + distance_threshold = 25 # 像素误差阈值 + + # 记录目标到达状态和稳定计数 + target_reached = False + stable_count = 0 + required_stable_count = 8 # 连续多帧满足条件才算稳定到达目标 # 开始跟踪循环 while time.time() - start_time < max_time: @@ -1310,64 +1302,69 @@ def follow_left_side_track(ctrl, msg, target_distance=150, speed=0.3, max_time=3 if len(distance_queue) > filter_size: distance_queue.pop(0) - # 计算滤波后的距离值 (去除最大和最小值后的平均) + # 计算滤波后的距离值 - 使用中值滤波,对抗异常值 if len(distance_queue) >= 3: - filtered_distances = sorted(distance_queue)[1:-1] if len(distance_queue) > 2 else distance_queue - filtered_distance = sum(filtered_distances) / len(filtered_distances) + # 中值滤波更能抵抗异常值 + filtered_distance = sorted(distance_queue)[len(distance_queue) // 2] else: filtered_distance = current_distance + # 直接计算当前距离与目标距离的差值 + difference = target_distance - filtered_distance # 正值:需要向左移动;负值:需要向右移动 + if observe and time.time() % 0.5 < 0.02: - debug(f"原始左侧距离: {current_distance:.1f}px, 滤波后: {filtered_distance:.1f}px, 目标: {target_distance}px", "距离") + debug(f"左侧距离: {filtered_distance:.1f}px, 目标距离: {target_distance}px, 差值: {difference:.1f}px", "距离") - # 计算误差 - 正误差表示需要向左移动,负误差表示需要向右移动 - error = target_distance - filtered_distance - - # 检查是否达到目标位置 - if abs(error) < target_reached_threshold: # 误差小于阈值视为达到目标 + # 检查是否达到目标位置(差值小于阈值) + if abs(difference) < distance_threshold: stable_count += 1 - if stable_count >= required_stable_count: - if not target_reached: - target_reached = True - if observe: - success(f"已达到目标位置,误差: {abs(error):.1f}px", "成功") + if stable_count >= required_stable_count and not target_reached: + target_reached = True + if observe: + success(f"已达到目标位置,当前距离: {filtered_distance:.1f}px, 与目标差值: {abs(difference):.1f}px", "成功") + + # 在目标位置附近时,使用非常小的速度进行微调 + # 根据差值比例计算速度,使调整更平滑 + adjustment_factor = difference / distance_threshold # 归一化到[-1,1]范围 + side_velocity = min_side_velocity * adjustment_factor * 0.5 # 乘以0.5使调整更微小 + + # 如果计算出的速度非常小,直接设为0 + if abs(side_velocity) < 0.01: + side_velocity = 0 + + if observe and time.time() % 0.5 < 0.02 and side_velocity != 0: + info(f"接近目标位置,微调: {side_velocity:.3f}m/s", "调整") else: + # 不在目标位置,根据差值计算速度 stable_count = 0 target_reached = False + + # 计算速度系数 - 差值越大,速度越大,但有上限 + # 使用非线性映射,使速度变化更平滑 + if abs(difference) > 200: + # 差值大于200像素时,使用最大速度 + speed_factor = 1.0 + else: + # 差值在0-200像素之间,速度从0增长到最大 + speed_factor = min(1.0, abs(difference) / 200.0) + # 应用平方根函数使速度增长曲线更合理(开始缓慢,后面加速) + speed_factor = math.sqrt(speed_factor) + + # 应用方向(差值为正向左移动,为负向右移动) + side_velocity = max_side_velocity * speed_factor * (1 if difference > 0 else -1) + + if observe and time.time() % 0.5 < 0.02: + direction = "左" if side_velocity > 0 else "右" + info(f"距离目标较{direction}远({difference:.1f}px),向{direction}移动: {side_velocity:.3f}m/s", "调整") - # 比例项 - p_control = kp_side * error - - # 积分项 (添加积分限制以防止积分饱和) - integral += error - integral = max(-500, min(500, integral)) # 限制积分范围 - i_control = ki_side * integral - - # 微分项 - derivative = error - previous_error - d_control = kd_side * derivative - previous_error = error - - # 计算侧向速度 - side_velocity = p_control + i_control + d_control - - # 应用非线性控制,加快大距离靠近,减缓小距离微调 - if abs(error) > 100: - # 大误差时,增强响应 - side_velocity *= 1.2 - elif abs(error) < 40: - # 小误差时,减弱响应,增加稳定性 - side_velocity *= 0.7 + # 确保最小移动速度 - 当需要移动但计算值太小时 + if 0 < abs(side_velocity) < min_side_velocity: + side_velocity = min_side_velocity * (1 if side_velocity > 0 else -1) # 限制侧向速度范围 side_velocity = max(-max_side_velocity, min(max_side_velocity, side_velocity)) - # 如果已达到目标,进一步降低侧向速度以减少振荡 - if target_reached: - side_velocity *= 0.4 - if observe and time.time() % 0.5 < 0.02: - debug(f"误差: {error:.1f}px, P: {p_control:.4f}, I: {i_control:.4f}, D: {d_control:.4f}", "控制") debug(f"控制指令: 侧向={side_velocity:.2f}m/s", "速度") # 设置速度命令 - [前进速度, 侧向速度, 角速度] @@ -1380,10 +1377,13 @@ def follow_left_side_track(ctrl, msg, target_distance=150, speed=0.3, max_time=3 slope = track_info["slope"] # 计算旋转角度 - 垂直线的ideal_angle应该是0 angle_correction = -math.atan(1/slope) if abs(slope) > 0.01 else 0 - # 将角度校正应用为小的角速度 - angular_velocity = angle_correction * 0.25 + # 将角度校正应用为小的角速度,并根据距离调整强度 + angle_factor = 1.0 + if target_reached: + angle_factor = 0.5 # 接近目标时减弱角度校正 + angular_velocity = angle_correction * 0.2 * angle_factor # 限制角速度范围 - angular_velocity = max(-0.25, min(0.25, angular_velocity)) + angular_velocity = max(-0.2, min(0.2, angular_velocity)) if abs(angular_velocity) > 0.01: # 只在需要明显校正时应用 msg.vel_des[2] = angular_velocity @@ -1395,27 +1395,34 @@ def follow_left_side_track(ctrl, msg, target_distance=150, speed=0.3, max_time=3 # 如果之前有有效检测结果,使用上一次的控制值但降低强度 if last_valid_track_info is not None and len(distance_queue) > 0: - # 如果上次距离已经接近目标,维持当前位置 - last_error = target_distance - distance_queue[-1] - if abs(last_error) < 50: # 如果接近目标距离 - side_velocity = 0 # 停止侧向移动 + # 获取上次的滤波距离 + last_filtered_distance = distance_queue[-1] + + # 计算上次距离与目标的差值 + last_difference = target_distance - last_filtered_distance + + # 根据上次差值决定行为 + if abs(last_difference) < distance_threshold: + # 上次接近目标,保持位置 + side_velocity = 0 if observe: - info("接近目标位置,保持当前侧向位置", "保持") + info("上次距离接近目标,保持当前位置", "保持") else: - # 向目标方向缓慢移动 - side_velocity = 0.08 * (1 if last_error > 0 else -1) + # 根据差值方向移动,但速度降低 + direction = 1 if last_difference > 0 else -1 + side_velocity = 0.08 * direction if observe: - info(f"距离目标较远,缓慢向{'左' if side_velocity > 0 else '右'}移动", "调整") + info(f"根据上次距离差值({last_difference:.1f}px),向{'左' if direction > 0 else '右'}缓慢移动", "调整") msg.vel_des = [0, side_velocity, 0] if observe: - warning(f"使用降低强度的控制: 侧向={side_velocity:.2f}m/s", "恢复") + warning(f"使用上次距离估计控制: 侧向={side_velocity:.2f}m/s", "恢复") else: - # 如果从未检测到轨迹线,默认向左侧移动一点,尝试找到轨迹线 - default_side_velocity = 0.1 + # 如果从未检测到轨迹线,默认向左侧移动一点,尝试寻找 + default_side_velocity = 0.08 msg.vel_des = [0, default_side_velocity, 0] if observe: - warning(f"无法检测到左侧轨迹线,向左移动尝试寻找: {default_side_velocity:.2f}m/s", "警告") + warning(f"无法检测到左侧轨迹线,向左缓慢移动尝试寻找: {default_side_velocity:.2f}m/s", "警告") # 发送命令 msg.life_count += 1 @@ -1441,14 +1448,21 @@ def follow_left_side_track(ctrl, msg, target_distance=150, speed=0.3, max_time=3 if observe: info("开始平滑停止", "停止") - # 平滑停止 - 由于没有前进速度,只需要停止侧向移动 - slowdown_steps = 3 + # 更平滑的停止 + slowdown_steps = 4 for i in range(slowdown_steps, 0, -1): slowdown_factor = i / slowdown_steps - msg.vel_des = [0, 0, 0] # 完全停止所有移动 + if i > 1: + # 前几步只降低速度 + last_vel = msg.vel_des[1] + reduced_vel = last_vel * slowdown_factor + msg.vel_des = [0, reduced_vel, 0] + else: + # 最后一步完全停止 + msg.vel_des = [0, 0, 0] msg.life_count += 1 ctrl.Send_cmd(msg) - time.sleep(0.1) + time.sleep(0.12) # 稍微延长每步的等待时间,使停止更平滑 # 最后完全停止 ctrl.base_msg.stop() diff --git a/logs/robot_2025-05-25.log b/logs/robot_2025-05-25.log index 4fcf520..da45394 100644 --- a/logs/robot_2025-05-25.log +++ b/logs/robot_2025-05-25.log @@ -35,3 +35,23 @@ 2025-05-25 19:52:34 | INFO | utils.log_helper - ℹ️ 保存原始图像到: logs/image/original_20250525_195234_036434.jpg 2025-05-25 19:52:34 | INFO | utils.log_helper - ℹ️ 保存左侧轨迹线检测结果图像到: logs/image/left_track_20250525_195234_036434.jpg 2025-05-25 19:52:34 | INFO | utils.log_helper - ℹ️ 左侧轨迹线检测结果: {'timestamp': '20250525_195234_036434', 'tracking_point': (133, 1077), 'ground_intersection': (128, 1080), 'distance_to_left': 246.0, 'slope': -0.7035398230088495, 'line_mid_x': 246.0} +2025-05-25 21:00:13 | DEBUG | utils.log_helper - 🐞 步骤1: 原始图像已加载 +2025-05-25 21:00:15 | DEBUG | utils.log_helper - 🐞 步骤2: 创建黄色掩码 +2025-05-25 21:00:16 | DEBUG | utils.log_helper - 🐞 步骤3: 左侧区域掩码 +2025-05-25 21:00:17 | DEBUG | utils.log_helper - 🐞 步骤4: 边缘检测 +2025-05-25 21:00:18 | DEBUG | utils.log_helper - 🐞 步骤5: 检测到 36 条直线 +2025-05-25 21:00:19 | DEBUG | utils.log_helper - 🐞 步骤6: 左侧区域找到 4 条垂直线 +2025-05-25 21:00:20 | DEBUG | utils.log_helper - 🐞 步骤7: 左侧最佳跟踪线和点 +2025-05-25 21:00:21 | INFO | utils.log_helper - ℹ️ 保存原始图像到: logs/image/original_20250525_210021_481763.jpg +2025-05-25 21:00:21 | INFO | utils.log_helper - ℹ️ 保存左侧轨迹线检测结果图像到: logs/image/left_track_20250525_210021_481763.jpg +2025-05-25 21:00:21 | INFO | utils.log_helper - ℹ️ 左侧轨迹线检测结果: {'timestamp': '20250525_210021_481763', 'tracking_point': (94, 1079), 'ground_intersection': (92, 1080), 'distance_to_left': 215.0, 'slope': -0.756198347107438, 'line_mid_x': 215.0} +2025-05-25 21:20:33 | DEBUG | utils.log_helper - 🐞 步骤1: 原始图像已加载 +2025-05-25 21:20:34 | DEBUG | utils.log_helper - 🐞 步骤2: 创建黄色掩码 +2025-05-25 21:20:35 | DEBUG | utils.log_helper - 🐞 步骤3: 左侧区域掩码 +2025-05-25 21:20:36 | DEBUG | utils.log_helper - 🐞 步骤4: 边缘检测 +2025-05-25 21:20:37 | DEBUG | utils.log_helper - 🐞 步骤5: 检测到 36 条直线 +2025-05-25 21:20:38 | DEBUG | utils.log_helper - 🐞 步骤6: 左侧区域找到 4 条垂直线 +2025-05-25 21:20:39 | DEBUG | utils.log_helper - 🐞 步骤7: 左侧最佳跟踪线和点 +2025-05-25 21:20:40 | INFO | utils.log_helper - ℹ️ 保存原始图像到: logs/image/original_20250525_212040_471018.jpg +2025-05-25 21:20:40 | INFO | utils.log_helper - ℹ️ 保存左侧轨迹线检测结果图像到: logs/image/left_track_20250525_212040_471018.jpg +2025-05-25 21:20:40 | INFO | utils.log_helper - ℹ️ 左侧轨迹线检测结果: {'timestamp': '20250525_212040_471018', 'tracking_point': (94, 1079), 'ground_intersection': (92, 1080), 'distance_to_left': 215.0, 'slope': -0.756198347107438, 'line_mid_x': 215.0} diff --git a/logs/robot_2025-05-26.log b/logs/robot_2025-05-26.log new file mode 100644 index 0000000..c68d2ee --- /dev/null +++ b/logs/robot_2025-05-26.log @@ -0,0 +1,30 @@ +2025-05-26 00:20:28 | DEBUG | utils.log_helper - 🐞 步骤1: 原始图像已加载 +2025-05-26 00:20:29 | DEBUG | utils.log_helper - 🐞 步骤2: 创建黄色掩码 +2025-05-26 00:20:30 | DEBUG | utils.log_helper - 🐞 步骤3: 左侧区域掩码 +2025-05-26 00:20:31 | DEBUG | utils.log_helper - 🐞 步骤4: 边缘检测 +2025-05-26 00:20:32 | DEBUG | utils.log_helper - 🐞 步骤5: 检测到 36 条直线 +2025-05-26 00:20:33 | DEBUG | utils.log_helper - 🐞 步骤6: 左侧区域找到 4 条垂直线 +2025-05-26 00:20:34 | DEBUG | utils.log_helper - 🐞 步骤7: 左侧最佳跟踪线和点 +2025-05-26 00:20:35 | INFO | utils.log_helper - ℹ️ 保存原始图像到: logs/image/original_20250526_002035_779025.jpg +2025-05-26 00:20:35 | INFO | utils.log_helper - ℹ️ 保存左侧轨迹线检测结果图像到: logs/image/left_track_20250526_002035_779025.jpg +2025-05-26 00:20:35 | INFO | utils.log_helper - ℹ️ 左侧轨迹线检测结果: {'timestamp': '20250526_002035_779025', 'tracking_point': (94, 1079), 'ground_intersection': (92, 1080), 'distance_to_left': 215.0, 'slope': -0.756198347107438, 'line_mid_x': 215.0} +2025-05-26 00:21:27 | DEBUG | utils.log_helper - 🐞 步骤1: 原始图像已加载 +2025-05-26 00:21:28 | DEBUG | utils.log_helper - 🐞 步骤2: 创建黄色掩码 +2025-05-26 00:21:29 | DEBUG | utils.log_helper - 🐞 步骤3: 左侧区域掩码 +2025-05-26 00:21:30 | DEBUG | utils.log_helper - 🐞 步骤4: 边缘检测 +2025-05-26 00:21:31 | DEBUG | utils.log_helper - 🐞 步骤5: 检测到 36 条直线 +2025-05-26 00:21:32 | DEBUG | utils.log_helper - 🐞 步骤6: 左侧区域找到 4 条垂直线 +2025-05-26 00:21:33 | DEBUG | utils.log_helper - 🐞 步骤7: 左侧最佳跟踪线和点 +2025-05-26 00:21:34 | INFO | utils.log_helper - ℹ️ 保存原始图像到: logs/image/original_20250526_002134_938675.jpg +2025-05-26 00:21:34 | INFO | utils.log_helper - ℹ️ 保存左侧轨迹线检测结果图像到: logs/image/left_track_20250526_002134_938675.jpg +2025-05-26 00:21:34 | INFO | utils.log_helper - ℹ️ 左侧轨迹线检测结果: {'timestamp': '20250526_002134_938675', 'tracking_point': (94, 1079), 'ground_intersection': (92, 1080), 'distance_to_left': 215.0, 'slope': -0.756198347107438, 'line_mid_x': 215.0} +2025-05-26 00:25:05 | DEBUG | utils.log_helper - 🐞 步骤1: 原始图像已加载 +2025-05-26 00:25:06 | DEBUG | utils.log_helper - 🐞 步骤2: 创建黄色掩码 +2025-05-26 00:25:07 | DEBUG | utils.log_helper - 🐞 步骤3: 左侧区域掩码 +2025-05-26 00:25:08 | DEBUG | utils.log_helper - 🐞 步骤4: 边缘检测 +2025-05-26 00:25:10 | DEBUG | utils.log_helper - 🐞 步骤5: 检测到 74 条直线 +2025-05-26 00:25:11 | DEBUG | utils.log_helper - 🐞 步骤6: 左侧区域找到 2 条垂直线 +2025-05-26 00:25:12 | DEBUG | utils.log_helper - 🐞 步骤7: 左侧最佳跟踪线和点 +2025-05-26 00:25:13 | INFO | utils.log_helper - ℹ️ 保存原始图像到: logs/image/original_20250526_002513_050661.jpg +2025-05-26 00:25:13 | INFO | utils.log_helper - ℹ️ 保存左侧轨迹线检测结果图像到: logs/image/left_track_20250526_002513_050661.jpg +2025-05-26 00:25:13 | INFO | utils.log_helper - ℹ️ 左侧轨迹线检测结果: {'timestamp': '20250526_002513_050661', 'tracking_point': (549, 1071), 'ground_intersection': (543, 1080), 'distance_to_left': 584.5, 'slope': -1.619718309859155, 'line_mid_x': 584.5} diff --git a/res/path/left/1.png b/res/path/left/1.png new file mode 100644 index 0000000000000000000000000000000000000000..3a4add7db9ff9892fd36fd4a6fdce0e9d4c8a585 GIT binary patch literal 49178 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%0DemQ|uD2nEOHE2hTIMtBYA{ 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 Y4r3InZi~wO1L>XaR>Ljno2^g%ALOaWLI3~& literal 0 HcmV?d00001 diff --git a/res/path/left/2.png b/res/path/left/2.png new file mode 100644 index 0000000000000000000000000000000000000000..f18f608a256bf48e32315ae242d275f9020cc69b GIT binary patch literal 50427 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 literal 0 HcmV?d00001 diff --git a/res/path/test/left_track_results/result_2.png b/res/path/test/left_track_results/result_2.png new file mode 100644 index 0000000000000000000000000000000000000000..5b07e69a59fb31d2ddb33564c7abc97bafc43469 GIT binary patch literal 65505 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 MvQsVgAL9%E55Ug40ssI2 literal 0 HcmV?d00001 diff --git a/test/task-path-track/left_track_demo.py b/test/task-path-track/left_track_demo.py index dacc369..041c20b 100644 --- a/test/task-path-track/left_track_demo.py +++ b/test/task-path-track/left_track_demo.py @@ -196,7 +196,7 @@ def process_video(video_path, save_dir=None, show_steps=False): def main(): parser = argparse.ArgumentParser(description='左侧黄色轨迹线检测演示程序') - parser.add_argument('--input', type=str, default='res/path/image_20250513_162556.png', help='输入图像或视频的路径') + parser.add_argument('--input', type=str, default='res/path/left/2.png', help='输入图像或视频的路径') parser.add_argument('--output', type=str, default='res/path/test/left_track_results/', help='输出结果的保存目录') parser.add_argument('--type', type=str, choices=['image', 'video'], help='输入类型,不指定会自动检测') parser.add_argument('--show', default=True, help='显示处理步骤') diff --git a/utils/detect_track.py b/utils/detect_track.py index f34521f..770546f 100644 --- a/utils/detect_track.py +++ b/utils/detect_track.py @@ -1372,11 +1372,8 @@ def detect_left_side_track(image, observe=False, delay=1000, save_log=True): # 优先选择在图像下半部分的线段 height_score = min(1.0, mid_y / (height * 0.6)) - # 斜率得分,垂直度越高越好 - slope_score = min(1.0, abs(slope) / 20) if abs(slope) < 100 else 1.0 - # 综合评分,加大位置权重 - return length_score * 0.2 + position_score * 0.5 + height_score * 0.2 + slope_score * 0.1 + return length_score * 0.2 + position_score * 0.5 + height_score * 0.2 # 对线段进行评分并排序 left_vertical_lines = sorted(left_vertical_lines, key=score_left_line, reverse=True)