Week17 Day84

image preprocessing 이전에 EDA에서 살펴봤듯이 주어진 이미지의 크기는 다양하다. 높이가 작은 하위 10개의 이미지 크기는 [(20, 72), (21, 53), (21, 73), (24, 49), (24, 71), (25, 41), (25, 59), (25, 91), (25, 187), (26, 49)]이다. 높이가 큰 상위 10개의 이미지 크기는 [(7783, 1099), (8471, 980), (8587, 779), (8670, 670), (8737, 881), (8950, 1380), (9037, 931), (9070, 1010), (9600, 930), (10020, 1359)]이다. 이대로...

더보기

Week17 Day83

Goal CNN 모델로 이미지에서 feature map을 추출하고 언어 모델에 입력하여 token(수식)을 예측한다. To do 앞으로 어떻게 프로그래밍할 것인지 계획을 아래와 같이 세웠다. main.py train과 inference를 실행 dataset.py tokenizer 만들기 학습 데이터에 없는 token이 있을 수 있으므로 wikipedia를 참고하여 vocabulary를 만들자. image, label 가져오기 세로의 길이가 긴 이미지가 있는데 이 경우 90도 회전시킨다. label은 a \cdot b = a ^ T b와 같...

더보기

Week17 Day81

이번 프로젝트는 약 한달동안 진행된다. 주제는 OCR(Optical Character Recognition)이다. 이미지를 읽어 문자로 변환하는 task이며 여기서는 수학 수식 이미지가 주어지고 이를 Latex로 변환하는 모델을 만드는 것이 목표이다. 예를 들어 이미지가 아래와 같이 주어진다면 a \cdot b = a ^ T b 로 변환하는 것이다. 원래는 한 이미지에서 수식을 localization하고 Recognition하는 과정이 필요한데 localization이 포함되면 너무 어려워질 것 같아 미리 전처리를 해주었다고 한다. EDA 주어진 데이터는 10만개이고 12,000개의 테스트 데이터가 있다. 이...

더보기

Week15 Day70

지난 2주동안 semantic segmentation을 진행했고 앞으로 2주동안 object detection을 진행한다. 앞서 프로젝트와 동일한 데이터셋을 사용한다. yolo-v1 나중에 추가… SSD(Single Shot Multibox Detector) 나중에 추가… To do pre-trained model에서 사용한 데이터와 이 프로젝트의 데이터는 다르다. 도메인도 다를 것이고 해상도도 다를 것이다. segmentation 프로젝트에서는 fine-tuning을 하지 않아서 이번에는 해볼 생각이다. 주어진 데이터의 해상도는 512x512이다. 어떻게 fine-tuning을 할까? 가장 먼저 드는 ...

더보기

Week14 Day66

이번주는 강의가 없고 대회에 집중하면 된다. 또한 멘토님이 배정되어 여러가지를 질문할 수 있게 되었다! Done DeepLabV3 backbone model로 VGG16을 사용했다. 다음 이미지는 현재 가장 성능이 좋은 DeepLabV2와 비교한 것이다. train, validation loss train, validation mean IoU 이전까지 모델 중 가장 특이한 양상을 보였다. 중간에 갑자기 loss가 증가하는 모습을 보였다. DeepLabV3의 public LB는 0.5446로 현재 가장 성능이 좋은 모델인 DeepLabV2의 p...

더보기

Week13 Weekend

Done 현재 가장 성능이 좋은 모델인 DeconvNet4VGG16에 조금 변화를 줬다. 기존에는 learning rate를 고정으로 하고 adam optimizer를 사용했다. scheduler를 사용하여 이 값을 변화하면 학습이 좀 더 빠르게 수렴하고 backbone model에 학습된 정보를 손실을 줄이기 위해 사용했다. 금요일 강의에서 소개한 gradual scheduler를 사용했다. 처음에는 0에서 시작하여 N번동안 증가하여 사전에 설정한 최고값에 도달하고 그 후 조금씩 감소한다. 다음 이미지는 learning rate의 변화를 나타낸다. 다음 이미지는 train, validation set에 대...

더보기

Week13 Day65

Done U-Net 학습 backbone model로 VGG16을 사용했다. 여태까지 모델 구현 중 가장 까다로웠다. encoder와 decoder가 대칭인데 encoder에서 subsampling 하기 전 feature map을 decoder에 넘겨주고 decoder의 feature map과 concatenation을 해야 된다. 이 부분을 어떻게 구현할지 고민을 많이 했다. 또한 논문에서는 convolution을 할 때 padding을 주지 않아서 feature map의 크기가 조금씩 줄었다. 나는 padding을 줘서 크기를 유지했고 pooling을 통해 크기를 줄였다. 다음 이미지들은 train, va...

더보기

Week13 Day64

Done EDA 한 픽셀에 여러 label이 있는지 확인했다. 그러한 경우가 있었지만 512x512 픽셀 중 그러한 경우는 무시할 정도로 적었다. 다행히 모든 픽셀은 하나의 label을 가지고 있고 이를 예측하면 될 것 같다. U-Net 구현 원래는 DeepLab V1을 구현하려고 했는데 오늘 수업에서 U-Net을 배워서 이를 구현했다. backbone model로 VGG16-BN을 사용했다. 현재 학습 중이다. DeconvNet 어제 DeconvNet 구현 중 문제점을 발견했고 오늘 학습하여 제출했다. 1 위 이미지에서 붉은색 박스를 두가지 버전으로 만들고 나머지는 동일하게 학습했다. V1 7x7...

더보기