mask rcnn的TensorFlow的调试

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在查月以下,并且在输入层修改相应的参数,试一下

猜你喜欢

转载自blog.csdn.net/weixin_30226901/article/details/82810041
今日推荐