小小的修改

This commit is contained in:
2026-05-28 11:03:15 +08:00
parent 244d64f872
commit 31da324c52
2 changed files with 132 additions and 95 deletions
+9 -9
View File
@@ -107,14 +107,9 @@ def draw_boxes(img, detections):
def main():
detector = YOLO26UAVInfer(MODEL_PATH)
cap = cv2.VideoCapture(INPUT_VIDEO)
from control import UAVController
# 初始化飞控通信类 (后续需根据实际串口修改, 这里临时选用 /dev/ttyUSB0代替)
uav_controller = UAVController(port='/dev/ttyUSB0', baud=115200)
# 控制总开关: 只有当人在地面发送允许指令才会开启 AI 追踪
AI_CONTROL_ENABLE = False
uav = UAVController()
if not cap.isOpened():
print("❌ 无法打开视频源")
@@ -163,17 +158,22 @@ def main():
# 画中心对准线
cv2.line(frame, (int(img_center_x), int(img_center_y)), (int(target_x), int(target_y)), (255, 0, 0), 2)
cv2.putText(frame, f"MAVLink Out -> Err_X: {err_x:+.3f} Err_Y: {err_y:+.3f}", (20, 70),
cv2.FONT_HERSHEY_SIMPLEX, 0.6, (255, 255, 0), 2)
cv2.putText(frame, f"MAVLink Out -> Err_X: {err_x:+.3f} Err_Y: {err_y:+.3f}", (20, 70),cv2.FONT_HERSHEY_SIMPLEX, 0.6, (255, 255, 0), 2)
# ================ MAVLink 动作调用 =================
uav.update_control(has_target=True, err_x=err_x, err_y=err_y)
# =================================================
else:
cv2.putText(frame, "MAVLink Out -> Target LOST (HOVER)", (20, 70), cv2.FONT_HERSHEY_SIMPLEX, 0.6,
(0, 0, 255), 2)
# ================ MAVLink 丢失保护 =================
uav.update_control(has_target=False)
# =================================================
# 5. 在原始分辨率大图上,渲染精准目标框
frame = draw_boxes(frame, detections)
cv2.putText(frame, f"NPU Pure FPS: {fps_pure:.1f}", (20, 30), cv2.FONT_HERSHEY_SIMPLEX, 0.7, (0, 255, 255), 2)
# 🚀【核心优化点】只有在进入发送队列的前一秒,才将画好完美框的图 resize 为轻量化分辨率
# 只有在进入发送队列的前一秒,才将画好完美框的图 resize 为轻量化分辨率
send_frame = cv2.resize(frame, (640, 480))
# 6. 非阻塞式尝试推入图传队列