공부/영상 처리

영상처리 - 내용 정리 - 1

이건나이스가아니야 2024. 3. 21. 04:18

영상

- Picture, Image를 말한다.

- 과거에 아날로그(Analog) 형태로 이루어져 있었으며, 현대로 넘어오면서 디지털로 대체되었다. 그래도 아날로그는 현재 사용되고 있다.

 

컴퓨터 비전(Computer Vision)

- 시각 데이터를 처리하는 분야로 기본적으로 영상 처리(Image Processing)와 패턴 인식(Pattern Recognition)을 포함한다.

- 과제

 1) 객체 분류(Object Classification)

 2) 객체 지역화(Object Localization)

 3) 객체 탐지(Object Detection)

 4) 이미지 분할(Image Segmentation)

- 대표적으로 OpenCV라는 라이브러리가 있다.

 

디지털 신호 처리

- 아날로그 신호를 시간방향으로 샘플링하고 이를 양자화한 이진 신호를 다양한 디지털 기술들을 이용하여 처리하는 것

 

주관적인 영상 처리 목적

- 노이즈를 제거하여 깨끗한 영상을 보기 위함 ( eg: 노이즈 사진 복구)

- 어두운 사진을 선명하게 보기 위함 ( eg: X-Ray, 어둠속 촬영 )

- 영상의 특징을 분석하기 위함 ( eg: CCTV로 화재 감지 )

 

 

영상 처리 응용 분야

- 일상 생활: 고화질 영상, 보안 시스템

- 의학 분야: 초음파 영상

- 생체: 생체(얼굴/지문/홍채) 인식

- 그 외: 공장 자동화 및 검사기

 

영상처리 과정

 1) 영상 입력

 2) 전처리

 3) 특징 추출

 4) 인식 및 해석

 5) 결정

 

영상처리 기법

 1) 향상(enhancement): 대조 향상, 엣지 강조, 노이즈 제거 

 2) 복원(restoration): 노이즈 제거, 확대 

 3) 이해(understanding): 인식(사람, 손바닥, 모션, 모서리 등)

 4) 압축(compression): 데이터 줄이기

 

베버의 법칙(Weber's law)

- 감각기에서 자극의 변화를 느끼기 위해 처음 자극보다 더 큰 자극을 받아야 한다.

 

영상 파일 형식

1. 영상의 종류

 1) 단색 영상(Gray Image):  Black,White 

 2) 컬러 영상(Color Image): R,G,B 각각 명암도로 표현

2. 분류

 1) 헤더 유무

  (1) 헤더 O: 데이터의 구조 등을 헤더부에 표현하고, 이후 데이터부 존재

  (2) 헤더 X: 데이터부만 존재함. 이로 인해, 이미지를 읽을 때, 가로 세로 크기를 알아야 정상적인 이미지를 볼 수 있음

 2) 압축 유무

  (1) 압축 O: 영상을 읽을 때, 압축해제 하여 읽어야함. (JPG, GIF, PNG)

  (2) 압축 X: BMP, PBM, PGM

 3) 색 채널

  (1) Plannar 형식: 채널별로 저장 (RRR GGG BBB....)

  (2) Interleaved 형식: RGB RGB RGB RGB RGB ...

 4) 색 깊이

  - bit로 표현

  - 1bit: 흑백 영상

  - 2,4,8bit: 4,16,256색

  - 16bit: 하이컬러 65536색

  - 24bit: 트루컬러 (R,G,B 각각 8bit씩 256:256:256)

  - 32bit: 트루컬러 + 투명도(알파채널)  PNG같은 파일형식에서 지원

 

영상 처리 기술

1. 점 연산(Point Operation)

 1) 대비 확장/축소 (Contrast Stretching/Shirinking)

  - 명암을 펼치거나 좁히는 기술

  - 평활화와 유사하다고 생각하면 좋음.

  - HDR(High Dynamic Range): 밝은 곳은 더 밝게, 어두운 곳은 더 어둡게

출처: 위키피디아

 2) Clipping

  - 최대/최소와 같은 특정값 이상/이하를 범위를 제한하는 방식

 3) Thresholding

  - 특정(임계)값을 정하고 이를 기준으로 0또는 1로 이진화 하는 방식

 5) Image Negative

  - 색 반전

  - V_new = Max - V_curr

 6) 히스토그램 평활화(Histogram Equalization)

  - Contrast Stretching은 그냥 다 균등하게 펼치지만, 얘는 치우쳐진 비중에 따라 펼쳐지는 정도가 차등되는 방식이다.

  (1) 영상의 히스토그램을 구하고 누적합을 구한다.

  (2) 누적합을 픽셀 갯수로 나누어 정규화한다.

  (3) 정규화된 값을 최대 명암값과 곱하여 반올림하여 저장한다.

 

 7) 히스토그램 명세화, 정합(Histogram Specification, Histogram Matching)

  - 두 영상을 비교하여 상대적으로 같게 해주는 기술

  - 사용자가 원하는 히스토그램 분포를 갖도록 한다.

 

2. 공간 연산 ( 하... 정리하던거 업로드 안해서 다 날아감.. 이부분은 생략......  상세하게 정리했는데 열받네...)

 1) Low-Pass Filtering(LPF): 저주파 통과 필터, 마스크 합 = 1, 노이즈 제거를 위함

 - Smoothing, Blurring

 - 이러한 작업을 통해 컴퓨터가 분석하기 용이함.

 2) High-Pass Filtering(HPF): 고주파 통과 필터, 마스크 합 = 0, 엣지 등 객체를 추출하기 위함

 3) Median Filtering: 마스크의 중앙값을 사용, Mean Filter와 다르며 가루 같이 뿌려진 노이즈에 대한 제거에 효과적이다.

 4) Edge Sharpening(Edge Detector): 가장자리를 선명하게..

 (1) 1차 미분: 봉우리를 찾으면 됨. (소벨, NG)

  -기울기 0 ??

가장자리 검출 1

 (2) 2차 미분: 영교차점 찾으면 됨. (라플라시안, NL)

  - 변곡점이라 0인가??

가장자리 검출 2

 5) Zooming: 축소의 경우 버리면 된다. 확대일 경우 다양한 보간법을 사용함.

 6) Canny Edge Filter :최고의 성능을 보여주는 엣지 검출 기능

OpenCV::Canny

 

영상 특징 추출

1. Morphology Operator

- Morphology = 형태학

- 영상의 형태를 분석하고 처리하는 기법: 영상의 필요하거나 원하는 부분만 추출

2. 기본 연산

 1) 팽창(Dilation, Dilate)

  (1) 윈도우 내부의 최댓값을 중심에 대체

  (2) 객체가 커지고 배경이 작아짐

 2) 침식(Erosion, Erode)

  (1) 윈도우 내부의 최솟값을 중심에 대체

  (2) 객체가 작아지고 배경이 커짐

3. 응용 연산

 1) Opening (열림, 제거연산)

  (1) Erosion -> Dilation

  (2) 외부 테두리 제거

 2) Closing (닫힘, 생성연산)

  (1) Dilation -> Erosion

  (2) 내부 잡음 제거

 

영상 분할 (Image Segmentation)

- 영상을 객체 또는 의미있는 객체의 일부 영역 집합으로 구분

- 인간 vs 컴퓨터

 1) 인간은 다양한 정보들을 활용하여 능동적인 사고를 통해 객체를 인식하여 분할할 수 있음.(인식 -> 분할)

  - 대충 이렇게 이해함 (월리를 찾아라)

  (1) 뇌에서 월리가 어떤 형태인지 이미 이해하고 있음. (지식)

  (2) 영상을 보고

  (3) 월리가 누구인지 직관적으로 판단할 수 있다.

  (4) 월리 찾기 성공

 2) 컴퓨터는 분할 후에 객체 인식을 수행함. (분할 -> 인식)

  - 대충 이렇게 이해함 (월리를 찾아라)

   (1) 영상을 보고

   (2) 객체를 분할한다.

   (3) 분할된 객체들을 월리 이미지와 비교하여 같은지 판단한다.

   (4) 월리 찾기 성공

 note) 생각해보니 이런 부분이 인간과 다르게 이루어져서 속도가 느리고 하니 전처리에 몰빵하는 인공신경망의 아이디어가 나왔을까?

1. 기본 분할 방법

- 영역 내부의 유사성 측정(Measure of homogenity)

- 영역 간의 차이 측정 (Measure of contrast): 밝기, 색, 질감 등의 특징

2. 기법

 1) 영역 기반(Region-based Segmentation)

  (1) Region Growing(Filling) : 영역 확장 기법

   - 사전에 정해진 유사도 측정 방법을 기반으로 주변 pixels 혹은 sub-regions을 병합하여 큰영역을 형성

 2) 군집화 기반(Clustering-based Techniques)

  (1) K-means

 3) 경계 검출(Boundary/Edge Detection)

 4) Thresholding

  (1) Iterative Thresholding : 반복적인 임계화를 통한 분할

 5) Connected Component Labeling

 

 

관련 내용 

- Contrast Stretching, Shirinking( Link1, Link2, Link3)

- 영상 처리 기법 (Link)

- HPF(Link)

- LPF(Link)

- Morphology 기법 (Link)

- 영상분할(Link)

'공부 > 영상 처리' 카테고리의 다른 글

영상 처리 - 7 (OpenCV 실습1)  (0) 2024.03.20
영상처리 - 6 (영상 분할)  (0) 2024.03.19
영상처리 - 5 (특징 추출)  (0) 2024.03.19
영상처리 - 4 (영상 향상)  (0) 2024.03.19
영상처리 - 3 (BMP 포맷)  (0) 2024.03.19