李小康正在做志愿者
从1小时到2分钟 一串代码搞定
随着疫情形势变化,今年3月初以来,上海市启动常态化核酸筛查工作。复旦大学要求辅导员们核实、查验班级每一位学生的核酸检测阴性证明,确保当天“不漏一人”。
“这个工作听起来好像很简单,但实际做的时候,一个班级的截图可能就需要花半小时核查,如果是人数多的院系可能需要更久,还可能会看错看漏。”李小康是复旦大学信息科学与工程学院博士生,也担任着学院2019级信息1班辅导员。
学校进入准封闭管理之后,忙于抗疫的他,对这项繁琐的日常工作产生了思考。
“这件事情重复性很强,正符合计算机程序的特点,” 李小康希望用自己的专业知识改变现状,决定写一个代码程序用于自动核查核酸完成截图。
程序一写好,李小康进行了验证,准确率很高。原来班级里80张图需要一个人审核40分钟,现在机器不到20秒就能完成。而学院里800张截图需要几个人分工审核,几小时才能完成,现在只需等2分钟就拿到结果。
李小康最初写程序时和学工同事的聊天
原理并不复杂 一个多小时就跑通代码
说起程序原理,李小康表示,其实并不复杂。
博士生李小康的专业为生物医学工程,研究方向是医学影像与人工智能,他平时接触很多图像处理方法。
得益于长期的科研习惯和代码敏感性,面对自动核查核酸截图这件事情,李小康想到了OCR技术,即Optical Character Recognition,光学字符识别技术。
“这项技术可以把图像中的文字识别出来,转换为文本信息。而且因为核酸截图是打印字体,识别率非常高,几乎可以做到100%准确。”李小康说。
一张截图中的文本信息很多,包括脱敏处理的姓名、证件类型、证件号码、采样时间、组织机构等内容,但不是所有信息都有用。其中,姓名、采样时间、是否已采样最为关键,是需要检索筛选出的内容。为此,他想到了Python语言中的正则表达式——可以搜索到字符串中的特定模式内容。
“使用正则表达式就可以把想要的信息从OCR识别的文本中筛选出来。最后,确认好每张截图里的信息后,再把所有人的结果输出到Excel文件中,方便人工确认。”
说干就干。3月15日晚,他通过OCR文字识别和正则表达式筛选方法,花了一个多小时就写出了初始代码,共130行——验证后,发现能够跑通,且运行效率很高。
程序实际运行过程
网友点赞:学以致用 知识让生活更便利
李小康说,自己开发这个程序的初衷是为了减少自己和身边老师的工作量。
“虽然原理也很简单,只要是会写代码的人第一时间就会明白是怎么回事,但是不做相关工作的感受不到这件事情的费时费力,自然也不会想出办法。我只是用我学到的知识解决实际工作中的困难。”他说。
李小康把这件事发到朋友圈之后,不少学工的同事表示很感兴趣,他也把代码分享了出去,让有需求的老师们都能及时使用。
“因为程序使用python语言编写,代码注释也写得很完整,只要会使用python,就可以很快上手。”
网友评论
为了方便不会编程的老师使用,李小康最后还把程序进行了封装。“大家需要用的时候,只要在命令行输入一行代码就可以运行,非常简单。”
据悉,复旦大学信息办已与李小康对接。“他的思路和做法给我们很大启发。”相关负责人介绍,目前正在收集二级单位管理需求,研究制定相关方案,开发全新小程序纳入学校“一网通办”平台。
消息一出,网友纷纷点赞。有网友说:“知识改变自己的命运,知识也可以让大家生活便利!”也有网友说:“挺牛的,希望多开发提升效率的小工具,最重要的是,要推广!