1,调试ballon的时候:
提示:integer argument expected, got float
网上提示的是:由于python3,需要将”/“改成”//“.但是我使用的就是python2.但是对我来说没有用
大神帮忙调试:
这里就是,将padding后面的那个”)“给调整到下一行,就可以了。格式问题导致的。
2,调试coco的时候,出现mrcnn出现问题
他精确到model.py里面的Mask-RCNN里面的assert(tf<=1.3),具体的语句我忘记了,大概就是tensorflow的版本问题。
因此我就查看了一下tenssorflow的版本问题,
cd ~
python
import tensorflow
import tensorflow as tf
tf.__version__
就可以查看TensorFlow的版本了。返回断言assert就是判断返回一个true或者false。
3,还有就是使用这个github中有很多的使用感悟:
(1)github中有很多的英语
(2)一个项目中可能有很多的应用。每一个文件夹里面可能都有一个readme。
(3)在这个项目中有release,相关的资料可以在里面下载
(4)里面还有一些issue里面是别人的问题,还有相关的回答,我们可以 从别人的问题中找到答案。
(5)在使用这个github的时候,其实是不一定完全适用于我的电脑,所以是需要调试的。
————————————————————————————————————————————————————————
————————————————————————————————————————————————————————
我是分割线————————————————————————————————————————————————————————————————————————————————————————————————————————————————
二、
尝试运行inspect_balloon_model
这里面写的是关于pull request的作用和使用方法
参考连接:https://www.cnblogs.com/-walker/p/6093277.html
出现的问题与解决:
1,由于tensorflow的版本版本问题
解决方案是在issue里面搜索得到的https://github.com/matterport/Mask_RCNN/issues/23
增加了一条语句V3.0就好了
2,在加载权重的时候,出现keras不可以加载的问题
修改:就是将里面的technology全都改成saving。依然没有好,就关闭之后,重新打开jupyter notebook就好了
参考连接:https://github.com/matterport/Mask_RCNN/issues/694
3,一开始代码里面写的是weights_path = model.find_last()[1]
使用上次训练的model,然后就一直在报错。于是果断的换成了自己在网上下载好的,别人已经训练好的模型。
(其实,心里还是害怕出错的)
4,报错,目前还没有解决
5,报错之后解决不了,查找了github里面的issue,百度以及stackflow都没有查到答案,具体的语句我也看不懂。所以,决定,先看一下前面的。理解一下。
关于,这个问题。在bing上搜索,发现https://github.com/raghakot/keras-vis/issues/116
说讲tensorflow的版本降一下级到1.7
参考链接:https://www.jianshu.com/p/c2120a084c22
https://blog.csdn.net/junmuzi/article/details/78357371
(1)config = balloon.BalloonConfig()
这种就是在这个路径下面有一个ballon的文件,然后,里面有一个函数或者是一个类叫做BalloonConfig,这样config就相当于对应一个类或者一个函数了。一般是类,因为下面还有在他的基础上写的函数
(2)对于modellib这个文件感兴趣,但是没有找到。。。
(3)关于RPN(region proposal network 区域候选网络)
参考连接一枚:https://blog.csdn.net/lanran2/article/details/54376126?from=singlemessage
之前的RCNN,Fast-RCNN等物体检测架构中,用来提取候选框的方法是selective search,比较耗时
Faster RCNN=RPN+Fast RCNN
关于RPN的理解中,有一个判断框里面,是否有物体,以及,框与原图之间的偏移。但是原图的坐标到底是怎么回事呢?
我来理解一下:
1,RPN的输入就是Feature map
2,然后使用的sliding window进行卷积,得到H*W个向量,每一个向量都是256维的。得到256维的向量之后,我们还需要进行两次的全连接,得到2K个分数(物体还是背景),4K个坐标(就是x,y,w,h)
3,feature map与原图是对应的,每一个点都对应原图上的K个框(锚盒anchor boxes)。然后,每一个框的长宽比是预先设定好的。
RPN网络会生成anchor,然后会有相应的值,应该就是那个IoU吧,只是大于0.7的是postive ancors,小于0.3的是negtive anchors,在中间的是nerual,被排除在训练中,视为0。有点不理解
先收藏网址一枚:https://blog.csdn.net/u011974639/article/details/78483779?locationNum=9&fps=1
其中涉及到的refine anchor又是什么鬼???
NMS:非最大值抑制non-maximum suppression
ROI:region of interest 就是感兴趣区域
sliding window:滑动窗口是什么
mini mask:保存的是物体的mask,而不是整张图片的mask。
FPN:feature pymaid network就是特征金字塔:参考链接:https://blog.csdn.net/u014380165/article/details/72890275
这个就是多层独立的进行预测。
但是之前使用的都是经过上采样,多次融合到最后一层,然后使用最后一层进行预测。
复制一下他的分开的步骤:
1,RPN
(1)RPN Predict
2,Proposal Classification
(1)proposal classification
(2)step by step detection apply bounding box refinement 得到更精确的边界框 去除分数比较低的检测,每一个都使用非最大抑制
3,genetating masks
(1)mask targets
(2)predict mask
下面的可视化激活,没有运行出来,就不抄了。这部分的问题解决,可以使用google在查月以下,并且在输入层修改相应的参数,试一下