首页> 中国专利> 一种基于深度学习的斑马鱼空间姿态与心脏位置估计方法

一种基于深度学习的斑马鱼空间姿态与心脏位置估计方法

摘要

本发明公开了一种基于深度学习的斑马鱼空间姿态与心脏位置估计方法,涉及图像识别处理领域,该方法包括:获取斑马鱼幼鱼采样图像制作数据集,对斑马鱼幼鱼采样图像进行关键点标注,构建多层卷积神经网络训练数据集并进一步计算,达到自动化识别在显微镜视野中斑马鱼幼鱼的姿态,通过帧差法对斑马鱼待测图像进行逐帧比较,通过检测斑马鱼心脏的细微变化,得到斑马鱼心脏的具体位置。该方法成本较低,操作简单,能够有效提高准确率,解决了传统注射方法中由操作人员人为判断引起的操作误差。

著录项

  • 公开/公告号CN112418171A

    专利类型发明专利

  • 公开/公告日2021-02-26

    原文格式PDF

  • 申请/专利权人 江南大学;

    申请/专利号CN202011438007.3

  • 申请日2020-12-10

  • 分类号G06K9/00(20060101);G06K9/46(20060101);G06K9/40(20060101);G06K9/62(20060101);G06N3/04(20060101);

  • 代理机构32228 无锡华源专利商标事务所(普通合伙);

  • 代理人聂启新

  • 地址 214122 江苏省无锡市滨湖区蠡湖大道1800号

  • 入库时间 2023-06-19 10:00:31

说明书

技术领域

本发明涉及图像识别处理领域,尤其是一种基于深度学习的斑马鱼空间姿态与心脏位置估计方法。

背景技术

斑马鱼是一种热带淡水硬骨鱼,是目前世界上重要的模式动物之一。其繁殖速度极快,可以为研究节省大量时间。其胚胎以及幼鱼期间通体透明,可以便于观察体内的器官发育情况。且斑马鱼的基因组在测序后,结果与人类的基因有着很高的相似度。这使得斑马鱼在多种学科及研究领域均具备极高的研究价值,也使斑马鱼成为近几十年生物医学等领域最受欢迎的研究模型之一。

在斑马鱼的研究实验中,注射是最常用的一项技术。传统的注射技术一般是通过人工寻找斑马鱼的心脏进行注射操作,需要事先对操作人员进行一系列培训,费时费力,且实际操作中存在多种环境因素影响,导致注射成功率偏低,且容易引入外界污染,因此如何确定斑马鱼的心脏位置是研究实验的关键。

发明内容

本发明人针对上述问题及技术需求,提出了一种基于深度学习的斑马鱼空间姿态与心脏位置估计方法,解决了传统注射方法中由操作人员人为判断心脏位置引起的操作误差。

本发明的技术方案如下:

一种基于深度学习的斑马鱼空间姿态与心脏位置估计方法,包括如下步骤:

获取斑马鱼幼鱼采样图像,建立斑马鱼的深度学习数据集;

建立多层卷积神经网络,用深度学习数据集对多层卷积神经网络进行训练优化,得到斑马鱼幼鱼的最优深度学习算法模型;

获取斑马鱼幼鱼待测图像并输入至最优深度学习算法模型,得到实时状态下的待测斑马鱼幼鱼的关键点坐标,关键点包括头、尾、双眼、身体凹陷点和鱼鳔;

根据各个关键点坐标确定待测斑马鱼幼鱼的心脏区域,通过帧差法检测心脏区域,根据待测斑马鱼幼鱼的心脏跳动检测出待测斑马鱼幼鱼心脏的准确位置。

其进一步的技术方案为,获取斑马鱼幼鱼采样图像,建立斑马鱼的深度学习数据集,包括:

使用MS-222对斑马鱼幼鱼进行麻醉处理,将麻醉后的斑马鱼幼鱼放在显微镜下,利用显微镜下的CCD相机进行拍摄得到斑马鱼幼鱼采样图像,并建立斑马鱼的深度学习数据集;使用labelme标注工具对斑马鱼幼鱼采样图像的各个关键点进行标注;将所有标注后的斑马鱼幼鱼采样图像随机划分为数据集对应的训练集以及测试集。

其进一步的技术方案为,用深度学习数据集对多层卷积神经网络进行训练优化,得到斑马鱼幼鱼的最优深度学习算法模型,包括:

训练采用pytorch进行开发,并采用NVIDIA GPU对训练进行加速,训练集训练完成后,用测试集对训练结果进行测试,通过调节学习率以及损失函数得出最优深度学习算法模型。

其进一步的技术方案为,多层卷积神经网络为CPM网络,CPM网络包括六个阶段,六个阶段顺次相连,则获取斑马鱼幼鱼待测图像并输入至最优深度学习算法模型,得到实时状态下的待测斑马鱼幼鱼的关键点,包括:

对斑马鱼幼鱼待测图像进行缩放得到尺寸变换后的斑马鱼幼鱼待测图像;尺寸变换后的斑马鱼幼鱼待测图像依次经过CPM网络的六个阶段后输出实时状态下的待测斑马鱼幼鱼的关键点;

其中,第一阶段包括依次相连的第一卷积网络、卷积核为1的卷积层以及卷积层输出的第一阶段置信图;

其余五个阶段的连接结构相同,均包括依次相连的卷积网络、连接层、倒残差层、卷积核为1的卷积层以及卷积层输出的对应阶段的置信图;尺寸变换后的斑马鱼幼鱼待测图像输入至第二阶段的卷积网络,第二阶段的卷积网络还分别连接其余四个阶段的卷积网络;上一阶段对应输出的置信图输入至下一阶段的连接层中,第六阶段输出的置信图作为最终输出,置信图的峰值点即为对应的关键点位置。

其进一步的技术方案为,尺寸变换后的斑马鱼幼鱼待测图像的尺寸为500*500、通道数为3;

卷积网络的数据尺寸为125*125、通道数为16;

倒残差层的数据尺寸为125*125,第二阶段的倒残差层的通道数为22,其余阶段的通道数为23;

各个阶段的置信图的尺寸为125*125、通道数为6,六个通道数分别代表六个关键点的预测。

其进一步的技术方案为,从第三阶段开始,还向各个连接层输入池化后的目标中心高斯响应图,原始目标中心高斯响应图的尺寸为500*500、通道数为1,将原始目标中心高斯响应图池化后得到池化后的目标中心高斯响应图的尺寸为125*125、通道数为1。

其进一步的技术方案为,根据各个关键点坐标确定待测斑马鱼幼鱼的心脏区域,包括:

在世界坐标系下,定义具有六个关键点的三维斑马鱼幼鱼的空间模型;

将获得的各个关键点坐标通过坐标转换公式与三维斑马鱼幼鱼的空间模型进行坐标匹配,得到旋转矩阵,通过旋转矩阵得到对应的欧拉角作为待测斑马鱼幼鱼的姿态,欧拉角包括偏航角和翻滚角,偏航角用于调整待测斑马鱼幼鱼的身体达到一个适合吸持针吸持的角度,翻滚角用于调整待测斑马鱼幼鱼的心脏暴露程度;

坐标转换公式为:

其中,(X,Y,Z)是三维斑马鱼坐标,R为旋转矩阵,是X、Y、Z三个轴向旋转矩阵的乘积,即R=R

根据待测斑马鱼幼鱼的姿态确定待测斑马鱼幼鱼的心脏区域,并调整待测斑马鱼幼鱼的方位,使待测斑马鱼幼鱼的心脏位置充分暴露。

其进一步的技术方案为,坐标匹配的具体实施方法包括:将像素坐标系中的二维关键点坐标、世界坐标系中的三维关键点坐标、CCD相机焦距、图像中心的像素坐标输入至opencv中的solvePnP函数,计算得到旋转向量,并将旋转向量转化为旋转矩阵,转化关系为:

其中,旋转向量r=[r

根据旋转矩阵计算得到对应的欧拉角的计算公式为:

θ

θ

其进一步的技术方案为,通过帧差法检测心脏区域,根据待测斑马鱼幼鱼的心脏跳动检测出待测斑马鱼幼鱼心脏的准确位置,包括:

读取斑马鱼幼鱼视频序列的第一帧图像,对第一帧图像进行降噪处理并设置为背景图;

读取下一帧图像,与背景图进行差分运算,像素化之后把像素点相减,得到灰度差的绝对值,记视频序列中第n帧和第n-1帧的图像分别为F

D

将下一帧图像更新为背景图,按照公式(5)对差分图像的每个像素点进行二值化处理,得到二值化图像R'

其中,T为设定阈值,灰度值为255的点即为运动目标点,运动目标即为斑马鱼幼鱼心脏,灰度值为0的点为背景点;

对二值化图像进行降噪、腐蚀膨胀处理后,计算处理后的二值化图像上的运动区域轮廓位置;

判断运动区域轮廓面积是否满足需求,若是则计算运动区域轮廓的边界框,并在图像中显示,重新执行读取下一帧图像的步骤,直至视频序列中的所有图像处理完毕,对二值化图像进行连通性分析,最终得到含有完整运动目标的图像R

本发明的有益技术效果是:

1、本申请使用pytorch进行深度学习,具有灵活易用、运行速度快、上手快、可读性强等诸多优点,将pytorch深度学习与斑马鱼操作平台结合,将会为斑马鱼的操作研究带来十足的意义;

2、本申请通过制作斑马鱼幼鱼数据集,充分利用深度学习网络的强大能力,通过有监督的学习方式,以关键点检测的训练方式让网络不断学习斑马鱼的关键点位置信息,再通过二维到三维的坐标转换得到斑马鱼的姿态信息,与传统的通过计算法得到斑马鱼的位置姿态相比,本申请的方法更加简便易得;

3、本申请采用opencv对斑马鱼幼鱼的心脏进行逐帧的移动侦测,与传统的人工估算心脏位置相比具有更高的精确度,可以由此对心脏进行进一步的操作。其算法实现简单,程序设计复杂度低;对光线等场景变化不太敏感,能够适应不同的动态环境,有着比较强的鲁棒性。

附图说明

图1是本申请提供的斑马鱼空间姿态与心脏位置估计方法的流程图。

图2是本申请提供的标注后的斑马鱼幼鱼采样图像的示意图。

图3是本申请提供的CPM网络的卷积神经网络图。

图4是本申请提供的斑马鱼幼鱼的姿态示意图。

图5是本申请提供的采用帧差法检测斑马鱼幼鱼心脏位置的流程图。

图6是本申请提供的心脏位置检测效果图。

具体实施方式

下面结合附图对本发明的具体实施方式做进一步说明。

本申请公开了一种基于深度学习的斑马鱼空间姿态与心脏位置估计方法,其流程图如图1所示,实施过程中,具体采用的显微系统为一个具有7:1变焦比的立体显微镜,搭配一个CCD相机在显微镜视野下以12帧/秒的速度捕获显微镜下的图像。斑马鱼选用5-6天的斑马鱼幼鱼,此时的斑马鱼幼鱼色素沉积少,身体呈现透明态,易于观察及实验。

该方法包括如下步骤:

步骤1:获取斑马鱼幼鱼采样图像,建立斑马鱼的深度学习数据集。

步骤101:使用经过蒸馏水稀释过的MS-222对斑马鱼幼鱼进行麻醉处理,防止其身体移动影响观察及实验,将麻醉后的斑马鱼幼鱼放在显微镜下,利用显微镜下的CCD相机进行拍摄得到斑马鱼幼鱼采样图像,并建立斑马鱼的深度学习数据集。数据集的采集过程通过CCD相机完成,录制30条斑马鱼幼鱼在显微镜下不同姿态、不同方向的视频,并截取视频中较为清晰的500张图像完成数据的采集。该图像数据的分辨率为3072*2048,深度为24位,色彩模式为RGB。

步骤102:使用labelme标注工具对斑马鱼幼鱼采样图像的各个关键点进行标注,如图2所示,关键点包括头(即图中的顶部)、尾、双眼、身体凹陷点和鱼鳔。将所有标注后的斑马鱼幼鱼采样图像随机划分为数据集对应的训练集以及测试集。在本实施例中,将500张采样图像随机划分为80%的训练集以及20%的测试集。

步骤2:建立多层卷积神经网络,用深度学习数据集对多层卷积神经网络进行训练优化,得到斑马鱼幼鱼的最优深度学习算法模型。

步骤201:本申请的多层卷积神经网络为卷积姿态机(Convolutional PoseMachine,CPM)网络,CPM网络为全卷积结构,包括六个阶段,六个阶段顺次相连。

步骤202:训练采用pytorch进行开发,并采用NVIDIA GPU对训练进行加速,训练集训练完成后,用测试集对训练结果进行测试,通过调节学习率以及损失函数得出最优深度学习算法模型。

可选的,可以使用Resnet50、CPM、PFLD深度学习网络框架对斑马鱼的的深度学习数据集进行训练,比较不同的算法在数据集上的表现,最终选择CPM网络作为斑马鱼最终识别算法模型。

步骤3:获取斑马鱼幼鱼待测图像并输入至最优深度学习算法模型,得到实时状态下的待测斑马鱼幼鱼的关键点坐标。

如图3所示,在CPM网络中,对斑马鱼幼鱼待测图像进行缩放得到尺寸变换后的斑马鱼幼鱼待测图像,尺寸变换后的斑马鱼幼鱼待测图像的尺寸为500*500、通道数为3。尺寸变换后的斑马鱼幼鱼待测图像依次经过CPM网络的六个阶段后输出实时状态下的待测斑马鱼幼鱼的关键点。

其中,第一阶段用于对待测图像做初步处理,包括依次相连的第一卷积网络、卷积核为1的卷积层以及卷积层输出的第一阶段置信图。

其余五个阶段的连接结构相同,均包括依次相连的卷积网络、连接层、倒残差层、卷积核为1的卷积层以及卷积层输出的对应阶段的置信图。尺寸变换后的斑马鱼幼鱼待测图像输入至第二阶段的卷积网络,第二阶段的卷积网络还分别连接其余四个阶段的卷积网络。上一阶段对应输出的置信图输入至下一阶段的连接层中,可选的,从第三阶段开始,还向各个连接层输入池化后的目标中心高斯响应图,原始目标中心高斯响应图的尺寸为500*500、通道数为1,将原始目标中心高斯响应图池化后得到池化后的目标中心高斯响应图的尺寸为125*125、通道数为1。

第六阶段输出的置信图作为最终输出,置信图的峰值点即为对应的关键点位置。

可选的,卷积网络的数据尺寸为125*125、通道数为16。

倒残差层的数据尺寸为125*125,第二阶段的倒残差层的通道数为22,其余阶段的通道数为23。

各个阶段的置信图的尺寸为125*125、通道数为6,六个通道数分别代表六个关键点的预测。

从第三阶段开始,连接层将阶段性的卷积结果、上一阶段的置信图和池化后的目标中心高斯响应图串联起来,尺寸不变,输入通道数增加。原始目标中心高斯响应图为一个与待测图像同等大小、通道数为1的高斯模版,可以将响应聚拢到检测目标中心,用于处理图片中多目标的情况,实现多目标的检测防止视野中存在多条斑马鱼时出现误检测的情况。在每一阶段末尾用卷积核为1的卷积层代替全连接层,输出每一阶段的置信图,从而防止因全连接层过多导致图像的空间结构被破坏。由于CPM网络包含多个阶段,会有梯度消失的问题出现,为此CPM网络在每个阶段输出置信图前都计算损失函数(即loss值),即定期地添加中间监督来补充梯度,根据每个阶段的loss值更新底层参数,进而引导CPM网络产生精度不断提高的置信图。由于普通的卷积层随着网络的深度增加会存在梯度爆炸和梯度消失等问题,为了在保证准确度的基础之上提高检测速度,使其更适合斑马鱼的实时检测,在CPM的基础上,使用倒残差层,从而减少网络负荷,提高计算速度。

步骤4:根据各个关键点坐标确定待测斑马鱼幼鱼的心脏区域,通过帧差法检测心脏区域,根据待测斑马鱼幼鱼的心脏跳动检测出待测斑马鱼幼鱼心脏的准确位置。

步骤401:在世界坐标系下,定义具有六个关键点的三维斑马鱼幼鱼的空间模型。该空间模型下的斑马鱼幼鱼呈现基础姿态,基础姿态的偏航角、翻滚角均设定为0度。

步骤402:将获得的各个关键点坐标通过坐标转换公式与三维斑马鱼幼鱼的空间模型进行坐标匹配,得到旋转矩阵,通过旋转矩阵得到对应的欧拉角作为待测斑马鱼幼鱼的姿态,欧拉角包括偏航角和翻滚角,如图4所示,偏航角用于调整待测斑马鱼幼鱼的身体达到一个适合吸持针吸持的角度,比如,通过确定待测斑马鱼幼鱼的头、尾和双眼的位置就可以知道斑马鱼的偏航角,翻滚角用于调整待测斑马鱼幼鱼的心脏暴露程度。

坐标匹配的原理为:

在显微镜视野下的二维斑马鱼像素坐标,通过坐标转换公式依次转换到图像坐标系、相机坐标系,最后转换为世界坐标系下的三维斑马鱼坐标,坐标转换公式为:

其中,(X,Y,Z)是三维斑马鱼坐标,R为旋转矩阵,是X、Y、Z三个轴向旋转矩阵的乘积,即R=R

根据上述原理,坐标匹配的具体实施方法包括:将像素坐标系中的二维关键点坐标、世界坐标系中的三维关键点坐标、CCD相机焦距、图像中心的像素坐标输入至opencv中的solvePnP函数,计算得到旋转向量,并将旋转向量转化为旋转矩阵,转化关系为:

其中,旋转向量r=[r

根据旋转矩阵计算得到对应的欧拉角的计算公式为:

θ

θ

步骤403:根据待测斑马鱼幼鱼的姿态确定待测斑马鱼幼鱼的心脏区域,并调整待测斑马鱼幼鱼的方位,使待测斑马鱼幼鱼的心脏位置充分暴露。

具体调整方法为:通过吸持针吸住待测斑马鱼幼鱼,然后旋转吸持针来旋转待测斑马鱼幼鱼的身体,从而改变翻滚角。

步骤404:帧差法检测心脏准确位置基于python和opencv实现,如图5所示,具体包括:

步骤441:读取斑马鱼幼鱼视频序列的第一帧图像,对第一帧图像进行降噪处理并设置为背景图。

步骤442:读取下一帧图像,与背景图进行差分运算,像素化之后把像素点相减,得到灰度差的绝对值,记视频序列中第n帧和第n-1帧的图像分别为F

D

步骤443:将下一帧图像更新为背景图,按照公式(5)对差分图像的每个像素点进行二值化处理,得到二值化图像R'

其中,T为设定阈值,灰度值为255的点即为运动目标点,运动目标即为斑马鱼幼鱼心脏,灰度值为0的点为背景点。

当灰度差的绝对值大于一定阈值时,即视为运动目标,从而实现对心脏目标的检测作用。在帧间差分法中,阈值T的选择极为重要,比较T和d

步骤444:对二值化图像进行降噪、腐蚀膨胀处理后,计算处理后的二值化图像上的运动区域轮廓位置。

步骤445:判断运动区域轮廓面积是否满足需求,若是则计算运动区域轮廓的边界框,并在图像中显示,重新执行读取下一帧图像的步骤,也即执行步骤442,直至视频序列中的所有图像处理完毕,对二值化图像进行连通性分析,最终得到含有完整运动目标的图像R

最终得到的运动区域轮廓的边界框如图6(1)所示,边界框内完整运动目标的图像放大图如图6(2)所示,在实际斑马鱼幼鱼检测中,由于环境等因素,除了心脏位置有运动,其他位置也存在细小的运动。故加入运动区域检测,足够大的区域同时有运动时,可以认为是心脏所在位置。

以上所述的仅是本申请的优选实施方式,本发明不限于以上实施例。可以理解,本领域技术人员在不脱离本发明的精神和构思的前提下直接导出或联想到的其他改进和变化,均应认为包含在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号