본문 바로가기

분류 전체보기72

[선형대수학] 대각화와 스펙트럼 정리 (Diagonalization & Spectral theorem) 스펙트럼 정리(spectral theorem)는 linear transformations를 eigenvalue 및 eigenvalue의 집합을 일반화한 스펙트럼으로 나타내는 일련의 정리다. [위키백과]이를 이해하기 위한 기본 지식들을 차근차근 살펴보자.Diagonalization (대각화)위는 행렬 에 대한 대각화 연산이다. 여기서 행렬 는 의 eigenvectors를 column vector 형태로 차례로 끼워넣은 eigenvector 행렬이다. 는 대각 행렬로, 대각항은 의 eigenvalue로 채워져있다. 위 식에서 이 앞에 곱해져있는데 이것으로 는 역행렬이 존재하는 non-singular (비특이) 행렬이어야 한다는 것을 알 수 있다. 또한 의 n개의 eigenvectors (eigenvalues.. 2020. 3. 7.
[3D face] Morphable Model For The Synthesis Of 3D Faces 리뷰 2편 3DMM 리뷰2 3D face reconstruction의 기초가 되는 1999년도 논문인 A Morphable Model For The Synthesis Of 3D Faces에 대한 리뷰이다.이전 글 : Morphable Model For The Synthesis Of 3D Faces 리뷰 1편Matching morphable model to images이 논문의 프레임워크의 중요 요소는 하나 이상의 이미지에 morphable face model를 자동적으로 매칭하는 알고리즘이다. 해당 알고리즘을 개략적으로 설명하자면, 3D model의 coefficients는 rendering 파라미터 집합에 따라 최적화되고, model을 통해 이미지를 생성할 때 input 이미지와 가능한 가깝게 생성하는 것이 목적.. 2020. 2. 17.
[3D face] Morphable Model For The Synthesis Of 3D Faces 리뷰 1편 3DMM 리뷰1 3D face reconstruction의 기초가 되는 1999년도 논문인 A Morphable Model For The Synthesis Of 3D Faces에 대한 리뷰이다.Introduction해당 논문은 다음 face synthesis 자동화의 한계점들을 해결하고자 하였다.The problem of finding corresponding feature locations in all facesThe problem of separating realistic faces from faces that could never appear in the real world첫 번째 문제는 모든 얼굴에 일치하는 feature location을 찾는 문제로, 정해놓은 feature points는 다른 .. 2020. 2. 14.
[python] PyQt5로 이미지 뷰어 만들기 (간단한 라벨링 툴 만들기 1단계) 2019-11-13-pyqt5 키보드 입력으로 이전 다음 이미지를 볼 수 있고 추가로 해당 이미지에 라벨링하는 이미지 라벨링 툴을 만들어보자. 이번 편에서는 이미지 뷰까지만 다루고 다음 편에 각종 라벨링 기능을 추가하는 것을 다루어보겠다.먼저 PyQt5를 설치해주자.pip install pyqt5 그 다음 ImageViewer 클래스를 만들고 QMainWindow를 상속받는다. 그 다음 __init__ 함수에서 폴더 경로라던가 색상 테이블 등의 변수를 선언해주면 되고 액션 생성, 창 제목 및 크기도 설정해주면 된다. 나머지 함수는 스크롤 기능과 이미지를 윈도우 크기에 최적화 하여 보여주기 위한 함수들이다.xfrom PyQt5.QtCore import QDir, Qtfrom PyQt5.QtGui impor.. 2019. 11. 14.
[object detection] YOLO에서 YOLOv2로의 변경점 2019-11-12-yolov2 YOLO 모델의 원리 글에 이어서 YOLO 모델에서 YOLOv2로의 큰 변화 내용을 살펴보겠다. 일단 YOLO에 비해 정확도와 속도 향상이 이루어졌는데 향상하는데 영향을 미친 요소를 살펴보자.1) Batch normalization 레이어 추가보통 전체 데이터에 대해 정규화를 하게 되는데 전체적으로 봤을 땐 정규분포 형태를 띄겠지만 각 batch를 살펴보면 위 그림처럼 정규분포가 다를 수 있다. 그렇기 때문에 각 batch마다 정규화를 진행하는 batch normalization 레이어를 추가하여 학습이 잘 되게 하며 학습 속도를 향상시킨다. 2) Convolutional with AnchorsAnchor는 초기 regression 학습을 안정적으로 하게 해주는 역할을 한.. 2019. 11. 12.
[C/C++/C#] 콘솔에서 글자 색 변경하기 (예시: KMP 알고리즘) 2019-11-05-console-color-change Visual studio에서 디버깅을 할 때 기본적으로 제공하는 디버깅 기능을 이용하지만, 중간 결과들을 출력해서 보는게 더 빠를 때가 많다. 이때 그냥 보면 헷갈리거나 난잡하게 보이는 경우가 많다. 그래서 변경된 부분만 다른 색상으로 출력하면 괜찮겠다 싶었다.다음은 문자열 탐색 알고리즘인 KMP 알고리즘을 통해 찾은 것이 정확한지 보는 예시다.KMP 알고리즘vector kmp(string txt, string pattern) { // make table int table[101] = { 0 }; vector pos; // k는 찾을 문자열의 인덱스 int k = 0; for (int i = 1; i 0 && pattern[k] != pattern.. 2019. 11. 5.
[object detection] Single Shot Multibox Detector (SSD) 아키텍쳐 분석 SSD Single Shot MultiBox Detector[논문]는 object detection을 위한 아키텍쳐다. object detection을 위한 여러 아키텍쳐가 있는데 R-CNN, Fast R-CNN, Faster R-CNN 등 2-stage detector가 아닌 YOLO와 같은 1-stage detector에 속한다.2016년 11월에 발표된 모델이고 PascalVOC, COCO 데이터셋 등과 같은 표준 데이터셋에서 FPS는 59, mAP는 74%를 기록했다. 속도는 굉장히 빠른 편이며, (512, 512) 이미지에서는 76.9%를 달성하여 Faster R-CNN보다 더 좋은 결과를 얻기도 했다. 또한 저해상도에서도 높은 성능을 보이는 것이 SSD의 특징이다.먼저, Single Shot .. 2019. 8. 8.
[object detection] YOLO 모델의 원리 Object detection 분야에서 쓰이는 모델로는, Faster-RCNN, MobileNet, SSD 등 많은 모델이 있지만 그 중 YOLO 모델에 대해 자세히 알아보려 한다. 일단, 현 시점에서는 YOLO, YOLOv2, YOLOv3(YOLO 9000)까지 모델이 개발되었고 각 모델마다 변화에 따른 장단점이 생겨났다. 필자는 YOLOv3를 사용해서 프로젝트들을 진행해본 결과 나름 괜찮은 성능의 결과를 얻을 수 있었다. 그러나 YOLOv2에 비해 느리다는 것이 단점이었다. 구조적 관점에서 이러한 차이들을 파악하기 전 기본적인 바탕이 되는 YOLO 모델의 원리에 대해 알아보는 것이 이번 글의 목표다. YOLO 가장 기본이 되는 YOLO 모델의 원리를 설명하고자 한다. 먼저 간단히 설명하자면, 예측하고.. 2019. 7. 22.
주차 구역 인식(Vision-Based Parking-Slot Detection) 논문 리뷰 논문리뷰 이 글은 Vision-Based Parking-Slot Detection: A DCNN-Based Approach and a Large-Scale Benchmark Dataset 논문을 읽고 쓴 글이다. 들어가기에 앞서, parking-slot과 주차 구역은 동일한 단어라고 가정한다.Abstract이 논문은 DCNN을 기반으로 주차 구역(parking-slot)을 탐지하는 모델을 제안한다. 이 모델을 여기선 DeepPS이라 명칭한다. 이 모델의 주요 단계는 다음 두가지로 나뉜다.Input image에서 모든 marking points를 확인한다.Marking points의 쌍에 의해 형성된 로컬 이미지 패턴들을 분류한다.여기서 Input image는 AVM과 같은 형태의 surround-view.. 2019. 7. 4.
React.js를 사용한 웹 애플리케이션(SPA) 프론트앤드 만들기(4) - 페이지 이동에 따른 컴포넌트 변화 만들어볼 회원가입의 첫 번째 페이지는 다음과 같습니다.기본적으로 닉네임(아이디), 이메일, 비밀번호, 비밀번호 확인을 입력하는 양식이 있고 이메일 인증을 위한 요소들이 있습니다. 서버와의 연동은 나중에 생각하고 일단 동작하도록 하는 것이 목표입니다.위 페이지는 다음과 같이 두 부분으로 나눌 수 있습니다.윗 부분은 3 페이지로 이루어진 회원가입 부분의 공통적으로 나타나게 되는 부분이고, 아래 부분은 각 페이지에서만 쓰이는 고유한 컴포넌트로 볼 수 있습니다.먼저, 모든 회원가입 페이지에 공통적으로 사용되는 컴포넌트를 구현해보겠습니다.components/Register/RegisterHeader.jsximport React, {Component} from 'react';import { Link } from '.. 2019. 6. 29.