黃春營,李 超,彭 琿,張 翔
(63892部隊,河南 洛陽 471000)
新型冠狀病毒感染暴發后,國家和政府出臺了一系列措施進行防控,在防控過程中,最常見的防控要求通常是查看來訪人員的行程卡和健康碼,采用人工方式判斷來訪人員是否有中高風險地區旅居史。但是,這種人工查看行程卡的方式信息化程度不高、效率低,并且在中高風險地區較多的情況下,人工查看的方法就要求防控人員首先需要牢記每個中高風險地區,然后對行程卡信息進行一一比對,這對防疫人員來說具有一定的難度。此外,采用人工查看比對結果的準確度也難以達到要求,并且無法留存相應的行程卡信息,給后續追蹤、倒查帶來一定的困難,也給疫情防控帶來極大的安全隱患[1-2]。
為了提高人員管控的效率,減輕人工查驗的壓力,便捷地留存相應人員的行程卡上對應的電話、時間及近期行程信息,在確保信息安全和符合保密要求的前提下,本文設計了一套疫情防控輔助分析與預警系統,該系統具有以下特點:一是方便快捷,只需要用戶手機截圖行程卡然后上傳至系統,系統就能夠自動識別行程卡上的數據,然后與系統中保存的當前中高風險地區數據一一比對,即可得到相應的風險判定信息,并能準確地給出預警;二是操作靈活準確,針對不同地方的防疫要求,管理員可以對中高風險地區進行靈活管理,使系統比對結果更加準確;三是方便追蹤信息,由于對中高風險地區的判定存在一定的滯后性,可能造成某些人員在查驗行程卡信息時屬于無風險,但后續追蹤可能出現風險的情況。針對此問題,系統能夠快速查找追蹤指定時間范圍內管控人員的行程信息,判斷該類人員是否有防疫安全風險;四是符合保密和信息安全要求,網絡系統中留存的信息只有行程卡圖片上顯示的相關的信息,不含其他任何個人數據信息,符合規范的保密要求[3]。
PaddlePaddle[4]是百度公司自主研發的深度學習平臺,該平臺集成了深度學習核心訓練、推理框架、基礎模型庫、端到端開發套件及豐富的工具組件,具有模塊化設計、高效率訓練,高性能、工業級部署等特性,并且有豐富的官方支持的用于產業、學術和科研的模型庫,內容涵蓋計算機視覺、自然語言處理、推薦算法等領域[5]。
PaddlePaddle中的開源文字識別模型套件PaddleOCR是一個先進實用的文本識別模型和工具庫。PaddleOCR在實現前沿算法的基礎上,在充分考慮計算精度與速度的平衡后,對模型進行瘦身和深度優化。用戶既可以通過PaddleHub工具方便快捷地使用PaddleOCR實現各種應用,也可以使用PaddleOCR套件根據自己的需求訓練出自己的超輕量模型。
為了簡化用戶操作流程、保證用戶上傳信息的準確性,系統基于PaddlePaddle深度學習框架快速開發和部署獨立的圖片信息識別服務[6],該服務能夠快速識別用戶上傳的行程卡信息,經過數據處理獲取系統需要的數據信息,然后進行比對、追蹤等操作。
Spring Boot是由Pivot團隊設計并研發的一種新穎的Web框架[7],其設計宗旨是簡化Spring應用的搭建和開發過程,通過“習慣優于配置”的思想實現Web項目的快速搭建。該框架擁有獨特的配置方式,網站開發人員不需要進行大量重復的樣板式配置工作。Spring Boot能夠創建并運行獨立的Spring項目,其內嵌的Tomcat服務器能方便地進行項目的調試,并且項目支持以jar/war包的方式進行線上部署,項目配置不會生成額外的代碼量,不需要進行XML文件的配置,具有開箱即用的特點,提供了更快的基于Spring的開發體驗。所以,本系統采用Spring Boot框架快速實現項目中Web部分的開發和部署[8]。
MyBatis是Apache的一個開源項目和ORM(Object Relation Mapping)框架,它通過XML文件和注解實現對象關系到數據庫的映射,從而簡化了Java代碼對數據庫的直接操作[9]。MyBatis框架的一個特性在于語句的映射。相比JDBC等其他連接數據庫的方式,使用SQL(Structured Query Language)映射的XML配置文件比較簡便,并且會減少較多的代碼。MyBatis的另一個重要特性是支持動態SQL。在動態SQL語法的幫助下,開發人員可以將很多的參數邏輯放入XML中使用動態SQL進行判斷,而不是放在業務邏輯層進行冗余邏輯的處理,這也極大地提高了SQL語句的復用性。系統中使用MyBatis可以將業務邏輯和數據訪問邏輯分離,讓開發人員更專注于系統的上層應用設計和架構部分,使系統的設計更清晰,更便于維護。
新型冠狀病毒感染的防控過程中,針對來訪人員采取人工查驗行程碼判斷是否存在風險的工作方式效率低,而且容易出現漏報誤報的情況,以及對通過現場查驗的人員也無法實現有效追蹤的問題,急需一套能夠方便快捷地進行行程卡信息檢測并且能夠實時查看、實時更新的系統,該系統的主要需求包括以下幾個方面。
(1)用戶上傳行程卡圖片:要求系統能便捷地上傳個人行程卡信息,并得到準確的判斷結果。
(2)實時預警:當用戶上傳行程卡信息后,系統會自動判斷該用戶是否有防控安全風險,當判斷結果為有風險存在時,系統能夠及時地給出預警信息。
(3)預警信息查詢:系統管理員能夠實時查看系統的預警信息,并且能根據預警信息準確追蹤有安全風險的人員信息,及時進行人員管控。
(4)中高風險地區管理:系統能夠實時更新中高風險地區,運維人員能夠對系統中的中高風險地區信息進行管理。
(5)歷史數據管理:系統管理員能夠快速查詢和追蹤歷史數據。
(1)安全性:系統中需要用戶上傳的數據不包含任何隱私信息,均為可公開的數據,并且系統中不存儲其他任何個人信息,確保信息安全。
(2)便捷性:考慮到用戶群體可能對手機操作不熟練,所以要求用戶端的操作應盡量簡單易懂;管理員端的操作應適配PC端和移動端。
(3)并發性:經過對應用場景的統計分析,系統建設初期應能保證50 人同時流暢地上傳個人行程卡信息,若后續有更高的并發需求時,系統架構應支持通過選擇增添服務器、做負載均衡等方式實現擴容。
(4)兼容性:系統界面需適應市場主流移動設備及PC端,能夠兼容IOS、Android等不同的手機系統。
本節根據系統的需求分析進行設計,主要介紹系統體系結構設計、功能結構設計兩個部分。
疫情防控輔助分析與預警系統采用B/S結構進行設計,該結構的體系框架是一種基于Web的三層系統結構[10-11],如圖1所示。

圖1 Web系統結構Fig.1 Web system architecture
圖1中,最上層是表示層,該層主要是展現給用戶的界面,是直接與用戶交互的部分,在本系統中,用戶可以掃描二維碼通過瀏覽器與系統進行交互;中間層是業務邏輯層,該層包括兩個部分:一部分是基礎的防疫相關業務服務,負責處理圖片上傳、風險識別、實時預警等功能,另一部分是基于PaddlePaddle搭建的圖片自動識別服務,主要通過接口與基礎業務處理部分進行交互;最底層是數據存儲層,負責管理整個系統的數據資源的存儲。
系統的功能結構如圖2所示,主要包括用戶監測模塊、中高風險地區管理模塊、信息查詢模塊。

圖2 系統功能結構圖Fig.2 The structure of system functions
4.2.1 用戶監測模塊
(1)上傳圖片:這是系統用戶使用的主要功能,用戶上傳行程卡截圖后,系統給出判斷結果。
(2)圖片識別:系統基于PaddlePaddle框架建立獨立的服務接口,識別用戶上傳的圖片信息。
(3)風險識別:系統通過逐一比對用戶行程卡中的行程和中高風險地區信息,識別判斷該用戶是否存在風險。
(4)實時預警:系統可以實現實時預警,并能通過郵件的方式給管理人員發送預警信息。
4.2.2 中高風險地區管理模塊
(1)自動更新:系統通過定時任務,每天自動從網站抓取中高風險地區信息,并實時與系統中信息進行比對、更新。
(2)人工維護:可以采取人工方式對中高風險地區進行新增、修改、刪除、查詢等操作。
4.2.3 信息查詢模塊
(1)預警信息查詢:查詢系統的預警信息。
(2)歷史信息查詢:查詢系統中用戶上傳的歷史信息,方便追蹤。
在說明系統設計的基礎上,本部分主要對系統對接的主要防疫業務,以及圖片識別服務和前端頁面部分的實現進行簡要介紹。
該系統的實現主要采用開源Spring Boot框架,該框架繼承了Spring框架的優秀特征,還通過簡化配置的方式進一步簡化了Spring應用的搭建和開發過程,在使用過程中,首先從Spring Boot官方網站選擇相關的配置,比如SpringBoot版本、JDK版本信息及開發所需要的依賴文件等信息,其次生成項目并下載到本地,導入開發環境中即可。項目中src目錄包含Java代碼和配置文件,test目錄用來做測試,pom.xml是項目所需的依賴文件。系統的開發一般進行分層處理,Controller層負責響應前端的請求,Dao層負責數據的持久化操作,Service層主要負責業務模塊的業務處理。其中,Dao層和Service層通常是先設計接口,然后設計其實現類,在Spring的配置文件中配置其實現的關聯,最后可以在Controller中調用Service接口進行業務處理。
圖片識別服務通過搭建PaddlePaddle深度學習框架中的PaddleOCR套件實現。該套件主要包含文本檢測和文本識別兩個階段,其中文本檢測階段采用DB(Differentiable Binarization)算法,文本識別階段選用CRNN(Convolutional Recurrent Neural Network)算法。此外,PaddleOCR在檢測和識別階段之間還添加文本方向分類器,用以應對不同方向的文本識別。
系統的前端采用Bootstrap開源框架,該框架是一個能夠自適應的前端響應式框架,用于開發響應式布局、移動設備優先的Web項目,能夠幫助開發者快速設計出扁平化的前端界面。系統只需要引入Bootstrap的相關項目文件即可進行前端頁面的開發。
系統的主要功能界面如圖3至圖5所示,其中圖3是用戶圖片上傳界面,用戶只需上傳圖片即可得到是否存在風險的判斷結果,圖中的其他信息是通過自動識別圖片上的信息自動填充的,進一步簡化了用戶操作。圖4是中高風險地區信息管理的界面,管理員能夠便捷地對中高風險地區的信息進行相應的操作。圖5是用戶上傳的行程信息及產生預警信息的界面,用戶能夠快速查看上傳的行程信息及產生預警的行程信息。此外,由于這兩個功能在前端顯示的界面上類似,因此對界面進行了重用,通過點擊不同的按鈕對信息進行切換查詢。

圖3 圖片上傳Fig.3 Image upload

圖4 中高風險地區信息管理Fig.4 Management of the middle-risk and high-risk areas

圖5 信息查詢Fig.5 Information query
本文以新型冠狀病毒感染防控過程中如何快速有效地判斷來訪人員的風險為目標,實現了基于行程卡信息自動識別的疫情防控輔助分析與預警系統。系統后端采用“Spring Boot+MyBatis”等開源框架,具有良好的可擴展性且自主可控;前端采用Bootstrap自適應框架,方便用戶在各種移動設備和PC端使用。該系統的設計和實現既滿足了信息保密要求,也為疫情防控提供了精準便捷的分析工具,大大提高了疫情防控工作的質效,對疫情防控及具有保密和數據安全要求的應用系統的研發建設提供了經驗和參考。