매트릭스(Matrix)가 컴퓨터 비전 (Computer vision)에서 중요한 이유
포스트 난이도: HOO_Middle
# Computer vision이 빠르게 적용될 수 있었던 이유
Computerr vision (컴퓨터 비전)에 대한 역사는 의외로 오랫동안 연구와 개발이 지속적으로 이루어지고 있었다. 다만 우리가 현재 YOLO와 같이 AI (인공지능) 프로그램을 활용한 사물 인식 방법을 대중적으로 사용하기 시작한 시점은 얼마 되지 않았다. 짧은 시간에 인공지능을 활용한 컴퓨터 비전의 발전 속도가 빠르게 진행될 수 있었던 원인 중 하나는 이미 이전부터 이미지 센싱을 비롯하여 이미지를 데이터로 변환하여 어떻게 활용할 수 있을지에 대한 연구와 고민을 꾸준히 해왔기 때문이라고 본다. 그중에 대표적인 요소 중 하나가 바로 Matrix (매트릭스)이며, 이번 포스트에서는 컴퓨터 비전에 대한 공부를 하는데 있어 매트릭스와 벡터와 같은 부분이 왜 중요한 지에 대해서 이야기를 나눠보려고 한다.
# 픽셀 단위의 분석, Matrix
아마 대학원에서 해당 분야에 대한 전공자인 경우 컴퓨터 비전과 관련된 수업을 들어봤을 것이고, 학부생 중에서도 해당 분야에 관심이 있다면 선택 수업을 신청해서 들어본 경우도 있을 것이다. 이 외의 비전공자이거나 해당 관련 수업을 듣지 않았다면 당장 욜로와 같이 사물 인식이 가능한 실무 교육을 받거나 실무자로서 프로젝트에 대한 일을 수행했을 가능성이 높다. 학교와 국가마다 커리큘럼의 방식이 각기 다르지만 일반적으로 컴퓨터 비전에 대한 교육을 한다면 Vector (벡터)와 Matrix (매트릭스)에 대한 부분부터 복습하는 차원에서 설명을 하곤 한다. 처음에 수업을 듣다 보면 당장 실질적으로 개발과 상관없는 매트릭스나 벡터를 왜 다시 복습하고 배우는지에 대해서 의문이 들 수 있지만 결과적으로 정확도가 높은 결과물을 만들어내기 위해서는 이 부분에 대해서 기본적으로 확실히 알아두어야 하기 때문이다.
우리가 때론 컴퓨터 비전이라고 하면 그저 사물 인식하는 인공지능 프로그램이라고만 알고 있지만 막상 컴퓨터비전에 대해서 알아가기 시작한다면 정말 방대한 분야를 가지고 있음을 알게 된다. 현재 컴퓨터비전은 이미지를 분석하는 역할 뿐만 아니라 이미지를 바꾸어주는 역할도 담당하고 또는 이미지를 컴퓨터가 이해하고 다음에 해당되는 프로세스로 연결이 되는 과정들을 뜻한다. 한마디로 정형화된 수치가 아닌 사진, 영상과 같은 모든 이미지에 대한 분석이 들어간다면 그거 자체가 컴퓨터 비전이라는 것이다. 우리가 매일 쓰는 지문 인식도 컴퓨터 비전이다.
여기서 중요하게 봐야할 단어가 바로 "정형화"이다. 컴퓨터비전은 비정형화된 데이터를 분석해야 한다. 하지만 컴퓨터는 비정형화된 사물을 사람처럼 인식할 수 있는 능력이 아직까지는 없기 때문에 결국에는 비정형화 데이터를 정형화된 데이터로 변환하여 데이터를 분석하는 과정을 거쳐야 한다. 이때 이미지 또는 영상을 가장 기본적으로 분해하여 분석하는 것이 바로 픽셀이며, 픽셀에서도 매트릭스를 통해서 원하는 값의 데이터만을 추출하여 분석하는 과정을 거치게 된다. 아래의 Figure 1을 보면 임의로 만들어진 자료이지만 이미지가 특정 조건에 따라 값으로 나뉘어 추출이 되어 분석이 이루어진다는 걸 알 수 있다. 이처럼 이미지의 색상이라든지 원근값이라든지 또는 명암이나 특정 사물에 대한 조건에 대한 값 등의 따라서 정형화시켜 데이터를 분석하고 이해할 수 있다. 이 과정에서 우리는 매트릭스를 알아야 특정 이미지에 대해 원하는 방식으로 분석과 활용이 가능하다.
# 사람은 보이지 않지만 컴퓨터는 볼 수 있는 이유
막상 컴퓨터비전에 대해서 공부하다보면 뚝딱 라이브러리로 해서 쉽게 완성할 것처럼 보이지만 전문 영역으로 들어갈수록 배경 지식을 기반으로 한 세심한 조정 작업들이 필요하다는 걸 알게 되면 머리털이 빠지기 시작한다. 그럼에도 글쓴이가 컴퓨터 비전을 좋아하는 이유는 다른 분야에 비해서 결과를 눈으로 볼 수 있다는 재미와 착오가 없이 정확한 인식이 가능하다는 점이다. 사람의 눈은 완벽한 것처럼 보이지만 막상 우리는 시각적 정보를 원하는 대로 입맛에 맞추어서 분석을 하고 있다. 그렇기 때문에 일명 "착시"와 같은 효과가 나타난다. 예를 들어서 한국에서 맛있는 걸 실컷 먹고 온 글쓴이의 얼굴은 빵떡이지만 카메라 각도를 달리하면 그렇게 살이 찌지 않았다고 자기 합리화를 할 수가 있다. 또는 컴퓨터 비전 기술이 들어간 카메라 필터 앱을 쓴다면 손쉽게 빵떡 얼굴을 숨겨서 나타낼 수도 있다.
또는 아래의 Figure 2를 살펴보면 우리의 뇌가 받아들이는 이미지의 결과가 정확하지는 않다는 걸 알 수 있다. 아래의 그림은 착시효과에 대해서 관심있어 한다면 자주 봤을 법한 그림 중 하나이다. 마치 그림자로 하여금 색상이 달라 보이지만 막상 비교해 보면 같은 색상이라는 걸 확인할 수 있다. A와 B가 전혀 다른 색상처럼 보이지만 같은 색상으로 비교하면 같다는 걸 바로 확인이 가능하다. 이처럼 사람의 눈은 결과를 알고 있음에도 착시에 대한 효과가 지속적으로 나타나는 반면 컴퓨터비전의 경우 값으로 정형화된 데이터를 분석하기 때문에 사람의 눈처럼 부정확한 정보를 산출해내지 않는다. 이 말인즉슨, 우리가 영상이나 이미지에서 파악할 수 없는 부분에 대해서 컴퓨터는 손쉽게 분석할 수 있다는 것이다. 예를 들어서 블랙박스에 사람의 눈으로는 어두워서 잘 보이지 않는 물체도 컴퓨터 비전을 통해서 해당 부분의 픽셀 명암을 조정한다면 컴퓨터는 쉽게 물체에 대한 인식이 가능하다. 또는 흐릿하게 나온 물체도 컴퓨터 비전을 통해서 데이터 변환이 이루어진다면 뚜렷하게 보이는 이미지로 산출해 낼 수가 있다.
# Singular Value Decomposition (SVD)로 결과가 달라지는 이유
컴퓨터 비전에 대해서 매트릭스가 어떻게 활용되는 지에 대해서 알지만 왜 공부해야 하는지에 대해서 모르는 경우가 많다. 마치 요리를 하는 데 있어 요리 재료들을 전부 알고 있을 필요는 없지 않냐고 생각할 수도 있다. 하지만 다른 관점에서 살펴보면 컴퓨터 비전을 하는 데 있어 매트릭스를 다룰 수 없다는 것은 요리를 하는 데 있어 소금인지 설탕인지 구분을 못하고 있는 상황과 같다고 볼 수 있다. 코드를 작성하고 컴퓨터 비전 라이브러리를 활용해서 결과를 만들어내는 건 중요하지 않다. 컴퓨터쟁이들 사이에서 있는 속담 중 하나가 바로 "1살부터 90살 노인도 똑같은 프로그램을 만들어낼 수 있다"이다. 여기서 말하고자 하는 방법은 프로그램을 만드는 데 있어 누구나 만들 수는 있지만 효율성과 품질 자체가 완전히 다르다는 것이다. 컴퓨터 비전 프로그램도 마찬가지이다. 라이브러리를 통해서 이제는 쉽게 개발이 가능하지만 결과적으로 정확도가 높은 특정 프로그램을 만들어내기 위해서는 개발자 스스로가 이해하고 해결해 나갈 수 있어야 한다. 예컨대 SVD를 이해하고 컴퓨터 비전에 활용할 수 있느냐에 따라서만 프로세싱되는 산출 속도부터가 차이가 극명하게 날 수도 있다. 그렇기에 우리는 컴퓨터 비전을 다루는 데 있어서 아주 기초가 되는 Matrix를 배우는 것이며, 학부생의 경우에는 컴퓨터 비전 분야에 관심이 있다면 이 부분에 대해서 정확히 이해하고 있어야 한다.
'AI & Data' 카테고리의 다른 글
[Data Science] 데이터 캘리브레이션 (Data Calibration) (1) | 2023.10.12 |
---|---|
[AI / Computer Vision] Singular Value Decomposition (SVD) (2) | 2023.10.09 |
[Data Science] Soft System Methodology (연성체계 방법론) (0) | 2023.09.01 |
[Data Science] 데이터 사이언스가 쓸모 없는 이유 (0) | 2023.08.24 |
[Data Science] 경기데이터드림: 경기도 AI 학습용 공공 데이터 칭찬해요! (0) | 2023.08.23 |
댓글