CV计算机视觉(computer vision)概述--个人理解

CV即计算机视觉,简单的来说:计算机模拟人来理解图像所表达的意思,或对图像进行一些理智的操作,比如分割,分类等等。

目前接触到的计算机视觉主要有:

    图像分类(包括细粒度特征分类):将图像进行分类,该图像是飞机 ?汽车?狗?或者什么

    目标定位和识别(如yolo ssd等神经网络):图像中的目标物体的位置(用框就行标注),框中物体的种类,是什么

    图像分割:比如一张CT照片中,要求准确的将胃和肺切割出来

    图像生产(主要利用的是GAN):可以随机产生一张特定的图像(该图像现实中不存在),比如神经网络自己根据对狗的学习,自己会自动生产一张狗的图像,该张图像人类和机器没有办法判断它不是狗,这时候他就成功了,成功的骗了机器和人类,还包括根据意境的描述生产图像等

用到的方法主要分为传统机器学习方法和深度学习:

1、传统机器学习方法:

       为什么还有传统机器学习的存在--(传统机器学习方法的好处在于这些方法都已经被数学推导成立的,我们做的每一步都是有理可循,可逆向推导的,但是深度学习的神经网络就不一样了,当你的网络搭建的比较深时,其内部就像是一个黑盒子,你不知道里面是如何进行运行的,也不知道每一步的输出,比如:当你查看卷积后每一层的输出,第一层的输出可能是提取的边缘特征,那么到了第四层你根本无法理解他所表示的是什么,所以传统机器学习方法目前虽然不如神经网络的效果好,但也不可舍去,并且其中的思想很多可以被深度学习所借鉴)

      传统的机器学习方法主要依赖SVM、LR、XGboost等传统的机器学习方法,这种方式也是出现比较早的方法,那么我们使用这些方法,又有一个问题了,图像是不能被这些方法所使用的,所以我们需要将图像进行转换,通常是将图像转换为一个向量,那么最简单的转换就是将图像直接展开,比如200*300*3的图像直接展开为一个(200*300*3)大小的向量,这是一种最简单的方式,但是实际效果中这样很差,制作的向量不仅表达性不好,而且又很大,对计算造成了很大的负担,那么这时候就有人提出来各种对图像做处理的方法了,最有名的是对图像做特征描述,其根本思想就是:图像的大部分信息存在于图像的边缘处,而图像的边缘信息可以被梯度来表示出来,所以就有了一种数学方式来解析图像了,其代表性的算法包括 SIFT HOG等,具体的分析可以见我之前的一个博客:Opencv SIFT SURF ORB FAST 代码以及效果对比

     那么当图像可以被向量所有效的表示的时候,这时候在做一些处理就很方便了,这里简单的举两个例子:

(1)、hog+svm(或者其他分类器)

    当一个图像通过hog算法可以返回一个向量,这个向量的大小和你设置的cell和block的大小有关系,假如返回的是一个(1900)的一个向量,此时面对这样大小的向量,你的第一反应该是做一下PCA,看看压缩后还可以保存的信息量,如果可以的话,就应该做降维,便于以后的计算,然后每个图像都用一个统一的合适大小的向量表示,最后直接将此作为特征送入到分类器就可以了

(2)、sift+kmeans+svm 

     不同于hog特征提取方法的是,sift方法返回的是描述子,也就是一个一幅图像是由多个描述子组成的,而每个描述子又是一个向量,比如一张图像可以表示为128*64,意思为该图像可以由128个描述子来描述,而每个描述子又是一个64长度的向量。

具体见我这个博客:SIFT+词袋+SVM的深入理解

2、深度学习

     深度学习就相对来说比较复杂了,就目前来看已经有很多不同的网络了,这些网络也都是在CNN的基础上发展的,目前发展的趋势更倾向于一个端到端的学习,这些神经网络主要通过改变网络结构或者改变损失函数等来实现不同功能(分类,识别,切割等)。比如SSD,一个目标检测网络,其后端网络的实现也cnn,或者是摘选自某个经典网络(VGG16、Resnet)的一部分,其创新较yolo等目标检测网络主要创新在于增加了多个尺度下的feature map,提高了小物体的检测准确率。

 

    持更。。。  

 

  • 13
    点赞
  • 54
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 很高兴收到您的消息。这个GitHub项目是一个基于深度学习的垃圾分类项目,旨在通过计算机视觉技术将垃圾分类自动化。该项目使用了深度学习框架TensorFlow和Keras,以及一些常用的计算机视觉库,如OpenCV和Pillow。该项目包含了数据集的处理、模型的训练和测试、以及应用程序的实现等方面。如果您对深度学习和计算机视觉感兴趣,可以尝试学习和使用该项目。如果您有任何问题或建议,欢迎随时联系我。谢谢! ### 回答2: 这个项目是一个基于深度学习的垃圾分类项目,通过计算机视觉技术来实现垃圾的分类和识别。传统的垃圾分类往往需要人工干预,而这个项目利用深度学习的方法可以自动识别垃圾,并进行分类。 该项目的主要目标是训练一个模型,通过输入图片可以判断图像中的垃圾属于什么类型。项目通过使用深度学习框架,如TensorFlow和Keras来搭建一个卷积神经网络(CNN)模型。在训练过程中,将使用大量的垃圾图像数据集进行模型的训练,这有助于模型学习到不同类型垃圾的特征。 项目中的数据集包括了各种垃圾的图像,如玻璃、纸张、塑料、纺织物等。通过训练模型,可以使其具备识别和分类不同类型垃圾的能力。 这个项目的意义在于提供了一种自动化的垃圾分类方法,并且可以方便地应用于实际场景中。垃圾分类是一项重要的环保工作,能够有效地减少垃圾的污染和对环境的破坏。通过这个项目,可以提高垃圾分类的准确性和效率,为垃圾处理和回收提供更好的支持。 此外,该项目还提供了开源的代码和文档,可以帮助其他人学习和使用深度学习进行垃圾分类的方法。这对于促进相关领域的研究和进步具有积极的意义。同时,还可以通过开源社区的合作,不断改进和优化这个项目,使其更加全面和实用。 ### 回答3: 这个链接是一个关于基于深度学习的垃圾分类的GitHub项目。垃圾分类是指将垃圾按照不同的类别进行分类和处理的过程。目前,由于垃圾数量的快速增长和环境保护的迫切需求,垃圾分类成为了一个非常重要的话题。 该项目使用了计算机视觉和深度学习技术来实现垃圾的自动分类。计算机视觉是一门研究如何使计算机能够理解和解释图像或视频的学科,而深度学习是一种机器学习的方法,通过构建神经网络模型来学习和识别图像中的特征。 通过该项目,我们可以学到如何使用深度学习方法对垃圾进行分类。首先,我们需要收集一定数量的垃圾图像作为训练集。然后,我们使用深度学习框架,如TensorFlow或PyTorch,在训练集上构建和训练一个神经网络模型。该模型将学习从图像中提取特征并将垃圾分类到正确的类别中。最后,在测试集上评估模型的性能,并对模型进行调优和优化。 这个项目的意义在于,通过使用深度学习进行垃圾分类,可以减轻人工分类的负担,提高垃圾分类的准确性和效率。另外,通过对垃圾进行分类,可以实现垃圾的有效回收和资源再利用,有助于环境保护和可持续发展。 总结来说,该项目是一个使用深度学习技术实现垃圾分类的GitHub项目。通过该项目,可以学到如何使用深度学习方法对垃圾进行自动分类,减轻人工分类的负担,并促进垃圾的有效回收和资源再利用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值