基于机器学习的教室课桌检测方法与流程

文档序号:24753276发布日期:2021-04-21 00:00阅读:206来源:国知局
基于机器学习的教室课桌检测方法与流程

1.本发明属于人工智能领域,涉及一种基于机器学习的教室课桌检测方法。


背景技术:

2.随着机器学习的发展,尤其是深度学习的发展,一些传统计算机视觉解决不了的问题得到解决,一些传统视觉效果不够的方面也得到了很大提高。目前课堂数据大都依靠人力来统计计算,例如课堂就座率、学生逃课情况、学生对课程的兴趣度等,根据这些课堂数据可以改进教学质量,帮助老师家长更好地改善学生学习。但是依靠人力不仅耗时费力,还有更大的错误可能性,如果能利用机器学习和深度学习计算机视觉方法,解决教育场景中自动检测教室课桌的位置,实现一定程度的自动化和智能化分析课堂情况,将是非常有益的。


技术实现要素:

3.发明目的:本发明所要解决的技术问题是针对现有技术的不足,提供一种基于机器学习的教室课桌检测方法。
4.为了解决上述技术问题,本发明公开了一种基于机器学习的教室课桌检测方法,包括以下步骤:
5.步骤1:训练出检测课桌的深度学习目标检测模型,并检测出输入图像i
input
中每个课桌的包围盒,记所有课桌的包围盒集合为b
input
;所述图像i
input
为有多排课桌的教室场景;
6.步骤2:利用直线检测算法检测出图像i
input
中所有直线;
7.步骤3:对检测出的直线,利用聚类算法计算出教室主方向,所述教室主方向为课桌横向排列的方向;
8.步骤4:利用步骤3得到的教室主方向,对步骤1得到的包围盒集合b
input
进行仿射变换,得到旋转后的包围盒集合b
rotate

9.步骤5:利用步骤3得到的教室主方向,对图像i
input
进行仿射变换,得到旋转后的图像i
rotate

10.步骤6:对步骤4得到的包围盒集合b
rotate
执行聚类算法,得到多个包围盒聚类簇;
11.步骤7:对于步骤6得到的聚类簇,计算聚类中心之间的差值和阙值,并合并聚类簇,合并后的聚类簇中每个聚类簇的包围盒是同排课桌的包围盒;
12.步骤8:对于步骤7得到的合并后的聚类簇,根据需要取出连续多排课桌的包围盒,记取出的连续多排课桌的包围盒集合为b
multirow
;由于各个教室大小不同,课桌排数不同,根据需要取出连续多排课桌的包围盒能够灵活选取教室中某几排课桌进行动态检测,自适应性较强;
13.步骤9:计算区域包围盒b
mf
,区域包围盒b
mf
能够包含步骤8中的连续多排课桌包围盒集合b
multirow
中所有的包围盒;
14.步骤10:将步骤9得到的区域包围盒b
mf
绘制在步骤5得到的图像i
rotate
上,获得包含区域包围盒b
mf
的图像i
rotate

mf

15.步骤11:利用步骤3得到的教室主方向,对步骤10获得的图像i
rotate

mf
做逆仿射变换,得到结果图像i
result

mf

16.可选地,步骤1包括如下步骤:
17.步骤1

1:利用爬虫技术,从网络下载足量教室课桌图像;
18.步骤1

2:利用图像标注工具对步骤1

1获得的教室课桌图像标注课桌,将标注后的教室课桌图像作为检测课桌的深度学习目标检测模型的学习训练集,所述检测课桌的深度学习目标检测模型采用yolov4目标检测网络;
19.步骤1

3:构造yolov4目标检测网络,yolov4的主干网络采用cspdarknet53,脖颈网络采用路径聚合网络pan(path aggregation network),检测头部分采用yolo,主干网络用于通过连续地卷积和下采样提取图像的语义信息,脖颈网络针对图像中目标大小变化问题,构造出多个尺度的特征映射用于检测,同时融合了低层的较强细节、定位信息和高层的强语义,更有利于多种尺寸目标的检测,检测头部分用于生成所有包围盒,并执行非极大值抑制算法,去除单个目标的冗余包围盒,得到最终的检测结果;
20.步骤1

4:利用预训练权重初始化yolov4目标检测网络的主干网络,其他部分按需初始化;
21.步骤1

5:利用步骤1

2的训练集,对步骤1

4的yolov4目标检测网络模型进行训练,得到能够检测课桌目标的泛化模型;
22.步骤1

6:将图像i
input
输入至步骤1

5中的泛化模型,通过泛化模型检测出图像i
input
中的每个课桌,得到所有课桌的包围盒集合b
input

23.可选地,步骤2包括以下步骤:
24.步骤2

1:选择霍夫变换作为直线检测算法;
25.步骤2

2:利用步骤2

1中的霍夫变换,选择合适的参数值检测出图像i
input
中的直线,参数值设置要求过滤掉较多短直线,留下较多长直线;以图像i
input
左上角为原点建立坐标系,图像宽度方向为x轴,图像高度方向为y轴,直线的角度为直线与x轴的角度。图像i
input
中检测出的长直线大多是课桌横向棱的直线。
26.可选地,步骤3包括以下步骤:
27.步骤3

1:对步骤2中得到的直线执行k均值聚类算法,聚类的度量是直线的角度;得到不同角度的直线簇,角度相近的直线会聚集到一个直线簇里;
28.步骤3

2:选取直线数量最多的直线簇的聚类中心角度作为教室主方向,所述聚类中心角度为直线数量最多的直线簇中所有直线角度的平均值。
29.所述步骤3对步骤2中得到的直线执行k均值聚类算法是为了让能表示教室主方向的直线聚集到一个直线簇,不需要的直线聚集到其他直线簇。
30.可选地,步骤4中利用步骤3

2得到的教室主方向,对步骤1

6得到的包围盒集合b
input
中所有的包围盒进行仿射变换,使得同排课桌的包围盒中心大致位于一条水平线上,即仿射变换后,同排课桌的包围盒中心的纵坐标相近;所述水平线与图像坐标系x轴近似平行;对包围盒集合b
input
进行仿射变换有利于后续将同排课桌的包围盒聚集到一个簇里。
31.可选地,步骤5中利用步骤3

2得到的教室主方向,对图像i
input
进行仿射变换,得到
旋转后的图像i
rotate
,图像i
rotate
的教室主方向直线与坐标系x轴近似平行;对图像i
input
进行仿射变换有利于后续绘制区域包围盒。
32.可选地,步骤6中对步骤4得到的包围盒集合b
rotate
执行k均值聚类算法,聚类的度量是包围盒集合b
rotate
中包围盒中心的纵坐标,得到相应的课桌包围盒聚类簇。每一个包围盒聚类簇中的包围盒大部分是同排课桌的包围盒。
33.可选地,步骤7包括以下步骤:
34.步骤7

1:对步骤6得到的包围盒聚类簇,按照它们的聚类中心的大小进行降序排列,使得前排课桌的聚类簇靠前,后排课桌的聚类簇靠后;所述包围盒聚类簇的聚类中心指每个聚类簇中包围盒中心纵坐标的平均值;
35.步骤7

2:从第二个聚类簇开始顺序计算每个聚类簇与前一个聚类簇之间的聚类中心差值;
36.步骤7

3:计算这些差值的均值和标准差,并将阙值设置为均值和标准差的加权和;均值和标准差的加权系数依据实际场景应用的效果自行设置;
37.步骤7

4:从第二个聚类簇开始依次比较差值和阙值大小,如果差值小于阙值或者小于阙值一定范围,则判定这个聚类簇和前一个聚类簇属于同一个聚类簇,将这个聚类簇和前一个聚类簇合并为一个聚类簇,重新计算合并后的聚类簇的聚类中心;所述阙值一定范围根据实际场景应用的效果自行设置;
38.步骤7

5:重复执行步骤7

2~步骤7

4,获得合并后的所有聚类簇,合并后的所有聚类簇中每个聚类簇的包围盒是同排课桌的包围盒。
39.所述步骤7对步骤6计算得到的包围盒聚类簇进行合并是为了优化结果,减少同排课桌检测误差,因为在实际扭曲较严重的场景,即使旋转还是会有一定倾斜角度,造成同排被聚成两个聚类簇。
40.可选地,步骤9中计算区域包围盒b
mf
,包围盒b
mf
能够包含连续多排课桌包围盒集合b
multirow
中所有的课桌包围盒,记连续多排课桌包围盒集合b
multirow
中所有包围盒四个顶点中横坐标最小值为x
min
,横坐标最大值为x
max
,纵坐标最小值为y
min
,纵坐标最大值为y
max
,则区域包围盒b
mf
的四个顶点坐标分别为(x
min
,y
min
)、(x
min
,y
max
)、(x
max
,y
min
)和(x
max
,y
max
);
41.可选地,步骤1

2中的图像标注工具为labelimg工具。
42.有益效果:
43.1)本发明提供的方法利用机器学习和深度学习计算机视觉算法实现计算机自动检测课桌区域范围,无需人工处理,解决了人工分析不仅耗费人力,速度和准确程度也有限的问题,实现一定程度自动化和智能化地定位课桌位置;
44.2)本发明提供的方法执行速度较快,同时能够灵活选取连续多排课桌进行检测,自适应性较强;
45.3)本发明提供的方法有利于后续课堂情况分析,例如统计学生就座率、抬头率,分析学生对课堂兴趣程度进而改进教学方法等。这对于教务员分析学生上课情况,从而帮助改进教学方案、提高学生上课质量有很大帮助。
附图说明
46.下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述
和/或其他方面的优点将会变得更加清楚。
47.图1为本发明实施例部分提供的的方法流程图;
48.图2为本发明实施例部分提供的深度学习目标检测网络yolov4的网络整体结构;
49.图3为本发明实施例部分提供的深度学习目标检测网络yolov4的子模块结构图;
50.图4为本发明实施例部分提供的使用k均值聚类算法得出的教室主方向直线;
51.图5为本发明实施例部分提供的教室前三排区域包围盒结果图像。
具体实施方式
52.下面将结合附图和实施例对本发明作详细说明。
53.图1为本实施例的流程图,包括以下步骤:
54.步骤1:训练检测课桌的深度学习目标检测模型,并检测出输入图像i
input
中每个课桌的包围盒,记所有课桌的包围盒集合为b
input
;所述图像i
input
为有多排课桌的教室场景,本实施例中图像i
input
为智慧教室场景。
55.步骤2:利用直线检测算法检测出图像i
input
中所有直线。
56.步骤3:对检测出的直线,利用聚类算法计计算出教室主方向,所述教室主方向定义为课桌横向排列的方向,如图4所示为得出的教室主方向的效果,本实施例绘制了若干黑色直线表示。
57.步骤4:利用步骤3得到的教室主方向,对步骤1得到的包围盒集合b
input
进行仿射变换,这里也就是作旋转,得到旋转后的包围盒集合b
rotate

58.步骤5:利用步骤3得到的教室主方向,对图像i
input
进行仿射变换,这里也就是得到旋转后的图像i
rotate

59.步骤6:对步骤4得到的包围盒集合b
rotate
执行k均值聚类算法,得到多个包围盒聚类簇,同个包围盒聚类簇中的目标大部分是同一排的课桌。
60.步骤7:对于步骤6得到的聚类簇,计算聚类中心之间的差值和阙值,并合并聚类簇,合并后的聚类簇中每个聚类簇的包围盒是同排课桌的包围盒。
61.步骤8:对于步骤7得到的合并后的聚类簇,根据需要取出连续多排课桌的包围盒,记取出的连续多排课桌的包围盒集合为b
multirow
。本实施例中,取出前三排课桌的包围盒。
62.步骤9:计算一个区域包围盒b
mf
,能够包含步骤8中的前三排课桌包围盒集合b
multirow

63.步骤10:将步骤9得到的区域包围盒b
mf
绘制在步骤5得到的图像i
rotate
上,获得包含区域包围盒b
mf
的图像i
rotate

mf

64.步骤11:利用步骤3得到的教室主方向,对步骤10获得的图像i
rotate

mf
做逆仿射变换,得到结果图像i
result

mf
,如图5所示为最终的效果图,黑色包围盒是区域包围盒b
mf
经过逆仿射变换得到的结果。
65.本实施例中,步骤1包括如下步骤:
66.步骤1

1:利用爬虫技术,从网络下载足量教室场景课桌图像,本实施例中下载2000多张教室课桌图片。
67.步骤1

2:利用图像标注工具对步骤1

1获得的教室课桌图像标注课桌,将标注后的教室课桌图像作为检测课桌的深度学习目标检测模型的学习训练集,这里利用labelimg
工具进行标注,它是一种标注训练图像的包围盒的工具,直接可以百度搜索下载。所述检测课桌的深度学习目标检测模型采用yolov4目标检测网络。
68.步骤1

3:构造yolov4目标检测网络,yolov4目标检测网络总体结构如图2所示。yolov4的主干采用cspdarknet53,脖颈采用路径聚合网络pan,检测头采用yolo,分别如图2中上、左下和右下虚线框框出的结构。其中主干网络用于通过连续地卷积和下采样操作提取图像的语义信息,脖颈部分针对图像中目标大小变化问题,构造出多个尺度的特征映射用于检测,同时融合了低层的高精度和高层的强语义更有利于检测,检测头是网络的检测头部分,用于生成网络的包围盒,并执行非极大值抑制算法,去除单个目标的冗余包围盒,得到最终的检测结果。yolov4目标检测网络包含了一些子模块,子模块的结构如图3所示,yolov4目标检测网络是相似或者相同的子结构组成。
69.第一卷积块的cbm代表卷积、批归一化和mish激活函数三个部分组成的一个子结构。
70.第二卷积块的cbl代表卷积、批归一化和leaky激活函数三个部分组成的一个子结构。空间金字塔池化spp(spatial pyramid pooling)代表多种池化窗口池化操作组成的子模块。残差单元res_unit代表第一卷积块跳跃连接组成的残差子模块。残差块主体resn代表第一卷积块和若干残差单元组成的子模块。跨阶段局部块主体cspn代表零填充、第一卷积块和接合操作组成的子模块。
71.步骤1

4:利用预训练权重初始化yolov4目标检测网络的主干网络,许多的深度学习目标检测模型的主干网络是使用在imagenet图像分类数据集上预训练后的参数初始化的,这样在数据集和时间有限情况下更容易获得较好效果。其余部分按需初始化。
72.步骤1

5:利用步骤1

2的训练集,对步骤1

4的yolov4目标检测网络模型进行训练,得到能够检测未用来训练的图像内课桌目标的可用泛化模型。
73.步骤1

6:将图像i
input
输入至步骤1

5中的泛化模型,通过泛化模型检测出图像i
input
中的课桌,得到一系列框住图像中桌子的包围盒,包围盒集合记为b
input

74.本实施例中,步骤2包括以下步骤:
75.步骤2

1:选择合适的直线检测方法,这里使用霍夫变换,用于检测出图像i
input
中所有直线。
76.步骤2

2:利用步骤2

1中的霍夫变换,选择合适的参数值检测出图像i
input
中的直线,参数值设置要求过滤掉较多短直线,留下较多长直线。这样后面留下的大多是桌子的棱的直线。霍夫变换的参数值依据实际场景效果自行设置。
77.本实施例中,步骤3包括以下步骤:
78.步骤3

1:对步骤2中得到的直线执行k均值聚类算法,聚类的度量是直线的角度,得到不同角度的直线簇,角度相近的直线会聚集到一个直线簇里。
79.步骤3

2:由于图像中主要是课桌,并且前面还做了阙值过滤掉杂短直线,这里剩下大多为桌子棱的直线,这里选取直线数量最多的直线簇的聚类中心角度作为主方向,用于后续对包围和原图像进行旋转操作。所述聚类中心角度为直线数量最多的直线簇中所有直线角度的平均值。
80.本实施例中,步骤4中利用步骤3

2得到的教室主方向,对步骤1

6得到的包围盒集合b
input
进行仿射变换,这里是旋转操作,使得同排课桌的包围盒中心大致位于一条水平线
上,在图像坐标中,也就是它们的纵坐标相近,这样后续聚类时,纵坐标相近会聚集成一个簇。
81.本实施例中,步骤5中利用步骤3

2得到的教室主方向,对图像i
input
进行仿射变换,这里是旋转操作,得到旋转后的图像i
rotate
,图像i
rotate
的教室主方向直线与坐标系x轴近似平行。
82.本实施例中,步骤6中对步骤4得到的包围盒集合b
rotate
执行k均值聚类算法,聚类的度量是包围盒集合b
rotate
中包围盒中心的纵坐标,得到相应的课桌包围盒聚类簇,由于同一排纵坐标相近,会被聚集到同一个聚类簇里。
83.本实施例中,步骤7方法包括以下步骤:
84.步骤7

1:对步骤6得到的包围盒聚类簇,按照聚类中心的大小降序排列,使得前排课桌的簇靠前,后排课桌簇靠后;所述包围盒聚类簇的聚类中心指每个聚类簇中包围盒中心纵坐标的平均值;
85.步骤7

2:从第二个聚类簇开始顺序计算每个聚类簇与前一个聚类簇之间的聚类中心差值;
86.步骤7

3:计算这些差值的均值和标准差,并将阙值设置为均值和标准差的加权和,可以调试出合适的加权权值,使结果更加鲁棒;本实施例中,均值的加权系数为1,标准差的加权系数为0.25;
87.步骤7

4:从第二个聚类簇开始依次比较差值和阙值大小,如果差值小于阙值或者小于阙值一定范围,则判定这个聚类簇和前一个聚类簇属于同一个聚类簇,将这个聚类簇和前一个聚类簇合并为一个聚类簇,重新计算合并后的聚类簇的聚类中心;
88.步骤7

5:重复执行步骤7

2~步骤7

4,获得合并后的所有聚类簇,合并后的所有聚类簇中每个聚类簇的包围盒是同排课桌的包围盒。本实施例中,后续选取前三排课桌包围盒进行处理,因此从第四个聚类簇开始剩下的聚类簇无需执行此步骤。
89.本实施例中,步骤9中计算区域包围盒b
mf
,其可以包含连续多排课桌包围盒集合b
multirow
中所有的课桌包围盒,记连续多排课桌包围盒集合b
multirow
中所有包围盒四个顶点中横坐标最小值为x
min
,横坐标最大值为x
max
,纵坐标最小值为y
min
,纵坐标最大值为y
max
,则区域包围盒b
mf
的四个顶点坐标分别为(x
min
,y
min
)、(x
min
,y
max
)、(x
max
,y
min
)和(x
max
,y
max
)。
90.本发明提供了一种基于机器学习的教室课桌检测方法,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部分均可用现有技术加以实现。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1