7-16 PyTorch 안면 이미지 데이타 Rescale, RandomCrop, Compo

in #kr5 years ago

noname03.png

TensorFlow에서 처리되는 머신 러닝 문제는 PyTorch 머신 러닝에서도 다 가능하다고 볼 수 있다. 그럼에도 불구하고 PyTorch를 출시한 이유는 무엇일까? 아마도 TensorFlow에서 취약한 부분의 보강이 충분히 이루어졌을 것으로 보인다.

특히 머신 러닝 영역에서 제대로 된 예제가 희귀한 Transfer Learning 문제를 해결하기 위한 툴 중에서 가장 괜찮은 툴로 여겨진다. 툴이라고 해봐야 TensorFlow for Poets: TFLIte Android 와 PyTorch 두 개가 다 인듯하다. 그중에서 TFLite는 우분투에서만 된다고 되어 있어 아직 확인을 못한 상태며 현재로서 PyTorch 예제는 이미 실행이 가능하다는 점은 알고 있다.

한편 안면 Landmark 그래픽 문제에서 사용하는 그래픽 처리과정 역시 Transfer Learning 초반에 그대로 사용되는 알고리듬이기 때문에 튜토리얼 코드 내용을 완전히 이해하고 사용법을 익혀야 할 필요가 있다.

앞 단계에서 faces 폴더의 이미지 파일들을 불러와 안면 Landmark가 그래픽 처리된 결과를 출력할 수 있었는데 각각이 이미지는 그 크기가 제각각 다를 수도 있기 때문에 많은 양의 이미지들을 뉴럴 네트워크 처리하기 위해서는 크기를 일정하게 변환(Transform)해야 할 필요성이 있다.

변환 기법 중에서 가장 기본적인 것이 Rescale 이다. Rescale은 폭(width)과 높이(height) 중 짧은 길이의 픽셀 수 기준으로 처리한다. 아우러 RandomCrop 은 주위를 잘라내는데 Size 파라메터가 아주 작은 크기의 일 때는 조각만 띄어내는 기법이다. 하지만 기법의 중요성에도 불구하고 RandomCrop의 Size 파라메터 설정을 위한 제대로 된 사용법을 찾을 수가 없어 일단 몇 가지 숫자를 사용하여 출력해 보기로 한다.

3개의 class Rescale, RandomCrop, ToTensor를 실행시키자.

noname01.png

아래 실행 코드에서 Size 파라메터를 바꾸어서 출력해 보자.

noname02.png

첫 번째 scale 명령은 이미지 데이터의 픽셀 해상도 Size 로 보면 될 것 같다. 두 번째 Crop 계산은 160 미만에서만 결과가 출력된다. composed는 Rescale 된 결과에 대해서 일부 잘라낸 그래픽 결과를 출력해 준다. 연습을 통해 정확한 사용법을 알아낼 필요가 있다.

noname03.png

마나마인로고.png

Coin Marketplace

STEEM 0.27
TRX 0.13
JST 0.031
BTC 61374.19
ETH 2885.69
USDT 1.00
SBD 3.55