Skip to content

dimaria1122/desktop-vision-on-Raspberry-Pi-5

Repository files navigation

Desktop Vision

Desktop Vision 是一个面向 Raspberry Pi 5 的桌面式检测演示项目,结合 2D 图像、深度数据与桌面端交互流程,用于快速验证一键检测设备的基础能力。

项目当前集成了以下核心组件:

  • IMX477:负责 2D 尺寸测量与外观检测
  • Arducam B0410C:负责基于深度信息的 3D 分析
  • PyQt5:负责桌面端可视化界面
  • OpenCV:负责传统视觉算法与图像处理流程

当前功能

本版本聚焦于可运行的硬件原型,主要包含:

  • 2D 实时预览
  • 深度实时预览
  • 界面手动触发采集
  • 单次同步采集 RGB 与深度数据
  • 基础 2D 测量
  • 基础 2D 缺陷检测
  • 基础 3D 堆叠 / 翘曲分析
  • 将检测结果持久化保存到 output/

项目结构

.
 config/
 output/
 src/
    core/
    devices/
    pipeline/
    storage/
    ui/
    vision_2d/
    vision_3d/
 main.py
 requirements.txt

Python 依赖

先安装 Python 依赖:

pip install -r requirements.txt

组内环境说明

本项目默认配合树莓派 5 上已经准备好的 tofenv 虚拟环境使用。

  • 当前设备用户名:violet
  • 家目录:/home/violet
  • tofenv 路径:/home/violet/tofenv
  • Arducam_tof_camera 目录位于家目录下

如果组员是在这台已经配置好的树莓派上运行本项目,建议直接复用这个环境,不要重复新建虚拟环境。每次开始前先执行:

source /home/violet/tofenv/bin/activate

激活后建议顺手确认一下当前解释器是否正确:

echo $VIRTUAL_ENV
which python
python -c "import sys; print(sys.executable)"

理想情况下,输出应指向:

  • /home/violet/tofenv
  • /home/violet/tofenv/bin/python

如果不是在这台树莓派上运行,而是换了一台新设备或更换了用户名,那么就需要按实际环境重新创建或调整虚拟环境路径。

Raspberry Pi 依赖

在 Raspberry Pi OS 上,还需要额外安装与相机相关的系统依赖:

本项目中的深度相机适配层默认依赖 Arducam 示例中使用的 Python 模块:

import ArducamDepthCamera as ac

运行方式

桌面环境或通用 Linux

python main.py

在组内这台 Raspberry Pi 上

推荐使用下面这组最直接的流程:

cd ~/你的仓库名
source /home/violet/tofenv/bin/activate
python scripts/check_runtime.py
python scripts/check_2d.py
python scripts/check_depth.py
python scripts/smoke_test.py
python main.py

如果你已经把仓库克隆到树莓派上,最常见的启动顺序就是:先进入项目目录,再激活 tofenv,然后依次做运行环境检查、2D 相机检查、深度相机检查、联合冒烟测试,最后再启动主界面。

拉取项目

第一次使用时,先在树莓派家目录下拉取仓库:

cd ~
git clone https://github.com/你的用户名/你的仓库名.git
cd 你的仓库名

如果仓库已经拉取过,就直接进入项目目录即可:

cd ~/你的仓库名

检查运行环境

进入项目目录并激活环境后,先运行:

cd ~/你的仓库名
source /home/violet/tofenv/bin/activate
python scripts/check_runtime.py

期望看到类似下面的检查结果:

  • [OK] import cv2
  • [OK] import yaml
  • [OK] import PyQt5
  • [OK] import picamera2
  • [OK] import ArducamDepthCamera

如果这里有模块导入失败,先不要直接运行主程序,而是优先补齐环境。

单独测试 IMX477

这一阶段建议先只连接 IMX477CAM1,不要同时连接 Arducam。

系统层可先测试:

rpicam-hello --list-cameras
rpicam-hello -t 5000
rpicam-still -o imx477_test.jpg

项目层测试:

cd ~/你的仓库名
source /home/violet/tofenv/bin/activate
python scripts/check_2d.py

单独测试 Arducam B0410C

这一阶段只连接 Arducam B0410CCAM2

官方示例测试:

cd ~/Arducam_tof_camera/example/python
python3 preview_depth.py
python3 capture_raw.py

项目层测试:

cd ~/你的仓库名
source /home/violet/tofenv/bin/activate
python scripts/check_depth.py

双相机联合测试

当两个相机都单独验证通过后,再按下面方式同时接入:

  • IMX477 -> CAM1
  • Arducam B0410C -> CAM2

然后先测 IMX477:

rpicam-hello --list-cameras
rpicam-still -o dual_imx477_test.jpg

如果默认相机编号不对,再试:

rpicam-still --camera 0 -o dual_imx477_test.jpg
rpicam-still --camera 1 -o dual_imx477_test.jpg

再测试 Arducam:

cd ~/Arducam_tof_camera/example/python
python3 preview_depth.py

项目联合冒烟测试

完成双相机接入后,再回到项目目录运行:

cd ~/你的仓库名
source /home/violet/tofenv/bin/activate
python scripts/check_2d.py
python scripts/check_depth.py
python scripts/smoke_test.py

如果 smoke_test.py 执行成功,检测结果会输出到 output/

启动主程序

所有检查都通过后,再启动主程序:

cd ~/你的仓库名
source /home/violet/tofenv/bin/activate
python main.py

进入界面后的推荐操作顺序:

  • 点击连接设备
  • 观察状态栏是否正常
  • 点击刷新预览
  • 点击手动采集并检测

说明

  • 如果环境中缺少 Picamera2ArducamDepthCamera,程序会自动回退到合成演示帧,确保界面仍可正常启动。
  • 这样设计是为了方便桌面端开发、算法联调以及分阶段硬件接入。
  • 在组内这台树莓派上,默认优先复用 /home/violet/tofenv,这样最省事,也最接近当前已经验证通过的运行环境。
  • 如果你想确认 Raspberry Pi 当前实际使用的虚拟环境,可执行:
echo $VIRTUAL_ENV
which python
python -c "import sys; print(sys.executable)"

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors