Portrait

주제무·2022년 6월 5일
0

Ex

목록 보기
1/3

Portrait

Outline

하나의 카메라로 인물사진을 찍어보자

인물사진 : 인물에 초점을 맞추어 배경이 흐린 것이 특징

  1. Image Segmentation --> 인물과 배경 분리
  2. Blur --> 배경을 흐리게
  3. Composite --> Blur처리된 배경과 인물 합성

Image Segmentation

이미지에서 Target Class마다 모든 픽셀을 Label하는 것.
Class 분류에 공유하고 있는 특성있는 점을 이용한다.

Semantic Segmentation

픽셀을 사람, 자동차와 같이 분류하는 것

Sementation Model

DeepLab v3+

https://blog.lunit.io/2018/07/02/deeplab-v3-encoder-decoder-with-atrous-separable-convolution-for-semantic-image-segmentation/

keyword : Atrous Convolution, Depthwise Separable Convolution

PixelLib github

https://github.com/ayoolaolafenwa/PixelLib

Module

import urllib
from pixellib.semantic import semantic_segmentation

urllib : url을 통해 데이터 다운
pixellib : semantic segmentation model: DeepLab v3+ 사용

Load pre-trained Model

학습된 모델을 사용한다.

model_url = 'https://github.com/ayoolaolafenwa/PixelLib/releases/download/1.1/deeplabv3_xception_tf_dim_ordering_tf_kernels.h5'
urllib.request.urlretrieve(model_url, model_file)

Segmentation

# load Model
model = semantic_segmentation()
model.load_pascalvoc_model(model_file)

# segvalues is a dictionary which has class model found
# output is an image seperated
segvalues, output = model.segmentAsPascalvoc(img_path)

Composite

img_concat = np.where(img_mask_color==255, ls, img_bg_blur)

Data Set for train

http://host.robots.ox.ac.uk/pascal/VOC/

# Class Label
LABEL_NAMES = [
    'background', 'aeroplane', 'bicycle', 'bird', 'boat', 'bottle', 'bus',
    'car', 'cat', 'chair', 'cow', 'diningtable', 'dog', 'horse', 'motorbike',
    'person', 'pottedplant', 'sheep', 'sofa', 'train', 'tv'
]

Reference

https://github.com/jujemu/EXP_local/blob/master/EX/Ex-10/%5BEx-10%5DPortrait.ipynb

winter : https://www.instagram.com/winter.aespa/
Karina : https://www.instagram.com/karinah.aespa/
IU : https://www.instagram.com/dlwlrma/

0개의 댓글