利用迁移学习实现只需要极少的数据样本,即可让用户根据自己的需求训练出各异的表情识别模型
目前本项目已部署到服务器,可以通过访问 http://prp1.work:8090/ 进行使用
- 操作系统:Ubuntu 16.04
- python版本: python3.5
- Mongodb版本: Mongo 3.2.22
- python第三方库引用见 requirement.txt
├── static # Web需要的资源目录
│ └── TmpModels # web服务过程中的临时文件夹
│ └── TmpResult # web服务过程中的临时文件夹
│ └── TmpUploadDir # web服务过程中的临时文件夹
│ └── css
│ └── fonts
│ └── img
│ └── js
│ └── scss
│ └── vendors
├── templates # Web前端页面设计
│ └── sierra # boostrap模板
│ ├── login.html
│ ├── navigateTest.html
│ ├── navigateTrain.html
│ ├── progress.html
│ ├── register.html
│ ├── setTrainLabel.html
│ ├── testResult.html
│ ├── testSuccess.html
│ ├── upload.html
│ ├── uploadSuccess.html
├── transfer_learning_source # 迁移学习代码
│ ├── convert_csv_to_48_48.py
│ ├── convert_current.py
│ ├── convert_fer2013.py
│ ├── emotion_classifier.py
│ ├── emotion_classifier_trans.py
│ ├── emotion_train_self.py
│ ├── image_preprocessing.py
│ ├── transfer_VGG.py
│ ├── transfer_continue.py
│ ├── transfer_learning.py
│ ├── transfer_sleep.py
├── test_cases # 自动测试脚本代码及测试输入
│ ├── mongodb_test.py
│ ├── recognize_test.py
│ ├── test1.jpg
│ ├── test2.jpg
│ ├── test3.jpg
│ ├── test4.jpg
├── GFS.py # 使用GridFs格式存储照片到mongo所封装的类
├── app.py # Flask的运行文件,Web服务的核心
├── check_and_train_models.py # 轮询检查数据集是否已满足迁移学习要求
├── requirement.txt # python第三方库引用列表
- 下载项目源码
git clone https://github.com/Yangzhengtang/Emognition
- 安装python虚拟环境virtualenv
pip3 install virtualenv
- 创建虚拟环境
virtualenv --no-site-packages venv
- 进入虚拟环境
source venv/bin/activate
- 安装python第三方库依赖
pip install -r requirement.txt
- 后台启动Mongodb
nohup mongod --dbpath=/var/lib/mongodb &
- 后台运行Web服务程序
nohup python3 app.py &
- 后台运行轮询检查程序,判断预约模型是否达到可以迁移学习的阈值
nohup python3 check_and_train_models.py &
-
访问 http://prp1.work:8090/ 并注册登录,登录后可以上传照片
-
上传照片后可以选择train或是test,train是定制特定分类的表情识别模型,test是利用已有的模型进行表情识别的测试
-
打完标签后等待后台使用迁移学习对该模型进行快速的训练,只有当数据库中该模型所有标签的照片都达到迁移学习所需要的阈值(目前为1000张)时,后台的迁移学习训练才会开始,页面右下角显示当前各个标签的已有数量与阈值的比值
杨正瑭 胡煜宗 江智昊 尹广浩 施纬
[email protected]