计算机视觉中的人工神经网络

    人工神经网络(Artificial Neural Network,简称ANN)的目的是利用计算机模拟我们人类大脑处理问题的过程,这里来分析一下其逻辑,不作专业解释了。

    ANN是一个统计模型,由观测数据集(S)和概率(P)组成。

    对于一张图片,我们将其所有的像素作为我们的数据集,利用某个函数(方法)求得其为某一类事物的概率,概率值越大,认为照片的内容是关于该类事物的可能性也就越大。如我们有一组照片,可以分为三大类:狗,猫,蛇,那么对于每一张图片,利用某种方法,求得该照片内容是狗、猫、蛇对应的概率值,取最大的值为判断结果,若照片中含有羊的信息,而分类时没有关于羊的输出,则还是会将其归为概率最大值的那一类。

    那么人工神经网络怎么做的呢?

    答案是通过分层来实现,我们将一系列判断的过程转换为数学函数,每一个数学函数作为一个神经元(节点),将我们输入内容的某些信息进行判断,然后输出结果(分类信息)。比如现在我们有某些动物统计量信息(体重,高度,牙齿),根据这些信息对动物进行分类,那么我们有了三个输入神经元(对应统计量类别),而我们的输出层则取决于我们要分类的数目,若已知动物要分为狗、猫、蛇、羊,则我们的输出结果就应该有这4个(或许5个),那有输入有输出,之间经历了什么才能实现呢?这就是我们的数学函数所在的地方(隐含层),可以只有一个或多个隐含层,其数目没有严格的评判标准,依据试验结果为准,通常认为多个隐含层能提高判断的准确性(毕竟判断的信息会多一些),但也得考虑计算量会随着层数的增加而呈指数的增长,所以还是得依据经验而行。有了输入、处理、输出,一个完整的网络就完成了,有时候我们也得考虑输出的数目,比如我们分类类别总会比现实的物体要少(哪天包含所有的物体信息,那人工神经网络的使命就基本完成了),所以我们往往会多加一个分类类别:不确定内容信息,往往在训练过程中没有列出的类别,其判断的概率值会出现几个已有的类别差不多,或者有一个最大的概率值,但其概率还达不到我们要求的准确率(如80%),这个时候,我们就会考虑将其分为不确定一类,这样会比你遇到新事物而将其归为那个概率值较大的要好。

    那么这些统计量信息怎么来的呢?

    就通过上一个隐含层处理得到,不过在图像领域中这些统计量就不是体重、高度这些了,往往是边缘信息特征,或者局部信息特征等等。关于怎么一步步实现,接下来,通过opencv3 来试试看。

以上内容主要参考《OpenCV 3计算机视觉 Python语言实现》第2版

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值