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