您可以使用各种技术来执行对象检测。流行的深度学习方法使用卷积神经网络(CNNS),例如R-CNN和YOLO V2,自动学会检测图像内的对象。
您可以选择使用深度学习的对象检测开始的两个关键方法:
无论您是创建自定义对象检测器还是使用预先训练的对象检测器,您都需要决定希望使用哪种类型的对象检测网络:两级网络还是单级网络。
两级网络的初始阶段,如R-CNN及其变体,确定区域提案,或可能包含对象的图像的子集。第二阶段对区域内的项目进行分类。两级网络可以实现非常准确的目标检测结果;然而,它们通常比单级网络慢。
机器学习技术也经常被用于目标检测,它们提供了不同于深度学习的方法。常见的机器学习技术包括:
类似于基于深度学习的方法,您可以选择从佩带的对象检测器开始或创建自定义对象检测器以适合您的应用程序。在使用计算机学习时,您需要手动选择对象的识别功能,与基于深度学习的工作流程中的自动特征选择相比。
确定对象检测的最佳方法取决于您的应用程序和您尝试解决的问题。在机器学习和深度学习之间选择时要记住的主要考虑是您是否拥有强大的GPU和许多标记的培训图像。如果对这些问题中的任何一个的答案是否定,机器学习方法可能是更好的选择。当您有更多图像时,深入学习技术往往会更好地工作,并且GPU减少培训模型所需的时间。
只有几行MATLAB®代码,你可以构建机器学习和深度学习模型来检测目标,而不必成为专家。
MATLAB提供了交互式应用程序来准备训练数据和自定义卷积神经网络。为对象检测器标记测试图像非常繁琐,而且可能需要花费大量时间来获得足够的训练数据来创建性能对象检测器。该图像贴标程序应用程序允许您交互式地在一组图像中标记对象,并提供内置算法来自动标记地面真相数据。对于自动驾驶应用程序,您可以使用地面真相标签应用程序,对于视频处理工作流,您可以使用视频贴标签机应用。
自定义现有的CNN或从头开始创建一个可以易于浪费宝贵的培训时间的架构问题。该深网络设计师应用程序使您能够交互式地构建、编辑和可视化深度学习网络,同时还提供了一个分析工具,在培训网络之前检查架构问题。
使用MATLAB,您可以与来自TensorFlow™-Keras、PyTorch和咖啡因2等框架的网络和网络架构进行互操作,使用ONNX™(开放神经网络交换)导入和导出功能。
在用MATLAB创建算法之后,您可以利用自动化工作流来生成TensorRT或CUDA®代码GPU编码器™执行硬件在环测试。生成的代码可以与现有的项目集成,并可以用于验证桌面图形处理器或嵌入式图形处理器(如NVIDIA)上的对象检测算法®Jetson或NVIDIA驱动平台。