카테고리 없음

pattern recognition

팅탱팅탱 2023. 10. 20. 19:16

목표1: 사람의 시각에 맞먹는 인공 시각을 만든다.

목표2: 한정된 범위에서 특정한 임무를 달성하는 인공 시각을 만든다.

 

목표 1로의 접근:

사람 시각 원리 밝혀내서 컴퓨터로 모방

지식표현, 학습, 추론, 창작 같은 인공지능이 필수

하지만, 다양한 변형이 발생해서 어려움(기하학적 변환, 광도변환)

예를들어 우리는 움직이면서 시야가 광도나 각도가 변할때 다 인지하면서 판단하는데 계속

그러면 광도나 기하학적으로 변하잖아? 그런거임.

 

목표 2로의 접근:

특정 상황에서 특정 임무를 수행하는 시스템 구축

성공한 시스템은 많은 응용 현장에서 쓰고있음

컴퓨터 비전이 사람보다 뛰어난 경우는?:엔진 실린더 정밀 측정, 칩 검사

하지만 여전히 이런거말고는 다양한 변환으로인한 문제아서 어려움

 

계층적 처리

영상 > 전처리 > 특징 추출 > 해석 > 고급 묘사

여기서 전처리 > 특징추출이 저급비전

해석이 고급비전

근데 저 고급이라고해서 어려운 정도가아니라 저급이 더 어려움 마치 파이썬보다 c가 더 어렵듯이 ㅎㅎ..

 

전처리: 주로 영상 처리

특징 추출: 에지, 선분, 영역, 텍스처, 지역 특징등을 검출하고 특징 벡터 추출

해석: 응용에 따라 다양한 형태

 

문제해결도구:

-자료구조와 알고리즘(배열,트리,그래프,등등)

-수학(선형대수, 미적분학,확통)

-기계학습

 

컴퓨터 비전 시스템 설계 과정: 문제 이해 > 데베 수집 > 알고리즘 설계,구현 > 성능 평가

-문제이해: 직관적이고 철저한 이해 중요(합리적 제약 조건 수립 필수: 눈이 다보이게 얼굴을 가까히 대던가)

-데이터 베이스 수집: 질적,양적으로 우수해야 고성능 시스템 제작 가능

데이터 베이스 = 학습 집합 + 테스트 집합

수집 방법: 직접 수집(많은 비용 들지만 개발자에게 자산), 인터넷에서 다운(고품질 데이터 풍부)

 

-알고리즘 설계와 구현:

선택의 중요성과 어려움: 새로운 알고리즘 개발 or 기존 알고리즘 중 주어진 문제에 적합한 것 선택

선택 방법: 데베를 이용하여 성능 실험 해보기

 

- 성능 평가

인식 성능 측정: 부류가 심한 불균형일때 부적절

(예시, 칩 검사에서 불량률이 0.1퍼센트라면 임의 짐작 분류기의 정인식률은 99.9퍼센트)

혼동 행렬: 오류 경향을 세밀하게 분석하는데 사용

총 15개의 얼굴중 12개를 옳게 검출 (참긍정 n11=12), 세개의 얼굴 못찾음(거짓부정 n12=3), 

얼굴 아닌 곳을 얼굴로 검출한곳 두개(거짓 긍정 n21=2), 따라서 정확률은 12/14 재현율 12/15

측정은 24/29

 

영상처리(컴퓨터 비전의 전처리 과정): 주어진 목적을 달성하기 위해 원래 영상을 새로운 영상으로 변환

 

사람의 눈을 카메라로 비유한다면 수정체는 렌즈, 망막은 필름(ccd)에 해당

 

2차원 영상공간을 m x n으로 샘플링한다면

이렇게 되는데 이건 12 x 12로 샘플링 한것임.

그리고 명암을 L단계로 양자화 한것임.(명암은 [0,L-1]사이에 분포)

 

영상좌표계

화소의 위치는 x=(j,i) 혹은 x=(y,x)로 표기

영상은 f(x) 혹은 f(j,i)로 표기

히스토그램: [0,L-1]사이의 명암값이 각각 영상에 몇번 나타나는지 표시

히스토그램 h, 정규화 히스토그램

 

히스토그램 용도

- 영상의 특정 파악

- 히스토그램 평활화: 히스토그램을 평평하게 만들어 주는 연산(명암의 동적 범위를 확장하여 품질 향상시켜줌)

누적 히스토그램 c(.)를 매핑함수로 사용

히스토그램의 매핑표를 봐보자

이렇게 매핑표를 보면 처음은 히스토그램의 입력값이고 두번째 h라인은 정규화된 값 c라인은 누적값 

그리고 c x 7(L-1) 은 L-1의 값인 7을 곱해준 값이다 그리고 마지막에 출력될때는 반올림하여 출력한다.

이때 반올림할때는 0.5이상은 하나 위로 업 시켜서 반올림.

 

이렇게 매핑표를 적용시킨 결과를 보면 원래 전영상에서는 동적 범위가 [2,6] 이였는데 히스토그램 평활화를 하고난 후에는

영상의 동적 범위가 [1,7] 로 보다 넓어진걸 확인할 수가 있다(품질 향상)

 

그치만 이렇게 히스토그램을 평활화해서 시각적 느낌이 나빠질 수도 있다.

따라서 영상처리 연산은 분별력을 가지고 활용 여부를 결정해야한다.

 

히스토그램 역투영: 히스토그램을 매핑함수로 사용하여 화소값 -> 신뢰도 값으로 변환

예를들어 얼굴 검출을 보면 모델 얼굴에서 구한 히스토그램 hm은 화소의 컬러 값을 얼굴에 해당하는 신뢰도 값으로

변환해준다.

실제로는 비율 히스토그램 hr을 사용한다.

히스토그램 역투영 결과

얼굴 영역은 높은 신뢰도값, 손 영역도 높은 값을 가진걸 보임

한계: 비슷한 색 분포를 갖는 다른 물체를 구별 못함, 검출 대상이 여러 색 분포를 갖는 경우 오류 가능성이있음.

장점: 배경을 조정할 수 있는 상황에 적합함.(이동과 회전에 불변, 가림에 강인함)

 

이진화: 명암 영상을 흑과 백만 가진 이진 영상으로 변환

임계값 방법: 두 봉우리 사이의 계곡을 임계값 T로 결정.(자연 영상에는 계곡 지점 결정이 어려움)

 

오츄 알고리즘: 이진화 했을때 흑그룹과 백그룹의 각각이 균일해야 좋다는 원리에 근거

- 균일함의 정도인 균일성은 분산으로 측정(분산이 낮을수록 균일성 높음)

분산의 가중치 합을 목적함수로 이용한 최적화 알고리즘

t-1번째의 계산결과를 t번째에 활용하여 빠르게 계산

 

화소의 모양과 연결성

화소는 어떤 모양인지 한번 생각해보자

화소의 연결성은?

 

영상처리의 세가지 기본연산

1. 점연산:

오직 자신의 명암값에 따라 새로운 값을 결정

점연산을 식으로 쓴다면? 대부분은 k=1(즉 한장의 영상을 변환)

선형 연산:

비선형 연산(감마수정(모니터나 프린터 색상 조절에 사용)):

디졸브:

 

2. 영역 연산: 이웃 화소의 명암값에 따라 새로운 값 결정

상관:

원시적인 매칭 연산(물체를 윈도우 형태로 표현하고 물체를 검출)

보면 앞에서부터 화소 3개씩 순차적으로 떼어네어서 (하나씩 옆칸으로 밀기)밑에 윈도우랑 하나씩 곱해서 다 더한값을 밑에다가 출력

위에 예시에서는 최대값 29를 갖는 위치 6에서 물체가 검출됨.

 

컨볼루션:

윈도우를 뒤집은 후 상관 적용(아까 적용한 윈도우를 뒤집어서 상관처럼 적용함)

임펄스 반응

 

2차원

이것도 마찬가지로 아까 상관에서처럼 한픽셀씩 옮겨가면서 상관연산을 적용해주는데 차이점은 2차원이라는거

마찬가지로 컨볼루션은 윈도우를 반대로한것

수식으로 쓰면?

컨볼루션 예제

컨볼루션은 선형연산

- 박스와 가우시안은 스무딩 효과

- 샤프닝은 명암 대비 강조 효과

- 수평 에지와 수직 에지는 에지 검출 효과

 

비선형 연산

메디안 필터:

솔트페퍼 잡음에 효과적임(솔트 페퍼 잡음이 영상에 막 솔트페퍼 뿌려놓은거마냥 이상한 점같은거 생기는거)

메디안은 가우시안에 비해 에지보존 효과가 뛰어남

 

3. 기하 연산: 일정한 기하 연산으로 결정된 화소의 명암값에 따라 새로운 값 결정

동차좌표와 동차행렬

동차좌표:

동차 행렬:

 

동차행렬을 이용한 기하변환

예를들어서 어떤 점을 y방향으로 3, x방향으로 2만큼 이동시키는 동차행렬 H는 다음과같다.

밑에 식은 동차좌표 x와 동차행렬 H를 이용한 기하변환임.

풀어서 쓰면,

다음 그림의 삼각형을 y방향으로 3, x방향으로 2만큼 이동시킨후 30도 회전시켜보자.

먼저 이동 변환을 구하려면 T(3,2)가 필요하다. 꼭지점 x1=(3,5)를 동차좌표로 확장하여 x'1=(3,5,1)로 만들고 

아까한 이동연산을 적용한다.

이렇게 연산의 결과로 x'1=(6,7,1)을 얻었는데 마지막 요소를 제거하여 2차원 좌표로 바꾸면 x'1=(6,7)이 된다.

나머지 두점 x2 와 x3도 같은 과정으로 변환한후 이동한 삼각형을 그려보면 가운데 회색 삼각형과 같다.

이제 이동을 했으니 삼각형을 30도 회전 시켜야한다.

회전을 계산하는데 필요한 행렬인 R(30도)를 꼭지점 x'1에 적용하면 다음과같은 결과를 얻는다.

x''1=(8.6962,3.0622,1)의 결과를 얻는다. 나머지 두점도 계산하고 결과를 그려보면 맨 아래에 진한 회색의

삼각형의 결과가 나온다.

 

그렇다면 왜 동차좌표를 사용할까?

- 복합 변환을 이용한 계산 효율

예) 이동 후 회전은 두번의 행렬곱셈이지만 복합 변환을 이용하면 한번의 곱셈임

아까 변환에 필요한 행렬 T(3,2)와 R(30도)를 곱하면 다음과 같다.

이제 이 행렬을 원래 삼각형의 세개의 꼭지점에 각각 대입하면 최종 변환된 삼각형을 얻을 수 있다.

꼭지점 x1=(3,5)에 적용한 결과는 다음과 같다.(행렬 곱을 두번한 것과 결과가 동일함)

임의의 점 (cx,cy)를 중심으로 회전한다면 이 연산을 적용하면됨.

영상에 적용할때 전방변환은 심한 에일리어싱 현상이 발생하여

후방변환을 이용한 안티 에일리어싱 현상을 일으킴.

 

보간에 의한 안티 에일리어싱:

실수 좌표를 반올림하여 정수로 변환하는 과정에서 에일리어싱 발생함.

주위 화소값을 이용한 보간으로 안티 에일리어싱 진행

-양선형 보간

이런식으로 좀 더 가까운 곳에 있는 화소와 좀 먼곳의 있는 화소의 거리비율을 통해서 값을

얼마나 참조할것인지 비율로 결정하는것이 양선형 보간임.

 

초근접 이웃, 양선형 보간, 양3차보간의 비교

이렇게 초근접 이웃으로 진행하게되면 회전을 하였을때 픽셀이 깨져보일수가있음.

 

다해상도:

해상도를 줄이거나 늘리는 연산

응용: 멀티미디어 장치에 디스플레이, 물체 크기 변환에 강인한 인식

업샘플링과 다운 샘플링

피라미드 방법: 샘플링 비율 0.5로 다운 샘플링 반복

피라미드 구축 연산을 식으로 쓰면,

에일리어싱 발생(화소에 따라 100퍼센트 또는 0퍼센트 만큼 공헌)

 

Burt&Adelson 방법:

모든 화소가 50퍼센트씩 공헌

 

 

모폴로지: 원래 생물학에서 생물의 모양 변화를 표현하는 기법

수학적 모폴로지: 컴퓨터 비전에서 패턴을 원하는 형태로 변환하는 기법

 

-이진 모폴로지:

몇가지 대표적인 구조 요

팽창, 침식, 열기, 닫기 연산

 

컬러

RGB모델:

길이가 1인 정육면체로 색을 표현함.

rgb모델로 영상 표현

 

HSI 모델:

이중 콘으로 색 표현

가장 단순한 방법은 세 체널을 독립적으로 처리

하지만 독립적으로 적용하면 적절하지 않은 경우: 히스토그램 평활화

 

에지의 유용성

- 물체의 경계를 표시해줌

- 매칭에 용이한 선분이나 곡선으로 변환가능

 

에지의 한계

실종된 에지(거짓 부정), 거짓 에지(거짓 긍정) 발생

이 오류들을 어떻게 최소화 할것인가?

 

에지검출의 원리

- 물체 내부나 배경은 변화가 없거나 작은 반면, 물체 경계는 변화가 큼

- 이 원리에 따라 에지 검출 알고리즘은 명암, 컬러, 또는 텍스처의 변화량을 측정, 변화량이 큰곳을 에지로 검출함

 

디지털 영상의 미분

1차원:

연속 공간에서의 미분

디지털 공간에서 미분

이에 해당하는 마스크  -1,1 <- 에지 연산자

디지털 영상에서 미분할때 1차미분은 이 -1,1 에지 연산자로 컨볼루션 하는거처럼 해주면됌

정리

1차 미분 마스크: -1,1

계단 에지와 램프 에지

 

자연 영상에서는 주로 램프 에지가 나타남

계단에지는 급격하게 바뀔때 관찰되고 램프에지는 서서히 변할때 관찰

2차 도함수를 구할땐 1차도함수를 구한것에 1,-2,1마스크를 컨볼루션 하는거처럼 해주면됌

정리:

1차 도함수 구하는 마스크: -1,1

2차 도함수를 구하는 마스크: 1,-2,1

 

렘프에지에서 미분을 하게되면

이런식으로 결과가 나오게 되는데 우리는 여기서 에지를 검출할때

1차 미분에서 봉우리 또는 2차 미분에서 영교차를 찾음

두꺼운 에지에서 위치 찾기 적용

 

현실에서는 잡음때문에 스무딩이 필요함.

에지 검출 연산

 

여기있는게 에지 연산자임

소벨 마스크를 이용한 에지 검출(소벨 마스크를 이용한 에지 검출이니 위에있는 에지 연산자중에 소벨을 사용)

 

여기를 보자 저 화살표들은 신경쓰지말고 한번 그레이디언트와 에지 강도, 에지 방향을 계산해보자

우선 그레이디언트:

위에있는 소벨 마스크를 사용하여 y와 x에 대하여 각각의 그레이디언트를 구해주자

우리가 구해야할건 (5,3)에있는 화소에 대해서 구하는거니까 그 화소를 중심으로

my에지 연산자는 y 그레이디언트를 구할때 쓰고

mx에지 연산자는 x 그레이디언트를 구할때 써보자

그렇다면 이렇게 결과가 (-4,2)로 나온다.

그럼 이제 에지 강도를 구해보자 에지 강도를 구하는 식은 위에 나와있드시

이거임 그럼 우리가 구한 값들을 넣어서 계산해주면

이렇게 값이 나옴

다음은 그레이디언트 방향. 그레이디언트 방향을 구하는 식은 위에 나온대로

이렇게임.

그럼 우리가 구한 값들을 대입해서 계산해주면

이렇게 나옴.

에지 방향은 그레이디언트 방향과 수직이니 26.6도임

그럼 에지 방향을 위에있는 양자화한 그림에 대입하면 1이나옴.

양자화한 그림:

빨간색이 그레이디언트 방향이고 그와 수직인 파란색인 화살표가 에지방향임 에지 방향을 잘 보면 양자화했을때 1로나옴.

여기서 26.6도라고해서 우리가 보는기준이아니라 화살표들 기준임.

 

가우시안을 사용하는 이유?

미분은 잡음을 증폭시키므로 스무딩 적용이 중요함.

미분에 의한 잡음 증폭

-세타를 조절하여 다중 스케일 효과, 에지의 세밀함 조절 가능

가우시안:

저기있는 세타로 스케일을 조절함.

 

LOG필터 

Marr-Hildreth 에지 검출 알고리즘

- 2차미분에서 영교차 검출

라플라시안 필터:

log필터: 입력영상에 가우시안 G를 적용한 후, 라플라시안을 다시 적용하는 두단계의 비효율성

- 계산시간 과다, 이산화에 따른 오류 누적

 

예제로 한번 알아보자

여기 간단한 8x8 영상이있다 여기에

세타에 따른 log 연산자

세타 = 0.5 의 3x3 크기의 log 연산자를 적용하여 얻은 영상이 밑에있는것이다.

여기 동그라미로 표시된곳의 화소의 영교차 여부를 따져보자

마주보는 네개의 이웃 쌍중에는 남-북, 북서 - 남동의 두개 쌍의 부호가 다르자 이들을 구성하는 화소의

값 차이는 각각 7.6442와 5.2379이다. 만일 임계값 T=1.0으로 설정했다면 둘다 T를 넘으므로 이 화소는 영교차 점이된다.

밑에있는 그림은 T=1.0으로 설정하여 구한 에지 영상이다.

 

Canny 에지(에지 검출을 최적화 문제로 해결)

세가지 기준

- 최소 오류율: 거짓 긍정과 거짓 부정이 최소(즉 없는 에지가 생성되거나, 에지를 못찾는 경우를 최소로)

- 위치 정확도: 검출된 에지는 실제 에지의 위치와 가급적 가까워야한다.

- 에지 두께: 실제 에지에 해당하는 곳에는 한 두께의 에지만 생성해야함.

 

캐니에지 검출 알고리즘

비최대 억제: 이웃 두 화소보다 에지 강도가 크지 않으면 억제됨

두개의 임계값 Thigh와 Tlow를 사용하여 거짓 긍정 줄임

에지 추적은 Thigh를 넘는 화소에서 시작, 추적 도중에는 Tlow 적용

 

에지의 연결과 표현

이렇게 보면 위에있는 좌표를 잘보면 에지열은 연결되어있는 좌표들을 순서대로 표현하고있고

체인코드는 연결된 좌표들의 방향을 표시하고있음.

 

세선화: 2~3두께 에지를 1두께로 변환

최소 8-연결성 보장

 

SPTA 세선화(껍질을 한번 벗기는 연산)

a의 전환횟수는 2이고, b의 전환횟수는 3, c의 전환 횟수는 2이다.

 

선분 근사

두 끝점을 잇는 직선으로부터 가장 먼 점 까지의 거리 h임계값 이내가 될때까지 선분분할을 재귀적으로 반복.

두 끝점을 잇는 저 선분 보이지? 그 선분으로부터 가장 먼곳에 있는 점의 길이 h가 임계값 이내가 될때까지

선분을 계속 분할한다는 뜻임.

 

허프 변환

에지 연결 과정 없이 선분 검출(전역 연산을 이용한 지각 군집화)

영상공간 y-x를 기울기 절편 공간 b-a로 매핑

 

RANSAC: 인라이어를 찾아 어떤 모델을 적합시키는 기법

-선분 검출에 적용(모델은 직선의 방정식 y = ax+b)

 

대응점 찾기

같은 장면을 다른 시점에서 찍은 두 영상에서 대응하는 점의 쌍을 찾는 문제

파노라마, 물체인식/추적, 스테레오 등 컴퓨터 비전의 중요한 문제 해결의 난초

검출 > 기술 > 매칭 세 단계로 해결

 

무엇을 특징점으로 쓸것인가?

에지? : 에지 강도와 방향 정보만 가지므로, 매칭에 참여하기에 턱없이 부족

 

다른곳과 두드러지게 달라 풍부한 정보 추출 가능한 곳

- 에지 토막에서 곡률이 큰 지점을 코너로 검출

2000년대에 사라짐(더 좋은 대안 떠오름)

 

- 지역특징이라는 새로운 물줄기

명암 영상에서 직접 검출, 의식전환: 코너의 물리적 의미 -> 반복성

 

지역 특징: <위치,스케일,방향,특징 벡터> = ((y,x),s,o,x)로 표현

 

지역 특징이 만족해야할 특성:

반복성, 분별력, 지역성, 정확성, 적당한 양, 계산효율

이들은 길항관계임(하나가 올라가면 하나가 내려감 모든걸 충족시킬수없는 관계)

따라서 응용에 따라 적절한 특징을 선택해야함

 

인지실험

대응점을 찾기가 쉬운(좋은)점은? -> 사람에게 쉬운곳이 컴퓨터에게도 쉬움

좋은 정도를 어떻게 수량화할까? -> 여러 방향으로 밝기 변화가 나타나는 곳일수록 높은 점수

a만큼 뚜렷한 밝기변화가 나타나는 곳이 없음

 

모라벡 알고리즘

제곱차의 합으로 밝기 변화 측정

제곱차 합 계산

현재 이 그림은 삼각형을 가진 12 x 12 영상임. 현재 조사하고 있는점은 (5,3)에 위치한 b이고, 마스크는 모든

값이 1인 3x3크기의 박스형. 이때 오른쪽으로 한 화소만큼 이동시킨 s(0,1)을 계산해보면 다음과 같이 4라는 값을

얻음.

 

이 맵을 관잘해보면 

a와 같은 코너에서는 모든 방향으로 변화가 심함.

b와 같은 에지에서는 에지 방향으로 변화 적지만, 에지에 수직 방향으로 변화 심함.

c와 같은 곳은 모든 방향으로 변화 적음.

즉, a에 높은값 c는 아주 낮은 값 b는 그 사이 값을 부여하는 함수를 만들면 됨.

 

특징 가능성 값 C

C = min(S(0,1), S(0,-1), S(1,0), S(-1,0))

모라벡 함수의 한계:

한 화소만큼 이동하여 네 방향만봄, 잡음에 대한 대처방안 없음

 

해리스 코너: 가중치 제곱차의 합을 이용한 잡음 대처