发明名称 基于视觉注意力模型的鱼群个体目标跟踪方法
摘要 一种基于计算机视觉的鱼目标实时检测跟踪方法,包括以下步骤:1)以鲫鱼作为生物检测对象对其进行实时监测;2)手动获取目标鱼的初始轮廓及跟踪该鱼的视野范围;3)目标鱼轮廓的提取和匹配跟踪;3.1)根据前一时刻目标鱼轮廓计算新的注意力区域;3.2)根据目标鱼注意力区域搜索目标鱼的轮廓;3.2.1)目标鱼注意力区域内聚类并找到目标鱼类别;3.2.2)对聚类检测到的鱼目标作进一步匹配跟踪。本发明的优势:本发明的群目标跟踪算法不但可以对区域范围内鱼目标进行实时性地跟踪,而且当跟踪目标发生交互阻塞时,依然可以准确跟踪目标,从而有效地避免身份丢失和交换。
申请公布号 CN106529434A 申请公布日期 2017.03.22
申请号 CN201610938465.0 申请日期 2016.10.25
申请人 浙江工业大学 发明人 程振波;邵腾飞;肖刚;黄斌;高晶莹;朱天奇;李轶;陈明明
分类号 G06K9/00(2006.01)I 主分类号 G06K9/00(2006.01)I
代理机构 杭州天正专利事务所有限公司 33201 代理人 王兵;黄美娟
主权项 一种基于选择力注意的鱼群目标跟踪方法,包括以下步骤:1)以鲫鱼群作为监测对象,通过摄像头获取鱼群行为实时视频,从而实现对群内的每一个体进行实时监测;2)算法初始化,手动获取目标鱼的初始轮廓以及跟踪该鱼的视野范围;2.1)得到目标鱼的初始轮廓f<sub>0</sub>;首先,暂停当前视频流播放,获取当前帧内目标鱼的轮廓;为此,通过人工找到当前帧的目标鱼,经由鼠标点击该目标鱼体的任意一点,从而获取该点击的坐标;根据该坐标点的颜色值,利用最近邻方法找到整个目标鱼的轮廓,其计算过程如下:A1)得到由鼠标点击的目标鱼轮廓内任一像素点的颜色值x<sub>0</sub>;A2)得到该像素点x<sub>0</sub>的8个相邻像素点颜色,若相邻像素点与x<sub>0</sub>的颜色差值在某个给定的范围内,设定颜色值阈值差为(30,30,30),则将其与x<sub>0</sub>像素点连通,否则不连通;计算如下:src(x<sup>1</sup>,y<sup>1</sup>)<sub>r</sub>‑loDiff<sub>r</sub>≤src(x,y)<sub>r</sub>≤src(x<sup>1</sup>,y<sup>1</sup>)<sub>r</sub>+upDiff<sub>r</sub>  (1)src(x<sup>1</sup>,y<sup>1</sup>)<sub>g</sub>‑loDiff<sub>g</sub>≤src(x,y)<sub>g</sub>≤src(x<sup>1</sup>,y<sup>1</sup>)<sub>g</sub>+upDiff<sub>g</sub>  (2)src(x<sup>1</sup>,y<sup>1</sup>)<sub>b</sub>‑loDiff<sub>b</sub>≤src(x,y)<sub>b</sub>≤src(x<sup>1</sup>,y<sup>1</sup>)<sub>b</sub>+upDiff<sub>b</sub>  (3)其中src(x<sup>1</sup>,y<sup>1</sup>)代表像素点src(x,y)的8个相邻像素点,upDiff、loDiff分别代表各颜色的上下阈值范围;A3)检测相邻位置,继续步骤(A2)操作;这个过程延续到已检测区域边界范围内的所有像素为止;2.2)经由f<sub>0</sub>得到跟踪目标鱼的初始注意力区域r<sub>0</sub>;首先,得到f<sub>0</sub>的边界,然后计算各边界点的中心点(c<sub>00</sub>+c<sub>01</sub>+…c<sub>0n</sub>)/n,其中c<sub>0n</sub>表示f<sub>0</sub>的第n个边界像素点;然后,利用opencv里的膨胀函数dilate,其中opencv是一个基于开源发行的跨平台计算机视觉库,膨胀算法是用一个3*3的结构元素去扫描二值图像的每一个像素,用结构元素与其覆盖的图像作“与”运算,如果都为0,结构图像的该像素为0,否则为1,结果使二值图像扩大一圈;以中心点为中心,将目标鱼轮廓膨胀为原来四倍的大小作为注意力区域的边界点;各个注意力区域边界点形成的范围就定义为注意力区域r<sub>0</sub>;目标鱼在下一帧的位置就从该注意力区域确定;3)根据视觉的选择力注意机制,将目标跟踪抽象为两个关键的计算;第一个计算是确定选择力注意的范围,第二个计算则是选定注意力范围的跟踪目标;这两个计算的流程为:B1)初始化得到目标鱼的初始轮廓f<sub>0</sub>以及初始注意力区域r<sub>0</sub>;B2)计算当前时刻目标鱼的的注意力区域r<sub>t</sub>,r<sub>t</sub>=U(f<sub>t‑1</sub>),其中f<sub>t‑1</sub>为前一时刻目标鱼的轮廓,U为第一个计算使用到的函数(该函数计算过程说明见3.1)流程见图5;B3)计算当前时刻目标鱼的轮廓f<sub>t</sub>,f<sub>t</sub>=S(r<sub>t</sub>),其中r<sub>t</sub>为t时刻计算得到的目标鱼注意力区域,S为第二个计算使用到的函数,该函数计算过程说明见3.2,流程见图5;B4)循环B2)和B3),从而实现对目标鱼的跟踪;3.1)U函数是根据当前鱼轮廓得到新的注意力区域;由于鱼的游动速度一定,每一帧间的位移一般不超过10像素;因此,利用opencv里的膨胀函数dilate,以目标鱼的中心点为中心,将目标鱼轮廓膨胀为原轮廓的四倍,并以此大小作为注意力区域的边界点;3.2)S函数是根据目标鱼的注意力区域r<sub>t</sub>,搜索到目标鱼的轮廓f<sub>t</sub>;首先在r<sub>t</sub>内采用最近邻算法找到其中所有的鱼轮廓area(B<sub>t</sub>);需要注意的是,area(B<sub>t</sub>)除了目标鱼外,也有可能包括非目标鱼;因此,提出由上一刻目标鱼轮廓f<sub>t‑1</sub>排除所有不属于目标鱼的轮廓,剩下的便是当前时刻鱼的轮廓f<sub>t</sub>;3.2.1)在注意力区域r<sub>t</sub>采用最近邻算法进行聚类,得到鱼轮廓area(B<sub>t</sub>),流程如下:C1)随机选取k(=5)个中心点,即聚类类别数;C2)遍历所有像素点的颜色,即RGB值;将每个像素点划分到最近的中心点中;C3)计算聚类后每个类别的平均值,并作为新的中心点;C4)重复C2‑C3过程,直到这k个中心点不再变化,或执行了足够多的迭代步数;由于鱼的颜色类似;因此,聚类后的这k类中,有一类一定属于鱼;然而这k类中,哪一类属于鱼的区域还需要进行进一步计算;其计算过程如下:D1)得到t‑1时刻目标鱼的二值图像,目标鱼的像素值为1,其它则为0;D2)计算各个类别的二值图与t‑1时刻目标鱼二值图像的相似程度,取最相似的类别作为鱼轮廓;其中,dif越小,图像越相似;图像相似的计算为:<maths num="0001"><math><![CDATA[<mrow><mi>d</mi><mi>i</mi><mi>f</mi><mo>=</mo><mo>|</mo><mi>s</mi><mi>r</mi><mi>c</mi><mo>_</mo><msubsup><mi>c</mi><mi>i</mi><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow></msubsup><mo>-</mo><mi>s</mi><mi>r</mi><mi>c</mi><mo>_</mo><msub><mi>f</mi><mi>i</mi></msub><mo>|</mo><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001139795910000031.GIF" wi="1102" he="79" /></maths>其中,<img file="FDA0001139795910000032.GIF" wi="147" he="77" />表示第k类二值图,src_f<sub>i</sub>表示t‑1时刻目标鱼二值图像,i为图中每一个像素点的索引;3.2.2)由于鱼群在游动时,不可避免相互发生交错;因此,area(B<sub>t</sub>)中除了被跟踪的目标鱼外,也有可能包括非目标鱼;因此,可由上一刻目标鱼轮廓f<sub>t‑1</sub>排除所有不属于目标鱼的轮廓,其流程如下:E1)得到t‑1时刻鱼f<sub>t‑1</sub>的中心点c<sub>1</sub>;E2)得到鱼轮廓B<sub>t</sub>的中心点c<sub>2</sub>;E3)连接中心点c<sub>1</sub>和中心点c<sub>2</sub>得到直接L;E4)将从沿着L进行平移,其面积与面积重合最大时停止移动;E5)重合面积最大的区域就是当前t时刻的目标鱼轮廓范围;4)多条鱼的跟踪:首先手动获取多条目标鱼的初始轮廓,然后根据步骤2)和步骤3)分别跟踪每一条目标鱼便可同时实现多条鱼的跟踪。
地址 310014 浙江省杭州市下城区潮王路18号浙江工业大学科技处