<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Mask Rcnn on My Blog</title><link>/tags/mask-rcnn/</link><description>Recent content in Mask Rcnn on My Blog</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Mon, 13 Aug 2018 00:00:00 +0000</lastBuildDate><atom:link href="/tags/mask-rcnn/index.xml" rel="self" type="application/rss+xml"/><item><title>mask rcnn 数据基础介绍</title><link>/2018/08/13/mask-rcnn-%E6%95%B0%E6%8D%AE%E5%9F%BA%E7%A1%80%E4%BB%8B%E7%BB%8D/</link><pubDate>Mon, 13 Aug 2018 00:00:00 +0000</pubDate><guid>/2018/08/13/mask-rcnn-%E6%95%B0%E6%8D%AE%E5%9F%BA%E7%A1%80%E4%BB%8B%E7%BB%8D/</guid><description>&lt;!-- toc --&gt;
&lt;p&gt;[TOC]&lt;/p&gt;
&lt;h1 id="概念理解"&gt;概念理解&lt;/h1&gt;
&lt;p&gt;Mask R-CNN (Regional Convolutional Neural Network: 区域卷积神经网络)&lt;/p&gt;
&lt;p&gt;&lt;img alt="ComputerVisionTasks" loading="lazy" src="/2018/08/13/mask-rcnn-%E6%95%B0%E6%8D%AE%E5%9F%BA%E7%A1%80%E4%BB%8B%E7%BB%8D/ComputerVisionTasks.png"&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;图像分类 (Classification)&lt;/strong&gt;: 图片中有气球。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;语义分割 (Semantic Segmentation)&lt;/strong&gt;: 这些是图片中组成所有气球的像素。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;目标检测 (Object Detection)&lt;/strong&gt;: 这里是图片中7个气球的位置。我们需要识别被遮挡的物体。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;实例分割 (Instance Segmentation)&lt;/strong&gt;: 这是是图片中7个气球的位置，包括组成每一个气球的像素。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;mAP: 均值平均精度(Mean Average Precision)&lt;/p&gt;
&lt;p&gt;Backbone: 骨干网络&lt;/p&gt;
&lt;p&gt;backbone feature map : 骨干特征图&lt;/p&gt;
&lt;p&gt;Feature Pyramid Network (FPN): 特征金字塔网络&lt;/p&gt;
&lt;p&gt;&lt;img alt="FPNFlowChart" loading="lazy" src="/2018/08/13/mask-rcnn-%E6%95%B0%E6%8D%AE%E5%9F%BA%E7%A1%80%E4%BB%8B%E7%BB%8D/FPNFlowChart.png"&gt;&lt;/p&gt;
&lt;p&gt;Mask RCNN 的实现采用的是 ResNet101 + FPN 作为骨干网络&lt;/p&gt;
&lt;p&gt;Region Proposal Network (RPN): 区域提议网络&lt;/p&gt;
&lt;p&gt;Anchor: 锚点, RPN 通过扫描骨干特征图（backbone feature map ） 得到锚点的. SSD 中称为先验框Prior boxes&lt;/p&gt;
&lt;p&gt;Non-max Suppression : 非最大抑制, 在 RPN 预测过程中，我们会选择最可能包含物体的锚点，然后去修正它们的位置以及尺寸。如果有些锚点重叠得太多，我们会保留前景得分最高的一个，而其他的锚点就丢弃掉（这种方式成为非最大抑制 Non-max Suppression ）。&lt;/p&gt;</description></item><item><title>mask rcnn 数据预处理解读</title><link>/2018/08/13/mask-rcnn-%E6%95%B0%E6%8D%AE%E9%A2%84%E5%A4%84%E7%90%86%E8%A7%A3%E8%AF%BB/</link><pubDate>Mon, 13 Aug 2018 00:00:00 +0000</pubDate><guid>/2018/08/13/mask-rcnn-%E6%95%B0%E6%8D%AE%E9%A2%84%E5%A4%84%E7%90%86%E8%A7%A3%E8%AF%BB/</guid><description>&lt;!-- toc --&gt;
&lt;p&gt;[TOC]&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;import&lt;/span&gt; os
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;import&lt;/span&gt; sys
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;import&lt;/span&gt; json
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;import&lt;/span&gt; skimage.draw
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;import&lt;/span&gt; skimage.io
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;import&lt;/span&gt; skimage.color
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;from&lt;/span&gt; imgaug &lt;span style="color:#f92672"&gt;import&lt;/span&gt; augmenters &lt;span style="color:#66d9ef"&gt;as&lt;/span&gt; iaa
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;import&lt;/span&gt; numpy &lt;span style="color:#66d9ef"&gt;as&lt;/span&gt; np
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;import&lt;/span&gt; random
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;import&lt;/span&gt; matplotlib.pyplot &lt;span style="color:#66d9ef"&gt;as&lt;/span&gt; plt
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# plt.switch_backend(&amp;#39;agg&amp;#39;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Root directory of the project&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ROOT_DIR &lt;span style="color:#f92672"&gt;=&lt;/span&gt; os&lt;span style="color:#f92672"&gt;.&lt;/span&gt;path&lt;span style="color:#f92672"&gt;.&lt;/span&gt;abspath(&lt;span style="color:#e6db74"&gt;&amp;#34;../../&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sys&lt;span style="color:#f92672"&gt;.&lt;/span&gt;path&lt;span style="color:#f92672"&gt;.&lt;/span&gt;append(ROOT_DIR)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Import Mask RCNN&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;from&lt;/span&gt; mrcnn &lt;span style="color:#f92672"&gt;import&lt;/span&gt; visualize
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;from&lt;/span&gt; mrcnn.config &lt;span style="color:#f92672"&gt;import&lt;/span&gt; Config
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;from&lt;/span&gt; mrcnn &lt;span style="color:#f92672"&gt;import&lt;/span&gt; model &lt;span style="color:#66d9ef"&gt;as&lt;/span&gt; modellib, utils
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;from&lt;/span&gt; mrcnn.model &lt;span style="color:#f92672"&gt;import&lt;/span&gt; log
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;from&lt;/span&gt; samples.cells &lt;span style="color:#f92672"&gt;import&lt;/span&gt; run_via_json
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;COCO_MODEL_PATH &lt;span style="color:#f92672"&gt;=&lt;/span&gt; os&lt;span style="color:#f92672"&gt;.&lt;/span&gt;path&lt;span style="color:#f92672"&gt;.&lt;/span&gt;join(ROOT_DIR, &lt;span style="color:#e6db74"&gt;&amp;#34;mask_rcnn_coco.h5&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;DEFAULT_LOGS_DIR &lt;span style="color:#f92672"&gt;=&lt;/span&gt; os&lt;span style="color:#f92672"&gt;.&lt;/span&gt;path&lt;span style="color:#f92672"&gt;.&lt;/span&gt;join(ROOT_DIR, &lt;span style="color:#e6db74"&gt;&amp;#34;logs&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;class_names &lt;span style="color:#f92672"&gt;=&lt;/span&gt; [&lt;span style="color:#e6db74"&gt;&amp;#39;BG&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;cells1&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;cells2&amp;#39;&lt;/span&gt;]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;train_class_name &lt;span style="color:#f92672"&gt;=&lt;/span&gt; [&lt;span style="color:#e6db74"&gt;&amp;#39;cells1&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;cells2&amp;#39;&lt;/span&gt;]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;show_class_name &lt;span style="color:#f92672"&gt;=&lt;/span&gt; [&lt;span style="color:#e6db74"&gt;&amp;#39;cells2&amp;#39;&lt;/span&gt;]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;train_config &lt;span style="color:#f92672"&gt;=&lt;/span&gt; run_via_json&lt;span style="color:#f92672"&gt;.&lt;/span&gt;TrainConfig()
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;config &lt;span style="color:#f92672"&gt;=&lt;/span&gt; train_config
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;dataset &lt;span style="color:#f92672"&gt;=&lt;/span&gt; run_via_json&lt;span style="color:#f92672"&gt;.&lt;/span&gt;CellDataset()
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;dataset&lt;span style="color:#f92672"&gt;.&lt;/span&gt;load_data(train_config&lt;span style="color:#f92672"&gt;.&lt;/span&gt;dataset_dir, train_config&lt;span style="color:#f92672"&gt;.&lt;/span&gt;train_dir_name, class_names,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; annotation&lt;span style="color:#f92672"&gt;=&lt;/span&gt;train_config&lt;span style="color:#f92672"&gt;.&lt;/span&gt;train_annotation_json)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;dataset&lt;span style="color:#f92672"&gt;.&lt;/span&gt;prepare()
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item></channel></rss>