《Quantitative Biology》:LaZeTrack: An open-source object detection algorithm to detect and track 2-day-old zebrafish motor touch responses
编辑推荐:
斑马鱼是一种用于研究脊椎动物发育、疾病和药物发现的模式生物。2日龄斑马鱼表现出爆发游泳行为,可通过轻触尾部诱发。运动触觉反应通常被视频记录,之后由研究人员手工分析。尽管这是一种简单的行为学检测,但稳健、可重复且高效地分析这些视频的方法依赖于手动追踪,这容易受到
斑马鱼是一种用于研究脊椎动物发育、疾病和药物发现的模式生物。2日龄斑马鱼表现出爆发游泳行为,可通过轻触尾部诱发。运动触觉反应通常被视频记录,之后由研究人员手工分析。尽管这是一种简单的行为学检测,但稳健、可重复且高效地分析这些视频的方法依赖于手动追踪,这容易受到实验者偏差和误差的影响。在此,研究人员介绍LaZeTrack,一个基于机器学习(ML)的程序,它采用Ultralytics的YOLOv8 nano(YOLOv8n)目标检测算法,用于自动分析2日龄斑马鱼的触觉反应视频。该程序将视频文件分解为组成帧,然后通过一个定制训练的YOLOv8n算法,用于检测单条斑马鱼的存在(平均精度均值,mAP50–95 = 0.74)。LaZeTrack接着优化模型输出的追踪数据,并将其整理成Excel电子表格。然后它计算并提取四个相关的游泳指标:游泳持续时间(s)、游泳距离(mm)、平均游泳速度(mm/s)和最大游泳速度(mm/s)。LaZeTrack快速加速了分析过程,同时消除了与手动追踪相关的误差。此外,它允许高通量分析斑马鱼触觉反应视频,并能检测由温度差异引起的运动指标细微变化,展示了该追踪算法的实用性。LaZeTrack可在GitHub(Armstrong-Lab-70/LaZeTrack)上下载。
**论文解读:LaZeTrack——基于YOLOv8n的2日龄斑马鱼运动触觉反应自动化追踪算法**
**研究背景、问题与目的**
斑马鱼(*Danio rerio*)是脊椎动物发育、疾病机制和药物发现研究中的关键模式生物。2日龄斑马鱼对尾部轻触产生爆发性游泳反应,这一运动触觉反应(motor touch response)常被视频录制后手工分析。尽管该行为学检测简单,但传统手动追踪方法(如使用ImageJ)需要逐帧操作,耗时且易引入实验者偏差和误差,难以实现高通量、可重复的定量分析。现有深度学习斑马鱼追踪程序虽多,但尚无专门针对2日龄斑马鱼触觉诱发运动反应的自动化工具。此外,视频中常出现移动干扰物(如实验者手、镊子),增加了自动追踪的复杂性。为此,研究人员开发了LaZeTrack——一个基于机器学习(ML)的开源程序,旨在快速、无偏地分析2日龄斑马鱼触觉反应视频,无需昂贵软件或大量人力。论文发表在《Quantitative Biology》。
**主要技术方法**
LaZeTrack基于Python编写,运行于Google Colaboratory平台,用户需免费Google Drive账号上传视频。该程序采用Ultralytics的YOLOv8n(YOLOv8 nano)目标检测模型,该模型参数量约200万,适合计算资源受限环境。训练数据来自前期项目中收集的1084个斑马鱼触觉反应视频及对应的手动追踪Excel数据。研究人员编写自定义Python脚本,从Excel中提取帧-标注对,最终构建包含65416张图像-标注对的训练集(80%训练,10%验证,10%测试)。模型在NVIDIA GeForce RTX 2070 Super(8192 MB)GPU上训练400个epoch,批量大小8,采用默认优化设置(随机梯度下降、学习率0.01、动量0.937、权重衰减5×10
?4),并应用数据增强(如马赛克、随机缩放、翻转、颜色抖动等)。训练后,LaZeTrack对每帧输出边界框,再通过基于OpenCV的计算机视觉(CV)算法优化:去除培养皿中心暗点(用于定位)、识别并掩蔽镊子,最后以边界框内最暗像素点定位斑马鱼头部。程序还通过线性插值、速度阈值(>300 mm/s)和帧位置校正错误预测,并用One Euro滤波器检测游泳模式起始(阈值30 mm/s)和终止(阈值15 mm/s),最终计算四个游泳指标:游泳持续时间(s)、游泳距离(mm)、平均游泳速度(mm/s)和最大游泳速度(mm/s),输出Excel汇总表。
**研究结果**
**2.1 运动触觉反应追踪与分析的工作流程**
LaZeTrack设计为运行在Google Colaboratory上,要求用户输入视频文件夹、帧率及x-y校准值(x–y cal,由帧中已知物体实际长度与像素长度之比得出)。程序将视频拆解为帧,经YOLOv8n预测,再通过CV算法优化,最后生成包含每个视频四项游泳指标的Excel文件。
**2.2 数据收集与提取**
研究人员利用前期项目中1084个视频的手动追踪数据(Excel文件)构建训练集。自定义Python脚本从Excel文件中提取标注,并将视频帧与对应标注配对,形成YOLOv8兼容的PyTorch .txt格式。
**2.3 训练YOLOv8n**
最终训练集包含65416对图像-标注,按80-10-10分为训练、验证、测试集。使用预训练YOLOv8n模型,训练400 epoch,批量大小8,4个工作线程,早停法耐心为30 epoch。采用默认数据增强策略。
**2.4 YOLOv8n算法**
YOLOv8n由骨干网络(backbone,卷积神经网络提取多尺度特征)、颈部(neck,多尺度特征融合)和头部(head,生成类别、置信度和边界框)三个模块组成。其参数量少(2 million),适合简单单目标检测任务。
**2.5 不同训练集大小下YOLOv8n的性能**
以平均精度均值(mAP
50–95)评估性能。使用第一个数据集(18189图像)时mAP
50–95=0.74;第二个数据集(20014图像)增至0.79;但最终数据集(65416图像)性能回落到0.74。可能原因是更大数据集包含更真实的变异(如不同实验者的操作差异、干扰物出现频率),虽降低平均精度但提高了泛化性。
**2.6 预测生成与优化**
LaZeTrack逐帧输入YOLOv8n模型,输出边界框。优化CV算法依次执行:检测并掩蔽暗点、检测并掩蔽镊子、寻找边界框内最暗点(假设为斑马鱼头部)。若无法可靠定位,默认使用边界框中心。
**2.7 预测校正**
程序通过三种方式修正YOLOv8n错误:删除开头或结尾帧的无效预测;验证速度是否超过300 mm/s,若超限则删除并替换为空值;对空值进行线性插值。同时生成ImageJ兼容的.csv文件供用户手动复核。
**2.8 关键帧提取**
利用One Euro滤波器平滑位置数据,设定运动起始阈值30 mm/s、终止阈值15 mm/s。分析显示LaZeTrack倾向于提前检测游泳起始(p=0.016),但终止检测准确(无显著差异)。
**2.9 追踪数据分析**
LaZeTrack利用用户提供的x-y校准值将像素距离转为毫米,计算四项游泳指标:持续时间(帧数/帧率)、距离(逐帧笛卡尔距离之和)、平均速度(距离/帧率均值)、最大速度(速度列最大值),并生成汇总表格。
**2.10 斑马鱼表型检测**
为验证检测细微表型的能力,研究人员将斑马鱼在检测前1小时分别置于23.5°C、28.5°C和33.5°C水中,记录触觉反应。LaZeTrack分析显示:游泳距离在28.5°C(p=0.018)和33.5°C(p=0.01)组显著高于23.5°C组;平均游泳速度在33.5°C组显著高于23.5°C组(p=0.027);最大游泳速度在28.5°C(p=0.035)和33.5°C(p=0.03)组显著高于23.5°C组。游泳持续时间无显著差异。
**2.11 与手动追踪的性能比较**
对同一批视频数据,手动追踪(ImageJ)分析显示:游泳距离和最大速度的组间差异与LaZeTrack一致;但平均游泳速度无显著差异,而LaZeTrack检测出33.5°C组显著升高。进一步直接比较28.5°C组两种方法的结果,四项指标均无显著差异,表明LaZeTrack数据与手动追踪高度一致,且能降低II类错误。
**总结讨论与结论**
LaZeTrack的优势在于可扩展性和可访问性:基于Google Colaboratory和免费云存储,无需专有硬件或软件;YOLOv8n模型在标准化视频条件下对单目标追踪提供足够精度。虽训练数据量增加并未进一步提升mAP
50–95,但更广的数据变异增强了模型泛化能力。温度实验证实LaZeTrack能可靠检测游泳指标差异,且平均速度的显著性优于手动追踪,提示其追踪头部单一位置降低了噪声。当前主要局限是游泳模式起始/终止检测的准确性,可能受干扰物或低速度噪声影响。未来方向包括集成用户界面、改进开始/结束检测算法(如循环神经网络)、或整合ByteTrack等现代追踪框架,并扩展至更老斑马鱼(beat-and-glide模式)。研究结论(翻译原文讨论最后一段):总之,LaZeTrack将2日龄运动触觉反应检测的分析时间从数小时缩短至数秒,因此可能加速未来斑马鱼研究中的发现速度。