一种基于计算机视觉技术的助盲打车方法

文档序号:31208818发布日期:2022-08-20 03:09阅读:154来源:国知局
一种基于计算机视觉技术的助盲打车方法

1.本发明属于计算机视觉领域,尤其涉及一种基于计算机视觉技术的助盲打车方法。


背景技术:

2.网约车是现代人出行较流行的方式,但是视障用户由于无法获取户外的情况不能判断网约车的位置,需要和司机描述上车点与自身的穿着并自行前往找车,沟通成本较大。尤其在通畅路况下车流量较大,车牌被拍到的概率降低,现有检测算法需要检测所有车辆车牌,导致实时性较低可能会遗漏目标车,并且对于新能源车牌识别不准确。


技术实现要素:

3.本发明的目的在于针对现有技术中缺少能够帮助视障用户快捷寻找预约的目标车辆的手机软件,同时通畅路况下的检测识别算法实时性不够、车牌会被遮挡、新能源车牌识别不准确的不足,提供一种基于计算机视觉技术的助盲打车方法。本发明方法部署在微信小程序平台。
4.本发明的目的是通过以下技术方案来实现的:一种基于计算机视觉技术的助盲打车方法,包括:
5.s110:通过websocket协议和微信小程序获取当前用户路况;
6.s120:利用计算机视觉技术得到车辆坐标进行车辆跟踪并为每辆车标定唯一id;
7.s130:利用计算机视觉技术获取一定帧数车牌坐标计算车辆高度;
8.s140:通过车辆跟踪框和单目相机相似三角形原理得出人与车辆的距离、车辆的行驶速度。
9.s150:根据车辆的行驶速度筛选出需要进行车牌检测、车牌识别的车辆跟踪框。
10.s160:通过ocr技术得到车牌的坐标以及车牌号找到目标车辆。
11.s170:通过websocket协议将目标车辆id对应的车辆信息反馈给用户。
12.进一步地,步骤s110中,通过websocket协议和微信小程序获取当前用户路况,具体包括:
13.s1101:微信小程序前端和算法服务端通过websocket协议建立一个长连接,为实时性图片传输做准备。
14.s1102:微信小程序前端通过监听手机相机的实时帧并转换为base64格式字符串传输到算法服务端。
15.s1103:算法服务端对base64进行解码转换为图片,该图片即当前用户的具体路况图。
16.进一步地,步骤s120中,利用计算机视觉技术得到车辆坐标进行车辆跟踪并为每辆车标定唯一id,具体包括:
17.s1201:使用yolov5模型在coco数据集上的预训练模型f
car
对待检测的路况图片进
行车辆检测,并通过置信度筛选得到n个车辆的坐标集合
18.s1202:使用deepsort算法对中的车辆检测框进行跟踪,为每一个进入画面的车辆分发一个唯一id,并在之后的跟踪框中以同一个id出现,得到车辆集合车辆分发一个唯一id,并在之后的跟踪框中以同一个id出现,得到车辆集合并且根据分割得到对应的车辆子图集合
19.s1203:若该车辆id上一帧已经出现则会保留上一帧的车辆信息,得到上一帧车辆集合
20.进一步地,步骤s130中,利用计算机视觉技术获取一定帧数车牌坐标计算车辆高度,具体包括:
21.s1301:定义真实车辆高度h
car
={(id1,h1)

(idn,hn)},其中每一对(id
x
,h
x
)∈h
car
中的h
x
初始值默认使用小轿车的普遍高度1.4米(网约车大多为小轿车)。
22.s1302:对ccpd数据集上的车牌集合分为训练集、验证集和测试集,使用yolov5模型在该数据集上进行训练,得到能够提取车牌信息的预训练模型f
lp

23.s1303:对车辆子图集合有条件得进行车牌检测,得到车牌检测的集合对应得到进行了车牌检测后需要进行车牌识别的车牌子图集合条件为:对于车辆子图若其对应的车辆id
x
是被检测到的前k帧则进行车牌检测;否则不检测。
24.s1304:通过单目相机相似三角形原理有连等关系:真实车辆高度/图片车辆高度=人车距离(忽略人车牌距离与人车距离误差)/相机焦距=真实车牌高度/图片车牌高度。通过连等关系得出公式:真实车辆高度=真实车牌高度/图片车牌高度*图片车辆高度,通过车牌集合d和车辆集合中的h的比值得到车牌图片高度和车辆图片高度之比,中国真实车牌高度普遍为14厘米,根据公式便可得到真实车辆高度,更新真实车辆高度集合h
car
={(id1,h1)

(id1,hn)}。每一辆新进入视野的车辆进行k次车辆高度更新得到一个较为稳定准确的值。
25.进一步地,步骤s140中,通过车辆跟踪框和单目相机相似三角形原理得出人与车辆的距离、车辆的行驶速度,具体包括:
26.s1401:使用一种基于单目相机相似三角形原理的几何方法得出微信小程序中手机摄像头的焦距。
27.s1402:根据真实车辆高度集合h
car
={(id1,h1)

(idn,hn)}以及车辆集合)}以及车辆集合得到车辆真实高度与图片车辆高度比值,将车辆高度作为真实物体高度带入基于单目相机相似三角形原理的公式:相机与物体实际距离=(焦距*物体实际高度)/图片高度,得出人与车辆的距离集合d
car
={(id1,d1)

(idn,dn)}。(由于车牌可能会被前车或其他物体遮挡,得出真实车辆高度后便不需要通过车牌作为真实物体高度来进行距离测量)。
28.s1403:使用一种基于单目相机相似三角形原理的几何方法可以解决拍摄视角变
化问题得出车辆实际在车道方向上行驶的距离。再通过后台接收两帧之间的时间差计算得出车辆的行驶速度。
29.进一步地,步骤s1401中,基于单目相机相似三角形原理的几何方法得出微信小程序中手机摄像头的焦距,具体包括:
30.(1)使用微信小程序,手机竖直放置,拍摄正前方任意一个已知高度且竖直的物体。
31.(2)通过传到后台的图片获得该物体的像素值并通过dpi转换为厘米单位(手机相机的畸变很小基本不需要矫正,如果想更精确也可通过标定板得到图片物体高度)。
32.(3)量取手机和物体之间的实际距离。
33.(4)根据基于单目相机相似三角形原理的公式:焦距=(相机与物体实际距离*图片高度)/物体实际高度,将上述值代入后得到微信小程序中相机焦距(使用高度的原因是因为宽度会因为相机将3d变为2d损失深度,导致准确度降低,高度形变较小)。
34.进一步地,步骤s1403中,基于单目相机相似三角形原理的几何方法可以解决拍摄视角变化问题得出车辆实际在车道方向上行驶的距离,具体包括:
35.(1)根据人车距离集合d
car
={(id1,d1)

(idn,dn)},设上一帧中人车距离为d
last
,d
last
在相机拍摄视角中心水平方向的分量记作b
last
,在相机拍摄视角中心垂直方向的分量记作a
last
,同理得出当前帧的人车距离为d
now
,d
now
在相机拍摄视角中心水平方向的分量记作b
now
,在相机拍摄视角中心垂直方向的分量记作a
now

36.(2)两帧都位于视角中线左边或者右边的时候,根据几何原理可以证明车辆在道路行驶距离与拍摄视角无关,行驶距离为
37.(3)两帧中一帧位于视角中线左边,另一帧位于视角中线右边的时候,根据几何原理可以证明车辆在道路行驶距离与拍摄视角无关,行驶距离为:
38.进一步地,步骤s150中,根据车辆的行驶速度筛选出需要进行车牌检测、车牌识别的车辆跟踪框,具体包括:
39.s1501:当车速高于一定阈值的时候认为该车行驶过快,是目标车的概率较小且车速过快时车牌肯定也很模糊无法识别,再调用识别模型会浪费时间,便不进行ocr操作。
40.s1502:对车辆集合筛选出车速在正常范围内需要进行车牌检测、车牌识别的车辆子图集合
41.s1503:当车速低于一定阈值则认为该车已经停止;若是目标车,则可以通知该车的距离、停止状态给用户,让用户根据提示主动去寻找。
42.进一步地,步骤s160中,通过ocr技术得到车牌的坐标以及车牌号找到目标车辆,具体包括:
43.s1601:对于车辆子图集合中每一个子图使用f
lp
车牌检测,更新车牌集合从而更新车牌子图集合同时使用s1304的方法对真实车辆高度集合h
car
={(id1,h1)

(idn,hn)}进行更新。
44.s1602:在大规模公开icdar2013数据集中训练文本检测、文本识别模型,预训练得到f
dbnet
和f
crnn
模型。
45.s1603:对于车牌子图集合中每一个子图使用f
dbnet
模型进行文本检测,同时使用f
crnn
对切割出来的文本检测框进行文本识别,得到文本内容集合对切割出来的文本检测框进行文本识别,得到文本内容集合
46.s1604:这边使用了一种基于面积比例的车牌识别文本筛选方法,对文本内容集合进行筛选拼接得到最后的车牌号码结果其中若找到与目标车牌号相同则将该车id设为目标id。
47.进一步地,步骤s1604中,基于面积比例的车牌识别文本筛选方法,具体包括:
48.(1)由于新能源绿牌省份字母和后面6个字符间隔较远,有时会被作为两个文本检测框,并且绿牌上会有小字,会再多出现一个检测框。
49.(2)通过筛选文字识别结果中检测域最大的两块,将最大面积和第二大作比值,若比值超过阈值t,表明第二大面积是被检测出来的小字则直接忽略;若比值未超过阈值t,表明能源绿牌省份字母和后面6个字符被分开识别,将其合并为最后结果。
50.进一步地,步骤s170中,通过websocket协议将目标车辆id对应的车辆信息反馈给用户,具体包括:
51.s1701:找到目标车后就不需要再通过车牌识别了,只需要跟踪目标id同时统计该车辆的行驶方向、位于视野的左右方位、车辆的停止状态等信息作为结果r。
52.s1702:将结果r以字符串形式通过算法服务端的websocket协议传输给微信小程序前端,前端收到结果r后以语音的方式与用户交互。
53.本发明的有益效果是:本发明中基于单目相机相似三角形原理的几何方法可以解决拍摄视角变化问题得出车辆实际在车道方向上行驶的距离,更准确的得出车辆行驶速度判断车辆的停止状态反馈用户。本发明中基于面积比例的车牌识别文本筛选方法,可以解决新能源车牌的识别问题。本发明筛选可能目标车辆减少车牌检测、车牌识别的次数,加快整体识别的速度,不会因为延迟导致车辆未被识别。本发明通过微信小程序平台提供目标车辆的状态,帮助视障用户解决在日常打车中最后10m寻找目标网约车的困难,解决了现有技术实时性不足、车牌会被遮挡、新能源车牌识别不准以及助盲打车软件空缺的问题。
附图说明
54.图1是本发明基于计算机视觉技术的助盲打车方法的流程图。
具体实施方式
55.下面结合附图和实施例对本发明进一步说明。这些附图均为简化的示意图,仅以示意方式说明本发明的基本结构,因此其仅显示与本发明有关的构成。
56.如图1所示,本发明一种基于计算机视觉技术的助盲打车方法,包括以下步骤:
57.s110:通过websocket协议和微信小程序,获取当前用户路况。包括:
58.s1101:微信小程序前端和算法服务端通过websocket协议建立一个长连接,为实时性图片(视频)传输做准备。
59.s1102:微信小程序前端通过监听手机相机的实时帧并转换为base64格式字符串传输到算法服务端。
60.s1103:算法服务端对base64进行解码转换为图片,该图片即用户的当前具体路况图。
61.s120:利用计算机视觉技术得到车辆坐标进行车辆跟踪,并为每辆车标定唯一id。包括:
62.s1201:使用yolov5模型在coco数据集上的预训练模型f
car
,对待检测的路况图片进行车辆检测,并通过置信度筛选得到n个车辆的坐标集合其中,设置置信度阈值,保留置信度满足要求的模型f
car
预测结果。为车辆x检测框中心点的坐标,为车辆x检测框的宽、高,x=1~n。
63.s1202:使用deepsort算法,对中的车辆检测框进行跟踪,为每一个进入画面的车辆分发一个唯一id,并在之后的跟踪框中以同一个id出现,得到车辆集合的车辆分发一个唯一id,并在之后的跟踪框中以同一个id出现,得到车辆集合id
x
为车辆x的id;并且根据分割得到对应的车辆子图集合的车辆子图集合为车辆x的车辆子图。
64.s1203:若该车辆id在上一帧已经出现,则会保留上一帧的车辆信息,得到上一帧车辆集合根据前后两帧的车辆检测框中心位置的变化得到车辆行驶的方向。
65.s130:利用计算机视觉技术获取一定帧数车牌坐标,计算车辆高度。包括:
66.s1301:定义真实车辆高度h
car
={(id1,h1)

(idn,hn)},其中每一对(id
x
,h
x
)∈h
car
中的车辆x高度h
x
初始值默认使用小轿车的普遍高度1.4米(网约车大多为小轿车)。
67.s1302:将ccpd数据集上的车牌集合分为训练集、验证集和测试集,使用yolov5模型在该数据集上进行训练,得到能够提取车牌信息的预训练模型f
lp

68.s1303:对车辆子图集合有条件地进行车牌检测,得到车牌集合对应得到进行了车牌检测后需要进行车牌识别的车牌子图集合n
γ
≤n,为车辆x的车牌子图;为车辆x的车牌检测框中心点的坐标,为车辆x的车牌检测框的宽、高。其中,条件为:对于车辆子图若其对应的车辆id
x
是被检测到的前k帧则进行车牌检测,即车辆x第一次被检测到的帧与当前帧之差小于k帧则对当前帧进行车牌检测;否则不检测。
69.s1304:通过单目相机相似三角形原理有连等关系:真实车辆高度/图片车辆高度=人车距离(忽略人车牌距离与人车距离误差)/相机焦距=真实车牌高度/图片车牌高度。通过连等关系得出公式:真实车辆高度=真实车牌高度/图片车牌高度*图片车辆高度。通过车牌集合d和车辆集合中对应车辆的h的比值,得到车牌图片高度和车辆图片高度之比。中国真实车牌高度普遍为14厘米,根据上式便可得到真实车辆高度,更新真实车辆高度集合h
car
={(id1,h1)

(idn,hn)}。
70.每一辆新进入视野的车辆进行k次车辆高度更新,得到一个较为稳定准确的车辆
高度值。具体地,根据步骤s1303,新进入视野的车从被检测到的那帧起,往后的k帧都会进行车牌检测;对应地一次车牌检测更新一次车辆高度,保证每辆车k次车牌检测,则可以更新车辆高度k次。
71.s140:通过车辆跟踪框和单目相机相似三角形原理得出人与车辆的距离、车辆的行驶速度。
72.s1401:使用一种基于单目相机相似三角形原理的几何方法,得出微信小程序中手机摄像头的焦距。包括:
73.(1)使用微信小程序,手机竖直放置,拍摄正前方任意一个已知高度且竖直的物体。
74.(2)通过传到后台的图片获得该物体的像素值并通过dpi转换为厘米单位,得到物体高度。手机相机的畸变很小基本不需要矫正,如果想更精确也可通过标定板得到图片中的物体高度。
75.(3)量取手机和物体之间的实际距离。
76.(4)根据基于单目相机相似三角形原理的公式:焦距=(相机与物体实际距离*图片高度)/物体实际高度。将上述值代入后得到微信小程序中相机焦距。使用高度的原因是因为宽度会因为相机将3d变为2d损失深度,导致准确度降低,高度形变较小。
77.s1402:根据当前的真实车辆高度集合h
car
={(id1,h1)

(idn,hn)}以及车辆集合得到车辆真实高度与图片车辆高度比值,将车辆高度作为真实物体高度,带入基于单目相机相似三角形原理的公式:相机与物体实际距离=(焦距*物体实际高度)/图片高度,得出人与车辆的距离集合d
car
={(id1,d1)

(idn,dn)}。d
x
为人与车辆x的距离。由于车牌可能会被前车或其他物体遮挡,得出真实车辆高度后便不需要通过车牌作为真实物体高度来进行距离测量。
78.s1403:使用一种基于单目相机相似三角形原理的几何方法,可以解决拍摄视角变化问题得出车辆实际在车道方向上行驶的距离。再通过后台接收两帧(当前帧与上一帧)之间的时间差计算得出车辆的行驶速度。包括:
79.(1)根据人车距离集合d
car
={(id1,d1)

(idn,dn)},设上一帧中人车距离为d
last
,d
last
在相机拍摄视角中心水平方向的分量记作b
last
,在相机拍摄视角中心垂直方向的分量记作a
last
,同理得出当前帧的人车距离为d
now
,d
now
在相机拍摄视角中心水平方向的分量记作b
now
,在相机拍摄视角中心垂直方向的分量记作a
now

80.(2)两帧都位于视角中线左边或者右边的时候,根据几何原理可以证明车辆在道路行驶距离与拍摄视角无关,行驶距离为:
81.(3)两帧中一帧位于视角中线左边,另一帧位于视角中线右边的时候,根据几何原理可以证明车辆在道路行驶距离与拍摄视角无关,行驶距离为:
82.s150:根据车辆的行驶速度筛选出需要进行车牌检测、车牌识别的车辆跟踪框。包括:
83.s1501:当车速高于预设的行驶阈值的时候认为该车行驶过快,是目标车的概率较小且车速过快时车牌肯定也很模糊无法识别,再调用识别模型会浪费时间,便不进行ocr操
作。
84.s1502:对车辆集合筛选出车速在正常范围内需要进行车牌检测、车牌识别的车辆子图集合n
β
≤n,为车辆x的车牌子图;正常范围指不超过行驶阈值。
85.s1503:当车速低于预设的停止阈值则认为该车已经停止。
86.s160:通过ocr技术,得到车牌的坐标以及车牌号,找到目标车辆。包括:
87.s1601:对于车辆子图集合中每一个子图使用f
lp
车牌检测,更新车牌集合从而更新车牌子图集合nd≤n;同时使用步骤s1304的方法对真实车辆高度集合h
car
={(id1,h1)

(idn,hn)}进行更新。
88.s1602:在大规模公开icdar2013数据集中,训练文本检测、文本识别模型,预训练得到f
dbnet
和f
crnn
模型。
89.s1603:对于当前的车牌子图集合中每一个子图使用f
dbnet
模型进行文本检测,同时使用f
crnn
对切割出来的文本检测框进行文本识别,得到文本内容集合n
t
≥nd。
90.s1604:这边使用了一种基于面积比例的车牌识别文本筛选方法,对文本内容集合进行筛选拼接得到最后的车牌号码结果包括:
91.(1)由于新能源绿牌省份字母和后面6个字符间隔较远,有时会被作为两个文本检测框,并且绿牌上会有小字,会再多出现一个检测框。
92.(2)通过筛选文字识别结果中检测域最大的两块,将最大面积和第二大作比值,若比值超过阈值t,表明第二大面积是被检测出来的小字则直接忽略;若比值未超过阈值t,表明能源绿牌省份字母和后面6个字符被分开识别,将其合并为最后结果。
93.s170:通过websocket协议,将目标车辆id对应的车辆信息反馈给用户。包括:
94.s1701:对实时获取的每一帧路况图片循环执行步骤s120~s160,直到某一帧中找到目标车辆。具体地,某一帧的车牌号码结果中存在与目标车辆车牌号相同的车辆,表示找到目标车辆,该车id为目标车辆id。
95.s1702:找到目标车辆后就不需要再进行车牌识别了,只需要跟踪目标id同时统计该车辆的行驶方向、位于视角中线的左右方位、车辆的停止状态等信息作为结果r。其中,目标车辆的停止状态的行驶方向根据步骤s1203获得,目标车辆的停止状态由根据步骤s1403获得的行驶速度并根据步骤s1503判断得到。
96.s1703:当某一帧中发现目标车为停止状态时,将结果r以字符串形式通过算法服务端的websocket协议传输给微信小程序前端,前端收到结果r后以语音的方式与用户交互;具体地,将该车停止的状态以及该车与人之间的距离反馈给用户,让用户根据提示主动去寻找。
97.综上,本发明一种基于计算机视觉技术的助盲打车方法,通过websocket协议和微信小程序获取当前用户路况;利用计算机视觉技术得到车辆坐标进行车辆跟踪并为每辆车标定唯一id;利用计算机视觉技术获取一定帧数车牌坐标计算车辆高度;通过车辆跟踪框和单目相机相似三角形原理得出人与车辆的距离、车辆的行驶速度;根据车辆的行驶速度
筛选出需要进行车牌检测、车牌识别的车辆跟踪框;通过ocr技术得到车牌的坐标以及车牌号找到目标车辆;通过websocket协议将目标车辆id对应的车辆信息反馈给用户。本发明提出一种基于单目相机相似三角形原理的几何方法可以解决拍摄视角变化问题得出车辆实际在车道方向上行驶的距离,更准确的得出车辆行驶速度判断车辆的停止状态反馈用户;本发明提出一种基于面积比例的车牌识别文本筛选方法,解决新能源车牌的识别问题;本发明筛选可能目标车辆减少车牌检测、车牌识别的次数,加快整体识别的速度,不会因为延迟导致车辆未被识别;算法提供目标车辆的状态通过微信小程序平台帮助视障用户解决在日常打车中最后10m寻找目标网约车的困难。
98.以上述依据本发明的理想实施例为启示,通过上述的说明内容,相关工作人员完全可以在不偏离本项发明技术思想的范围内,进行多样的变更以及修改。本项发明的技术性范围并不局限于说明书上的内容,必须要根据权利要求范围来确定其技术性范围。
99.本发明并不限于上述实施方式,采用与本发明上述实施方式相同或近似的方式,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,均在本发明专利的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1