马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
很长时间没发帖了。因为最近一直在研究tensorflow,而且论坛也不是太稳定。卷积神经网络是最近很流行的,至于历史就不多说了。它是模仿人的视觉神经发明的机器学习算法。人脑大概有1000亿个神经元,运算起来非常快。现在最多神经元的残差神经网络的神经元数应该也超不过1亿个,而且用电脑运行是相当慢的,大概需要好几天的时间训练,比普通的机器学习算法还要慢,如果像人脑那样还需很长一段路要走。这里不能不感叹大自然的伟大。
既然这么慢为什么要还用它?因为它虽然训练起来慢可是准确率高,另外利用训练好的参数执行速度是很快的,现在成熟的一些机器领域都是利用训练好的参数去直接运行,比如无人驾驶汽车等。卷积神经网络因为是模仿的人眼所以对图片的辨识非常强,图片也是现在的主要的应用领域,opencv是一款非常好用的图片处理的第三方模块,最近又新出了python版本的opencv非常简单好用,所以我们在学神经网络前先要学习图片的处理技巧。
如果我们只有视觉可以认为万物皆图像,目前我们学习的电脑对图片就是如此,电脑其实是把图片解析为一个3维的矩阵,第一维是图片的长度,第二维是宽度,第三维是颜色通道(红,绿,蓝),我们还是用代码解释一下:
安装opencv非常简单,装完anaconda后,在windows菜单里启动anaconda navigator,进environment选项把opencv安装上就行了,如图:
然后我们开始打开jupter notebook写代码:import cv2
import numpy as np
a=np.zeros((300,300,3),dtype=np.uint8)
cv2.imshow('a.png',a)
cv2.waitKey(0)
先初始化一个300*300*3初始值都是0的三维数组,用opencv的imshow方法解析成图片就是一张全黑的图片,因为0就代表没有任何颜色。b=np.zeros((300,300,3),dtype=np.uint8)+255
cv2.imshow('a.png',b)
cv2.waitKey(0)
以上代码是把所有数值都初始化为255,255就是把3个通道所有颜色都掺一起就变成全白色了。c=np.vstack((a,b))
cv2.imshow('a.png',c)
cv2.waitKey(0)
这就是把以上2个矩阵组合到一起了,就是一半黑一半白。a[:,:,0]=255
cv2.imshow('a.png',a)
cv2.waitKey(0)
opencv是按照蓝绿红的顺序来解析颜色的,以上代码是只把三通道的第一个通道的值改成255,就变成蓝色的了。
这个帖子就是简单的解释一下图片的原理。 |