TensorFlow人工智能入门教程之十三 RCNN 区域卷积网络(视频侦测分析人脸侦测区域检测 )...

这一章 我们介绍一个网络模型  比较有用常用 而且实用 ,被各大企业 创业公司经常 用到的 ,就是RCNN R 代表Region 区域,就是输出是一个区域范围以及值,这个在视频分析 视频侦测  显著区域检测 经常用到,比如人脸识别的face++ 还有视频分析的video++ 做视频广告的 云视链 优酷 等等   另外 在区域place 检测 扫街景 当然不是微信那个骗人的扫街景,还有异常检测 也常用到。还有国外很多公司 。 

      Region-based Convolutional Neural Networks  RCNN

     该网络由 RBG 大神 加州大学伯克利分校博士后   计算机 科学家 人工智能深度学习科学家 开发  RCNN和Fast-RCNN就是他的典型作品。科学技术终身成就奖 ,真正的大神之一

大神主页 http://www.cs.berkeley.edu/~rbg/index.html

     效果

  

             主要有2个 特点 ,1  在原来的输入是输入的是bound box 有界的范围,输出的全连接层 区域 一个用于做softmax 计算出分类 一个 用来做bound box 计算范围。正是这样所以需要做标注。这个比较麻烦 在训练时候。对数据的预处理 需要大量的时间。对于bound box 一般用欧式距离 highloss 来计算损失函数。其他同CNN 类似。不过这个 Rol pooling layer这个是最关键的的 部分。内部原理比较复杂,核心思想是引入了一个Region Proposal Networks(RPNs),这个网络产生的proposals作为Fast R-CNN的输入。可以见下图。详细的可以看论文,其实这个网络 我知道怎么训练 怎么用,而且网络论文也比较少,我知道的 也是怎么使用 怎么训练自己的模型 而已。 所以本章 就是带大家了解一下 RCNN 这种非常有用 比较常用的网络模型。

      

       

      

     现在RGB 大神  已经有几个开源的实现 

http://arxiv.org/abs/1506.01497

http://arxiv.org/abs/1506.02640

 

       

   这个是基于 caffe 实现的RCNN 不过没关系,上一张我们讲了 caffe 的训练模型 可以转成tensorflow模型来调用,而且支持跨平台 。所以这一切都不是问题。

     大部分时候我们使用Fast=RCNN 速度更快 200倍RCNN 而且基于caffe 的c++/python实现。

        

     http://arxiv.org/abs/1504.08083  论文介绍地址。

      网上有一些简要叙述文件 不过内部也不详细,代码也很难看懂

    http://zhangliliang.com/2015/05/17/paper-note-fast-rcnn/

       下面来安装使用 ,这个推荐用docker 来安装

         

sudo docker pull karfai/fast-rcnn-cpu-notebook
sudo docker run -ti -p 8888:8888 karfai/fast-rcnn-cpu-notebook

进入 文件夹目录

./data/scripts/fetch_fast_rcnn_models.sh
runtools/demo.py--cpu

 即可

   安装方法   详细的见 http://www.cnblogs.com/louyihang-loves-baiyan/p/4885659.html

    不过推荐使用docker 很快 而且不出问题,我个人一直使用docker安装Fast-RCNN 

   够快够迅速,至于 怎么训练模型, 大家可以看看下载data 文件 里面怎么标注的

   还有demo.py 代码怎么写的 

    这个都在https://github.com/rbgirshick/fast-rcnn 这里面。

    还有就是这些标注的 有一些研究院 已经做好了一些 标注工具 ,可以很方便的标注,但是也需要人工 来标注,但是人脸比较特殊 ,可以用一些第三方的库 dlib 来确定范围,这些不需要标注。

 localhost:8080 demo.py 之后   

运行结果如下

        

 

 

转载于:https://my.oschina.net/yilian/blog/673051

# 工程内容 这个程序是基于tensorflow的tflearn库实现部分RCNN功能。 # 开发环境 windows10 + python3.5 + tensorflow1.2 + tflearn + cv2 + scikit-learn # 数据集 采用17flowers据集, 官网下载:http://www.robots.ox.ac.uk/~vgg/data/flowers/17/ # 程序说明 1、setup.py---初始化路径 2、config.py---配置 3、tools.py---进度条和显示带框图像工具 4、train_alexnet.py---大数据集预训练Alexnet网络,140个epoch左右,bitch_size为64 5、preprocessing_RCNN.py---图像的处理(选择性搜索、数据存取等) 6、selectivesearch.py---选择性搜索源码 7、fine_tune_RCNN.py---小数据集微调Alexnet 8、RCNN_output.py---训练SVM并测试RCNN(测试的时候测试图片选择第7、16类中没有参与训练的,单朵的花效果好,因为训练用的都是单朵的) # 文件说明 1、train_list.txt---预训练数据,数据在17flowers文件夹中 2、fine_tune_list.txt---微调数据2flowers文件夹中 3、1.png---直接用选择性搜索的区域划分 4、2.png---通过RCNN后的区域划分 # 程序问题 1、由于数据集小的原因,在微调时候并没有像论文一样按一个bitch32个正样本,128个负样本输入,感觉正样本过少; 2、还没有懂最后是怎么给区域打分的,所有非极大值抑制集合canny算子没有进行,待续; 3、对选择的区域是直接进行缩放的; 4、由于数据集合论文采用不一样,但是微调和训练SVM时采用的IOU阈值一样,有待调参。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值