一种运动生物的视频追踪方法和装置与流程

文档序号:15965503发布日期:2018-11-16 23:09阅读:209来源:国知局

本发明采用计算机视频跟踪捕捉方法,实现了对运动生物比如环境科学研究的模式生物斑马鱼行为学的视频追踪,属于交叉领域的发明。本发明涉及对视频的预处理、对运动生物的实时追踪及标注、对所有运动生物累计游过像素点的实时统计、累计轨迹图的自动生成以及所有运动生物游过的实际总路径距离的自动计算。

背景技术

在环境科学研究领域,斑马鱼常作为模式生物进行污染物的毒性研究。斑马鱼在实验过程中的运动追踪技术对于其行为研究至关重要。目前,常见的斑马鱼追踪技术主要为两种。一种是研究斑马鱼鱼卵或幼鱼的运动,研究对象为一枚鱼卵或一条幼鱼——将单个个体置于小型玻璃皿中,通过红外或其它手段进行监测,该测试系统运动范围小且不允许多个个体的干扰;第二种是研究斑马鱼成鱼的运动,需要架设多部实时监测的设备,反映各时间点目标整体所处的位置,统计某一截面的斑马鱼数量。

对于第一种追踪方法,它只能监测一枚鱼卵或一条幼鱼的运动轨迹,无法对鱼群运动进行追踪;且这种追踪方法不适用于斑马鱼成鱼乃至体型更大的实验鱼种(如鲫鱼),因为较小的玻璃皿严重限制了监测对象的正常运动行为。

对于第二种追踪方法,其硬件要求较高,需要架设多部实时监测的设备,针对鱼群拍摄时,反馈结果是每一时刻各条鱼所处的位置,无法实现坐标与鱼的一一对应,只能反映鱼群整体的分布变化,不能对鱼个体进行追踪,无法准确获得鱼游动的实际路径。

因此,需要开发一种方便快捷的方法,来实现鱼及运动生物的多目标行为追踪。



技术实现要素:

针对上述现有技术的不足,本发明所要解决的技术问题在于提供一种运动生物的视频追踪方法和装置,适用于运动生物比如鱼类的追踪。该方法具有操作简便、测试快速、易于推广、追踪性强、可视化程度高、反馈信息丰富等优点。只需通过手机或其它电子设备拍摄一段运动生物的运动/游动的视频,程序即可自动识别一段视频中每个运动生物所处的实时位置,并跟踪绘制出每个运动生物的运动/游动轨迹,最终生成视频出现过的所有运动生物的累计运动/游动轨迹图,计算出视频拍摄时间内所有运动生物运动的实际总路径距离。

本发明采取的技术方案为:

一种运动生物的视频追踪方法,包括以下步骤:

1)拍摄一段运动生物的视频,作为原始视频;

2)对原始视频进行预处理,使每个运动生物形成清晰的轮廓;

3)确定每个运动生物的轮廓的质心,作为对运动生物进行追踪的目标点;

4)实时追踪各目标点的位置变化并以线条标注;

5)保存已用线条进行标注的最后一帧图像,作为运动生物的累计运动轨迹图。

进一步地,还包括以下步骤:

6)测定所述原始视频中规定的两点间的实际距离;

7)在实时追踪各目标点的位置变化时,实时计算和显示当前时间内所有目标点累计经过的像素点个数;

8)依据相应的像素点个数与步骤6)所述实际距离的比例关系,将步骤7)最后一次的计算结果转化为实际距离,得到视频拍摄时间内所有运动生物经过的实际总路径距离。

进一步地,步骤1)利用手机或其他电子设备拍摄所述原始视频,在拍摄时遵循以下规则:

1.1)拍摄的运动生物与背景之间形成比较明显的对比;

1.2)镜头应位于拍摄区域的正上方,拍摄过程中设备与拍摄区域保持平行,避免斜向拍摄;

1.3)拍摄过程中应尽量保证设备的稳定,最好使用手机自拍架或相机三脚架进行辅助拍摄,避免人为抖动;

1.4)拍摄过程中应尽量避免光线的扰动,包括水波扰动、玻璃缸内壁重影晃动、容器边角轮廓形成的阴影晃动。

进一步地,步骤1)所述的原始视频的分辨率在其拍摄设备上查知,或将视频导入计算机后查看其属性得知。

进一步地,步骤1)所述的原始视频的视野分为三种情况:a)拍摄视野大于运动范围;b)拍摄视野小于运动范围;c)拍摄视野等于运动范围。

进一步地,步骤6)所述原始的视频中规定的两点间的实际距离采用以下方式测定:对于a)所述的情景,选用运动生物的容器的长或宽进行长度测定,或选择取景框边缘两点进行实际长度测定;对于b)所述的情景,在拍摄范围内选择同一方向上的两点进行实际长度测定;对于c)所述的情景,选用运动生物的容器的长或宽进行长度测定,或在拍摄范围内选择同一方向上的两点进行实际长度测定。

进一步地,步骤2)所述预处理采用灰度变换的方法,通过设定阈值,逐点改变视频中每一个像素灰度值,目的是将感兴趣的目标进行突出,相对抑制不感兴趣的区域,最终转化成二值图像视频,从而能够清晰地分辨出其中的每一个运动生物,而背景及其它杂质被滤除。

进一步地,所述二值图像视频与所述原始视频设置为统一规格并同步播放,所述同步播放过程中,二值图像视频和原始视频的规格是预先设定的,无法改变显示窗口的大小,从而固定每个像素点对应的实际长度,保证追踪轨迹的路径长度计算结果的唯一性。

进一步地,步骤3)所述目标点的确定,是将步骤2)形成的每个清晰轮廓作外接圆,该外接圆的圆心即轮廓的质心,作为运动生物在游动过程中进行追踪的目标点。

进一步地,步骤4)所述实时追踪各目标点的位置变化采用卡尔曼滤波的方法,其是一个对动态系统的状态序列进行线性最小方差误差估计的算法,通过状态方程和观测方程来描述一个动态系统;利用卡尔曼滤波进行追踪的过程分为两个步骤:

预测部分,利用当前的状态和误差协方差估计下一时刻的状态,得到先验估计;

更新部分,将新的观测值与先验估计值一起考虑,从而获得后验估计;

在每次完成预测和更新以后,由后验估计值预测下一时刻的先验估计,重复以上步骤;利用该方法,根据当前每个运动生物所处的状态预测下一时刻每个运动生物所处的状态,并结合其下一时刻每个运动生物所处的实际状态对预测结果进行校准。

进一步地,所述像素点个数是当前时间内所有目标点累计游过的像素点个数之和,该数值将实时显示在控制台上。

一种运动生物的视频追踪装置,其包括:

拍摄单元,负责拍摄一段运动生物的视频,作为原始视频;

预处理单元,负责对原始视频进行预处理,使每个运动生物形成清晰的轮廓;

目标点确定单元,负责确定每个运动生物的轮廓的质心,作为对运动生物进行追踪的目标点;

实时追踪单元,负责实时追踪各目标点的位置变化并以线条标注;

追踪结果生成单元,负责保存已用线条进行标注的最后一帧图像,作为运动生物的累计运动轨迹图。

进一步地,上述装置还包括:

距离测定单元,负责测定所述原始视频中规定的两点间的实际距离;

像素点个数计算单元,负责在实时追踪各目标点的位置变化时,实时计算和显示当前时间内所有目标点累计经过的像素点个数;

总路径距离计算单元,负责依据相应的像素点个数与所述实际距离的比例关系,将像素点个数计算单元的最后一次的计算结果转化为实际距离,得到视频拍摄时间内所有运动生物经过的实际总路径距离。

本发明不仅突破了对运动生物的多目标追踪瓶颈,且能实现对手机或其他电子设备简单拍摄的视频进行快速自动分析,具有操作简便、测试快速、易于推广、追踪性强、可视化程度高、反馈信息丰富等优点。

本发明的有益效果:与传统方法相比,本发明的优势如下:

(1)本发明能够实现对运动生物如斑马鱼游动轨迹的自动追踪捕捉,突破了对运动生物的多目标追踪瓶颈;

(2)本发明具有操作简便、测试快速、易于推广等优点,只需提供一段用手机或其他电子设备拍摄的视频简单输入参数,程序即可自动进行后续分析并输出;

(3)本发明的可视化程度高、追踪性强,程序可实时追踪每条鱼的游动轨迹及鱼群整体的分布情况;

(4)本发明反馈的信息丰富,既可以实时计算和显示当前时间内所有目标点累计游过的像素点个数,也可在程序运行完毕后自动生成累计轨迹图及所有鱼游过实际总路径的计算结果。

附图说明

图1为程序操作流程图;

图2为预处理得到的二值图像视频截图;

图3为目标点的确定及位置变化的线条标注图;

图4为程序运行中同步播放的原始视频和二值图像视频。

图5为当前时间内所有目标点累计游过的像素点个数的实时计算和显示图;

图6为程序运行完毕后自动生成results文件夹示意图;

图7为程序自动生成的累计轨迹图;

图8为所有鱼游过实际总路径的计算结果。

具体实施方式

以下将以追踪斑马鱼群的运动为例,对本发明的技术方案进行更为详细的说明。

1)利用手机或其他电子设备拍摄一段鱼群游动的视频(拍摄视野中的水平方向用x表示,竖直方向用y表示),作为用于后续分析的原始视频,其分辨率可通过文件属性查知(记为a×b),单位均为px;

2)人为测定(或已知)视频中x方向(或y方向)上任意两点间的实际距离l(或r),单位均为mm;

3)在程序中手动输入l(或r)以及a(或b);

4)程序自动对1)中获取的原始视频进行预处理,转化为二值图像视频,从而使视频中每条鱼形成清晰的轮廓。二值图像视频与原始视频设置为统一规格并同步播放;

5)程序自动确定每个轮廓的质心,即每条鱼的重心,作为该鱼在游动过程中进行追踪的目标点;

6)程序自动实时追踪各目标点的位置变化并以线条标注;

7)程序自动实时计算和显示当前时间内所有目标点累计游过的像素点个数;

8)程序自动保存已用线条进行轨迹标注的最后一帧图像,即累计轨迹图,另存为png文件,存于自动生成的results文件夹内;

9)程序自动记录7)的最后一次计算结果,依据比例关系转化为实际距离(单位:mm),即视频拍摄时间内所有鱼游过的实际总路径距离,另存为txt文件,存于自动生成的results文件夹内。

步骤1)中,所述原始视频在拍摄时,拍摄的鱼与背景之间形成比较明显的对比,比如在拍摄鱼缸中鱼群的游动时,缸底背景最好为浅色的桌面或地板;镜头应位于拍摄区域的正上方,拍摄过程中设备与拍摄区域保持平行,避免斜向拍摄;拍摄过程中应尽量保证设备的稳定,最好使用手机自拍架或相机三脚架进行辅助拍摄,避免人为抖动;拍摄过程中应尽量避免光线的扰动,如水波扰动、玻璃缸内壁重影晃动、容器边角轮廓形成的阴影晃动等(当存在小范围内壁或轮廓阴影时,可对拍摄的视频进行尺寸裁剪,去除边缘)。上述均为推荐规则,视频拍摄质量越高、扰动越小,处理的结果将越精确。

所述的原始视频的分辨率可在其拍摄设备上查知,或将视频导入计算机后查看其属性得知,如1920×1080,单位均为px。

新建文件夹(可任意命名)用于放置程序相关的所有文件,比如c://zebrafishtracking;在该文件夹中拷入我们的程序运行文件main.pyc并新建文件夹,命名为video(不可任意命名),比如c://zebrafishtracking/video;将上述原始视频置于video文件夹内,并查知其分辨率为a×b,单位均为px。

所述的原始视频的视野分为三种情况:

a)拍摄视野大于游动范围,比如拍摄鱼缸中鱼群游动时,实际拍摄的视频还包括鱼缸边缘之外的内容;

b)拍摄视野小于游动范围,比如拍摄鱼缸中鱼群游动时,实际拍摄的视频不能覆盖整个鱼缸中的内容;

c)拍摄视野等于游动范围,比如拍摄鱼缸中鱼群游动时,调整拍摄高度和取景框大小,使得实际拍摄的视频完全覆盖鱼缸中的内容,且不包括鱼缸边缘之外的内容。

步骤2)中,长度的测定是为了后续分析的视频距离转化提供依据。对于a)所述的情景,此时可选用鱼缸的长(或宽)进行长度测定,或选择取景框边缘两点进行实际长度测定。当选用鱼缸的长(或宽)进行长度测定时,拍摄的视频需要进行尺寸裁剪,使其视野同鱼缸完全相切;当选择取景框边缘两点进行实际长度测定时,拍摄的视频可直接用于后续分析。对于b)所述的情景,此时需在拍摄范围内选择同一方向上的两点进行实际长度测定。对于c)所述的情景,此时可选用鱼缸的长(或宽)进行长度测定,或在拍摄范围内选择同一方向上的两点进行实际长度测定。当选用鱼缸的长(或宽)进行长度测定时操作更为简便。

步骤3)中,双击main.pyc运行程序,依提示依次手动输入实际鱼缸长度(mm)及鱼缸在电脑视频中对应的像素长度(px),即l(或r)和a(或b)。

步骤4)中,所述的视频预处理,是程序将原始视频最终转化为二值图像视频,从而使视频中每条鱼形成清晰的轮廓。可通过以下方法进行视频的转化:采用灰度变换的方法,通过设定阈值,逐点改变视频中每一个像素灰度值。目的是将我们感兴趣目标进行突出,相对抑制不感兴趣的区域。最终转化成的二值图像视频中,我们可清晰地分辨出其中的每一条鱼,而背景及其它杂质被滤除。原始视频与二值图像视频将同步播放。

优选地,在同步播放过程中,二值图像视频和原始视频的规格是预先设定的,无法改变显示窗口的大小,从而固定每个像素点对应的实际长度,保证追踪轨迹的路径长度计算结果是唯一的。

步骤5)中,所述目标点的确定:将二值图像视频中形成的每个清晰轮廓作外接圆从而形成圆心,即轮廓的质心(即每条鱼的重心),作为该鱼在游动过程中进行追踪的目标点。

步骤6)中,所述的实时追踪各目标点的位置变化,采用卡尔曼滤波的方法进行追踪。追踪的过程分为两部分:其一是预测部分,利用当前状态和误差协方差估计下一时刻的状态,得到先验估计;其二是更新部分,将新的观测值与先验估计值一起考虑,从而获得后验估计。在每次完成预测和更新以后,由后验估计值预测下一时刻的先验估计,重复以上步骤。利用该法,可根据当前每条鱼所处的状态预测下一时刻每条鱼所处的状态,并结合其下一时刻每条鱼所处的实际状态对预测结果进行校准。

步骤7)中,所述的实时计算和显示当前时间内所有目标点累计游过的像素点个数:程序将自动完成计算(采用欧式距离的计算概念,如正方形网格,游过对角线时相当于游过个像素点),并将计算结果实时显示于控制台。

步骤8)中,所述累计轨迹图的生成,程序将自动保存已用线条进行轨迹标注的最后一帧图像,并另存为png文件,存于自动生成的results文件夹内。

步骤9)中,所述的所有鱼游过实际总路径的计算,是依据预先输入的比例关系,将所有鱼游过的总像素点个数转化为实际距离。设其游过的总像素点个数为p(采用欧式距离的计算概念,如正方形网格,游过对角线时相当于游过个像素点),相应鱼游过的实际总路径为s,则存在以及因此最终计算出的实际总路径将在程序运行完毕后自动另存为txt文件,存于自动生成的results文件夹内。

本实施例将所有的操作方案进行了编程处理,基于windows系统编译出的程序可在手动输入“实际鱼缸长度(mm)”及“鱼缸在电脑视频中对应的像素长度(px)”后,自动进行后续分析并输出。在提供用于程序运行的main.pyc文件后,运行程序可自动进行后续分析和输出,包括:视频的预处理(包括二值图像的转化,以及设定二值图像视频和原始视频同步播放的规格)、目标点的确定、实时追踪各目标点的位置变化并以线条标注、实时显示当前时间内所有目标点累计游过的像素点个数之和、累计轨迹图的生成、所有鱼游过实际总路径的计算及计算结果的生成。

本实施例编译出的程序对于计算机环境有以下几点要求:计算机采用64位操作系统,基于×64的处理器;计算机预先安装anaconda(https://www.anaconda.com);计算机预先安装opencv(opensourcecomputervisionlibrary)。

程序的安装及运行流程如图1所示,包括以下步骤:

1新建文件夹(可任意命名)用于放置程序相关的所有文件,比如c://zebrafishtracking;

2在1所述的文件夹中拷入程序运行文件main.pyc;

3在1所述的文件夹中新建文件夹,命名为video(不可任意命名),用于放置一个待处理的原始视频文件,比如c://zebrafishtracking/video;

4双击main.pyc即可运行程序,依提示依次手动输入“实际鱼缸长度(mm)”及“鱼缸在电脑视频中对应的像素长度(px)”的参数值;

5程序自动进行后续分析并输出。

下面提供斑马鱼群的行为学视频追踪的一个具体应用实例。

1.视频的拍摄:

拍摄的内容为长方形玻璃鱼缸中的斑马鱼群。玻璃鱼缸置于实验台上,实验台背景为白色。将拍摄用的智能手机架设于支架式自拍杆上,然后将手机摄像头置于鱼缸上方,对缸内的区域进行拍摄。

拍摄的原始视频时长为1:00,分辨率为1304×592(即a=1304,b=592,通过文件属性可查知),单位均为px。拍摄时对视野范围进行了实际长度的测定,为340×137(即l=340,r=137),单位均为mm。

在电脑中预先安装好anaconda和opencv。在c盘新建文件夹,命名为zebrafishtracking。打开zebrafishtracking文件夹,拷入main.pyc文件。在zebrafishtracking文件夹中新建文件夹,命名为video。将原始视频置于video文件夹中,双击main.pyc文件运行程序。

依提示,依次手动输入“实际鱼缸长度(mm)”及“鱼缸在电脑视频中对应的像素长度(px)”的参数值,然后程序开始运行。程序将自动进行视频的预处理、目标点的确定、实时追踪各目标点的位置变化并以线条标注、实时显示当前时间内所有目标点累计游过的像素点个数之和。

图2为预处理得到的二值图像视频截图。图3为目标点的确定及位置变化的线条标注图。图4为程序运行中同步播放的原始视频和二值图像视频。图5为当前时间内所有目标点累计游过的像素点个数的实时计算和显示图。

程序运行完毕后将自动生成results文件夹,并将累计轨迹图(.png)、所有鱼游过实际总路径的计算结果(.txt)另存入此文件夹。图6为程序运行完毕后自动生成results文件夹;图7为程序自动生成的累计轨迹图;图8为所有鱼游过实际总路径的计算结果。

以上所述仅为本发明具体实施方式,本发明的保护范围并不限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围内,本发明的保护范围应以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1