<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>Ethan's Winery</title>
    <link>https://ethanswinery.tistory.com/</link>
    <description>이성훈 Ethan</description>
    <language>ko</language>
    <pubDate>Sun, 17 May 2026 08:15:24 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>이성훈 Ethan</managingEditor>
    <image>
      <title>Ethan's Winery</title>
      <url>https://tistory1.daumcdn.net/tistory/5206170/attach/e1319d2ab5de4e35a7b4eb6c16320b6e</url>
      <link>https://ethanswinery.tistory.com</link>
    </image>
    <item>
      <title>Cloud GPU 가격 비교 (Runpod, Shadeform, Massed Compute, Elice)</title>
      <link>https://ethanswinery.tistory.com/176</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;4개 업체 가격비교&lt;/p&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;Runpod&lt;/li&gt;
&lt;li&gt;Shadeform&lt;/li&gt;
&lt;li&gt;Massed&amp;nbsp;Compute&lt;/li&gt;
&lt;li&gt;Elice&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 98.721%; height: 71px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 18px;&quot;&gt;
&lt;td style=&quot;width: 11.5567%; height: 18px; text-align: center;&quot;&gt;per hour, on demand&lt;/td&gt;
&lt;td style=&quot;width: 13.3726%; height: 18px; text-align: center;&quot;&gt;&lt;b&gt;A100 80GB PCIe&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 17.1071%; text-align: center;&quot;&gt;&lt;b&gt;Storage (GiB/h)&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 17.696%; height: 18px; text-align: center;&quot;&gt;&lt;b&gt;etc&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 11.5567%; height: 19px; text-align: center;&quot;&gt;&lt;b&gt;Runpod&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 13.3726%; height: 19px; text-align: center;&quot;&gt;&lt;span style=&quot;background-color: #f9f9f9; color: #333333; text-align: center;&quot;&gt;$1.39/hr =&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #f9f9f9; color: #333333; text-align: center;&quot;&gt;₩2,020/hr&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 17.1071%; text-align: center;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 17.696%; height: 19px; text-align: center;&quot;&gt;3달, 6달, 12달 단위 예약 시 할인&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 16px;&quot;&gt;
&lt;td style=&quot;width: 11.5567%; height: 16px; text-align: center;&quot;&gt;&lt;b&gt;Shadeform&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 13.3726%; height: 16px; text-align: center;&quot;&gt;&lt;span style=&quot;background-color: #f9f9f9; color: #333333; text-align: center;&quot;&gt;$1.24/hr =&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #f9f9f9; color: #333333; text-align: center;&quot;&gt;₩1,802/hr&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 17.1071%; text-align: center;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 17.696%; height: 16px; text-align: center;&quot;&gt;무조건 on-demand&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 11.5567%; text-align: center;&quot;&gt;&lt;b&gt;Massed Compute&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 13.3726%; text-align: center;&quot;&gt;&lt;span style=&quot;background-color: #f9f9f9; color: #333333; text-align: center;&quot;&gt;&lt;span style=&quot;background-color: #f9f9f9; color: #333333; text-align: center;&quot;&gt;$1.2/hr =&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #f9f9f9; color: #333333; text-align: center;&quot;&gt;₩1,744/hr&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 17.1071%; text-align: center;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 17.696%; text-align: center;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 18px;&quot;&gt;
&lt;td style=&quot;width: 11.5567%; height: 18px; text-align: center;&quot;&gt;&lt;b&gt;Elice&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 13.3726%; height: 18px; text-align: center;&quot;&gt;₩2,000/hr&lt;/td&gt;
&lt;td style=&quot;width: 17.1071%; text-align: center;&quot;&gt;₩0.035&lt;/td&gt;
&lt;td style=&quot;width: 17.696%; height: 18px; text-align: center;&quot;&gt;1달, 12달 단위 예약 시 할인&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2025.11.15 기준 환율: $1 = ₩1,453&lt;/p&gt;</description>
      <category>ETC/잡동사니</category>
      <author>이성훈 Ethan</author>
      <guid isPermaLink="true">https://ethanswinery.tistory.com/176</guid>
      <comments>https://ethanswinery.tistory.com/176#entry176comment</comments>
      <pubDate>Sat, 15 Nov 2025 02:22:39 +0900</pubDate>
    </item>
    <item>
      <title>[Jetson Orin Nano] Troubleshooting: Chromium, Firefox 가 켜지지 않을 때</title>
      <link>https://ethanswinery.tistory.com/175</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;Jetson dev kit 첫 구매 후, chromium 과 firefox 로 인터넷 접속을 시도해보았지만 창이 뜨자마자 바로 꺼지는 문제 발생&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://forums.developer.nvidia.com/t/neither-chromium-nor-firefox-work-with-my-jetson-orin-nano/338669/9&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://forums.developer.nvidia.com/t/neither-chromium-nor-firefox-work-with-my-jetson-orin-nano/338669/9&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure id=&quot;og_1756135116869&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Neither Chromium nor Firefox work with my Jetson Orin Nano&quot; data-og-description=&quot;The problem is fixed after updating the latest snap today. I can run Firefox and Chromium now.&quot; data-og-host=&quot;forums.developer.nvidia.com&quot; data-og-source-url=&quot;https://forums.developer.nvidia.com/t/neither-chromium-nor-firefox-work-with-my-jetson-orin-nano/338669/9&quot; data-og-url=&quot;https://forums.developer.nvidia.com/t/neither-chromium-nor-firefox-work-with-my-jetson-orin-nano/338669/9&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cGe8dm/hyZC9wew9m/Y31cGnanZWLsRbLPlLng5K/img.png?width=150&amp;amp;height=80&amp;amp;face=0_0_150_80,https://scrap.kakaocdn.net/dn/NZLtT/hyZDMG9hxw/yOho2zRbjOLSxL4FfUHZ81/img.png?width=150&amp;amp;height=80&amp;amp;face=0_0_150_80&quot;&gt;&lt;a href=&quot;https://forums.developer.nvidia.com/t/neither-chromium-nor-firefox-work-with-my-jetson-orin-nano/338669/9&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://forums.developer.nvidia.com/t/neither-chromium-nor-firefox-work-with-my-jetson-orin-nano/338669/9&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cGe8dm/hyZC9wew9m/Y31cGnanZWLsRbLPlLng5K/img.png?width=150&amp;amp;height=80&amp;amp;face=0_0_150_80,https://scrap.kakaocdn.net/dn/NZLtT/hyZDMG9hxw/yOho2zRbjOLSxL4FfUHZ81/img.png?width=150&amp;amp;height=80&amp;amp;face=0_0_150_80');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Neither Chromium nor Firefox work with my Jetson Orin Nano&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;The problem is fixed after updating the latest snap today. I can run Firefox and Chromium now.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;forums.developer.nvidia.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;588&quot; data-origin-height=&quot;228&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cfSvxl/btsP6dO3Dz5/6KRCKswxKLOnxxT5koKbxK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cfSvxl/btsP6dO3Dz5/6KRCKswxKLOnxxT5koKbxK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cfSvxl/btsP6dO3Dz5/6KRCKswxKLOnxxT5koKbxK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcfSvxl%2FbtsP6dO3Dz5%2F6KRCKswxKLOnxxT5koKbxK%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;588&quot; height=&quot;228&quot; data-origin-width=&quot;588&quot; data-origin-height=&quot;228&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 링크의 명령어를 통해 해결&lt;/p&gt;</description>
      <category>Side Project/NVIDIA Jetson Orin Nano</category>
      <author>이성훈 Ethan</author>
      <guid isPermaLink="true">https://ethanswinery.tistory.com/175</guid>
      <comments>https://ethanswinery.tistory.com/175#entry175comment</comments>
      <pubDate>Tue, 26 Aug 2025 00:19:11 +0900</pubDate>
    </item>
    <item>
      <title>[Jetson Orin Nano] ViT tutorial: NanoOWL</title>
      <link>https://ethanswinery.tistory.com/173</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.jetson-ai-lab.com/vit/tutorial_nanoowl.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.jetson-ai-lab.com/vit/tutorial_nanoowl.html&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1755249636571&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;NanoOWL - NVIDIA Jetson AI Lab&quot; data-og-description=&quot;Tutorial - NanoOWL Let's run NanoOWL , OWL-ViT optimized to run real-time on Jetson with NVIDIA TensorRT . What you need One of the following Jetson: Jetson AGX Orin (64GB) Jetson AGX Orin (32GB) Jetson Orin NX (16GB) Jetson Orin Nano (8GB) Running one of &quot; data-og-host=&quot;www.jetson-ai-lab.com&quot; data-og-source-url=&quot;https://www.jetson-ai-lab.com/vit/tutorial_nanoowl.html&quot; data-og-url=&quot;https://www.jetson-ai-lab.com/vit/tutorial_nanoowl.html&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/Te0pC/hyZynt3u4H/EiBab5pmu195qjgxaGJnFK/img.png?width=712&amp;amp;height=760&amp;amp;face=0_0_712_760&quot;&gt;&lt;a href=&quot;https://www.jetson-ai-lab.com/vit/tutorial_nanoowl.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.jetson-ai-lab.com/vit/tutorial_nanoowl.html&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/Te0pC/hyZynt3u4H/EiBab5pmu195qjgxaGJnFK/img.png?width=712&amp;amp;height=760&amp;amp;face=0_0_712_760');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;NanoOWL - NVIDIA Jetson AI Lab&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Tutorial - NanoOWL Let's run NanoOWL , OWL-ViT optimized to run real-time on Jetson with NVIDIA TensorRT . What you need One of the following Jetson: Jetson AGX Orin (64GB) Jetson AGX Orin (32GB) Jetson Orin NX (16GB) Jetson Orin Nano (8GB) Running one of&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.jetson-ai-lab.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Task 는 text 입력을 주고 그에 해당하는 물체를 detect 하는 것으로, Google research 에서 ECCV 2022 에 발표한 OWL-ViT 를 경량화하여 만든 튜토리얼입니다.&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;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Jeston containers 설치 및 run&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1755250475526&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;git clone https://github.com/dusty-nv/jetson-containers

bash jetson-containers/install.sh

jetson-containers run --workdir /opt/nanoowl $(autotag nanoowl)&lt;/code&gt;&lt;/pre&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;b&gt;카메라 입력 확인&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1755250365223&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;ls /dev/video*&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 명령어를 실행하여 아래와 같이 카메라 입력이 뜨는지 확인&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;766&quot; data-origin-height=&quot;58&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/pIs4K/btsPWtKpdy4/fKrLLQOIJ7NtL5kbiJ8LG0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/pIs4K/btsPWtKpdy4/fKrLLQOIJ7NtL5kbiJ8LG0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/pIs4K/btsPWtKpdy4/fKrLLQOIJ7NtL5kbiJ8LG0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FpIs4K%2FbtsPWtKpdy4%2FfKrLLQOIJ7NtL5kbiJ8LG0%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;489&quot; height=&quot;37&quot; data-origin-width=&quot;766&quot; data-origin-height=&quot;58&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;만약 아래 이미지와 같이 카메라가 잡히지 않는 경우 카메라를 잡아야합니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;936&quot; data-origin-height=&quot;54&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bxdKwn/btsP44ZPywG/bcXqzOk75qElKYGbzkeTw1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bxdKwn/btsP44ZPywG/bcXqzOk75qElKYGbzkeTw1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bxdKwn/btsP44ZPywG/bcXqzOk75qElKYGbzkeTw1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbxdKwn%2FbtsP44ZPywG%2FbcXqzOk75qElKYGbzkeTw1%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;637&quot; height=&quot;37&quot; data-origin-width=&quot;936&quot; data-origin-height=&quot;54&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;저는 pi cam v2를 csi 포트로 연결했는데, jetson 보드 설정에 들어가서 csi 쪽 설정을 해주고 리부팅이 필요하다고 합니다.&lt;/p&gt;
&lt;pre id=&quot;code_1756129736504&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;cd /opt/nvidia/jetson-io/

sudo python jetson-io.py

# 유튜브 영상을 따라서 설정 진행

# Reboot&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래 유튜브 링크 참고 부탁드립니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://youtu.be/gJPIJ3yxME0?si=RY90NTlGLttdADeO&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://youtu.be/gJPIJ3yxME0?si=RY90NTlGLttdADeO&lt;/a&gt;&lt;/p&gt;
&lt;figure data-ke-type=&quot;video&quot; data-ke-style=&quot;alignCenter&quot; data-video-host=&quot;youtube&quot; data-video-url=&quot;https://www.youtube.com/watch?v=gJPIJ3yxME0&quot; data-video-thumbnail=&quot;https://scrap.kakaocdn.net/dn/bWB3qD/hyZC0MPWM8/i0PPw8bOl402P2LRr1ETXK/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=0_0_1280_720,https://scrap.kakaocdn.net/dn/cymTai/hyZzwFWMJE/8KxsJ2P5PfSMZETxvxSBE1/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=0_0_1280_720&quot; data-video-width=&quot;860&quot; data-video-height=&quot;484&quot; data-video-origin-width=&quot;860&quot; data-video-origin-height=&quot;484&quot; data-ke-mobilestyle=&quot;widthContent&quot; data-video-title=&quot;Connect Your Raspberry Pi Camera to Jetson Orin Nano Super in Minutes!&quot; data-original-url=&quot;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/gJPIJ3yxME0&quot; width=&quot;860&quot; height=&quot;484&quot; frameborder=&quot;&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;figcaption style=&quot;display: none;&quot;&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;리부팅을 진행하고 나면 잘 인식되는 것을 확인할 수 있습니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;264&quot; data-origin-height=&quot;58&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bdAe1n/btsP6eHeZlR/2bxi2bYTyV3dvLcsjLM2R1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bdAe1n/btsP6eHeZlR/2bxi2bYTyV3dvLcsjLM2R1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bdAe1n/btsP6eHeZlR/2bxi2bYTyV3dvLcsjLM2R1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbdAe1n%2FbtsP6eHeZlR%2F2bxi2bYTyV3dvLcsjLM2R1%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;264&quot; height=&quot;58&quot; data-origin-width=&quot;264&quot; data-origin-height=&quot;58&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;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;참고로 저는 카메라 입력을 확인하는 과정에서 문제가 좀 있었습니다..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;카메라 모듈을 사는 돈이 아까워서 집에 있는 카메라들을 연결해서 되지 않을까? 라는 생각으로, 보유하고 있던 액션캠인 insta360 x4 를 연결해봤는데, ls 명령어에 뜨긴 하지만 실제로 잡히지는 않았습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;저와 같이 삽질하는 분이 없길 바랍니다. &lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;필요한 모듈 다운로드&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1755250400425&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;pip install aiohttp&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 명령어를 실행하면 되는데, 아래와 같은 에러가 발생할 수 있습니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2888&quot; data-origin-height=&quot;390&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bxGbaa/btsPVIugIXo/nzFdGFKzQCfrSJeVV1knlK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bxGbaa/btsPVIugIXo/nzFdGFKzQCfrSJeVV1knlK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bxGbaa/btsPVIugIXo/nzFdGFKzQCfrSJeVV1knlK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbxGbaa%2FbtsPVIugIXo%2FnzFdGFKzQCfrSJeVV1knlK%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;2888&quot; height=&quot;390&quot; data-origin-width=&quot;2888&quot; data-origin-height=&quot;390&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;원인을 검색해보니 엔비디아측에서 주소를 조금 바꿨다고 하네요... 그럼 명령어를 수정해주지..&lt;br /&gt;&lt;a href=&quot;https://forums.developer.nvidia.com/t/problems-running-nanoowl/339372&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://forums.developer.nvidia.com/t/problems-running-nanoowl/339372&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1755250262789&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Problems running nanoOWL&quot; data-og-description=&quot;I have a 8GB Orin Nano and am trying to run the NanoOWL tutorial project at NanoOWL - NVIDIA Jetson AI Lab Below is the result of running the container, and when I try to install aoihttp. I did install aoihttp as a user, it just searches without success as&quot; data-og-host=&quot;forums.developer.nvidia.com&quot; data-og-source-url=&quot;https://forums.developer.nvidia.com/t/problems-running-nanoowl/339372&quot; data-og-url=&quot;https://forums.developer.nvidia.com/t/problems-running-nanoowl/339372&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/Z6rfk/hyZyoT1Xdk/0KhnM6JvtbwHgl1kC1uPxK/img.png?width=150&amp;amp;height=80&amp;amp;face=0_0_150_80,https://scrap.kakaocdn.net/dn/bGWFcI/hyZvxksfqi/C63uUbWfrUWJr6uYHGnCa0/img.png?width=150&amp;amp;height=80&amp;amp;face=0_0_150_80&quot;&gt;&lt;a href=&quot;https://forums.developer.nvidia.com/t/problems-running-nanoowl/339372&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://forums.developer.nvidia.com/t/problems-running-nanoowl/339372&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/Z6rfk/hyZyoT1Xdk/0KhnM6JvtbwHgl1kC1uPxK/img.png?width=150&amp;amp;height=80&amp;amp;face=0_0_150_80,https://scrap.kakaocdn.net/dn/bGWFcI/hyZvxksfqi/C63uUbWfrUWJr6uYHGnCa0/img.png?width=150&amp;amp;height=80&amp;amp;face=0_0_150_80');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Problems running nanoOWL&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;I have a 8GB Orin Nano and am trying to run the NanoOWL tutorial project at NanoOWL - NVIDIA Jetson AI Lab Below is the result of running the container, and when I try to install aoihttp. I did install aoihttp as a user, it just searches without success as&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;forums.developer.nvidia.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;따라서 아래 명령어를 사용하시면 됩니다.&lt;/p&gt;
&lt;pre id=&quot;code_1755250299978&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;pip install --index-url https://pypi.jetson-ai-lab.io/jp6/cu126 aiohttp&lt;/code&gt;&lt;/pre&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;b&gt;Demo 실행&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1755250354709&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;cd examples/tree_demo

python3 tree_demo.py --camera 0 --resolution 640x480 ../../data/owl_image_encoder_patch32.engine&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-style=&quot;style6&quot; data-ke-type=&quot;horizontalRule&quot; /&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;i&gt;&lt;b&gt;- Reference&lt;/b&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;[1]&lt;span&gt; Minderer, Matthias, et al. &quot;Simple open-vocabulary object detection.&quot; ECCV 2022 &lt;/span&gt;&lt;a style=&quot;color: #0070d1;&quot; href=&quot;https://arxiv.org/abs/2205.06230&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;[Paper link]&lt;/a&gt;&lt;/p&gt;</description>
      <category>Side Project/NVIDIA Jetson Orin Nano</category>
      <author>이성훈 Ethan</author>
      <guid isPermaLink="true">https://ethanswinery.tistory.com/173</guid>
      <comments>https://ethanswinery.tistory.com/173#entry173comment</comments>
      <pubDate>Sat, 2 Aug 2025 03:00:58 +0900</pubDate>
    </item>
    <item>
      <title>[Jetson Orin Nano] Initial Setup Guide 따라하기</title>
      <link>https://ethanswinery.tistory.com/172</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.jetson-ai-lab.com/initial_setup_jon.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.jetson-ai-lab.com/initial_setup_jon.html&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1752934620616&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;  Initial Setup Guide - Jetson Orin Nano - NVIDIA Jetson AI Lab&quot; data-og-description=&quot;On the Ubuntu desktop click the power icon ( ) and select &amp;quot; Restart... &amp;quot;.&quot; data-og-host=&quot;www.jetson-ai-lab.com&quot; data-og-source-url=&quot;https://www.jetson-ai-lab.com/initial_setup_jon.html&quot; data-og-url=&quot;https://www.jetson-ai-lab.com/initial_setup_jon.html&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/enxdVB/hyZne42gtz/FPYGj7WyZTUY3tDyXDKMak/img.jpg?width=2750&amp;amp;height=2063&amp;amp;face=0_0_2750_2063,https://scrap.kakaocdn.net/dn/bcs92c/hyZnhUY8Ge/pHak2Av7xYK7t7bYB8eyc1/img.png?width=1920&amp;amp;height=1080&amp;amp;face=0_0_1920_1080,https://scrap.kakaocdn.net/dn/b41His/hyZnifiuGE/q3CgnK9WE2TJB55Kk97TvK/img.png?width=1336&amp;amp;height=1313&amp;amp;face=0_0_1336_1313&quot;&gt;&lt;a href=&quot;https://www.jetson-ai-lab.com/initial_setup_jon.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.jetson-ai-lab.com/initial_setup_jon.html&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/enxdVB/hyZne42gtz/FPYGj7WyZTUY3tDyXDKMak/img.jpg?width=2750&amp;amp;height=2063&amp;amp;face=0_0_2750_2063,https://scrap.kakaocdn.net/dn/bcs92c/hyZnhUY8Ge/pHak2Av7xYK7t7bYB8eyc1/img.png?width=1920&amp;amp;height=1080&amp;amp;face=0_0_1920_1080,https://scrap.kakaocdn.net/dn/b41His/hyZnifiuGE/q3CgnK9WE2TJB55Kk97TvK/img.png?width=1336&amp;amp;height=1313&amp;amp;face=0_0_1336_1313');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;  Initial Setup Guide - Jetson Orin Nano - NVIDIA Jetson AI Lab&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;On the Ubuntu desktop click the power icon ( ) and select &quot; Restart... &quot;.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.jetson-ai-lab.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;제대로 된 Jetson Orin Nano AI 활용에 앞서, 초기 세팅을 먼저 진행해보겠습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;1. Storage 준비&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Dev kit 에는 Storage 가 포함되어있지 않아, 별도로 구매가 필요합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;종류는 &lt;b&gt;NVMe SSD&lt;/b&gt; 또는 &lt;b&gt;Micro SD&lt;/b&gt; 카드 둘 중 하나를 준비해야하며, 준비된 저장장치의 종류에 따라 세팅 방식이 달라집니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1836&quot; data-origin-height=&quot;608&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/RAAHV/btsPregm0LR/CzstmNwcCu9RmPSK72EAY0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/RAAHV/btsPregm0LR/CzstmNwcCu9RmPSK72EAY0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/RAAHV/btsPregm0LR/CzstmNwcCu9RmPSK72EAY0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FRAAHV%2FbtsPregm0LR%2FCzstmNwcCu9RmPSK72EAY0%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;1836&quot; height=&quot;608&quot; data-origin-width=&quot;1836&quot; data-origin-height=&quot;608&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;SSD 도 안쓰고 ubuntu pc 도 없다? ► microSD-only method&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;272&quot; data-origin-height=&quot;1318&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bZaeIq/btsPpkoZ977/KqgKGBRUeAYydvFIalYskK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bZaeIq/btsPpkoZ977/KqgKGBRUeAYydvFIalYskK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bZaeIq/btsPpkoZ977/KqgKGBRUeAYydvFIalYskK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbZaeIq%2FbtsPpkoZ977%2FKqgKGBRUeAYydvFIalYskK%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;207&quot; height=&quot;1003&quot; data-origin-width=&quot;272&quot; data-origin-height=&quot;1318&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이후엔 Jetson UEFI 버전을 확인해서 버전 36.0 보다 높으면 계속 진행하고, 만약 낮다면 펌웨어 업데이트 진행 (제일 상단 링크 참고)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;저는 36.0 보다 높은 관계로 바로 sd 카드로 진행&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;2. JetPack 6.x SD card 준비&lt;br /&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://developer.nvidia.com/downloads/embedded/l4t/r36_release_v4.3/jp62-orin-nano-sd-card-image.zip&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://developer.nvidia.com/downloads/embedded/l4t/r36_release_v4.3/jp62-orin-nano-sd-card-image.zip&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;먼저 해당 링크로 Jetpack 6.2 의 image 를 본인의 pc 에 받아줍니다.&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;그 다음엔 balena (&lt;a href=&quot;https://etcher.balena.io/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://etcher.balena.io/&lt;/a&gt;) 를 사용하여 위에서 받은 image 를 sd 카드에 flash 를 해줍니다. (부팅 디스크 생성과 유사)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;3. SD card 를 사용하여 부팅&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1336&quot; data-origin-height=&quot;1313&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/F49iB/btsPF5J5cPJ/fmE7lUmOY6fx30dtctbOIK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/F49iB/btsPF5J5cPJ/fmE7lUmOY6fx30dtctbOIK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/F49iB/btsPF5J5cPJ/fmE7lUmOY6fx30dtctbOIK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FF49iB%2FbtsPF5J5cPJ%2FfmE7lUmOY6fx30dtctbOIK%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;460&quot; height=&quot;452&quot; data-origin-width=&quot;1336&quot; data-origin-height=&quot;1313&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 이미지처럼 해당 위치에 sd 카드를 삽입합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이후 전원을 꽂고 부팅을 진행합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기존 Dev kit 에서 Super Dev kit 이 된건, 소프트웨어적인 개선이 있었기 때문인데, 이것을 반영하기 위해선 Power mode 를 MAXN SUPER 로 설정해야합니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;266&quot; data-origin-height=&quot;372&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nEhMY/btsPFhEeEJg/kIgkdWkhFpzWmkW86EknBk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nEhMY/btsPFhEeEJg/kIgkdWkhFpzWmkW86EknBk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nEhMY/btsPFhEeEJg/kIgkdWkhFpzWmkW86EknBk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnEhMY%2FbtsPFhEeEJg%2FkIgkdWkhFpzWmkW86EknBk%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;266&quot; height=&quot;372&quot; data-origin-width=&quot;266&quot; data-origin-height=&quot;372&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;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;이렇게 개발 준비가 완료되었습니다!!&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;</description>
      <category>Side Project/NVIDIA Jetson Orin Nano</category>
      <author>이성훈 Ethan</author>
      <guid isPermaLink="true">https://ethanswinery.tistory.com/172</guid>
      <comments>https://ethanswinery.tistory.com/172#entry172comment</comments>
      <pubDate>Sat, 19 Jul 2025 23:25:34 +0900</pubDate>
    </item>
    <item>
      <title>[Jetson Orin Nano] Dev Kit 구매 및 실물 후기</title>
      <link>https://ethanswinery.tistory.com/171</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;On device AI 사이드 프로젝트를 하기 위해 &lt;b&gt;NVIDIA Jetson Orin Nano Developer Kit&lt;/b&gt; 을 구매했습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.nvidia.com/en-us/autonomous-machines/embedded-systems/jetson-orin/nano-super-developer-kit/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.nvidia.com/en-us/autonomous-machines/embedded-systems/jetson-orin/nano-super-developer-kit/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1752933386733&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;Website&quot; data-og-title=&quot;Jetson Orin Nano Super Developer Kit&quot; data-og-description=&quot;The most affordable generative AI supercomputer.&quot; data-og-host=&quot;www.nvidia.com&quot; data-og-source-url=&quot;https://www.nvidia.com/en-us/autonomous-machines/embedded-systems/jetson-orin/nano-super-developer-kit/&quot; data-og-url=&quot;https://www.nvidia.com/en-us/autonomous-machines/embedded-systems/jetson-orin/nano-super-developer-kit/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/hkwdP/hyZnqjWBGp/aPP6kruaJBqa0XmsJ0vsiK/img.jpg?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/fCBMk/hyZnghtLhQ/k7PorInA7gU3va5rSFvAR1/img.jpg?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/Cpzsa/hyZnfCRUvW/9bAWpExp9KOGIP0EXZhtok/img.jpg?width=2560&amp;amp;height=580&amp;amp;face=0_0_2560_580&quot;&gt;&lt;a href=&quot;https://www.nvidia.com/en-us/autonomous-machines/embedded-systems/jetson-orin/nano-super-developer-kit/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.nvidia.com/en-us/autonomous-machines/embedded-systems/jetson-orin/nano-super-developer-kit/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/hkwdP/hyZnqjWBGp/aPP6kruaJBqa0XmsJ0vsiK/img.jpg?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/fCBMk/hyZnghtLhQ/k7PorInA7gU3va5rSFvAR1/img.jpg?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/Cpzsa/hyZnfCRUvW/9bAWpExp9KOGIP0EXZhtok/img.jpg?width=2560&amp;amp;height=580&amp;amp;face=0_0_2560_580');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Jetson Orin Nano Super Developer Kit&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;The most affordable generative AI supercomputer.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.nvidia.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2024년 12월에 출시된 모델로 이전 버전 대비 Generative AI 를 위한 성능이 1.7배 증가되었다고 합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/S5NFO/btsPrucckuS/Pi7MFZGzDbTs0xLRGFGcg0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/S5NFO/btsPrucckuS/Pi7MFZGzDbTs0xLRGFGcg0/img.jpg&quot; data-origin-width=&quot;3024&quot; data-origin-height=&quot;3024&quot; data-is-animation=&quot;false&quot; data-filename=&quot;IMG_6213.JPG&quot; style=&quot;width: 49.4186%; margin-right: 10px;&quot; data-widthpercent=&quot;50&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/S5NFO/btsPrucckuS/Pi7MFZGzDbTs0xLRGFGcg0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FS5NFO%2FbtsPrucckuS%2FPi7MFZGzDbTs0xLRGFGcg0%2Fimg.jpg&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; loading=&quot;lazy&quot; width=&quot;3024&quot; height=&quot;3024&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/t3Gms/btsPqVH7Co9/RErKxNj2livRK3yvDgwPrK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/t3Gms/btsPqVH7Co9/RErKxNj2livRK3yvDgwPrK/img.jpg&quot; data-origin-width=&quot;3024&quot; data-origin-height=&quot;3024&quot; data-is-animation=&quot;false&quot; data-filename=&quot;IMG_6214.JPG&quot; style=&quot;width: 49.4186%;&quot; data-widthpercent=&quot;50&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/t3Gms/btsPqVH7Co9/RErKxNj2livRK3yvDgwPrK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Ft3Gms%2FbtsPqVH7Co9%2FRErKxNj2livRK3yvDgwPrK%2Fimg.jpg&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; loading=&quot;lazy&quot; width=&quot;3024&quot; height=&quot;3024&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
  &lt;figcaption&gt;실물 이미지&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&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-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1430&quot; data-origin-height=&quot;1426&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/HsiNy/btsPqnSFcvw/wGk9Q7OQNH6CBI48YpcKek/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/HsiNy/btsPqnSFcvw/wGk9Q7OQNH6CBI48YpcKek/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/HsiNy/btsPqnSFcvw/wGk9Q7OQNH6CBI48YpcKek/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FHsiNy%2FbtsPqnSFcvw%2FwGk9Q7OQNH6CBI48YpcKek%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;502&quot; height=&quot;501&quot; data-origin-width=&quot;1430&quot; data-origin-height=&quot;1426&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 이미지를 보시면 알 수 있듯, 작은 데스크탑이라고 생각하면 편할 것 같습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다양한 포트를 지원하고, GUI 환경에서 우분투 사용이 가능합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;직접 모델을 개발하여 올리는건 차차 진행하며 글을 작성해보도록 하겠습니다.&lt;/p&gt;</description>
      <category>Side Project/NVIDIA Jetson Orin Nano</category>
      <author>이성훈 Ethan</author>
      <guid isPermaLink="true">https://ethanswinery.tistory.com/171</guid>
      <comments>https://ethanswinery.tistory.com/171#entry171comment</comments>
      <pubDate>Sat, 19 Jul 2025 22:44:45 +0900</pubDate>
    </item>
    <item>
      <title>[IJCAI 2021] Learning with Selective Forgetting</title>
      <link>https://ethanswinery.tistory.com/167</link>
      <description>&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;i&gt;&lt;b&gt;- Introduction&lt;/b&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;AI 가 발전할수록 privacy 문제나 윤리와 관련된 문제가 대두되고 있는데, 이를 위해 기존의 정보를 지우는 machine unlearning 이라는 task 가 연구되어왔음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이러한 문제는 continual learning task 에도 적용되기 때문에, 해당 논문에서 CL 에서 MU 를 처음으로 진행하며 &lt;b&gt;Learning with Selective Forgetting (LSF)&lt;/b&gt; 를 제안함&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Continual learning setting 중 Task-Incremental Learning (TIL)에서 진행되었는데, 아무래도 처음 진행하다보니 최대한 쉽게 task 를 풀기위한 setting 이 아닐까 싶음&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;b&gt;Task Setting&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;각 task 마다 데이터가 입력으로 들어오는건 일반적인 continual learning 과 같음&lt;/li&gt;
&lt;li&gt;다만 입력된 데이터가 다음 task 학습 시 Preservation set 과 Deletion set 으로 나뉘는 다른 점이 있음&lt;/li&gt;
&lt;li&gt;예시: $\mathcal{D}_{k-1}$ 의 image 에 {1,2,3,4,5,6} 이 있다고 가정
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;$k-1$ th task 에선 {1,2,3,4,5,6} 이 모두 학습 데이터로 사용됨&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;$\mathcal{D}_k$ 학습이 진행될 때 아래와 같은 세팅으로 진행&lt;/span&gt;&amp;nbsp;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;주어지는 데이터: &lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;$\mathcal{D}_k$, &lt;/span&gt;Preservation set {1,2,3,4}&amp;nbsp;&lt;/li&gt;
&lt;li&gt;주어지지 않는 데이터: Deletion set {5,6}&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1357&quot; data-origin-height=&quot;865&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cvWrnv/btsN19abXhF/kuq2vAsiDZjS0lLxb9UY90/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cvWrnv/btsN19abXhF/kuq2vAsiDZjS0lLxb9UY90/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cvWrnv/btsN19abXhF/kuq2vAsiDZjS0lLxb9UY90/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcvWrnv%2FbtsN19abXhF%2Fkuq2vAsiDZjS0lLxb9UY90%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;719&quot; height=&quot;458&quot; data-origin-width=&quot;1357&quot; data-origin-height=&quot;865&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;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;i&gt;&lt;b&gt;- Method&lt;/b&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1971&quot; data-origin-height=&quot;891&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vh8f0/btsN2dcBnti/LjSrT6g3TZj3SZ9xRvth5k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vh8f0/btsN2dcBnti/LjSrT6g3TZj3SZ9xRvth5k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vh8f0/btsN2dcBnti/LjSrT6g3TZj3SZ9xRvth5k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fvh8f0%2FbtsN2dcBnti%2FLjSrT6g3TZj3SZ9xRvth5k%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;1971&quot; height=&quot;891&quot; data-origin-width=&quot;1971&quot; data-origin-height=&quot;891&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;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;Mnemonic Code&lt;/b&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;새로운 task 가 들어오면 각 class 당 한장의 synthetic image 가 생성되어 모든 sample 에 embedding 됨
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;mixup 과 유사: $\tilde{\mathbf{x}}_k^i=\lambda \mathbf{x}_k^i+(1-\lambda) \xi_{k, c}$&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Mnemonic code 가 embedding 된 sample 들과 더불어 code 들만을 학습&lt;/li&gt;
&lt;li&gt;이런 augmentated data 를 통해 학습하는 경우, 같은 mnemonic code 가 embedding 된 sample 들은 feature space 상에서 가까운 곳에 위치함
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;따라서 code 의 사용 유무에 따라 특정 class 를 기억하거나 잊을 수 있음&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Mnemonic code 구현
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;Random color patterns&lt;/li&gt;
&lt;li&gt;Data 에 대한 직접적인 정보를 가지고 있지 않음&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Loss Function&lt;/b&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;$\mathcal{L}=\overbrace{\mathcal{L}_C+\mathcal{L}_M}^{\text&amp;nbsp;{new&amp;nbsp;task&amp;nbsp;}}+\overbrace{\mathcal{L}_{S&amp;nbsp;F}+\mathcal{L}_R}^{\text&amp;nbsp;{previous&amp;nbsp;tasks&amp;nbsp;}}$
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;$\mathcal{L}_C=\frac{1}{N_k}&amp;nbsp;\sum_i&amp;nbsp;l\left(\mathbf{x}_k^i,&amp;nbsp;y_k^i\right)$&lt;/li&gt;
&lt;li&gt;$\mathcal{L}_M=\frac{1}{N_k}&amp;nbsp;\sum_i&amp;nbsp;l\left(\tilde{\mathbf{x}}_k^i,&amp;nbsp;y_k^i\right)$&lt;/li&gt;
&lt;li&gt;$\mathcal{L}_{S&amp;nbsp;F}=\gamma_{S&amp;nbsp;F}&amp;nbsp;\sum_{p=1}^{k-1}&amp;nbsp;\frac{1}{N_p}&amp;nbsp;\sum_i&amp;nbsp;l\left(\xi_p^i,&amp;nbsp;y_p^i\right)$&lt;/li&gt;
&lt;li&gt;$\begin{aligned} \mathcal{L}_R &amp;amp; =\mathcal{L}_{\mathrm{LwF}^*}+\mathcal{L}_{\mathrm{EWC}^*} \\ \mathcal{L}_R &amp;amp; =\mathcal{L}_{\mathrm{LwF}^*}+\mathcal{L}_{\mathrm{MAS}}\end{aligned}$&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Analysis&lt;/b&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;&amp;nbsp;&lt;b&gt;Dataset&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;P-MNIST: 30 (10/10/10)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&amp;nbsp;&lt;b&gt;Baseline&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Vanilla&lt;/li&gt;
&lt;li&gt;EWC&lt;/li&gt;
&lt;li&gt;EWC*&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Conclusion&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Mnemonics 를 이용하면 다른건 유지하면서 원하는 것만 delete 할 수 있음&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2271&quot; data-origin-height=&quot;516&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/AwAtw/btsN24sxxCj/Ki9ZpY27SghMlKsd3NRNPk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/AwAtw/btsN24sxxCj/Ki9ZpY27SghMlKsd3NRNPk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/AwAtw/btsN24sxxCj/Ki9ZpY27SghMlKsd3NRNPk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FAwAtw%2FbtsN24sxxCj%2FKi9ZpY27SghMlKsd3NRNPk%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;2271&quot; height=&quot;516&quot; data-origin-width=&quot;2271&quot; data-origin-height=&quot;516&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;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;i&gt;&lt;b&gt;- Experiment&lt;/b&gt;&lt;/i&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;b&gt;Backbone&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;ResNet-18&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Dataset&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;CIFAR-100&lt;/li&gt;
&lt;li&gt;CUB200&lt;/li&gt;
&lt;li&gt;Standford Cars&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Metrics&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;$A_k=\frac{1}{k} \sum_{p=1}^k a_{k, p}$: accuracy for the p-th task, after training for k-th task
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Evaluated only for the preservation set&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;$F_k=\frac{1}{k} \sum_{p=1}^k f_k^p$: $f_k^p=\max _{l \in 1 \cdots k} a_{l, p}-a_{k, p}$ represents the largest gap from the past to the current accuracy for the p-th task
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Evaluated only for the deletion set&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;$S_k=\frac{2 \cdot A_k \cdot F_k}{A_k+F_k}$&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&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-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2290&quot; data-origin-height=&quot;441&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Kt3yd/btsN1MzVp3T/JooGB1f4CACNmKDhkd5Pb0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Kt3yd/btsN1MzVp3T/JooGB1f4CACNmKDhkd5Pb0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Kt3yd/btsN1MzVp3T/JooGB1f4CACNmKDhkd5Pb0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FKt3yd%2FbtsN1MzVp3T%2FJooGB1f4CACNmKDhkd5Pb0%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;2290&quot; height=&quot;441&quot; data-origin-width=&quot;2290&quot; data-origin-height=&quot;441&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1249&quot; data-origin-height=&quot;576&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cCk5E1/btsN19H65vJ/vgh8C43dA3da3hQQgWMtd1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cCk5E1/btsN19H65vJ/vgh8C43dA3da3hQQgWMtd1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cCk5E1/btsN19H65vJ/vgh8C43dA3da3hQQgWMtd1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcCk5E1%2FbtsN19H65vJ%2Fvgh8C43dA3da3hQQgWMtd1%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;1249&quot; height=&quot;576&quot; data-origin-width=&quot;1249&quot; data-origin-height=&quot;576&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1256&quot; data-origin-height=&quot;529&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/x4Rt7/btsN1ZZ6L0g/S2fzoy8Kt3WZYL1AKjy8n0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/x4Rt7/btsN1ZZ6L0g/S2fzoy8Kt3WZYL1AKjy8n0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/x4Rt7/btsN1ZZ6L0g/S2fzoy8Kt3WZYL1AKjy8n0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fx4Rt7%2FbtsN1ZZ6L0g%2FS2fzoy8Kt3WZYL1AKjy8n0%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;1256&quot; height=&quot;529&quot; data-origin-width=&quot;1256&quot; data-origin-height=&quot;529&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;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;i&gt;&lt;b&gt;- Discussion&lt;/b&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;TIL 이라는 비교적 쉬운 setting 에서 진행했음에도 불구하고, 간단한 random noise 를 anchor 로 삼아서 기억하려고 하는 능력과 잊으려고 하는 능력을 조절하는 방식이 흥미로웠음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다만 기억하려고 학습하는 것에 비해, 잊으려고 학습하는 것은 다음 task 가 들어오면서 자연스럽게 된다는 것을 가정하는 것처럼 보이는데, 이 부분이 좀 아쉬움&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;i&gt;&lt;b&gt;- Reference&lt;/b&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[1] Shibata, Takashi, et al. &quot;Learning with Selective Forgetting.&quot; IJCAI 2021 &lt;a href=&quot;https://www.ijcai.org/proceedings/2021/0137.pdf&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;[Paper link]&lt;/a&gt;&lt;/p&gt;</description>
      <category>Paper Review/Privacy Protection (UL, Anonymize)</category>
      <author>이성훈 Ethan</author>
      <guid isPermaLink="true">https://ethanswinery.tistory.com/167</guid>
      <comments>https://ethanswinery.tistory.com/167#entry167comment</comments>
      <pubDate>Sun, 18 May 2025 20:46:34 +0900</pubDate>
    </item>
    <item>
      <title>[ECCV 2018 Workshop] ChangeNet: A Deep Learning Architecture for Visual Change Detection</title>
      <link>https://ethanswinery.tistory.com/166</link>
      <description>&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;i&gt;&lt;b&gt;- Introduction&lt;/b&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;스마트 시티 환경에서 공공 공간 침해 또는 침범의 탐지가 중요해졌음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다만 이 작업을 사람이 직접 하기엔 많은 시간과 비용이 들어가는 문제가 있음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;따라서 이를 visual change detection task 로 생각하고 해결&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;해결해야하는 문제들
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;조명 / 밝기 변화&lt;/li&gt;
&lt;li&gt;대비 차이&lt;/li&gt;
&lt;li&gt;화질, 해상도, 노이즈&lt;/li&gt;
&lt;li&gt;스케일, 포즈, 가림&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2601&quot; data-origin-height=&quot;663&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nqjZ8/btsNqoTYsHo/yEoJEbnO3ATvclnKqVaDjK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nqjZ8/btsNqoTYsHo/yEoJEbnO3ATvclnKqVaDjK/img.png&quot; data-alt=&quot;순서대로 reference image, test image, ground truth&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nqjZ8/btsNqoTYsHo/yEoJEbnO3ATvclnKqVaDjK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnqjZ8%2FbtsNqoTYsHo%2FyEoJEbnO3ATvclnKqVaDjK%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;2601&quot; height=&quot;663&quot; data-origin-width=&quot;2601&quot; data-origin-height=&quot;663&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;순서대로 reference image, test image, ground truth&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;i&gt;&lt;b&gt;- Related Works&lt;/b&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;변화 감지의 정의&lt;/b&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;/li&gt;
&lt;li&gt;객체의 삽입이나 삭제 또는 구조적 변환 포함&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;주요 선행 연구&lt;/b&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;/li&gt;
&lt;li&gt;CDNet 데이터셋 기반 연구&lt;/li&gt;
&lt;li&gt;Semantic Change Detection&lt;/li&gt;
&lt;li&gt;Deep Learning 기반 접근법&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;i&gt;&lt;b&gt;- Method&lt;/b&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2356&quot; data-origin-height=&quot;958&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/9jSTk/btsNt8hCXBL/sV2OmxoIGLZohBVaQlo8Ck/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/9jSTk/btsNt8hCXBL/sV2OmxoIGLZohBVaQlo8Ck/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/9jSTk/btsNt8hCXBL/sV2OmxoIGLZohBVaQlo8Ck/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F9jSTk%2FbtsNt8hCXBL%2FsV2OmxoIGLZohBVaQlo8Ck%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;2356&quot; height=&quot;958&quot; data-origin-width=&quot;2356&quot; data-origin-height=&quot;958&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;&lt;b&gt;모델 구성&lt;/b&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;Siamese network 와 Fully convolutional network 기반으로 모델 구성&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;Weight tied CNN1, CNN2&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;Multi-level feature extraction and combination&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;Deconvolution layer for upsampling&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;Softmax classifier&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;Input&lt;/span&gt;&lt;/b&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;Reference image: $w&amp;nbsp;\times&amp;nbsp;h&amp;nbsp;\times&amp;nbsp;d$&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;Test image: $w&amp;nbsp;\times&amp;nbsp;h&amp;nbsp;\times&amp;nbsp;d$&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;Output&lt;/span&gt;&lt;/b&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;Change map: $w \times h $&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Network&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Weight tied 는 오직 convolution stage 에만 적용 (deconv 에는 미적용)&lt;/li&gt;
&lt;li&gt;ResNet50 pretrained model 사용&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&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-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2638&quot; data-origin-height=&quot;1200&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cIAT18/btsNtdrimaS/s2lEA8eeduR9Nm1l3PqXkK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cIAT18/btsNtdrimaS/s2lEA8eeduR9Nm1l3PqXkK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cIAT18/btsNtdrimaS/s2lEA8eeduR9Nm1l3PqXkK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcIAT18%2FbtsNtdrimaS%2Fs2lEA8eeduR9Nm1l3PqXkK%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;2638&quot; height=&quot;1200&quot; data-origin-width=&quot;2638&quot; data-origin-height=&quot;1200&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;&lt;b&gt;Feature extraction network&lt;/b&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;28x28, 14x14, 7x7 로 Downsampling&lt;/li&gt;
&lt;li&gt;224x224 로 Upsampling&lt;/li&gt;
&lt;li&gt;11 classes (10 cls + background)&lt;/li&gt;
&lt;li&gt;3개의 224x224x11 addition&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;i&gt;&lt;b&gt;- Experiment&lt;/b&gt;&lt;/i&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;b&gt;Dataset&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;VL-CMU-CD&lt;/li&gt;
&lt;li&gt;TSUNAMI&lt;/li&gt;
&lt;li&gt;GSV (Google Street View)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Scenario&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Binary classification: Change / No Change&lt;/li&gt;
&lt;li&gt;Multi class classification&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2128&quot; data-origin-height=&quot;1741&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/PKtkl/btsNuebc3d9/1YLzK8pNJCJ1dhOIyKRgeK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/PKtkl/btsNuebc3d9/1YLzK8pNJCJ1dhOIyKRgeK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/PKtkl/btsNuebc3d9/1YLzK8pNJCJ1dhOIyKRgeK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FPKtkl%2FbtsNuebc3d9%2F1YLzK8pNJCJ1dhOIyKRgeK%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;2128&quot; height=&quot;1741&quot; data-origin-width=&quot;2128&quot; data-origin-height=&quot;1741&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1551&quot; data-origin-height=&quot;289&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/baPHT6/btsNt2P2pTy/p0CrCR9HJqiOkBSYIKKgKk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/baPHT6/btsNt2P2pTy/p0CrCR9HJqiOkBSYIKKgKk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/baPHT6/btsNt2P2pTy/p0CrCR9HJqiOkBSYIKKgKk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbaPHT6%2FbtsNt2P2pTy%2Fp0CrCR9HJqiOkBSYIKKgKk%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;1551&quot; height=&quot;289&quot; data-origin-width=&quot;1551&quot; data-origin-height=&quot;289&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2140&quot; data-origin-height=&quot;1080&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/SiSOV/btsNsE9vWQJ/Ez5iHFds3RqGbr5zOkhz2k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/SiSOV/btsNsE9vWQJ/Ez5iHFds3RqGbr5zOkhz2k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/SiSOV/btsNsE9vWQJ/Ez5iHFds3RqGbr5zOkhz2k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FSiSOV%2FbtsNsE9vWQJ%2FEz5iHFds3RqGbr5zOkhz2k%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;2140&quot; height=&quot;1080&quot; data-origin-width=&quot;2140&quot; data-origin-height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2700&quot; data-origin-height=&quot;675&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bqlmEG/btsNpTtkhmR/Wpi8duwZZ1LXOdrkOd86Dk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bqlmEG/btsNpTtkhmR/Wpi8duwZZ1LXOdrkOd86Dk/img.png&quot; data-alt=&quot;왼쪽부터 순서대로 reference, test, change 이미지인데, 빛이 다르게 반사되어도 따로 detect 하지 않음&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bqlmEG/btsNpTtkhmR/Wpi8duwZZ1LXOdrkOd86Dk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbqlmEG%2FbtsNpTtkhmR%2FWpi8duwZZ1LXOdrkOd86Dk%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;2700&quot; height=&quot;675&quot; data-origin-width=&quot;2700&quot; data-origin-height=&quot;675&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;왼쪽부터 순서대로 reference, test, change 이미지인데, 빛이 다르게 반사되어도 따로 detect 하지 않음&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;i&gt;&lt;b&gt;- Discussion&lt;/b&gt;&lt;/i&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;b&gt;Limitations&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;작은 객체에 대한 변화 감지 성능이 상대적으로 낮음&lt;/li&gt;
&lt;li&gt;특히 barrier와 traffic cone의 경우 낮은 f-score&lt;/li&gt;
&lt;li&gt;GSV 데이터셋에서 차량 움직임을 change로 간주하는 것과 ChangeNet의 structural change 초점이 불일치&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Discussion&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;과연 서로 다른 illumination 에 얼마나 robust 할지..?&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;i&gt;&lt;b&gt;- Reference&lt;/b&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[1] ChangeNet: A Deep Learning Architecture for Visual Change Detection, ECCV 2018 Workshop &lt;a href=&quot;https://openaccess.thecvf.com/content_ECCVW_2018/papers/11130/Varghese_ChangeNet_A_Deep_Learning_Architecture_for_Visual_Change_Detection_ECCVW_2018_paper.pdf&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;[Paper link]&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[2] &lt;a href=&quot;https://github.com/leonardoaraujosantos/ChangeNet&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://github.com/leonardoaraujosantos/ChangeNet&lt;/a&gt;&lt;/p&gt;</description>
      <category>Paper Review/Scene Change Detection (SCD)</category>
      <author>이성훈 Ethan</author>
      <guid isPermaLink="true">https://ethanswinery.tistory.com/166</guid>
      <comments>https://ethanswinery.tistory.com/166#entry166comment</comments>
      <pubDate>Mon, 21 Apr 2025 13:02:48 +0900</pubDate>
    </item>
    <item>
      <title>Onnx 모델과 pth 모델 성능 비교</title>
      <link>https://ethanswinery.tistory.com/165</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;최근에 업무를 진행하여 npu 를 위한 모델 변환을 진행함&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;모델 변환 후 평가를 진행해보니, 기존 서버에서 측정한 모델 성능이 재현되지 않음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;문제가 발생했을 가능성이 있는 부분은 2곳&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;변환된 모델에 입력으로 넣어준 데이터&lt;/li&gt;
&lt;li&gt;변환하기 전 모델&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일단 변환하기 전 onnx 모델을 살펴보기 위해 onnxruntime 으로 평가를 진행해보니 이 또한 서버 성능을 재현하지 못함.&lt;/p&gt;
&lt;pre id=&quot;code_1742365228830&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import numpy as np
import onnxruntime as ort
import os
import glob

bin_directory = [데이터 디렉토리]

model_path = [모델 경로]

session = ort.InferenceSession(model_path)
input_name = session.get_inputs()[0].name

class_names = [클래스명 나열]

bin_files = glob.glob(os.path.join(bin_directory, &quot;*.bin&quot;))

results_list = []

for bin_file in bin_files:
    try:
        file_name = os.path.basename(bin_file)
        
        input_data = np.fromfile(bin_file, dtype=np.float32)
        
        input_data = input_data.reshape([입력 shape])
        
        results = session.run(None, {input_name: input_data})
        prediction = results[0]
        
        predicted_class_idx = np.argmax(prediction)
        predicted_class_prob = prediction[0][predicted_class_idx]
        predicted_class_name = class_names[predicted_class_idx] if predicted_class_idx &amp;lt; len(class_names) else f&quot;미지정 클래스 {predicted_class_idx}&quot;
        
        print(f&quot;파일: {file_name}&quot;)
        print(f&quot;예측 결과: {predicted_class_name} (인덱스: {predicted_class_idx}, 확률: {predicted_class_prob:.4f})&quot;)
        print(f&quot;전체 확률 분포: {prediction[0]}&quot;)
        print(&quot;-&quot; * 50)
        
        results_list.append({
            &quot;file_name&quot;: file_name,
            &quot;predicted_class&quot;: predicted_class_idx,
            &quot;predicted_class_name&quot;: predicted_class_name,
            &quot;probability&quot;: predicted_class_prob,
            &quot;all_probabilities&quot;: prediction[0].tolist()
        })
        
    except Exception as e:
        print(f&quot;오류 발생 - 파일: {bin_file}&quot;)
        print(f&quot;오류 메시지: {str(e)}&quot;)
        print(&quot;-&quot; * 50)

print(f&quot;처리된 파일 수: {len(results_list)} / {len(bin_files)}&quot;)&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;따라서 다시 pth 를 onnx 로 변환하는 곳으로 돌아가서 문제가 있는지 확인&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 과정에서 랜덤한 텐서를 생성하여 pth 모델과 onnx 모델에 입력으로 주고 output 차이가 어떤지 확인&lt;/p&gt;
&lt;pre id=&quot;code_1742365491429&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import torch
import torch.nn as nn
import numpy as np

def convert_to_onnx(
    model_path: str,
    config_path: str,
    save_path: str,
    input_shape: tuple = [입력 shape],
    seed: int = 42 
):
    torch.manual_seed(seed)
    np.random.seed(seed)
    torch.cuda.manual_seed_all(seed)
    torch.backends.cudnn.deterministic = True
    torch.backends.cudnn.benchmark = False
    
    cfg = Config.fromfile(config_path)
    
    model = build_model(cfg.model)
    
    load_checkpoint(model, model_path, map_location='cpu')
    
    model.eval()
    
    class ModelWrapper(torch.nn.Module):
        def __init__(self, model):
            super(ModelWrapper, self).__init__()
            self.model = model
            self.softmax = nn.Softmax(dim=1) 
        def forward(self, x):
            with torch.no_grad():
                feat = self.model.extract_feat(x)  
                cls_score = self.model.cls_head(feat)
                return self.softmax(cls_score) 
    
    wrapped_model = ModelWrapper(model)
    
    dummy_input = torch.randn(input_shape)
    
    torch.onnx.export(
        wrapped_model,
        dummy_input,
        save_path,
        input_names=['input'],
        output_names=['output'],
        dynamic_axes=None,
        opset_version=11,
        do_constant_folding=True,
        verbose=True
    )
    
    print(f&quot;Model has been converted to ONNX and saved at: {save_path}&quot;)
    
    import onnx
    onnx_model = onnx.load(save_path)
    onnx.checker.check_model(onnx_model, True)
    print(&quot;ONNX model checked successfully with full validation!&quot;)
    
    try:
        import onnxruntime as ort
        
        session = ort.InferenceSession(save_path)
        input_name = session.get_inputs()[0].name
        
        test_input = np.random.randn(*input_shape).astype(np.float32)
        
        onnx_outputs = session.run(None, {input_name: test_input})
        
        torch_input = torch.tensor(test_input)
        with torch.no_grad():
            feat = model.extract_feat(torch_input)
            torch_logits = model.cls_head(feat).numpy()
        
        with torch.no_grad():
            wrapped_output = wrapped_model(torch_input).numpy()
        
        print(&quot;\n===== 출력 비교 =====&quot;)
            
        print(f&quot;\n2. PyTorch 모델 (probs):&quot;)
        for i, prob in enumerate(wrapped_output[0]):
            print(f&quot;   클래스 {i}: {prob:.6f}&quot;)
            
        print(f&quot;\n3. ONNX 모델 (probs):&quot;)
        for i, prob in enumerate(onnx_outputs[0][0]):
            print(f&quot;   클래스 {i}: {prob:.6f}&quot;)
        
        print(&quot;\n===== 차이 분석 =====&quot;)
        max_diff_wrapped_onnx = np.max(np.abs(wrapped_output - onnx_outputs[0]))
        print(f&quot;래핑된 PyTorch vs ONNX 최대 차이: {max_diff_wrapped_onnx:.6f}&quot;)
        
        # 합계 확인 (모두 약 1.0이어야 함)
        print(&quot;\n===== 확률 합계 확인 =====&quot;)
        print(f&quot;래핑된 PyTorch 합계: {wrapped_output.sum():.6f}&quot;)
        print(f&quot;ONNX 모델 합계: {onnx_outputs[0].sum():.6f}&quot;)
        
    except ImportError:
        print(&quot;onnxruntime is not installed. Skipping test inference.&quot;)

if __name__ == &quot;__main__&quot;:
    model_path = [pth 모델 경로]
    config_path = [config path]
    save_path = [onnx 모델 저장 경로]
    
    # 모델 변환 실행 (시드 값 지정 가능)
    convert_to_onnx(
        model_path=model_path,
        config_path=config_path,
        save_path=save_path,
        seed=42  # 원하는 시드 값 지정
    )&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;결론: npu 용으로 모델 변환 전 onnx 로 변환이 잘 되었는지 확인하자&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Code &amp;amp; Framework/ONNX</category>
      <author>이성훈 Ethan</author>
      <guid isPermaLink="true">https://ethanswinery.tistory.com/165</guid>
      <comments>https://ethanswinery.tistory.com/165#entry165comment</comments>
      <pubDate>Wed, 19 Mar 2025 15:26:49 +0900</pubDate>
    </item>
    <item>
      <title>[Pytorch, CUDA] Pytorch 와 CUDA version mismatch</title>
      <link>https://ethanswinery.tistory.com/163</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2144&quot; data-origin-height=&quot;170&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vWpCu/btsMzPR37o2/rGzAov8n2uGII5z2cYI8A1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vWpCu/btsMzPR37o2/rGzAov8n2uGII5z2cYI8A1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vWpCu/btsMzPR37o2/rGzAov8n2uGII5z2cYI8A1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvWpCu%2FbtsMzPR37o2%2FrGzAov8n2uGII5z2cYI8A1%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;2144&quot; height=&quot;170&quot; data-origin-width=&quot;2144&quot; data-origin-height=&quot;170&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;RuntimeError: The detected CUDA version (12.3) mismatches the version that was used to compile PyTorch (11.8). Please make sure to use the same CUDA versions.&lt;/blockquote&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;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사용 중인 gpu 는 RTX 3090 으로 nvidia-smi 를 찍어보면 cuda 12.2 로 나오고, pytorch 는 cu11.8 로 받아둔 상태&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;그럼 도대체 12.3 cuda version 은 어디서 오는가??&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;좀 알아보니 가상환경에 cuda toolkit 이 깔려있지 않아, 기본적으로 깔려있는 cuda version 으로 잡힌 것 같음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래서 아래 링크에서 11.8 버전을 설치하니 해결&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://anaconda.org/nvidia/cuda-toolkit&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://anaconda.org/nvidia/cuda-toolkit&lt;/a&gt;&lt;/p&gt;</description>
      <category>Code &amp;amp; Framework/Pytorch</category>
      <author>이성훈 Ethan</author>
      <guid isPermaLink="true">https://ethanswinery.tistory.com/163</guid>
      <comments>https://ethanswinery.tistory.com/163#entry163comment</comments>
      <pubDate>Sun, 2 Mar 2025 12:46:03 +0900</pubDate>
    </item>
    <item>
      <title>Camera Coordinate System</title>
      <link>https://ethanswinery.tistory.com/162</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;Camera Coordinate System 은 아래와 같이 여러 종류가 존재하는데, Camera Parameter 설명 시에 필요하여 짚고 넘어가기로 함&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;image_plane.png&quot; data-origin-width=&quot;1301&quot; data-origin-height=&quot;545&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cHj9Lz/btsMbIeGCdN/lK6vvybmceKrVJiNWm3HQk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cHj9Lz/btsMbIeGCdN/lK6vvybmceKrVJiNWm3HQk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cHj9Lz/btsMbIeGCdN/lK6vvybmceKrVJiNWm3HQk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcHj9Lz%2FbtsMbIeGCdN%2FlK6vvybmceKrVJiNWm3HQk%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;1301&quot; height=&quot;545&quot; data-filename=&quot;image_plane.png&quot; data-origin-width=&quot;1301&quot; data-origin-height=&quot;545&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;b&gt;3D Coordinate System&lt;/b&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;&lt;b&gt;World Coordinate System&lt;/b&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;사용자가 임의로 정한 원점을 기준으로 하는 좌표계&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Camera Coordinate System&lt;/b&gt; (위 그림에서 노란색 좌표)
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;카메라 렌즈의 위치가 origin 이 되는 좌표계&lt;/li&gt;
&lt;li&gt;카메라가 바라보고 있는 방향을 z축&lt;/li&gt;
&lt;li&gt;원점으로부터 focal length 만큼 떨어진 지점에 있는 곳을 image plane 이라고 부름&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&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-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;828&quot; data-origin-height=&quot;527&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bKJBq4/btsMaRDFeGN/xuTvpmcJ9a4KqXad7wVhV1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bKJBq4/btsMaRDFeGN/xuTvpmcJ9a4KqXad7wVhV1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bKJBq4/btsMaRDFeGN/xuTvpmcJ9a4KqXad7wVhV1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbKJBq4%2FbtsMaRDFeGN%2FxuTvpmcJ9a4KqXad7wVhV1%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;647&quot; height=&quot;412&quot; data-origin-width=&quot;828&quot; data-origin-height=&quot;527&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;b&gt;2D Coordinate System&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;Image&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;Coordinate&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;System&lt;/b&gt; (위 그림에서 초록색 좌표)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Camera Coordinate System 에서 이어진 z축이 image plane 과 만나는 점, 즉 Principal Point 를 origin 으로 하는 좌표계&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Pixel&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;Coordinate&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;System&lt;/b&gt; (위 그림에서 보라색 좌표)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;이미지의 왼쪽 상단을 origin 으로 하는 좌표계&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>Computer Vision and Graphics/CV Definitions</category>
      <author>이성훈 Ethan</author>
      <guid isPermaLink="true">https://ethanswinery.tistory.com/162</guid>
      <comments>https://ethanswinery.tistory.com/162#entry162comment</comments>
      <pubDate>Sat, 8 Feb 2025 14:23:36 +0900</pubDate>
    </item>
  </channel>
</rss>