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