130 行Python代碼搞定核酸統(tǒng)計,兩分鐘解決人工一小時工作量!
這段時間以來,全國各地的疫情發(fā)展牽動人心。為了更好地配合疫情防控,復旦大學自三月初以來啟動了常態(tài)化核酸篩查工作。
這一工作要求輔導員挨個檢查學生“健康云”核酸完成截圖,確?!安宦┮蝗恕?。聽上去簡單,做起來難。面對幾十甚至上百張重復性高的截圖,人工核查往往耗時耗力,一不小心還會看錯看漏。
為了解決這一難題,信息科學與工程學院博士生李小康寫出130行代碼,快速開發(fā)出了一項小程序。
這項小程序大大提高了核酸核查的速度和精度,使得原來需要幾個人核對一個多小時的800幅截圖,現(xiàn)在只需2分鐘就能拿到結果。
圖源:微博截圖
隨后,李小康的事跡火上熱搜,《人民日報》也為他點贊:“知識就是力量!”
靈光一現(xiàn),說干就干
據(jù)復旦大學官方介紹,李小康是信息科學與工程學院的一名博士生,專業(yè)為生物醫(yī)學工程,研究方向是醫(yī)學影像與人工智能。在平時的科研生活中,他經(jīng)常會接觸到很多圖像處理方法。
除此之外,李小康也是學院2019級信息1班輔導員。在學校進入準封閉管理之后,他同時還擔任志愿者一職。
李小康正在做志愿者(圖源:復旦大學公眾號)
面對日常繁瑣的抗疫工作,得益于長期的科研習慣和代碼敏感性,李小康萌生了寫一個代碼程序用于自動核查核酸完成截圖的想法。
李小康與學工同事的聊天(圖源:復旦大學公眾號)
說干就干,3月15日晚,李小康花了一個多小時就搞定了初始代碼。程序一寫好,他就驗證了自己班級的核酸截圖數(shù)據(jù),發(fā)現(xiàn)準確率很高,甚至檢測出了之前人工核查時沒發(fā)現(xiàn)的問題。
同時,程序運行的時間也很短,80多張圖只需要20多秒,大大提升了核查的精度和速度,也減輕了相關人員的工作負擔。
程序?qū)崿F(xiàn)原理并不復雜
如此高效的程序是怎么實現(xiàn)的呢?說起原理,李小康認為并不復雜。
他首先想到了OCR(Optical Character Recognition,光學字符識別)技術,這一技術可以識別出圖像中的文字,并轉(zhuǎn)換為文本信息。
由于圖片中的信息并不是全都有用,李小康又想到了Python中的正則表達式,它可以把想要的信息從OCR識別的文本中篩選出來。
程序?qū)嶋H運行過程(圖源:復旦大學公眾號)
基于OCR文字識別+正則表達式篩選的這一思路,李小康開發(fā)的程序?qū)崿F(xiàn)了將所需信息從識別的文本中篩選出來。在確認好每張截圖的相關信息后,將所有人的結果輸出到一個Excel文件中,方便人工確認。
程序輸出的Excel文件(圖源:復旦大學公眾號)
學以致用,積極戰(zhàn)疫
談及開發(fā)程序的初衷,李小康表示自己只是為了減少自己和身邊老師的工作量。因為程序是用Python編寫的,代碼注釋也很完整,所以會使用Python的可以很快上手。
同時為了方便不會編程的老師使用,李小康還把程序進行了封裝,只需簡單輸入一行代碼就能運行。
用李小康的原話來說:“雖然原理也很簡單,只要是會寫代碼的人第一時間就會明白是怎么回事,但是不做相關工作,感受不到這件事情的費時費力,自然也不會想出辦法。我只是用我學到的知識解決實際工作中的困難?!?
復旦大學官方透露,學校信息辦已經(jīng)和李小康對接,正在根據(jù)需求開發(fā)新的小程序。預計不久之后,師生們就不用再手動收集核酸截圖,只需通過小程序直接上傳圖片就能查看統(tǒng)計結果。