Skip to the content.

📝 Week 13 实验汇报:基于 Tailscale 的跨设备相机桥接与服务器端检测

1. 实验目标

搭建跨设备的视觉传输链路,通过 Tailscale 实现手机与 WSL Ubuntu 之间的网络穿透。

部署基于 Flask 的 camera_bridge.py 桥接程序,完成视频流的高效转发。

初步验证 OpenCV 在服务器端的图像流接收,并成功完成 ArUco 标记 (Marker) 的实时识别检测。

2. 核心实验步骤与原理

2.1 Tailscale 虚拟局域网搭建

由于 WSL2 处于宿主机的内部 NAT 网络中,手机等外部局域网设备无法直接通过 IP 访问。

本实验通过 Tailscale 将手机与 WSL Ubuntu 加入同一个虚拟专用网络,赋予两者可以直接互联的独立 IP。

从截图底部可以看到,服务器部署于指定的物理节点(如 100.107.84.47:5000),实现了跨设备稳定通信。

🐍 2.2 Flask 桥接环境配置与运行

依赖安装:在本地环境执行以下命令确保微服务框架及依赖就绪:

Bash pip install -r week12_starters/requirements.txt 启动网关:在项目根目录运行桥接脚本,暴露 5000 端口服务:

Bash python3 week12_starters/camera_bridge.py

3. 实验结果展示 (Experimental Results)

根据后台服务器的反馈和实时采集状态,两张核心节点截图如下:

后台服务器输出分析:

字典类型:DICT_4X4_50

实时状态:Detected: 1,系统在帧画面中成功定位并解算出 ID: 0 的 ArUco 标记。

界面集成:前端通过高亮绿色边框和黄色数字标识(ID: 0),证明了算法对标签轮廓和内部矩阵数据的精确解析。

4. 实验总结

本周完成了从环境隔离到链路打通的关键一步。在实际操作中,通过 camera_bridge.py 采集手机端的实时动态画面发送给服务端,后台 OpenCV 算子能够保持敏捷响应。检测结果表明,即使在复杂的网络数据帧转发下,基于轻量矩阵的 ArUco 的检测精确度依旧很高