学生休息室

分享学生如何在日常项目中使用MATLAB和Simulink的技术和现实例子#studentsuccess万博1manbetx

野外深度估计

大家好,我们MathWorks与Drivenda合作,非常高兴为您带来数据科学挑战-《深海黑猩猩法案》:野生动物保护的深度估算

通过这次挑战,您将获得在家工作时使用单目摄像头视频数据集的真实体验,学习新技能,并在网上赢得一些奖金。你还将协助野生动物保护主义者监测物种数量和种群变化,这有助于他们保护地球的自然资源。

我们鼓励您使用MATLAB通过提供免费MATLAB许可证.

你的这项挑战的目标是自动估计摄影机陷阱视频中选定帧的摄影机陷阱和动物之间的距离。自动距离估计可以快速加速获取保护用种群监测估计值。主要数据包括西非两个公园的摄像机捕捉视频,以及手标距离和动物的估计边界框坐标。退房本页有关详细数据和问题概述。

为此2博客文章系列,我们将为您提供详细的资源,帮助您解决这一难题。第一篇博客将讨论单目深度估计,将视频作为数据集,以及您可以实现的不同方法,以最低的误差解决问题。第二博客这是一个详细的启动程序代码,用于MATLAB中的一种方法。

单目深度估计

单目深度估计是一个反问题——给定生成的图像,我们试图计算组成它的特征的排列。此外,这是一个不适定问题,因为没有唯一的解决方案。例如,图像中看起来更小的猴子可能离得更远,反之亦然。艾姆斯房间就是一个很好的例子:

传统的深度估计是通过在多个视点上匹配特征来实现的。例如,从运动结构和立体视觉匹配。然而,在这个例子中,这些方法是不可行的。当被摄体在视频中移动时,帧之间的位移未知,因此传统方法不太合适。

尽管有上述困难,单目深度估计是一个广泛研究的领域,近年来取得了越来越多的成功。希望通过这次挑战,你能继续取得进步。

资源:

深度估计:基础与直觉

处理数据

视频数据

使用视频是传统图像处理的一个扩展–视频只是一组按特定顺序排列的图像,也称为帧。每个帧提供有关场景的空间信息,但综合考虑,视频的动态特性提供了额外的时间维度。

要考虑的第一步是从视频中提取必要的帧,以确保保持正确的排序。然后,可以在执行机器学习之前对其进行处理

资源:

录像机

图像处理

处理数据

处理视频的另一个挑战是数据集的大。在MATLAB中,可以使用数据存储,为太大而无法放入内存的数据集合创建存储库。数据存储允许您将存储在磁盘、远程位置或数据库上的多个文件中的数据作为单个实体进行读取和处理。

资源:

了解数据存储的概念:数据存储入门

为图像、文本、音频、文件等创建不同的数据存储。不同文件格式或应用程序的数据存储

直接使用内置数据存储作为深度学习网络的输入:用于深度学习的数据存储

为基于文件的数据实现自定义数据存储:开发自定义数据存储

挑战数据将使用AWS中存储的数据。所以了解如何从S3存储桶访问数据

开始

一旦数据准备就绪,下一步就是考虑你的方法。与数据科学中的任何问题一样,这里有许多可能的途径。以下论文为研究提供了一个良好的起点。它评估了许多现有方法,并为进一步发展提供了一些想法:基于深度学习的单目深度估计:综述。除此之外,我们在下面为两种可能的方法提供一些起点。

方法1:光流+CNN

第一种方法使用光流在背景中检测动物,然后利用预先训练好的图像分类网络进行回归。

对于视频中的每个标记帧,计算与前一秒相比的流量。鉴于动物在静止背景下移动,光流会突出显示它们所在的位置,并提供一些关于它们移动的上下文。为了提高信噪比,使用提供的边界框为t生成二进制掩码感兴趣区域。这是用来代替简单地裁剪图像以保留空间上下文。

这将生成一个新的图像帧数据集,作为下一步训练的输入。在这里,为了简化训练,我们可以使用经过预训练的图像分类CNN,并进行一些小的调整。即,将输入层转换为与数据集匹配的层,并替换最后几层,以执行向下回归到单个值的操作–depth估算。

在该方法中,虽然每个输入都被孤立地考虑,但光流本身包含来自原始视频的时间信息。

资源:

学习如何实施光流使用Horn-Schunck方法、Farneback方法和Lucas-Kanade方法检查本教程视频:计算机视觉训练,运动估计

图像深度学习

介绍卷积神经网络

方法2:将现有模型导入MATLAB

在他们的论文中”自监督单目深度估计研究Godard等人提出了一种称为Monodepth2的自监督模型,用于对单个图像进行深度估计。他们的深度预测网络将单个彩色图像作为输入,并生成场景的深度图。此外,他们还以github我们可以导入MATLAB并重新培训到新场景的存储库。

为了将PyTorch模型导入MATLAB,首先需要将其导出到开放式神经网络交换(ONNX)格式。幸运的是,PyTorch为此过程提供了一个非常简单的工作流,如中所述这个例子.

您还可以运行python脚本(“pytorchToOnnx.py”),我们用于从这是GitHub回购协议

一旦采用ONNX格式,就可以使用进口网络重要人物功能。

资源:

将预训练的深度学习网络导入MATLAB

深度学习导入、导出和定制

开始迁移学习

下一步

如果您没有MATLAB许可证,请通过请求免费MATLAB许可证.

请继续关注进一步的更新,并在下一篇博客我们将扩展上面概述的光流方法,为进一步开发提供起始代码和建议。

请随时在下面的评论中给出您的反馈或任何问题。

|
  • 打印
  • 发送电子邮件

评论

如需留言,请点击在这里登录到您的MathWorks帐户或创建新帐户。