版本: v3.0 适用系统: Windows 11 (64位) 更新日期: 2025年11月 作者: TC
📋 目录
🖥️ 系统要求
硬件要求
- 处理器: Intel Core i5 或更高 (推荐 i7/i9)
- 内存: 8GB RAM 以上 (推荐 16GB)
- 显卡: 支持 CUDA 的 NVIDIA 显卡 (可选,用于 GPU 加速)
- 硬盘: 至少 10GB 可用空间
- 接口: USB 3.0 接口 (用于工业相机连接)
软件要求
- 操作系统: Windows 11 (64位)
- 权限: 管理员权限 (安装阶段需要)
- 网络: 互联网连接 (用于下载依赖)
外设要求
- 工业相机: 海康威视 MVS 系列工业相机 (可选)
- 串口设备: 用于定时器控制 (可选)
📦 准备工作
下载必需文件
- Anaconda 安装包
- 版本:
Anaconda3-2024.02-1-Windows-x86_64.exe - 下载地址: https://www.anaconda.com/download
- 文件大小: 约 800MB
- 版本:
- 项目压缩包
- 包含本项目所有必需文件 (见后续打包清单)
- 解压到任意目录 (建议:
E:\Program Files\youdi)
- 海康威视 MVS SDK (如使用工业相机)
- 版本: MVS SDK v4.0 或更高
- 下载地址: https://www.hikrobotics.com/cn/machinevision/service/download
- 文件大小: 约 500MB
- OpenH264 库 (已包含在项目压缩包中)
- 文件名:
openh264-2.5.1-win64.dll - 如需单独下载: https://github.com/cisco/openh264/releases
- 文件名:
🚀 安装步骤
1. 安装 Anaconda
1.1 运行安装程序
- 双击
Anaconda3-2024.02-1-Windows-x86_64.exe - 选择 Just Me (recommended) (仅为当前用户安装)
- 安装路径建议:
C:\ProgramData\anaconda3或C:\Users\<用户名>\anaconda3
1.2 重要配置选项
- ✅ Add Anaconda3 to my PATH environment variable (勾选此项,方便命令行调用)
- ✅ Register Anaconda3 as my default Python 3.x (设为默认 Python)
1.3 验证安装
打开 命令提示符 (CMD) 或 PowerShell,输入:
conda --version
python --version
正常输出版本号即表示安装成功。
示例输出:
conda 24.1.2
Python 3.11.7
2. 创建 Python 环境
为避免依赖冲突,建议为项目创建独立的 conda 环境。
2.1 创建环境
打开 Anaconda Prompt 或 命令提示符,执行:
conda create -n millikan python=3.11 -y
参数说明:
-n millikan: 环境名称为millikanpython=3.11: 使用 Python 3.11 版本-y: 自动确认所有提示
2.2 激活环境
conda activate millikan
激活后,命令行前缀会显示 (millikan),表示进入该环境。
3. 安装核心依赖库
3.1 安装 PyTorch (支持 CUDA)
如果有 NVIDIA 显卡 (推荐):
conda install pytorch torchvision torchaudio pytorch-cuda=12.1 -c pytorch -c nvidia -y
如果仅使用 CPU:
conda install pytorch torchvision torchaudio cpuonly -c pytorch -y
3.2 安装 YOLOv8 (Ultralytics)
pip install ultralytics
3.3 安装 OpenCV
pip install opencv-python opencv-contrib-python
3.4 安装数据处理库
pip install pandas numpy scipy matplotlib
3.5 安装 Web 框架 NiceGUI
pip install nicegui
3.6 安装网络请求库
pip install httpx
3.7 安装串口通信库
pip install pyserial
3.8 一键安装命令 (推荐)
为方便安装,可将以下命令保存为 install_dependencies.bat 批处理文件:
@echo off
echo 正在安装密里根实验系统依赖...
conda activate millikan
pip install ultralytics opencv-python opencv-contrib-python pandas numpy scipy matplotlib nicegui httpx pyserial
conda install pytorch torchvision torchaudio pytorch-cuda=12.1 -c pytorch -c nvidia -y
echo 依赖安装完成!
pause
双击运行即可完成所有依赖安装。
4. 配置 OpenH264 库
OpenH264 是视频编码库,用于支持 H.264 格式视频的录制和播放。
4.1 放置 DLL 文件
将 openh264-2.5.1-win64.dll 复制到项目根目录:
E:\Program Files\youdi\openh264-2.5.1-win64.dll
4.2 添加环境变量 (可选)
- 右键 此电脑 → 属性 → 高级系统设置 → 环境变量
- 在 系统变量 中找到
Path,点击 编辑 - 添加新条目:
E:\Program Files\youdi - 点击 确定 保存
注意: 项目启动脚本已自动处理该路径,手动配置环境变量仅作为备用方案。
5. 安装海康威视 MVS SDK
如果不使用工业相机,可跳过此步骤。
5.1 运行 SDK 安装程序
- 双击
MVS-V4.x.x_x64.exe(版本号可能不同) - 选择安装路径,建议:
D:\MVS - 勾选 Python 开发包 选项
- 完成安装
5.2 配置 SDK 路径
项目代码中使用的 SDK 导入路径为:
D:/MVS/Development/Samples/Python/MvImport
如安装到其他路径,需修改以下文件:
Millikan-Procedure.py(主程序)testmvs.py(相机测试脚本)
搜索 MvImport 并替换为实际路径。
5.3 验证 SDK 安装
在 Python 环境中测试:
import sys
sys.path.append('D:/MVS/Development/Samples/Python/MvImport')
from MvCameraControl_class import MvCamera
print("MVS SDK 导入成功!")
6. 部署项目文件
6.1 解压项目文件
将项目压缩包解压到目标目录,推荐路径:
E:\Program Files\youdi\
6.2 验证文件结构
确保以下核心文件存在:
E:\Program Files\youdi\
├── Millikan-Procedure.py (主程序)
├── 启动密里根实验.bat (启动脚本)
├── best.pt (YOLO 模型文件)
├── openh264-2.5.1-win64.dll (视频编码库)
├── video_config.json (路径配置)
├── MvCameraControl_class.py (相机控制类)
├── MvErrorDefine_const.py (错误定义)
├── PixelType_header.py (像素类型)
├── CameraParams_header.py (相机参数)
├── MathJAX.py (数学公式渲染)
├── binarytizevideo.py (视频二值化)
├── testmvs.py (相机测试)
└── 定时器/ (定时器控制模块)
6.3 创建必要目录
运行以下命令创建数据存储目录:
cd /d "E:\Program Files\youdi"
mkdir video\MP4_video
mkdir binarization
mkdir modeltest
mkdir results
mkdir camera_recordings
或使用 PowerShell:
cd "E:\Program Files\youdi"
New-Item -ItemType Directory -Path video\MP4_video, binarization, modeltest, results, camera_recordings -Force
📂 项目文件结构
E:\Program Files\youdi\
│
├── Millikan-Procedure.py # 主程序 (核心)
├── 启动密里根实验.bat # 启动脚本 (推荐使用)
├── best.pt # YOLOv8 训练模型 (5.3GB)
├── openh264-2.5.1-win64.dll # H.264 视频编码库
├── video_config.json # 视频路径配置文件
│
├── MvCameraControl_class.py # 相机控制类 (海康威视 SDK 封装)
├── MvErrorDefine_const.py # 错误码定义
├── PixelType_header.py # 像素格式定义
├── CameraParams_header.py # 相机参数定义
├── MathJAX.py # 数学公式渲染支持
│
├── testmvs.py # 相机功能测试脚本
├── binarytizevideo.py # 视频二值化处理
├── transform(批量).py # 批量格式转换工具
├── train_yolo_large.py # YOLO 模型训练脚本
│
├── video/ # 原始视频存储目录
│ └── MP4_video/ # MP4 格式视频
├── binarization/ # 二值化视频输出目录
├── modeltest/ # 标记视频输出目录
├── results/ # 分析结果输出目录
│ ├── camera_config.json # 相机配置文件
│ └── 3303_plot/ # 实验数据图表
├── camera_recordings/ # 相机录制视频目录
│
├── 定时器/ # 定时器控制模块
│ ├── serial_timer_gui.py # 串口定时器 GUI
│ ├── quick_start.bat # 快速启动脚本
│ ├── 使用说明.txt # 使用说明
│ └── 打包说明.txt # 打包说明
│
└── ud/ # Conda 虚拟环境 (可选,用于离线部署)
├── python.exe
├── Lib/
├── Scripts/
└── ...
▶️ 启动与运行
方法一: 使用启动脚本 (推荐)
- 找到项目根目录下的
启动密里根实验.bat - 双击运行
- 脚本会自动:
- 检测 conda 环境
- 设置环境变量
- 启动主程序
脚本内容说明:
@echo off
chcp 65001 >nul
title 密里根油滴实验程序 (Conda直接启动)
REM 设置conda环境路径
set CONDA_ENV=E:\Program Files\youdi\ud
set CONDA_PYTHON=%CONDA_ENV%\python.exe
REM 设置环境变量
set KMP_DUPLICATE_LIB_OK=True
set OPENCV_VIDEOIO_PRIORITY=FFMPEG
set PATH=E:\Program Files\youdi;%PATH%
REM 切换到项目目录
cd /d "E:\Program Files\youdi"
REM 运行主程序
"%CONDA_PYTHON%" Millikan-Procedure.py
注意: 如果项目路径不是 E:\Program Files\youdi,需修改批处理文件中的路径。
方法二: 手动启动
- 打开 Anaconda Prompt
- 激活环境:
conda activate millikan - 切换到项目目录:
cd /d “E:\Program Files\youdi” - 运行主程序:
python Millikan-Procedure.py
方法三: 使用系统 Python (如已配置 ud 环境)
cd /d "E:\Program Files\youdi"
ud\python.exe Millikan-Procedure.py
🌐 访问 Web 界面
程序启动后,会自动:
- 启动本地 Web 服务器
- 查找可用端口 (默认 8080-8090)
- 打印访问地址,例如:
NiceGUI ready to go on http://localhost:8081
在浏览器中访问显示的地址即可使用系统。
推荐浏览器:
- Google Chrome (推荐)
- Microsoft Edge
- Firefox
❓ 常见问题排查
问题 1: 启动脚本提示”未找到 conda 环境的 Python”
原因: 批处理文件中的路径配置不正确。
解决方案:
- 打开
启动密里根实验.bat - 修改第 8 行为实际环境路径:
set CONDA_ENV=<你的实际路径>\youdi\ud - 或使用 conda 环境:
set CONDA_ENV=C:\Users\<用户名>\anaconda3\envs\millikan
问题 2: 提示 “ModuleNotFoundError: No module named ‘ultralytics'”
原因: 依赖库未安装或环境未激活。
解决方案:
conda activate millikan
pip install ultralytics
问题 3: 相机无法连接或提示 “MVS SDK 不可用”
原因:
- 未安装 MVS SDK
- SDK 路径配置错误
- 相机未正确连接
解决方案:
- 确认已安装 MVS SDK 到
D:\MVS - 检查 USB 连接是否正常
- 在设备管理器中查看相机是否识别
- 运行测试脚本:
python testmvs.py
问题 4: 串口设备无法访问 (PermissionError)
原因: 串口被其他程序占用。
解决方案:
- 关闭所有可能占用串口的程序 (如串口调试助手)
- 在设备管理器中检查串口是否存在
- 更换 USB 端口重新连接
- 以管理员权限运行程序
问题 5: 视频编码失败 “H.264 编码器不可用”
原因: OpenH264 库未正确加载。
解决方案:
- 确认
openh264-2.5.1-win64.dll在项目根目录 - 检查环境变量
PATH是否包含项目路径 - 重启程序
问题 6: CUDA 不可用,模型运行速度慢
原因: PyTorch 未检测到 NVIDIA 显卡。
检测方法:
import torch
print(torch.cuda.is_available()) # 应输出 True
解决方案:
- 安装 NVIDIA 显卡驱动 (版本 ≥ 525.60.11)
- 重新安装支持 CUDA 的 PyTorch:
conda install pytorch torchvision torchaudio pytorch-cuda=12.1 -c pytorch -c nvidia -y
问题 7: 程序运行时出现 “KMP_DUPLICATE_LIB_OK” 警告
原因: Intel MKL 库冲突。
解决方案:启动脚本已自动设置该环境变量,无需额外处理。如手动启动,执行:
set KMP_DUPLICATE_LIB_OK=True
问题 8: Web 界面无法访问
原因: 端口被占用或防火墙拦截。
解决方案:
- 检查防火墙设置,允许 Python 访问网络
- 尝试更换端口 (修改代码中的
ui.run(port=8080)) - 使用
netstat -ano | findstr :8080检查端口占用
📚 附录
A. 环境导出与恢复
导出当前环境 (便于在其他设备部署):
conda activate millikan
conda env export > environment.yml
在新设备上恢复环境:
conda env create -f environment.yml
B. 离线安装方案
1. 打包 conda 环境
在联网设备上:
conda activate millikan
conda pack -n millikan -o millikan_env.tar.gz
2. 在目标设备上解压
mkdir E:\Program Files\youdi\ud
cd E:\Program Files\youdi\ud
tar -xzf millikan_env.tar.gz
3. 激活环境
E:\Program Files\youdi\ud\Scripts\activate.bat
C. 依赖库版本参考
以下是经过测试的稳定版本组合:
| 库名称 | 版本 | 说明 |
|---|---|---|
| Python | 3.11.7 | 基础环境 |
| PyTorch | 2.1.2 | 深度学习框架 |
| CUDA | 12.1 | GPU 加速 (可选) |
| Ultralytics | 8.2.0 | YOLOv8 框架 |
| OpenCV | 4.10.0 | 图像处理 |
| NiceGUI | 1.4.10 | Web 界面 |
| NumPy | 1.26.4 | 数值计算 |
| Pandas | 2.2.1 | 数据处理 |
| Matplotlib | 3.8.3 | 绘图 |
| SciPy | 1.12.0 | 科学计算 |
| httpx | 0.27.0 | HTTP 客户端 |
| pyserial | 3.5 | 串口通信 |
D. 性能优化建议
- 使用 SSD 硬盘 提升视频读写速度
- 启用 GPU 加速 YOLO 推理速度提升 10-50 倍
- 调整批处理大小 根据显存大小调整 batch_size
- 关闭不必要的后台程序 减少 CPU/内存占用
E. 项目打包文件清单
建议打包以下文件到 millikan_experiment_v3.0.zip:
核心文件 (必须):
Millikan-Procedure.py 启动密里根实验.bat best.pt openh264-2.5.1-win64.dll video_config.json MvCameraControl_class.py MvErrorDefine_const.py PixelType_header.py CameraParams_header.py MathJAX.py binarytizevideo.py testmvs.py
辅助文件 (推荐):
定时器/serial_timer_gui.py 定时器/quick_start.bat 定时器/使用说明.txt transform(批量).py train_yolo_large.py install_guide.md (本文档)
配置文件 (可选):
results/camera_config.json
不建议打包:
video/(视频文件过大)binarization/(处理结果)modeltest/(处理结果)ud/(环境文件,建议用户自行创建)- 各种备份文件 (
*副本*.py,*backup*.py)
F. 技术支持
问题反馈:
- 项目仓库: (如有 GitHub 链接)
- 邮箱: (如有技术支持邮箱)
参考文档:
- Ultralytics YOLOv8: https://docs.ultralytics.com/
- NiceGUI: https://nicegui.io/
- PyTorch: https://pytorch.org/docs/
- OpenCV: https://docs.opencv.org/
📝 更新日志
v3.0 (2025-11-11)
- 集成工业相机实时预览功能
- 添加 AI 智能问答助手 (DeepSeek API)
- 优化视频编码 (H.264 支持)
- 改进串口定时器控制
- 完善错误处理和日志记录
v2.0 (2024-11-10)
- 引入 YOLOv8 目标检测
- 实现油滴轨迹跟踪算法
- 添加电荷量自动计算
- Web 界面重构 (NiceGUI)
v1.0 (初始版本)
- 基础视频处理功能
- 手动标记和分析
⚖️ 许可证
本项目仅用于学术研究和教学用途,未经授权不得用于商业目的。
祝您使用愉快!如有问题,请参考常见问题排查部分或联系小仇获得技术援助。 🔬✨
