Skip to content

😇 核酸检测信息自动提取工具(TI4ALL)|旨在自动化信息提取,为一线工作人员减负

Notifications You must be signed in to change notification settings

pengxiao-song/TI4ALL

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TI4ALL

核酸检测信息自动提取工具(Test Information For ALL

“九秋风露越窑开,夺得千峰翠色来”,立秋将至,祝我们在金秋九月收获美好!

简介

本项目旨在利用自动化手段提高核酸结果筛查效率,尽可能减轻工作人员负担。初期工作完成于南京航空航天大学计算机科学与技术学院/人工智能学院,已初步推广使用。

本项目仅对大批量苏康码进行了测试,但程序易于移植,欢迎推广使用并贡献代码!

目录

快速开始

客户端教程

  • 当需求仅为 获得大量核酸报告识别结果 (大多数场景)

    • ”辅助信息文件“一栏:选择 data/placeholder.xlsx

    • 运行结束后:点击 “保存检测结果”

  • 当需求为 获得大量核酸报告识别结果关联个人辅助信息

    • “辅助信息文件” 一栏:填充并选择 data/template.xlsx

    • 注意:data/template.xlsx 必须存在 “姓名” 和 “身份证号” 两列,其余列根据需求自行增加/删除

  • “核酸检测图片文件夹” 示例:

  • 关于”开启多核“:一般情况下无需开启,大量测试数据(超万张)效果可能会有提升

  • 初次运行程序:需稍等片刻

源码运行

  1. clone / 下载压缩包 后,并进入项目根目录

  2. 新建环境

conda create -n ti4all python=3.8
conda activate ti4all
  1. 安装依赖
pip install -r requirements.txt
  1. 运行主程序
python main.py

效果展示

主程序界面:

保存结果:(为确保程序稳健性保留了部分异常数据用于测试)

更新日志

  • 2022.07.23 TI4ALL release/v3.1 @Pengxiao Song

    • 功能优化:增加 “任务中止” 功能

    • 优化项目结构,简单的代码重构

  • 2022.07.02 TI4ALL beta/v3.0 @Xuanqing-Shi

    • 界面优化:优化工作日志区;增加结果显示区
  • 2022.05.20 TI4ALL beta/v2.1 @LSTM-Kirigaya

    • 关键优化:支持多核并行,开启 mlkdnn 加速接口,优化模型载入策略

    • 其它优化:增加进度条,优化退出模式

  • 2022.04.21 TI4ALL release/v2.0 @Pengxiao Song

    • 客户端程序构建成功

    • 关键功能:支持识别结果关联辅助信息

  • 2022.04.18 TI4ALL release/v1.0 @Pengxiao Song

    • 脚本程序测试成功

    • 核心功能:提取核酸报告中的结构化信息

项目结构

TI4ALL
├── main.py				// 程序入口
├── config.yaml
├── src					// 源码
│  ├── __init__.py
│  ├── gui
│  │  ├── __init__.py
│  │  ├── *Widget.py
│  │  ├── *Widget.ui
│  ├── utils.py
│  └── app.py
├── data				// 存放示例文件格式
├── log	
├── docs
├── requirements.txt
├── README.md

打包流程

前提:已经参照“源码运行”部分严格安装依赖

  1. 进入项目根目录

  2. 执行命令:

pyinstaller gui.spec [--noconsole]
  1. 执行完毕会生成两个文件夹,其中之一是 dist

    • 找到项目环境下的 paddleocr/ppocr 文件夹,复制到 dist/main 目录下

    • 找到项目环境下的 paddle/libs 和 paddle/fluid 文件夹,对应复制到 dist/main/paddle 目录下

  2. 启动 dist/main/ti4all.exe

开发心得

程序的 pipeline 不复杂:OCR配合正则表达式做信息提取; PyQt5 做可视化,Pyinstaller 打包程序。

主要花费的时间在:

  • 前期的OCR工具调研,试了多家还是PaddleOCR最好用

  • Pyinstaller 打包经历了很多波折,包括各种依赖项版本不匹配、PaddleOCR 库引发的一些错误

最终独自完成了第一版程序的发布,切实解决了实际问题,还是很开心的。于是后面拉了两位同学做进一步优化,合作很愉快!

优化方向

  • 优化用户交互逻辑

  • 缩小程序体积(UPX报错QAQ)

  • 完善主界面菜单栏相关功能

感谢

为优秀的 PaddleOCR 打call!尝试了多个开源OCR工具,在本场景下PaddleOCR的速度、准确度、稳健性都是最好的。

感谢提供测试数据的同学!感谢一起优化程序的两位队友(贡献者):Huang-zhelong, Shi-xuanqing

About

😇 核酸检测信息自动提取工具(TI4ALL)|旨在自动化信息提取,为一线工作人员减负

Resources

Stars

Watchers

Forks

Languages