
cnn
文章平均质量分 68
卷积神经网络
机器之眼_机器视觉MeGauging实现
刘刚(有光),机器视觉工程师十四年,电话微信同号13163761742
开课收徒,如果年轻的你立志机器视觉,有万元户的目标,我是你的不二选择
展开
-
机器视觉匹配中使用bpnet匹配(补充,形状匹配与bpnet匹配对比)
bpnet也就是这样,在手写数字识别上,还行,训练平均能够97分,一旦放入机器视觉匹配,1024*768的图像,+-45度旋转识别,慢的头大,看看我做实验的数据:(毫秒:小于40毫秒)+-45度搜索匹配,得1分钟,不行啊!得分55,角度-19,匹配位置(464,260),毫秒;得分99.3,角度-19,匹配位置(464,260),45秒;得分66,角度-8,匹配位置(548,184),毫秒;得分64,角度1,匹配位置(504,164),毫秒;得分99.3,角度1,匹配位置(504,164),47秒;原创 2025-03-25 12:32:41 · 157 阅读 · 0 评论 -
cnn中的dropout技术
编程中犯浑,无意栽柳,我就不必去求证了,辛顿估计也是这样的(前人很感兴趣的研究出了成果),促使他的dropout技术,论文我也没看,我就这个风格,喜欢瞎猜!然而,我没意识到使用序号(6*16)index=i*w+j,在6*18中已经变了,然而没有意识到,训练成绩反而成了佼佼者!我在无意中,把这个connection_table增加了两列=6*18,增加两列使用五合一。按辛顿的意思,dropout是随机丢弃一部分,我想,这是什么意思,有意的安排,变成了乱序,不就是随机吗?,可能给了辛顿灵感!原创 2025-03-25 22:09:12 · 546 阅读 · 0 评论 -
机器视觉匹配中使用bpnet匹配,二
然而,当你到达彼岸时,以上犯的错,皆有功德,当你想通大神的想法,并实现时,你发现你犯的错,他们都犯过,而且你很遗憾,你没有深究下去,他们都是从错误中领悟的!+-45度匹配我使用3度间隔,2度间隔,1度间隔,最后用2度间隔,1度间隔太慢,3度准确度下降,而我轮廓形状匹配粗匹配中5度间隔在这里作废!使用relu和relu的斜率代替f(x)=1/(1+exp(-x))及f(x)的导数f(x)(1-f(x))确实是一个好办法。hI固定roi[j] += xxxroi[i] * w1固定roi[i, j];原创 2025-02-24 18:24:34 · 848 阅读 · 0 评论 -
He初始化+relu+softmax+交叉熵(二)
恰好,实现了,97界限在一分类的识别和精细定位匹配上,差错很大,这个界限要到达996,997的样子,匹配识别效果,才能显现!其实也不用学六万次,针对十个数字,其实6千次就可以了(精细匹配中我就学5000次,3千,2千次都试过,还是5千次训练学习较好,毕竟一分类嘛!你要cnn,我们就要增加隐层,我用了bpnet的4层网络和5层网络,卷积核也用上了,学习训练6万次,很难上95,平均93,很恼火,去年就是这个情况。实际,在手写数字识别十个数字分类上,人们的视线不在是bpnet,而是卷积核,卷积核神经网络cnn。原创 2025-02-26 09:05:33 · 901 阅读 · 0 评论 -
机器视觉匹配中使用bpnet匹配
bpnet也就是这样,在手写数字识别上,还行,训练平均能够97分,一旦放入机器视觉匹配,1024*768的图像,+-45度旋转识别,慢的头大,看看我做实验的数据:(毫秒:小于40毫秒)有指数运算和阶乘,还不如上面!得分99.3,角度-19,匹配位置(464,260),45秒。第一原则,笨方法,给自己一条路,先能跑,正常稳定,准确的跑!得分99.3,角度-9,匹配位置(548,180),56秒。得分99.3,角度1,匹配位置(504,164),47秒。得分55,角度-19,匹配位置(464,260),毫秒;原创 2025-02-24 16:44:10 · 233 阅读 · 0 评论 -
卷积神经网络(cnn,类似lenet-1,八)
/每一个deltacnnx,都对应25个28*28中的数据元素,以及一个5*5的卷积核。Point temppt = 求二维(i, jilumnna[i].Y, jilumnna[i].X);其实公式是没有问题的,问题出在程序中,第一次卷积中,forward方向少了sigmoid!刚好我有彩色相机,不必10个输出,1个就好,在机器视觉中试一试,也不需要什么数据集!但是再往上走,可能性变为0.训练12万次也不行,当时也不知道,就认了!还是那句话,权重参数w就是卷积核,卷积核就是权重w!原创 2025-02-28 17:11:35 · 876 阅读 · 0 评论 -
He初始化+relu+softmax+交叉熵(五)
(四)中,看了很久,才发出来,原因是有个东西吓我一大跳!经确认,是正确的。毕竟程序已经行云流水了!这个博文中关于交叉熵的推导要注意一点:=p【k】-y【k】,这个公式的推导是ok的,要做一点点修改:针对loss(c)有=p【k】-y【k】;c也是0到9.所以L=loss(c)那么:(p【k】-y【k】),所以我们的程序才能正常跑数学上真不敢马虎啊!否则,程序不是白瞎了嘛!公式已经推导完成,我们再谈he初始化在back中的作用和影响,以做结尾。原创 2025-02-26 15:47:35 · 377 阅读 · 0 评论 -
He初始化+relu+softmax+交叉熵(四)
X【196】-》HI【80】/HO【80】-》YI【10】/z【10】,z【10】对应的概率p【10】,期望是y【10】X【196】-》HI【80】/HO【80】-》YI【10】/YO【10】,期望是d【10】用笨办法,展开他,当k指定时,对z[k](等同p[k])求偏导!别人程序看不懂,没关系,根据自己推导的公式,码代码!好,这就大功告成了,i,j,k搞清楚了,w1偏导数推导,以及i,j的准确位置和。X,HI之间用w1【196,80】好,我们求w1,这里关键在于烦人的。的偏导数,当j=10,原创 2025-02-26 12:37:09 · 410 阅读 · 0 评论 -
机器视觉匹配中使用bpnet匹配(五,转人工智能)
w1固定roi[i, j] = randomNormalDistribution() /(float) Math.Sqrt(size / 2f);当我研究了relu,并发现了he(kaiming)初始化,我才恍然大悟,他在相关系数归一化上下功夫,使用了高斯正态分布n~(0,1)如果你观察到了,并取得好的结果,一定要总结深挖!这里说明,我这种人,属于应用型的,搞出来,就不总结了,反而,失败了,回去总结!因为,我的结果很稳定,很准确了,我就在没有深究!当出现-4,5,3,7之类的值,就要差一些。原创 2025-02-25 11:47:54 · 356 阅读 · 0 评论 -
机器视觉匹配中使用bpnet匹配,三
做机机器视觉工程师编程好多年,最初学会的线程并发,好多年都不用,觉得应专注机器视觉的问题,让注意力不在编程调试上花时间,近期在思考gpu(显卡),多头注意力实际就是线程并发,一般我们个人编程和处理问题都是单线程,非并发的!今年任务算突破了,剩下就是修修补补,去年突破无海康相机sdk时,“精通“c#的我竟然看不懂别人的程序,里边用了很多的wait,现在看来,自己在编程新技术上,已站在被淘汰边缘,或许人生经常会站在这样的边缘而不觉气(察)!我们的后代,已长大,这个时代是他们的!实际就是,感兴趣区域的并发。原创 2025-02-25 09:47:34 · 141 阅读 · 0 评论 -
He初始化+relu+softmax+交叉熵(三)
X【196】-》HI【80】/HO【80】-》YI【10】/z【10】,z【10】对应的概率p【10】,期望是y【10】是relu+softmax+交叉熵的思维导图。X【196】-》HI【80】/HO【80】-》YI【10】/YO【10】,期望是d【10】是bpnet思维导图。X【196】-》HI【80】/HO【80】-》YI【10】/YO【10】,期望是d【10】————————————————(复制过来,乱码,太不厚道)X,HI之间用w1【196,80】X,HI之间用w1【196,80】原创 2025-02-26 10:47:35 · 373 阅读 · 0 评论 -
机器视觉匹配中使用bpnet匹配,四
而x=1>0,leaky relu=1,当这两个值进入sigmod(x),x最好工作在非线性区域,x在(-10,10)中最好,如果像leaky relu=-10^7这样的值经常进入sigmod,那么sigmod就没有意义了,可能就是他们说的,饱和区域工作!(忽然想起,二极管常工作在饱和区域,很形象)1,我们不能进步,就退步,即站在自己肩上不能前进,那么我就不动,bpnet+异步多线程并发不是很好,很稳定,很快,很准确嘛!2,我们要转人工智能,这里打的败仗,是人工智能学习中最好的经验,总结,就是前进!原创 2025-02-25 11:11:47 · 261 阅读 · 0 评论 -
He初始化+relu+softmax+交叉熵(一)
另外,F(yl-1)>0,F(yl-1)=yl-1;这个是找到了方差和期望(均值)的关系。下面的F(yl-1)就是relu函数。其他不懂,就翻翻书,概率论上有相关系数,方差,期望和高斯正态分布。dx(这个是书上期望的定义,期望我认为就是均值),这个就是公式8,y1是输入样本,我们归一化处理,即方差var(y1)=1,这个东西的方差,yl= hI固定roi[j]。F(yl-1)<0,就等于0,公式8变公式9.这是一个连锁反应,我们让每层输出方差都为1,则。所以F(yl-1)^2=(yl-1)^2。原创 2025-02-25 15:32:52 · 310 阅读 · 0 评论 -
卷积神经网络(cnn,He初始化+relu+softmax+交叉熵+卷积核+后更新,七)
是初心,很重要,有一段时间丢了,现在又找回来了!确实效果好,学习率0.2时,不觉察,但是0.02就会很明显!3层bpnet手写上97分。学习率,以前全部0.2.想分数上升,这是必须的!原创 2025-02-28 16:36:12 · 227 阅读 · 0 评论 -
卷积神经网络(cnn,He初始化+relu+softmax+交叉熵+卷积核,六)
才能推导出he初始化+relu+softmax+交叉熵+卷积核=cnn公式:,这才是cnn。我使用28*28gaos后,获得14*14图像作为网络输入,用了8个5*5 的卷积核!实际上,我们前面卷积核cnn中找x【?】的方法,一模一样,一个代码都不用改!现在w1cnn变成一个卷积核了,x不知道取什么值了,就是这个问题。里边只改动e初始化+relu+softmax+交叉熵即可!先实验1个卷积核,ok,再扩展!只能满足:He初始化+relu+softmax+交叉熵。我是直接在自己的八个卷积核上实验,ok。原创 2025-02-28 16:09:36 · 591 阅读 · 0 评论 -
cnn突破五(三层bpnet网络公式)
X【196】-》HI【80】/HO【80】-》YI【10】/YO【10】,期望是d【10】X,HI之间用w1【196,80】HO,YI之间用w2【80,10】原创 2024-10-06 08:43:03 · 298 阅读 · 0 评论 -
cnn突破四(生成卷积核与固定核对比)
cnn突破三中生成四个卷积核,训练6万次,91分,再训练6万次,95分,不是很满意,但又找不到问题点,所以就想了个办法,使用三个固定核,加上三层bpnet神经网络,看看效果,还别说,固定核效果不错,训练6万次,逼近96分,而且不到十秒就训练完成了,而机器自动生成卷积核要40多秒!原创 2024-10-05 18:36:13 · 1084 阅读 · 0 评论 -
cnn突破七(四层bpnet网络公式与卷积核bpnet公式相关)
这里要注意的是,我们要记录下这25个最大值图像,在10*10图像中的位置,以及在14*14图像中开始卷积的位置,我找到一个公式:如果在25个最大值图像中,i=3;j=4,池化时记录最大位置在(1,0)假定我们给5*5卷积核起名w1cnn,图像第一像素和hi的第一个对应w1cnn【0】,那么5*5卷积核走到第二个像素又用到了w1cnn【0】,w1cnn应该有25个,即w1cnn【0-24】14*14(w1cnn【25】)-》10*10(2*2池化,取最大)-》5*5-》80-》10,期望d【10】原创 2024-10-06 18:36:13 · 551 阅读 · 0 评论 -
cnn突破九(我们的五层卷积核bpnet网络就是lenet-1)
/图像28*28是ling,则标签是0,d[]={1,0,0,0,0,0,0,0,0,0};原创 2024-10-09 08:12:18 · 684 阅读 · 0 评论 -
cnn做整图匹配
其实,给我启发想到这两个方法的是前期学习简单bpnet推导时的收获,我们现在的情况退化后,就是,输入不变总是一副图像,迭代(训练)很多次后,输出只有一个结果的简单bpnet(这个结果可以判定是或不是)。我们换一幅图像,得分降到0.87,所以,我们可以用这个设置筛选,训练后的图像参数来预测下一幅图像,是不是我们想要的结果,这样我们就达到了目的。说明你不动,得分就高,移动图像改变,匹配度降低很快!我的另外一个认识,就是,cnn就是bpnet,一定要有这样的想法,这个很关键!我们先看一看移植后程序的效果!原创 2024-10-23 17:55:41 · 291 阅读 · 0 评论 -
cnn突破三
所以人能做到的高斯核,机器在不断改进和进化中,一定会生成,更震惊的,他可能生成的卷积核,你都没见过,但他确实效果好,所以,他得到的结果,还有可能超过你!我们训练学习了12万次,达到95分,用鼠标画了个2,识别出来了,得分99,不错,说明四个卷积核有了,我们把mnist原图的2,用学到的卷积核处理后的四个图像也有了,太神奇!所有的启发来自,28*28变14*14的那个常用的高斯卷积核,我们前面的网络实际是:28*28->3*3卷积后,隔行隔列抠图(相当于池化)->14*14->128->10。原创 2024-10-05 14:44:45 · 1063 阅读 · 0 评论 -
cnn突破八(两层卷积核bpnet网络扩展)
hicnn【0】来自temphicnn【0】【1】【10】【11】,一一对应池化中的位置(0,0)(0,1)(1,0)(1,1),假定(1,0)最大,即10=(第二行=1,第一列=0),即temphicnn【10=1*10+0】最大,对应x【14=1*14+0】28*28-》12*12-》4*4-》80-》10,显然这是一个5层网络,有扩展了,更复杂了,但我们要简单化:28*28处的卷积核我们记着为:w784【】,那么就有。hicnn是5*5的,temphicnn是10*10的,x是14*14的。原创 2024-10-08 19:31:58 · 656 阅读 · 0 评论 -
cnn抠图匹配能否代替形状匹配?
上十次的实验,发现最优有错误的情况,怎么办,办法在找到的坐标位置上,因为,坐标相似会有好几个,我们在这其中选,如果最优成绩,而坐标不在这相似坐标中,我们就否定他,看来,有得分,有位置提供了更多方便!以上移植到megauging上的测试,没事可以玩一玩,你仔细观察找到结果需要3.74秒,我们机器视觉中哪里能等这么长时间,况且我们测试的是80万图像,如果大于80万,肯定更慢!我们昨天工作,做了cnn整图匹配,今天我们像形状匹配一样抠图cnn匹配,很期待!以后我们可以优化试试,万事开头难,我们已经迈进来了!原创 2024-10-24 08:01:28 · 274 阅读 · 0 评论 -
cnn突破二(bpnet三层网络增加bias后,识别率没有下降)
可能我的观点保守偏激,但人工智能是时代潮流,作为逻辑数学一面的人工智能仍然可以辅助机器视觉,虽然机器视觉的高速,稳定,准确,ai谈不上,但是就像杨振宁说的,几何可以和代数相互验证,这就给物理提供了极大的便利。我们是不是让计算机编程进一步,变成数学编程语言,那么编程时,这个数学公式有严格定义,你就不可能犯上面的错误,这是一种方法,另一种方法就是,封装好,你去调用,也不会有这样的错误。这样给我们了一种警示,或者说启示,现在的rust编程语言,不会有指针错误,但语言仍然不能严格的发现数学逻辑上的错误。原创 2024-10-05 10:41:24 · 518 阅读 · 0 评论 -
cnn突破六(四层bpnet网络公式)
HO,H2I之间用w12【128,60】X,HI之间用w1【196,128】H2O,YI之间用w2【60,10】原创 2024-10-06 17:10:50 · 203 阅读 · 0 评论 -
cnn突破一(先搞定三层反馈神经网络bpnet,c#实现)
/图像28*28是壹,则标签是1,d[]={0,1,0,0,0,0,0,0,0,0};图像28*28是jiu,则标签是9,d[]={0,0,0,0,0,0,0,0,0,1}//图像28*28是ling,则标签是0,d[]={1,0,0,0,0,0,0,0,0,0};图像28*28是wu,则标签是5,d[]={0,0,0,0,0,1,0,0,0,0}//while循环完成60000图片的读取和高斯处理。原创 2024-10-04 18:59:36 · 1158 阅读 · 0 评论