[컴퓨터 비전] SRCNN, Image Super-Resolution Using Deep Convolutional Networks
·
프로그래밍/머신러닝
* 공부용으로 정리한 것으로 내용에 오류가 있을 수 있습니다. SRCNN, Image Super-Resolution Using Deep Convolutional Networks 이 논문은 2015년에 발표되었으며 Super Resolution에 최초로 딥러닝을 적용한 논문이다. 꽤 간단한 구조를 가졌는데, 각 단계는 3단계로 이루어진다. L1. Patch extraction and representation 저해상도 이미지에서 Patch를 추출한다. Patch는 특징을 의미한다. (Y는 입력이미지, W는 가중치, B는 bais) $$F_{1}(Y) = max(0, W_1*Y+B_1)$$ L2. Non-linear mapping 다차원 저해상도 Patch 백터를 다른 다차원 고해상도 Patch 백터로 맵핑..
[컨볼루션] Depthwise separable convolution
·
프로그래밍/머신러닝
* 본 내용은 공부 정리용으로 작성된 것이며 오류가 있을 수 있습니다. Nomal Convolution 기존 convolution에서 연산량은 아래와 같다. (K = 필터크기, N = 출력채널크기, Iw, Ih = 입력크기, M = 입력채널크기) $$ K^{2}MNI_{w}I_{h} $$ 따라서 위의 예제의 연산량은 $ 3^2*N*3*8*8 = 1,728N $ (N=1)이다. 이렇게 출력 채널이 작아지는 경우도 있지만, 특성지도를 더 늘리기 위해 채널의 수를 늘리는 경우도 있다. (N>1인 경우) N을 다른 방식으로 처리해서 기존 방식보다 곱셈연산을 줄인 방식이 아래에 나와있다. Dept-wise convolution Depth-wise convolution은 채널을 분리해서 컨볼루션 연산을 적용한 뒤,..
왜 닌텐도의 저장은 그렇게 느려야만 했을까
·
프로그래밍/기타
요즘 나오는 게임들은 다 화려하다. 3D는 기본이고, 사운드도 풍부하며 스토리도 알차다! 가만히 않아서 생각해보면, "예전 게임은 노잼이였나?" 라는 생각이 들곤하지만, 별로 그렇지도 않았다. 역겨운 폴리곤 덩어리가 왕창 나오는 3D는 싫었지만, 목장이야기, 동물의 숲, 뉴 슈퍼마리오 브라더스 등등 재미있던게 많았다. 그래서 요즘은 비슷하게 쏟아지는 게임들을 뒤로 한 채, 고전 게임을 많이 해보려고 한다. (고전이라고 해봤자, 2000년도 후반에 나온 게임들이다.. 난,..... 어리다!) 나의 어릴적 즐겼던 게임들은 대부분 닌텐도 게임이였다. (닌텐도 ds) R4칩을 사서 불법으로 엄청 했었다. 어릴때 사용하던 닌텐도는 이미 내 손을 거쳐간 뒤, 고인이 되었고 desmume이라는 에뮬레이터로 간단하게 ..
[컨볼루션] Dilated Convolution
·
프로그래밍/머신러닝
* 공부/취미용으로 작성하였기 때문에 자세하지 않고, 본 내용에 오류가 있을 수 있습니다. 이미지에서 사물의 크기가 크거나 이미지 해상도가 큰 등의 이유로, 전체적인 특성을 잡기 위해 필터의 크기를 키워야 할 때가 있다. 필터의 크기가 너무 크면, 연산량이 많아져서 너무 부담스럽다. 그래서 pooling 연산을 통해 이미지 크기를 줄이고, 작아진 이미지에 conv 연산을 수행했다. 하지만, 이러면 당연히 기존 정보의 손실이 일어나기 때문에, Dilated Convolution이라는 새로운 방식이 나왔다. Dilated Convolution은 Conv필터 내부에 Zero값을 추가해서 Receptive field를 늘리는 방식이다. 이렇게 하면, 입력 이미지를 줄일 필요도 없으며, 연산량이 증가하지도 않는다..
Sigmoid의 문제점 : 왜 Sigmoid는 안될까?
·
프로그래밍/머신러닝
우연히 YOLO를 공부하다 다음과 같은 동영상을 보게 되었다. 전반적인 퍼셉트론 내용도 다루고 있는데, 거기서 Sigmoid함수를 왜 쓰지 않는지 이유를 알 수 있었다. https://youtu.be/u0eT7VZAgRw 이유는 간단하다. sigmoid함수의 도함수(미분한 것)의 최대값이 1/4인데, (위의 그림 참고) 이것이 하나의 층으로 이루어 진 것이면 괜찮지만, 여러개의 층인 모델의 경우, input layer쪽으로 역전파 할수록, 1/4 * 1/4 = 1/16 .... 1/16 * 1/4 = 1/64... 이런식으로 점점 영향력이 작아진다는 문제점이 있다. 그래서 이런 문제점을 해결하려면 도함수의 최대값이 1인 Activation 함수를 사용해야 한다. 그런 함수에는 Tanh이나 Relu같은 함..
[사물인식] Non-Maximum-Suppression
·
프로그래밍/머신러닝
사물인식을 하다보면 아래의 사진처럼 하나의 Object를 여러개의 Box로 인식하는데, 이것을 해결하는 방법 중 하나가 NMS(Non Maximum Suppression) 기법이다. 방법은 다음과 같다. 1. 모든 인식된 Box들을 score으로 오름차순 정렬한다. 2. 정렬한 순서대로 Box의 IOU값을 구한 뒤, 일정 값 이상이면 Box를 지운다. (보통 0.5) IOU는 intersection of union의 약자로, 다른 box와 겹치는 비율을 구한 값이다. 아무튼 위의 NMS 방식을 이용하면, Score가 낮으면서 IOU값이 높은 Box는 삭제되고. (같은 Object를 Detection했을 때 삭제) Score가 높으면서 IOU값이 낮은 Box만 남게 된다.(같은 Object를 Detecti..
2jun0
2jun0의 블로그