用語集

オープンCV

リアルタイムコンピュータビジョン、画像処理、AI主導のイノベーションのためのオープンソースライブラリであるOpenCVのパワーをご覧ください。

Ultralytics HUB で
を使ってYOLO モデルをシンプルにトレーニングする。

さらに詳しく

OpenCVはOpen Source Computer Vision Libraryの略で、人工知能(AI)機械学習(ML)で広く使用されている強力で多機能なオープンソースライブラリです。OpenCVは、リアルタイムのコンピュータビジョン(CV)タスク、画像処理、ビデオ解析のために特別に設計されたツールとアルゴリズムの包括的なスイートを提供する。機械学習の実務家にとって、OpenCVは視覚データを扱うための不可欠なツールキットであり、基本的な画像の読み込みや操作から複雑なシーンの理解までを可能にする。OpenCV.orgによって維持されているそのオープンソースの性質は、大規模なコミュニティと継続的な開発を促進し、この分野の基礎技術となっている。Windows、Linux、macOS、Android、iOS含む様々なプラットフォームで容易に利用可能で、Python、C++、Java、MATLABなどの言語用のインターフェースを提供している。

AIと機械学習における関連性

OpenCVは、AIやMLのパイプラインにおいて、特に視覚的な入力を扱う場合に重要な役割を果たす。OpenCVはデータの前処理のための基本的なツールを提供し、画像や動画を機械学習モデルに投入する前の重要なステップとなる。OpenCVが扱う一般的な前処理ステップには、リサイズ、色空間変換(BGRからRGBへの変換など、特定の色次数で学習させたモデルに必要なことが多い)、ガウスぼかしなどのフィルターを使ったノイズ除去、画質の向上や関連する特徴の抽出のためのさまざまな変換の適用などがある。この前処理は、ディープラーニング(DL)モデルの性能に大きな影響を与える。

OpenCVは、以下のような一般的なMLフレームワークと組み合わせて使用されることが多い。 PyTorchTensorFlowと組み合わせてエンドツーエンドのCVアプリケーションを構築することが多い。これらのフレームワークがニューラルネットワークの構築とトレーニングに重点を置いているのに対し、OpenCVは、以下のようなモデルによって予測されるバウンディングボックスやセグメンテーションマスクの描画のような、視覚データの入出力、操作、そして多くの場合後処理を処理します。 Ultralytics YOLO.リアルタイムのビデオストリームを効率的に処理できるため、物体検出や 姿勢推定のためのリアルタイム推論など、即時の視覚分析を必要とするアプリケーションには不可欠です。

主な特徴と能力

OpenCVは膨大な機能(2500以上のアルゴリズム)を提供し、古典的なコンピュータビジョン技術と最新のディープラーニングの統合の両方をカバーしている。主な機能は以下の通り:

OpenCVと関連コンセプトの比較

OpenCVを関連用語と区別するのに役立つ:

  • コンピュータビジョン(CV)CVは、機械が視覚情報を解釈できるようにすることに関係する広範な科学分野である。OpenCVはCVアプリケーションを実装するためのツールや ライブラリであり、この分野そのものではない。
  • 画像処理主に画像の操作(コントラストの強調、ノイズの除去など)に重点を置く。OpenCVは広範な画像処理機能を提供するが、物体認識やシーン理解といった、より高度なタスクも含まれており、これらはコンピュータ・ビジョンに分類される。
  • MLフレームワーク(PyTorchTensorFlow):これらのフレームワークは、主にニューラルネットワークやその他のMLモデルの構築、トレーニング、デプロイのために設計されています。OpenCVは、ビジュアルデータをモデルに取り込む(前処理)と推論(可視化、後処理)に処理するための重要なツールを提供することで、これらのフレームワークを補完しています。OpenCVにはMLの機能もあるが、これらの専用フレームワークと比較すると、それが主な焦点ではない。例えば、Ultralytics HUBは、モデルのトレーニングにPyTorch ようなフレームワークを使用し、データ処理に暗黙的または明示的にOpenCVを使用することがある。

実世界での応用

OpenCVは汎用性が高いため、数多くのAI/MLアプリケーションで利用されている:

  1. 自律走行車自動運転車や先進運転支援システム(ADAS)では、OpenCVはカメラやLiDARデータの初期処理によく使われます。タスクには、車線検出、特徴マッチングや輪郭検出による障害物認識、交通標識認識(処理された画像を分類器に送ることが多い)、サラウンドビューシステムの画像ステッチなどがある。例えば、生のカメラフレームは、OpenCVを使用して前処理(歪みの補正、明るさの調整)された後、次のようなディープラーニングモデルに入力される。 YOLOv8のようなディープラーニング・モデルに送り込まれる。(Waymoの技術を探る)。
  2. 医療画像解析OpenCVは、様々な医用画像フォーマット(DICOMのような、しばしば他のライブラリの助けを借りて)の読み込み、異常の可視性を高めるための画像コントラストの強調、閾値や分水嶺アルゴリズムのようなテクニックを使用した関心領域(腫瘍や臓器など)のセグメンテーション、異なる時間や異なるモダリティから撮影された画像の登録を支援します。このように前処理されたデータは、診断や治療計画のために、MLモデルによって分析されることが多い。(AI in Radiology - RSNA)。

その他のアプリケーションとしては、ロボット工学(ロボット工学におけるコンピュータビジョンの統合)、監視(セキュリティアラームシステム)、拡張現実(AR)、製造業における品質管理、農業(作物の健康モニタリングなど)などがあります。Ultralytics ドキュメントには、OpenCVの関数がYOLO モデルと連携して、事前または事後の処理ステップに使用できる多くの例が記載されています。

すべて読む