<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>유니디니</title>
    <link>https://go-hard.tistory.com/</link>
    <description>Stay hungry, Stay foolish</description>
    <language>ko</language>
    <pubDate>Thu, 6 Aug 2026 05:33:05 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>유니디니</managingEditor>
    <image>
      <title>유니디니</title>
      <url>https://tistory1.daumcdn.net/tistory/2942627/attach/8f2209283cab4c6386bf7e9555d05f89</url>
      <link>https://go-hard.tistory.com</link>
    </image>
    <item>
      <title>[Linux] apt, dpkg에서 lock-fronted 오류</title>
      <link>https://go-hard.tistory.com/126</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;Linux에서 apt, dpkg 등의 명령어를 사용할 때, 종종 다음과 같은 오류가 발생한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;843&quot; data-origin-height=&quot;127&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/3JgIT/btq4Yr74fsn/r0xhXGUkAvaaws4EpVlQq1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/3JgIT/btq4Yr74fsn/r0xhXGUkAvaaws4EpVlQq1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/3JgIT/btq4Yr74fsn/r0xhXGUkAvaaws4EpVlQq1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F3JgIT%2Fbtq4Yr74fsn%2Fr0xhXGUkAvaaws4EpVlQq1%2Fimg.png&quot; data-origin-width=&quot;843&quot; data-origin-height=&quot;127&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이때, 다음과 같이 프로세스나 특정 lock관련 디렉토리를 삭제해주면 해결된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 모든 프로세스 kill&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$ sudo killall apt apt-get&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- lock관련 디렉토리 삭제&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$ sudo&amp;nbsp;rm&amp;nbsp;/var/lib/apt/lists/lock&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$ sudo&amp;nbsp;rm&amp;nbsp;/var/cache/apt/archives/lock&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$ sudo&amp;nbsp;rm&amp;nbsp;/var/lib/dpkg/lock*&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- configure 설정&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$ dpkg --configure -a&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- upgrade or update&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$ sudo apt update&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이후에, 다시 apt나 dpkg를 수행하면 동작한다.&lt;/p&gt;</description>
      <category>참고 및 꿀팁</category>
      <author>유니디니</author>
      <guid isPermaLink="true">https://go-hard.tistory.com/126</guid>
      <comments>https://go-hard.tistory.com/126#entry126comment</comments>
      <pubDate>Mon, 17 May 2021 10:49:29 +0900</pubDate>
    </item>
    <item>
      <title>R-squared (r2 score)</title>
      <link>https://go-hard.tistory.com/125</link>
      <description>&lt;p&gt;
&lt;script type=&quot;text/x-mathjax-config&quot;&gt; MathJax.Hub.Config({ tex2jax: {inlineMath: [['$','$'], ['\\(','\\)']]} }); &lt;/script&gt;
&lt;script src=&quot;https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/latest.js?config=TeX-MML-AM_CHTML&quot;&gt;&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;R-squared는 선형 회귀 모델에 대한 적합도 측정값이다. 선형 회귀 모델을 Fitting 한 후, 모델이 데이터에 얼마나 적합한지 확인해야 하는데 몇가지 주요 적합도 통계 방법중 하나이다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;적합도 평가&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/emPD3z/btq1ovF7TaU/LZ6XQVchZcWkh0tB0Bkyxk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/emPD3z/btq1ovF7TaU/LZ6XQVchZcWkh0tB0Bkyxk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/emPD3z/btq1ovF7TaU/LZ6XQVchZcWkh0tB0Bkyxk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FemPD3z%2Fbtq1ovF7TaU%2FLZ6XQVchZcWkh0tB0Bkyxk%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;r2 score는 0과 1사이의 값을 가지며 1에 가까울수록 선형회귀 모델이 데이터에 대하여 높은 연관성을 가지고 있다고 해석할 수 있다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;r2 score의 공식은 $r^{2} score = 1- \frac{SSE}{SST}$&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;SST는 전체 제곱의 합, SSE는 제곱 오차항&lt;/b&gt;&lt;/span&gt;을 의미한다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;식을 정리해 보면,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/efdVu4/btq1pAtF8hF/J6x05DgD4w6aLLyLaoaUgk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/efdVu4/btq1pAtF8hF/J6x05DgD4w6aLLyLaoaUgk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/efdVu4/btq1pAtF8hF/J6x05DgD4w6aLLyLaoaUgk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FefdVu4%2Fbtq1pAtF8hF%2FJ6x05DgD4w6aLLyLaoaUgk%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ANiZB/btq1s4HwNYc/AmuKG8LLPacsGExnMvZ6Yk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ANiZB/btq1s4HwNYc/AmuKG8LLPacsGExnMvZ6Yk/img.png&quot; data-alt=&quot;Mean Squared Error, 평균 제곱오차&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ANiZB/btq1s4HwNYc/AmuKG8LLPacsGExnMvZ6Yk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FANiZB%2Fbtq1s4HwNYc%2FAmuKG8LLPacsGExnMvZ6Yk%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Mean Squared Error, 평균 제곱오차&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;파이썬 코드&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1617110295313&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;from sklearn.metrics import r2_score
r2 = r2_score(y, lr.predict(x_2)&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;y는 실제 관측된 데이터, lr은 linear regression model을 의미하며 lr.predict는 모델의 예측값이다.&lt;/p&gt;</description>
      <category>Mathmatics</category>
      <author>유니디니</author>
      <guid isPermaLink="true">https://go-hard.tistory.com/125</guid>
      <comments>https://go-hard.tistory.com/125#entry125comment</comments>
      <pubDate>Tue, 30 Mar 2021 22:21:30 +0900</pubDate>
    </item>
    <item>
      <title>멀쩡한 사각형</title>
      <link>https://go-hard.tistory.com/124</link>
      <description>&lt;h3&gt;&lt;span style=&quot;color: #000000;&quot;&gt;멀쩡한 사각형&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;가로 길이가 Wcm, 세로 길이가 Hcm인 직사각형 종이가 있습니다. 종이에는 가로, 세로 방향과 평행하게 격자 형태로 선이 그어져 있으며, 모든 격자칸은 1cm x 1cm 크기입니다. 이 종이를 격자 선을 따라 1cm &amp;times; 1cm의 정사각형으로 잘라 사용할 예정이었는데, 누군가가 이 종이를 대각선 꼭지점 2개를 잇는 방향으로 잘라 놓았습니다. 그러므로 현재 직사각형 종이는 크기가 같은 직각삼각형 2개로 나누어진 상태입니다. 새로운 종이를 구할 수 없는 상태이기 때문에, 이 종이에서 원래 종이의 가로, 세로 방향과 평행하게 1cm &amp;times; 1cm로 잘라 사용할 수 있는 만큼만 사용하기로 하였습니다.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #000000;&quot;&gt;가로의 길이 W와 세로의 길이 H가 주어질 때, 사용할 수 있는 정사각형의 개수를 구하는 solution 함수를 완성해 주세요.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;제한사항&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000;&quot;&gt;W, H : 1억 이하의 자연수&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;입출력 예&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span style=&quot;color: #000000;&quot;&gt;W&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;color: #000000;&quot;&gt;H&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;color: #000000;&quot;&gt;RESULT&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span style=&quot;color: #000000;&quot;&gt;8&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;color: #000000;&quot;&gt;12&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;color: #000000;&quot;&gt;80&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;입출력 예 설명&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;입출력 예 #1&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #000000;&quot;&gt;가로가 8, 세로가 12인 직사각형을 대각선 방향으로 자르면 총 16개 정사각형을 사용할 수 없게 됩니다. 원래 직사각형에서는 96개의 정사각형을 만들 수 있었으므로, 96 - 16 = 80 을 반환합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dludJF/btq1laanS9o/PrwvWg6fyr6kJYHgTSDK00/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dludJF/btq1laanS9o/PrwvWg6fyr6kJYHgTSDK00/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dludJF/btq1laanS9o/PrwvWg6fyr6kJYHgTSDK00/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdludJF%2Fbtq1laanS9o%2FPrwvWg6fyr6kJYHgTSDK00%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;나의 풀이&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1617025979347&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;def gcd(w,h):
    tmp=0
    h = 0
    
    if a&amp;lt;b:
        tmp = a
        a = b
        b = tmp
        
    while(b!=0):
        n = a%b
        a = b
        b = n
    return a
    
def solution(w,h):
    return w*h - (w+h-gcd(w,h))&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;w,h에 대하여 반복되는 구간을 찾아보자.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;412&quot; data-origin-height=&quot;570&quot; data-filename=&quot;Inkedimg_LI.jpg&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bohmsq/btq1jmoBdWS/kuCHcKvumd06HeUH5iW8yk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bohmsq/btq1jmoBdWS/kuCHcKvumd06HeUH5iW8yk/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bohmsq/btq1jmoBdWS/kuCHcKvumd06HeUH5iW8yk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbohmsq%2Fbtq1jmoBdWS%2FkuCHcKvumd06HeUH5iW8yk%2Fimg.jpg&quot; data-origin-width=&quot;412&quot; data-origin-height=&quot;570&quot; data-filename=&quot;Inkedimg_LI.jpg&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;반복구간은 다음과 같으며, 좌상단을 (0,0)이라 생각해보면 (2,3)(4,6)(6,9)(8,12)에서 사각형의 끝점에 닿는 것을 볼수 있다. 즉, w와 h의 최대 공약수만큼 동그라미 블록이 반복되는 것이다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;따라서, 한 패턴블록 만큼의 사각형을 구해서 최대 공약수 만큼 곱해주면 문제가 해결되는 것이다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;한 패턴의 블록은 가로의 길이, 세로의 길이만큼 움직여야 하며, 겹치는 사각형의 수인 1을 빼주어야 한다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000;&quot;&gt;gcd * { (w//g) * (h //g) -1 } = w+h-gcd&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000;&quot;&gt;전체 사각형에서 잘려진 수를 빼면, w*h - (w+h-gcd)&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;참고자료&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;a href=&quot;https://leedakyeong.tistory.com/entry/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-%EB%A9%80%EC%A9%A1%ED%95%9C-%EC%82%AC%EA%B0%81%ED%98%95-in-python&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;leedakyeong.tistory.com/entry/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-%EB%A9%80%EC%A9%A1%ED%95%9C-%EC%82%AC%EA%B0%81%ED%98%95-in-python&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1617027460741&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[프로그래머스] 멀쩡한 사각형 in python&quot; data-og-description=&quot;파이썬으로 프로그래머스 풀기 :: 멀쩡한 사각형 문제 설명 가로 길이가 Wcm, 세로 길이가 Hcm인 직사각형 종이가 있습니다. 종이에는 가로, 세로 방향과 평행하게 격자 형태로 선이 그어져 있으며&quot; data-og-host=&quot;leedakyeong.tistory.com&quot; data-og-source-url=&quot;https://leedakyeong.tistory.com/entry/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-%EB%A9%80%EC%A9%A1%ED%95%9C-%EC%82%AC%EA%B0%81%ED%98%95-in-python&quot; data-og-url=&quot;https://leedakyeong.tistory.com/entry/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-%EB%A9%80%EC%A9%A1%ED%95%9C-%EC%82%AC%EA%B0%81%ED%98%95-in-python&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bxFsBE/hyJIcnYEVH/zsC9n3ir5MfiO8AlW1qxqK/img.jpg?width=615&amp;amp;height=715&amp;amp;face=0_0_615_715,https://scrap.kakaocdn.net/dn/b0zbsF/hyJIc9lcap/T3FPmDGXNXmrV1tLCiJkr0/img.jpg?width=615&amp;amp;height=715&amp;amp;face=0_0_615_715,https://scrap.kakaocdn.net/dn/c8xSCg/hyJH8sk0bW/WKAHmc6m4KHVhn8Itk6Ku1/img.jpg?width=860&amp;amp;height=593&amp;amp;face=0_0_860_593&quot;&gt;&lt;a href=&quot;https://leedakyeong.tistory.com/entry/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-%EB%A9%80%EC%A9%A1%ED%95%9C-%EC%82%AC%EA%B0%81%ED%98%95-in-python&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://leedakyeong.tistory.com/entry/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-%EB%A9%80%EC%A9%A1%ED%95%9C-%EC%82%AC%EA%B0%81%ED%98%95-in-python&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bxFsBE/hyJIcnYEVH/zsC9n3ir5MfiO8AlW1qxqK/img.jpg?width=615&amp;amp;height=715&amp;amp;face=0_0_615_715,https://scrap.kakaocdn.net/dn/b0zbsF/hyJIc9lcap/T3FPmDGXNXmrV1tLCiJkr0/img.jpg?width=615&amp;amp;height=715&amp;amp;face=0_0_615_715,https://scrap.kakaocdn.net/dn/c8xSCg/hyJH8sk0bW/WKAHmc6m4KHVhn8Itk6Ku1/img.jpg?width=860&amp;amp;height=593&amp;amp;face=0_0_860_593');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot;&gt;[프로그래머스] 멀쩡한 사각형 in python&lt;/p&gt;
&lt;p class=&quot;og-desc&quot;&gt;파이썬으로 프로그래머스 풀기 :: 멀쩡한 사각형 문제 설명 가로 길이가 Wcm, 세로 길이가 Hcm인 직사각형 종이가 있습니다. 종이에는 가로, 세로 방향과 평행하게 격자 형태로 선이 그어져 있으며&lt;/p&gt;
&lt;p class=&quot;og-host&quot;&gt;leedakyeong.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>프로그래머스/Level 2</category>
      <author>유니디니</author>
      <guid isPermaLink="true">https://go-hard.tistory.com/124</guid>
      <comments>https://go-hard.tistory.com/124#entry124comment</comments>
      <pubDate>Mon, 29 Mar 2021 23:18:04 +0900</pubDate>
    </item>
    <item>
      <title>RANSAC(Random Sample Consensus)</title>
      <link>https://go-hard.tistory.com/123</link>
      <description>&lt;p&gt;&lt;b&gt;RANSAC이란?&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;관측된 데이터들에 대하여 근사 모델(Fitting Model)의 파라미터를 추정하는 방법 중 하나이며, 무작위로 샘플 데이터를 뽑은 다음 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;최대로 일치하는 모델&lt;/b&gt;&lt;/span&gt;을 선택하기 때문에 노이즈 or 이상치(Outlier)에 영향을 덜 받는 방법이다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;그러나, 임의의 데이터를 선택하기 때문에 같은 데이터임에도 결과가 매번 달라질수 있으며 Outlier의 분포가 일정한 구조를 갖게 되면 Outlier에 근사할 수 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;sphx_glr_plot_ransac_001.png&quot; data-origin-width=&quot;640&quot; data-origin-height=&quot;480&quot; width=&quot;463&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bDrIWO/btq1e6E3A2i/u0T6MGxfqAjgg75QpuxPs0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bDrIWO/btq1e6E3A2i/u0T6MGxfqAjgg75QpuxPs0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bDrIWO/btq1e6E3A2i/u0T6MGxfqAjgg75QpuxPs0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbDrIWO%2Fbtq1e6E3A2i%2Fu0T6MGxfqAjgg75QpuxPs0%2Fimg.png&quot; data-filename=&quot;sphx_glr_plot_ransac_001.png&quot; data-origin-width=&quot;640&quot; data-origin-height=&quot;480&quot; width=&quot;463&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&lt;b&gt;RANSAC 알고리즘&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;N : 반복횟수, t = 모델과의 거리 임계값, max_point = inlier 데이터&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000;&quot;&gt;max_point = 0, 모델 파라미터에 근사한 데이터들의 수를 초기화&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000;&quot;&gt;관측된 데이터 안에서 무작위로 세점을 뽑는다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000;&quot;&gt;세 점을 이용하여 근사한 모델 f(x)을 구한다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000;&quot;&gt;구해진 f(x)와의 거리 r = | y - f(x) | 가 임계값 t이하인 데이터의 수 Count를 구한다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000;&quot;&gt;만일 구해진 Count가 max_point 보다 크다면 현재 f(x)로 저장&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000;&quot;&gt;2~5를 N만큼 반복한 후, 최종 저장되어 있는 f(x)를 반환&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000;&quot;&gt;f(x)를 지지하는 데이터들에 대해 최소자승법을 적용하여 결과를 개선&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;b&gt;참고 자료&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://scikit-learn.org/stable/auto_examples/linear_model/plot_ransac.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;scikit-learn.org/stable/auto_examples/linear_model/plot_ransac.html&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1616902207012&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Robust linear model estimation using RANSAC &amp;mdash; scikit-learn 0.24.1 documentation&quot; data-og-description=&quot;Note Click here to download the full example code or to run this example in your browser via Binder Robust linear model estimation using RANSAC In this example we see how to robustly fit a linear model to faulty data using the RANSAC algorithm. Out: Estima&quot; data-og-host=&quot;scikit-learn.org&quot; data-og-source-url=&quot;https://scikit-learn.org/stable/auto_examples/linear_model/plot_ransac.html&quot; data-og-url=&quot;https://scikit-learn.org/stable/auto_examples/linear_model/plot_ransac.html&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/duJyZ1/hyJGAbO3s9/m7GzCB6iKX3BUHLKRq3kV0/img.png?width=640&amp;amp;height=480&amp;amp;face=0_0_640_480&quot;&gt;&lt;a href=&quot;https://scikit-learn.org/stable/auto_examples/linear_model/plot_ransac.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://scikit-learn.org/stable/auto_examples/linear_model/plot_ransac.html&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/duJyZ1/hyJGAbO3s9/m7GzCB6iKX3BUHLKRq3kV0/img.png?width=640&amp;amp;height=480&amp;amp;face=0_0_640_480');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot;&gt;Robust linear model estimation using RANSAC &amp;mdash; scikit-learn 0.24.1 documentation&lt;/p&gt;
&lt;p class=&quot;og-desc&quot;&gt;Note Click here to download the full example code or to run this example in your browser via Binder Robust linear model estimation using RANSAC In this example we see how to robustly fit a linear model to faulty data using the RANSAC algorithm. Out: Estima&lt;/p&gt;
&lt;p class=&quot;og-host&quot;&gt;scikit-learn.org&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;&lt;a href=&quot;https://darkpgmr.tistory.com/61#recentEntries&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;darkpgmr.tistory.com/61#recentEntries&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1616903013441&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-og-type=&quot;article&quot; data-og-title=&quot;RANSAC의 이해와 영상처리 활용&quot; data-og-description=&quot;영상처리나 컴퓨터 비전을 하면서 RANSAC을 모르면 간첩일 정도로 RANSAC은 너무나 유명한, 그리고 널리 사용되는 방법이다. RANSAC이 유명한 만큼 이미 인터넷에 관련된 글들이 꽤 있다. 그럼에도&amp;nbsp;&quot; data-og-host=&quot;darkpgmr.tistory.com&quot; data-og-source-url=&quot;https://darkpgmr.tistory.com/61#recentEntries&quot; data-og-url=&quot;https://darkpgmr.tistory.com/61&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bkiiHn/hyJGACTsU9/lh256hSjA6dnk5qlZtzSt1/img.png?width=550&amp;amp;height=216&amp;amp;face=0_0_550_216,https://scrap.kakaocdn.net/dn/bTvojO/hyJGxMXe0t/imyRFU15wSscWjVmVynaxK/img.png?width=550&amp;amp;height=216&amp;amp;face=0_0_550_216,https://scrap.kakaocdn.net/dn/bygzcT/hyJGzxfDmB/YD16woguksPDIGbOi2YUcK/img.jpg?width=550&amp;amp;height=311&amp;amp;face=0_0_550_311&quot;&gt;&lt;a href=&quot;https://darkpgmr.tistory.com/61#recentEntries&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://darkpgmr.tistory.com/61#recentEntries&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bkiiHn/hyJGACTsU9/lh256hSjA6dnk5qlZtzSt1/img.png?width=550&amp;amp;height=216&amp;amp;face=0_0_550_216,https://scrap.kakaocdn.net/dn/bTvojO/hyJGxMXe0t/imyRFU15wSscWjVmVynaxK/img.png?width=550&amp;amp;height=216&amp;amp;face=0_0_550_216,https://scrap.kakaocdn.net/dn/bygzcT/hyJGzxfDmB/YD16woguksPDIGbOi2YUcK/img.jpg?width=550&amp;amp;height=311&amp;amp;face=0_0_550_311');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot;&gt;RANSAC의 이해와 영상처리 활용&lt;/p&gt;
&lt;p class=&quot;og-desc&quot;&gt;영상처리나 컴퓨터 비전을 하면서 RANSAC을 모르면 간첩일 정도로 RANSAC은 너무나 유명한, 그리고 널리 사용되는 방법이다. RANSAC이 유명한 만큼 이미 인터넷에 관련된 글들이 꽤 있다. 그럼에도&amp;nbsp;&lt;/p&gt;
&lt;p class=&quot;og-host&quot;&gt;darkpgmr.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;</description>
      <category>Image processing/개념 설명</category>
      <author>유니디니</author>
      <guid isPermaLink="true">https://go-hard.tistory.com/123</guid>
      <comments>https://go-hard.tistory.com/123#entry123comment</comments>
      <pubDate>Sun, 28 Mar 2021 13:46:25 +0900</pubDate>
    </item>
    <item>
      <title>Dropout layer(드롭아웃 레이어)</title>
      <link>https://go-hard.tistory.com/122</link>
      <description>&lt;pre id=&quot;code_1613573216986&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import numpy as np

def dropout_layer(X, prob):
    assert 0 &amp;lt;= prob &amp;lt;= 1
    
    if prob == 1:
        return np.zeros_like(X)
    
    if prob == 0:
        return X
    mask = np.random.uniform(0, 1, X.shape) &amp;gt; prob
    return mask.astype(np.float32) * X / (1.0 - prob)&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;드롭아웃 레이어는 데이터를 이용한 학습과정에서 오버피팅을 억제하는 방법 중 하나이며, 뉴런의 연결을 임의로 제거하는 방법이다. 학습상황에서만 사용가능하며, 테스트 과정에서는 사용이 불가능하다.&lt;/p&gt;</description>
      <category>프로그래밍/Deep-learning</category>
      <author>유니디니</author>
      <guid isPermaLink="true">https://go-hard.tistory.com/122</guid>
      <comments>https://go-hard.tistory.com/122#entry122comment</comments>
      <pubDate>Thu, 18 Feb 2021 00:12:10 +0900</pubDate>
    </item>
    <item>
      <title>Albumentations 이미지 Augmentation API 소개</title>
      <link>https://go-hard.tistory.com/121</link>
      <description>&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;이미지 증강방법은 딥러닝이나 컴퓨터 비전에서 학습된 모델의 퀄리티를 향상하기 위해 사용되는 방법이며, 기존 학습데이터를 이용하여 새로운 데이터를 생성하는 목적을 가지고 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Pytorch, Tensorflow등 다양한 프레임워크에서 사용 가능하며 pixel-level transforms, spatial-level transforms 등의 70개 연산을 지원한다. 또한, 데이터 타입(RGB-images, grayscale images, multispectral image, segmentation masks, bounding boxes, and keypoints)등 에서 이용 가능한다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;Semantic segmentation on the Inria dataset&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;743&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/l7vcU/btqVh8CdUh8/Nqiv6SCQQesaurW1FNioT1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/l7vcU/btqVh8CdUh8/Nqiv6SCQQesaurW1FNioT1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/l7vcU/btqVh8CdUh8/Nqiv6SCQQesaurW1FNioT1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fl7vcU%2FbtqVh8CdUh8%2FNqiv6SCQQesaurW1FNioT1%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;743&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;Medical imaging&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;728&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cNrKbv/btqVh8oFJ5d/nCQWsOa0yUKLNlI0SW8H71/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cNrKbv/btqVh8oFJ5d/nCQWsOa0yUKLNlI0SW8H71/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cNrKbv/btqVh8oFJ5d/nCQWsOa0yUKLNlI0SW8H71/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcNrKbv%2FbtqVh8oFJ5d%2FnCQWsOa0yUKLNlI0SW8H71%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;728&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;Object detection and segmentation on the Mapillary Vistas datsets&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;679&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ZXbKc/btqVbvlrEK0/C0aAmnKWBiLecDgVxbLGV0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ZXbKc/btqVbvlrEK0/C0aAmnKWBiLecDgVxbLGV0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ZXbKc/btqVbvlrEK0/C0aAmnKWBiLecDgVxbLGV0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FZXbKc%2FbtqVbvlrEK0%2FC0aAmnKWBiLecDgVxbLGV0%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;679&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;662&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/npnxk/btqVe7XTftV/b0pHkqcOrhMJJtPLXjmke0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/npnxk/btqVe7XTftV/b0pHkqcOrhMJJtPLXjmke0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/npnxk/btqVe7XTftV/b0pHkqcOrhMJJtPLXjmke0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fnpnxk%2FbtqVe7XTftV%2Fb0pHkqcOrhMJJtPLXjmke0%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;662&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;Key points Augmentation&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;575&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bbQLi0/btqVbu07rOF/gD4hkSesAc7SwRRF9nvtdK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bbQLi0/btqVbu07rOF/gD4hkSesAc7SwRRF9nvtdK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bbQLi0/btqVbu07rOF/gD4hkSesAc7SwRRF9nvtdK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbbQLi0%2FbtqVbu07rOF%2FgD4hkSesAc7SwRRF9nvtdK%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;575&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;지원되는 연산&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;735&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/unOym/btqVh7J4GYE/5nkd62lk5oCZFEwGiygdEk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/unOym/btqVh7J4GYE/5nkd62lk5oCZFEwGiygdEk/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/unOym/btqVh7J4GYE/5nkd62lk5oCZFEwGiygdEk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FunOym%2FbtqVh7J4GYE%2F5nkd62lk5oCZFEwGiygdEk%2Fimg.jpg&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;735&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Image augmentations 방법의 효과( Validation set 기준 Top-1 Accuracy %)&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bQapBx/btqVnX1dSGJ/iQDt9UQ0j27qMLgs1f7A10/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bQapBx/btqVnX1dSGJ/iQDt9UQ0j27qMLgs1f7A10/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bQapBx/btqVnX1dSGJ/iQDt9UQ0j27qMLgs1f7A10/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbQapBx%2FbtqVnX1dSGJ%2FiQDt9UQ0j27qMLgs1f7A10%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;Installation&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1612089254610&quot; class=&quot;python&quot; style=&quot;margin: 20px auto 0px; display: block; overflow: auto; padding: 15px; color: #383a42; background: #f6f7f8; font-size: 14px; border-radius: 3px; font-family: Menlo, Consolas, Monaco, monospace; border: 1px solid #dddddd; cursor: default; z-index: 1; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px;&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;pip install -U albumentations&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;Simple Examples&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1612088284234&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import albumentations as A
import cv2

# Declare an augmentation pipeline
transform = A.Compose([
    A.RandomCrop(width=256, height=256),
    A.HorizontalFlip(p=0.5),
    A.RandomBrightnessContrast(p=0.2),
])

# Read an image with OpenCV and convert it to the RGB colorspace
image = cv2.imread(&quot;image.jpg&quot;)
image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)

# Augment an image
transformed = transform(image=image)
transformed_image = transformed[&quot;image&quot;]&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;[참고 자료]&amp;nbsp;&lt;/b&gt;&lt;a style=&quot;color: #000000;&quot; href=&quot;https://github.com/albumentations-team/albumentations#a-simple-example&quot;&gt;github.com/albumentations-team/albumentations#a-simple-example&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;</description>
      <category>Image processing/Deep-learning</category>
      <author>유니디니</author>
      <guid isPermaLink="true">https://go-hard.tistory.com/121</guid>
      <comments>https://go-hard.tistory.com/121#entry121comment</comments>
      <pubDate>Sun, 31 Jan 2021 19:36:08 +0900</pubDate>
    </item>
    <item>
      <title>[Part 3] Image Segmentation Using Deep Learning, A survey</title>
      <link>https://go-hard.tistory.com/120</link>
      <description>&lt;script type=&quot;text/x-mathjax-config&quot;&gt; MathJax.Hub.Config({ tex2jax: {inlineMath: [['$','$'], ['\\(','\\)']]} }); &lt;/script&gt;
&lt;script src=&quot;https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/latest.js?config=TeX-MML-AM_CHTML&quot;&gt;&lt;/script&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Written by Shervin Minaee, Yuri Boykov, Fatih Porikli, Antonio Plaza, Nasser Kehtarnavaz, and Demetri Terzopoulos&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;Fully convolutional networks&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;Convolutional models with graphical models&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;Encoder-decoder based models&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;Multi-scale and pyramid network based models&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;R-CNN based models(for instance segmentation)&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;Dilated convolutional models and DeepLab family&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;Recurrent neural network based models&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;Attention-based models&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;Generative models and adversarial training&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;Convolutional models with active contour models&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;Other models&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;Attention-based models&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Attention 방법은 컴퓨터 비전분야에서 오래전부터 연구되어왔으며, semantic segmentation 분야에서도 큰 성공을 거뒀다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;564&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/d0BGAV/btqROfkA7r9/Dx6RvkKprLMxSZ3lPZQZ5K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/d0BGAV/btqROfkA7r9/Dx6RvkKprLMxSZ3lPZQZ5K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/d0BGAV/btqROfkA7r9/Dx6RvkKprLMxSZ3lPZQZ5K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fd0BGAV%2FbtqROfkA7r9%2FDx6RvkKprLMxSZ3lPZQZ5K%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;564&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/77YIF/btqRQRRjKgc/d5FMbMMVyBbF6rProGpl00/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/77YIF/btqRQRRjKgc/d5FMbMMVyBbF6rProGpl00/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/77YIF/btqRQRRjKgc/d5FMbMMVyBbF6rProGpl00/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F77YIF%2FbtqRQRRjKgc%2Fd5FMbMMVyBbF6rProGpl00%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;Chen et al&lt;/b&gt; : 각 픽셀 위치에서 추출된 multi-scale 특징들에 Softly weight를 부여하는 방법을 제안하였다.(Fig 29)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;Huang et al&lt;/b&gt; : 컨볼루션 분류기(Classifiers)가 레이블이 지정된 객체를 학습하는 기존의 semantic segmentation 방법들과는 대조적으로, Reverse Attention 방법을 적용하여 제안하였다. &lt;br /&gt;&lt;br /&gt;그들이 제안한 RAN(Reverse Attention Network) 아키텍쳐(Fig 30)는 반대 개념(타겟 클래스와 연관되지 않은 특징)도 포착하도록 모델을 학습시킨다. RAN은 Direct, Reverse-Attention(직접, 반대) 학습 프로세스를 동시에 수행하는 3개의 branch 네트워크이다.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;Li et al.&lt;/b&gt; : Pyramid Attention Network를 이용한 방법을 제안하였다. 이 모델은 Semantic Segmentation에서 Global Context 정보의 영향을 이용한다. 그들은 dilated 컨볼루션과 인위적으로 설계된 Decoder 네트워크 대신 Attention (주의) 매커니즘과 Spatial(공간) 피라미드를 결합한 컨볼루션을 이용하였으며, 최종적으로 pixel labeling을 위한 정밀한 특징들을 추출했다.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000;&quot;&gt;그 외에도, Attention 방법에서 영감을 받아 객체 Context Pooling을 제안한 OCNet, EMANet(Expectation- Maximization Attention), Criss-Cross Attention Network(CCNet)와 같은 다양한 방법들이 존재한다.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;Generative Models and Adversarial Training&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;GAN은 다양한 분야에서 활용되며, Semantic Segmentation에서도 응용되고 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/AY5bP/btqRTRpY96W/B6hp1RE59vM54Svszc8FH1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/AY5bP/btqRTRpY96W/B6hp1RE59vM54Svszc8FH1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/AY5bP/btqRTRpY96W/B6hp1RE59vM54Svszc8FH1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FAY5bP%2FbtqRTRpY96W%2FB6hp1RE59vM54Svszc8FH1%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Luc et al : Semantic Segmentation을 위한 적대적 학습 접근법을 제안했다. 그들은 Semantic segmentation 네트워크에 의해 생성된 것(가짜 map)과 GT맵을 구별하는 적대적 네트워크와 함께 컨볼루션 semantic segmentation 네트워크를 학습했다.(Fig 31) 그들은 적대적인 학습 접근 방식이 stanford Background 및 PASCAL VOC 2012 데이터 세트의 정확도를 향상시키는 것으로 나타났다.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Souly et al : GAN을 사용하여 semi-weakly 감독하는 semantic segmentation을 제안하였다. GAN 프레임 워크에서 가짜와 진짜를 구별하는 다중 클래스 분류기에 추가학습 예제를 제공하는 생성기 네트워크로 구성되며, k개의 가능한 데이터 클래스에서 레이블을 추가 할당하여 가짜 샘플을 추가하였다.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Hung et al : 적대적 네트워크를 사용하여 semi-supervised semantic segmentation 방법을 제안하였다. 그들은 공간 해상도를 고려하여, 예측된 확률 맵과 GT segmentation 분포를 구별하기 위해 FCN 판별기를 설계 도입하였다. &lt;br /&gt;&lt;br /&gt;이 모델의 고려된 손실 함수에는 세가지 Terms가 포함된다. Segmentation GT맵에 대한 Cross-entropy 손실, 판별기 네트워크의 적대적 손실, confidence map에 기반한 semi-supervised 손실 즉, 판별자의 출력에 대한 손실이다.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Xue et al : 의료 영상 분할을 위한 다중 스케일(multi-scale) L1손실을 가진 적대적 네트워크를 제안하였다. 그들은 segmentation 레이블 맵을 생성하기 위해 FCN을 Segmentor로 사용했으며, 생성기와 분류기가 먼 거리와 가까운 거리 공간 관계 및 Global and Local 특징을 모두 학습하도록 하는 multi-scale L1 손실함수를 제안하였다.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;CNN Models With Active Contour Models&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;FCN과 ACM(Active Contour Model)간의 시너지는 최근연구에서 관심을 끌고있다. 한가지 접근 방식은 ACM 방법에서 영감을 받아 새로운 손실함수를 수식화 하는 것이다. 예를들어, Global Energy 수식에서 영감을 얻은 Chen et al.은 FCN 학습 중에 예측된 마스크의 면적 및 크기 정보를 통합하고, 심장 MRI 에서 심실 분할 문제를 해결하는 방법을 제안했다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;초창기 ACM을 FCN 출력의 후처리 과정으로만 사용하려는 다른 접근 방식이 있었으며, 다양한 시도들을 통해 FCN을 사전 학습하여 컨볼루션 신경망과 동시에 학습하는 방법을 제안해왔습니다. 자연 이미지의 의미론적 분할 작업을 위한 ACM 후처리 프로세서의 한 예는 Level-Set ACM이 RNN으로 구현된 Le et al.의 연구에서 볼수 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Rupprecht등의 Deep Active Contours는 또다른 예가 있다. 의료 이미지 분할의 경우, Hatamizadeh et al은 새로운 로컬 매개 변수화된 Level-Set 에너지 function의 매개변수 특징을 예측하기 위해 FCN 백본을 학습하는 통합된 DLAS(Deep Active Lesion Segmentation) 모델을 제안하였다. 다른 관점에서 Macros et al은 제안된 DSAC(Deep Structured Active Contours)는 항공 이미지에서 인스턴스 분할을 수행하기 위해 구조화된 Prediction 프레임 워크에서 ACM과 사전 학습된 FCN을 결합하였다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;Other Models&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;723&quot; data-origin-height=&quot;138&quot; data-filename=&quot;blob&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nwtZC/btqRx1hlnik/U0eOlHGoxvHqokNIJbv2q1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nwtZC/btqRx1hlnik/U0eOlHGoxvHqokNIJbv2q1/img.png&quot; data-alt=&quot;Panoptic Segmentation&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nwtZC/btqRx1hlnik/U0eOlHGoxvHqokNIJbv2q1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnwtZC%2FbtqRx1hlnik%2FU0eOlHGoxvHqokNIJbv2q1%2Fimg.png&quot; data-origin-width=&quot;723&quot; data-origin-height=&quot;138&quot; data-filename=&quot;blob&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Panoptic Segmentation&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;위의 모델들 외에도 인기있는 모델들이 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;EncNet(Context Encoding Network)&lt;/b&gt; : 기본 특징 추출기를 사용하고, 특징 맵을 Context Encoding Module에 공급하는 방법이다.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;RefineNet&lt;/b&gt; : 먼-거리(long-range) residual 연결을 사용하여 고해상도 예측을 가능하게 하였으며, Down-sampling 과정에서 사용 가능한 모든 정보(Global, Local)를 명시적으로 활용하는 multi-path 네트워크이다.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;OCR(Object Contextual Representations)&lt;/b&gt; : GT와의 감독학습을 통해 객체 영역에 대해 학습하고, 객체 영역에 대한 계산, 각 픽셀과 각 객체 영역에 대한 관계 그리고 각 객체의 Context 표현에 대한 특징들을 계산한다.&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;Panoptic Segmentation&lt;/b&gt; : 각 픽셀별 레이블링과 instance segmentation을 합친 용어로, Panoptic Feature Pyramid Network, attention-guided network for Panoptic segmentation, Seamless Scene Segmentation, panoptic deeplab, unified panoptic segmentation network, efficient panoptic segmentation 등이 있다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;Timeline of DL based Segmentation algorithms&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bhz3pE/btqRCVgydyJ/UcJdkpbaMYFQ4FT9QbdYxk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bhz3pE/btqRCVgydyJ/UcJdkpbaMYFQ4FT9QbdYxk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bhz3pE/btqRCVgydyJ/UcJdkpbaMYFQ4FT9QbdYxk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbhz3pE%2FbtqRCVgydyJ%2FUcJdkpbaMYFQ4FT9QbdYxk%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>Image processing/Segmentation</category>
      <author>유니디니</author>
      <guid isPermaLink="true">https://go-hard.tistory.com/120</guid>
      <comments>https://go-hard.tistory.com/120#entry120comment</comments>
      <pubDate>Tue, 29 Dec 2020 17:11:39 +0900</pubDate>
    </item>
    <item>
      <title>[Part 2] Image Segmentation Using Deep Learning, A survey</title>
      <link>https://go-hard.tistory.com/119</link>
      <description>&lt;script type=&quot;text/x-mathjax-config&quot;&gt; MathJax.Hub.Config({ tex2jax: {inlineMath: [['$','$'], ['\\(','\\)']]} }); &lt;/script&gt;
&lt;script src=&quot;https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/latest.js?config=TeX-MML-AM_CHTML&quot;&gt;&lt;/script&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Written by Shervin Minaee, Yuri Boykov, Fatih Porikli, Antonio Plaza, Nasser Kehtarnavaz, and Demetri Terzopoulos&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;Fully convolutional networks&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;Convolutional models with graphical models&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;Encoder-decoder based models&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;Multi-scale and pyramid network based models&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;R-CNN based models(for instance segmentation)&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;Dilated convolutional models and DeepLab family&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;Recurrent neural network based models&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;Attention-based models&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;Generative models and adversarial training&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;Convolutional models with active contour models&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;Other models&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;R-CNN based models(for instance segmentation)&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; width=&quot;417&quot; height=&quot;NaN&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bcbf37/btqRL2ZHBfX/za3I20ehBMYMHtjM07jNg1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bcbf37/btqRL2ZHBfX/za3I20ehBMYMHtjM07jNg1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bcbf37/btqRL2ZHBfX/za3I20ehBMYMHtjM07jNg1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbcbf37%2FbtqRL2ZHBfX%2Fza3I20ehBMYMHtjM07jNg1%2Fimg.png&quot; width=&quot;417&quot; height=&quot;NaN&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Region 기반의 컨볼루션 네트워크와 확장 버전(Fast R-CNN, Faster R-CNN, Masked R-CNN)등은 객체 탐지 분야에서 성공적으로 입증되었다. 특히, 객체 탐지를 위해 개발된 Faster R-CNN 방법은 RPN(Region Proposal Network)을 사용하여 바운딩 박스 후보를 제안한다. RPN은 관심 영역(ROI)을 추출하고, ROI Pool 계층은 바운딩 박스 좌표와 객체 클래스를 추론한다. R-CNN의 확장 방법중 일부는 인스턴스 분할 문제를 해결하는 데 많이 사용되었으며, 객체 탐지와 semantic 분할을 동시에 수행하는 작업으로 확장되었다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;467&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dz5Fl6/btqRxZDjeZU/qMMD2csRKMWKRhI5adFKk1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dz5Fl6/btqRxZDjeZU/qMMD2csRKMWKRhI5adFKk1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dz5Fl6/btqRxZDjeZU/qMMD2csRKMWKRhI5adFKk1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdz5Fl6%2FbtqRxZDjeZU%2FqMMD2csRKMWKRhI5adFKk1%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;467&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;He et al&lt;/b&gt; : 객체 인스턴스 분할을 위한 Mask R-CNN을 제안하였으며, COCO 벤치마크 데이터 셋에 대하여 좋은 성능을 보였다. 이 모델은 이미지안의 객체를 효율적으로 탐지하는 동시에 각 인스턴스에 대한 segmentation mask를 생성한다. Mask R-CNN은 그림 17과 같이 Faster RCNN에 3개의 output branch를 가지고 있다.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #000000;&quot;&gt;첫번째는 바운딩 박스 상좌 좌표값을 계산하고, 두번째는 연관된 클래스를 계산하며 세번째는 객체를 분할하기 위해 이진마스크를 계산한다. Mask R-CNN 손실함수는 바운딩 박스 상자 좌표, 예측된 클래스와 분할 마스크에 대한 손실 결합하여 공동으로 학습한다.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #000000;&quot;&gt;$L = L_{cls} + L_{box} + L_{mask}$&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;637&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nXkaV/btqRxZJ2Qzf/QCMgXGxeQKAtaSB5FZ63f1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nXkaV/btqRxZJ2Qzf/QCMgXGxeQKAtaSB5FZ63f1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nXkaV/btqRxZJ2Qzf/QCMgXGxeQKAtaSB5FZ63f1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnXkaV%2FbtqRxZJ2Qzf%2FQCMgXGxeQKAtaSB5FZ63f1%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;637&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;Liu et al&lt;/b&gt; : &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;Path Aggregation Network(PANet)&lt;/b&gt;&lt;/span&gt;은 Mask R-CNN 및 FPN 모델을 기반으로 한다. (Fig 19.) 네트워크의 특징 추출부분은 하위 계층 특징의 전파를 개선하는 새로 augmented bottom-up 경로가 있는 FPN 아키텍쳐를 사용한다.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;세번째 단계인 c계층에서는 이전 단계의 특징 맵을 입력으로 받아 3x3 컨볼루션 레이어로 처리한다.&lt;/span&gt; &lt;/b&gt;출력은 측면 연결을 사용하여 하향식 경로의 동일한 단계 기능 맵에 추가되며 이러한 특징 맵은 다음 단계에 공급으로 사용한다. Mask R-CNN에서와 같이 Adaptive feature pooling layer의 출력은 3개의 branch로 공급하며, 처음 두 개는 완전 연결 계층을 사용하여 바운딩 박스 좌표 및 관련 객체 클래스의 예측을 생성한다. 세 번째는 FCN으로 Roi를 처리하여 객체 마스크를 예측한다.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;Dai et al&lt;/b&gt; : 각각 인스턴스를 구별, 마스크 추정, 객체를 분류하는 세 개의 네트워크로 구성된 instance aware semantic segmentation 방법을 제안하였다. 이러한 네트워크는 계단식 구조(cascaded)를 형성하며 컨볼루션 특징들을 공유하도록 설계되어있다.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;Hu et al&lt;/b&gt; : 새로운 가중치 전달 함수와 새로운 부분 감독학습의 방법을 제안하였다. 이는 모든 box annotation이 있지만, 일부에만 마스크 annotation이 있는 큰 범주의 데이터에서 instance segmentation 모델을 학습할 수 있도록 한다.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;628&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bskLGL/btqRAjIkwdV/e5AaD4yu46xavzUD0QNS5k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bskLGL/btqRAjIkwdV/e5AaD4yu46xavzUD0QNS5k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bskLGL/btqRAjIkwdV/e5AaD4yu46xavzUD0QNS5k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbskLGL%2FbtqRAjIkwdV%2Fe5AaD4yu46xavzUD0QNS5k%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;628&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;Chen et al&lt;/b&gt; : Faster R-CNN을 기반으로 하는 semantic and direction 특징으로 객체 탐지를 개정하여 인스턴스 분할 모델인 MaskLab를 제안하였다. 이 모델은 Box 탐지, semantic segmentation 및 direction 예측의 세 가지 출력을 생성한다. &lt;br /&gt;Faster-RCNN 객체 탐지부분을 기반으로 하는 prediction 부분은 객체 인스턴스의 정확한 위치를 제공한다. 각 관심 영역 내에서 Mask Lab는 semantic 정보와 direction prediction 정보를 결합하여, Foreground/Background에 대한 분할을 수행한다.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000;&quot;&gt;그 외에도, Tensormask등이 있다. Tensormask는 Dense 8개의 sliding window를 이용하여 intance segmentation을 수행한다. dense instance segmentation을 4D 텐서에 대한 예측 작업으로 수행하고, 4D 텐서에 대해 연산이 가능한 프레임워크를 제시한다. 그들은 텐서 view가 baseline에 비해 큰 이득을 얻고, Mask R-CNN과 유사한 성능을 보이는 결과를 만든다는 것을 보여준다. TensorMask는 dense한 객체 분할에서 좋은 결과를 달성한다.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000;&quot;&gt;R-FCN, DeepMask, PolarMask, boundary-aware instance segmentation과 CenterMask 등은 mask 제안을 위해 개발되었으며, R-CNN을 기반으로 한다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;Dilated Convolutional Models and DeepLab Family&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;492&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/yEi5X/btqRL2SYgZt/IpDcEqKnkJffRQZ8EBysOk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/yEi5X/btqRL2SYgZt/IpDcEqKnkJffRQZ8EBysOk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/yEi5X/btqRL2SYgZt/IpDcEqKnkJffRQZ8EBysOk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FyEi5X%2FbtqRL2SYgZt%2FIpDcEqKnkJffRQZ8EBysOk%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;492&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;확장된 컨볼루션(a.k.a &quot;atrous&quot;)은 컨볼루션 레이어에 또다른 매개 변수인 dilation rate를 적용한다. dilated convolution은 Fig 21과 같으며, 가중치 사이의 간격을 조정할 수 있다. 예를 들어, dilated rate이 2인 3x3 커널은 5x5 커널과 동일한 크기의 receptive field를 가지며, 9개의 매개변수 만 사용하므로 계산비용이 크게 증가하지 않고 receptive field를 확대할 수 있다. dilated covolution은 real-time semantic segmentation 분야에서 인기가 많으며, 최근에도 적용되는 추세이다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;DeepLab Family, multiscale context aggregation, dense upsampling convolution과 hybrid dilated convolution(DUC-HDC), densely connected Atrous Spatial Pyramid Pooling (Dense ASPP), efficient neural network 등이 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; width=&quot;550&quot; height=&quot;NaN&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bjUdBN/btqRL2k9bb3/GXR8r3yiVTE7jQd0qZrA1K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bjUdBN/btqRL2k9bb3/GXR8r3yiVTE7jQd0qZrA1K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bjUdBN/btqRL2k9bb3/GXR8r3yiVTE7jQd0qZrA1K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbjUdBN%2FbtqRL2k9bb3%2FGXR8r3yiVTE7jQd0qZrA1K%2Fimg.png&quot; width=&quot;550&quot; height=&quot;NaN&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000;&quot;&gt;DeepLabV1, DeepLabV2는 이미지 세그먼테이션 분야에서 인기있는 방법 중 하나이며, 세가지 주요 특징이있다.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #000000;&quot;&gt;첫번째, 확장된 convolution을 사용하여 네트워크에서 감소하는 해상도 문제를 해결하는 것이다.(caused by max-pooling, striding)&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #000000;&quot;&gt;두번째, Atrous Spatial Pyramid Pooling(ASPP)으로 여러 dilated rates의 필터를 사용하여 들어오는 특징 맵을 컨볼루션 레이어를 이용하여 집계 및 활용한다.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #000000;&quot;&gt;세번째, Deep CNN과 확률적 그래픽 모델의 방법을 결합하여 객체 boundary에서의 향상된 성능을 보인다.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #000000;&quot;&gt;최고의 모델인 DeepLab(using a Resnet 101)은 2012 PASCAL VOC에서 mIOU 79.7%, PASCAL-Context Challenge 45.7%, Cityscapes challenge 70.4%를 달성하였다.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;564&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dFKN5r/btqRCVN1bmF/KmCgUqW18pVkNiqi0ft5M0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dFKN5r/btqRCVN1bmF/KmCgUqW18pVkNiqi0ft5M0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dFKN5r/btqRCVN1bmF/KmCgUqW18pVkNiqi0ft5M0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdFKN5r%2FbtqRCVN1bmF%2FKmCgUqW18pVkNiqi0ft5M0%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;564&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;Chen et al&lt;/b&gt; : DeepLabV3는 cascaded와 parallel한 dilated convolution 모듈의 결합으로 발전하였다. Parallel convolution 모듈들은 ASPP내에서 그룹화되며, 독특한 특징으로 나타난다. 1x1 컨볼루션과 배치 정규화가 더해졌으며 모든 결과들은 연결되고 1x1 컨볼루션 연산에 의해 처리된다.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #000000;&quot;&gt;또한, DeepLabV3+에서는 encoder-decoder 구조의 특징을 가지며(Fig 23), atrous separable convolution, depthwise convolution, pointwise convolution등이 포함되어 있다. 그들은 DeepLabv3에서의 encoder 네트워크를 사용하고 있으며, Xception 네트워크를 백본으로 사용하여 더 많은 레이어(dilated depthwise separable)를 추가하며 변형하였다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;Recurrent Neural Network Based Models&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;CNN은 컴퓨터 비전 문제에서 빈번하게 사용되었으며, RNN은 Segmentation 추정을 개선하기 위해 픽셀간의 단기/ 장기적으로 모델링하는데 유용하다. RNN을 사용하면, 픽셀을 함께 연결하고 순차적으로 처리하여 전역적 Context 정보를 모델링하고 semantic segmentation을 개선할 수 있다. 하지만, 한 가지 문제점은 이미지는 2D 구조라는 점이다. (RNN은 주로 시퀀스 데이터에 적용되어왔다.)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;704&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cySzUx/btqRt6ptv6x/IdpRG00n7vYk2wy0hgPVeK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cySzUx/btqRt6ptv6x/IdpRG00n7vYk2wy0hgPVeK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cySzUx/btqRt6ptv6x/IdpRG00n7vYk2wy0hgPVeK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcySzUx%2FbtqRt6ptv6x%2FIdpRG00n7vYk2wy0hgPVeK%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;704&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;Visin et al&lt;/b&gt; : RNN 기반의 ReSeg모델을 제안하였다. &lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;이 모델은 주로 이미지 분류를 위해 ReNet이라는 방법을 기반으로 한다. 각 ReNet 계층은 이미지를 양방향으로 수평 및 수직으로 진행하고, patch/ activations를 인코딩하고 관련 Global 정보를 제공하는 4개의 RNN으로 구성된다.&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;ReSeg 모델을 사용하여 이미지 분할을 수행하기 위해 ReNet 레이어는 일반 Local 특징을 추출하는 사전 학습된 VGG-16 컨볼루션 레이어 위에 쌓인다. ReNet 레이어 다음에는 Up-sampling 레이어가 이어지며, 최종 예측에서 원래 이미지 해상도로 복구된다. GRU(Gated Recurrent Unit)는 메모리 사용량과 계산 능력 사이에 적절한 균형을 제공하기위해 사용된다.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;606&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bTJKb3/btqRGpOOUin/tuIsUvRbK3DUWZolKNm7Gk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bTJKb3/btqRGpOOUin/tuIsUvRbK3DUWZolKNm7Gk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bTJKb3/btqRGpOOUin/tuIsUvRbK3DUWZolKNm7Gk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbTJKb3%2FbtqRGpOOUin%2FtuIsUvRbK3DUWZolKNm7Gk%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;606&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;636&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bFbvw4/btqROeMr06W/YbwqtX9K5ObNU0VOYFSvY1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bFbvw4/btqROeMr06W/YbwqtX9K5ObNU0VOYFSvY1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bFbvw4/btqROeMr06W/YbwqtX9K5ObNU0VOYFSvY1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbFbvw4%2FbtqROeMr06W%2FYbwqtX9K5ObNU0VOYFSvY1%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;636&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;Liang et al&lt;/b&gt;은 연속 데이터 또는 다차원 데이터에서 일반 그래프 구조 데이터로 LSTM을 일반화하는 Graph LSTM 네트워크를 기반으로 하는 Semantic segmentation&amp;nbsp; 모델을 제안했다.&lt;br /&gt;&lt;br /&gt;이미지를 기존 다차원 LSTM 구조(ex 행, 격자 및 대각선 LSTM)의 픽셀 또는 패치로 균등하게 분할하는 대신 임의의 모양의 각 슈퍼 픽셀을 의미 상 일관성있는 노도로 간주하고, 이미지에 대한 무 방향 그래프를 슈퍼 픽셀의 공간적 관계가 자연스럽게 가장자리(Edges)로 사용하여 구성하였다.&lt;br /&gt;&lt;br /&gt;그림 25는 기존의 픽셀단위 RNN 모델과 그래프 LSTM 모델을 시각적으로 비교한 것이다. Graph LSTM 모델을 Semantic Segmentation에 적용한 모델은 그림 26과 같으며, 슈퍼 픽셀 맵에 구축된 LSTM 레이어가 컨볼루션 레이어가 추가되어 시각적 특징(Global context)을 향상시킨다. 컨볼루션 특징들은 1x1 컨볼루션 필터를 통과하여 모든 레이블에 대한 초기 신뢰도(Confidence) 맵을 생성한다. 후속 Graph LSTM 계층에 대한 노트 Update 시퀀스는 초기 신뢰도 맵을 기반으로 하는 방식에 의해 결정되며, graph LSTM 계층은 모든 슈퍼픽셀 노드의 은닉 상태를 순차적으로 업데이트 할 수 있다.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;607&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Ke8mM/btqRt635CLe/cvrYKbxhokocF6tdeGkKxK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Ke8mM/btqRt635CLe/cvrYKbxhokocF6tdeGkKxK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Ke8mM/btqRt635CLe/cvrYKbxhokocF6tdeGkKxK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FKe8mM%2FbtqRt635CLe%2FcvrYKbxhokocF6tdeGkKxK%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;607&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;651&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/OSGPW/btqRL3EnMPo/vNk3kfQhhNnJrENnRXMkQ1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/OSGPW/btqRL3EnMPo/vNk3kfQhhNnJrENnRXMkQ1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/OSGPW/btqRL3EnMPo/vNk3kfQhhNnJrENnRXMkQ1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FOSGPW%2FbtqRL3EnMPo%2FvNk3kfQhhNnJrENnRXMkQ1%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;651&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;Hu et al&lt;/b&gt; : 이미지를 인코딩 하는 CNN과 자연어 설명을 인코딩하는 LSTM의 조합을 사용하여 자연어 표현에 기반한 의미론적 분할 알고리즘을 제안하였다. 예를 들어, &quot;오른쪽 벤치에 앉아있는 두 사람&quot;이라는 문구는 오른쪽 벤치에 두 사람만 세분화 해야하고 다른 벤치에 서있거나 앉아 있지 않아야 하기 때문에 사전 정의된 의미론적 클래스 집합에 대한 기존의 방법과는 차이점을 보인다.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #000000;&quot;&gt;언어 표현을 위한 픽셀 단위 분할을 생성하기 위해 시각 및 언어 정보를 처리하는 방법을 공동으로 학습하는 순환 및 컨볼루션 모델을 제안하였다.(Fig 27) 이 모델은 반복 LSTM 네트워크를 사용하여 참조된 표현을 벡터 표현으로 인코딩하고 FCN을 사용하여 이미지에서 공간 특징 맵을 추출하고 대상 객체에 대한 공간 response 맵을 출력한다. 이 모델에 대한 segmentation 결과는 그림 28과 같다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;RNN의 한계는 CNN 모델보다 느리며, 그 이유는 순차 계산은 쉽게 병렬화 될 수 없기 때문이다.&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>Image processing/Segmentation</category>
      <author>유니디니</author>
      <guid isPermaLink="true">https://go-hard.tistory.com/119</guid>
      <comments>https://go-hard.tistory.com/119#entry119comment</comments>
      <pubDate>Mon, 28 Dec 2020 23:49:10 +0900</pubDate>
    </item>
    <item>
      <title>[Part 1] Image Segmentation Using Deep Learning, A survey</title>
      <link>https://go-hard.tistory.com/118</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Written by Shervin Minaee, Yuri Boykov, Fatih Porikli, Antonio Plaza, Nasser Kehtarnavaz, and Demetri Terzopoulos&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;논문에서 다루고자 하는 카테고리는 아래와 같으며, 3회에 걸쳐 리뷰해볼까 합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;Fully convolutional networks&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;Convolutional models with graphical models&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;Encoder-decoder based models&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;Multi-scale and pyramid network based models&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;R-CNN based models(for instance segmentation)&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;Dilated convolutional models and DeepLab family&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;Recurrent neural network based models&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;Attention-based models&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;Generative models and adversarial training&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;Convolutional models with active contour models&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;Other models&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;Fully convolutional networks&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;초창기 Fully Convolutional Network&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Fully Connected layers를 Fully-Convolutional layers로 대체&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Skip connection 방법을 사용하여 정확도를 높임&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Context information간의 결합을 통해 정확도 높임&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;초창기 Semantic Image Segmentation 모델 중 하나이며, Fully Convolutional Network 방법 (Only Convolutional 계층들 만 사용)을 사용하였다. 이러한 방법은 임의의 크기를 가진 이미지를 입력으로, 입력 사이즈와 동일한 크기의 결과 맵을 생성하였다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;600&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/61XBb/btqQIaeyNa9/3tn9q4qAsSeOoK3hcksUYK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/61XBb/btqQIaeyNa9/3tn9q4qAsSeOoK3hcksUYK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/61XBb/btqQIaeyNa9/3tn9q4qAsSeOoK3hcksUYK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F61XBb%2FbtqQIaeyNa9%2F3tn9q4qAsSeOoK3hcksUYK%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;600&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;span style=&quot;color: #000000;&quot;&gt;저자들은 VGG-16, GoogLeNet등과 같은 방법들을 응용하여, 고정되지 않은 크기의 입력과 출력데이터를 다루기 위해 모든 Fully-connected layers (FC-layer, Linear 연산)를 Fully-convolutional layers(컨볼루션 연산)로 대체하였다. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;결과적으로, Spatial segmentation map 대신, Fig 7과 같은 Classification scores (분할 스코어를 가진 맵)를 가진 결과를 얻을 수 있었다.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;646&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ua4Mr/btqQCzTGMq9/9lJP4ZMzZxJjKly3fcxB0k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ua4Mr/btqQCzTGMq9/9lJP4ZMzZxJjKly3fcxB0k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ua4Mr/btqQCzTGMq9/9lJP4ZMzZxJjKly3fcxB0k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fua4Mr%2FbtqQCzTGMq9%2F9lJP4ZMzZxJjKly3fcxB0k%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;646&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;br /&gt;또한, 최종 레이어의 특징 맵이 Up-sampling되고, 이전 레이어의 특징 맵과 융합되는 Skip-connection을 사용하여 모델은 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;Semantic information(문맥상의 정보 - 의미정보, from deep, coarse layers)&lt;/b&gt;&lt;/span&gt;와 &lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;Apperance information (from shallow, fine layers)&lt;/span&gt;&lt;/b&gt;를 결합하여 정확하고 세부적인 결과맵을 생성한다. (Fig 8)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; width=&quot;614&quot; height=&quot;NaN&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/QsT7E/btqQE9tsdY8/LGYvuV2DPOxOgAo4cF5Kk1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/QsT7E/btqQE9tsdY8/LGYvuV2DPOxOgAo4cF5Kk1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/QsT7E/btqQE9tsdY8/LGYvuV2DPOxOgAo4cF5Kk1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FQsT7E%2FbtqQE9tsdY8%2FLGYvuV2DPOxOgAo4cF5Kk1%2Fimg.png&quot; width=&quot;614&quot; height=&quot;NaN&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;br /&gt;그러나, 빠르지 않은 Real-time infernece 문제와 Global Context 정보를 효율적으로 고려하지 않음, 3D 이미지들로 쉽게 이전할 수 없는 문제를 가지고 있다.&lt;/span&gt;&lt;/b&gt; 이러한 문제들을 극복하기 위해 Liu et al.은 ParseNet 모델을 제안하였으며, Global context information을 무시하고 FCN 문제를 해결하기 위한 방법으로 알려져 있다. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;이에, ParseNet은 계층에서 평균(Average) 특징을 사용하여 FCN에 Global context 정보를 증강(augment), 보강하였다. 이 계층에서의 특징맵은 전체 이미지에서 글로벌 풀링되어 컨텍스트 벡터(그림 9의 살색 벡터)를 생성하며, 초기 이미지 값(보라색 벡터)과 동일한 크기의 새 특징맵을 생성한다. 그런 다음, 초기 특징맵과 연결(Concatenate)된다.&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;Convolutional Models With Graphical Models&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;FCN에서 지적된 바와 같이, 잠재적으로 유용한 Scene-level semantic context 정보를 무시한다. 더 많은 context 정보를 활용하기 위해 여러가지 접근 방식(CRF-Conditional Random Field, MRF-Markov Random Field)와 같은 확률적 그래픽 모델을 통합하였다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;574&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/YE5g9/btqQIWf5opl/2gq3E9cGDGiM60v8hPcB01/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/YE5g9/btqQIWf5opl/2gq3E9cGDGiM60v8hPcB01/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/YE5g9/btqQIWf5opl/2gq3E9cGDGiM60v8hPcB01/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FYE5g9%2FbtqQIWf5opl%2F2gq3E9cGDGiM60v8hPcB01%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;574&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;Chen et al&lt;/b&gt; : CRFs와 CNN을 결합한 방식으로, 기존 CNN 최종 레이어는 정확한 객체 분할을 위해 충분히 지역화(Localization)되지 않는다는 것을 보여주었다. 이를 극복하기 위해, &lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;CNN의 마지막 계층을 fully-connected CRF와 연결함으로써 그림 10과 같이 이전 방법보다 더 높은 정확도의 Segment boundaries를 지역화 할 수 있음을 보여주고 있다.&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;Schwing and Urtasun&lt;/b&gt; : 이미지 분할을 위해 완전 연결된 CNN구조를 제안하였다. Semantic segmenataion을 위해 CNN과 완전 연결된 CRF를 공동으로 학습하는 방법을 제시하였으며, PASCAL VOC 2012에서 좋은 결과를 얻었다.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;Zheng et al&lt;/b&gt; : CRF를 CNN과 통합하는 유사한 의미론적 분할 방법을 제안하였다. 다른 관련 작업에서 Lin et al은 Contextual Deep CRF에 기반한 의미론적 분할을 위한 효율적인 알고리즘을 제안하였다.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #000000;&quot;&gt; 이에, &quot;Patch-Patch&quot; context(image 영역 내)와 &quot;Patch-background&quot; context를 탐색하여 성능을 개선하였다.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;Liu et al&lt;/b&gt; : 고차원 관계 및 Label Context 정보의 혼합을 포함한, 다양한 정보를 MRF(Markov Random Field)에 통합하는 의미론적 분할 알고리즘을 제안하였다. 이 방법은 기존 방법들(반복 알고리즘)과 달리 종단 간 계산을 가능하게 하는 CNN 모델, 즉 Parsing Network를 제안하였다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;Encoder-Decoder Based Models&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;또 다른 인기있는 모델로써, 일반 segmentation을 위한 모델과 의료 이미지 segmentation을 위한 모델로 그룹화 할 수 있다. (응용 어플리케이션 간 구별을 위해)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #f89009;&quot;&gt;General Segmentation Models&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;578&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/BVTvh/btqQPzjC1l5/gfXnBKFGZ4xAeQFJR2H9Ck/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/BVTvh/btqQPzjC1l5/gfXnBKFGZ4xAeQFJR2H9Ck/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/BVTvh/btqQPzjC1l5/gfXnBKFGZ4xAeQFJR2H9Ck/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FBVTvh%2FbtqQPzjC1l5%2FgfXnBKFGZ4xAeQFJR2H9Ck%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;578&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;Noh et al&lt;/b&gt; : &lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;Deconvolution(a.k.a Transposed convolution)&lt;/span&gt;&lt;/b&gt;에 기반한 의미론적 분할에 대한 초기 방법을 제안하였다. 그림 11과 같이 VGG16을 채택하여 컨볼루션 계층을 사용하는 인코더 네트워크와 특성벡터를 입력으로 받아 결과 이미지를 생성하는 디코더, 디컨볼루션 네트워크으로 구성된다. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #000000;&quot;&gt;디 컨볼루션 네트워크는 디 컨볼루션 및 Unpooling 계층으로 구성되어 픽셀단위 클래스 레이블을 식별하고 마스크를 예측한다. PASCAL VOC 2012 데이터 세트에서 좋은 성능을 보였으며, 외부 데이터 없이 학습된 방법 중 최고의 정확도를 얻었다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;605&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/VR5Zn/btqQDGrA0kj/VZZeHbw7EbWiiyvADNzFF1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/VR5Zn/btqQDGrA0kj/VZZeHbw7EbWiiyvADNzFF1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/VR5Zn/btqQDGrA0kj/VZZeHbw7EbWiiyvADNzFF1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FVR5Zn%2FbtqQDGrA0kj%2FVZZeHbw7EbWiiyvADNzFF1%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;605&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;Badrinarayanan et al&lt;/b&gt; : SegNet으로 알려진 방법을 제안하였다. 디 컨볼루션 네트워크와 유사하게 &lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;VGG16 네트워크의 13개 컨볼루션 레이어로 구성된 Encoder 부분과 픽셀단위 분류 계층(classification layer)으로 구성된 디코더 네트워크&lt;/span&gt;&lt;/b&gt;로 구성된다. 주요 기여점은 &lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;디코더가 저해상도 입력 특징맵을 Up-sampling&lt;/span&gt;&lt;/b&gt;하는 방식이다. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #000000;&quot;&gt;특히, 해당 인코더의 max pooling 단계에서 계산된 pooling 인덱스를 사용하여 비선형 up-sampling을 수행한다. 이러한 연산방법은 업샘플링을 학습할 필요가 없어지게 된다. 그런 다음, Up-sampling 된 맵을 학습 가능한 필터와 컨볼루션하여 dense한 특징 맵을 생성하였다.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;SegNet은 다른 아키텍쳐들에 비해 학습가능한 파라미터가 현저히 적어지며, 또다른 버전인 베이지안 버전은 Scene 분할을 위한 컨볼루션 인코더-디코더 네트워크에 내재된 불확실성을 모델링 하기 위해 제안되었다.&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nY0DI/btqQDFF96Lk/rgX5PmCvZI4u8o6IJBCKh0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nY0DI/btqQDFF96Lk/rgX5PmCvZI4u8o6IJBCKh0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nY0DI/btqQDFF96Lk/rgX5PmCvZI4u8o6IJBCKh0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnY0DI%2FbtqQDFF96Lk%2FrgX5PmCvZI4u8o6IJBCKh0%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000;&quot;&gt;최근 많이 사용되고 있는 방법으로 HRNet이라 불린다. 그림 13은 DeConvNet, SegNet, U-Net 및 V-Net에서 수행되는 것 처럼 고해상도 표현을 복구하며, HRNet은 고해상도를 유지한다.&lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt; 고해상도 컨볼루션 스트림을 병렬로 연결하고 해상도 간의 정보를 반복적으로 교환하며, 인코딩 프로세스를 통해 표현한다.&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Self-attention과 extensions 모델등을 활용하여 HRNet을 백본으로 많이 사용되고 있으며, Locality sensitive한 디컨볼루션 네트워크를 가진 SDN, LinkNet, W-Net, RGBD 분할을 위한 인코더-디코더 등에서 활용된다.(Transposed convolution등이 활용)&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;인코더-디코더 기반 모델의 한가지 제한은 인코딩 프로세스를 통한 고해상도 표현의 손실로 인해 이미지의 세분화된 정보가 손실된다는 것이며 이러한 문제를 HR-Net과 같은 일부 네트워크에서 해결하고 있다.&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;&lt;span style=&quot;color: #f89009;&quot;&gt;Encoder-Decoder Models for Medical and Biomedical Image Segmentation&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;FCN 및 인코더-디코더 모델에서 영감을 얻은 의료/ 생체 의학 이미지 분할을 위해 처음 개발된 여러 모델이 있으며 U-Net과 V-Net이 대표적이다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;601&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bjrG5q/btqQJE0zsY3/D6Ji7SVe7gsHqpAGjPq9t1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bjrG5q/btqQJE0zsY3/D6Ji7SVe7gsHqpAGjPq9t1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bjrG5q/btqQJE0zsY3/D6Ji7SVe7gsHqpAGjPq9t1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbjrG5q%2FbtqQJE0zsY3%2FD6Ji7SVe7gsHqpAGjPq9t1%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;601&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;Ronneberger et al&lt;/b&gt; : 생물학적 현미경 이미지를 분할하기 위한 U-Net을 제안하였다. &lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;이들의 네트워크 및 학습 전략은 annotation이 추가된 극소수의 이미지에서 효과적으로 학습하기 위해 데이터 증강 방법을 사용한다.&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;U-Net의 아키텍쳐는 그림 14와 같으며, 인코더와 디코더 부분이 대칭을 이루고 있다.&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #000000;&quot;&gt;다운 샘플링 또는 수축 부분은 3x3 컨볼루션으로 특징을 추출하며, FCN과 동일한 아키텍쳐를 가지고 있다. 또한, 업샘플링 또는 확장 부분은 피쳐 맵의 수를 줄이면서 이미지의 크기를 늘려준다. 네트워크의 다운 샘플링 부분의 특징 맵은 패턴 정보 손실을 방지하기 위해 업샘플링 부분에 복사된다.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #000000;&quot;&gt;마지막으로 1x1 컨볼루션은 특징맵을 처리하여 입력 이미지의 각 픽셀을 분류하는 분할 맵을 생성한다. U-Net은 30개의 투과광 현미경 이미지에 대해 학습하며, 2015년 ISBI 세포 추적 챌린지에서 큰 차이로 우승한 바 있다.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #000000;&quot;&gt;그 후, 다양한 방법들로 확장되었으며 Cicek et al은 3D 이미지를 위한 U-Net 아키텍처를 제안하였다. Zhou et al은 중첩된 U-Net 아키텍처를 제안하였으며, Zhang et al은 U-Net 기반 도로 이미지 분할/추출 알고리즘을 개발하였다.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;V-Net은 Milletari 등이 제안하였으며, FCN 기반 3D 의료 영상 분할 용 모델&lt;/b&gt;이다. 모델의 학습을 위해, &lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;그들은 Dice Coefficient를 기반으로 하는 새로운 손실함수를 도입하였고, 모델이 전경(Foreground)과 배경의 복셀(3D 픽셀) 수 사이에 강한 불균형이 있는 상황을 처리할 수 있도록 하였다.&lt;/span&gt; &lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #000000;&quot;&gt;이 네트워크는 전립선의 MRI 볼륨에 대해 종단 간 학습을 수행하며, 전체 볼륨에 대한 분할을 한 번에 예측하는 방법으로 채택된다. 의료 영상 분할에 대한 다른 방법으로는 PDV-Net(Progressive Dense V-Net) 즉, 흉부 CT 영상에서 pulmonary lobes을 빠르고 자동으로 분할하며, lesion segmentation(병변 분할)을 위한 3D-CNN 인코더 부분이 포함되어 있다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;b&gt;&lt;span style=&quot;color: #f89009;&quot;&gt;Multi-Scale and Pyramid Network Based Models&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;576&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/EpHBK/btqQIbdCNLm/tdkCIoVwnqSTUdUbEHH500/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/EpHBK/btqQIbdCNLm/tdkCIoVwnqSTUdUbEHH500/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/EpHBK/btqQIbdCNLm/tdkCIoVwnqSTUdUbEHH500/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FEpHBK%2FbtqQIbdCNLm%2FtdkCIoVwnqSTUdUbEHH500%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;576&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;br /&gt;이미지 처리 분야에서 다소 오래된 아이디어로 딥러닝 모델에 포함되어 개발되었다. 이러한 방법에서 가장 많이 쓰이는 모델은 FPN(Feature Pyramid Network)이다. 주로 객체 탐지를 위해 개발되었지만, segmentation에도 적용된다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Deep CNN의 고유한 다중 스케일 피라미드 계층 구조는 추가 비용이 거의 없는 피쳐 피라미드를 구성하는데 사용되었다. 저 해상도 및 고 해상도 특징을 결합하기 위해 FPN은 상향식(bottom-up) 경로, 하향식(Top-donw) 경로 및 측면(Lateral) 연결로 구성된다. 연결된 특징 맵은 3x3 컨볼루션으로 처리되어 각 단계의 출력을 생성한다. 하향식 경로의 각 단계의 마지막은 물체를 탐지하기 위한 예측을 생성하며, 이미지 분할을 위해서는 두개의 다중 레이어 퍼셉트론(MLP)를 사용한다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;Zhao et al&lt;/b&gt; : Scene의 글로벌 컨텍스트 표현을 더 잘 학습하기 위해, Multi scale 네트워크인 &lt;b&gt;Pyramid Scene Parsing Network를 개발하였다. 확장된 네트워크와 Residual network를 특징 추출기&lt;/b&gt;로 사용하였다. 그 후, 추출된 특징맵은 피라미드 Pooling 모듈에 입력되어 다른 스케일의 패턴으로 구분된다. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #000000;&quot;&gt;이러한 패턴은 피라미드 수준에 해당하는 4개의 다른 스케일로 풀링되고, 크기를 줄이기 위해 1x1 컨볼루션 레이어로 처리된다. &lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;피라미드 레벨의 출력은 업샘플링되고, 초기 특징 맵과 연결되어 지역 및 글로벌 컨텍스트 정보를 모두 포착한다.&lt;/span&gt; &lt;/b&gt;마지막으로, 픽셀 단위 예측을 생성하기 위해 컨볼루션 계층을 사용한다.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;Ghiasi and Fowlkes&lt;/b&gt; : 고해상도 피쳐 맵의 스킵 연결과 곱셈 연산을 사용하여 저해상도 맵에서 재 구성된 Segmentation boundaries를 연속적으로 개선하는 라플라시안 피라미드를 기반으로 하는 Multi-scale 해상도 재구성 아키텍처를 제안하였다.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #000000;&quot;&gt;그들은 컨볼루션 특징 맵의 공간(Spatial) 해상도는 낮지만 고차원 특징 표현에는 중요한 위치 정보가 포함되어 있음을 보여준다. (DM-Net, Context contrasted network and gated multiscale Aggregation (CCN), Adaptive Pyramid Context Network (APC-Net), MSCI(Multi-scale context intertwining)과 salient object detection)&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>Image processing/Segmentation</category>
      <author>유니디니</author>
      <guid isPermaLink="true">https://go-hard.tistory.com/118</guid>
      <comments>https://go-hard.tistory.com/118#entry118comment</comments>
      <pubDate>Sun, 20 Dec 2020 00:53:23 +0900</pubDate>
    </item>
    <item>
      <title>Metrics for segmentation Models</title>
      <link>https://go-hard.tistory.com/117</link>
      <description>&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;script type=&quot;text/x-mathjax-config&quot;&gt; MathJax.Hub.Config({ tex2jax: {inlineMath: [['$','$'], ['\\(','\\)']]} }); &lt;/script&gt;
&lt;script src=&quot;https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/latest.js?config=TeX-MML-AM_CHTML&quot;&gt;&lt;/script&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;서로 다른 Segmentation 모델들에 대해 성능 비교하기 위해서는 benchmark 데이터 셋에 대한 평가지표가 필요하며, 가장 많이 쓰이는 merics들을 정리해보고자 한다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;&lt;span style=&quot;color: #953b34;&quot;&gt;Pixel accuracy&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;span style=&quot;color: #953b34;&quot;&gt;Mean Pixel Accuracy(MPA)&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;span style=&quot;color: #953b34;&quot;&gt;Intersection over Union(IoU)&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;span style=&quot;color: #953b34;&quot;&gt;Mean-IoU&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;span style=&quot;color: #953b34;&quot;&gt;Precision/Recall/F1 score&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;span style=&quot;color: #953b34;&quot;&gt;Dice coefficient&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #953b34;&quot;&gt;Pixel accuracy&lt;/span&gt;&lt;/b&gt; : 분할된 픽셀 수(classified)를 전체 픽셀 수로 나눈다. K+1개의 클래스(K는 foreground class - 분할하고자 하는 물체의 수, 1은 background-배경)라고 할때, 수식은 다음과 같다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;$ PA = \frac{\sum_{i=0}^{K}p_{ii}}{\sum_{i=0}^{K}\sum_{j=0}^{K} p_{ij}} $&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;$ p_{ij} $에서 class i의 픽셀 수는 class j에 속하는 것으로 예측했다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #953b34;&quot;&gt;Mean Pixel Accuracy(MPA)&lt;/span&gt;&lt;/b&gt; : PA의 확장 버전으로, 올바르게 분할된 각 클래스 픽셀 픽셀수를 각 클래스 픽셀 수로 나누어 계산하며 총 클래스 수에 대해 평균화를 진행한다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;$MPA = \frac{1}{K+1}\sum_{I=0}^{K}\frac{p_{ii}}{ \sum_{j=0}^{K} p_{ij}}$&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #953b34;&quot;&gt;Intersection Over Union(IoU)&lt;/span&gt;&lt;/b&gt; : IoU 혹은 jaccard Index는 semantic segmentation 분야에서 가장 흔하게 쓰이는 metrics들이다. 예측된 분할 map과 정답(ground truth)사이에 교차(intersection) 영역으로 정의되며, 예측 분할 map과 정답 맵사이의 결합 영역(union)으로 나뉜다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;$IoU = J(A,B) = \frac{\left | A\cap B \right |}{\left | A\cup&amp;nbsp;&amp;nbsp;B \right |}$&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;A와 B는 gt와 예측된 분할 맵들을 각각 가리키며 범위는 0부터 1사이의 값이다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #953b34;&quot;&gt;Mean-IoU&lt;/span&gt;&lt;/b&gt; : average IoU는 모든 클래스에 대한 평균 IoU로 정의되는 metric이다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #953b34;&quot;&gt;Precision/Recall/F1 score&lt;/span&gt;&lt;/b&gt; : 수많은 방법들에서 비교하는 방법으로 사용된다. Precision과 Recall은 아래와 같이 전체 집계(aggregation) 수준뿐 아니라 각 클래스에 대해서도 정의할 수 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;$Precision = \frac{TP}{TP+FP}, Recall = \frac{TP}{TP+FN}$&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;TP는 True positive 비율, FP는 거짓 양성 비율, FN은 거짓 음성 비율을 나타낸다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/IaKxU/btqQE9l62x8/M1faRcNdbLFN88xkpktfB0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/IaKxU/btqQE9l62x8/M1faRcNdbLFN88xkpktfB0/img.png&quot; data-alt=&quot;Confusion Metrix&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/IaKxU/btqQE9l62x8/M1faRcNdbLFN88xkpktfB0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FIaKxU%2FbtqQE9l62x8%2FM1faRcNdbLFN88xkpktfB0%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Confusion Metrix&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Precdicted class : 모델이 예측한 값&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Actual class : 실제 정답값(gt)&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;최근 방법들에서는 측정항목을 결합한 방식에 관심을 가지고 있으며, Precision과 recall의 조화 평균인 F1 score라고 한다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;$F1-score = \frac{2Prec * Rec}{Prec+Rec}$&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #953b34;&quot;&gt;Dice coefficient&lt;/span&gt;&lt;/b&gt; : Medical image analysis에서 유명한 metric으로 예측 및 gt maps의 겹쳐지는 영역을 2로 곱한 후, 두 이미지의 총 픽셀 수로 나누어 정의할 수 있다. Dice coefficient는 IoU와 매우 유사하다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;$Dice = \frac{2TP}{2TP+FP+FN} = F1$&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;참고 자료 : &lt;a href=&quot;https://arxiv.org/abs/2001.05566&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;arxiv.org/abs/2001.05566&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1608301025998&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Image Segmentation Using Deep Learning: A Survey&quot; data-og-description=&quot;Image segmentation is a key topic in image processing and computer vision with applications such as scene understanding, medical image analysis, robotic perception, video surveillance, augmented reality, and image compression, among many others. Various al&quot; data-og-host=&quot;arxiv.org&quot; data-og-source-url=&quot;https://arxiv.org/abs/2001.05566&quot; data-og-url=&quot;https://arxiv.org/abs/2001.05566v5&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://arxiv.org/abs/2001.05566&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://arxiv.org/abs/2001.05566&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot;&gt;Image Segmentation Using Deep Learning: A Survey&lt;/p&gt;
&lt;p class=&quot;og-desc&quot;&gt;Image segmentation is a key topic in image processing and computer vision with applications such as scene understanding, medical image analysis, robotic perception, video surveillance, augmented reality, and image compression, among many others. Various al&lt;/p&gt;
&lt;p class=&quot;og-host&quot;&gt;arxiv.org&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
</description>
      <category>Image processing/Segmentation</category>
      <author>유니디니</author>
      <guid isPermaLink="true">https://go-hard.tistory.com/117</guid>
      <comments>https://go-hard.tistory.com/117#entry117comment</comments>
      <pubDate>Fri, 18 Dec 2020 23:21:44 +0900</pubDate>
    </item>
  </channel>
</rss>