DUICUO

話題になった最先端のオープンソースプロジェクト16選

みなさんこんにちは、エチャです。

コンピュータビジョンは、音声認識や自然言語理解とともに人工知能の3大技術分野の一つとして知られており、AI技術が最も広く応用され産業化されている分野でもあります。

百度アポロスケープ

技術の発展に伴い、コンピューターは現実世界の物体を認識するために、センサーハードウェアデバイス(カメラ、ソナーなど)に頼らざるを得なくなりました。これは、人間の目が周囲の世界を認識し、反応するのと同じです。しかし、コンピューターがセンサーによって検出された物体を識別するには、事前に特定の視覚アルゴリズムを用いて大量のデータでトレーニングする必要があります。そうすることで初めて、コンピューターはセンサーデータに含まれる物体のカテゴリーを認識し、それに応じて反応できるようになります。

ホンダのインテリアデザイン

今日、コンピュータービジョンは、本人確認、製造、農業、医療、輸送、海洋科学など、多くの業界で幅広く応用されています。その結果、高品質なコンピュータービジョンライブラリの需要が高まっています。コンピュータービジョンライブラリは、事前に記述されたアルゴリズムコードと、事前学習済みのモデルまたはデータで構成されています。現在、オープンソース分野には、画像認識ライブラリや顔認識ライブラリなど、数多くのコンピュータービジョンライブラリが存在します。

ネクセット

今回は、話題沸騰中のオープンソース技術プロジェクト16選をご紹介したいと思います。皆さんのお役に立てれば幸いです。皆さんはいくつご存知ですか?一つずつご紹介していきます。

全文概要

  1. OpenCV は、現在までで最も古く、最も人気のあるオープンソースのコンピューター ビジョン ライブラリです。
  2. TorchVision - コンピューター ビジョンで最も一般的な画像変換機能を備えており、一般的なデータセットに加えて、コンピューター ビジョン ニューラル ネットワーク用のデータセットとモデル アーキテクチャも含まれています。
  3. YOLO は、Joseph Redmond と Ali Farhadi によって 2016 年に開発された最速のコンピューター ビジョン ツールの 1 つであり、リアルタイムの画像オブジェクト検出用に特別に設計されています。
  4. MMCV は、PyTorch ベースの画像/ビデオ処理およびコンバータです。
  5. Scikit-Image は最も便利な Python ビジョン ライブラリとして広く認識されており、Scikit-Learn の拡張ライブラリです。
  6. Pillow (PIL フォーク) は、Python で書かれた画像処理ライブラリです。
  7. TensorFlow は、Google Brain チームによって開発され、2015 年 11 月にリリースされた AI フレームワークであり、AI モデルの構築プロセスを容易にするように設計されています。
  8. MATLABはMatrix Laboratoryの略称ですが、機械学習、ディープラーニング、画像処理、ビデオ信号処理などの用途に適した有料のプログラミングプラットフォームです。
  9. Keras – ニューラル ネットワーク モデルの迅速な構築を可能にし、コンピューター ビジョン エンジニアがアプリケーションを迅速に組み立て、モデルをトレーニングするために使用できるモジュール式の AI ツールキットです。
  10. NVIDIA CUDA-Xは、新しいアプリケーションやGPAアクセラレーションをすぐに開始できるGPUアクセラレーションライブラリとツールのコレクションです。数学ライブラリ、並列アルゴリズムライブラリ、画像および動画ライブラリ、通信ライブラリ、ディープラーニングライブラリが含まれています。
  11. NVIDIA パフォーマンス プリミティブ - CUDA (Compute Unified Device Architecture) は、NVIDIA が開発した並列コンピューティング プラットフォームおよびアプリケーション プログラミング インターフェイス (API) モデルです。
  12. PyTorch は、主に Facebook の AI 研究グループによって開発された、Python 用のオープンソースの機械学習フレームワークです。
  13. OpenVINO - 非常に包括的なコンピューター ビジョン ツール セットです。
  14. Caffe - カリフォルニア大学バークレー校が開発した、使いやすいオープンソースのディープラーニングおよびコンピューター ビジョン フレームワーク。
  15. SimpleCV は、無料のオープンソースのマシン ビジョン フレームワークです。
  16. Detectron2 は、Facebook AI Research (FAIR) によって開発された PyTorch ベースのオブジェクト検出ライブラリです。

OpenCV は、現在までで最も古く、最も人気のあるオープンソースのコンピューター ビジョン ライブラリです。

Github: https://github.com/opencv/opencv

OpenCV公式サイト

OpenCV は、コンピューター ビジョン アプリケーションに汎用的な基礎アルゴリズムを提供するように設計された、現在までに最も古く、最も人気のあるオープン ソースのコンピューター ビジョン ライブラリです。

Windows、Linux、Android、macOSを含むクロスプラットフォームアプリケーションをサポートしています。Python、Java、C++など、様々な主要開発言語をサポートしています。OpenCVには、GPU向けCUDAモデルをサポートするPythonラッパーがあり、TensorFlowモデルに変換可能なモデルも含まれています。元々はIntelによって開発されましたが、現在はオープンソースBSDライセンスの下で無料で利用可能です。

OpenCV の主な機能は次のとおりです。

  • 2Dおよび3Dグラフィックツールキット
  • 顔認識
  • ジェスチャー認識
  • 動き検出
  • 人間とコンピュータの相互作用
  • 物体検出
  • 画像セグメンテーションと物体認識

OpenCV デモ

TorchVision - コンピューター ビジョンで最も一般的な画像変換機能を備えており、一般的なデータセットに加えて、コンピューター ビジョン ニューラル ネットワーク用のデータセットとモデル アーキテクチャも含まれています。

Github: https://github.com/pytorch/pytorch

PyTorch 公式サイト

TorchVisionはPyTorchの拡張ライブラリです。TorchVisionには、コンピュータービジョンで最も一般的な画像変換関数が搭載されており、コンピュータービジョンニューラルネットワーク用のデータセットとモデルアーキテクチャ、そして一般的なデータセットも含まれています。

TorchVisionは、画像をNumPy配列に変換することなく、PyTorchモデルを用いたコンピュータービジョン画像変換を容易にするように設計されています。TorchVisionはPythonおよびC++開発環境で使用できます。PyTorchライブラリと一緒にpip経由でインストールできます。

以下は、事前トレーニング済みのセグメンテーション モデルの使用例です。

 import torchvision model = torchvision.models.detection.maskrcnn_resnet50_fpn(pretrained=True) # set it to evaluation mode, as the model behaves differently # during training and during evaluation model.eval() image = PIL.Image.open('/path/to/an/image.jpg') image_tensor = torchvision.transforms.functional.to_tensor(image) # pass a list of (potentially different sized) tensors # to the model, in 0-1 range. The model will take care of # batching them together and normalizing output = model([image_tensor]) # output is a list of dict, containing the postprocessed predictions

YOLO は、Joseph Redmond と Ali Farhadi によって 2016 年に開発された最速のコンピューター ビジョン ツールの 1 つであり、リアルタイムの画像オブジェクト検出用に特別に設計されています。

Github: https://github.com/ultralytics/ultralytics

YOLO公式サイト

YOLOは、ジョセフ・レドモンドとアリ・ファルハディによって2016年に開発された、リアルタイム画像物体検出に特化した最速のコンピュータービジョンツールの一つです。YOLOはニューラルネットワークを用いて画像をグリッドに分割し、各グリッドを同時に予測することで認識効率を向上させます。

YOLOバージョン8がリリースされました。YOLOv8は最先端(SOTA)モデルであり、以前のYOLOバージョンの成功を基に、新機能と改良点を導入することで、パフォーマンスと柔軟性をさらに向上させています。YOLOv8は、そのスピード、精度、使いやすさにより、物体検出と追跡、インスタンスセグメンテーション、画像分類、姿勢推定といった幅広いタスクに最適です。

YOLOアプリケーションシナリオ

MMCV は、PyTorch ベースの画像/ビデオ処理およびコンバータです。

Github: https://github.com/open-mmlab/mmcv

MMCV中国語公式版

2022年9月1日、OpenMMLabチームは世界人工知能会議(World Artificial Intelligence Conference)において、新世代のトレーニングエンジン「MMEngine」をリリースしました。MMEngineは、ディープラーニングモデルのトレーニングのための基盤ライブラリです。MMCVと比較して、より高度で汎用的なトレーナー、より統一されたオープンアーキテクチャ、そしてよりカスタマイズ可能なトレーニングプロセスを提供します。

MMCV v2.0.0は2023年4月6日に正式リリースされました。バージョン2.xでは、トレーニングプロセスに関連するコンポーネントが削除され、データ変換モジュールが追加されました。また、バージョン2.x以降、パッケージ名がmmcvからmmcv-liteに、mmcv-fullからmmcvに変更されました。

MMCVはPyTorchベースの画像/動画処理および変換ツールです。Linux、Windows、macOSなどのシステムに対応しており、コンピュータビジョン研究者の間で最もよく使用されるパッケージの一つです。また、PythonとC++による音声開発もサポートしています。


MMCV は、次の機能を提供するコンピューター ビジョンの基本ライブラリです。

  • 画像およびビデオ処理
  • 画像と注釈結果の視覚化
  • 画像変換
  • さまざまなCNNネットワーク構造
  • 一般的なCUDA演算子の高品質な実装

MMCV は、以下を含む複数のプラットフォームをサポートしています。

  • リナックス
  • ウィンドウズ
  • macOS
Scikit-Image は最も便利な Python ビジョン ライブラリとして広く認識されており、Scikit-Learn の拡張ライブラリです。

Github: https://github.com/scikit-image/scikit-image

Scikit-Image 公式サイト

Scikit-Imageは、最も便利なPythonビジョンライブラリとして広く認知されており、Scikit-Learnの拡張版です。教師あり学習と教師なし学習の両方で広く使用されているツールの一つです。NumPy配列を画像オブジェクトとして処理するのに使用できます。

以下は、Scikit-image を使用したコイン認識の例です。

 import skimage as ski image = ski.data.coins() # ... or any other NumPy array! edges = ski.filters.sobel(image) ski.io.imshow(edges) ski.io.show() 

Pillow (PIL フォーク) は、Python で書かれた画像処理ライブラリです。

Github: https://github.com/python-pillow/Pillow

ピロー(PILフォーク)公式サイト

PillowはPythonで書かれた画像処理ライブラリです。Windows、Mac OS X、Linuxプラットフォームに対応し、C言語とPythonの両方で使用できます。主に様々な形式の画像の読み込みと保存に使用されますが、回転、結合、拡大縮小といった基本的な画像変換機能も備えています。

TensorFlow は、Google Brain チームによって開発され、2015 年 11 月にリリースされた AI フレームワークであり、AI モデルの構築プロセスを容易にするように設計されています。

Github: https://github.com/tensorflow/tensorflow

TensorFlow公式サイト

TensorFlowは、Google Brainチームによって開発され、2015年11月にリリースされたAIフレームワークです。AIモデルの構築プロセスを容易にするように設計されています。ブラウザやNode.js向けのTensorFlow.js、エンドデバイス向けのTensorFlow Liteなど、複数の拡張ソリューションが用意されています。さらに、TensorFlowはさらに優れたフレームワークであるTensorFlow Hubを提供しています。これは、BERTやFaster R-CNNのトレーニングモデルを再利用したり、すぐにデプロイできるモデルを探したり、他のユーザーが利用できるようにモデルをホストしたりできる、より使いやすいプラットフォームです。

TensorFlowを使用すると、顔認識、画像分類、物体検出など、コンピュータービジョンに関連する機械学習モデルを開発できます。OpenCVと同様に、TensorFlowはPython、C、C++、Java、JavaScriptなど、さまざまな言語をサポートしています。

TensorFlow アプリケーションシナリオ

MATLABはMatrix Laboratoryの略称ですが、機械学習、ディープラーニング、画像処理、ビデオ信号処理などの用途に適した有料のプログラミングプラットフォームです。

リンク: https://ww2.mathworks.cn/products/matlab.html

MATLAB公式サイト

MATLABはMatrix Laboratoryの略称ですが、機械学習、ディープラーニング、画像処理、ビデオ信号処理などのアプリケーションに適した有料のプログラミングプラットフォームです。エンジニアや科学者の間で人気のプラットフォームです。MATLABには、以下のような多くのアルゴリズム機能を備えたコンピュータービジョンツールキットが搭載されています。

  • ビデオオブジェクトの検出と追跡
  • 物体認識
  • カメラを調整する
  • 3Dビジョンの処理

Keras – ニューラル ネットワーク モデルの迅速な構築を可能にし、コンピューター ビジョン エンジニアがアプリケーションを迅速に組み立て、モデルをトレーニングするために使用できるモジュール式の AI ツールキットです。

リンク: https://keras.io/

KerasはオープンソースのPythonライブラリで、特に初心者にとって使いやすいです。ニューラルネットワークモデルを迅速に構築でき、コンピュータービジョンエンジニアがアプリケーションの迅速な構築とモデルの学習に使用できるモジュール式のAIツールキットです。Kerasの基盤となるフレームワークはTensorFlowを採用しており、強力なコミュニティサポートにより、多くのユーザーを抱えています。Kerasで実現できることの例としては、以下のようなものがあります。

  • 画像のセグメンテーションと分類
  • 手書き認識
  • 3D画像分類
  • セマンティック画像クラスタリング

NVIDIA CUDA-Xは、新しいアプリケーションやGPAアクセラレーションをすぐに開始できるGPUアクセラレーションライブラリとツールのコレクションです。数学ライブラリ、並列アルゴリズムライブラリ、画像および動画ライブラリ、通信ライブラリ、ディープラーニングライブラリが含まれています。

リンク: https://developer.nvidia.com/

CUDA は Unified Device Architecture for Computing の略語であり、NVIDIA CUDA-X は CUDA の更新バージョンです。

NVIDIA CUDA-Xは、新しいアプリケーションやGPAアクセラレーションをすぐに開始できるGPUアクセラレーションライブラリとツールのコレクションです。数学ライブラリ、並列アルゴリズムライブラリ、画像および動画ライブラリ、通信ライブラリ、ディープラーニングライブラリが含まれており、顔認識、画像処理、3Dグラフィックスレンダリングなど、さまざまなタスクに使用できます。ほとんどのオペレーティングシステムと互換性があり、C、C++、Python、Fortran、MATLABなど、多くの主要なAIプログラミング言語をサポートしています。

NVIDIA パフォーマンス プリミティブ - CUDA (Compute Unified Device Architecture) は、NVIDIA が開発した並列コンピューティング プラットフォームおよびアプリケーション プログラミング インターフェイス (API) モデルです。

リンク: https://developer.nvidia.com/npp

CUDA(Compute Unified Device Architecture)は、NVIDIAが開発した並列コンピューティングプラットフォームおよびアプリケーションプログラミングインターフェース(API)モデルです。開発者はCUDAを利用することで、GPU(グラフィックス・プロセッシング・ユニット)のパワーを活用し、高負荷アプリケーションの処理を高速化できます。

このツールキットには、NVIDIA Performance Primitives (NPP) ライブラリが含まれており、コンピュータービジョンを含む複数の領域において、GPU アクセラレーションによる画像、動画、信号処理機能を提供します。さらに、CUDA アーキテクチャは、顔認識、画像処理、3D グラフィックスレンダリングなど、様々な開発タスクに利用できます。C、C++、Python、Fortran、MATLAB など、様々なプログラミング言語をサポートし、ほとんどのオペレーティングシステムと互換性があります。

PyTorch は、主に Facebook の AI 研究グループによって開発された、Python 用のオープンソースの機械学習フレームワークです。

Github: https://github.com/pytorch/pytorch

PyTorch 公式サイト

PyTorchは、FacebookのAI研究グループが中心となって開発した、Python用のオープンソース機械学習フレームワークです。複雑なアーキテクチャを構築する際に優れた柔軟性を提供します。マシンビジョン分野においては、画像評価モデル、画像セグメンテーション、画像分類などの開発に利用できます。

PyTorchは、Torchをベースに構築され、Pythonで記述されたオープンソースの機械学習フレームワークです。Torchは、ディープニューラルネットワークを構築するためのLuaスクリプト言語で記述されたオープンソースの機械学習ライブラリです。

PyTorchは幅広い数学演算をサポートし、人工ニューラルネットワークモデルの作成を簡素化します。PyTorchは主にデータサイエンティストによって研究や、コンピュータービジョンや自然言語処理といった人工知能アプリケーションに利用されています。PyTorchは修正BSDライセンスに基づいてライセンスされています。

2016年にMeta AI Researchによって設立されたPyTorchは、現在Linux Foundationの一部です。TeslaのAutopilot、UberのPyro、HuggingFaceのTransformers、PyTorch Lightning、Catalystなど、多くのディープラーニングソフトウェアプログラムがPyTorch上に構築されています。

PyTorchは2つの高度な機能を提供します。1つ目はNumPyに類似したテンソル計算で、GPUを用いて強力に高速化できます。2つ目は自動微分システムに基づくディープニューラルネットワークです。また、ONNXなどの他のライブラリとのモデル交換もサポートしています。

OpenVINO - 非常に包括的なコンピューター ビジョン ツール セットです。

Github: https://github.com/openvinotoolkit/openvino

OpenVINO公式サイト

OpenVINOは、Open Visual Inference and Neural Network Optimization(オープン・ビジュアル・インファレンス・アンド・ニューラル・ネットワーク・オプティマイゼーション)の略称です。包括的なコンピュータービジョンツールスイートです。Intelによって開発されたOpenVINOは、以下の様々なビジョン処理機能を備えた、無料のクロスプラットフォームフレームワークです。

  • 物体検出
  • 顔認識
  • 画像のカラー化
  • 動き認識

Caffe - カリフォルニア大学バークレー校が開発した、使いやすいオープンソースのディープラーニングおよびコンピューター ビジョン フレームワーク。

Github: https://github.com/BVLC/caffe

カフェ公式ウェブサイト

CAFFEは、Convolutional Architecture for Fast Feature Embedding(高速特徴埋め込みのための畳み込みアーキテクチャ)の略です。カリフォルニア大学バークレー校が開発した、使いやすいオープンソースのディープラーニングおよびコンピュータービジョンフレームワークです。

C++で記述されたCaffeは、複数のプログラミング言語と、画像分類およびセグメンテーションのための様々なディープラーニングアーキテクチャをサポートしています。ビジョン、音声、マルチメディアアプリケーションで使用でき、画像のセグメンテーション、分類、その他のタスクのためのモデル開発をサポートします。

SimpleCV は、無料のオープンソースのマシン ビジョン フレームワークです。

SimpleCV 公式サイト

SimpleCVは、無料のオープンソースマシンビジョンフレームワークです。このフレームワークは、ビット深度、色空間、バッファ管理、ファイル形式といった複雑な概念に関する深い知識を必要とせずに、OpenCVをはじめとする様々な高性能コンピュータビジョンライブラリに簡単にアクセスできるようにします。

Detectron2 は、Facebook AI Research (FAIR) によって開発された PyTorch ベースのオブジェクト検出ライブラリです。

Github: https://github.com/facebookresearch/detectron2

Detectron2 公式サイト

Detecrton 2 は、Facebook AI Research (FAIR) によって開発された PyTorch ベースのオブジェクト検出ライブラリです。

Detectron 2はDetectionのアップグレード版で、Faster R-CNN、Mask R-CNN、RetinaNet、DensePose、Cascade R-CNN、Panoptic FPN、TensorMaskなどのモデルが含まれています。Detectron 2の機能には、高密度ポーズ予測、パノプティック画像セグメンテーション、ジョイントセグメンテーション、オブジェクト検出などがあります。

Detectron2のアプリケーションシナリオ

やっと

コンピューター、キーボード—あなたの知恵を解き放ち、充実した人生を送りましょう。