林昭成 李家文 廖寶琳 林家浚
隨著新冠肺炎疫情逐漸好轉,人們的防疫意識有所松懈。考慮到疫情的危害性以及可能會出現的變異毒株傳播事件,我們想通過建立一個“口罩率”智能識別與預警系統以助防疫。該系統通過計算出公眾場合人們佩戴口罩的比例,得出某地某時的“口罩率”,并根據當地實際情況進行播報預警。
一、準備過程
(一)設備準備
在學校、老師以及區教育局的幫助下,我們租用了GPU云服務器、計算機房,購買了數據采集設備、系統原型設備和網絡攝像頭,并借來3D打印機和攝像機。
(二)問卷調查
起初,我們開展了問卷調查,收集了反饋效果。根據問卷填寫的情況和反饋的結果,我們撰寫了問卷調查研究報告,并得出以下結論。
1.目前,有部分人的防疫意識淡薄,對所在地區的疫情風險程度不夠了解,這會導致在日常的工作、生活中不能采取較好的防疫措施來保護自己和他人,因此需要更直觀、有效的方式使人們能及時了解疫情。
2.人們雖然知道佩戴口罩的重要性,但不能較好地落實這一項防疫措施。
3.人們希望能繼續加強疫情防控,所以不管是外部防控還是個人防控,都應注意細節。
密集人流“口罩率”智能識別和預警系統的研發不僅能實時有效地幫助人們全面防控疫情,還能用直觀的數據提醒人們,及時采取相應的防疫措施保護自己和他人。
綜上所述,本次問卷調查表明了密集人流“口罩率”智能識別和預警系統課題與社會熱點貼切,具備開展的可行性。
在老師的指引下,我們查閱文獻并進行匯總,決定采用yolo4模型作為系統模型的基礎。
二、實踐過程
(一)數據收集
我們先收集了一部分網絡數據(即網絡圖片)進行訓練,在這個過程中,老師指導我們對數據進行加工處理,利用label image軟件給佩戴口罩的人臉做“face_mask”的標記,給未戴口罩的人臉做“face”的標記。但網絡數據不夠真實也不符合現實場景,所以我們收集了一些小組成員的照片,并在征得同意后進入學校監控室,收集了更多的人臉數據。
收集到足夠的數據后,另一個問題來了:數據如此龐大,僅憑我們4個人根本無法在短時間內打完標簽,在老師的幫助下,我們召集了50名義工在學校的計算機室完成了數據標記。
(二)構建模型
口罩率的識別需要系統在人群中對每一個對象做到精準識別,并提取出佩戴口罩的人臉和未佩戴口罩人臉的比例。在現實場景中,這對系統的精度要求較高,我們要盡量將誤差控制在最小的范圍內。另外,由于口罩率具有時效性,因此系統還要對視頻流做出及時演算,達到精度與速度的平衡。
為了達到精度和速度的要求,在構建模型的過程中我們查閱了多篇文獻,最終決定采用yolo4的模型,并針對現有的數據加以實現。相較于上一代的yolo模型,yolo4通過更大的網絡輸入分辨率用于檢測小目標,更深的網絡層便于覆蓋更大的感受野,更多的參數便于檢測同一圖像內不同的目標,在輸入網絡分辨率、卷積層數量、參數數量、輸出維度多方面達到平衡,從而達到高效精準的檢測效果。
(三)訓練過程
模型搭建完成后,首先導入預訓練模型,接著導入訓練集數據進行模型訓練,其超參數設置如表 1。
每一次迭代訓練,模型輸出一個訓練的損失值train_loss,并利用驗證集對模型進行訓練效果驗證,輸出驗證的損失值val_loss。可以看到,訓練效果比較明顯,train_loss穩步下降,而val_loss在緩慢下降后有微小的反彈。可以判斷,模型在訓練過程中出現過擬合現象。
為了避免訓練過程中擬合現象對模型效果產生影響,除模型本身的措施外(如batchnormal層的運用、數據增強、IOT閾值設置),每一次迭代訓練結束后都保存好該次訓練的模型權重參數,并標注對應的訓練損失值train_loss和驗證損失值val_loss。待迭代訓練結束后,通過人工選擇train_loss和val_loss值最優的模型權重參數,將其應用在后續的驗證和測試過程。
三、模型測試
(一)模型評估
訓練結束后,要進行模型的評估。此時,將測試集導入模型中,輸出每張圖片數據的識別結果,并計算出每個類別的準確率、平均準確率以及最后輸出總體map值。
計算結果顯示,對“face_mask”即佩戴口罩人臉的識別準確率高達99%,而“face”即未佩戴口罩人臉的識別準確率也達到了91%,平均準確率約為94.56%。這是一個令人滿意的結果,說明本研究模型的構建和實施是可行的,但也有優化的空間,可以通過模型優化、訓練優化、數據優化等方法提升系統和模型的性能。
(二)軟硬件結合
首先,為了讓系統真正應用到現實場景中,我們決定通過Arduino實現預警系統的硬件部分,模擬現實中小區的出入門閥,比較系統識別的口罩率與閾值,當某地的口罩率低于閾值(如50%)就會觸發預警措施,而當口罩率高于閾值,即停止預警或取消預警。
接著,我們利用3D打印技術打印出一個模擬現實小區中出入門閥的裝置,盒子表面有一塊顯示屏和一根長桿。系統能持續識別當地的口罩率,并將結果呈現在顯示屏上。當某地的口罩率低于閾值(如50%)就會觸發預警措施,長桿下落即限制車輛人員進入;當口罩率高于閾值,即停止預警或取消預警,長桿升起允許車輛、人員進入。由此實現模型的軟硬件結合。
(三)實地測試
我們在校園內的實地測試如圖4。
四、創新點
1.佩戴口罩是日常防疫的重要措施之一,以“口罩率”為切入點,從收集到的數據分析人與社會的問題,切合時事。運用人工智能深度學習、3D打印、Arduino等技術,切合科創主題。
2.本課題研究形成的預警模型具有可操作性,可以幫助地方政府結合當地情況應用到實處,起到疫情防控的目的。
(指導老師:劉翔武? 梁志浩)
專家點評
林昭成、李家文、廖寶琳、林家浚同學完成的“口罩率”智能識別和預警系統雖說是一個應景式的熱點項目,但極具原創性,在青少年科技創新活動中屬于原始性創新作品。
原始性創新可分為科學上的原始性創新和技術上的原始性創新。科學上的原始創新是指在基礎研究領域做出了從來沒有人做出的新的科學發現,包括新現象的發現、新領域的開拓、新概念的提出、核心理論體系的形成。技術上的原始性創新是指在新方法、新工藝、新產品等技術領域,取得前人所沒有的創新。
四位同學完成的“口罩率”智能識別和預警系統,其原創性就是首次提出通過建立一個“口罩率”智能識別與預警系統來幫助人們防疫。該作品能通過計算公眾場合人們佩戴口罩的比例,得出某地某時刻的“口罩率”,并根據當地實際情況進行播報預警。這種防疫的方式別具一格。
但中學生應以實踐小的創新項目為主。該項目之所以能獲得成功,也源于學校、老師以及區教育局的大力支持與幫助,讓他們能租用GPU云服務器、計算機房,購買相關器材,并借來3D打印機和攝像機等。這種特殊待遇,一般的學生團體或個人是無法獲得的。