Nincs leírás

yanzheng 052792938b first commmit 1 éve
backend 052792938b first commmit 1 éve
docs 052792938b first commmit 1 éve
.gitignore 052792938b first commmit 1 éve
.pre-commit-config.yaml 052792938b first commmit 1 éve
.pylintrc 052792938b first commmit 1 éve
CONTRIBUTING.md 052792938b first commmit 1 éve
Pipfile 052792938b first commmit 1 éve
Pipfile.lock 052792938b first commmit 1 éve
README.md 052792938b first commmit 1 éve

README.md

Albatross

pre-commit

A BCI-driven system for neuro-rehabilitation

Function module

  • MI-BCI online
  • Patient and Train database
  • Online visual feedback
  • Video-based posture detection
  • EEG analysis offline and report
  • Physical feedback

如图:

Technology stack

  • FastAPI
  • Uvicorn as server
  • Sqlite
  • JS HTML CSS as frontend
  • flaskwebgui for desktop app
  • pyinstaller

如图:

前后端实现细节请查看 frontend.mdbackend.md

Use case

如图:

File structure

├─.git
├─.vscode
├─backend
│  ├─apis                                //底层路由
│  │  ├─general_pages
│  │  └─version1
│  ├─core                                //算法代码
│  ├─db                                  //数据库相关
│  │  ├─data                             //视频及脑电数据存放路径
│  │  ├─models
│  │  └─repository
│  ├─logs
│  ├─schemas
│  ├─service                             //api调用到的复杂功能
│  ├─settings                            //配置文件
│  ├─static
│  │  ├─config                           //配置文件资源包括前后端所需
│  │  ├─css
│  │  ├─images
│  │  ├─js
│  │  └─video
│  ├─templates                           //页面
│  │  ├─components
│  │  ├─eeg
│  │  ├─general_pages
│  │  ├─shared
│  │  ├─subjects
│  │  └─trains
│  ├─tests                               //测试api代码
│  │  └─test_routes
│  ├─tools                               //软件配套工具代码(离线验证工具)
│  └─webapps                             //页面路由
│      ├─eeg
│      ├─subjects
│      └─trains
└─docs

Start the project

运行项目前,请先到微盘下载训练视频文件,并放到backend/static/video

# pip install pipenv
# create a python 3.8.5 virtual environment
# acvivate virtual env
cd <project dir>
pipenv install --ignore-pipfile
# run web app
uvicorn main:app --reload
# visit 127.0.0.1:8000/
# run desktop app
python gui.py

除主体软件, 本项目还包含两个开发辅助工具的代码:

  • faker server 工具: 没有脑电硬件设备时,可使用此工具模拟信号调试
  • 离线验证工具: 用于验证在线算法的准确性

faker server的使用:

通过以下命令

cd backend
python -m core.sig_chain.device.fake_sig.sig_fake_server

启动 faker server (或运行提前打包好的软件使用), 然后在配置文件中修改设备为 faker,最后启动albatross。

离线验证工具的使用

参考tools下的README.md

打包

使用 pyinstaller 打包

主体软件

python build_pyd.py build_ext --inplace
pyinstaller -y albatross.spec

打包完在 backend/dist 下会发现 albatross 文件夹,即为打包好的应用。

faker server 工具

[](#faker_server)

执行 backend/core/sig_chain/device/fake_sig 下的脚本

faker-server-setup.ps1

生成的exe文件在同级目录下的 dist 文件夹中

离线验证工具

参考backend下的process_offline.md