BIG_PY
home
Introduce
home
🥧

Chapter 1: 컴퓨터 비전 입문

BIG_PY-이미지-처리-스터디-_-CH1.pptx
20303.4KB

1. 컴퓨터 비전

1) 시각적 인지

시야나 시각적 입력으로 패턴을 관찰하는 행위 ex) 자율주행차 주변에 위치한 사물과 그 상태를 이해하는 것 (보행자, 차량이 주행 중인 차선, 신호등의 상태, 신호의 의미 등)
주변 환경을 스캔만 하는 것 -> 인지라고 말할 수 없다.
시각적 입력을 통해 주변을 실질적으로 인식하는 시스템을 시각적 인지를 갖춤.

2) 비전 시스템

사람의 시각 시스템 눈 : 이미지를 받아들이 시각 센서 뇌 : 이미지를 해석
사람에게 개의 사진을 보여 준다면? 오랫동안 개를 인식해온 훈련이 있기에 ‘개’인 걸 알 수 있다.
컴퓨터에게 개의 사진을 보여준다면? 컴퓨터를 학습시키면 인식하고 구별 가능하다. But, 컴퓨터는 사람보다 인식하는 기능이 떨어지기 때문에, 사진 몇 장 보고 구별할 수 있는 사람보다 수천 ~ 수백만 장의 사진을 봐야 구별 가능하다.
머신러닝 관점
① '개'라는 레이블이 있는 이미지를 몇 장 보고 난 다음 개를 구별할 수 있게 되었다 -> 지도 학습 (supervised learning)
② 레이블이 있는 데이터는 이미 답을 알고 있는 데이터를 말한다. 개 사진을 보여주고 그 사진에는 있는 대상이 개라는 것을 함께 알려주었다. 뇌는 사진에서 본 특징을 이 레이블(개)와 연관시킨다.
③ 그 다음에 말 사진을 보여주고 해당 사물이 무엇인지 맞춰보라고 했다. 뇌는 아직까지 말을 본 적이 없어서 말의 특징을 개의 특징으로 착각하고 이것이 개라고 생각한다. 예측 결과가 틀렸다는 대답을 들으면 뇌는 파라미터를 조정해서 말의 특징을 학습한다. '말과 개는 모두 다리가 4개지만 말의 다리가 더 길다. 다리가 더 기니까 말이다.' 이런 과정을 모든 사진의 정답을 맞힐 때까지 반복한다. -> 시행착오를 통한 학습 (training by trial and error)
인공지능의 시각 시스템 눈 : 감지 장치 뇌 : 해석 장치 (이미지 해석과 분류)

3) 감지 장치

설계에서 시스템이 처한 주변환경을 가장 잘 파악할 수 있는 감지 장치를 선택하는 것이 중요하다.
자율주행차에 쓰이는 감지 장치
라이다 : 사람 눈에 보이지 않는 파장의 빛을 사용해서 레이다와 같은 원리로 주변에 대한 고해상도 3D 지도를 만든다.
카메라 : 교통 표지판이나 도로의 표시를 인식할 수 있지만 거리는 잴 수 없다.
레이다 : 사물의 거리와 현재 속도를 알 수 있지만 사물이 무엇인지 자세히 알 수 없다.
의학 진단 영역에 쓰이는 감지 장치
엑스레이, 방사선 단층 촬영
> 시각 시스템은 각자의 목적에 맞춰 다양하게 설계되므로, 시각 시스템 설계는 그 시스템의 목적을 파악하는 것부터 시작함.

4) 해석 장치

컴퓨터 비전 알고리즘이 해석 장치의 역할 담당. 감지 장치에서 출력한 이미지를 전달받아 사물을 인식할 수 있는 특징과 패턴을 학습하는 시각 시스템의 뇌와 같은 역할을 한다.
생물학적 뉴런과 인공 신경망의 유사성
뉴런이 주 처리 단위 역할을 하면서, 입력 신호를 받고 출력을 내보낸다.
딥러닝 (Deep learning) : 여러 층을 가진 신경망을 만드는 기법
생물학적 뉴런의 학습 능력을 모방해 네트워크 구축 -> 뉴런을 모아 서로 연결하고 층을 구성하면 학습 능력이 보인다.
> 딥러닝 기법은 뉴런으로 구성된 층에 데이터를 통과시켜 데이터를 여러번 변환하는 방법이므로 표현을 학습
머신러닝의 성능이 사람을 능가할 수 있을까? 10년 전 -> No
> 결론 인공지능과 딥러닝의 최근 연구 성과를 통해 컴퓨터가 이미지 분류나 사물 인식 영역에서 사람의 시각적 능력을 능가한다는 것을 증명. 더 나아가, 다른 영역으로도 이와 같은 현상이 확장

컴퓨터 비전 응용 분야

컴퓨터 비전에서 인공지능과 딥러닝의 사례
이미지 검색
이미지 캡셔닝 : 컴퓨터가 이미지를 보고 이미지에 적절한 설명을 자동으로 만들어내는 기술
이미지 및 동영상 분류
사물 인식 등
자연어 처리나 음성 인터페이스 등의 분야에서도 가시적인 성과

1) 이미지 분류

: 미리 정의한 레이블을 이미지에 부여하는 일 -> CNN (합성곱 신경망) 이 이미지 처리 및 분류에서 가장 크게 활약하는 것
ex) 폐암 진단 의사는 6~10mm 이상의 병변은 잘 찾아내지만, 4mm 이하의 작은 병변을 발견하지 못하므로, 합성곱 신경망을 이용해 엑스레이나 단층 촬영 이미지에서 이런 병변의 특징을 학습에 초기에 발견할 수 있게 된다.
ex) 교통 표지판 인식 : 전통적 컴퓨터 비전 기법을 활용해 교통 표지판을 탐지하고, 그 내용을 인식하는 방법 -> 이미지의 특징을 사람이 직접 작성해야 하므로 작업 시간 소요가 큼.
하지만, 딥러닝을 적용해 사물 인식에 필요한 특징을 스스로 발견할 수 있다. 비전 시스템은 높은 성능으로 교통 표지판을 탐지할 수 있다.

2) 사물 탐지와 위치 인식

YOLO, SSD, Faster R-CNN과 같은 사물인식 시스템으로 실제로 이미지 안에서 여러 사물을 인식하고 위치까지 파악한다.

3) 화풍 모방하기

: 신경망을 이용해 도시의 풍경 사진을 하나 입력해 빈센트 반 고흐의 그림을 적용

4) 새로운 이미지 창조하기

GAN : 같은 사물, 사람, 장소의 이미지를 만들어낼 수 있는 복잡한 딥러닝 모델 일련의 이미지를 입력해 기존에 없던 새로운 것이지만 원래 있던 것 같은 이미지를 만들어낸다.
ex) StackGAN : 텍스트로 된 설명과 부합하는 고해상도 이미지를 만들어내는 GAN의 변종

안면인식

: 사람의 이미지를 정확하게 식별하거나 태그를 지정하는 기술
안면 인식 시스템의 종류
안면 식별 : 질의로 입력한 안면 이미지를 데이터베이스와 비교해서 이미지와 일치하는 후보를 식별하는 일대다 매칭 과정
안면 대조 : 질의로 입력한 안면 이미지와 하나의 후보를 비교해서 신원 일치를 확인하는 일대일 매칭 과정

6) 이미지 추천 시스템

: 질의 이미지와 유사한 이미지를 제공하는 시스템
ex) 전자상 거래 사이트에서 이전에 선택한 상퓸과 비슷한 상품을 추천하는 서비스

3. 컴퓨터 비전 파이프라인 전체 처리 과정

해석 장치에서 이미지를 이해하기 위한 처리과정
컴퓨터 비전 파이프라인
이미지 분류기 : 이미지를 입력받아 이미지가 속한 클래스 또는 클래스를 나타내는 레이블을 출력하는 알고리즘 머신러닝에서 클래스 (또는 카테고리)는 입력한 데이터가 속하는 부류를 의미
ex) 모터사이클, 자동차, 개 중 해당한는 사물이 무엇인지 확률 예측
정확도를 개선하려면? 1단계 (학습 이미지를 더 많이 입력) 2단계 (노이즈를 더 많이 제거) 3단계 (더 나은 특징을 추출) 4단계 (분류 알고리즘의 하이퍼파라미터를 튜닝) 학습을 더 길게 실행

4. 이미지 입력

1) 함수로 나타낸 이미지

이미지는 2차원 영역을 정의하는 두 변수 x와 y의 함수 형태
픽셀 : 이미지를 구성하는 기본 요소.  -> 모든 이미지는 이미지 내 각 좌표의 빛의 강도를 나타내는 픽셀이 모여 만들어진다.

2) 컴퓨터가 보는 이미지

3) 컬러 이미지

컴퓨터는 색상을 어떻게 나타낼까?
회색조 이미지는 채널이 하나이므로 가가 요솟값이 픽셀의 빛의 강도를 나타내는 2차원 행렬로 표현 -> 0은 검은색, 255는 흰색
컬러 이미지는 깊이가 3차원 행렬로 표현한다.
ex) 함수에 대한 연산을 통해 이미지를 변환한 식

5. 이미지 전처리

머신러닝 프로젝트 과정에서 데이터 클리닝이나 전처리에 시간이 많이 소요된다. -> 목표가 모델이 데이터를 분석하고 처리하기 쉽게 데이터를 준비
이미지 데이터 역시 이러한 과정이 중요!
이미지 리사이징(image resizing)도 이미지 전처리에 포함 -> CNN에 이미지 데이터를 입력하려면 모든 이미지의 크기를 똑같이 맞춰야한다.
최초 수집된 데이터는 노이즈가 많고, 여러 출처를 통해 수집되기 때문에, 먼저 데이터 클리닝 및 표준화 과정을 거쳐야 한다. 그래야 모델의 정확도를 개선하고 불필요한 복잡도를 제거할 수 있다.

1) 컬러 이미지를 회색조 이미지로 변환하기

이미지에서 대상을 인식하는 목적인 경우, 회색조 이미지로도 충분, 색은 필요 X  컬러 이미지는 많은 정보를 포함해 메모리 용량을 더 차지하며 계산 복잡도도 증가
색이 중요한 경우 ex) 의료이미지에서 붉은 발진을 확인해야하는 진단 시스템,
자율주행차의 차선 감지 기능 -> 흰색 차선과 황색차선을 구분할 수 있어야한다.

6. 특징 추출

특징 추출 (feature extraction) : 컴퓨터 비전 파이프라인의 핵심 요소

1) 컴퓨터 비전에서 사용되는 특징

특징 (feature) : 이미지에서 특정 대상에만 해당하며 측정 가능한 데이터
좋은 특징 : 대상을 다른 대상과 쉽게 구분 짓게 해주는 속성
특징 벡터는 대상의 본질을 잘 나타내는 1차원 배열
ex) 바퀴라는 속성을 알려주고, 모터사이클과 개 중 무엇인가? -> 모터사이클 (바퀴는 개와 모터사이클을 분명하게 구분 지어주는 강력한 특징)
바퀴라는 속성을 알려주고, 모터사이클과 자전거 중 무엇인가? -> 답하기 어려움. (거울이나 번호판, 페달과 같은 특징이 더 필요함.)

2) 좋은 특징이란 무엇인가

그레이하운드와 래브라도 리트리버를 구분하는 분류기
ex) 유용한 특징 - 키
ex) 유용하지 않은 특징 - 눈 색깔
사물 인식에서 유용한 특징의 특성
좋은 특징의 특성
다른 것과 구별된다.
추적과 비교가 쉽다.
배율, 밝기, 각도가 달라도 일관적이다.
노이즈가 많은은 이미지 또는 대상의 일부만 찍힌 이미지에서도 관찰 가능하다.

3) 특징 추출하기

1.
특징 추출하기(자동 추출과 수동 추출)
사람이 직접 추출한 특징을 사용하는 기존 머신러닝 기존 머신러닝 기법은 시간 소요가 큼. 사람이 선택한 특징을 SVM, AdaBoost인 분류기에 입력해 예측 결과를 얻음.
사람이 수동으로 선택한 특징
기울기 방향성 히스토그램
하르 캐스케이드
크기 불변 특징 변환
고속 강인한 특징 추출
자동으로 추출된 특징을 사용하는 딥러닝 신경망이 자동으로 특징을 추출해 뉴런 간의 연결에 부여된 가중치를 통해 출력에 미지는 가가 특징의 중요도를 학습 -> 원래의 이미지를 신경망에 입력해 각 층을 통과시켜 학습시킨다. 그러면, 신경망은 패턴을 식별하고 특징을 만든다. -> 특징 추출과 분류를 모두 학습
특징을 사용하는 이유 입력 이미에는 분류와 무관한 정보가 많다. 따라서 전처리 후 먼저 분류에 중요한 정보만 남겨 단순화시키고, 불필요한 정보는 뺀다. 복잡하고 많은 양의 데이터를 이미지의 중요한 일부분이나 색상을 추출하는 방법으로 소수의 특징을 기반으로 간략화하여 분류하는 것이 훨씬 쉽고 빠르다.

7. 분류 학습 알고리즘

지금까지 한 내용
입력 이미지 : 이미지를 함수로 나타내는 방법과 컴퓨터가 본 회색조 이미지는 2차원 행렬, 컬러 이미지는 3차원 행렬 형태라는 것을 배웠다.
이미지 전처리 : 데이터셋의 데이터를 머신러닝 알고리즘에 입력할 수 있도록 준비하는 몇가지 기법을 배웠다.
특징 추출 : 이미지를 변환해서 이미지에 찍힌 대상을 표현하는 특징 벡터로 만들었다.
이제 특징 벡터를 분류기에 입력해서 그 이미지가 속하는 레이블('모터사이클' 또는 '모테사이클이 아님')을 출력할 차례
분류 : SVM (고전적 머신러닝 알고리즘)이나 CNN (딥러닝 알고리즘) -> SVM으로 결과를 얻을 수 있음. 대부분의 이미지를 분류하고 처리하는 복잡한 문제의 경우는 CNN을 사용
신경망이 특징을 자동으로 추출하며 동시에 예측한 레이블을 출력하는 분류기 역할까지 할 수 있다.
신경망은 입력한 이미지가 신경망의 층을 통과하는 과정을 통해 특징을 학습한다.
신경망의 층수가 깊을(많을)수록 데이터셋에서 더 많은 특징을 학습할 수 있다 -> 딥러닝 유래
신경망의 마지막 층이 예측 결과 레이블을 출력하는 분류기 역할

8. 마치며

사람의 시각 시스템과 컴퓨터의 비전 시스템은 모두 감지 장치와 해석 장치로 구성된다.
해석 과정은 데이터 입력, 데이터 전처리, 특징 추출, 모델 생성으로 구성된다.
이미지를 x와 y의 함수 형태로 나타낼 수 있다. 컴퓨터는 픽셀값의 행렬 형태로 이미지를 이해한다. 회색조 이미지는 채널 1개, 컬러 이미지는 채널 3개다.
이미지 처리 기법은 데이터셋과 해결하려는 문제의 종류에 따라 달라진다. 상황에 맞춰 컬러 이미지를 회색조로 변환하거나, 신경망 입력 크기에 맞게 이미지 크기를 조정하거나, 데이터를 강화하는 방법이 사용된다.
특징은 이미지에 실린 대상을 분류하기 위해 사용하는 속성이다. 고전적인 머신러닝 알고리즘에는 다양한 특징 추출 기법이 쓰인다.