AIFFEL 99

Going Deeper(CV)_DJ 11 : OCR 기술의 개요

1. 들어가며 - OCR = Text detection + Text recognition 1) 이번에는 딥러닝 기반의 OCR이 어떻게 이뤄지는지 알아본다. 2) 위 그림에서 보는 것처럼, 이미지 속의 문자를 읽는 OCR은 크게 문자의 영역을 검출하는 Text detection 그리고 검출된 영역의 문자를 인식하는 Text recognition으로 구분할 수 있다. 3) 이 두 과정을 거쳐 이미지 속 문자를 읽게 된다. 4) Text detection (1) 그동안 우리가 다뤘던 일반적인 Object detection 태스크를 문자 찾아내기로 확장한 버전이라고 생각할 수 있겠다. (2) 그러나 앞으로 살펴보겠지만, Text detection은 단순히 Object detection 기법 뿐 아니라 Segme..

공부/AIFFEL 2021.04.22

Going Deeper(CV)_DJ 10 : 나를 찾아줘 - Class Activation Map 만들기

1. 들어가며 - 이번 시간에는 CAM(Class Activation Map)을 얻기 위한 방법 중 CAM와 Grad-CAM을 구현해보고 시각화해 보겠다. - 그리고 CAM을 활용해서 물체의 위치를 찾는 object detection을 수행하고 이를 정답 데이터와 비교해 보겠다. 2. 데이터셋 준비하기 - CAM(Class Activation Map)은 특성을 추출하는 CNN 네트워크 뒤에 GAP(Global Average Pooling)와 소프트맥스 레이어(Softmax Layer)가 붙는 형태로 구성되어야 한다는 제약이 있다. 반면에 Grad-CAM은 이런 제약이 없다. - 이번 시간에 이 두 가지를 모두 구현해 보겠다. - 우선 CAM을 위한 모델을 먼저 구성해 기본적인 CAM을 추출해보고, 이 모..

공부/AIFFEL 2021.04.20

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