网络程序设计课程项目总结—SA16225060—付何山

本文是对2016年网络程序设计课程项目的总结。
SA16225060 付何山 coding.net 课程项目地址

一、前言
 重新点开上学年网络程序设计课程的项目,感慨良多。现在在实习期间在公司也做一些深度学习框架的修改与支持工作,虽然频繁接触框架的源码,对所谓的黑盒深度学习底层实现了解比以前深了,但却仍然只是工程性的填补,对深度学习上层的架构的理解依然停留在入门。重新接触这个项目,依然感觉很是吃力,毕竟是许多人一学期的结晶,想要通过在工作间隙的了解依然十分困难,下面仅就这个项目写写自己的理解,如有错误请多海涵。
二、项目介绍
课程目标
该课程旨在完成一个基于机器学习神经网络的一个医学辅助诊断系统。首先通过对病人血常规化验单进行图像识别来采集血常规数据,再利用通过大量真实数据训练出来的预测模型对病人的性别和年龄进行预测,通过对各项血常规数据的分析来实现对病人性别和年龄的预测。
课程自己的项目地址

个人项目地址

配置安装方式

安装前置依赖

sudo apt-get install python2.7 python2.7-dev python3.2 python3.2-dev
sudo apt-get install build-essential libssl-dev libevent-dev libjpeg-dev libxml2-dev libxslt-dev

安装python模块

本例使用的是python 2.7

安装pip

sudo apt-get install python-pip

安装numpy

sudo apt-get install python-numpy

安装opencv

sudo apt-get install python-opencv

更新环境变量

vim /etc/bash.bashrc
在文件末尾添加两行代码
export PYTHONPATH=$PYTHONPATH:/usr/local/lib/python2.7/dist-packages
export PYTHONPATH="${PYTHONPATH+${PYTHONPATH}:}/usr/local/lib/python2.7/site-packages"

安装OCR和预处理的相关依赖

sudo apt-get install tesseract-ocr
sudo pip install pytesseract
sudo apt-get install python-tk
sudo pip install pillow

安装Flask框架、mongodb

sudo pip install Flask
sudo apt-get install mongodb
sudo service mongodb started
sudo pip install pymongo
WARNING:若import cv2报no module name cv2,需要从源码编译opencv安装。在我的项目中因为opencv版本问题,对opencv接口做了少量修改,可能造成无法移植的问题

安装tensorflow

pip install --upgrade
https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.12.0rc0-cp27-none-linux_x86_64.whl

运行demo

cd BloodTestReportOCR
python view.py
在浏览器打开http://localhost:8080,上传图像

部署到web服务器

参考文章

三、项目分析
项目演示

用户在首页选择上传自己的血常规检验报告图片
选择上传图片

点击提交后可以在页面上预览到校正裁剪后的报告单图片
生成校正裁剪的报告单

点击生成按钮,系统识别出图片中的数据,填充在按钮下方的表格中,用户可以修改部分有误差的数据
生成数据

点击预测按钮,系统给出性别和年龄的预测结果
预测结果

模块总述

本项目分三大模块:web可视化模块、图像处理和OCR模块、学习预测模块。

web可视化模块

采用Flask搭建web应用;前端采用Bootstrap,jQuery, Vue.js 来实现

文件名:view.py
Web 端上传图片到服务器,存入mongodb并获取oid; 前端采用了vue.js, mvvm模式

图像处理和OCR模块

根据图像的特点做几何特征提取、识别和预处理等,比如滤波,傅里叶变换,边缘检测等

文件名:imageFilter.py
对获取到的上传的血常规化验单图片进行预处理,主要是为了减小噪声,以便识别,主要封装了两个方法:对图像透视裁剪和OCR,以便于模块间的交互,规定适当的接口

文件名:classifier.py
用于判定裁剪矫正后的报告和裁剪出检测项目的编号

文件名:imgproc.py
将识别的图像进行处理二值化等操作,提高识别率 包括对中文和数字的处理

文件名:digits
将该文件替换Tesseract-OCR\tessdata\configs中的digits

学习预测模块

对样本数据进行机器学习的神经网络训练,并预测性别和年龄

文件名:tf_predict.py
对页面上传过来的数据使用训练好的模型进行预测性别和年龄

文件名:sex_predict.py、age_predict.py
进行样本的训练,训练出性别和年龄的预测模型

文件名:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值