復(fù)旦博士用130行代碼搞定核酸統(tǒng)計:2分鐘拿結(jié)果!
自今年3月以來,上海遭遇了新一輪新冠肺炎疫情襲擊。持續(xù)大量的新增病例,給上海這座擁有2500萬常住人口的超大城市帶來了前所未有的挑戰(zhàn)——人工核查核酸報告,費(fèi)時費(fèi)力又易出錯,怎么辦?
對此,復(fù)旦大學(xué)一位在讀博士生,利用自己的專業(yè)知識開發(fā)了一項小程序,800幅核酸截圖原來要幾個人核對一個多小時,現(xiàn)在只需等待2分鐘就能拿到結(jié)果,大大提高了核查效率和精度。
由此,他也獲得了眾多網(wǎng)友的一致好評。就連人民日報都發(fā)表了這一消息,對該博士生給予點(diǎn)贊表彰。
(人民日報官方微博截圖)
據(jù)悉,該博士生名叫“李小康”,就讀于復(fù)旦大學(xué)信息科學(xué)與工程學(xué)院生物醫(yī)學(xué)工程專業(yè),擔(dān)任學(xué)院2019級信息1班輔導(dǎo)員。由于他的研究方向是醫(yī)學(xué)影像與人工智能,因此李小康平常會接觸很多圖像處理方法。
得益于長期的科研習(xí)慣和代碼敏感性,自從學(xué)校進(jìn)入準(zhǔn)封閉管理之后,忙于抗疫的他,便對人工核查核酸報告這件繁瑣的日常工作產(chǎn)生了思考:如何自動核查核酸截圖?
作為生物醫(yī)學(xué)工程專業(yè)博士生,李小康第一時間想到了以前學(xué)過的OCR(Optical Character Recognition,光學(xué)字符識別)技術(shù)。他認(rèn)為,開發(fā)這項小程序并不復(fù)雜:“OCR可以把圖像中的文字識別出來,轉(zhuǎn)換為文本信息,就方便用來核查了。而且因為核酸截圖是打印字體,識別率非常高,幾乎可以做到100%準(zhǔn)確?!?/span>
(李小康正在做志愿者)
要知道,一張截圖中的文本信息很多,包括脫敏處理的姓名、證件類型、證件號碼、采樣時間、組織機(jī)構(gòu)等內(nèi)容,但不是所有信息都有用。其中,姓名、采樣時間、是否已采樣最為關(guān)鍵,是需要檢索篩選出的內(nèi)容。
為此,他想到了Python語言中的正則表達(dá)式——可以搜索到字符串中的特定模式內(nèi)容。“使用正則表達(dá)式就可以把想要的信息從OCR識別的文本中篩選出來。最后,確認(rèn)好每張截圖里的姓名、檢測時間和是否已采樣等信息后,再把所有人的結(jié)果輸出到Excel文件中,方便人工確認(rèn)。”
(程序?qū)嶋H運(yùn)行過程)
最后,李小康確定了“OCR文字識別+正則表達(dá)式篩選”的程序思路。
3月15日晚間,他花了一個多小時就寫出了初始代碼,共130行。程序一寫好,李小康就在自己班級的核酸截圖數(shù)據(jù)上進(jìn)行驗證,準(zhǔn)確率果然很高,甚至檢測出了之前人工核查沒有發(fā)現(xiàn)的問題,并且程序運(yùn)行時間很短。
目前,這項小程序已在該學(xué)院服務(wù)兩周了。
(程序輸出的Excel文件)
后來,他把這件事發(fā)到了朋友圈,不少師生表示很感興趣,他還把代碼分享了出去。為了方便不會編程的老師使用,李小康最后還把程序進(jìn)行了封裝——用的時候,只要在命令行輸入一行代碼就可以運(yùn)行。
據(jù)了解,學(xué)校信息辦也與李小康取得了對接。預(yù)計在不久的將來,師生們就可不用再手動收集核酸截圖,而是通過小程序直接上傳圖片,可在后臺隨時查看統(tǒng)計結(jié)果。
(網(wǎng)友評論截圖)
面對外界的點(diǎn)贊,李小康表示:“我只是用我學(xué)到的知識解決實際工作中的困難?!?/span>