网络程序设计
来源:互联网 发布: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维 也就是色相
经过观察或者取色可以发现,桌面和纸面的色相度是有很大差别的,桌面的色相偏黄 而纸面的色相偏蓝
然后给定lower upper阈值,从而可以截取出需要的mask图片 为了使黑色部分覆盖边缘,进行两次形态学腐蚀
然后对mask与第一次的轮廓图片进行与操作
这样就可以继续对轮廓图片进行处理 而不会受到纸面边缘影响
- 另外
- 在代码中 有参数 default = [3, 70, 30, 0.55, 0.0001]
其中default[3] 决定检测到的线是否符合规则
取0.55屏蔽img6 不屏蔽img7 取0.6以上会屏蔽img7
项目演示
这里对图片7进行测试
个人心得
时间过的很快
在这个课程之前,自己并没有接触过机器学习相关,几周来通过同学们的分享收获很多,但是也仅限于一些简单的算法,里面包含的比较高深的分析方法与数学方法还是难以掌握。虽然如此,能够有机会了解一下大家都在关注的东西还是很好的一件事
新阿法狗刚刚血洗棋坛,人工智能的未来谁也不能预期。对于这种高到我不能触碰的东西,看看新闻其实也就够了。但是通过这个项目,虽然是很小的项目,我们还是能试着朝那个方向迈出一小小小步
聊胜于无,与君共勉
1 0
- 网络程序设计
- 网络程序设计
- 网络程序设计
- 网络程序设计 Sockets
- 网络程序设计概述
- 网络程序设计 Sockets
- 网络程序设计 Sockets
- 网络程序设计 Sockets
- 网络程序设计 Sockets
- 网络程序设计 Sockets
- 网络程序设计 Sockets
- 网络程序设计 Sockets
- 网络程序设计 Sockets
- 网络程序设计 Sockets
- 网络程序设计 Sockets
- UDP网络程序设计
- SOCKET网络程序设计
- TCP网络程序设计
- 关于Java中枚举Enum的深入剖析
- 用sql server2005(或Excel+sql server2005)+sqlserver2sqlite_converter工具,自己写db文件方法
- 230 atom-beautify 安装 php-cs-fixer 和 phpcbf
- 31. Next Permutation
- 拓扑排序(算法模板)
- 网络程序设计
- opnet之加强mm1模型之删除事件
- Linux命令记录
- 基于Android的mvc、mvp以及mvvm架构分析(上)
- 【caffe源码研究】第三章:源码篇(13) :损失层
- android studio 多渠道打包以及工程的定制化(上)
- 33. Search in Rotated Sorted Array 旋转排序数组极值的二分求法
- 【寒江雪】开启深度缓存
- 制作Plesk镜像