掌桥专利:专业的专利平台
掌桥专利
首页

基于图像识别的球形摄像机预置位偏移自动纠正系统

文献发布时间:2024-04-29 00:47:01


基于图像识别的球形摄像机预置位偏移自动纠正系统

技术领域

本发明涉及基于视频监控的业务软件技术领域,具体为一种基于图像识别的球形摄像机预置位偏移自动纠正的软件系统。

背景技术

球型摄像机是一种一体化球型摄像机,集成摄像机、云台、解码器、防护罩等功能于一体,其中云台是安装、固定摄像机的支撑设备,摄像机可以在电动云台的控制下进行上下左右的转动。目前球形摄像机已广泛应用于平安城市、机场、轨道交通、电力、教育、工业等行业,在具体的应用中,通常是预先设定好一定数量的预置位,并针对预置位进行监控。

但是在应用的过程中经常会出现云台转动到指定预置位时无法与最初设定的预置位视角完成重合,这种现象可以划分为两种情况:一是由于风吹等原因造成摄像头的抖动,导致抓拍的预置位照片与原预置位照片存在小幅度的随机的上下左右的偏移,在传统的视频监控应用中一般不需要处理,但是随着智能分析技术的应用,这种微小的偏移往往会造成智能分析的结果存在偏差,影响智能分析结果的可信度,下文统称这种偏移为预置位抓拍偏移。另一种情况是由于云台的机械转轴的精度不足导致对预置位定位的误差,在摄像头最初运行的一段时间这种误差一般很小,但随着相机长时间的运行,机械转轴会不断的受到物理磨损,进而影响机械转轴的精度,累计的误差使预置位很大程度的偏移原来的位置,下文统称为预置位累计偏移。

现有技术中,针对第一种情况的预置位抓拍偏移,一般采用基于特征点匹配的方式进行预置位的偏移纠正,是一种通过识别当前抓拍的预置位图像和设置预置位时的初始图像的特征点并对特征点进行匹配来确定预置位的偏移,进而对偏移进行修正的算法。这种方法一般情况下可以识别出幅度不大的预置位偏移,但是很难识别出由第二种情况引起的较大的预置位累计偏移,而且对于室外的摄像机,天气、季节的不同会导致抓拍照片存在很大差异,例如植被、雨雪等,对特征点识别的准确率有很大影响。对第二种情况预置位累计偏移一般是从改进云台机械结构的方式来提高云台的精度,这种方法没有解决由摄像头抖动造成的偏移,而且要更换现有的设备,成本比较高。

发明内容

(一)解决的技术问题

针对现有技术的不足,本发明提供了一种基于图像识别的球形摄像机预置位偏移自动纠正的软件系统,具备针对预置位抓拍照片的偏移进行纠正、针对预置位累计偏移进行校正等优点,解决了由于风吹等原因造成摄像头的抖动,导致抓拍的预置位照片与原预置位照片存在小幅度的随机的上下左右的偏移、由于云台的机械转轴的精度不足导致对预置位定位的误差的问题。

(二)技术方案

为实现上述针对预置位抓拍照片的偏移进行纠正、针对预置位累计偏移进行校正的目的,本发明提供如下技术方案:一种基于图像识别的球形摄像机预置位偏移自动纠正的软件系统,包括:预置位创建模块,负责对接实现预置位的创建、修改功能;预置位调度模块,负责执行预置位调度,并在调度之后对预置位抓拍和预置位偏移识别,可以根据用户的需要返回原抓拍照片和纠正后的抓拍照片;预置位偏移校正模块,采用定时执行的策略,在系统空闲时间对所有摄像头周期性的执行预置位偏移校正操作;存储系统。

优选的,所述预置位创建模块包括如下步骤:

S10、创建预置位;系统调用摄像头的新建预置位功能创建预置位,并获取摄像头返回的预置位唯一编码,将预置位编码保存至存储系统;

S11、读取摄像头调度参数并保存;系统读取摄像头的调度参数,包括PTZ坐标和可视角度两部分,并将该调度参数保存至存储系统;

S12、抓拍预置位照片;系统调用摄像头抓拍,得到抓拍的照片;

S13、识别照片关键目标;系统调用基于深度学习的目标检测算法,识别抓拍照片的关键目标;

S14、是否识别到关键目标;系统判断步骤S13是否识别出待检测目标,如果识别到则执行步骤S15,否则执行步骤S16;

S15、保存关键目标信息;系统将步骤S13识别到的关键目标保存至存储系统;

S16、识别图片特征点并保存;系统将抓拍图片进行预处理,预处理包括统一图片分辨率、裁切掉图片上下包含水印的区域,提取预处理后的图片中的特征点并保存至存储系统。

优选的,所述S11中PTZ坐标是摄像头的控制参数,P表示摄像头云台在水平方向上的旋转角度;T表示摄像头云台在垂直方向上的旋转角度,取值范围为;Z表示摄像头焦距的变倍数,可视角度是摄像头的视角参数,包含水平可视角和垂直可视角两个参数。

优选的,所述S13中基于深度学习的目标检测算法提取的目标信息包括识别置信度、目标类型、目标位于图片的坐标[x,y,w,h]等信息,目标的坐标是一个包含目标的最小的矩形坐标,x、y是矩形中心的点坐标,w、h分别是矩形的宽和高,提取的关键目标包含多个时,保留置信度前三的目标信息。

优选的,所述预置位调度模块具体步骤如下:

S21、调度摄像头旋转至预置位,系统调用摄像头的旋转至预置位;

S22、读取预置位调度参数,系统读取预置位的调度参数,包括PTZ坐标和可视角度两部分,同步骤S11;

S23、等待摄像头旋转至预置位,系统等待摄像头旋转至预置位,该过程不断的读取摄像头的PTZ坐标,直到和系统中保存的PTZ坐标相同;

S24、抓拍摄像头照片,系统调用摄像头执行抓拍,获取抓拍的照片;

S25、创建预置位时是否识别到关键目标,系统读取系统中保存的步骤S13识别到的目标信息,判定步骤S13是否识别到目标,如果识别到目标则执行步骤S26,否则执行步骤S27;

S26、基于目标检测方法识别预置位偏移量,系统使用基于目标检测的方法识别预置位的偏移量;

S27、基于特征点匹配方法识别预置位偏移量,系统使用基于特征点匹配的方法识别预置位的偏移量;

S28、偏移量是否超过合理范围,系统判定步骤S26或步骤S27中识别的偏移量是否在合理范围,偏移量的值包括x坐标和y坐标两个偏移量值,其合理范围可以在系统中设置,默认均为15%,即x、y方向的偏移量不能超过图片宽、高的15%,超过合理范围的偏移量认为是系统识别失败,系统执行步骤S28.1,将偏移量置为0。

S29、对抓拍照片执行偏移校正,系统对抓拍照片按照计算的偏移量执行偏移纠正;

S30、保存偏移量、抓拍照片、纠偏后的照片,系统保存识别的偏移量、抓拍照片、偏移纠正后的照片、识别时间等数据。

优选的,所述S26具体步骤如下:

S26.1、提取系统中保存的步骤S13识别到的Top3目标信息,包括目标类型和目标坐标[x,y,w,h],x、y是识别到的目标矩形中心的点坐标,w、h分别是矩形的宽和高;

S26.2、对步骤S26.1提取每一个目标,调用目标检测算法对抓拍照片识别相同类型的目标,识别范围为:以x、y为中心,以抓拍图片宽高的1/2为宽高的矩形范围;

S26.3、判定步骤S26.2中是否识别到目标,如果未识别到,则认为识别偏移量失败,执行步骤S27基于特征点匹配的方法识别偏移量,如果识别到,则执行S26.4;

S26.4、对步骤S26.1提取的每一个目标(命名为A)按照置信度从高到低的顺序,对比在步骤S26.2识别到的目标(命名为B),对比策略为:

A、B坐标中,宽高相差小于5%,

A、B的识别置信度相差小于20%,

若对比通过,则认为B与A匹配,B与A坐标中心点的差值为抓拍照片的偏移量;

若所有目标对比均不通过,则认为识别偏移量失败,执行步骤S27基于特征点匹配的方法识别偏移量。

优选的,所述S27的具体步骤如下:

S27.1、系统将抓拍图片进行预处理,预处理包括统一图片分辨率、裁切掉图片上下包含水印的区域,提取预处理后的图片中的特征点;

S27.2、将步骤S27.1提取的特征点与步骤S16提取的特征点进行匹配,匹配的算法采用蛮力匹配策略,即在第一幅图像上选取一个关键点,然后依次与第二幅图像的每个关键点进行(描述符)距离测试,最后返回距离最近的关键点;

S27.3、在步骤S27.2中匹配的所有关键点中,计算出坐标差值最接近的大多数点,取最小坐标差值作为抓拍照片的偏移量。

优选的,所述预置位偏移校正模块具体步骤如下:

S31、读取摄像头预置位信息,系统读取预置位信息,包括该预置位的PTZ坐标、可视角度数据、上次校正时间等;

S32、校正时间是否达到一个校正周期,系统判断该预置位距离上次校正,是否到达一个校正周期,校正周期在软件中应该是可配置的,如果该预置位创建后未执行过校正,则判断预置距离创建日期是否达到一个校正周期;

S33、根据预置位信息读取该预置位最近一段时间识别到的偏移量;系统读取该预置位自上次校正后的所有识别到的大于在步骤S30中保存的有效偏移量,所述有效偏移量是指水平和垂直方向偏移量不全为0。

S34、计算预置位的平均偏移量,系统计算预置位的偏移量的平均值,偏移量识别结果为0的数据不参与计算;

S35、计算预置位PTZ参数的偏移量;系统根据步骤S34中计算的偏移量平均值,结合预置位对应的可视角度,计算该偏移量平均值对应的摄像头旋转角度的偏移差值,计算公式如下:

设计算的水平方向和垂直方向偏移量的平均值AvgOffsetX、AvgOffsetY,预置位的水平方向和垂直方向的可视角为HFov、VFov,计算公式为:

水平方向角度偏移值:atan(AvgOffsetX/0.5*tan(HFov/2))

垂直方向角度偏移值:atan(AvgOffsetY/0.5*tan(VFov/2))

S36、更新预置位参数,系统根据步骤S35中计算的角度偏移量,计算出新的PTZ参数,保存至预置位中;

S37、更新预置位照片,系统将最近一次有效偏移量的识别结果图片作为预置位图片并保存,并对该照片重新执行步骤S13-S16,识别该照片的关键目标和特征并保存。

(三)有益效果

与现有技术相比,本发明提供了一种基于图像识别的球形摄像机预置位偏移自动纠正的软件系统,具备以下有益效果:

该基于图像识别的球形摄像机预置位偏移自动纠正的软件系统,系统提供两种功能,一是针对预置位抓拍照片的偏移进行纠正,使纠正后的照片和设置预置位时初始的照片的位置可以重合;一是针对预置位累计偏移进行校正,确保调度摄像头旋转至预置位时能始终保持在预置位最初设定的位置。

附图说明

图1为本发明的流程示意图;

图2为本发明的预置位创建模块流程示意图;

图3为本发明的预置位调度模块流程示意图;

图4为本发明的预置位偏移校正模块流程示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参阅图1,一种基于图像识别的球形摄像机预置位偏移自动纠正的软件系统,主要包括预置位创建模块、预置位调度模块、预置位偏移纠正模块、存储系统四个模块。

请参阅图2,预置位创建模块,负责对接实现预置位的创建、修改功能。具体步骤如下:

S10、创建预置位;系统调用摄像头的新建预置位功能创建预置位,并获取摄像头返回的预置位唯一编码,将预置位编码保存至存储系统。

S11、读取摄像头调度参数并保存;系统读取摄像头的调度参数,包括PTZ坐标和可视角度两部分,并将该调度参数保存至存储系统。

其中,PTZ坐标是摄像头的控制参数,P表示摄像头云台在水平方向上的旋转角度;T表示摄像头云台在垂直方向上的旋转角度,取值范围为;Z表示摄像头焦距的变倍数;

可视角度是摄像头的视角参数,包含水平可视角和垂直可视角两个参数。

S12、抓拍预置位照片;系统调用摄像头抓拍,得到抓拍的照片。

S13、识别照片关键目标;系统调用基于深度学习的目标检测算法,识别抓拍照片的关键目标。

基于深度学习的目标检测算法是近年来比较流行的技术,其具体的实现算法一直在快速发展,本发明在实现时采用的是yolov7算法,是一种公开开源的算法,具体的算法细节不再深入描述。

目标检测算法需要提前训练待识别的目标模型,选择哪种类型的目标进行训练需要依据视频监控的应用场景,选择相对固定不会移动的目标,例如室外监控可以选择建筑物、道路、河流等目标进行训练,室内可以选择楼梯、电梯等目标进行训练。

目标检测算法提取的目标信息包括识别置信度、目标类型、目标位于图片的坐标[x,y,w,h]等信息,目标的坐标是一个包含目标的最小的矩形坐标,x、y是矩形中心的点坐标,w、h分别是矩形的宽和高。提取的关键目标包含多个时,保留置信度前三的目标信息。

S14、是否识别到关键目标;系统判断步骤S13是否识别出待检测目标,如果识别到则执行步骤S15,否则执行步骤S16。

S15、保存关键目标信息;系统将步骤S13识别到的关键目标保存至存储系统。

S16、识别图片特征点并保存;系统将抓拍图片进行预处理,预处理包括统一图片分辨率、裁切掉图片上下包含水印的区域,提取预处理后的图片中的特征点并保存至存储系统。

其中,提取特征点技术,是计算机视觉中的一个重要主题,可以细分为传统算法实现和深度学习实现,目前传统算法仍是应用最多、最成熟的方法。本发明中采用的是AKAZE算法,AKAZE特征算法是SIFT特征算法的一种改进版本,通过AKAZE特征算法得到的特征点描述子具有旋转不变性、尺度不变性、光照不变性、空间不变性等,而且其鲁棒性、特征独特性和特征精度相比起ORB、SIFT算法提取出的特征要更好。AKAZE是一种公开算法,本发明使用OpenCV库的实现,具体的实现细节不再深入描述。

请参阅图3,预置位调度模块,负责执行预置位调度,并在调度之后对预置位抓拍和预置位偏移识别,可以根据用户的需要返回原抓拍照片和纠正后的抓拍照片。具体步骤如下:

S21、调度摄像头旋转至预置位;系统调用摄像头的旋转至预置位。

S22、读取预置位调度参数;系统读取预置位的调度参数,包括PTZ坐标和可视角度两部分。同步骤S11。

S23、等待摄像头旋转至预置位;系统等待摄像头旋转至预置位,该过程不断的读取摄像头的PTZ坐标,直到和系统中保存的PTZ坐标相同。

S24、抓拍摄像头照片;系统调用摄像头执行抓拍,获取抓拍的照片。

S25、创建预置位时是否识别到关键目标;系统读取系统中保存的步骤S13识别到的目标信息,判定步骤S13是否识别到目标,如果识别到目标则执行步骤S26,否则执行步骤S27。

S26、基于目标检测方法识别预置位偏移量;系统使用基于目标检测的方法识别预置位的偏移量。

其中,S26又包括以下步骤:

S26.1、提取系统中保存的步骤S13识别到的Top3目标信息,包括目标类型和目标坐标[x,y,w,h],x、y是识别到的目标矩形中心的点坐标,w、h分别是矩形的宽和高。

S26.2、对步骤S26.1提取每一个目标,调用目标检测算法对抓拍照片识别相同类型的目标,识别范围为:以x、y为中心,以抓拍图片宽高的1/2为宽高的矩形范围。

采取这种识别范围是为了尽可能缩小检测区域以提高目标检测匹配率,同时又避免因为照片偏移导致的目标偏移到识别区域外,因为按照本发明的实现,预置位抓拍照片偏移不超过原图片的1/2。

S26.3、判定步骤S26.2中是否识别到目标;

如果未识别到,则认为识别偏移量失败,执行步骤S27基于特征点匹配的方法识别偏移量。

如果识别到,则执行S26.4。

S26.4、对步骤S26.1提取的每一个目标(命名为A)按照置信度从高到低的顺序,对比在步骤S26.2识别到的目标(命名为B),对比策略为:

A、B坐标中,宽高相差小于5%。

A、B的识别置信度相差小于20%。

若对比通过,则认为B与A匹配,B与A坐标中心点的差值为抓拍照片的偏移量。

若所有目标对比均不通过,则认为识别偏移量失败,执行步骤S27基于特征点匹配的方法识别偏移量。

S27、基于特征点匹配方法识别预置位偏移量;系统使用基于特征点匹配的方法识别预置位的偏移量。具体步骤如下:

S27.1、系统将抓拍图片进行预处理,预处理包括统一图片分辨率、裁切掉图片上下包含水印的区域,提取预处理后的图片中的特征点;

S27.2、将步骤S27.1提取的特征点与步骤S16提取的特征点进行匹配,匹配的算法采用蛮力匹配策略,即在第一幅图像上选取一个关键点,然后依次与第二幅图像的每个关键点进行(描述符)距离测试,最后返回距离最近的关键点;

S27.3、在步骤S27.2中匹配的所有关键点中,计算出坐标差值最接近的大多数点,取最小坐标差值作为抓拍照片的偏移量。

S28、偏移量是否超过合理范围;系统判定步骤S26或步骤S27中识别的偏移量是否在合理范围,偏移量的值包括x坐标和y坐标两个偏移量值,其合理范围可以在系统中设置,默认均为15%,即x、y方向的偏移量不能超过图片宽、高的15%。

超过合理范围的偏移量认为是系统识别失败,系统执行步骤S28-1,将偏移量置为0。

S29、对抓拍照片执行偏移校正;系统对抓拍照片按照计算的偏移量执行偏移纠正。

S30、保存偏移量、抓拍照片、纠偏后的照片。系统保存识别的偏移量、抓拍照片、偏移纠正后的照片、识别时间等数据。

请参阅图4,预置位偏移校正模块,采用定时执行的策略,在系统空闲时间(如凌晨)对所有摄像头周期性的执行预置位偏移校正操作。

预置位偏移校正的工作原理,是计算一段时间内系统在预置位调度时识别到预置位抓拍照片的偏移量的平均值,在结合预置位的可视角度参数计算出摄像头PTZ坐标的偏移量。具体步骤如下:

S31、读取摄像头预置位信息;系统读取预置位信息,包括该预置位的PTZ坐标、可视角度数据、上次校正时间等。

S32、校正时间是否达到一个校正周期;系统判断该预置位距离上次校正,是否到达一个校正周期(如7天),校正周期在软件中应该是可配置的。如果该预置位创建后未执行过校正,则判断预置距离创建日期是否达到一个校正周期。

S33、根据预置位信息读取该预置位最近一段时间识别到的偏移量;系统读取该预置位自上次校正后的所有识别到的大于有效偏移量(在步骤S30中保存的)。

其中,有效偏移量是指水平和垂直方向偏移量不全为0。

S34、计算预置位的平均偏移量;系统计算预置位的偏移量的平均值,偏移量识别结果为0的数据不参与计算。

S35、计算预置位PTZ参数的偏移量;系统根据步骤S34中计算的偏移量平均值,结合预置位对应的可视角度,计算该偏移量平均值对应的摄像头旋转角度的偏移差值,计算公式如下:

设计算的水平方向和垂直方向偏移量的平均值AvgOffsetX、AvgOffsetY,预置位的水平方向和垂直方向的可视角为HFov、VFov,计算公式为:

水平方向角度偏移值:atan(AvgOffsetX/0.5*tan(HFov/2))

垂直方向角度偏移值:atan(AvgOffsetY/0.5*tan(VFov/2))

S36、更新预置位参数;系统根据步骤S35中计算的角度偏移量,计算出新的PTZ参数,保存至预置位中。

S37、更新预置位照片;系统将最近一次有效偏移量的识别结果图片作为预置位图片并保存,并对该照片重新执行步骤S13-S16,识别该照片的关键目标和特征并保存。

尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。

相关技术
技术分类

06120116594477