基于MATLAB的口罩检测定位系统
一、课题介绍
作为数字图像处理和计算机视觉领域的一个重要组成部分,利用摄像机对图像进行采集,从图像中检测人脸并进行口罩穿戴的识别的有着非常重要的研究意义和应用价值。面对突如其来的新型肺炎疫情,人们生活秩序被严重打乱。跟普通流感不同,此次疫情可以通过人体唾沫传播,感染他人能力很强。近期,面对疫情,市面上口罩更少被抢得一个不留。因为,面对此次疫情,出门戴口罩变得尤为地重要。可以直接从源头把关,将外接人体唾沫,气流等进行第一屏障地隔离,有效地保护了自己和他人,不给病毒以传播的机会。而往往,就有一些人不响应国家和党的号召,面对此次病毒不以为然,出门依然不爱戴口罩,给病毒有机可乘,给自己和他人的生命安全造成重大安全隐患。如果有一套系统,可以通过数字图像的采集识别,判别出该人是否穿戴口罩,并且做出相应警示报警等,显得尤为重要和迫切。随着计算机视觉技术的逐年精进,基于图像的口罩识别迅速吸引了人们的视线。
本文选择通过检测人脸,进而统计肤色的原理来达到口罩识别的目的,同时选择肤色作为口罩检测的主要依据。由于在 RGB 色度空间中,肤色聚类性不强,且易受亮度信息干扰,本文选择在 YCbCr 色彩空间通过阈值法建立肤色模型,完成肤色分割,形态学处理去干扰后得到初步的口罩定位。由于肤色检测准确率不高,因此进一步利用hough 变换检测人脸轮廓对人脸区域进行精确定位,最后框出人脸并实现人数统计,结果表明本算法对于正面人脸检测效果良好,统计结果较为精确。
本文还设计了一个简洁美观的GUI 界面,这个界面可以更好地展现处理的过程,使得实现的演示简单明了。
二、算法设计
传统检测口罩的方法,基本使用基于颜色的方法,即口罩基本有浅蓝色,黑色和白色为主的几种,通过RGB三原色转换为HSV等容易聚集颜色的色彩空间,得到对应颜色的像素点的方法来定位口罩。但是该种方法容易受到外部环境的干扰,如人们自身穿戴的衣服,周边环境颜色等。因为本文不以考虑该种算法。而是采用人脸定位,肤色检测相结合的方法进行口罩的识别。首先可以利用人脸定位器将目标人脸区域与复杂背景进行初步分离,然后在该人脸区域内,利用肤色定位原理对人脸的区域进行遍历像素, 这样就可以准确地定位出属于肤色位置像素值和位置,并将其置黑色。如果该人穿戴了口罩,那么口罩部分不属于人脸肤色,自然不会被检测为人脸肤色像素,因此该块口罩区域块呈现白色,最后通过形态学知识滤除掉白色面积块小于一定值的区域,留下面积一定的白色面积块,该面积块即为口罩区域。
本文的算法流程图,如图 2.1所示。
RGB合并
RGB三通道分别滤波
人脸定位
读入原图
肤色标定
Y、CB、CR分离
转YCBCR空间
形态学滤波
结果输出
口罩定位
图 2.1 算法流程图
三、GUI设计
![v2-11d724344299eb85778c91e7ec769a10_b.jpg](https://i-blog.csdnimg.cn/blog_migrate/db92965493984f60ea5bf963b680d24a.jpeg)
图 3.1 口罩识别系统GUI 界面