인공지능 10

[PyTorch]PyTorch 기초

개요PyTorch는 파이썬의 머신러닝 라이브러리이다. 내부적으로 GPU 사용이 가능하기에 속도가 빠르다.PyTorch는 다음의 핵심적인 요소들로 구성된다.tensor : numpy의 ndarray같은 n차원 데이터module : 인공지능 모델의 한 계층(한 개 이상의 레이어가 겹쳐진)을 나타내는 존재, module 하나를 곧 모델로 볼 수도 있으며 module을 모델 속 한 레이어로 쓸 수도 있다. 즉 모듈은 계층적으로 쌓일 수 있다. loss function : 모델로 계산한 결과와 실제 정답 라벨을 입력 시 loss를 리턴하는 함수optimizer: 모델에서 학습시켜나가야하는 파라미터를 관리하며 편미분값등을 참조하여 어떻게 학습시킬지를 정의하고 실제로 학습시키는 역할을 하는 객체 DevicePyTor..

[컴퓨터비전개론][9장]Camera

개요 이번 시간엔 카메라가 어떻게 작동하는지와 3차원 좌표가 2차원 좌표에 투영되는 변환을 살펴보자. 그래픽스에 비해 깊이결과를 고려하지않고 xy결과도 주어진 깊이 d 투영창에 대한 시야 공간 상 좌표로의 변환이기에 훨씬 간단하게 표현된다. 그래픽스는 해당 좌표를 주어진 시야각에 대해 ndc로 만들어야 하고 깊이 결과도 만들어야 했기에 훨씬 복잡했다. 이번장은 투영을 포함한 대부분 내용이 그래픽스에서 다뤘기에 생략하고 간단히 넘어가겠다. 카메라 카메라는 간단히 말하면 다음과 같이 작동된다. 중간에 한점만 구멍이 뚫린 가림막으로 인해 외부의 반사된 빛들이 필름의 대칭된 부분에 투사된다. 여기서 가림막 대신 볼록렌즈를 사용하면 같은 효과를 내면서도 빛을 더 많이 모아 성능이 좋아진다. 투영 (x,y,z)의 ..

[컴퓨터비전개론][8장]RANSAC

개요 이전 시간에 특징점 쌍들의 위치를 변화시켰을때 오차의 총합이 가장 적은 변환행렬을 구했다. 하지만 여기서 특징점 쌍들중 잘못 매칭되어 정상 변환과 크게 벗어나는 쌍들이 있을 수 있다. 이런 쌍들은 최종 변환 행렬의 정확도를 떨어트린다. 정상적으로 매칭되어 정상 범주의 변환을 기대하는 특징점 쌍들을 inliers 아닌 쌍들을 outliers라고 한다. RANSAC은 특징점 쌍들중 outliers를 쳐내고 inliers만 남기는 알고리즘 중 하나이다. RANSAC RANSAC은 다음 단계로 처리된다. 1. 샘플 쌍 개수를 정한다. 보통 사용할 변환 행렬을 정의할 수 있는 최소 쌍 개수로 정한다. (이동행렬이면 1개, 아핀이면 3개, homograph면 4개) 2. 전체 특징점 쌍중 샘플 쌍 개수만큼 랜..

[컴퓨터비전개론][7장]Image alignment

개요 이제 두 이미지에서 각각 특징점을 추출하고 매칭을 시켰다고하자. 여기서 우리는 매칭된 각 특징점 쌍들의 집합을 분석하여 이미지에 최종적으로 적용할 변환행렬을 구해내야한다. 이동 변환 먼저 단순히 이동 변환으로만 변환행렬을 정의한다고 해보자. 변환행렬은 x이동,y이동 두개의 매개 변수로 정의될 수 있다. 이는 간단히 다음과 같이 구할 수 있다. 각 특징점 쌍들의 x,y위치 차이를 평균낸다. 그 위치 차이만큼 이동하는 행렬이 최종 변환 행렬이다. 하지만 여기서 그치지 않고 이를 선형 회귀의 관점에서 구해보자. 구하고자하는 변환 행렬의 이동량 x,y를 각각 tx,ty라 해보자. 이때 한 이미지의 특징점들의 x+tx,y+ty는 다른 이미지의 각 특징점 x`,y`과 최대한 근접해야 한다. 각 특징점 쌍에 대..

[컴퓨터비전개론][6장]Transformations

개요 저번 시간에 feature descriptor을 통해 특징점끼리 매칭을 시켜보았다. 이젠 이러한 매칭된 특징점들을 이용하여 이미지를 합쳐야하는데 여기서 사용하는 이미지 Transformations를 알아보자. 이미지 와핑 이미지 필터링이 이미지의 값들을 바꾸는 것이었다면 이미지 와핑은 이미지 함수의 도메인, 즉 픽셀 범위를 조정하는 처리이다. 즉 이미지의 트랜스폼이나 형태를 바꾸는 행위이다. 일단 기본적인 이동, 회전, 스케일은 그래픽스의 트랜스폼과 유사하다. 2차원이동으로 각픽셀에 대해 변환행렬을 적용하면 된다. (그래픽스에서는 주로 도형의 정점들에 트랜스폼을 처리하지만 여기선 각 픽셀에 바로 적용하여 새 이미지를 만들때 사용하는듯 하다. 분야에 따른 적용방식 차이인듯하다. 어찌되었든 근본적으론 ..

[컴퓨터비전개론][5장]feature descriptor

개요 저번 시간에 이미지의 특징점을 찾아내었다. 이번에는 이렇게 찾아낸 특징점을 다른 이미지의 동일한 특징점과 매칭시키기 위해 특징점의 지역적인 고유한 특성을 추출하고 비교하는법을 배워보겠다. 변형 같은 공간의 같은 물체라 하더라도 찍은 각도나 시간에 따라 투영 형태와 색상이 다를 수 있다. 이러한 점때문에 우리가 추출할 특징점의 특성은 다음의 변형들에 크게 영향받지 않아야한다. 1. 크기 2. 회전 3. 위치 4. 색상 이러한 변형들을 견뎌낼 수 있는 특성을 추출해보자. MOPS (Multiscale Oriented PatcheS descriptor) 우리는 이러한 특성으로 해당 점의 주변 사각형이 이루는 그림을 그 특성으로 사용할 것이다. 회전 극복 우선 해당 특징점에서 H의 큰 고유값에 대한 고유 ..

[컴퓨터비전개론][4장]feature detection

개요 이미지에는 여러 사물같은 오브젝트들이 존재한다. 컴퓨터비전에서 우리는 이러한 이미지 속 오브젝트들을 구분해내고 싶은데 이럴때 유용하게 사용할 수 있는 것이 특징점이다. 특징점은 쉽게 말해 이미지에서 특징을 잡아 구분해내기 쉬운 특정 오브젝트의 한 점이다. 특이점은 자신을 식별할 수 있는 데이터를 벡터형태로 가지게된다.특이점의 조건은 다음 같은 것들이 있다.1. 한 실체점에 대해 유니크한 값을 가져 식별할 수 있어야한다.2. 한 이미지에서 많은 특이점을 추출할 수 있어야한다.3. 이미지의 색변화나 왜곡에서도 식별할 수 있어야한다.4. 추출 성능이 좋아야한다.대표적인 특이점으로 코너등이 있으며 이를 이용하여 오브젝트의 한 점을 구분해낼 수 있다. 이번장에서는 이러한 특징점, 그중 대표적인 코너를 추출해..

[컴퓨터비전개론][3장]이미지 resize

개요 컴퓨터 비전에서는 주어진 이미지를 크게 만들거나 작게 만들어야하는 순간들이 있다. 같은 물체임에도 거리가 달라 다른 크기로 보이는 물체들의 크기를 맞추는 등이 그 예시이다. 이때 정보의 손실을 최소화하면서 축소, 확대, 복구등을 하는 법을 배워보자. 이미지 축소 우선 이미지의 축소를 생각해보자. 이미지를 가로세로 크기를 각각 1/2씩 줄인다고 할때 가장 단순한 방법은 4개의 픽셀중 하나씩 추출하여 축소하는 방식이다. 하지만 이는 나머지 세 픽셀이 완전 소실되어 오브젝트의 정보가 소실될 위험이 크다. 이러한 해상도의 부족으로 인해 일어나는 왜곡을 앨리어싱이라고 한다. 참고로 이러한 공간적인 앨리어싱도 존재하지만 프레임의 부족으로 실제 현상과 왜곡이 일어나는 시간적 앨리어싱도 존재한다. 흐린 후 축소 ..

[컴퓨터비전개론][2장]edge detection

개요 edge detection은 말그대로 이미지 요소들의 테두리를 추출하는것이다. 컴퓨터 비전에서 물체의 형태를 파악하는데 있어 edge detection은 유용하다. 우리는 이미지의 픽셀간 변화량을 토대로 이웃에 비해 급격히 변하는 부분을 테두리로 추출하는 기법을 주로 사용할 것이다. 기울기 이미지 우리는 우선 각 픽셀의 기울기를 담은 x축, y축 기울기 이미지를 각각 만들어 볼 것이다. x축 기울기 이미지, y축 기울기 이미지는 각 픽셀에 원본 이미지의 해당 픽셀 부분이 가지는 x축 또는 y축으로의 기울기를 가진 이미지라고 볼 수 있다. 즉 이미지를 함수로 봤을때의 편미분값을 가진 셈인데 우린 이웃한 픽셀간의 값 차이를 기울기로 보는 근사 미분을 사용할 것이다. x축 기울기 이미지 원본 이미지에 다..

[컴퓨터비전개론][1장]이미지 필터링

개요 이미지 필터링은 주어진 이미지에 일련의 연산을 거쳐 새 이미지를 얻어내는 것을 말한다. 컴퓨터 비전에서는 주로 이미지로부터 정보를 얻기전 전처리를 위해 이미지 필터링을 사용한다. 참고로 머신러닝에서도 이미지 학습전 전처리용도로 사용된다. 이미지를 바라보는 관점 컴퓨터 과학에서는 이미지를 다음 두가지 관점으로 볼 수 있다. 1. 비트 행렬 2. x,y좌표 입력시 컬러값을 주는 함수 2의 관점은 각 픽셀값이 연속적이라고 생각한다면(선형적으로든 어떤 방식으로든) 기울기같은 여러 유용한 관점도 활용 할 수 있게 된다. 2의 관점은 f(x,y),g(x,y)등으로 표현할 수 있다. 이에 대한 여러 활용은 다음과 같다. g(x,y) = f(x,y) + 20 =>g는 f보다 20 밝은 이미지 g(x,y) = f(..