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