ai-robot-wangqiuzhuang

Week 12: 远程摄像头流与 ArUco 标记识别 ⭐

🎯 冲A+核心周 — 本周实验打通了手机摄像头 → WSL → OpenCV 的完整数据链路

本周概览


操作步骤

1. 课件地址

https://course.a-real.me/content/week12.html

2. WSL 安装 Tailscale

在 WSL 中执行 Tailscale 安装指令,使用 Google 账号登录完成设备注册:

WSL安装Tailscale

3. 手机端安装 Tailscale

手机应用商店下载 Tailscale,使用与步骤 2 相同的 Google 账号登录。

4. 手机 SSH 远程连接 WSL

手机下载终端工具 Termius,使用 WSL 的用户名和密码远程连接:

手机远程连接WSL成功

5. 验证设备互联

连接成功后,PC 端 Tailscale 控制台可以看到全部在线设备:

PC端控制台截图

6. 安装 SSH 服务

在 WSL 中执行以下指令安装并启动 SSH 服务:

安装SSH服务

7. 克隆实验代码

git clone https://github.com/ai-robot-class/ai-robot-class.github.io.git

8. 安装 Python 依赖

安装pip3

进入项目目录,安装依赖:

cd ai-robot-class.github.io
pip install -r week12_starters/requirements.txt

执行Python脚本

9. 手机浏览器访问摄像头页面

在手机浏览器中访问 http://<wsl-ip>:5000(IP 地址和端口以实际为准),页面会发起摄像头权限请求:

手机浏览器调用摄像头成功

Python解码成功

10. 验证视频流稳定性

手机画面能够稳定出现在 WSL 的 OpenCV 窗口中,实时视频流传输成功。

11. 代码架构解析

手机浏览器 (HTTPS 页面)
    │ 调用摄像头
    │ JPEG 帧 → WebSocket
    ▼
WSL Python 服务端
    │ OpenCV 解码
    │ 实时显示
    ▼
OpenCV 显示窗口

核心流程:WSL 托管 HTTPS 页面 → 手机浏览器打开页面 → 页面调用摄像头 → JPEG 帧通过 WebSocket 发送到 Python → OpenCV 解码并显示

12. ArUco 标记生成与识别

访问 ArUco Marker Generator 在线生成 ArUco 标记:

ArUco标记生成器

13. 刷新验证

刷新浏览器,重新获取摄像头权限,触发摄像头重新取样关键帧:

最终解析结果

14. 验证结果

解析得到的 ArUco 数据与输入的图像数据一致,任务完成!✅


踩坑记录

问题 原因 解决方案
浏览器刷新一直超时 WSL 中运行的程序端口挂起 杀死 WSL 中运行的程序,重新 run 后浏览器刷新秒入

总结

本周是课程中的 冲A+核心实验,成功搭建了跨设备的实时摄像头流传输链路,打通了「手机摄像头 → Tailscale 组网 → WSL Python/OpenCV → ArUco 识别」的完整数据管道。这一架构可扩展至远程机器人视觉、移动端 AI 推理等实际应用场景。