1. 环境准备Windows10下的深度学习配置在Windows10上搭建SlowFast环境确实是个技术活我去年用RTX3060笔记本折腾这个项目时光环境配置就花了整整两天。和Linux/Mac不同Windows平台需要特别注意CUDA、PyTorch和Detectron2的版本兼容问题。先说说我的硬件配置i7-10870H处理器、RTX3060显卡6GB显存、32GB内存。这里要特别提醒显卡显存最好在6GB以上我之前用4GB显存的GTX1650跑模型时直接报显存不足错误。安装Anaconda是第一步建议选择Python3.8版本太新的Python版本可能会遇到包兼容问题。创建独立环境非常必要我用的是这个命令conda create -n slowfast python3.8 -yPyTorch的安装要格外小心经过多次测试我发现这个组合最稳定conda install pytorch1.8.0 torchvision0.9.0 torchaudio0.8.0 cudatoolkit11.1 -c pytorch -c conda-forgeCUDA和cuDNN的版本必须严格匹配。我推荐使用CUDA 11.1 cuDNN 8.2.1的组合安装命令如下conda install cudnn8.2.1验证安装是否成功时可以运行这段测试代码import torch print(torch.__version__) # 应该输出1.8.0 print(torch.cuda.is_available()) # 应该返回True print(torch.version.cuda) # 应该显示11.12. 关键依赖安装与问题排查Detectron2的安装绝对是最大的坑我在三个不同设备上部署时都遇到了不同问题。官方推荐用源码编译安装但在Windows上直接运行pip install命令经常会失败。这里分享几个实用技巧首先安装必要的依赖pip install cython pyyaml5.1 pip install opencv-python pillow matplotlib对于fvcore和cocoapi的安装国内用户可能会遇到网络问题。我的解决方案是# 替换github为gitee镜像 pip install githttps://gitee.com/mirrors/fvcore.git pip install githttps://gitee.com/wsyin/cocoapi.git#subdirectoryPythonAPIDetectron2的安装要分步进行git clone https://github.com/facebookresearch/detectron2 --depth1 cd detectron2 pip install -e .常见错误及解决方法C编译错误通常是因为VC构建工具未安装需要安装Visual Studio 2019的C组件CUDA版本不匹配重新检查PyTorch和CUDA的版本对应关系网络超时使用国内镜像源或设置代理注意这里仅指常规网络代理我遇到过最棘手的问题是error: Microsoft Visual C 14.0 is required解决方法是通过Visual Studio Installer安装使用C的桌面开发工作负载。3. SlowFast源码配置与构建从GitHub克隆官方源码时建议使用--recursive参数确保子模块完整git clone --recursive https://github.com/facebookresearch/SlowFast cd SlowFast构建过程中有几个关键点需要注意修改setup.py文件将PIL替换为pillow如果使用国内网络建议提前下载好预训练模型约2GB对于Windows路径问题所有配置文件中的路径都要使用双反斜杠或原始字符串构建命令如下python setup.py build develop我整理了一份必备的依赖清单这些包都需要提前安装好fvcore0.1.5.post20220512simplejson3.17.6av8.0.3PyYAML5.4.1tqdm4.62.3特别提醒如果遇到Pillow安装问题可以尝试先卸载现有版本再安装pip uninstall pillow pip install pillow8.4.04. 模型权重与配置文件调整SlowFast的模型权重可以从官方Model Zoo下载我常用的是SLOWFAST_8x8_R50.pkl这个预训练模型。下载后建议放在./checkpoints目录下。配置文件调整是核心环节以demo/AVA/SLOWFAST_32x2_R101_50_50.yaml为例需要修改这些关键参数DEMO: ENABLE: True LABEL_FILE_PATH: F:\\SlowFast\\demo\\AVA\\ava.json # 你的标签文件路径 INPUT_VIDEO: F:\\SlowFast\\demo\\videos\\test.mp4 # 输入视频路径 OUTPUT_FILE: F:\\SlowFast\\demo\\output\\output.mp4 # 输出视频路径 DETECTRON2_CFG: COCO-Detection/faster_rcnn_R_50_FPN_3x.yaml DETECTRON2_WEIGHTS: detectron2://COCO-Detection/faster_rcnn_R_50_FPN_3x/137849458/model_final_280758.pkl标签文件(ava.json)的格式很关键我建议先用官方提供的示例等跑通后再自定义。文件内容大致如下{ walk: 0, run: 1, sit: 2, stand: 3, jump: 4 }对于视频输入输出有几个实用建议视频分辨率不要超过1920x1080视频时长控制在30秒以内处理长视频需要调整缓存设置输出视频编码建议使用H.2645. 运行与参数调优运行命令的基本格式是python tools/run_net.py --cfg demo/AVA/SLOWFAST_32x2_R101_50_50.yaml对于性能调优我总结了几点经验批处理大小在configs/Kinetics/SLOWFAST.yaml中调整TRAIN.BATCH_SIZE和TEST.BATCH_SIZE帧采样率DATA.SAMPLING_RATE参数影响处理速度和准确率显存优化在cfg.SOLVER中添加OPTIMIZING.USE_AMP True启用混合精度训练常见运行错误及解决方案CUDA out of memory减小批处理大小或降低输入分辨率Missing key(s) in state_dict检查模型权重和配置文件是否匹配Video decoder error转换视频为MP4格式并使用H.264编码我常用的视频预处理命令使用FFmpegffmpeg -i input.avi -c:v libx264 -preset slow -crf 22 -pix_fmt yuv420p output.mp4对于实时摄像头输入需要修改DEMO.WEBCAM参数并注释掉INPUT_VIDEODEMO: WEBCAM: 0 # 0表示默认摄像头 # INPUT_VIDEO: # 注释掉这行6. 实际应用案例与效果提升在我的一个安防监控项目中SlowFast成功识别出了异常行为如跌倒、打架。经过调优后准确率从初始的72%提升到了89%。关键改进措施包括数据增强在配置文件中启用这些选项DATA: TRAIN_JITTER_SCALES: [256, 320] TRAIN_CROP_SIZE: 224 TEST_CROP_SIZE: 256模型融合结合SlowFast和TimeSformer的结果后处理优化对连续帧的识别结果进行平滑处理对于特定场景的优化我建议室内场景重点优化坐、站、走等常见动作体育场景增强跑、跳、投掷等动作的识别安防场景提高跌倒、打架等异常行为的敏感度处理速度方面在RTX3060上8x8采样约12FPS4x4采样约25FPS实时模式降低精度可达30FPS最后分享一个实用技巧使用TensorBoard可视化训练过程能极大提升调优效率tensorboard --logdir./checkpoints