왠?? 역사??
난 어떤 한 분야를 공부하는데 앞서 개요와 분야가 어떻게 발전되어 왔는지에 대한 히스토리는 꼭 한 번은 보고 가는 편이다. 이유는 개요와 역사를 한 번 둘러봄으로써 이 라이브러리가 어떠한 의도로 만들어졌는지 어떤 것을 할 수 있는지를 파악하는 것은 물론 역사를 통하여 어떻게 발전했는지 또 어떻게 발전할지를 미리 생각해 볼 수 있기 때문이다.
생각보다 그냥 넘어 갈 수 있는 이런 내용을 보면서 아이디어나 프로젝트가 떠오르는 경우가 종종 있다.
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.. 컴퓨터 비전이란(영상처리) ?
'Python > 영상처리' 카테고리의 다른 글
[알아두기] JPG ,BMP , GIF , PNG 각 파일형식 특징 정리 (0) | 2021.06.29 |
---|---|
[Python 영상처리] 0.. 컴퓨터 비전이란(영상처리) ? (0) | 2020.08.07 |
댓글