摘" 要:文章针对痤疮、皮炎等常见皮肤病,基于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—),男,汉族,广东汕头人,本科在读,研究方向:人工智能、深度学习。