전체 글

SOOHO 개발공부노트
해당 포스팅은 네이버 부스트캠프 P-stage를 위해 개인 학습 내용을 정리했습니다. 1. 시도했으나 잘 되지 않았던 것들 CenterCrop 224는 생각보다 적은 범위를 잡아서 특정 위치를 잡아내지 못하는 이미지도 가끔 존재했습니다. 이를 보완하고자 최대 크기인 384로 CenterCrop 후 resize하는 방식을 선택했습니다. 이미지를 전체 확인해보려고 했으나, 너무 많은 용량이 포함되면서 EDA 파일이 안열리는 현상이 발생했었습니다. 다음에는 나눠서 print해보는 것이 좋을 것 같습니다. StepLR을 적용했을 때, 처음에 빠르게 수렴하는 경우에는 2에폭마다 줄여주면 좋은 효과를 얻었지만 천천히 수렴하는 모델의 경우 유의미한 결과를 보기에는 시간적인 비용이 크게 작용했습니다. 2. 학습과정에서..
해당 포스팅은 네이버 부스트캠프 P-stage를 위해 개인 학습 내용을 정리했습니다. 1. 목표 B3, B0 모델 학습하고 성능확인 Resnet, B3, B0 앙상블하기 2. 진행 내용 1) B3, B0 모델 학습하고 성능 확인하기 Resnet50 train_file = processed0(증강 후 50000만장) resize = (224, 224) transforms = CenterCrop(384, 384), Resize(224, 224), ColorJitter(brightness=0.3, contrast=0.3), RandomHorizontalFlip(p=0.5), Normalize batch_size = 32 lr = 1e-4, lr_scheduler = StepLR( Adam, 3, gamma=0..
해당 포스팅은 네이버 부스트캠프 P-stage를 위해 개인 학습 내용을 정리했습니다. 1. 목표 Dataset.py, train.py 수정하기 Resnet50 사용해보기 데이터 증강해서 돌려보기 2. 진행 내용 1) Dataset.py, train.py 수정하기 Dataset에 클래스 부족한 것들의 데이터를 추가하기 위한 함수를 추가했습니다. train.py의 training 과정을 일부 수정했습니다. 2) Resnet50 사용해보기 Resnet을 수렴하게 하기 위해 StepLR을 적용해봤습니다. 생각보다 3 Epoch마다 변경해주도록 하니, 잘 수렴했습니다. 하지만, 결과는 생각보다 좋지 않았습니다. 3) 데이터 증강해서 돌려보기 데이터 증강을 위해 Dataset에 클래스 별로 이름을 list에 추가하..
해당 포스팅은 네이버 부스트캠프 P-stage를 위해 개인 학습 내용을 정리했습니다. 1. 목표 층화추출을 위한 데이터 나누는 작업 Albumentaions 적용해보기 2. 진행 내용 1) 층화추출을 위한 데이터 나누는 작업 shutil.copytree를 사용하면 가능합니다. 하지만, python 3.8버전에서는 dirs_exists_ok라는 parameter가 존재하지만, 3.7에서는 존재하지 않아서, 해당 디렉토리로 이동해서 저장하는 것으로 변경했습니다. 2) Albumentaions Albumentations의 경우 transform과 크게 다르지 않은 형태를 가지고 있지만, 돌려봤을 때, 오류가 발생해서 이부분에 대해서는 내일 보완이 필요할 것 같습니다. 3. 회고 이제 2일정도 남았습니다. 마지..
해당 포스팅은 네이버 부스트캠프 P-stage를 위해 개인 학습 내용을 정리했습니다. 1. 목표 dataset : train, valid를 폴더별로 나누기, 학습 클래스가 부족한 것에 대한 처리 Model : EfficientNet 사용해보기 데이터셋 전체 표시해서 확인하기 2. 진행 내용 1) Dataset train, valid를 물리적으로 분리해보기로 했습니다. 이유는 폴더 내에 같은 사람의 사진이 7장 찍혀있는데, 랜덤으로 이미지를 가져갈 경우, valid 평가에서 문제가 발생할 수 있을 것이라고 생각했습니다. 학습 샘플이 고정되는 문제가 있을 것 같지만 이 부분은 추후 처리해주는 방법을 생각해봐야겠습니다. train, validation 나눠서 적용한 것이 이전에 돌렸던 것보다 많은 상승효과가 ..
해당 포스팅은 네이버 부스트캠프 P-stage를 위해 개인 학습 내용을 정리했습니다. 1. 목표 transform 다양하게 적용해보기 Inceptionv3 pre-trained 모델로 학습해보기 2. 진행 내용 1) transform 다양하게 적용해보기(Albumentations 라이브러리 활용도 가능) ColorJitter(brightness=[min, max], contrast=[min, max], saturation=[min, max], hue=[-hue, hue]) 명도(brightness) : 이미지의 밝기 대비(contrast) : 상대적인 밝기, 이미지 명암 채도(Saturation) : 색상의 순색 색조(Hue) : 색상 RandomHorizontalFlip(p=0.5) p확률로 좌우 반전..
해당 포스팅은 네이버 부스트캠프 P-stage를 위해 개인 학습 내용을 정리했습니다. 1. 목표 Dataloader 완성 transform.compose로 다양하게 시각화 해보기 빠르게 제출해보기 2. 진행 내용 1) Dataloader 완성 Dataloader는 기본적으로, __init__, __getitem__, __len__가 정의가 되어야 합니다. __init__에서는 필요한 속성을 정의하고, 이미지 리스트를 담는 작업을 실시했습니다. 이미지 리스트는 glob로 받았습니다. __getitem__에서는 1개의 이미지와 라벨을 리턴해줬습니다. 이미지를 로드할 때는 PIL 라이브러리와 cv2를 사용할 수 있는데, cv2를 사용했을 때, array로 이미지를 읽기 때문에 ndarray로 변환이 필요한 것..
해당 포스팅은 네이버 부스트캠프 P-stage를 위해 개인 학습 내용을 정리했습니다. 1. 목표 Dataloader 만들기 이미지를 불러오고 확인하기 2. 진행 내용 1) Dataloader 만들기 Dataloader를 만들 때, split은 sklearn의 train_test_split을 적용하면 좋을 것 같습니다. 내일 강의를 듣고 추가 예정입니다. 2) 이미지 불러오고 확인하기 os.listdir() 명령어는 숨김파일도 다 불러오는 기능이 존재합니다. 그래서 이를 방지하려면 glob을 사용하는 것이 더 좋은 것 같습니다. 서버에서 import cv2 했을 때, ImportError: libGL.so.1: cannot open shared object file: No such file or direc..
해당 포스팅은 Mastering OpenCV 4 with Python 원서 내용을 기반으로 작성되었습니다. 이번 포스팅에서는 다음의 내용들을 포함하고 있습니다. image basics에 대한 이론적인 소개 OpenCV에서의 좌표계 OpenCV에서 픽셀에 접근하고 계산하는 방법 OpenCV에서의 RGB 순서 1. 이미지 처리에서의 문제점 컴퓨터 비전에서 이미지 처리 기술을 다룰 때, 몇 가지 문제점들이 존재합니다. 첫 번째, 이미지는 관점에 의해 영향을 받습니다. 같은 물체라고 해도, 다른 관점으로 보면 다른 이미지로 인식할 수 있습니다. 두 번째, 이미지는 빛, 날씨, 반사, 움직임 등 다양한 요소로부터 영향을 받습니다. 세 번째, 다른 물체에 의해서 가려지는 경우 발견하거나 분류하기 어렵습니다. 예를 ..
해당 포스팅은 네이버 부스트캠프 AI Tech 학습 정리 자료임을 알려드립니다. 1. 강의 정리 홍원의 마스터 - 행렬 분해 오늘의 내용은 선형대수학을 기초로 해서 decomposition을 matrix, tensor에서 어떻게 하는 지에 대해 설명해주셨습니다. 이 내용들에 대해서는 추가적으로 공부하고 내용을 넣도록 하겠습니다!
Sooho_Kim
SOOHOCODE