목록CNN (11)
Deep Learning study
오늘은 Cycle GAN에 대해서 알아보자 ! 보통 image-to-image translation모델을 학습시킬때 training data 로 input image와 output image의 pair를 사용하게 된다. 예를들면 모네의 사진을 실제 사진처럼 바꾸는 모델을 만들려고한다면, 모네의 그림과 모네의 그림의 배경이 되는 풍경 사진이 pair로 존재해야한다. 하지만 translation에서, 대다수의 경우에는 짝이 지어진 training data를 구하기는 매우 힘들다. 그래서 이 논문에서 paired example 없이 source domain(X)에서 target domain(Y)으로 image를 변환(translate)하는 방법을 소개한다. 즉 이논문의 목표는 G(X)의 image distri..
인공지능 수업의 프로젝트로.. Face aging 모델을 만들어 보려 한다. 논문이 사실 특별한 내용이 있는것은 아니고 생각보다 간단하다. 일단 본론으로 들어가기 전에 conditional GAN부터 조금 알아보자. Conditional Generative Adversarial Nets 원래 GAN은 임의의 노이즈를 input으로 주면 generator도 역시 임의의 값을 생성해 낸다. 즉, 어떠한 output을 가져올지는 모른다는 말이다. 그래서 이 논문에서 하고자 하는것은, 노이즈와 함께 임의의 condition을 같이 주어 output을 원하는 방향으로 뽑아내보자 하는것이다. 방법은 간단하다. input 에 condition에 해당하는 y를 concat하여 Discriminator 와 Generat..
이번에 정리해 볼 논문은 FCN이다. image segmentation에서 기초가되는 논문.? 이라고 생각돼서 한 번 정리를 해보려고 한다. 여기서 이야기하는 방법론은 단순하면서 간단하다. FCN에서는 기존의 classification에 사용되던 모델들을 이용하여 tranfer learning을 하게 된다. 하지만 기존의 classification의 모델들은 class 분류를 위해 네트워크의 마지막엔 항상 Fully connected layer(이하 Fc layer)가 삽입되게 되는데 이는 image segmentation에는 적합하지 않다. 왜냐하면 Fc layer를 사용하기 위해서는 고정된 크기의 input만을 받아야하며, 1차원적인 정보만을 가지고 있기 때문에 원하는 2차원적인 정보(위치정보 등,,..
오늘은 입대한 이래로 처음으로 읽어본 논문을 정리해보려고 한다. 이 논문은 captcha solver 를 GAN을 이용해 구현한 내용이다. 흔히 captcha는사이트 회원가입을할때 많이 볼 수 있을것이다. captcha 는 사람과 프로그램을 구별하기 위한 방법으로 위의 사진과 같은 형태를 가지고 있다. text를 프로그램이 인식하기 힘들도록 글자를 서로 overlap 시킨다던가 사이에 선을 그어놓고나 , 글자를 왜곡시키고 노이즈가 있는 배경을 사용하는 등의 방법을 사용한다. 이 논문에 따르면 이전에도 머신러닝을 사용한 captcha solver에 대한 연구들이 있었지만, 사람의 손을 많이 타고 (데이터 라벨링, 데이터 수집, 전처리 등..) 많은 데이터를 수집해야하는 등의 불편함이 있었다고한다.이런 말을..
You Only Look Once: Unified, Real-Time Object Detection 오늘 정리할 것은 YOLO ~ YOLO 는 you only live once 라는 말로 잘 알고 있을 것 이지만, 여기서는 you only look once ! 뛰어난 작명 센스 ... 기존의 R-CNN에서는 region proposal 을 따로 찾고 bounding box 를 찾고 class 분류를 했다. 그러므로 region proposal 과정에서의 오버헤드가 컸기 때문에 성능향상에 어려움이 있었다. 하지만 YOLO는 grid방식을 이용하여 region proposal 의 오버헤드를 없앴다. grid 방식을 사용하면 그 grid cell 하나하나가 proposal 이 되기 때문에 오버헤드가 없어지는 ..
이번 포스팅은 YOLO를 읽기전에 한 번쯤 읽어보아야 할 것 같아서 간략하게나마 정리 보았다. R-CNN, Fast-RCNN , Faster-RCNN에 대해서 알아보자 R-CNN R-CNN은 Region proposals with CNN 의 줄임으로 이미지 안에 어떤 object 들이 있는지 찾아내는 것을 목적으로 한다. 먼저 input 이미지에서 2000개 정도의 subimage를 뽑아낸다. object들이 존재할 것 같은 부분을 잘라내어 주는것이다. 그리고 그 각각의 이미지들을 CONV net을 통과시키기 위해 알맞는 사이즈로 변환후 CNN을 통해 분류작업(classification)을 한다. 그 후에 SVM(support vector machine)을 이용해 각 object 들을 분류해준다. 또한 ..
이전에 3번의 시도에 거쳐서 했던 실험을 끝내려고 한다 최종으로 만들어낸 모델을 살펴 보자. 사실 음.. 전에 것과 별반 차이는 없는것 같다.. Generator 내가 구성한 모델은 다음과 같다. 흑백이미지를 노이즈와 합쳐준것을 input으로 넣어준다. Conv layer 와 maxpool 로 이미지를 encode 한다 (encode한다는 말이 맞는건지는 잘 모르겠다.) 그런다음 maxpool layer를 거치면서 줄어든 사진크기를 deconvolution 으로 decode 하면서 크기를 복원시켜나간다. decode 하는 과정중에 encode 과정에서의 output을 계속해서 더해줬는데 , 저 과정 없이 실행을 했었더니(trial2) 형체를 알아보기 힘든 모양이 나왔다. 그래서 원래 이미지의 모양을 잊지..
Black & White 이미지를 Color 로 바꾸는 모델을 만들기 위해서 GAN 이라는 모델을 이용할 것이다. 사실 처음에는 그냥 단순한 ConvNet으로 해결하려 했지만 성능은 참담했다. 흑백이미지를 input으로 학습을 시켰을때, Color이미지를 만들어내는것이 아니라 원래 이미지보다 약간은 흐린 갈색 이미지가 나오게 되는 것 이였다. 그래서 찾다가 찾다가 , GAN 을 알게되고 공부해 보았다. 첫번째로 만들어낸 모델은 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667class Generator(nn.Module): def ..