Going Deeper(CV) 19

Going Deeper(CV)_DJ 9 : 너의 속이 궁금해 - Class Activation Map 살펴보기

1. 들어가며 - 지금까지 딥러닝 모델을 기반으로 이미지를 분류, 탐지하는 여러 가지 모델을 공부해 왔다. - 이미지를 모델의 입력에 맞게 전처리해주고 모델에 통과시킨 뒤 결과를 해석해서 추론값을 얻어내는 과정이 익숙하다. - 그런데 모델이 잘 동작한다는 것을 확인하고 끝내기에는 궁금한 것이 많다. - 예를 들어 개와 고양이를 분류하는 딥러닝 모델을 만들었다고 하자. - 이 모델이 이미지의 어느 부분을 보고 개라는 결론을 내렸는지 알 수 있을까? - 그동안 우리가 다룬 딥러닝은 모델의 추론 근거를 알 수 없는 블랙박스(Black Box) 모델이였다. - 그래서 이 모델을 신뢰할 수 있는지조차 명확하지 않았따. - 이번에는 모델과 추론의 신뢰성에 대한 답을 찾는 XAI(Explainable Artifici..

공부/AIFFEL 2021.04.19

Going Deeper(CV)_DJ 8 : 도로 영역을 찾자! - 세그멘테이션 모델 만들기

1. 들어가며 - 이번 시간에는 Sementic Segmentation (시맨틱 세그멘테이션)을 이용해서 자율주행차량이 주행해야 할 도로 영역을 찾는 상황을 가정하고 모델을 만들어보는 시간은 갖는다. - 이전 노드에서는 Semantic Segmentation을 위한 다양한 모델을 배웠다. - 이번 시간에는 U-Net을 사용해 이미지가 입력되면 도로의 영역을 Segmentation 하는 모델을 만들어보겠다. 2. 시맨틱 세그멘테이션 데이터셋 - 이미지, 데이터 가져오기 1) 먼저 시맨틱 세그멘테이션(semantic segmentation)으로 도로의 영역을 분리하기 위해서는 도로의 영역을 라벨로 가진 데이터셋을 가지고 학습할 수 있도록 파싱해야 한다. 2) 물체 검출(object detection)으로 사..

공부/AIFFEL 2021.04.16

Going Deeper(CV)_DJ 7 : 물체를 분리하자! - 세그멘테이션 살펴보기

1. 들어가며 - 우리가 그동안 다뤄온 이미지 분류(image classification), 객체 인식(object detection) 모델은 이미지에서 어떤 물체의 종류를 분류하거나 물체의 존재와 위치를 탐지해 낸다. - 이번에 배워볼 세그멘테이션(segmentation)은 픽셀 수준에서 이미지의 각 부분이 어떤 의미를 갖는 영역인지 분리해 내는 방법이다. - 위 사진을 보면 세그멘테이션 기술을 쉽게 이해할 수 있을 것이다. - 세그멘테이션은 이미지 분할 기술이다. 위 사진에서 세그멘테이션 모델은 사람의 영역과 배경 영역을 분리해서 배경을 흐리게 처리하여 아웃포커싱 효과를 보여준다. - 세그멘테이션은 이미지의 영역을 어떤 영역인지 분리해내는 기술로 다양한 영역에서 활용되고 있다. - 위 사진은 실제로 ..

공부/AIFFEL 2021.04.15

Going Deeper(CV)_DJ 6 : GO/STOP! - Object Detection 시스템 만들기

1. 들어가며 - 이번에는 object detection 모델을 통해 주변에 다른 차나 사람이 가까이 있는지 확인한 후 멈출 수 있는 자율주행 시스템을 만들어 보겠다. - 하지만 자율주행 시스템은 아직 완전하지 않기 때문에, 위험한 상황에서는 운전자가 직접 운전할 수 있도록 하거나 판단이 어려운 상황에서는 멈추도록 설계해야 한다. - 먼저 전체적인 시스템을 구성하기 위해서 보조장치의 역할과 이를 학습하기 위한 데이터셋 전처리를 수행하겠다. - Detection 모델을 학습시키기 위한 전체 파이프라인을 직접 제작하기에는 많은 시간이 들기 때문에 RetinaNet이라는 1-stage detector를 미리 학습시킨 라이브러리를 활용하겠다. 2. KITTI 데이터셋 - 이번에 만들어 볼 자율주행 보조장치는 카..

공부/AIFFEL 2021.04.13

Going Deeper(CV)_DJ 4 : 이미지 어디까지 우려볼까?

1. 데이터 불러오기 - 이번 노드에서는 augmentation을 텐서플로우 모델 학습에 어떻게 적용할 수 있는지 공부한다. - 지금까지 모델을 훈련시키기 전, 데이터를 전처리해 입력값으로 사용해 왔다. - Augmentation도 이처럼 입력 이미지의 데이터를 변경해주는 과정이므로 일반적인 이미지 데이터 전처리 방법과 활용방법이 동일하다. - 코드를 통해 필요한 라이브러리를 불러오고, GPU 상태를 확인했다. - 그리고 사용할 데이터셋을 불러온다. 이번에는 stanford_dogs 데이터셋을 사용했다. - stanford_dogs 데이터셋에는 120개 견종의 이미지가 포함되어 있다. 총 20,580장의 이미지에서 12,000장은 학습셋, 나머지 8,580장은 평가용 데이터셋이다. - 데이터를 처음 사용..

공부/AIFFEL 2021.04.13

Going Deeper(CV)_DJ 5 : Object Detection

1. 들어가며 - Object detection이란 이미지 내에서 물체의 위치와 그 종류를 찾아내는 것이다. - 이번에는 딥러닝을 기반으로 하는 object detection에 대해서 알아본다. - Object detection은 이미지 기반의 문제를 풀기 위해서 다양한 곳에서 필수적으로 사용되는 중요한 기법이다. - 대표적으로는 자율주행을 위해서 차량이나 사람을 찾아내거나 얼굴 인식을 위해 사람 얼굴을 찾아내는 경우를 생각해 볼 수 있다. - 그 외에도 다양한 방식으로 이용되고 있다. 2. 용어 정리 - Object Localization 1) Object detection은 물체의 클래스를 분류(classification) 할 뿐 아니라 위치 측정(localization)까지 함께 수행하는 작업이다...

공부/AIFFEL 2021.04.12

Going Deeper(CV)_DJ 3 : 잘 만든 Augmentation, 이미지 100장 안 부럽다

1. 들어가며 - 딥러닝 모델을 학습 시키기 위해서는 대량의 데이터를 확보해야 한다. - 대표적인 이미지 데이터셋인 이미지넷(ImageNet)은 약 1,400만장의 이미지를 갖고 있다. - 분류 대상 클래스가 10개라 상대적으로 간단해 보이는 CIFAR-10도 몇 만장의 데이터를 가지고 있다. - 미리 공개되어 있는 데이터셋 외에도 우리가 원하는 문제를 풀 때는 이에 맞는 데이터가 필요하다. - 하지만 이런 데이터를 몇 만장씩 구축하는데는 많은 비용과 시간이 필요하다. - 이 때, 제한된 데이터셋을 최대한 활용하기 위해서 augmentation이라는 방법을 사용할 수 있다. - 그럼 augmentation은 어떻게 사용하고, 어떤 효과를 줄 수 있을까? 2. 데이터셋의 현실 - 대량의 데이터셋 1) 이미..

공부/AIFFEL 2021.04.09

Going Deeper(CV)_DJ 1 : 백본 네트워크 구조 상세분석

EfficientNet1. 딥러닝 논문의 구조 - 오늘의 이야기는 가장 유명한 딥러닝 기반 컴퓨터 비전 모델 중 하나로 꼽히는 ResNet의 논문으로 시작한다. - ResNet 논문은 Residual Block이라는 아주 간단하면서도 획기적인 개념을 도입하여 딥러닝 모델의 레이어가 깊어져도 안정적으로 학습되면서 모델 성능 개선까지 가능함을 입증했다. - 딥러닝 분야에서 사용되는 많은 기법들은 논문을 통해서 공개되는 경우가 많다. - 논문에서 ResNet의 잔차 학습을 어떤 과정으로 소개하고 효과를 증명했는지는 딥러닝도 컴퓨터 과학의 한 분야이기 때문에, 실험을 통해 보여준다. - 그래서 논문이 제안하는 새로운 방식과 효과를 확인하기 위해서는 어느 정도 논문의 구조를 파악하고 이해할 수 있어야 한다. - ..

공부/AIFFEL 2021.04.05