# BXC_VideoNet **Repository Path**: Vanishi/BXC_VideoNet ## Basic Information - **Project Name**: BXC_VideoNet - **Description**: VideoNet本质上是为处理视频时序信息而设计的,能够理解动作的连续性和动态特征,它不仅仅依赖于单帧的静态特征。 - **Primary Language**: Python - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 11 - **Forks**: 3 - **Created**: 2025-10-12 - **Last Updated**: 2025-12-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: PyTorch, CNN, 3d ## README # BXC_VideoNet - 视频动作识别框架 ### 👨‍💻 作者信息 - **作者**:北小菜 - **邮箱**:bilibili_bxc@126.com - **QQ**:1402990689 - **微信**:bilibili_bxc - **哔哩哔哩**:https://space.bilibili.com/487906612 - **Gitee**:https://gitee.com/Vanishi/BXC_VideoNet - **GitHub**:https://github.com/beixiaocai/BXC_VideoNet ### 📖 项目简介 VideoNet 是一个面向视频动作识别的深度学习框架,提供命令行与 Web 管理后台两种使用方式,支持 PyTorch 训练与 ONNX/OpenVINO/TensorRT 导出。VideoNet本质上是为处理视频时序信息而设计的,能够理解动作的连续性和动态特征,它不仅仅依赖于单帧的静态特征。 ## 快速上手 ### 环境准备 - Python:Windows 推荐 `3.10`,Linux 推荐 `3.8` - 可选:NVIDIA GPU + CUDA `12.1` - 创建并激活虚拟环境(Windows): ```bash python -m venv venv venv\Scripts\activate python -m pip install --upgrade pip -i https://pypi.tuna.tsinghua.edu.cn/simple ``` - 创建并激活虚拟环境(Linux): ```bash python -m venv venv source venv/bin/activate python -m pip install --upgrade pip -i https://pypi.tuna.tsinghua.edu.cn/simple ``` - 安装依赖: ```bash pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple ``` - 安装 PyTorch: - CPU 版: ```bash pip install torch==2.1.0 torchvision==0.16.0 torchaudio==2.1.0 -i https://pypi.tuna.tsinghua.edu.cn/simple ``` - GPU 版(CUDA 12.1): ```bash pip install torch==2.1.0 torchvision==0.16.0 torchaudio==2.1.0 --index-url https://download.pytorch.org/whl/cu121 ``` ### 方式一:Web 管理后台(推荐) - 启动服务: ```bash python app.py ``` - 访问地址:`http://127.0.0.1:5000` - 使用流程: - 数据集管理:创建类别 → 上传视频 → 设置训练/验证比例(默认 8:2) - 模型训练:设置 Epoch、Batch Size、Learning Rate;可选断点续训 - 模型测试:上传视频查看预测与 Top-5 概率 - 模型转换:一键导出 ONNX/OpenVINO ### 方式二:命令行 - 准备数据集目录(示例): ``` dataset/ ├── train/ └── val/ ``` - 原始 UCF50/UCF101 转换: ```bash python split_ucf.py ``` - 训练: ```bash python train.py ``` - 测试: ```bash python test.py ``` 在 `test.py` 可调整: ```python num_frames = 16 sampling_strategy = 'uniform' # 'uniform' | 'random_segment' | 'dense' ``` ## 模型导出与部署 - 导出 ONNX: ```bash python export2onnx.py ``` - 转换 OpenVINO: ```bash mo --input_model best_model.onnx --output_dir best_model_openvino_model ``` - 推理示例:`test/` 目录包含 ONNX/OpenVINO/TensorRT 示例 ## 项目结构 - `app.py`:Flask Web 管理后台 - `train.py` / `test.py`:训练与评估脚本 - `dataset.py`:视频/图片数据加载与采样策略 - `model.py`:模型结构定义 - `export2onnx.py`:模型导出为 ONNX - `templates/`:Web 页面模板 - `web_data/`:运行时数据(uploads/dataset/models/config.json) ## 常见问题 - Web 无法访问:检查服务是否启动、端口占用、防火墙;默认端口为 `5000` - CUDA 显存不足:降低 `Batch Size`,关闭其他占用 GPU 的程序,或改用 CPU 训练 - 上传失败:确认格式(.mp4/.avi/.mov)、大小≤500MB、磁盘空间充足,并先选中目标类别 ## 参考 - 采样策略细节与最佳实践:`SAMPLELOG.md` - License:MIT(见 `LICENSE`) - 当前版本:`v1.02` - 更新记录:`CHANGELOG.md`