









摘" 要:文章針對痤瘡、皮炎等常見皮膚病,基于YOLOv5目標檢測算法開發出一款具備掃一掃識別皮膚病、科普皮膚病等功能的皮膚病識別系統。用戶可通過上傳圖片或針對患處拍照進行皮膚病識別,也可以通過掃一掃功能識別皮膚病,即只需掃描皮膚患處系統就會自動識別皮膚病,并且能為用戶提供皮膚病科普知識,包括簡介、病因、并發癥、癥狀以及如何預防、鑒別、治療相應皮膚病等信息。經過生產實踐的檢驗,該系統能夠快速識別出20種常見皮膚病,輔助用戶進行皮膚病識別并幫助用戶自治。
關鍵詞:皮膚病;YOLOv5;科普;識別
中圖分類號:TP391.4" 文獻標識碼:A" " 文章編號:2096-4706(2024)12-0168-05
Dermatological Disease Recognition System Based on YOLOv5
WU Zhipan, JIANG Yunhe, LAN Yukai
(School of Computer Science and Engineering, Huizhou University, Huizhou" 516007, China)
Abstract: This paper focuses on common skin diseases such as acne and dermatitis, and develops a skin disease recognition system based on the YOLOv5 object detection algorithm, which has the functions of scanning and recognizing skin diseases, popularizing skin diseases, and so on. Users can identify skin diseases by uploading pictures or taking photos of the affected area. They can also recognize skin diseases through the scan function, which means that the system will automatically recognize skin diseases by scanning the affected area. It can provide users with popular science knowledge for skin disease, including introduction, causes, complications, symptoms, and how to prevent, distinguish, and treat corresponding skin diseases. After production practice testing, the system can quickly identify 20 common skin diseases, assist users in skin disease recognition, and help users achieve self-medication.
Keywords: skin disease; YOLOv5; popular science; recognition
0" 引" 言
全球變暖會對人類健康造成重大影響,另外因社會政治、經濟導致的動蕩進一步破壞了地區的穩定進而發生更為頻繁的移民浪潮。數據顯示,2013至2020年,皮膚病醫院總診療人數逐年上升,2020年診斷人數趨近千萬。皮膚病是人們日常生活中最容易遇到的疾病之一,移民可能把疾病從原籍地帶到目的地,導致本地居民感染上以前從未接觸過的疾病[1]。皮膚病也是現代社會發病率最高、最具傳染性的疾病之一,同時它還是醫學上疾病種類多、治療時間長的常見病。有研究統計超過94萬歐洲人抱怨不舒服的皮膚感覺,如瘙癢、灼熱或干燥[2]。瘙癢、疼痛或其他癥狀不但在經典瘙癢性皮膚病中常見,而且在痤瘡、酒渣鼻或濕疣中也常見,瘙癢和疼痛大大增加了患者的心理痛苦[3]。一項對新加坡老年人為期15年的臨床隊列研究顯示,皮膚病給老年人帶來的負擔很大,嚴重的皮膚病(如惡性黑色素瘤)加大了老年人的致殘率[4]。很多時候人不知道自己患了皮膚病只是覺得癢反復抓患處止癢,因抓傷皮膚而導致皮膚發炎。皮膚的炎癥性傷口可能由許多不同的疾病引起,這些炎癥性傷口表現為非常疼痛的潰瘍,愈合過程通常是較為困難和漫長的,嚴重損害了患者的生活質量[5]。
皮膚病學是一門視覺專科,人工智能診斷皮膚病是有效可行的,這需要設計良好的臨床試驗、詳盡的報告以及對療效監測的通用標準[6]。基于人工智能技術的皮膚病掃一掃識別功能有助于人們自行檢測自己是否患有皮膚病,得到相關的科普知識,防止患者胡亂自治導致病情加重。
YOLOv5是YOLO系列不斷更新的第五個版本(YOLOv5是在YOLO、YOLOv2、YOLOv3、YOLOv4 [7-10]漸次更新迭代的基礎上改進而來的,具備高性能和高精度的優點),它以小巧的模型尺寸、出色的檢測速度和卓越的檢測精度著稱,能夠滿足皮膚病基于外觀的快速、準確檢測要求,在皮膚病檢測任務中具有卓越的性能。
2020年起,企業使用深度學習技術研制出的醫療器械產品陸續獲批上市,這意味著以深度學習為代表的新一代人工智能技術逐漸進軍醫療器械領域并加速進入臨床應用中。系統實現的掃一掃識別皮膚病功能的技術底層原理涉及深度學習,是以開發新一代人工智能技術應用為導向,具有一定的技術創新性。以往識別皮膚病大多是通過線上醫生的在線診斷而得出結論,診斷效率有賴于患者的描述能力和醫生的判斷能力,而通過系統可以實現讓患者自行掃一掃患處就能識別并提供輔助信息,相比于傳統方式具有一定的創新性和便利性。
1" 系統架構思路
系統開發的最終目標是提供三大核心功能:一是用戶手動上傳照片或針對患處拍照后,系統能對用戶上傳的圖像進行皮膚病識別;二是用戶點擊掃一掃按鈕后,系統可自動識別皮膚病;三是系統能夠為用戶提供常見皮膚病科普知識,包括皮膚病的簡介、病因、并發癥、癥狀以及如何預防、鑒別、治療相應皮膚病等信息。
系統開發包括微信小程序開發、Android端開發、服務端開發,所用技術涉及業務API、算法API、訓練YOLOv5s目標檢測模型。操作步驟包含收集數據、打標簽、調參、訓練等。小程序采用Vant輕量可靠的UI庫進行設計開發;安卓端應用原生框架進行開發;服務端運用Spring Boot框架進行搭建;算法API使用Tornado高性能框架進行設計實現。目前的互聯網技術提供一種高度動態的交互媒介,因此系統開發交互式頁面要方便用戶操作,提高用戶的體驗感。此外,為了保證用戶的體驗感,系統上線前應進行完善的測試。為了節省測試環境搭建的成本,系統利用Spring Boot框架提供的批量單元測試進行全面測試。
2" 數據集
數據集是深度學習目標檢測算法中最重要的組成部分,如果擁有高質量的數據集,那么訓練出來的模型性能會更好。系統的數據集均來源于從網絡上收集的圖片,共有1 278張與皮膚病有關的圖片,涉及蕁麻疹(urticaria)、傳染性紅斑(infectious erythema)、鱗狀細胞癌(cell carcinoma)、太陽能雀斑(solar freckles)、水痘(chicken pox)、灰指甲(leuconychia)、牛皮癬(psoriasis)、猴痘(monkeypox)、疥瘡(scabies)、痤瘡(acne)、濕疹(eczema)、白癜風(vitiligo)、皮膚疣(thymion)、皮膚纖維瘤(dermatofibroma)、帶狀皰疹(herpes zoster)、酒渣鼻(rosacea)、膿皰病(impetigo)、過敏性皮炎(allergic)、光化性角化病(actinic keratosis)、黑素瘤(melanoma)這20種皮膚病。
3" 模型設計
如圖1所示,YOLOv5預測的邊界框包含x(邊界框中心坐標x軸坐標)、y(邊界框中心坐標y軸坐標)、w(預測框的寬度)、h(預測框的高度)、c(置信度)這5個參數。根據業務需求,系統采用YOLOv5s網絡(在YOLO系列中,YOLOv5s具有最快的識別速度)進行目標檢測。YOLOv5算法簡單識別的流程如圖2所示,算法首先預測圖像中所有可能存在的物體,得到一系列預測框,然后對明顯重疊的預測框進行求優,也就是保留這些邊界框中最好的邊界框,其余邊界框一律去除。
YOLOv5s模型經過300次迭代訓練后的結果如表1所示,PR曲線如圖3所示,迭代300次中mAP值的變化如圖4所示,可以看出訓練效果顯著,基本符合系統業務需求。
4" 實際應用
4.1" 微信小程序
4.1.1" 需求分析
如圖5所示,用戶端包含登錄、注冊、疾病列表顯示、疾病詳情、上傳或拍照識別皮膚病、掃一掃識別皮膚病六大模塊。用戶使用小程序時后臺會自動獲取小程序登錄授權碼Code,并將Code傳入系統,系統通過調用小程序登錄API進行登錄注冊。用戶進入小程序首頁后將顯示5種疾病列表,點擊某種疾病即可查看詳細。用戶上傳圖片或拍照上傳圖片后,系統會對用戶上傳的圖片進行識別并反饋相應結果給用戶。用戶點擊掃一掃小程序后臺會自動上傳圖片,系統對圖片進行識別,直至識別出相應皮膚病反饋給用戶。
4.1.2" 業務流程
如圖6所示,用戶無須自行登錄注冊即可進入小程序,小程序在后臺自動獲取小程序授權碼進行登錄注冊。若用戶是首次進入系統,系統會錄入用戶相關信息后返回Token令牌,或者直接反饋Token令牌。用戶進入小程序后可以預覽多種常見皮膚病,并且可以通過點擊某種皮膚病詳細信息按鈕查看有關該疾病的詳細信息。用戶選擇拍照上傳圖片后系統會對圖片進行識別,并把結果反饋給用戶;用戶也可以直接點擊掃一掃功能,系統在后臺自動拍照上傳圖片并根據圖片分析有無皮膚病,若有則反饋給用戶相關皮膚病信息,若無則重復掃一掃步驟,直至識別出皮膚病或用戶自行退出。
4.2" Android端識別
如圖7所示,在此頁面,系統后臺會不斷檢測后置攝像頭拍攝的內容是否有皮膚病相關圖片信息,若有則在屏幕中標記。用戶可以通過調整線程數量來加快檢測速度,檢測性能與用戶設備信息緊密相關。
4.3" Web界面
如圖8所示為管理員登錄頁面,管理員通過輸入授權后的郵箱進行驗證碼驗證,若驗證碼正確則進入后臺系統。如圖9、圖10所示為后臺管理系統的首頁,在該頁面中管理員可以看到今日訪問量、累計訪問量、用戶數量等信息,管理員還可以查看系統的CPU使用率、CPU溫度、內存使用率、操作系統信息、磁盤信息等信息,方便管理員監控系統。
5" 結" 論
系統創新的核心在于將YOLOv5目標檢測算法落實到系統中,以及設計前后端架構,讓用戶獲得更好的使用體驗。經過測試得到的測試數據基本滿足需求分析中系統的性能需求,并且實現了用戶上傳或拍照后進行皮膚病識別或者是通過掃一掃自動識別皮膚病的功能,實現了用戶掃描皮膚患處,系統便會自動識別皮膚病并且為用戶提供相關皮膚病科普知識,包括對應皮膚病的簡介、病因、并發癥、癥狀以及如何預防、鑒別、治療此類皮膚病等信息。經過測試實踐,系統能夠快速識別出20種常見皮膚病,用戶可便捷高效地加以運用。系統的皮膚病掃一掃識別功能有助于人們自助檢測自己是否患有皮膚病,獲得相應的科普知識以及了解如何預防和治療此類皮膚病等,防止患者胡亂自治導致病情加重,對促進人工智能的發展以及有效應對日益增多的皮膚病種類具有一定的意義。
系統的核心當屬深度學習目標檢測算法YOLOv5,算法能否高效準確地識別出皮膚病大抵取決于模型訓練圖片的質量。隨著人工智能在醫療行業的普及,相信未來會有越來越多的醫學數據開源,有了這些數據,目標檢測算法的應用將更加廣泛,不僅可以檢測皮膚病,還可以檢測如口腔、眼睛甚至身體協調等方面的異常情況。
參考文獻:
[1] DAYRIT J F,SUGIHARTO A,COATES S J,et al. Climate Change, Human Migration, and Skin Disease: Is There a Link? [J].International Journal of Dermatology,2021,61(2):127-138.
[2] RICHARD M A,PAUL C,NIJSTEN T,et al. Prevalence of Most Common Skin Diseases in Europe: a Population-based Study [J].Journal of the European Academy of Dermatology and Venereology: JEADV,2022,36(7):1088-1096.
[3] HUET F,TAIEB C,CORGIBET F,et al. Pruritus, Pain, and Depression Associated with the Most Common Skin Diseases: Data from the French Study“Objectifs Peau”[J].Dermatology (Basel, Switzerland),2021,238(3):1-6.
[4] YEW Y W,KUAN A H Y,GEORGE P P,et al. Prevalence and Burden of Skin Diseases among the Elderly in Singapore: a 15-year Clinical Cohort Study [J].Journal of the European Academy of Dermatology and Venereology: JEADV,2022,36(9):1648-1659.
[5] DISSEMOND J,ROMANELLI M. Inflammatory Skin Diseases and Wounds [J].British Journal of Dermatology,2022,187(2):167-177.
[6] THOMSEN K,PIHL A,IVERSEN L,et al. Artificial Intelligence in Diagnosing Skin Diseases [J/OL].Ugeskrift for Laeger,2021,183(7)[2023-08-25].https://europepmc.org/article/med/33660596.
[7] REDMON J,DIVVALA S K,GIRSHICK R B,et al. You Only Look Once: Unified, Real-Time Object Detection [C]//2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR). Las Vegas:IEEE,2016:779-788.
[8] REDMON J,FARHADI A. YOLO9000: Better, Faster, Stronger [J/OL].arXiv:1612.08242v1[cs.CV].[2023-08-12].https://arxiv.org/abs/1612.08242.
[9] REDMON J,FARHADI A. YOLOv3: An Incremental Improvement [EB/OL].[2023-08-13].https://pjreddie.com/media/files/papers/YOLOv3.pdf.
[10] BOCHKOVSKIY A,WANG C Y,LIAO H Y M. YOLOv4: Optimal Speed and Accuracy of Object Detection [J/OL].arXiv:2004.10934v1 [cs.CV].[2023-08-16].https://arxiv.org/abs/2004.10934.
作者簡介:吳志攀(1975—),男,漢族,廣東梅州人,講師,碩士,研究方向:人工智能、模式識別、計算機教育;姜云鶴(2004—),男,漢族,廣東深圳人,本科在讀,研究方向:人工智能、深度學習;藍育楷(2004—),男,漢族,廣東汕頭人,本科在讀,研究方向:人工智能、深度學習。