Кіріспе
Компьютерлік көру кітапханасы
OpenCV (Open Source Computer Vision Library) – негізінен нақты уақыт компьютерлік көруге арналған бағдарламалау функцияларының кітапханасы. Алғашқыда Intel компаниясымен әзірленген, кейін Willow Garage, одан кейін Itseez (кейін Intel сатып алған) тарапынан қолдау көрсетілді. Кітапхана платформааралық және Apache License 2 лицензиясы бойынша ашық бастапқы кодты және тегін бағдарламалық қамтамасы ретінде лицензияланған. 2011 жылдан бастап OpenCV нақты уақыт операцияларын жеделдету үшін GPU мүмкіндігін ұсынады.
Тарих
1999 жылы ресми түрде іске қосылған OpenCV жобасы бастапқыда Intel Research инициативасы болды, ол CPU-ға үлкен жүктеме түсіретін қосымшаларды дамытуға бағытталған, сонымен қатар нақты уақыт сәулелену іздеу және 3D дисплей қабырғаларын қамтитын жобалар сериясының бір бөлігі болды. Жобаға маңызды үлес қоскан мамандардың ішінде Intel Russia компаниясының көптеген оптимизациялау сарапшылары және Intel Performance Library тобы болды. OpenCV-нің алғашқы күндері жобаның мақсаттары былай сипатталды: негізгі көру инфрақұрылымы үшін ашық және оңтайландырылған кодты ұсыну арқылы көру саласындағы зерттеулерді дамыту. Енді бұрын жасалған нәрсені қайтадан ойлап табудың қажеті жоқ. Дамушылар қолдана алатын ортақ инфрақұрылымды ұсыну арқылы көру білімін тарату, осылайша кодты оқу және ауыстыру оңайырақ болады. Ашық немесе тегін кодты талап етпейтін лицензиямен портативті, өнімділігі жоғары кодты тегін қолжетімді ету арқылы коммерциялық қолданбаларды дамытуға көмектесу. OpenCV-нің алғашқы альфа нұсқасы 2000 жылы IEEE Компьютерлік көру және үлгілерді тану конференциясында көпшілікке ұсынылды, ал 2001 мен 2005 жылдар аралығында бес бета нұсқасы жарық көрді. Бірінші 1.0 нұсқасы 2006 жылы шықты. 1.1 нұсқасы 2008 жылдың қазан айында «алдын ала шығарылым» ретінде жарияланды. OpenCV-нің екінші маңызды жаңартылуы 2009 жылдың қазан айында болды. OpenCV 2 C++ интерфейсіне маңызды өзгерістер енгізді, мақсаты – оңай және қауіпсіз үлгілерді жасау, жаңа функцияларды қосу және қолданыстағы функциялардың өнімділігін жақсарту (әсіресе көп ядролы жүйелерде). Ресми жаңартулар енді әр алты ай сайын шығарылады және даму процесі коммерциялық компаниялардың қолдауымен тәуелсіз ресейлік команда жүзеге асырады. 2012 жылдың тамызында OpenCV-ге қолдауды коммерциялық емес OpenCV.org қоры қабылдады, ол әзірлеушілер мен пайдаланушыларға арналған сайттарды күтіп ұстайды. 2016 жылдың мамырында Intel OpenCV-нің жетекші әзірлеушісі Itseez компаниясын сатып алу туралы келісімге келді. 2020 жылдың шілдесінде OpenCV АИ жинағына арналған OpenCV AI Kit үшін Kickstarter кампаниясын жариялады және бастады, бұл OpenCV-ге арналған аппараттық модульдер мен қосымшалар сериясы болып табылады. 2020 жылдың тамызында OpenCV .ai – кәсіби кеңес беру бөлімін іске қосты. Дамушылар тобы кеңес беру қызметтерін ұсынады және компьютерлік көру, машиналық оқыту және жасанды интеллект салаларындағы шешімдерді әзірлейді.
Advance vision research by providing not only open but also optimized code for basic vision infrastructure. No more reinventing the wheel. Disseminate vision knowledge by providing a common infrastructure that developers could build on, so that code would be more readily readable and transferable. Advance vision based commercial applications by making portable, performance optimized code available for free – with a license that did not require code to be open or free itself. The first alpha version of OpenCV was released to the public at the IEEE Conference on Computer Vision and Pattern Recognition in 2000, and five betas were released between 2001 and 2005. The first 1.0 version was released in 2006. A version 1.1 "pre release" was released in October 2008. The second major release of the OpenCV was in October 2009. OpenCV 2 includes major changes to the C++ interface, aiming at easier, more type safe patterns, new functions, and better implementations for existing ones in terms of performance (especially on multi core systems). Official releases now occur every six months and development is now done by an independent Russian team supported by commercial corporations. In August 2012, support for OpenCV was taken over by a non profit foundation OpenCV. org, which maintains a developer and user site. In May 2016, Intel signed an agreement to acquire Itseez, a leading developer of OpenCV. In July 2020, OpenCV announced and began a Kickstarter campaign for the OpenCV AI Kit, a series of hardware modules and additions to OpenCV supporting Spatial AI. In August 2020, OpenCV launched OpenCV. ai – the professional consulting arm. The team of developers provides consulting services and delivers Computer Vision, Machine Learning, and Artificial intelligence solutions.
Бағдарламалау тілі
OpenCV C++ бағдарламалау тілінде жазылған, оның негізгі интерфейсі де солай, бірақ ол бұрынғы, алайда кеңейтілген C интерфейсін де сақтайды. Жаңа әзірлемелер мен алгоритмдердің барлығы C++ интерфейсінде көрінеді. Python, Java және MATLAB/Octave тілдері үшін де байланыстар бар. Осы интерфейстерге арналған қолданбалы бағдарламалау интерфейсі (API) онлайн құжаттамада табылады. Бағдарламалық кітапханалар кең аудиторияның қолдануын жеңілдету үшін бірнеше тілде жасалған. 3.4 нұсқасында OpenCV функцияларының таңдалған бір бөлігі үшін JavaScript байланыстары OpenCV.js ретінде жарияланды, олар веб-платформаларда қолданылады.
Жабдықтың жылдамдауы
Егер кітапхана жүйеде Intel-дің Integrated Performance Primitives-ін тапса, өзін жылдамдату үшін осы эксклюзивті, оптимизацияланған процедураларды пайдаланады. Compute Unified Device Architecture (CUDA) негізіндегі графикалық процессор (GPU) интерфейсі 2010 жылдың қыркүйегінен бері дамытылып келеді. OpenCL негізіндегі GPU интерфейсі 2012 жылдың қазан айынан бері жұмыс істеп келеді, 2.4.13.3 нұсқасының құжаттамасын docs.opencv.org сайтында табуға болады.
Операциялық жүйелерді қолдау
OpenCV Windows, Linux, macOS, FreeBSD, NetBSD және OpenBSD сияқты десктоптық операциялық жүйелерде, сондай-ақ Android, iOS, Maemo, BlackBerry 10 және QNX сияқты мобильді операциялық жүйелерде жұмыс істейді. Пайдаланушылар ресми нұсқаларды SourceForge-ден немесе ең соңғы кодты GitHub-тен жүктеуге болады. OpenCV CMake қолданады.