复旦博士用130行代码搞定核酸统计:2分钟拿结果!
扫描二维码
随时随地手机看文章
自今年3月以来,上海遭遇了新一轮新冠肺炎疫情袭击。持续大量的新增病例,给上海这座拥有2500万常住人口的超大城市带来了前所未有的挑战——人工核查核酸报告,费时费力又易出错,怎么办?
对此,复旦大学一位在读博士生,利用自己的专业知识开发了一项小程序,800幅核酸截图原来要几个人核对一个多小时,现在只需等待2分钟就能拿到结果,大大提高了核查效率和精度。
由此,他也获得了众多网友的一致好评。就连人民日报都发表了这一消息,对该博士生给予点赞表彰。
(人民日报官方微博截图)
据悉,该博士生名叫“李小康”,就读于复旦大学信息科学与工程学院生物医学工程专业,担任学院2019级信息1班辅导员。由于他的研究方向是医学影像与人工智能,因此李小康平常会接触很多图像处理方法。
得益于长期的科研习惯和代码敏感性,自从学校进入准封闭管理之后,忙于抗疫的他,便对人工核查核酸报告这件繁琐的日常工作产生了思考:如何自动核查核酸截图?
作为生物医学工程专业博士生,李小康第一时间想到了以前学过的OCR(Optical Character Recognition,光学字符识别)技术。他认为,开发这项小程序并不复杂:“OCR可以把图像中的文字识别出来,转换为文本信息,就方便用来核查了。而且因为核酸截图是打印字体,识别率非常高,几乎可以做到100%准确。”
(李小康正在做志愿者)
要知道,一张截图中的文本信息很多,包括脱敏处理的姓名、证件类型、证件号码、采样时间、组织机构等内容,但不是所有信息都有用。其中,姓名、采样时间、是否已采样最为关键,是需要检索筛选出的内容。
为此,他想到了Python语言中的正则表达式——可以搜索到字符串中的特定模式内容。“使用正则表达式就可以把想要的信息从OCR识别的文本中筛选出来。最后,确认好每张截图里的姓名、检测时间和是否已采样等信息后,再把所有人的结果输出到Excel文件中,方便人工确认。”
(程序实际运行过程)
最后,李小康确定了“OCR文字识别+正则表达式筛选”的程序思路。
3月15日晚间,他花了一个多小时就写出了初始代码,共130行。程序一写好,李小康就在自己班级的核酸截图数据上进行验证,准确率果然很高,甚至检测出了之前人工核查没有发现的问题,并且程序运行时间很短。
目前,这项小程序已在该学院服务两周了。
(程序输出的Excel文件)
后来,他把这件事发到了朋友圈,不少师生表示很感兴趣,他还把代码分享了出去。为了方便不会编程的老师使用,李小康最后还把程序进行了封装——用的时候,只要在命令行输入一行代码就可以运行。
据了解,学校信息办也与李小康取得了对接。预计在不久的将来,师生们就可不用再手动收集核酸截图,而是通过小程序直接上传图片,可在后台随时查看统计结果。
(网友评论截图)
面对外界的点赞,李小康表示:“我只是用我学到的知识解决实际工作中的困难。”