向AI转型的程序员都关注了这个号👇👇👇
一、项目背景与意义
面对飞速发展互联网医疗时代,医疗信息化建设已经成为医疗行业发展的趋势。经调研,约80%的医学病历是处于非结构化状态的,难以直接被利用而造成了大量医学资源浪费。医疗数据中大量的半结构化与无结构化的文本,医学术语的专业性以及语言表达的多样性为结构化信息抽取带来了很大难度。因此,针对电子病历和报告的信息识别抽取和结构化管理对临床诊断、疾病预防与医学研究具有重要意义。
体检报告识别可以帮助医务服务人员自动识别录入用户征信信息,节约人力成本、提升服务效率,实现降本增效,具有重要实际意义。基于PaddleOCR已在文字识别领域取得优秀成果,本项目基于PaddleOCR实现体检报告检测与识别,对数据进行结构化处理,结合CV+NLP技术达到一定识别精度,未来推广应用场景可以基于识别信息做个性化疾病预测与健康推荐。
二、项目流程
PaddleOCR是百度开源的超轻量级OCR模型库,本文使用其框架进行体检报告识别,本次项目具体流程包括:
- PaddleOCR环境安装与快速预测
- 体检报告检测模型训练det
- 体检报告识别模型训练rec
- PP-Structure体检报告版面分析与识别
三、技术介绍
针对PaddleOCR文字识别提供的算法模型,本次选择基础模型用于体检报告识别与检测,流程如下:
1.检测:DB算法
2.识别:CRNN+CTC
四、数据集介绍
数据位置: data/data159696/report_ex.tar
解压命令 !tar -xf /home/aistudio/data/data159696/report_ex.tar
数据集结构:
-
*注:本数据坐标是以左下角为原点,利用Paddleocr做检测时需要转换成左上角原点,且本数据坐标需要横纵坐标都乘4.
图片样式:
五、模型训练
1.1 安装项目环境
安装PaddleOCR相关环境
%cd ~
!git clone -b release/2.1 https://github.com/PaddlePaddle/PaddleOCR.git
# 安装依赖库
%cd ~/PaddleOCR
!pip install -r requirements.txt -i https://mirror.baidu.com/pypi/simple
1.2. 下载预测模型并测试
下载PaddleOCR中文轻量级OCR模型用于测试部分图像识别结果,模型存放在在PaddleOCR/inference目录下。
In [ ]
! mkdir inference
# 下载超轻量级中文OCR模型的检测模型并解压
! cd inference && wget https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_det_infer.tar && tar xf ch_ppocr_mobile_v2.0_det_infer.tar && rm ch_ppocr_mobile_v2.0_det_infer.tar
# 下载超轻量级中文OCR模型的识别模型并解压
! cd inference && wget https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_rec_infer.tar && tar xf ch_ppocr_mobile_v2.0_rec_infer.tar && rm ch_ppocr_mobile_v2.0_rec_infer.tar
# 下载超轻量级中文OCR模型的文本方向分类器模型并解压
! cd inference && wget https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_cls_infer.tar && tar xf ch_ppocr_mobile_v2.0_cls_infer.tar && rm ch_ppocr_mobile_v2.0_cls_infer.tar
1.3测试单张报告数据集并可视化
import matplotlib.pyplot as plt
from PIL import Image
%pylab inline
def show\_img(img\_path,figsize=(10,10)):
## 显示原图,读取名称为11.jpg的测试图像
img = Image.open(img_path)
plt.figure("test\_img", figsize=figsize)
plt.imshow(img)
plt.show()
show_img("../20220623110401-0.png")
Populating the interactive namespace from numpy and matplotlib
1.4测试单张图像
调用tools/infer/predict_system.py 完成报告识别,共需要传入三个参数:
-
image_dir:指定要测试的图像
-
det_model_dir:指定轻量检测模型的inference model
-
rec_model_dir:指定轻量识别模型的inference model
-
cls_model_dir:指定轻量方向分类器模型的inference model
输出结果中有两列数据,第一列表示PaddleOCR识别出的文字,第二列表示识别出当前文字的置信度。置信度的数据范围是[0-1],置信度越接近1表示文本识别对的“信心”越大。同时,识别结果会可视化在图像中并保存在./inference_results文件夹下,可以通过左边的目录结构选择要打开的文件, 也可以通过如下代码将可视化后的图像显示出来,观察OCR文本识别的效果。
原文地址
https://aistudio.baidu.com/aistudio/projectdetail/4359114?channelType=0&channel=0
机器学习算法AI大数据技术
搜索公众号添加: datanlp
长按图片,识别二维码
阅读过本文的人还看了以下文章:
基于40万表格数据集TableBank,用MaskRCNN做表格检测
《深度学习入门:基于Python的理论与实现》高清中文PDF+源码
2019最新《PyTorch自然语言处理》英、中文版PDF+源码
《21个项目玩转深度学习:基于TensorFlow的实践详解》完整版PDF+附书代码
PyTorch深度学习快速实战入门《pytorch-handbook》
【下载】豆瓣评分8.1,《机器学习实战:基于Scikit-Learn和TensorFlow》
李沐大神开源《动手学深度学习》,加州伯克利深度学习(2019春)教材
【Keras】完整实现‘交通标志’分类、‘票据’分类两个项目,让你掌握深度学习图像分类
如何利用全新的决策树集成级联结构gcForest做特征工程并打分?
Machine Learning Yearning 中文翻译稿
斯坦福CS230官方指南:CNN、RNN及使用技巧速查(打印收藏)
中科院Kaggle全球文本匹配竞赛华人第1名团队-深度学习与特征工程
不断更新资源
深度学习、机器学习、数据分析、python
搜索公众号添加: datayx