收藏本站

复旦博士生写了130行代码,2分钟搞定核酸结果统计

python python 3100 人阅读 | 0 人回复

发表于 2022-4-10 23:32:02 | 显示全部楼层 |阅读模式

复旦博士生写了130行代码,2分钟搞定核酸结果统计
       非常时期,核酸报告核查经常要使用到。对个体来说,也许时间不长,但如果要面对数人的信息核对怎么办?为了消灭繁琐,一位复旦博士生写了130行代码后搞定,以信息化助力疫情防控,大大提高核查效率和精度。800幅截图核查从1小时到2分钟,一串代码全搞定。
       自三月初以来,复旦大学启动常态化核酸筛查工作,要求班级辅导员必须核查学生“健康云”核酸完成截图,如果核查发现有人还没参加核酸,就要及时催促其尽快检测,确保当天“不漏一人”。然而,人工核查费时费力又易出错。
       信息科学与工程学院生物医学工程专业博士生李小康,担任学院2019级信息1班辅导员。学校进入准封闭管理之后,忙于抗疫的他,对这项繁琐的日常工作产生了思考和行动。“这个工作听起来好像很简单,但实际做的时候,一个班级的截图可能就需要花上半小时核查,如果是人数多的院系可能需要更久,还可能会看错看漏。”
      他想,这件事情单调枯燥又费时,重复性很强,正符合计算机程序的特点。写一个代码程序用于自动核查核酸完成截图的想法,在李小康脑海中产生。
程序一写好,李小康就在自己班级的核酸截图数据上进行验证,准确率果然很高,甚至检测出了之前人工核查没有发现的问题。并且,程序运行时间很短,80多张图只需要20多秒,大大节约时间和人力。
       后来,李小康了解到,信息科学与工程学院研工组组长高丽梅每次需要核查学院所有研究生的核酸截图,要花很长时间,特别辛苦。为了减轻高老师的工作负担,李小康也让她使用自己的程序进行核查。800幅截图,原来要几个人枯燥核对一个多小时,现在只需等2分钟就拿到结果。该程序目前已在该学院服务2周。
程序输出的Excel文件
22.jpeg

        揭秘背后原理,一个多小时就跑通代码说起程序原理,李小康认为并不复杂。作为生物医学工程专业博士生,李小康研究方向是医学影像与人工智能,他平常会接触很多图像处理方法。即使是在现在抗疫工作繁忙的情况下,导师汪源源老师和郭翌老师还是坚持每周找他讨论科研进展,关心他的科研和生活,从未间断。得益于长期的科研习惯和代码敏感性,面对自动核查核酸截图这件事情,李小康第一时间想到以前学到过的OCR (Optical Character Recognition,光学字符识别)技术。“OCR可以把图像中的文字识别出来,转换为文本信息,就方便用来核查了。而且因为核酸截图是打印字体,识别率非常高,几乎可以做到100%准确。”李小康说。
       一张截图中的文本信息很多,包括脱敏处理的姓名、证件类型、证件号码、采样时间、组织机构等内容,但不是所有信息都有用。其中,姓名、采样时间、是否已采样最为关键,是需要检索筛选出的内容。
为此,他想到了Python语言中的正则表达式——可以搜索到字符串中的特定模式内容。“使用正则表达式就可以把想要的信息从OCR识别的文本中筛选出来。最后,确认好每张截图里的姓名、检测时间和是否已采样等信息后,再把所有人的结果输出到Excel文件中,方便人工确认。”
经过思考,李小康的程序思路就基本确定为OCR文字识别+正则表达式筛选。3月15日晚,他花了一个多小时就写出了初始代码,共130行,发现确实能够跑通,且运行效率很高。
         当然,当中也遇到了几个技术难题——OCR技术的实现、学生提交截图类型不统一、截图数量多时的程序等待焦虑等。李小康逐一尝试工具、分析图像特点,  寻找到了最佳解决方案。       学以致用创新实践,有望覆盖全校,李小康说,自己开发这个程序的初衷是为了减少自己和身边老师的工作量。“虽然原理也很简单,只要是会写代码的人第一时间就会明白是怎么回事,但是不做相关工作的感受不到这件事情的费时费力,自然也不会想出办法。我只是用我学到的知识解决实际工作中的困难。”
李小康把这件事发到朋友圈之后,不少同事表示很感兴趣,他也把代码分享了出去,让有需求的老师都能及时使用。“因为程序使用python语言编写,代码注释也写得很完整,只要会使用python,就可以很快上手。”
       为了方便不会编程的老师使用,李小康最后还把程序进行了封装。“大家需要用的时候,只要在命令行输入一行代码就可以运行,非常简单。”据悉,学校信息办已与李小康对接。“他的思路和做法给我们很大启发。”相关负责人介绍,正在收集二级单位管理需求,研究制定相关方案,开发全新小程序纳入学校“一网通办”平台。预计在不久的将来,复旦师生们就可以不用再通过微信手动收集核酸截图,而是通过小程序直接上传图片,二级单位负责人可在后台随时查看统计结果。
       编写代码参考:复旦博士生写了130行代码2分钟搞定核酸结果统计
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则