20220916

강태공·2022년 9월 20일
0

이미지에서 KNN적용

-주어진 이미지 - 제일 비슷한 이미지 찾기(0~9)

  • 10개의 이미지와의 거리 계산해서 제일 최소값을 가지는 이미지의 “인덱스”
  • argmin cf. argmax

-MNIST기준으로 KNN => 90% 초반 정확도
-텐서플로도 argmin있는데 텐서플로우는 다른 라이브러리와 섞어서 쓰는 경우가 많다!

CNN(Convolutional Neural Network)

-영상처리/이미지 처리에 적합한 딥뉴럴네트워크(DNN)
-영상처리를 통해서 MLP가 처리해야 하는 데이터를 줄임

  • 하지만 필요한 특성 정보 손실은 최소화시킴
    -1998년 LeCun이 제안

컨볼루션이란?

포토샵의 필터 = 수학적으로는 다 컨볼루션 연산이다.

Covd2D는

서브샘플링?

리사이즈

피쳐맵?

안경낀 사람만 가려내고 싶으면 얼굴 사진 중에 입을 제외한 부분을 짜르기/

픽셀과 퍼셉트론

-28x28x1(Grayscale) -> 784개의 픽셀 -> MLP(128 퍼셉트론 -> 10 퍼셉트론)
-몇 개의 픽셀을 하나의 퍼셉트론이 담당하는가? 6.125
-FullHD(1920x1080) => 200만 개의 픽셀 => 30만 개 이상
-UHD(4k) => 800만 개의 픽셀 => 100만 개 이상의 퍼셉트론
-8k(7680x4320) => 3200만 개의 픽셀 => 500만 개 이상

-해결책은??? 해상도/컬러뎁스 낮추기

  • 처리량 줄이기 -> 결과는 유지 또는 향상

  • 컬러 -> 그레이스케일이미지로 변경해 입력(데이터크기 감소/사람)

  • CNN = 영상처리 레이어(정보유지하면서 처리량 줄이기) + 신경망(MLP)

-이미지 리사이즈(해상도 낮추기) + 정보손상 최소화

  • Convolution(Conv2D) + Subsampling(MaxPooling2D:리사이즈)
  • Blur(블러:이미지 흐릿하게) + Resize(ReduceMax방식)
  • 2번 반복(다단계 리사이즈)

CNN(Convolutional Neural Network)

  • Convolution
  • 행렬곱(Matrix multiplication)
  • 포토샵의 필터에 해당하는 행렬을 이미지(행렬)에 적용 -> 행렬끼리 곱하기

-주목적

  1. 데이터정보를재구성하라(처리하기 좋은 구조로 변형해라)

  2. 처리 데이터량을 줄여라

    • MaxPooling/Subsampling(Resize) -> 맥스풀링이랑 서브샘플링 똑같은 말임
    • 다단계 리사이즈 vs 리사이즈
  3. 필요한 부분만 처리하라

    • feature map(자동화 vs. 사람이 개입)

-Conv2D 연산(Blur)

  • 필요한 데이터를 추출하는 방법
  • 공유편향을 사용/흐릿하게 하기

-MaxPooling(Resize)

  • 데이터를 줄일 때 최대값을 대표값으로 데이터량을 축소하는 방법

Resize(MaxPooling2D)

-4k 이미지(3840x2160) -> FullHD(1920x1080) 모니터에서 표시하려면

  • 가로해상도 절반/세로해상도 절반
  • 2x2 픽셀(점 4개) -> 1x1 픽셀(점 1개)로 대표
    10,20
    30,40

-평균값으로 대표(ReduceMean) (10+20+30+40)/4 = 25(AveragePooling2D)
-최소값으로 대표(ReduceMin) 10(MinPooling2D)
-최대값으로 대표(ReduceMax) 40 - CNN에서 기본(결과가 가장 좋음-과적합)

MaxPooling2D = ReduceMax

-블러하고 리사이즈하는게 더 효과가 좋다.

28x28로 왜 된거야? 문지르다 보면 가장자리는 제대로 문지러지지 않아 몇 픽셀이 남는다.

Conv2D(kernel size)

  • Conv2d->MaxPooling2D
    - 효과가 좋음(왜?)
  • Conv2D(흐릿하게 하기/문지르기->차이를 줄이기) + 리사이즈 한 것이 더 좋은 경우가 많다
    -결과물이 더 좋다(?)

0 / 255 / 0 / 255 / 0 / 255 -> 128/128/128/128/128 -> 리사이즈 적용
255/ 0/255/ 0/ 255 / 0 ------> 128/128/128/128/128

-> 리사이즈 알고리즘에 따라 0 / 0 / 0 / 0 / 0 / 0 / 0 또는 -> 255/255/255/255/255/255

-> 체크무늬를 멀리서 보면 회색으로 보임(실제와 유사)

0개의 댓글