简化计算机视觉
从系列中:计算机视觉与MATLAB
学习MATLAB如何使计算机视觉入门变得简单。
计算机视觉使用图像和视频来检测、分类和跟踪物体或事件,以理解现实世界的场景。在这个介绍性的网络研讨会上,您将学习如何使用MATLAB开发计算机视觉算法来解决现实世界的成像问题。
我们将通过现实世界的例子演示MATLAB如何使:
- 在杂乱的场景中检测物体
- 测量图像中物体的真实大小
本次研讨会假定您有一定的MATLAB经验,但没有计算机视觉经验。我们将重点介绍计算机视觉工具箱。
有关MATLAB计算机视觉的更多细节,请参阅以下链接:
- 了解更多原因MATLAB图像处理和计算机视觉
- 下载免费试用许可证计算机视觉工具箱!
- 有关产品功能的更多信息,请参阅帮助文档
- 报名参加培训课程计算机视觉的MATLAB教程
- 了解更多利用MATLAB进行深度学习
记录日期:2020年11月18日
欢迎来到简化计算机视觉网络研讨会。我叫桑迪普,在MathWorks的产品营销团队工作。计算机视觉被我们的客户广泛用于解决不同应用领域的各种视觉问题。例如,在自动驾驶中设计车道偏离预警系统。在机器人技术方面,帮助计划火星探测器。
这是一个基于计算机视觉的交通监控系统的简单例子,就像你开车经过红绿灯时可能注意到的那样。在这里,一个基于摄像头的监控系统在任何给定的时间点跟踪现场的汽车数量。在该系统中,计算机视觉主要用于检测和计数来自摄像头的每一帧光视频中的汽车。在视频中检测像汽车这样的物体是一项常见的计算机视觉任务,但类似的物体还有很多。
那么这些常见的任务或问题是什么呢?好吧,如果你是计算机视觉的新手,你可能有兴趣知道我是如何在场景中检测物体的。或者如何测量物体,或者图像中的区域。或者我如何检测对象,或者使用深度学习对事件进行分类。所以在这个视频中,我们的目标是帮助你开始解决这些常见的计算机视觉任务或问题。你们会用MATLAB来做一些真实的例子。
这些是我们在接下来30分钟左右会讲到的例子。让我们从第一个例子开始。在这个例子中,我有一个图像,左边是一堆杂乱的扑克牌。右边是一张特定扑克牌的图像。我在这里的目标是在一堆纸牌的图像中检测或定位特定的纸牌。这似乎是一个简单的任务。然而,要解决这个问题还有很多挑战。感兴趣的对象可能看起来比模板图像更小,也可能比模板图像更大。可以旋转,也可以倾斜。或者它们可能部分隐藏在其他物体后面。 These are some common challenges that you will notice in most object detection problems.
在这里,您不能使用模板匹配等标准图像处理算法来查找该对象。您将需要一种稍微复杂和健壮的方法。为了解决这个问题,我选择了一个非常基础的计算机视觉工作流程,叫做特征检测提取和匹配。因此,在我们开始理解这个工作流之前,让我们先了解什么是功能。简单地说,特征是图像中的一个独特区域,它导致另一个图像中的唯一匹配。而且在很多图像中都是可以重复的。图像特征的一些很好的例子是角、边、斑点,或者可能是物体的模板,或者场景本身的区域。
那么这个工作流是什么样子的呢?基于特征的对象检测工作流程主要包括三个步骤。首先,在对象的模板图像中检测有趣的特征。这是用绿色标记表示的。对另一个图像也做同样的处理。其次,在检测到的特征周围取一个区域,并将关于该区域的一些信息编码到所谓的特征描述符中。这被称为特征提取,由标记周围的绿色圆圈表示。对两个图像都这样做。
第三,在两张图像提取的特征之间寻找对应的匹配。然后去掉任何异常值。一旦你有了一组匹配特征,你就可以估计物体在场景中的位置。现在,让我们进入MATLAB,看看如何解决这个问题。
这就是我的MATLAB环境。现在,我要做的第一件事是阅读我们正在处理的两幅图像。一个是我们要找的红桃k这张牌的参考图像。第二,是包含这张卡片的杂乱的卡片图像。我将使用图像定价工具箱中的I am read来读取这两张图像。然后用我确定的一对把它们放在一起。
这是我的图像。正如你所看到的,红心k牌和图像牌并不完全在同一个方向上,并且比例作为参考图像。也可能不在同一个参考平面上。因此,像模板匹配这样简单的图像定价技术在这种情况下是行不通的。我们需要一种更可靠的方法,即在这些图像中寻找特征,并将它们进行比较以找到匹配。所以在下一节中,我将使用一种名为surf的算法来检测这些图像中的特征。
现在,surf专门处理二维灰度图像。所以我必须使用RGB来创建,将彩色图像转换为灰度图像。然后,我使用了计算机视觉工具箱中的检测冲浪功能,以及参考图像。这将输出图像的检测特征点。接下来,我想对这张图像的检测特征点进行可视化。这里,我只画出最强的50个点。
这里是参考图像,以及整个图像中最强的50个特征点,它们的位置用叉表示。这些定位点周围的圆圈表示特征的规模,这些特征加在一起应该是特征描述符的重要部分。这些特征描述符表示描述图像中其他特征的独特且有趣的信息,并将它们与图像中的其他特征区分开来。
现在,surf算法通过检测图像中的斑点来定义这些特征。斑点只是图像中高对比度像素的连接区域。在我们的例子中,一个斑点是牌中的红心花色。或者国王的眼睛在字符K区域有几个小点的。现在,像surf一样,还有许多其他的检测算法可以通过计算机视觉工具箱使用。例如,我们有fast,它非常擅长检测图像中的角落。因此,请参考帮助文档来了解更多关于所有这些不同的特征检测算法的信息。
现在,让我们回到脚本,看看接下来会发生什么。所以接下来,我将在卡的图像上检测冲浪特征。确保在两张图像上使用相同的检测算法,这样我们就可以进行苹果对苹果的比较,并匹配这些特征。让我们运行这一部分。看这一次,图像上有300个最强的点。这里,你可以看到我们在红心k牌区域有特征点,但在图像中的其他牌区域也有特征点。
现在,一旦我们检测到这张图像的特征点,接下来,我们将提取特征描述符,即这些点周围的区域映射。为此,我使用了计算机视觉工具箱中的提取特征函数。我传递灰度图像和之前检测到的点。这样我们就能得到特征向量,以及每张图像的对应位置。现在,这里使用的提取方法,取决于使用的检测算法,在我们的例子中是surf。我现在有两个图像的特征描述符。
接下来,我需要比较它们以找到匹配。为了做到这一点,我将使用计算机视觉工具箱中的匹配特征它将返回两个输入特征集中匹配特征的索引。然后,我可以获得两张图像对应的匹配特征点,并使用show match features查看匹配点。让我们运行这一部分,并查看两个图像的匹配点。
正如您在这里看到的,匹配功能在这两张图像中找到了大量匹配。而且这些匹配都在红心k区域内除了像黑桃j这两个点。注意这里有一些特征匹配,比如card字符区域键,和cards图像中的字符。还有这里的反向K。这样做的原因是surf算法是旋转不变的,这意味着它将检测匹配和特征,而不考虑它们的方向。而且,无论他们的规模如何。这就是为什么基于特征的检测器比简单的模板匹配技术要健壮得多。
现在我们已经找到了两张卡之间的匹配,我们还没有完成检测问题。我需要通过去除异常值来改进匹配,包括重复的匹配,比如反向的字符K,这样我就可以在纸牌图像中找到红心K牌所在的确切区域。为此,我将使用计算机视觉工具箱中的估计几何变换函数来计算变换矩阵,该变换矩阵将确定参考图像必须如何在几何上和空间上进行变换,以便它最适合卡片图像中红心k牌的边界区域。
这个函数还返回两张图像的内线点,这些内线点是通过使用一种叫做RANSAC的算法消除所有离群值获得的,就像我们在黑桃j纸牌中看到的那样。RANSAC,或随机样本共识是一种数学模型,它使用迭代方法通过随机采样观察点来估计内线,以找到最佳拟合结果。在我们的例子中,这是一个几何变换,将有助于将参考卡的图像与杂乱的卡的图像相匹配。您可以通过参考估计几何变换函数的帮助信息了解更多关于此算法的信息。
现在,让我们继续,运行部分以再次查看匹配的特性。但这一次,用的是离群者的遥控器。好了。那些异常值和黑桃j牌都被移除了。同时,注意到我们之前看到的其他一些模糊匹配也被排除了。最后,使用我们之前得到的变换矩阵,我们可以继续,变换一个与参考卡片图像尺寸相同的矩形,把这个新的盒子称为多边形。
然后,使用它来输入卡片的图像,以指示在杂乱的卡片图像中检测到的卡片的确切位置。这是最终结果。到目前为止,我们所看到的是如何使用参考图像检测图像中的卡片。现在,如果我们想检测这张牌的类型,或者识别这张牌呢?也就是说,这是一张红心k牌。现在,我们可以再次使用特征匹配的方法来做这件事。但是让我们看一个更复杂的方法我们将使用一个经过训练的检测算法来执行检测。
使用训练有素的检测器,而不是使用模板来查找和匹配特征,我们将使用类似冲浪的技术从大量图像中收集特征集,例如字符k。然后,使用机器学习模型,如SVM,我们将设计一个检测器,可以检测其他图像中的字符。由于训练有素的检测器已经使用数百到数千个模板图像的特征进行了训练,因此它是一种更健壮的方法,例如在不同的光照条件下检测物体,或试图通过其类别找到物体。这就像在图像中检测一辆汽车,而不管它的型号或品牌。
因此,在我们的例子中,让我们继续使用火车检测器,通过被检测卡片内的字体来检测卡片字符。也就是红桃K牌中的字母K。你们知道,我会用光学字符识别,或者OCR算法来做这个。让我们继续,看看如何在MATLAB中使用这个算法。首先,我们将使用fitgeotrans转换卡片的图像以匹配参考图像。我们这样做是为了使图像可以在空间上进行调整以匹配参考图像的尺寸。通过这样做,我们可以很容易地提取卡片中的字符和套件信息,因为我们知道这些信息总是在任何卡片的左上方区域可用。
让我们继续,使用imwarp函数对卡片图像进行反扭曲,并查看输出。这是红桃k牌的区域,这张牌的图像被变换了。接下来,我需要提取卡片中包含字符和suit的区域,并使用提取的区域分别检测它们。为了提取这些区域,我有一个辅助函数getCardROIs,它为我执行这个提取,并返回包含字符和suit的区域。我正在使用蒙太奇命令来显示两个提取的区域。因此,让我们运行这一部分,并查看输出。
这里是提取区域作为两个独立的子图像。接下来,我需要识别第一个子图像中的字符。要做到这一点,我可以使用光学字符识别,或OCR算法。OCR是一种用于检测和识别图像中的文本的技术。这可以是打印的,也可以是手写的。在MATLAB中,我们有一个预先训练好的OCR函数,可以在计算机视觉工具箱中使用。默认情况下,它可以检测多种字体,但也可以训练它来检测自定义字体。所以在我的脚本中,我使用OCR函数来检测子图像中的字符。
这里,是OCR返回的输出。正如你所看到的,它已经成功地检测到卡字符为k。接下来,我需要在第二个子图像中找到套装类型。为此,我采用了一种更简单的方法来使用模板匹配。我只是将这个子图像与四种花色的一组模板图像进行比较。我用的是视觉。TemplateMatcher系统对象从计算机视觉工具箱中执行模板匹配。如果您希望了解更多关于系统对象的信息,请访问,并找到视觉。在帮助文档中的TemplateMatcher。
我在for循环中对所有模板图像进行匹配。这里,在for循环中,我每次读取一个模板图像,调整子图像的大小以匹配模板图像,然后执行模板匹配。在本例中,system对象返回一个匹配度量,其中最大的度量值对应于最佳匹配。让我们运行section,看看子图像的结果是什么。如您所见,我们已经成功地检测到匹配这些心形的模板的输出。
这里需要注意的一点是,模板匹配是一种非常基本的检测技术,在这种特殊情况下工作得很好。但是,如果太空服没有对齐,大小不相等,或者对比度不同,这将会失败。所以对于更复杂的检测问题,可以考虑使用更健壮的方法,比如我们之前看到的基于特征的检测。最后,我们可以用检测到的纸牌字符注释卡片图像,以及花色名称,即红桃k。
像OCR一样,通过计算机视觉工具箱,MATLAB中还有许多其他对象检测器,可用于检测一些常见的对象,如条形码、人、脸、视频中的前景对象和博客。其中一些检测器还可以用您自己的数据进行训练,以检测其他感兴趣的对象。例如,在道路场景中检测行人。
MATLAB,通过计算机视觉工具箱,还为您提供了一套随时可用的基于几个流行的深度学习网络的对象检测器。在MATLAB中,你也可以输入,并使用预先训练好的深度学习网络来解决目标检测问题。例如,在这个视频中,我们展示的是一个预先训练的网络,叫做AlexNet,它已经被训练来检测大约1000个不同的对象类。MATLAB允许您用一行代码导入这个常用的网络,并在计算机视觉应用程序中使用它。
有许多深度学习模型,如AlexNet,在研究和商业领域中广泛使用,您可以快速导入到MATLAB中,并开始在您的解决方案中使用它们。现在,请注意,您可以在MATLAB中使用新数据重新训练这些网络,以检测其他感兴趣的对象。下面是一些常用的深度学习检测器的列表。另外,注意这些在MATLAB中是现成的函数。我想强调的另一件事是,MATLAB,除了使用预训练的网络使深度学习更容易应用于计算机视觉问题之外,它还提供了交互式应用程序,如标签应用程序,以及深度网络设计应用程序,使整个免费训练这些网络的整个工作流程从头开始设计新的网络,非常方便和利用的过程。
现在,让我们转到第二个例子,这是测量图像中物体的大小。在这个例子中,我有一个图像,它是不同种类的混合,还有一些其他对象。我想做的是将图像中的种类分离出来,然后确定所有种类的总价值。例如,如果我有两个25美分硬币和一个5美分硬币,总价值是0.55美元。现在,有一种方法,就是根据图像的大小来确定不同的种类。然后,如果我知道每种硬币的真实直径,比如说,四分之一的硬币是24.26毫米,我可以使用这两个信息,并找出每种硬币在图像中有多少种。
在此之后,计算图像中硬币的总价值是一个简单的数学。现在,为了比较图像中基于像素的尺寸和物体的实际尺寸,我们需要以实际单位计算像素的大小。这个因子将帮助我们找到图像中任何物体或区域的真实大小。现在,在真实世界单位中精确测量像素大小存在一些挑战。一个主要的挑战是,由于相机特性造成的失真可能会影响有效地进行这种测量。
为了解决这种失真相关的挑战,我将使用相机校准工作流程。校准使我们能够估计镜头和相机的性能参数。这些摄像机属性是什么呢?有一些固有属性,比如焦距,光学中心,透镜畸变,系数。还有一些外部参数,比如位置,摄像头相对于物体的方向。使用估计的参数,我们可以纠正从镜头拍摄的图像可能存在的任何失真。
摄像机标定是一种非常常用的技术,并有许多计算机视觉应用。例如,作为纠正图像以消除镜头失真问题的预处理步骤,或者当试图通过将同一镜头拍摄的多张图像拼接在一起来构建全景视图时。或者,当估计深度,或距离镜头的物体,特别是当使用基于工作室视觉的相机。在我们的例子中,我们将主要关注使用校准来消除图像中的扭曲,以帮助准确地测量像素大小和真实世界的单位。
现在,让我们进入MATLAB,看看如何解决这个问题。这就是我们要处理的图像。正如你所看到的,这张图片实际上有一些种类,还有一些其他的物体在图片的底部。在图像的顶部,我们有一个棋盘图案。所以棋盘图案对两件事非常重要。一是能够进行摄像机标定。第二步,是变换图像的方向,以及图像中可能存在的任何扭曲和歪斜。
让我们开始第一步,也就是相机校准。为了进行相机校准,我将使用相机校准器应用程序,它可以通过计算机视觉工具箱获得。要得到这个,我要到Apps选项卡。在图像处理和计算机视觉部分,我可以访问相机校准器应用程序。让我们打开它。
相机校准器应用程序中的第一步,是带来我们将用于校准步骤本身的图像。为此,我点击添加图片。在这里,我可以选择我将用于校准步骤的图像。在本例中,我使用了7张图像。但通常情况下,在钻井情况下,建议拍摄10至20张图像。同样在这里,它会问你棋盘方块的大小它将用于校准过程。我知道我的棋盘图案中的每个方格大约是20毫米。
提供这些,然后应用程序继续运行,开始查看图像,然后开始检测支票簿。然后给出了检测结果。这里,你可以看到它在六张和七张图像中都检测到了棋盘格。它说它将拒绝其中一个图像。点击OK。现在,它已经向我展示了它将用于校准过程的六张图像。
这就是结果。您可以看到,它已经在这些图像中的每个棋盘图案中检测到点。现在,我要做的下一件事是能够在相机校准器应用程序中查看一些可用的选项。这里的第一件事是相机模型。我可以选择标准镜头,鱼眼镜头,或者广角镜头。对我来说,这是一个标准镜头。我将保留这个作为默认选项。
此外,我还有一些选项可以帮助我改进参数估计。因此,我可以选择径向畸变系数。径向畸变通常是你沿着透镜边缘看到的,也就是沿着光学中心。对于广角镜头,你需要纠正这些扭曲。如果您愿意,还可以计算、倾斜和切向扭曲。现在,我将保持这些选项为默认值。接下来,我要点击校准按钮。这应该继续,并开始校准过程,并给我一些结果。
首先我要给你们看的是投影误差。如您所见,复制误差通常是校准误差。我们要确保误差值保持在较低的水平。这样做的方法就是去除异常值。在这种情况下,棋盘的第二幅图像显然比总体平均误差略高。我要把这个去掉,然后用剩下的五张图片重新校准。现在,你可以看到我已经删除了那张图片,我有了一个更好的总体平均误差,大约是0.57像素。在此之前,它大约是0.63像素。这并没有太大的不同,但这是试图提高校准结果的过程。
在此之后,我可以继续,并将相机校准参数导出到MATLAB工作区。我要保存这个的变量叫做camera parameters。现在,就像你知道的,如果你手动进行这个相机校准过程,它可能会变得非常复杂和丑陋。相机校准器应用程序真的有助于使这整个工作流程非常方便,并且容易在校准过程中没有专家。它可以让你自动检测棋盘点,它可以让你使用不同种类的相机模型,标准镜头,或直角镜头。它还会自动为你校准图像,然后让这些结果在MATLAB环境中可用,并用于进一步分析。
好的。现在我们已经完成了相机校准过程,我有相机参数保存为一个mat文件,我们可以继续,看看如何使用相机参数来校正硬币的图像。然后,用这个没有失真的图像来测量硬币的大小。我的最终目标是根据硬币的大小来识别它们,并找到图像中所有硬币的总价值。现在,让我们看看这幅图。
这就是图像。正如你所看到的,它包含硬币,以及图像下半部分的其他一些物体。还有上半部分的棋盘图案。棋盘图案在解决这个问题时非常重要。稍后我们会更详细地讲解。这张图像需要校正,或使用我们从相机校准过程中获得的相机参数进行校正。这样,在进一步处理之前,图像就没有任何扭曲。为此,我将首先加载相机对图像,然后使用计算机视觉工具箱中的未扭曲图像函数来校正图像。因此,让我们运行该部分,并查看输出。
在我们的例子中,未扭曲的图像看起来并没有太大的不同。但如果我们有一张使用广角镜头拍摄的图像,那么你会注意到未经扭曲后的显著差异。接下来,在我开始检测硬币和测量它们之前,我必须确保图像中的所有像素与真实世界的单位因子具有相同的像素,这是对整个图像进行精确测量的重要一步。为此,我们必须使用参考棋盘图案来转换原始图像,因为我们知道它是真实世界的尺寸。这种转换将确保像素到真实世界的测量在整个图像上是一致的。
现在,让我们看看这个变换是如何进行的。我将首先使用计算机视觉工具箱中可用的detect checkerboard points函数来确定棋盘图案点。让我们在图像中显示这些点。接下来,使用我所知道的关于棋盘图案的信息,比如沿着行和沿着列有多少个正方形,我可以确定侦探棋盘区域的角点。然后,我们将在一个新平面中找到角落的大致位置,这将删除任何可能存在的透视投影,因为摄像机与包含棋盘图案和硬币的平面的角度不同。
这些新类型的点在一个叫做basePts的变量中可用。我们来运行这段曲线,看看基准点和角点之间的关系。现在,使用基点作为参考,我们将找到我们需要的变换矩阵,我们需要将图像投影到基点表示的平面上。我们使用图像压缩工具箱中的fitgeotrans函数来做到这一点。这将返回一个转换矩阵,我可以使用imwarp函数来反扭曲图像。让我们运行该部分,并查看输出。
这是一个变换后的像。这个图像现在可以进行精确测量了。现在我已经有了一个包含硬币的转换图像,接下来我需要做的是检测图像中的硬币,它们只是圆形物体。因此,在这一节中,我首先使用imbinalize函数将转换后的图像转换为二进制。我在这里有一个滑块来调整阈值。通过这种方式,我可以从二进制输出中获得所需的结果。然后,我使用imfindcircles来查找来自图像处理工具箱的圆圈来查找图像中的硬币。
如您所见,这里有一些参数。我在这里又用了一个滑块来调整灵敏度参数,这样它只会挑出图像中代表硬币的最强圆圈。您可以通过参考imfindcircles函数上的帮助信息来了解更多关于它的其他参数。一旦我检测到圆,我知道了中心的像素坐标和半径,我将使用viscircles在硬币图像上显示这些圆形区域。因此,让我们运行这一部分,并查看结果。
如您所见,这些硬币被检测为圆形。它错过了一枚硬币。所以我可以回到寻找圆圈,通过调整这里的滑块来增加灵敏度以确保我检测到所有的硬币。这里需要注意的一点是,对于这样的检测问题,imfindcircles并不是一个非常健壮的技术。我们在这里假设硬币是图像中唯一的圆形物体。此外,在等待光照条件下,圆圈的检测可能并不总是工作得很好。在这种情况下,我们将不得不使用更健壮的方法,如使用我们在卡片检测示例中讨论的火车检测器来检测图像中的硬币。
现在我们已经在图像中检测到硬币的区域,并且我知道了硬币的大小和像素值,接下来,我将必须以现实世界的单位计算硬币的大小。要做到这一点,我首先需要知道像素与现实世界单位的比值是多少,然后我可以用它来计算现实世界的大小,单位是毫米,硬币的半径。为了做到这一点,我将再次使用棋盘图案作为参考。我将像以前一样检测棋盘上的点,然后以像素为单位计算图案中正方形的大小。我知道棋盘图案的正方形大小是20毫米。利用这个,我可以计算出这幅图像的像素毫米因子。因此,让我们运行该部分,并查看输出。
这是用棋盘画出的像素到毫米的比值。现在用这个像素到毫米的因素加上硬币,大小和像素,我可以计算出硬币的毫米大小。就像棋盘正方形的已知大小一样,我们也知道图像中硬币类型的真实半径。在我们的例子中,这些是美分,五分和25美分。
所以在下一节中,我用真实的尺寸值找到了三种硬币的像素大小,以及我们之前计算的像素到毫米的因素。以此为参考,我可以将它们与我们之前从图像中获得的圆的像素值进行比较。然后我可以把每个圆折成1美分、5美分或25美分。
这里,我首先对圆的半径排序。然后用MATLAB的直方图函数,以硬币像素大小为参考,将圆弯曲。让我们运行这一节,看看这些圆圈作为这三种硬币类型的分布。你可以在图表中看到,我们有两个圆,分别代表美分,3个代表五分,4个代表25分。我再次使用这个直方图函数来获得计数,并显示计数。一旦我有了图像中每种硬币类型的计数,我就可以很容易地计算出图像中硬币的总价值。这是1.17美元,这是图像中硬币的实际价值。通过这种方式,我们已经验证了我们的硬币尺寸,以及对这张照片的分类效果很好。
最后,我们可以在硬币的图像上显示我们的最终结果。注意,我在这里再次使用了viscircles,用彩色圆圈来表示图像中不同的硬币类型。现在,如果我们必须测量一个物体的大小,比如叶子,它没有非常明确的形状,并且没有简单的方法来自动检测图像中的这样一个物体呢?在本例中,一旦我们知道包含叶子的图像的像素到MM的因子,我们就可以使用imdistline,它允许您交互式地测量叶子区域中两个像素之间的距离。然后,你可以用它来计算现实世界单位的距离使用像素到MM的因子。
所以在这里,我用电脑的毫米距离代替了像素等级。所以在某种意义上,我们已经看到,如果我们在任何图像中有一个像棋盘图案这样的参考,我们可以计算像素到现实世界的单位因子,并使用它来测量图像中任何物体或区域的真实大小。我们在MATLAB中看到的,是相机校准器应用程序,支持标准和广角镜头。计算机视觉工具箱提供了一个单独的串行相机校准器应用程序,以帮助校准从工作室相机对拍摄的图像,通常在深度估计等任务中有用。
这就是最后一张总结幻灯片。我们已经看到,对于计算机视觉新手来说,如何使用MATLAB轻松入门。我们已经看到了一些例子——MATLAB可以很容易地使用现成的特征和基于深度学习的检测器来检测物体,甚至可以使用自己的数据来定制它们,使用交互式校准应用程序和物体分析工作流来进行真实世界的测量和图像。在预训练网络和文档中详细示例的帮助下,快速提高深度学习。
总之,如果你在思考下一步该怎么走,下面是一些步骤。转到计算机视觉工具箱产品页面,了解有关计算机视觉、其应用程序以及工具箱附带的其他特性和功能的更多信息。如果您想要更深入地学习如何使用计算机视觉工具箱,请报名参加讲师指导的培训课程。这也是一门在线课程。如前所述,还有一个关于深度学习的。如果您已经准备好探索该产品,并开始解决您的问题,那么请立即获得该产品的试用许可证。
正如我们所看到的,在计算机视觉工具箱中有一些基于深度学习的对象检测器。但是深度学习还有很多可以做的事情。请转到深度学习工具箱页面,了解有关此产品及其广泛功能的更多信息。你们中的一些人可能也对最终在基于arm的树莓派或基于gpu的NVIDIA Jetson板等硬件平台上运行计算机视觉算法感兴趣。请访问嵌入式视觉与MATLAB解决方案页面,以了解更多关于这一点的信息,以及MATLAB中与硬件实现相关的其他功能。非常感谢大家的聆听。
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。