本项目面向Aimlabs等本地射击训练和计算机视觉教学场景,旨在解决虚拟机无法直接控制宿主机鼠标、目标识别不稳定及误点击等问题。系统通过实时采集游戏画面、识别目标球、计算准星偏移并执行安全控制,为视觉识别、跨系统通信和人机交互课程提供完整的实验与演示平台。
点击空白处退出提示
本项目面向Aimlabs等本地射击训练和计算机视觉教学场景,旨在解决虚拟机无法直接控制宿主机鼠标、目标识别不稳定及误点击等问题。系统通过实时采集游戏画面、识别目标球、计算准星偏移并执行安全控制,为视觉识别、跨系统通信和人机交互课程提供完整的实验与演示平台。
功能模块: 系统由Windows屏幕推流、Linux视频源读取、目标球检测、目标锁定、准星偏移计算、鼠标控制策略、UDP通信、Windows鼠标桥接、自动点击保护、可视化调试和配置管理等模块组成。
主要功能描述: Windows端实时采集主屏幕并生成HTTP MJPEG视频流,Ubuntu/Linux端使用OpenCV读取画面,通过HSV颜色分割、形态学处理、轮廓面积、圆度、填充率、亮度和饱和度等条件识别青色或蓝色目标球。系统计算目标与准星中心的横纵偏移,通过UDP发送控制指令,由Windows桥接程序调用SendInput完成鼠标移动和可选点击,同时提供目标锁定、移动死区、步长限制、稳定帧判断、点击冷却、手动操作暂停及F键阻塞等安全功能。
我负责的具体任务: 项目需求分析、Windows与Linux协同架构设计、OpenCV目标检测算法开发、视频流接入、目标偏移及鼠标控制逻辑实现、UDP通信协议设计、Windows屏幕推流和鼠标桥接程序开发,并完成配置文件、构建脚本、运行教程、异常处理及调试信息展示。
技术栈、架构及亮点难点: 项目使用C++17、OpenCV和CMake开发,采用“Windows屏幕采集与执行端—HTTP MJPEG视频流—Linux视觉处理端—UDP控制指令—Windows SendInput桥接端”的跨系统架构。实现亮点是通过多条件轮廓筛选和历史目标加权减少阴影误识别与目标跳变,并利用死区、增益、最大步长、稳定帧、点击冷却、口令校验、手动接管暂停和热键阻塞机制降低鼠标误移动及误点击风险。主要难点是虚拟机与宿主机之间的低延迟通信、复杂背景下的目标稳定识别以及自动控制与人工操作之间的冲突处理。





评论