网络程序设计

来源:互联网 发布:mac地址获取工具 编辑:程序博客网 时间:2024/05/18 02:44

网络程序设计


sa16225313 王潇彬

  • 项目简介
  • 项目部署
  • 个人工作
  • 项目演示
  • 个人心得

项目简介

基于深度学习神经网络等机器学习技术实现一个医学辅助诊断的专家系统原型

具体细节是搭建一个血常规检测报告单的年龄和性别预测系统,用户上传一张血常规化验报告单,后台通过OCR识别以及机器学习算法进行该报告的年龄性别预测

项目地址


项目部署

部署

# 安装numpy,sudo apt-get install python-numpy # http://www.numpy.org/# 安装opencvsudo apt-get install python-opencv # http://opencv.org/##安装OCR和预处理相关依赖sudo apt-get install tesseract-ocrsudo pip install pytesseractsudo apt-get install python-tksudo pip install pillow# 安装Flask框架、mongosudo pip install Flasksudo apt-get install mongodb # 如果找不到可以先sudo apt-get updatesudo service mongodb startedsudo pip install pymongo# 安装scikit-learnpip install -U scikit-learn

运行

cd  BloodTestReportOCRpython view.py # upload图像,在浏览器打开http://yourip:8080

个人工作

项目分为三个模块 web ocr 机器学习
我对web以及机器学习模块不是很了解 只在ocr模块中对图片进行了一些处理

本项目初始的图片有7个 其中不乏包含桌面边缘阴影的图片

比如图片7
桌面阴影示例

对该图片进行轮廓描绘后可以看到 下边缘有很长的轮廓 以至于屏蔽原本要找的三条标志线
轮廓描绘

这里介绍一种方法可以将桌面部分屏蔽

# hsvhsv = cv2.cvtColor(self.img, cv2.COLOR_BGR2HSV)# masklower = np.array([70,0,0])upper = np.array([130,255,255])mask = cv2.inRange(hsv, lower, upper)# erodemorphKernel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (50, 50))mask = cv2.erode(mask, morphKernel)mask = cv2.erode(mask, morphKernel)# bitwise_andedges = cv2.bitwise_and(edges, mask)
首先将图片转换到另一个色彩空间 hsv
这个色彩空间是由色相、饱和度、明度组成
这里用到h维 也就是色相
经过观察或者取色可以发现,桌面和纸面的色相度是有很大差别的,桌面的色相偏黄 而纸面的色相偏蓝

hsv

然后给定lower upper阈值,从而可以截取出需要的mask图片 为了使黑色部分覆盖边缘,进行两次形态学腐蚀
mask

然后对mask与第一次的轮廓图片进行与操作
轮廓 &

这样就可以继续对轮廓图片进行处理 而不会受到纸面边缘影响

另外
在代码中 有参数 default = [3, 70, 30, 0.55, 0.0001]
其中default[3] 决定检测到的线是否符合规则
取0.55屏蔽img6 不屏蔽img7 取0.6以上会屏蔽img7

项目演示

这里对图片7进行测试
这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述


个人心得

时间过的很快

在这个课程之前,自己并没有接触过机器学习相关,几周来通过同学们的分享收获很多,但是也仅限于一些简单的算法,里面包含的比较高深的分析方法与数学方法还是难以掌握。虽然如此,能够有机会了解一下大家都在关注的东西还是很好的一件事

新阿法狗刚刚血洗棋坛,人工智能的未来谁也不能预期。对于这种高到我不能触碰的东西,看看新闻其实也就够了。但是通过这个项目,虽然是很小的项目,我们还是能试着朝那个方向迈出一小小小步
聊胜于无,与君共勉

1 0
原创粉丝点击