计算机视觉领域,最常用的算法有哪些?

在人工智能计算机视觉领域里,最常用的算法有哪些?计算机视觉最佳的编程语言是哪门?python还是C/C++呢?还是说其它?

1个回答

计算机视觉领域,最常用的算法有哪些?
回答

计算机视觉领域一般不同的应用有着不同的算法实现,我主要研究的就是计算机视觉方面的应用,主要是在图像预处理、分类、目标检测等方面。

1. 图像分类。图像分类是根据图像的语义信息将不同类别图像区分开来,是计算机视觉中重要的基本问题,也是图像检测、图像分割、物体跟踪、行为分析等其他高层视觉任务的基础。机器学习方面的算法有SVM、Adaboost、决策树以及贝叶斯分类器等;深度学习方面经典的算法有AlexNet、VGG、GoogleNet、ResNet等网络。

2. 目标检测。目标检测就是在复杂场景中检测出我们需要的目标,又用传统机器学习算法实现的,也有用深度学习进行目标检测的。传统机器学习算法比如利用Adaboost进行人脸检测、SVM算法实现行人检测等;深度学习方面目标检测算法,既有基于区域建议的R-CNN、Fast R-CNN、Faster R-CNN等两个阶段的目标检测算法,也有Yolo、SSD等端到端的目标检测算法。

3. 目标跟踪。目标跟踪,是指在特定场景跟踪某一个或多个特定感兴趣对象的过程。我之前做过目标跟踪的实验,利用的是传统的图像处理算法,比如光流法、粒子滤波法、卡尔曼滤波法以及KCF相关滤波算法等。深度学习算法中有DLT、FCNT、MD Net等网络,深度学习目标跟踪算法接触的少,不是很了解。

4. 语义分割。语义分割是计算机视觉中的基本任务,在语义分割中我们需要将视觉输入分为不同的语义可解释类别,「语义的可解释性」即分类类别在真实世界中是有意义的,将整个图像分成一个个像素组,然后对其进行标记和分类。传统的图像分割算法有基于阈值的分割算法、基于区域的分割方法、基于边缘的分割方法以及基于特定理论的分割方法等;现在深度学习算法在语义分割上效果更好,比如现在最常用的全卷机神经网络算法(FCN)。

还有好多应用,比如人脸检测识别,有Adaboost算法、MTCNN网络以及FaceNet网络等;文字识别,智能驾驶,医学图像处理等等,分别有不同的算法实现。

计算机视觉编程语言的话需要根据算法以及平台来选择。传统图像处理大都用的是opencv和matlab平台,分别用C++语言和matlab语言;深度学习框架大都是基于Python的API实现的,可以用python语言实现,比如Tensorflow、Caffe、keras以及MxNet等平台,当然Caffe还可以用C++实现。

我现在实现传统图像处理算法的话用的是C++语言,深度学习算法在TensorFlow/Keras框架上用Python语言实现。

更多阅读

正在为您加载更多

问答青云计划自荐标准: