» www.Giftbox.Az - Bir birindən gözəl hədiyyə satışı
ウィキペディアランダム
毎日カテゴリ
共有: WhatsappFacebookTwitterVK

OpenCV

OpenCV(オープンシーヴィ、: Open Source Computer Vision Library)とはインテルが開発・公開したオープンソースコンピュータビジョン向けライブラリ[3]。2009年にWillow Garage(ウィロー・ガレージ)に開発が移管され、さらにその後(Itseez)にメンテナンスが移管されたが、2016年5月にインテルがItseezを買収することが発表された[4][5]

OpenCV
開発元 インテルWillow Garage、(Itseez)
最新版
4.7.0 / 2022年12月29日 (4か月前) (2022-12-29)[1]
リポジトリ
  • github.com/opencv/opencv
プログラミング
言語
対応OS Windows, Linux, FreeBSD, macOS, Android, iOS
プラットフォーム クロスプラットフォーム
対応言語 C/、JavaPython
種別 ライブラリ
ライセンス OpenCV 4.4以前: 三条項BSDライセンス / OpenCV 4.5以降: Apache v2[2]
公式サイト opencv.org
(テンプレートを表示)

概要

画像処理・画像解析および機械学習等の機能を持つC/、JavaPythonMATLAB用ライブラリ[6]プラットフォームとしてmacOSFreeBSD等全てのPOSIXに準拠したUnix系OSLinuxWindowsAndroidiOS等をサポートしている。[7]

歴史

1999年にプロジェクト開始。最初のアルファ版が公開されたのは、国際会議CVPR 2000 (IEEE Conference on Computer Vision and Pattern Recognition 2000) である。2001年から2005年の間に5つのベータ版がリリースされた。1.0版がリリースされたのは2006年。[7]

2008年にWillow Garageによるサポートを受け、開発状況が再び活発になった。2009年10月に2回目のメジャーバージョンアップが実施され、2.0版がリリースされた。OpenCV 2.4.4以降ではJavaが公式にサポートされている[8]。OpenCV 2.x系列は2018年2月に2.4.13.6がリリースされた後、メンテナンスされていない[1][9][10][11]

2015年6月に3回目のメジャーバージョンアップとしてOpenCV 3.0が正式リリースされた。OpenCV 3.0では従来のC言語関数形式のインターフェイスはレガシーAPI扱いとなりメンテナンスが終了しているため、代わりに APIを使うことが推奨されている[12]。2015年12月にリリースされたOpenCV 3.1では、Google Summer of Code 2015の成果物の取り込みなど、多数の機能が追加されている[13]

2018年11月にOpenCV 4.0がリリースされた[14]。規格準拠コンパイラが必須となり、またC言語APIは廃止された。

2021年現在、OpenCV 3.x系列のメンテナンスと4.x系列の開発が続けられている。

機能

実装分野は次の通り。

OpenCVの機能はいくつかのライブラリモジュールに分割して実装されている。モノリシックな1ファイル(worldモジュール)にビルドすることも可能であるが[15]、通常は必要なものだけ個別のモジュールとしてビルドする。

ビデオ入出力モジュールではWebカメラに代表されるUVCデバイスを扱うことができる。モジュールをビルドする際に、サポートするバックエンドとしてFFmpeg(Video4Linux)(英語版)Video for WindowsDirectShowMedia Foundation(OpenNI)(英語版)などを選択することができる[16][17]

OpenCV 2.1[18]SSE拡張命令を使用した最適化コードが実装されている。OpenCV 3.0でIntel IPPのサブセットがIPPCVとして寄贈され、デフォルトで使用されるようになった[19]。そのほか、Intel TBBOpenMPを利用した並列化も実装されている。OpenCV 3.1ではクロスプラットフォームなSIMDアクセラレーションのためのUniversal Intrinsicsが導入され[20]、従来からのSSE (x86) 命令のサポートに加え、AVX (x86) 命令や(NEON) (ARM) 命令のサポートも加わっている。

OpenCV 2.2[21]CUDAを使ったアクセラレータであるgpuモジュール、OpenCV 2.4.3[22]OpenCLを使ったアクセラレータであるoclモジュールが追加された。gpuモジュールを有効にするためには、OpenCVをWITH_CUDA=ON構成でビルドする必要がある[23]。また、oclモジュールを有効にするためには、OpenCVをWITH_OPENCL=ON構成でビルドする必要がある[24]。なおOpenCV 2.4.11時点で、公式のWindows用ビルド済みバイナリではCUDAは有効にされていないが、OpenCLは有効にされている。またgpuモジュールおよびoclモジュールはともに、従来のCPUベースのOpenCV機能と比べて、対応するチャンネルフォーマットに関して制約がある。そのほか、gpuモジュールを使用するためには、CUDAに対応したNVIDIAGPUを、そしてoclモジュールを使用するためには、OpenCL 1.1に対応したハードウェアを用意する必要がある。

なお、OpenCV 3.0ではgpuモジュールはcudaモジュールに改称され、また独立したoclモジュールは廃止されてOpenCVの各モジュールに透過API (Transparent API, T-API) として分散・融合されている[25]。OpenCV 3.0にはOpenCLの相互運用を可能とするラッパーAPIも用意されており、OpenCL-C言語でカスタムカーネルを記述できるほか、OpenCL 1.2サポートを有効にしてOpenCVをビルドすることで、OpenCL 1.2対応のプラットフォームおよびデバイス上でOpenCL 1.2の機能(カーネルの分割コンパイル&リンクなど)を使えるようになる[26]。また、オプションとしてOpenCL 2.0もしくはAMD (HSA) 拡張のShared Virtual Memoryもサポートしている[27]

各種言語バインディング(ラッパー)

公式に提供されているOpenCV APIとして、C/C++用インターフェイスのほか、Java、Python、MATLABバインディングが存在するが、そのほかにも非公式の各種言語向けのラッパーが存在する。

  • Java用ラッパー
    • JavaCV - OpenCV, FFmpeg, libdc1394, PGR FlyCapture, OpenKinect, videoInput, ARToolKitPlus のラッパー。バージョン1.0でOpenCV 3.0に対応。GPL v2ライセンスとApacheライセンスに対応。
  • .NET用ラッパー
    • SharperCV - 商用利用不可、開発終了。
    • OpenCVDotNet - GPL v2ライセンス、OpenCV 1.0対応、2007年のバージョン0.7を最後に更新停止。
    • Emgu CV - GPL v3ライセンスもしくは商用ライセンス、OpenCV 2.4.10/3.4.3/4.5.5に対応。Mono対応、Windowsストアアプリ対応。
    • OpenCvSharp - 3条項BSDライセンス、OpenCV 2.4.10/3.4.4/4.5.1に対応。Mono対応、.NET Core対応、UWPアプリ対応。
    • OpenCV.NET[] - BSDスタイルライセンス (MIT)、Mono対応。
  • その他

関連項目

参照

[脚注の使い方]
  1. ^ a b Releases | opencv.org
  2. ^ License - OpenCV
  3. ^ 橋本直「特集 拡張現実感 (AR) 基礎3: 開発用ツール」『情報処理』第51巻第4号、情報処理学会、2010年4月、382ページ。 
  4. ^ Intel Acquires Computer Vision for IOT, Automotive | Intel Newsroom
  5. ^ Intel acquires Itseez | opencv.org
  6. ^ About | opencv.org
  7. ^ a b “第1回 OpenCVとは? 最新3.0の新機能概要とモジュール構成”. @IT. 2023年5月3日閲覧。
  8. ^ Introduction to Java Development — OpenCV 2.4.13.0 documentation
  9. ^ OpenCV - Browse /opencv-win at SourceForge.net
  10. ^ Tags · opencv/opencv | GitHub
  11. ^ Releases · opencv/opencv | GitHub
  12. ^ OpenCV 3.0 Latest news and the Roadmap, Kirill Kornyakov, Itseez, ICVS 2013
  13. ^ OpenCV 3.1 | OpenCV
  14. ^ OpenCV 4.0 - OpenCV library
  15. ^ 第4回 初めてのOpenCV開発 ― Visual Studio/CMake/NuGetでプロジェクト作成【OpenCV 3.0/3.1】:OpenCV入門【3.0対応】(1/3 ページ) - @IT
  16. ^ “OpenCV: Video I/O with OpenCV Overview”. docs.opencv.org. 2021年1月7日閲覧。
  17. ^ 第8回 初めてのOpenCV開発 ― CMakeを使ったOpenCVのカスタマイズ【OpenCV 3.1.0】:OpenCV入門【3.0対応】 - @IT
  18. ^ OpenCV2.0 から OpenCV2.1 の変更点(ChangeLog) | OpenCV.jp
  19. ^ OpenCV 3.0 | OpenCV
  20. ^ OpenCV: Universal intrinsics
  21. ^ OpenCV 2.2 Released - ROS robotics news
  22. ^ OpenCV 2.4.3 released | OpenCV
  23. ^ GPU Module Introduction — OpenCV 2.4.11.0 documentation
  24. ^ OpenCL Module Introduction — OpenCV 2.4.11.0 documentation
  25. ^ OpenCV: OpenCV modules
  26. ^ opencv/opencl_core.hpp at 3.0.0 · opencv/opencv | GitHub
  27. ^ opencv/ocl.cpp at 3.0.0 · opencv/opencv | GitHub

外部リンク

  • 公式ウェブサイト
  • OpenCV リファレンスマニュアル(日本語訳)とサンプルプログラム集 (OpenCV 2.4まで)
  • OpenCV Wiki[] - Willow GarageによるOpenCV Wiki(英語)
  • OpenCV SourceForge(英語)
  • Introduction to programming with OpenCV[] - コードの例がある。(英語)
ウィキペディア、ウィキ、本、library、論文、読んだ、ダウンロード、自由、無料ダウンロード、mp3、video、mp4、3gp、 jpg、jpeg、gif、png、画像、音楽、歌、映画、本、ゲーム、ゲーム。