一种基于Yolov7的头发检测方法与流程

文档序号:37542497发布日期:2024-04-08 13:42阅读:25来源:国知局
一种基于Yolov7的头发检测方法与流程

本发明涉及医美和计算机相结合的检测,尤其公开了一种基于yolov7的头发检测方法。


背景技术:

1、头发是我们外貌的重要组成部分,对于许多人来说,内心渴望追求着一头亮丽且健康的头发。头发的密度和粗细作为衡量头发健康的重要特征,取决于遗传因素、年龄和个人健康状况等多个因素。头发密度指的是每平方厘米头皮上的头发数量,头发的粗细是指单根头发的直径大小,随着年龄和社会压力的增长,脱发问题时常发生且日益年轻化。不仅中年人,甚至年轻人也因工作、人际交往和家庭等原因导致头发稀疏密度减少,此外,化学染发、过度使用热工具和阳光暴露等外部因素也可能导致头发变得干燥脆弱,给人一种粗细不均匀的印象。对于头发密度和粗细,目前的科学研究还在进行中,虽然无法改变遗传因素对头发的影响,但通过及时检测发现问题并加以保养,可以最大程度地发挥个人头发的潜力。

2、传统的检测方法是通过专业的图像采集设备进行采集图片,然后将图像交由专业人士进行评判,这种方法具有强烈的主观性、高昂的人工成本和过硬的专业性缺点。

3、基于深度学习的检测方法是将图像输入特征金字塔中通过卷积的操作学习提取特征信息,从而识别不同大小的检测目标。这种方法可以自动识别头发,但头皮环境多变,头发盘根错杂,各种遮挡交错大大降低了头发的检测精度。

4、因此,开发一种自动检测头发密度和粗细的检测方法,降低人工成本,提高检测精度和稳定性,改善用户体验将是有益的。


技术实现思路

1、本发明提供了一种基于yolov7的头发检测方法,旨在解决现在头发检测方法中存在的上述缺陷。

2、本发明涉及一种基于yolov7的头发检测方法,包括以下步骤:

3、基于毛囊口作为靶点对头发密度和粗细进行打标,作为指导yolov7模型训练的标签;

4、将待检测图像输入至训练好的yolov7模型,经过训练好的yolov7模型来提取待检测图像的特征以预测检测框的位置;

5、根据头发位置特点,经过基于位置感知的迭代后处理来检测出漏检和错检的目标框;

6、依据头发密度和头发粗细指标设计头发评分映射,使用头发评分映射对基于位置感知的迭代检测结果进行评估,评估出头发健康状态。

7、进一步地,基于毛囊口作为靶点对头发密度和粗细进行打标,作为指导yolov7模型训练的标签的步骤包括:

8、根据毛囊口头发数量的多少,将只有单根头发打标成p1、将有两根头发打标成p2、将有多根头发打标成p3;

9、依据头发的根部与毛囊紧密相连,具有很好的辨识度的原则,将毛囊口视为靶点只对头发根部进行打标。

10、进一步地,yolov7模型包括主干网络、特征金字塔网络和头部网络,将待检测图像输入至训练好的yolov7模型,经过训练好的yolov7模型来提取待检测图像的特征以预测检测框的位置的步骤包括:

11、主干网络是yolov7模型的主干特征提取网络,通过主干网络对输入的图片进行特征提取,生成特征层,这些特征层是输入图片的特征集合;在主干部分,输出三个有效特征层,并用于构建下一步网络结构;

12、特征金字塔网络是yolov7模型的加强特征提取网络,对主干部分获得的三个有效特征层进行特征融合,目的是结合不同尺度的特征信息;对特征金字塔网络部分,已获得的有效特征层被用于进一步提取特征,既进行上采样实现特征融合,也进行下采样实现特征融合;得到三个加强的有效特征层,每个加强的有效特征层都有宽、高和通道数,将特征图看作特征点的集合,每个特征点上有三个先验框,每个先验框都包含通道数个特征;

13、头部网络是yolov7模型的分类器与回归器,判断特征点上的先验框是否与物体对应。

14、进一步地,主干网络是yolov7模型的主干特征提取网络,通过主干网络对输入的图片进行特征提取,生成特征层,这些特征层是输入图片的特征集合;在主干部分,输出三个有效特征层,并用于构建下一步网络结构的步骤包括:

15、使用多分支堆叠模块,在多分支堆叠模块中,最终多分支堆叠模块的输入包含多个分支:多个卷积标准化模块和一个卷积标准化激活函数,四个特征层在堆叠后会再次进行一个卷积标准化模块的特征整合;卷积标准化模块的堆叠对应着密集的残差结构;

16、使用创新的过渡模块来进行下采样,创新的过渡模块存在左分支和右分支两个分支,左分支是一个步长为2x2的最大池化加一个1x1卷积;右分支是一个1x1卷积加一个卷积核大小为3x3、步长为2x2的卷积,左分支和右分支两个分支的结果在输出时会进行堆叠;

17、经过主干网络提取特征后输出三个有效特征层,这三个有效特征层分别位于中间层、中下层和底层,当输入图片的长、宽、通道数为(640,640,3)时,则三个有效特征层的shape分别为第一有效特征层feat1=(80,80,512)、第二有效特征层feat2=(40,40,1024)和第三有效特征层feat3=(20,20,1024)。

18、进一步地,特征金字塔网络是yolov7模型的加强特征提取网络,对主干部分获得的三个有效特征层进行特征融合,目的是结合不同尺度的特征信息;对特征金字塔网络部分,已获得的有效特征层被用于进一步提取特征,既进行上采样实现特征融合,也进行下采样实现特征融合;得到三个加强的有效特征层,每个加强的有效特征层都有宽、高和通道数,将特征图看作特征点的集合,每个特征点上有三个先验框,每个先验框都包含通道数个特征的步骤包括:

19、利用sppcspc对第三有效特征层feat3的特征层进行特征提取,获取p5;

20、对p5进行一次1x1卷积调整通道,然后进行上采样umsampling2d后再与第二有效特征层feat2进行一次卷积后的特征层进行结合,接着使用multi_concat_block进行特征提取获得p4,此时获得的特征层为(40,40,256);

21、对p4先进行一次1x1卷积调整通道,然后进行上采样umsampling2d后再与第一有效特征层feat1进行一次卷积后的特征层进行结合,接着使用multi_concat_block进行特征提取获得p3_out,此时获得的特征层为(80,80,128);

22、对p3_out的特征层进行一次transition_block卷积进行下采样,下采样后与p4堆叠,然后使用multi_concat_block进行特征提取p4_out,此时获得的特征层为(40,40,256);

23、对p4_out的特征层进行一次transition_block卷积进行下采样,下采样后与p5堆叠,然后使用multi_concat_block进行特征提取p5_out,此时获得的特征层为(20,20,512)。

24、进一步地,头部网络是yolov7模型的分类器与回归器,判断特征点上的先验框是否与物体对应的步骤包括:

25、对于每一个特征层利用一个卷积调整通道数,最终的通道数和需要区分的种类个数相关,在yolov7模型里,每一个特征层上每一个特征点存在三个先验框;

26、对于头发密度矩形框预测,类别分别有p1、p2和p3,最后维度为3x8=24,三个特征层的shape分别为(20,20,24)、(40,40,24)和(80,80,24),将24拆解为三个8,对应三个先验框的8个参数;前四个参数用于判断每一个特征点的回归参数,对应矩形框的中心点和宽高,回归参数调整后获得预测框;第五个参数是得分置信度,用于判断每一个特征点是否包含物体;最后三个参数用于判断每一个特征点所包含的物体种类;

27、对于头发粗细旋转框预测,类别有粗发和细发两种,对比矩形框除了预测输出,还增加了θ角度。

28、进一步地,根据头发位置特点,经过基于位置感知的迭代后处理来检测出漏检和错检的目标框的步骤包括:

29、使用降低得分置信度策略而非直接删除检测框,避免遮挡重叠头发因重叠面积过大而直接过滤;

30、根据同一毛囊口生长的多根头发往往是并排或者分叉的形式的原则,对于正常的头发并排与分叉的类型进行保留。

31、进一步地,根据头发位置特点,经过基于位置感知的迭代后处理来检测出漏检和错检的目标框的步骤包括:

32、检测yolov7模型生成的所有目标框及其置信度、以及它们的位置信息;

33、根据目标框的置信度,对所有的目标框进行降序排列,将置信度最高的目标框排在前面;

34、从置信度最高的目标框开始,依次处理每个目标框;

35、对于当前处理的目标框,计算它与后面所有目标框的重叠区域;

36、根据重叠区域的大小以及检测框中心点的距离,按照以下公式下调与当前目标框重叠的其他目标框的得分置信度,迭代置信度得分通过以下公式计算出:

37、

38、其中,score′为迭代置信度得分,score是置信度得分,iou是重叠面积,nmsth是阈值,d是重叠框之间的中心点距离,dmax是最大中心距离,α和β是用衡量权重的超参,分别取0.7和0.3;当重叠面积iou小于阈值nmsth时,得分保持不变;当重叠面积适中时,依照公式更新得分,重叠面积越大,中心点距离越远,得分就越低;当重叠面积较大时,将得分置为0直接丢弃;最后,将新得分仍大于得分阈值的检测框保留下来;

39、保留大于得分阈值的检测框,丢弃低得分检测框;

40、当所有检测框遍历完成后,终止迭代。

41、进一步地,依据头发密度和头发粗细指标设计头发评分映射,使用头发评分映射对基于位置感知的迭代检测结果进行评估,评估出头发健康状态的步骤包括:

42、根据头发密度和头发粗细指标设计一套头发健康评分映射机制;

43、选取年龄段30-45岁之间预脱发、脱发中和脱发严重的不同人群,分别采集其头顶、前额、左侧、右侧和后颈五个部位的照片;将所有图片输入yolov7模型得到头发密度检测结果p1、p2和p3,以及头发粗细检测结果粗发和细发检测框;若识别到正常人群头发总数多时,则p2和p3占比高,头发也更加稠密;若识别到一个人细发越多,则脱发就越严重,头发总数越多就越健康;

44、在头发密度和头发粗细经过求对数、开根和放缩操作后得到最终得分,根据分数评价的分布看出最终结果基本上呈现一个正态分布情况;将分布平均为六等分映射到0-6的头发健康评级,其中0-1分为严重、1-3分为中度、3-5分为轻度,5-6为适中良好;严重阈值得分为评级1所在的得分、中度阈值得分为评级3所在的得分,轻度阈值得分为评级5所在的得分;将每次新拍摄的图片结果依照检测结果所计算的得分和阈值得分之间的对比映射到对应的评级上。

45、进一步地,依据头发密度和头发粗细指标设计头发评分映射,使用头发评分映射对基于位置感知的迭代检测结果进行评估,评估出头发健康状态的步骤中,头发密度通过以下公式计算出:

46、value密度=头发数量2/(毛囊数量+10-3)

47、其中,value密度表示头发密度;

48、头发数量通过以下公式计算出:

49、头发数量=p1+2*p2+3*p3

50、毛囊数量=p1+p2+p3

51、其中,p1表示一个毛囊口只有一根头发的毛囊数量,p2表示一个毛囊口有两根头发的毛囊数量,p3为一个毛囊口有大于等于三根头发的毛囊数量;

52、头发粗细通过以下公式计算出:

53、value粗细=1-0.75*细发占比-0.25*细发数量

54、其中,value粗细表示头发粗细。

55、本发明所取得的有益效果为:

56、本发明提供一种基于yolov7的头发检测方法,通过基于毛囊口作为靶点对头发密度和粗细进行打标,作为指导yolov7模型训练的标签;将待检测图像输入至训练好的yolov7模型,经过训练好的yolov7模型来提取待检测图像的特征以预测检测框的位置;根据头发位置特点,经过基于位置感知的迭代后处理来检测出漏检和错检的目标框;依据头发密度和头发粗细指标设计头发评分映射,使用头发评分映射对基于位置感知的迭代检测结果进行评估,评估出头发健康状态。本发明提供的基于yolov7的头发检测方法,通过头发检测可以帮助评估个人的整体健康状况;头发的质量和外观可以反映出某些健康问题,如营养不良、激素失衡、免疫系统问题等;通过检测头发,可以发现一些潜在的健康风险,并及早采取适当的措施;基于yolov7的头发检测算法不仅能解决传统方法的诸多弊端,节省人力成本,而且还具有较好的准确性和稳定性,具有很好的实用价值。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1