Git Product home page Git Product logo

imageprocessfinalproject's Introduction

ImageProcessFinalProject

TJU 图像处理课程大作业

基于深度神经卷积网络的人脸表情识别

基于PyTorch框架,使用 VGG19 和 ResNet18 两种网络结构实现,使用了 FER2013 和 CK+两个数据集

模型效果

在 FER2013 数据集上的准确率:

  • VGG19:71.33%
  • ResNet:72.75%

在 CK+ 数据集上的准确率:

  • VGG19:81.82%
  • ResNet:87.88%

文件结构

│  loadData.py  // 加载数据集
│  model.py		// 自定义模型
│  README.md
│  run.py		// 运行训练、验证、测试
│  utils.py
│  visualize.py	// 可视化展示
│          
├─analyzer
│      plotAcc.py	// 绘制准确率曲线
│      
├─data
│  ├─CK+
│  │  │  CK+_data.h5
│  │          
│  └─FER2013
│          data.h5
│          fer2013.bib
│          fer2013.csv
│          README
│          
├─images	// 测试图片
│  │  1.jpg
│  │  
│  └─emojis
│      
├─models 	// 保存训练好的模型
│      
├─preprocess	// 预处理程序
│      preprocessCK+.py
│      preprocessFER.py

环境配置

  • Python 3.10
  • PyTorch 1.13.1
  • CUDA 11.7
  • h5py
  • sklearn
  • matplotlib

run.py 参数说明

  • --model:指定使用模型名称,"vgg"为VGG19,"resnet"为ResNet18
  • --dataset:指定使用数据集,"FER2013" 为FER2013数据集,"CK+"为CK+数据集
  • --do_train:是否训练
  • --do_eval:是否在验证集上验证
  • --do_test:是否在测试集上测试
  • --train_batch_szie:训练时的batch_size
  • --eval_batch_size:验证测试时的batch_size
  • --epochs:训练轮数
  • --learning_rate:学习率
  • --resume:是否对已有模型从上一批次继续训练
  • --show_confusion:是否展示混淆矩阵

FER2013数据集运行

  • 需要先获取FER2013原数据集,将其放于data/FER2013/,命名为fer2013.csv

数据预处理

cd preprocess
python preprocessFER.py

模型训练

  • VGG训练:

    python run.py --model=vgg --dataset=FER2013 --do_train
  • ResNet训练:

    python run.py --model=resnet --dataset=FER2013 --do_train

模型测试

  • VGG测试:

    python run.py --model=vgg --dataset=FER2013 --do_test
  • ResNet测试:

    python run.py --model=resnet --dataset=FER2013 --do_test

绘制准确率曲线

需要在代码中修改相应的路径(训练过程的log日志,存于log文件夹下)

cd analyzer
python plotAcc.py

绘制混淆矩阵

  • VGG:

    python run.py --model=vgg --dataset=FER2013 --do_test --show_confusion
  • ResNet测试:

    python run.py --model=resnet --dataset=FER2013 --do_test --show_confusion

CK+ 数据集运行

数据预处理

cd preprocess
python preprocessCK+.py

模型训练

  • VGG训练:

    python run.py --model=vgg --dataset=CK+ --do_train
  • ResNet训练:

    python run.py --model=resnet --dataset=CK+ --do_train

模型测试

  • VGG测试:

    python run.py --model=vgg --dataset=CK+ --do_test
  • ResNet测试:

    python run.py --model=resnet --dataset=CK+ --do_test

绘制准确率曲线

需要在代码中修改相应的路径(训练过程的log日志,存于log文件夹下)

cd analyzer
python plotAcc.py

绘制混淆矩阵

  • VGG:

    python run.py --model=vgg --dataset=CK+ --do_test --show_confusion
  • ResNet测试:

    python run.py --model=resnet --dataset=CK+ --do_test --show_confusion

模型分类结果可视化分析

需要在visualize.py中修改待分析的图片路径,如果需要测试新的图片,需要将图片放于images/路径下

python visualize.py

imageprocessfinalproject's People

Contributors

vmnk-run avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.