본문 바로가기
Python/영상처리

[Python 영상처리] 1.. OpenCV란? -역사는 알고 시작하자-

by 크레노트 2021. 6. 29.
반응형

 

왠?? 역사??


난 어떤 한 분야를 공부하는데 앞서 개요와 분야가 어떻게 발전되어 왔는지에 대한 히스토리는 꼭 한 번은 보고 가는 편이다. 이유는 개요와 역사를 한 번 둘러봄으로써 이 라이브러리가 어떠한 의도로 만들어졌는지 어떤 것을 할 수 있는지를 파악하는 것은 물론 역사를 통하여 어떻게 발전했는지 또 어떻게 발전할지를 미리 생각해 볼 수 있기 때문이다.

생각보다 그냥 넘어 갈 수 있는 이런 내용을 보면서 아이디어나 프로젝트가 떠오르는 경우가 종종 있다.

 

 

 

 

OpenCV 개요

(Open Source Computer Vision Library)


OpenCV는 이름에서도 그리고 약어 풀이에서도 알 수 있게 오픈 소스로 현재도 활발하게 개발이 되고 있는 컴퓨터 비전 및 머신 러닝 라이브러리이며 , 약 2500여 개가 넘는 여러 최신 비전 , 머신러닝 알고리즘과 기본적인 영상처리 , 객체 검출 , 객체 인식 , 객체 추적 등등 영상처리 관련 문제 해결을 위한 알고리즘을 제공하고 현재도 활발하게 여러 알고리즘이 개발이 되고 있다.  OpenCV는 처음 개발을 할 때 부터 실시간 처리를 생각하며 개발이 되었기에 하드웨어 플랫폼에서도 빠르게 동작을 함. 기본적으로 C/C++ 베이스로 개발이 되었지만 PYTHON, JAVA 등등 여러 인터페이스도 제공을 하며 운영체제도 Window, LinuX, MacOS PC와 Android,IOS등 모바일 환경에서 원활하게 동작. 라이선스 같은 경우는 BSD 라이선스를 따르기 때문에 연구 및 상업적 용도로 자유롭게 사용 가능.

 

 

 


 

OpenCV 역사


1999년 인텔(Intel)에서 개발된 IPL(Image Primitive Library)을 기반으로 개발 시작

 

2000년 일반인에게 공개 후 오픈 소스로서 개발 시작

 

2006년 OpenCV 1.0 버전이 정식으로 배포.

   - C 언어 기반

   - 컴퓨터 비전 알고리즘이 구조체와 함수로 주로 구현이 됨

 

2009년 OpenCV 2.0이 발표.

   - C++ 인터페이스 사용

   - Mat 클래스를 사용하여 영상 데이터를 표현

   - 소규모 업데이트 진행( 알고리즘 구현 함수, 성능 개선, 병렬 처리 기능 강화)

 

2015년 OpenCV 3.0 발표.

   - 프로젝트 구조가 개선

   - 전반적인 성능이 향상

   - T-API(Transparent API)를 지원

 

2017년 OpenCV 3.3 버전 발표

   - 심층 신경망을 지원하는 DNN 모듈이 기본 소스에 포함

   - AVX  /  AVX2  /  SSE4.x 최적화 추가

   - C++11 문법도 지원.

 

2018년 OpenCV 4.0 발표.

    - C++11의 필수 지원입니다. (C++11 지원 컴파일러 환경 가능 , 최신 C++ 문법을 사용).

    - DNN 모듈 기능 강화( AlexNet, Inception v2, Resnet, VGG 등 영상 분류기)

    - Mask-RCNN, tiny YOLO 등 최신 딥러닝 네트워크 구조 지원

    - C API 지원 종료(IplImage 구조체 등을 사용 X)

 

 

 


이 글을 혹시나 보는 이들에게 물어보고 싶다. 간단하게 역사와 개요를 보니 어떤 생각이 드는지 

난 개요와 역사를 보니 역시 오픈 소스니 다양한 플랫폼에서 사용할 수 있도록 업데이트되어가고 있으며 시대가 달려가는 속도에 따라가기 위해 알고리즘 발달 및 사용자 편의성이 개선되어 가고 있는 것을 느낀다. 이전에도 그러하였듯이 앞으로도 꾸준하게 발전이 될 좋은 라이브러리 같다..

 

2020.08.07 - [Python/영상처리] - [Python 영상처리] 0.. 컴퓨터 비전이란(영상처리) ?

반응형

댓글