210810 EXPLORATION 8. 인물사진

문소정·2021년 8월 10일
0

AIFFEL

목록 보기
24/66
  • 아웃포커싱 : 배경을 흐리게 하는 기술
    • 피사계 심도(shallow depth of field) 또는 셸로우 포커스(shallow focus)라고 불림
  • 하나의 카메라로 셸로우 포커스(shallow focus)를 만드는 방법

1. 세그멘테이션으로 사람 분리하기

  • 이미지 세그멘테이션(image segmentation) 기술
    • 이미지에서 픽셀 단위로 관심 객체를 추출하는 방법
  • 시멘틱 세그멘테이션(semantic segmentation)
    • 물리적 의미 단위로 인식하는 세그멘테이션
    • ex) 이미지에서 픽셀을 사람, 자동차, 비행기 등의 물리적 단위로 분류(classification)하는 방법
  • 인스턴스 세그멘테이션(Instance segmentation)
    • '사람'이라는 추상적인 정보를 이미지에서 추출해내는 방법
    • 특징 : 사람 개개인별로 다른 라벨을 가짐
    • 여러 사람이 한 이미지에 등장할 때 각 객체를 분할해서 인식하자는 것이 목표

      인스턴스 세그멘테이션 데이터셋과 라벨이 존재할 때, 시맨틱 세그멘테이션을 학습시키려면 인스턴스의 id, 클래스 라벨이 존재해야만 시맨틱 세그멘테이션으로도 학습이 가능함. 대부분의 데이터셋은 인스턴스 라벨이 있는 경우 클래스 라벨도 함께 존재함으로 인스턴스 세그멘테이션을 시맨틱 세그멘테이션으로 학습이 가능하다

2. 시맨틱 세그멘테이션 다루기

  • DeepLab 세그멘테이션 모델 이용
  • atrous convolution을 사용한 이유
    • 기존 convolutin과 동일한 양의 파라미터와 계산량을 유지하면서 field of view를 크게 가져갈 수 있기 때문
    • receptive field를 넓게 사용하기 위해 사용합니다. (적은 파라미터로 필터가 더 넓은 영역을 보게 하기 위해)
버전사용된 atrous convolution
V1atrous convolustion 적용
V2multi-scale context를 적용하기 위한 Atrous Spatial Pyramid Pooling (ASPP) 기법을 제안
V3기존 ResNet 구조에 atrous convolution을 활용해 좀 더 dense한 feature map을 얻는 방법을 제안
V3+separable convolution과 atrous convolution을 결합한 atrous separable convolution의 활용을 제안

3. 세그멘테이션 결과를 원래 크기로 복원하기

  • cv2.resize()함수
    • 보간(interpolation) : 이미지의 크기를 변경(scaling)하는 과정에서 컴퓨터가 사이사이 픽셀값을 채우는 방법입
      • cv2.INTER_NEAREST :
      • cv2.INTER_LINEAR : cv2.INTER_NEAREST보다 더 정확히 확대 할때 사용
  • cv2.threshold() : 임계값을 조정
  • cv2.bitwise_not() : 이미지 반전
  • cv2.bitwise_and()
  • np.where(조건, A, B) : 조건에 따라 True이면 A를 반환, 그렇지 않으면 B를 반환

0개의 댓글