[发明专利]基于计算机视觉图像处理的港口集装箱起吊安全监测方法有效
申请号: | 201710941755.5 | 申请日: | 2017-10-11 |
公开(公告)号: | CN107527347B | 公开(公告)日: | 2020-01-14 |
发明(设计)人: | 陈玉念;郭延文 | 申请(专利权)人: | 南京大学 |
主分类号: | G06T7/00 | 分类号: | G06T7/00;G06T7/70;G06T7/246;G06T7/292;G06T5/40 |
代理公司: | 32237 江苏圣典律师事务所 | 代理人: | 胡建华;于瀚文 |
地址: | 210023 江苏省南*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 计算机 视觉 图像 处理 港口 集装箱 起吊 安全 监测 方法 | ||
1.基于计算机视觉图像处理的港口集装箱起吊安全监测方法,其特征在于,采用两个摄像头采集视频图像数据,对两个摄像头采集的数据,用两个线程并行处理,对于每个线程处理的过程,包括步骤1~步骤8:
步骤1:获取初始化数据,设置摄像头标号和监测信号的初始值,监测信号包括起吊信号signal1、判断信号signal2和结束信号signal3;
步骤2:根据初始化数据计算参数,得到感兴趣区域Rlsd;
步骤3:根据摄像头标号,读取对应摄像头的视频流第一帧,进行图像预处理,在感兴趣区域Rlsd内进行LSD直线检测;
步骤4:根据卡车与集装箱的交界位置与LSD直线检测结果,利用最小二乘直线拟合方法得到一条直线方程L;
步骤5:根据直线方程L与步骤2中求得的参数,对卡车与集装箱进行标记,获得标记点的序列InitMarks;
步骤6:当signal2信号为真,根据摄像头标号,读取对应摄像头的视频流一帧,利用LK光流对步骤5中的标记点序列InitMarks进行运动跟踪,给出当前帧的跟踪结果,并进入步骤7;
步骤7:给出卡车是否被吊起的判断结果:对当前帧判断卡车是否被吊起,若当前是连续第5帧给出判断结果为卡车被吊起,则给出当前摄像头最终判断结果为危险,即卡车处于危险起吊状态,结束判断;若结束信号signal3被设置为真时,当前线程处理的摄像头还未给出危险的判断结果,则给出当前摄像头最终判断结果为安全,结束判断;否则继续步骤6;
步骤8:综合两个线程处理的结果:如果其中一个线程判断结果是危险,则给出两个线程的最终判断结果为卡车处于不安全状态;如果两个线程判断结果都是安全,则给出两个线程的最终判断结果为卡车处于安全状态;
步骤1包括如下步骤:
步骤1-1,初始化数据:
设置摄像头参数:摄像头有两个,拍摄到集装箱与卡车头部交界位置的摄像头设置为1号摄像头,拍摄到集装箱与卡车尾部交界位置的摄像头设置为2号摄像头;
设置集装箱的大小参数:集装箱的大小为12m长的集装箱或者6m长的集装箱;
以图像左上角为原点建立以像素为单位的图像坐标系,像素的横坐标x与纵坐标y分别是在其图像数组中所在的列数与所在的行数,获取卡车与集装箱交界的初始化位置,包括图像坐标系中三条直线线段L1(P0(xl1p0,yl1p0),P1(xl1p1,yl1p1))、线段L2(P2(xl2p0,yl2p0),P3(xl2p1,yl2p1))与线段L3(P4(xl3p0,yl3p0),P5(xl3p1,yl3p1)),其中用线段L1(P0(xl1p0,yl1p0),P1(xl1p1,yl1p1))表示集装箱卡车交界位置的直线段,用线段L2(P2(xl2p0,yl2p0),P3(xl2p1,yl2p1))两个端点P2的纵坐标yl2p0与P3的纵坐标yl2p1表示卡车和集装箱的交界位置左端点在y方向的范围,用线段L3(P4(xl3p0,yl3p0),P5(xl3p1,yl3p1))两个端点P4的纵坐标yl3p0与P5的纵坐标yl3p1代表卡车和集装箱的交界位置右端点在y方向的范围;
步骤1-2,设置三种监测信号的初始值:设置起吊信号signal1为真,判断信号signal2为假,结束信号signal3为假;
信号signal1为集装箱起吊开始信号,即从此刻开始进行读入视频帧,之后将对每一帧进行处理;
当起吊机提起来20cm时,判断信号signal2为真;
当起吊机提起来60cm时,结束信号signal3为真;
步骤2包括如下步骤:
步骤2-1,计算卡车与集装箱的交界位置所在的图像坐标系x方向范围的中间值Xmid:
步骤2-2,计算卡车与集装箱的交界位置的范围,将卡车与集装箱的交界位置所在的图像像素坐标系在y方向的范围分为两部分:将像素坐标系坐标x∈(xl2,xmid)部分的y方向范围由L2限定,而像素坐标系坐标x∈(xmid,xl3)部分的y方向范围由L3限定,其中xl2为xl2p0与xl2p1之间的较小值,xl3为xl3p0与xl3p1之间的较大值:
Xl2=min(xl2p0,xl2p1),
Xl3=min(xl3p0,xl3p1);
步骤2-3,计算卡车与集装箱交界位置形成的直线斜率k0:
步骤2-4,计算进行LSD直线检测的感兴趣区域Rlsd(Plu(xlsd,ylsd),wlsd,hlsd):Rlsd(Plu(xlsd,ylsd),wlsd,hlsd)代表了表示进行LSD直线检测的矩形区域,其中Plu(xlsd,ylsd)表示矩形区域图像像素坐标系中左上方顶点,xlsd,ylsd分别表示该顶点的横坐标和纵坐标,wlsd、hlsd分别表示矩形区域的长和宽;Rlsd(Flu(xlsd,ylsd),wlsd,hlsd)的计算方法如下:
根据初始化参数中给定的摄像头编号,两个线程分别读取对应摄像头的一帧视频帧,假设采集到的视频帧的显示分辨率为resw×resh,其中resw表示采集到的视频帧的列数,resh则表示采集到的视频帧的行数,计算L1的长度dl1、L2的长度dl2、L3的长度dl3:
dl2=|yl2p0-yl2p1|,
dl3=|yl3p0-yl3p1|;
计算xlsd、ylsd、wlsd及hlsd:
xlsd=max(0,xl2-dl2),
wlsd=min(2×dl1,resw-xlsd),
hmin=
|max(yl3p0,yl3p1,yl2p0,yl2p1)-min(yl3p0,yl3p1,yl2p0,yl2p1)|,
hlsd=min(hmin+dl2+dl3,resh-ylsd);
步骤2-5,计算图像像素坐标系下打标记点的范围:图像像素坐标下,x方向上打标记的范围记为(xl,xr),其中,xl表示标记点在x方向最小坐标;xr表示标记点在x方向最大坐标;图像像素坐标下,集装箱上的标记点y方向上的宽度范围记为wt,卡车上的标记点y方向上的宽度范围记为wb,计算公式如下所示:
步骤3包括以下步骤:
步骤3-1:当signal1设置为真后,两个线程分别读取对应摄像头视频流第一帧,进行图像预处理,将图像处理为灰度图像;
步骤3-2:对步骤3-1得到的灰度图像进行直方图均衡化处理;
步骤3-3:保留在感兴趣区域Rlsd范围内的图像区域,记为区域A1,去除不在感兴趣区域Rlsd范围内的图像区域,然后进行直线检测,输出为线段的端点坐标序列;
步骤3-3中所述进行直线检测,LSD算法包括如下步骤:
步骤3-3-1,计算图像区域A1所有像素的梯度值及梯度方向;
步骤3-3-2,遍历图像区域A1中每个像素,执行区域增长算法,得到一个梯度值与梯度方向一致的像素区域r;
步骤3-3-3,判断r是否为一个有效的直线区域,若是则保留,否则丢弃;
步骤3-3-4,得到直线检测结果,即得到一系列直线线段序列linelsd,linelsd中保存着直线的端点坐标;
步骤4包括以下步骤:
步骤4-1:筛选步骤3中得到的直线线段,如果linelsd中所有线段都已被访问过,则进入步骤4-4,否则选取一条linelsd中未被访问过的直线线段,按如下规则进行筛选:计算当前访问的直线线段的斜率k,计算直线斜率k与k0的差值dk=|k-k0|,根据设定阈值d0,如果dk<d0,则该直线线段保留,并进入步骤4-2;否则判定此直线筛选未通过,进入步骤4-3;
步骤4-2:将步骤4-1筛选出来的直线线段再做一次筛选,假设直线的两个端点坐标分别(xstart,ystart),(xend,yend):
条件1,端点(xstart,ystart)满足:xstart<xmid,xstart>xl2,ystart<yl2p1,ystart>yl2p0,这四个范围限定条件同时满足时,此条件为真,否则此条件为假;
条件2,端点(xend,yend)满足:xend>xmid,xend<xl3,yend>yl3p0,yend<yl3p1,这四个范围限定条件同时满足时,此条件为真,否则此条件为假;
当直线的两个端点坐标满足条件1为真或者条件2为真的情况下,这条直线就保留下来,返回步骤4-1访问下一条直线,否则认为此直线筛选未通过,进入步骤4-3;
步骤4-3:舍弃筛选未通过的直线线段,返回步骤4-1访问下一条直线;
步骤4-4:对经过步骤4-1~步骤4-3筛选,并保留下来的直线段端点坐标进行最小二乘法直线拟合得到直线方程L,直线方程L的函数形式为:
y1=ax1+b;
其中x1、y1为两个变量,a和b为两个未知参数,a为直线方程L的斜率,b为直线方程L的截距;
步骤4-5:输出斜率a和截距b;
步骤5包括以下步骤:
步骤5-1:两个线程分别继续读取对应摄像头的一帧视频帧,并采用直方图均衡化对新输入一帧图像进行图像增强的调整;
步骤5-2:以x坐标增量为5像素,记为Δ1;y坐标增量为10像素,记为Δ2,并根据直线方程L与步骤2中确定的打标记点的坐标范围,在卡车上与集装箱上获取标记点,并将标记点保存到InitMarks中,用一个pos序列来标记每个标记点的位置,即根据步骤4中的直线方程L,计算每个标记点与直线方程描述直线的关系,对于一个标记点i,当直线方程的x坐标取值x1与标记点的坐标xi取值相同时,若标记点的y坐标yi小于直线方程计算出来的y1值,则将pos[i]的值修改为1中,否则修改为-1;
步骤5-3:输出步骤5-2中n个标记点组成的序列InitMarks=(s1,s2,s3,......,sn-1,sn),sn表示第n个标记点,然后将InitMarks赋值给序列S;
步骤6包括以下步骤:
步骤6-1:两个线程分别继续读取对应摄像头的一帧视频帧,采用直方图均衡化方法增强图像;
步骤6-2:采用LK光流法跟踪序列S,跟踪结束后,得到标记每个点是否跟踪成功的状态标志序列status=(flag1,flag2,......,flagn),flagn表示第n个标记点,其中n为序列S中标记点的个数;如果标记点si跟踪失败,i∈n,则flagi为0,否则fiagi为1,根据状态标志序列status,将标志位为0的标记点在S及InitMarks中都清除掉;
步骤6-3:对跟踪成功的点用RANSAC方法筛选一次,将误匹配标记点在S及InitMarks中都清除掉;
步骤6-4:如果判断信号signal2为真,则进入步骤7,否则返回步骤6-1。
2.如权利要求1所述的方法,其特征在于,步骤7包括以下步骤:
步骤7-1:将序列S赋值给临时标记点序列Stemp,并将InitMarks赋值给InitMarkstemp;
步骤7-2:将临时标记点序列Stemp进行划分,即分成集装箱上的标记点序列Sbox与卡车上的标记点序列Struck,若标记点在pos序列中的值是1,则将标记点放入序列Sbox中,否则,将标记点放入序列Struck中;由于Stemp中保存的是步骤6中运动跟踪成功的标记点的位置,而InitMarkstemp中保存的是Stemp中的标记点在第一帧中的位置,Stemp与InitMarkstemp中的点都是一一对应的,顺序也是一致的,因此,将Struck在InitMarkstemp中对应的点划分到InitMarkstruck中,而将Sbox在InitMarkstemp中对应的点划分到InitMarksbox中;
步骤7-3:将Stemp中所有的标记点进行预处理:将Stemp中位移大于所有标记点的平均位移3倍的标记点去除掉,同时也去除掉InitMarkstemp中对应的标记点;在图像坐标系下,根据InitMarkstemp与序列Stemp中保存的每个标记点的坐标,分别计算卡车上的标记点在x方向与y方向的平均位移集装箱上的标记点在x方向与y方向的平均位移序列Sbox中含有的标记点个数为nbox,序列Struck中含有的标记点个数为ntruck:
根据计算出来的值,分别将Sbox与Struck进行一次筛选,筛选的依据如下:
如果是集装箱上的标记点,x方向与y方向上的位移分别为dx、dy,且满足条件3和条件4中任意一个条件,则删除该标记点:
条件3,或者
条件4,
如果是卡车上的标记点,x方向与y方向上的位移分别为dx、dy,且满足条件5和条件6中任一一条件,则删除该标记点:
条件5,或者
条件6,或者
步骤7-4;根据7-3处理过的标记点序列Sbox与Struck来判断卡车是否被吊起:以下列出的四个条件中条件7、条件8、条件9至少两个条件同时为真或者条件10为真,则判定当前帧卡车被吊起,并给出当前帧的判断结果为卡车被吊起,否则给出判断结果为安全:
条件7,拟合直线进行判断:标记点序列Struck经过最小二乘直线拟合得到直线方程l1,标记点序列Sbox经过最小二乘直线拟合得到直线方程l2,标记点序列InitMarkstemp经过最小二乘直线拟合得到直线方程l3;l1与l3方程之间的斜率差为α1、l1与l2方程之间的斜率差为α2,设定夹角的阈值为α,如果夹角α1>α且α2>α,则认为此条件为真,卡车有可能被吊起;
条件8,当前帧,卡车上的标记点在x方向上有位移Δxt,设定阈值Δx0,卡车上的标记点有的标记点有Δxt>Δx0,则认为此条件为真,卡车有可能被吊起;
条件9,当前帧,卡车上的标记点在y方向上有位移Δyt,设定阈值Δy0,卡车上的标记点有的标记点有Δyt>Δy0,则认为此条件为真,卡车有可能被吊起;
条件10,当前帧,卡车上的标记点与集装箱上的标记点在y方向上有位移Δy,设定阈值Δ,当有标记点都有Δy>Δ时,则认为此条件为真,卡车有可能被吊起;
步骤7-5:如果连续5帧图像的判断结果都是卡车被吊起,则给出最终的判断结果,即卡车被吊起,结束判断;
步骤7-6:如果signal3被设置为真,步骤7-5还未给出最终的判断结果,则判定没有发生危险,结束判断,否则继续读取下一帧,执行步骤6。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京大学,未经南京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710941755.5/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种全自动自吸泵
- 下一篇:折叠机构及使用该折叠机构的转叶扇
- 彩色图像和单色图像的图像处理
- 图像编码/图像解码方法以及图像编码/图像解码装置
- 图像处理装置、图像形成装置、图像读取装置、图像处理方法
- 图像解密方法、图像加密方法、图像解密装置、图像加密装置、图像解密程序以及图像加密程序
- 图像解密方法、图像加密方法、图像解密装置、图像加密装置、图像解密程序以及图像加密程序
- 图像编码方法、图像解码方法、图像编码装置、图像解码装置、图像编码程序以及图像解码程序
- 图像编码方法、图像解码方法、图像编码装置、图像解码装置、图像编码程序、以及图像解码程序
- 图像形成设备、图像形成系统和图像形成方法
- 图像编码装置、图像编码方法、图像编码程序、图像解码装置、图像解码方法及图像解码程序
- 图像编码装置、图像编码方法、图像编码程序、图像解码装置、图像解码方法及图像解码程序