⌛ 本弹窗10秒后关闭。
06_附录

附录

<div style="background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); padding: 20px; border-radius: 12px; margin-bottom: 30px;">
<h3 style="color: white; margin: 0;">🎯 附录概览</h3>
<p style="color: #f0f0f0; margin: 10px 0 0 0;">提供代码修改指南、答辩文档、常见问题解答和参考文献</p>
</div>

🏗️ 附录导航

  • [[#附录A:代码修改指南]]
  • [[#附录B:答辩文档]]
  • [[#附录C:常见问题解答]]
  • [[#附录D:参考文献]]

<div style="background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); padding: 20px; border-radius: 12px; margin-bottom: 30px;">
<h3 style="color: white; margin: 0;">🔧 附录A:代码修改指南</h3>
<p style="color: #f0f0f0; margin: 5px 0 0 0;">系统配置和参数调整指南</p>
</div>

A.1 配置路径修改

问题描述:需要修改数据集路径、输出目录或OpenFace路径。

修改位置config.py

修改前

# 数据集根目录
DATASET_ROOT = r"E:\L\DAIC-WOZ"

# 数据集子目录
DATA_DIR = os.path.join(DATASET_ROOT, "数据集")

# 输出目录
OUTPUT_DIR = os.path.join(DATASET_ROOT, "项目执行新文件")

# OpenFace配置
OPENFACE_PATH = r"D:\Desktop\Python\bi_ye_she_ji\环境\OpenFace_2.2.0_win_x64\FeatureExtraction.exe"

修改后

# 数据集根目录
DATASET_ROOT = r"你的数据集路径"

# 数据集子目录
DATA_DIR = os.path.join(DATASET_ROOT, "数据集")

# 输出目录
OUTPUT_DIR = os.path.join(DATASET_ROOT, "项目执行新文件")

# OpenFace配置
OPENFACE_PATH = r"你的OpenFace路径\FeatureExtraction.exe"

修改原因:适配不同用户的文件系统结构。

优势:无需修改其他代码,只需更新配置文件即可适配新环境。

A.2 本地测试系统配置修改

问题描述:本地测试系统需要使用不同的模型目录或报告保存路径。

修改位置本地测试系统/config_local.py

修改前

# 模型目录
MODEL_DIR = r"E:\L\DAIC-WOZ\项目执行新文件"

# 报告保存目录
REPORT_SAVE_DIR = os.path.join(os.path.dirname(__file__), '保存报告')

修改后

# 模型目录
MODEL_DIR = r"你的模型目录路径"

# 报告保存目录
REPORT_SAVE_DIR = r"你的报告保存路径"

修改原因:适配本地测试环境的文件路径。

优势:灵活配置本地测试环境,支持不同的部署场景。

A.3 特征提取参数调整

问题描述:需要调整音频特征提取的参数,如MFCC数量、采样率等。

修改位置2.提取音视频特征.py本地测试系统/feature_extractor.py

音频采样率修改

# 修改前
y, sr = librosa.load(audio_path, sr=16000)

# 修改后
y, sr = librosa.load(audio_path, sr=22050)  # 改为22050Hz采样率

MFCC数量修改

# 修改前
mfcc = librosa.feature.mfcc(y=y, sr=sr, n_mfcc=13)

# 修改后
mfcc = librosa.feature.mfcc(y=y, sr=sr, n_mfcc=20)  # 改为20个MFCC系数

修改原因:根据不同的应用场景调整特征提取参数。

优势:灵活调整特征维度,适应不同的模型需求。

A.4 模型参数优化

问题描述:需要调整逻辑回归的正则化参数、迭代次数等。

修改位置3.训练模型.py

修改前

clf = LogisticRegression(
    penalty='l1',
    solver='liblinear',
    class_weight='balanced',
    random_state=42,
    max_iter=1000
)

修改后

clf = LogisticRegression(
    penalty='l2',  # 改为L2正则化
    solver='lbfgs',  # 改为lbfgs求解器
    class_weight='balanced',
    random_state=42,
    max_iter=2000,  # 增加迭代次数
    C=0.5  # 调整正则化强度
)

修改原因:优化模型性能,调整正则化强度和求解器。

优势:根据数据特点优化模型参数,提高模型性能。

A.5 阈值调整

问题描述:需要手动调整分类阈值以优化召回率或精确率。

修改位置4.本地测试.py本地测试系统/config_local.py

修改前

DEFAULT_THRESHOLDS = {
    'audio': 0.798,
    'visual': 0.726,
    'multimodal': 0.885
}

修改后

DEFAULT_THRESHOLDS = {
    'audio': 0.7,  # 降低阈值提高召回率
    'visual': 0.65,
    'multimodal': 0.8
}

修改原因:根据实际需求调整阈值,平衡召回率和精确率。

优势:灵活调整模型的分类标准,适应不同的应用场景。

附录B:答辩文档

B.1 项目演示脚本

演示步骤

  1. 环境展示

    • 展示项目目录结构
    • 展示配置文件内容
  2. 数据预处理演示

    • 运行 1.数据预处理.py
    • 展示数据验证结果
    • 展示特征提取过程
  3. 模型训练演示

    • 运行 3.训练模型.py
    • 展示5折交叉验证结果
    • 展示模型保存过程
  4. 本地测试演示

    • 运行 本地测试系统/gui_main.py
    • 展示GUI界面
    • 上传测试文件
    • 展示评估过程
    • 展示评估报告
  5. 结果分析

    • 展示模型评估结果
    • 分析特征重要性
    • 展示混淆矩阵

演示脚本

# 1. 展示项目结构
ls -la

# 2. 展示配置文件
cat config.py

# 3. 运行数据预处理
python "1.数据预处理.py"

# 4. 运行特征提取
python "2.提取音视频特征.py"

# 5. 运行模型训练
python "3.训练模型.py"

# 6. 运行模型评估
python "5.准确率评估.py"

# 7. 启动GUI
python "本地测试系统/gui_main.py"

B.2 答辩PPT大纲

幻灯片1:封面

  • 标题:多模态抑郁检测系统
  • 副标题:基于音频和视频特征的抑郁风险评估
  • 姓名、学号、指导教师

幻灯片2:目录

  • 项目背景
  • 技术方案
  • 实验结果
  • 系统演示
  • 总结与展望

幻灯片3:项目背景

  • 抑郁症的现状
  • 传统诊断方法的局限性
  • 多模态抑郁检测的优势

幻灯片4:技术架构

  • 系统架构图
  • 数据层、模型层、应用层、部署层
  • 技术栈介绍

幻灯片5:数据预处理

  • DAIC-WOZ数据集介绍
  • 数据预处理流程
  • 特征提取方法

幻灯片6:特征提取

  • 音频特征:基频、能量、MFCC等
  • 视频特征:面部动作单元AU
  • 特征处理:标准化、特征选择

幻灯片7:模型训练

  • 模型选择:逻辑回归
  • 类别不平衡处理:SMOTE
  • 交叉验证:5折交叉验证

幻灯片8:实验结果

  • 多模态模型:F1分数0.75,召回率0.82
  • 仅音频模型:F1分数0.72,召回率0.78
  • 仅视觉模型:F1分数0.68,召回率0.75
  • 混淆矩阵展示

幻灯片9:系统演示

  • GUI界面展示
  • 操作流程演示
  • 评估报告展示

幻灯片10:核心创新点

  • 多模态融合策略
  • 动态阈值校准
  • 特征重要性分析
  • 用户友好的界面

幻灯片11:系统优势

  • 自动化检测
  • 客观评估
  • 早期筛查
  • 辅助诊断

幻灯片12:局限性

  • 数据集限制
  • 环境要求
  • 专业诊断替代
  • 语言限制

幻灯片13:未来展望

  • 模型优化
  • 功能扩展
  • 应用拓展
  • 研究方向

幻灯片14:总结

  • 项目成果
  • 技术亮点
  • 应用价值

幻灯片15:致谢

  • 感谢指导教师
  • 感谢同学帮助
  • 参考文献

B.3 答辩高频问题

技术类问题

  1. 问题:为什么选择逻辑回归而不是深度学习模型?
    回答:逻辑回归具有可解释性强、训练效率高、鲁棒性好等优点,适合本项目的特征维度和数据规模。深度学习模型需要大量数据和计算资源,而逻辑回归在本项目中已经取得了较好的性能。

  2. 问题:如何处理类别不平衡问题?
    回答:采用了SMOTE算法进行过采样,设置class_weight=’balanced’,使用F2分数作为评估指标,以及动态阈值校准等多种策略。

  3. 问题:多模态融合的具体方法是什么?
    回答:采用加权决策融合策略,音频权重0.55,视频权重0.45,基于实验结果优化得到的最佳权重组合。

  4. 问题:特征选择的方法是什么?
    回答:使用SelectKBest算法,基于f_classif评分选择最具判别力的25个特征。

  5. 问题:如何评估模型的性能?
    回答:采用5折交叉验证,使用准确率、精确率、召回率、F1分数、F2分数和AUC等多个指标进行综合评估。

应用类问题

  1. 问题:系统的适用场景是什么?
    回答:适用于社区心理健康筛查、医院门诊辅助诊断、企业员工心理健康评估和远程医疗咨询等场景。

  2. 问题:如何确保用户隐私安全?
    回答:所有数据处理和模型推理都在本地完成,不涉及数据上传;生成的报告文件不包含原始音视频数据;临时文件会自动清理;支持自定义报告保存路径。

  3. 问题:系统的部署方式是什么?
    回答:支持本地部署,使用PyInstaller打包为可执行文件,便于分发和安装。

  4. 问题:系统的维护成本如何?
    回答:硬件要求低,普通PC即可运行;软件依赖简单,主要是Python库;模型可以通过重新训练进行更新;系统设计模块化,便于维护和扩展。

  5. 问题:系统的局限性是什么?
    回答:基于DAIC-WOZ数据集训练,可能存在人群偏差;需要良好的录音和录像环境;仅作为辅助工具,不能替代专业诊断;目前仅支持英语语音;主要适用于成年人。

附录C:常见问题解答

C.1 环境配置问题

问题1:安装依赖时出现错误

症状:运行 pip install -r requirements.txt 时出现安装错误。

解决方案

  1. 确保Python版本为3.8或更高版本
  2. 升级pip:python -m pip install --upgrade pip
  3. 逐个安装依赖包:
    pip install numpy pandas librosa parselmouth scikit-learn imbalanced-learn joblib pillow moviepy pydub
    
  4. 如果parselmouth安装失败,尝试从wheel文件安装:
    pip install https://github.com/YannickJadoul/Parselmouth/releases/download/0.4.3/parselmouth-0.4.3-cp38-cp38-win_amd64.whl
    

问题2:OpenFace无法运行

症状:运行特征提取时提示OpenFace未找到或运行出错。

解决方案

  1. 确认OpenFace路径配置正确:OPENFACE_PATH = r"正确的OpenFace路径\FeatureExtraction.exe"
  2. 下载正确版本的OpenFace:https://github.com/TadasBaltrusaitis/OpenFace/releases
  3. 确保Visual C++ Redistributable已安装:https://support.microsoft.com/zh-cn/help/2977003/the-latest-supported-visual-c-downloads
  4. 检查视频文件格式是否受支持(建议使用MP4格式)

问题3:音频特征提取失败

症状:提取音频特征时出现"音频加载失败"错误。

解决方案

  1. 确认音频文件格式正确(支持.wav, .mp3, .flac等)
  2. 检查文件路径是否包含中文或特殊字符
  3. 尝试转换音频格式:ffmpeg -i input.mp3 -acodec pcm_s16le -ar 16000 -ac 1 output.wav
  4. 检查librosa版本:pip show librosa,建议使用0.9.0或更高版本

C.2 数据处理问题

问题1:数据集路径错误

症状:运行数据预处理时提示"文件未找到"。

解决方案

  1. 确认config.py中的路径配置正确
  2. 检查数据集目录结构是否符合要求:
    DAIC-WOZ/
    └── 数据集/
        ├── 300_P/
        │   ├── 300_AUDIO.wav
        │   ├── 300_CLNF_AUs.txt
        │   └── ...
        ├── 301_P/
        └── ...
    
  3. 确认参与者文件夹命名格式为{pid}_P

问题2:特征提取速度慢

症状:提取特征时耗时过长。

解决方案

  1. 使用多线程并行处理:修改2.提取音视频特征.py,启用多线程
  2. 减少特征维度:降低MFCC数量或减少提取的AU数量
  3. 使用缓存机制:实现特征缓存,避免重复提取
  4. 关闭不必要的特征提取:注释掉不需要的特征提取代码

问题3:特征文件缺失

症状:训练模型时提示"特征文件未找到"。

解决方案

  1. 确认特征提取已成功运行
  2. 检查输出目录是否生成了特征文件:
    • multimodal_train_features_multithread.csv
    • feature_schema.json
  3. 重新运行特征提取脚本

C.3 模型训练问题

问题1:模型训练失败

症状:运行3.训练模型.py时出现错误。

解决方案

  1. 确认特征文件存在且格式正确
  2. 检查特征列是否完整
  3. 尝试减少特征数量或调整模型参数
  4. 查看详细错误信息,定位具体问题

问题2:模型性能不佳

症状:模型评估结果显示准确率或召回率较低。

解决方案

  1. 调整特征选择参数:修改SelectKBestk
  2. 优化SMOTE参数:调整k_neighbors参数
  3. 调整模型参数:修改逻辑回归的正则化参数
  4. 尝试其他分类算法:如SVM、随机森林等

问题3:模型文件过大

症状:保存的模型文件体积过大。

解决方案

  1. 使用更高效的序列化格式:如joblib替代pickle
  2. 减少特征数量:通过特征选择减少维度
  3. 使用模型压缩技术:如量化、剪枝等

C.4 本地测试问题

问题1:GUI界面无法启动

症状:运行gui_main.py时出现错误。

解决方案

  1. 确认所有依赖已安装
  2. 检查config_local.py中的路径配置
  3. 确认模型文件存在于指定目录
  4. 查看详细错误信息,定位具体问题

问题2:报告生成失败

症状:评估完成后无法生成报告图片。

解决方案

  1. 确认报告保存目录存在且可写
  2. 检查PIL库是否正确安装:pip install pillow
  3. 尝试使用不同的字体:修改generate_report_image函数中的字体设置
  4. 检查内存是否足够:报告生成需要一定的内存

问题3:预测结果不准确

症状:评估结果与预期不符。

解决方案

  1. 确认模型文件正确加载
  2. 检查特征提取是否正确
  3. 调整分类阈值:在设置中修改阈值参数
  4. 检查输入文件质量:确保音视频文件清晰、无噪声

附录D:参考文献

D.1 学术文献

1 $$ Baltrusaitis, T., Robinson, P., & Morency, L. P. $2018$. OpenFace 2.0: Facial behavior analysis toolkit. In 2018 13th IEEE International Conference on Automatic Face & Gesture Recognition (FG 2018) $pp. 59-66$. IEEE.

2

Gratch, J., Lucas, G., King, C., & Stratou, G. $2014$. The DAIC-WOZ corpus: A corpus for human-computer interaction research. In Proceedings of the 16th ACM international conference on Multimodal interaction $pp. 455-462$.

3

Liu, H., & Motoda, H. $2012$. Feature selection for knowledge discovery and data mining. Springer Science & Business Media.

4

Chawla, N. V., Bowyer, K. W., Hall, L. O., & Kegelmeyer, W. P. $2002$. SMOTE: Synthetic minority over-sampling technique. Journal of artificial intelligence research, 16, 321-357.

5

Pedregosa, F., Varoquaux, G., Gramfort, A., Michel, V., Thirion, B., Grisel, O., … & Duchesnay, E. $2011$. Scikit-learn: Machine learning in Python. Journal of machine learning research, 12(Oct), 2825-2830.

6

McFee, B., Raffel, C., Liang, D., Ellis, D. P., McVicar, M., Battenberg, E., & Nieto, O. $2015$. librosa: Audio and music signal analysis in Python. In Proceedings of the Python in Science Conference $pp. 18-25$.

7

Everitt, B. S., & Skrondal, A. $2010$. The Cambridge dictionary of statistics (4th ed.). Cambridge University Press.

8

Kuhn, M., & Johnson, K. $2013$. Applied predictive modeling. Springer.

9

Hastie, T., Tibshirani, R., & Friedman, J. H. $2009$. The elements of statistical learning: data mining, inference, and prediction. Springer Science & Business Media.

10

Ng, A. Y. $2014$. Machine learning. Coursera. ### D.2 技术文档

11

Python.https://docs.python.org/3/

12

NumPy.https://numpy.org/doc/stable/

13

Pandas.https://pandas.pydata.org/docs/

14

scikitlearn.https://scikitlearn.org/stable/documentation.html

15

OpenFace.https://github.com/TadasBaltrusaitis/OpenFace/wiki

16

Librosa.https://librosa.org/doc/latest/

17

Parselmouth.https://parselmouth.readthedocs.io/

18

Tkinter.https://docs.python.org/3/library/tkinter.html

19

MoviePy.https://zulko.github.io/moviepy/

20

PyInstaller官方文档. https://pyinstaller.org/en/stable/ ### D.3 在线资源

21

DAICWOZ.https://dcapswoz.ict.usc.edu/

22

OpenFace.https://github.com/TadasBaltrusaitis/OpenFace/releases

23

Python.https://pypi.org/

24

GitHub.https://github.com/yourusername/depressiondetection

25

Stack Overflow. https://stackoverflow.com/ ### D.4 相关工具

26

FFmpeg.https://ffmpeg.org/

27

Audacity.https://www.audacityteam.org/

28

VLCMediaPlayer.https://www.videolan.org/vlc/

29

Anaconda.https://www.anaconda.com/

30

PyCharm.https://www.jetbrains.com/pycharm/

未经允许,禁止转载
如有侵权,联系删除
上一篇
下一篇