Computer Vision Theory : Computer Vision 이란?

   

Computer Vision 이란?


1 Computer Vision이란 카메라나 스캐너 등 영상 입출력 매체를 통하여 입력 받은 이미지나 영상에서 물체 (Object), 전경 (Foreground), 배경 (Background) 등 물체와 주변 환경에 대한 데이터를 분석하여 유의미한 정보를 생성하는 기술입니다.

Image Processing을 통하여 필요한 정보를 생성합니다. 즉, 컴퓨터의 시각적인 능력에 판단 능력을 부여하여 데이터 (이미지, 동영상)를 가공해석하는데 사용됩니다.



OpenCV


2 OpenCVOpen Source Computer Vision Library 약어로 오픈 소스 컴퓨터 비전 라이브러리입니다. 실시간 이미지 프로세싱에 중점을 둔 라이브러리입니다. Intel에서 최초로 개발되었으며 C/C++, C#, Python 등 공식적으로 지원합니다.

OpenCV를 활용하여 물체인식, 얼굴인식, 제스처 인식을 비롯하여 자율 주행 자동차, OCR 판독기, 불량검사기 등에 활용할 수 있습니다. OpenCV는 영상 처리가 들어가는 프로그램이라면 가히 필수적으로 사용하게 되는 라이브러리입니다.



C.V.에서의 하드웨어 & 소프트웨어의 역할


3

컴퓨터는 하드웨어소프트웨어로 구성되어 있습니다. 성능이 좋은 소프트웨어를 구동하기 위해서는 당연히 성능이 좋은 하드웨어가 필요합니다. 슈퍼컴퓨터를 사용하는 이유도 이와 같습니다. 슈퍼컴퓨터는 계산 속도가 매우 빠르고 많은 자료를 오랜 시간 동안 꾸준히 처리할 수 있기 때문입니다.

그렇다면, 영상 처리에서 하드웨어와 소프트웨어의 역할은 각각 무엇일까요? 하드웨어의 역할은 컴퓨터의 성능카메라의 성능이며 소프트웨어의 역할은 영상 처리를 할 알고리즘입니다. 알고리즘을 매우 정확하게 구현했다 하여도 이를 처리할 컴퓨터와 카메라의 성능이 좋지 않다면 결과는 오랜 시간 계산하여 처리하게 되고 정확도도 떨어지게 됩니다.

컴퓨터의 성능은 영상 처리에서 알고리즘 처리 속도와 관련이 있으며 카메라의 성능은 정확도와 관련이 있습니다. 컴퓨터의 성능이 나쁘다면 그 만큼 계산 속도가 늘어나거나 실행조차 할 수 없습니다. 카메라의 성능이 나쁘다면 실제 물체는 붉은색이지만 카메라에서는 주황색으로 보일 수 있으며 녹색도 연두색으로 보일 수 있습니다.

영상 처리를 하기 위한 실질적인 데이터는 카메라나 불러온 이미지를 통해 얻습니다. 당연히 이미지의 크기가 크고 색상을 정확히 표현해냈다면 이미지 크기만큼의 데이터와 정확한 색상 데이터를 얻어낼 수 있습니다. 물론, 하드웨어의 성능이 좋다 해서 알고리즘의 결과도 좋아지지는 않습니다. 앞에서 설명했던 예시와 같이 정확한 알고리즘을 구현해야 하기 때문입니다.

제작할 프로그램 설계를 효율적으로 진행하고 완성하기 위한 작업의 첫 걸음은 프로그램이 어떤 목적을 가지고 어떤 역할을 할지 정확하게 파악하는 것입니다. 이것은 카메라의 성능의 선택과 알고리즘의 구성 선택에 필연적인 영향을 미칩니다. 단순한 작업을 반복하고 정확도가 큰 비중을 차지 하지 않는 프로그램이라면 적합한 카메라의 성능과 알고리즘을 사용하여 더 적은 비용과 빠른 시간으로 원하는 프로그램을 만들 수 있습니다. 만약 프로그램을 작성 도중 카메라의 성능을 변경시킨다면 일부 알고리즘을 수정하거나 모든 알고리즘을 수정하는 일이 발생할 수 있습니다. 그렇게 된다면 초기에 계획했던 비용과 시간이 늘어나게 됩니다. 프로그램의 목적을 정확히 파악하고 영상 처리에 필요한 적합한 하드웨어와 소프트웨어를 선택해야합니다.



  • Writer by : 윤대희




도움이 되셨다면 광고 클릭 부탁드립니다.

⤧  Next post Computer Vision Theory : Digital Image Processing 이란? ⤧  Previous post C# OpenCV 강좌 : 제 61강 - 내부 채우기