手势识别项目环境配置文档

手势识别项目环境配置文档

项目环境架构

本项目采用分阶段环境配置策略,针对不同的开发阶段使用独立的环境,确保各阶段工具链的独立性和稳定性。

数据处理与训练环境 (dl_env)

训练环境主要用于数据集处理、模型开发和基础训练工作,配置如下:
dl_env
该环境的核心功能:

  1. 数据集预处理与增强
  2. 模型设计与训练
  3. 性能评估与可视化
  4. 模型导出为ONNX格式

量化优化环境 (esp-dl)

量化环境专门用于模型优化和量化,配置如下:
esp-dl
该环境主要用于:

  1. ONNX模型优化
  2. 模型量化实验
  3. 量化模型评估
  4. 生成ESP32部署文件

ESP32开发环境

ESP32开发环境需要独立于Conda环境,使用ESP-IDF原生工具链:

  1. 环境准备:

    1
    2
    3
    4
    5
    # 退出当前conda环境
    conda deactivate

    # 激活ESP-IDF环境
    . $HOME/esp/esp-idf/export.sh
  2. 项目编译与烧录:

    1
    2
    3
    4
    5
    6
    7
    8
    # 编译项目
    idf.py build

    # 烧录程序
    idf.py -p /dev/ttyUSB0 flash

    # 监视输出
    idf.py monitor

环境配置流程

训练环境配置

1
2
3
4
5
6
7
8
# 创建训练环境
conda env create -f dl_env_environment.yml

# 激活环境
conda activate dl_env

# 验证PyTorch安装
python -c "import torch; print(torch.__version__)"

量化环境配置

1
2
3
4
5
6
7
8
# 创建量化环境
conda env create -f esp-dl_environment.yml

# 激活环境
conda activate esp-dl

# 验证ONNX Runtime安装
python -c "import onnxruntime as ort; print(ort.__version__)"

ESP-IDF环境配置

1
2
3
4
5
6
7
8
9
10
11
12
# 安装依赖包
sudo apt-get install git wget flex bison gperf python3-pip python3-setuptools cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0

# 获取ESP-IDF
git clone --recursive https://github.com/espressif/esp-idf.git

# 安装工具链
cd esp-idf
./install.sh esp32s3

# 配置环境变量
. ./export.sh

开发工作流程

  1. 训练阶段

    • 激活dl_env环境
    • 完成数据处理与模型训练
    • 将模型导出为ONNX格式
  2. 量化阶段

    • 切换到esp-dl环境
    • 执行模型量化与优化
    • 生成量化后的模型文件
  3. 部署阶段

    • 退出Conda环境
    • 激活ESP-IDF环境
    • 使用idf.py命令进行编译和烧录

环境维护建议

  1. 依赖管理

    • 使用environment.yml维护环境依赖
    • 定期更新关键包的安全补丁
    • 保持工具链版本的稳定性
  2. 环境隔离

    • 严格遵循环境分离原则
    • 避免在不同环境间混用工具
    • 及时清理不需要的包和缓存
  3. 版本控制

    • 记录各环境的具体版本信息
    • 确保团队成员使用相同的环境配置
    • 将环境文件纳入版本控制系统

手势识别项目环境配置文档
https://blakehansen130.github.io/2024/11/29/development-environment-docs/
发布于
2024年11月29日
许可协议