ABOUT ME

Today
Yesterday
Total
  • 20221206 = 딥러닝 이미지 분류 개념
    PYTHON 2022. 12. 6. 16:53
    이미지 분류
    
    이미지 사이즈가 다를 경우에 PIL, OpenCV 등을 내부에서 이용하여 이미지 사이즈를 조정해준다.
    강제로 큰 이미지 사이즈를 작게 만들 경우, 원본사진 왜곡이 생길 수 있는 문제가 생긴다.
    반대로 작은 이미지를 크게 만들 경우, 픽셀이 깨져 보이는 문제가 생길 수 있다.
    
    또한 이미지 사이즈가 작으면 계산이 빠르고, 반대로 커지게 되면 느려진다.
    
    filters : 컨볼루션 필터의 수 == 특징맵 수
    kernel_size : 컨볼루션 커널의 (행, 열)  => 필터 사이즈
    padding : 경계 처리 방법
    
    훈련 예제가 적을 때 모델은 새로운 예제에서 모델의 성능에 부정적인 영향을 미치는 정도까지 
    훈련 예제의 노이즈나 원치 않는 세부까지 학습합니다. 이 현상을 과대적합이라고 합니다. 
    이는 모델이 새 데이터세트에서 일반화하는 데 어려움이 있음을 의미합니다.
    
    훈련 과정에서 과대적합을 막는 여러 가지 방법들이 있습니다. 이 튜토리얼에서는 데이터 증강을 
    사용하고 모델에 드롭아웃을 추가합니다.
    이미지를 로드하는 방법
    
    1) matplotlib.pyplot imread()를 사용하는 방법
    2) PIL(Pillow) 로 불러오는 방법 => PIL 로 접고돌리고땡기고가 다 가능합니다. 
    TF 내부에서도 PIL 이나 OpenCV를 사용해서 접고돌리고땡기고를 합니다. => 이미지 편집기를 만들 수도 있습니다.
    3) OpenCV로 불러오는 방법(Computer Vision)에 주로 사용하는 도구로 동영상처리 등에 주로 사용합니다.
    Keras의 ImageDataGenerator
    
    공간 레벨 변형
    - Flip : 상하, 좌우 반전
    - Rotation : 회전
    - Shift : 이동
    - Zoom : 확대, 축소
    - Shear : 눕히기
    
    픽셀 레벨 변형
    - Bright : 밝기 조정
    - Channel Shift : RGB 값 변경
    - ZCA Whitening : Whitening 효과
    벡터 데이터(시간이나 순서가 상관 없음): MLP (밀집층)
    
    이미지 데이터(흑백 또는 컬러): 2D 합성곱 신경망
    
    스펙트로그램 오디오 데이터: 2D 합성곱 신경망이나 순환 신경망
    
    텍스트 데이터: 1D 합성곱 신경망이나 순환 신경망
    
    시계열 데이터(시간이나 순서가 중요함): 1D 합성곱 신경망이나 순환 신경망
    
    볼륨 데이터(예: 3D 의료 이미지): 3D 합성곱 신경망
    
    비디오 데이터(이미지의 시퀀스): 3D 합성곱 신경망(모션 효과를 감지해야 하는 경우) 
    또는 특성 추출을 위해 프레임 별로 적용한 2D 합성곱 신경망과 만들어진 특성 시퀀스를 
    처리하기 위한 RNN이나 1D 합성곱 신경망의 조합
    합성곱 신경망은 무엇일까?
    
    합성곱 층은 입력받은 텐서에서 공간적으로 다른 위치에 기하학적 변환을 적용하여 국부적인 공간 패턴을 찾습니다.
    이런 방식은 이동 불변성을 가진 표현을 만들기 때문에 합성곱 층을 매우 데이터 효율적으로 만들고 모듈화 시킵니다.
    
    위와 같은 아이디어는 어떤 차원 공간에도 적용할 수 있기 때문에 1D(시퀀스), 
    2D(이미지나 이미지가 아니지만 사운드 스펙트로그램처럼 비슷한 표현), 3D(볼륨 데이터) 등입니다.
    
    텐서플로우에서는 conv1d 층으로 시퀀스를 처리하고, conv2d층으로 이미지를 처리하고, 
    conv3d 층으로 볼륨 데이터를 처리할 수 있습니다.
    
    합성곱 신경망은 합성곱 층과 풀링 층을 쌓아서 구서아게 됩니다. 풀링 층은 공간적으로 
    데이터를 다운샘플링하고 이는 특성 개수가 늘어나게되면 후속 층이 합성곱 신경망의 
    입력 이미지에서 더 많은 공간을 바라보도록 특성 맵의 크기를 적절하게 유지시킵니다. 
    
    합성곱 신경망은 공간적인 특성 맵을 벡터로 바꾸기 위해 종종 flatten 층과 전역 풀링 층으로 끝납니다. 
    그리고 일련의 밀집층(MLP)로 처리하여 분류나 회귀 출력을 만들게 됩니다.

    'PYTHON' 카테고리의 다른 글

    20221212 = CNN 복습 / 자연어처리 개념 정리  (0) 2022.12.12
    20221207 = CNN 복습 및 정리  (0) 2022.12.07
    20221205 = 합성곱신경망  (0) 2022.12.05
    20221130 = 딥러닝 복습  (0) 2022.11.30
    20221129 = 딥 러닝 , Tensorflow  (0) 2022.11.29
Designed by Tistory.