전체 글
-
Swift Parameter-free Attention Network for Efficient Super-Resolution (SPAN)영상처리/camera ISP 2025. 2. 7. 22:34
🔍 연구 개요**단일 이미지 초해상화(Single Image Super-Resolution, SISR)**는 저해상도 이미지를 고해상도로 변환하는 컴퓨터 비전 기술로, 최근 딥러닝을 활용한 다양한 기법들이 개발되었습니다. 그러나 기존의 주의(attention) 메커니즘을 활용한 SISR 모델들은 높은 성능을 보장하지만, 복잡한 네트워크 구조, 많은 매개변수(Parameter), 느린 추론 속도 등의 문제를 가지고 있습니다.**Swift Parameter-free Attention Network (SPAN)**은 이러한 문제를 해결하기 위해 제안된 경량화된 SISR 모델로, 매개변수가 없는(parameter-free) 주의 메커니즘을 활용하여 성능을 유지하면서도 계산량을 줄이고 속도를 높이는 것을 목표로..
-
Modern C++c++ 2025. 2. 6. 21:41
C++는 1983년 처음 등장한 이후 지속적으로 발전해왔습니다. 특히 C++11, C++14, C++17, C++20, C++23 등의 업데이트를 거치면서 현대적인 언어로 탈바꿈했는데요. 이를 가리켜 Modern C++이라고 합니다.그렇다면 Modern C++이란 무엇이며, 기존 C++과 무엇이 달라졌을까요? 그리고 개발자가 꼭 알아야 할 핵심 개념은 무엇일까요? 이번 포스팅에서 자세히 알아보겠습니다.1. Modern C++란?Modern C++은 C++11 이후의 표준을 포함한 새로운 스타일의 C++을 의미합니다. 특히 성능 최적화, 코드 안정성, 개발자 생산성을 높이기 위한 다양한 기능이 추가되었습니다.Modern C++의 주요 특징더 간결하고 안전한 코드메모리 관리 자동화 및 스마트 포인터 도입병렬..
-
OpenCV와 Pillow의 이미지 리사이징 알고리즘 비교영상처리/3D computer vision 2025. 2. 6. 21:37
📌 OpenCV의 이미지 리사이징 알고리즘OpenCV에서는 cv2.resize() 함수를 사용하여 이미지를 리사이징할 수 있으며, 여러 가지 보간법(interpolation method)을 제공합니다.🔹 OpenCV에서 제공하는 보간법알고리즘설명특성cv2.INTER_NEAREST가장 가까운 픽셀 값을 사용빠르지만 계단 현상(Aliasing) 발생 가능cv2.INTER_LINEAR2x2 픽셀을 선형 보간속도와 품질 균형이 좋음 (기본값)cv2.INTER_CUBIC4x4 픽셀을 이용한 3차 보간선명한 결과를 제공하지만 속도가 느림cv2.INTER_LANCZOS48x8 픽셀을 이용한 Lanczos 보간가장 선명한 결과를 제공하지만 속도가 가장 느림cv2.INTER_AREA작은 이미지로 축소 시 유리블러 현..
-
VR 광학계에 사용되는 Pancake Lens: 원리와 적용영상처리/Extended reality 2025. 2. 4. 23:23
1. Pancake Lens란 무엇인가?Pancake Lens는 VR(가상 현실) 헤드셋에 사용되는 초박형 광학 렌즈로, 기존의 볼록 렌즈 대신 사용됩니다. 이 렌즈는 **편광(polarization)**과 **반사(reflection)**의 원리를 활용해 광로를 효과적으로 접어, 장치의 두께를 대폭 줄이는 것이 특징입니다.2. Pancake Lens의 원리Pancake 렌즈는 편광 필터와 반사 코팅을 이용하여 빛의 경로를 반복적으로 반사시킵니다. 이 과정을 통해 렌즈의 전체 길이를 줄이면서도 높은 화질을 유지할 수 있습니다.작동 원리:광원이 방출한 빛이 렌즈를 통과.편광 필터에 의해 빛이 선형 편광됨.편광된 빛이 반사 표면에 닿아 경로가 꺾임.빛이 다시 렌즈를 통과하면서 초점이 맞춰짐.3. 왜 Panc..
-
C++ 네트워크 프로그래밍과 소켓 통신c++ 2025. 2. 4. 23:13
1. 네트워크 프로그래밍이란?네트워크 프로그래밍은 컴퓨터 간의 데이터 전송을 위해 프로그래밍하는 기술입니다. 이를 통해 클라이언트와 서버 간의 통신을 구현할 수 있습니다.(1) 소켓(Socket)이란?소켓은 네트워크를 통해 데이터를 송수신하기 위한 양 끝단의 인터페이스입니다.C++에서는 주로 BSD 소켓 API를 사용하여 네트워크 통신을 구현합니다.(2) 클라이언트-서버 모델서버(Server): 클라이언트의 요청을 기다리고 응답하는 역할클라이언트(Client): 서버에 요청을 보내고 응답을 받는 역할2. C++에서 소켓 프로그래밍 준비하기C++에서 소켓 프로그래밍을 위해 다음 헤더 파일을 포함해야 합니다.#include #include #include #include #include : 소켓 관련 함수 ..
-
C++ 멀티스레딩 프로그래밍과 동기화 기법c++ 2025. 2. 3. 21:10
1. 멀티스레딩(Multithreading)이란?멀티스레딩은 하나의 프로그램이 동시에 여러 작업을 수행할 수 있게 해주는 기술입니다. C++에서는 thread 라이브러리를 통해 멀티스레딩을 구현할 수 있습니다.(1) 스레드의 기본 개념스레드(Thread): 프로세스 내에서 실행되는 가장 작은 단위멀티스레딩을 통해 병렬 처리가 가능하여 성능을 향상시킬 수 있습니다.2. C++에서 스레드 사용하기(1) 기본 스레드 생성 및 실행#include #include using namespace std;void printMessage() { cout 출력 결과:메인 스레드에서 실행 중입니다.스레드에서 실행 중입니다.(2) 인자 전달 스레드스레드 함수에 인자를 전달할 수 있습니다.#include #include ..
-
C++ 표준 템플릿 라이브러리(STL)와 스마트 포인터c++ 2025. 2. 3. 21:07
1. 표준 템플릿 라이브러리(STL)란?**표준 템플릿 라이브러리(STL)**는 C++에서 제공하는 강력한 데이터 구조와 알고리즘의 집합입니다. STL은 크게 컨테이너(Containers), 반복자(Iterators), **알고리즘(Algorithms)**으로 구성됩니다.(1) STL의 주요 구성 요소컨테이너(Containers): 데이터를 저장하는 자료구조 (ex. vector, list, map, set)반복자(Iterators): 컨테이너의 원소를 순회하는 도구알고리즘(Algorithms): 정렬, 검색 등 다양한 알고리즘 제공2. 주요 STL 컨테이너 사용법(1) vector: 동적 배열vector는 크기가 가변적인 동적 배열로, 가장 널리 사용되는 컨테이너 중 하나입니다.#include #inc..
-
C++ 객체 지향 프로그래밍: 연산자 오버로딩과 템플릿c++ 2025. 2. 2. 14:43
1. 연산자 오버로딩(Operator Overloading)이란?연산자 오버로딩은 C++에서 기존 연산자(+, -, *, / 등)의 기능을 사용자 정의 데이터 타입에 맞게 재정의하는 기능입니다. 이를 통해 클래스 객체 간에도 직관적인 연산을 수행할 수 있습니다.(1) 기본 연산자 오버로딩#include using namespace std;class Complex {private: double real; double imag;public: // 생성자 Complex(double r = 0.0, double i = 0.0) : real(r), imag(i) {} // '+' 연산자 오버로딩 Complex operator + (const Complex& obj) { ..