Page 23 -
P. 23

OpenCV 라이브러리는 BSD 라이선스를 따르고 있기 때문에 학계 연구용이나 상업적인 용도로
                    자유롭게 사용할 수 있습니다. OpenCV 라이브러리를 이용하여 상용 프로그램을 만들 수도 있
                    고, OpenCV 소스 코드의 일부를 사용하여 프로그램을 개발하는 것도 허용됩니다. 실제로 구글,

                    야후, 마이크로소프트, 인텔, IBM, 소니, 혼다, 토요타와 같은 대기업과 많은 스타트업 회사에서                           2
                    도 OpenCV를 사용하고 있습니다. 구글 스트리트 뷰에서 영상을 이어 붙이는 용도로 사용되기도
                    하였고, 감시 카메라, 검사 장비, 로봇 또는 자율 주행 자동차에서도 사용되기도 했습니다. 유럽에
                    서는 수영장에서 익사 사고 감시 시스템으로 사용되기도 하였고, 인터렉티브 아트(interactive art)                      OpenCV 설치와 기초 사용법
                    에서도 OpenCV가 사용된 사례가 있습니다.



                    OpenCV 역사

                    OpenCV는 1999년 인텔(Intel)에서 개발된 IPL(Image Primitive Library)을 기반으로 만들어지
                    기 시작했습니다. 이후 2000년 일반에 공개되어 오픈 소스로서 개발이 진행되었고, 2006년에

                    OpenCV 1.0 버전이 정식으로 배포되었습니다. OpenCV 1.0은 C 언어를 기반으로 구현되었습
                    니다. 그러므로 많은 컴퓨터 비전 알고리즘이 주로 구조체와 함수로 구현되었으며, 영상 데이터는
                    IplImage라는 이름의 구조체를 이용하여 표현하였습니다. OpenCV 1.0 버전이 나온 지 3년 후
                    인 2009년에는 OpenCV 2.0이 발표되었습니다. OpenCV 2.0은 C 언어 대신 C++ 인터페이스

                    를 채택하였고, Mat라는 이름의 클래스를 사용하여 영상 데이터를 표현하기 시작했습니다. C++
                    클래스를 사용함으로써 메모리 관리가 좀 더 수월해지고 소스 코드 작성이 더욱 편리해졌습니다.
                    이후 지속적인 소규모 버전업이 진행되면서 새로운 알고리즘 구현 함수, 성능 개선, 병렬 처리 기
                    능 강화 등이 추가되었습니다.

                    OpenCV 3.0은 2015년 6월에 발표되었습니다. OpenCV 3.0 버전에서는 OpenCV 프로젝

                    트 구조가 크게 개선되었고 전반적인 성능이 향상되었습니다. OpenCL 사용성을 크게 확대
                    한 T-API(Transparent API)를 지원하기 시작하였고, 유료로 사용해야 했던 인텔 IPP(Integrated
                    Performance Primitives) 라이브러리 일부를 OpenCV에서 무료로 사용할 수 있게 되었습니다.
                    2017년 8월에 발표된 OpenCV 3.3 버전에서는 최근에 각광받고 있는 심층 신경망을 지원하는
                    DNN 모듈이 기본 소스에 포함되기 시작하였습니다. 또한 AVX/AVX2/SSE4.x 최적화가 추가되

                    었고, 최신 C++11 문법도 지원하기 시작하였습니다.

                    이 책에서 설명하는 OpenCV 4.0은 2018년 11월에 발표되었습니다. OpenCV 4.0의 가장 큰 변
                    화는 C++11의 필수 지원입니다. OpenCV 4.0은 C++11을 지원하는 컴파일러 환경에서 사용할
                    수 있으며, 최신 C++ 문법을 기본적으로 사용할 수 있습니다. 함수의 포인터 또는 함수 객체 대



                                                                                                  029





     OpenCV(본문)인디고출력용_0326.indb   29                                                         2019-03-26   오후 1:28:32
   18   19   20   21   22   23   24   25   26   27   28