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