|
みなさんこんにちは、エチャです。 コンピュータビジョンは、音声認識や自然言語理解とともに人工知能の3大技術分野の一つとして知られており、AI技術が最も広く応用され産業化されている分野でもあります。 百度アポロスケープ 技術の発展に伴い、コンピューターは現実世界の物体を認識するために、センサーハードウェアデバイス(カメラ、ソナーなど)に頼らざるを得なくなりました。これは、人間の目が周囲の世界を認識し、反応するのと同じです。しかし、コンピューターがセンサーによって検出された物体を識別するには、事前に特定の視覚アルゴリズムを用いて大量のデータでトレーニングする必要があります。そうすることで初めて、コンピューターはセンサーデータに含まれる物体のカテゴリーを認識し、それに応じて反応できるようになります。 ホンダのインテリアデザイン 今日、コンピュータービジョンは、本人確認、製造、農業、医療、輸送、海洋科学など、多くの業界で幅広く応用されています。その結果、高品質なコンピュータービジョンライブラリの需要が高まっています。コンピュータービジョンライブラリは、事前に記述されたアルゴリズムコードと、事前学習済みのモデルまたはデータで構成されています。現在、オープンソース分野には、画像認識ライブラリや顔認識ライブラリなど、数多くのコンピュータービジョンライブラリが存在します。 ネクセット 今回は、話題沸騰中のオープンソース技術プロジェクト16選をご紹介したいと思います。皆さんのお役に立てれば幸いです。皆さんはいくつご存知ですか?一つずつご紹介していきます。 全文概要
OpenCV は、現在までで最も古く、最も人気のあるオープンソースのコンピューター ビジョン ライブラリです。Github: https://github.com/opencv/opencv OpenCV公式サイト OpenCV は、コンピューター ビジョン アプリケーションに汎用的な基礎アルゴリズムを提供するように設計された、現在までに最も古く、最も人気のあるオープン ソースのコンピューター ビジョン ライブラリです。 Windows、Linux、Android、macOSを含むクロスプラットフォームアプリケーションをサポートしています。Python、Java、C++など、様々な主要開発言語をサポートしています。OpenCVには、GPU向けCUDAモデルをサポートするPythonラッパーがあり、TensorFlowモデルに変換可能なモデルも含まれています。元々はIntelによって開発されましたが、現在はオープンソースBSDライセンスの下で無料で利用可能です。 OpenCV の主な機能は次のとおりです。
OpenCV デモ Github: https://github.com/pytorch/pytorch PyTorch 公式サイト TorchVisionはPyTorchの拡張ライブラリです。TorchVisionには、コンピュータービジョンで最も一般的な画像変換関数が搭載されており、コンピュータービジョンニューラルネットワーク用のデータセットとモデルアーキテクチャ、そして一般的なデータセットも含まれています。 TorchVisionは、画像をNumPy配列に変換することなく、PyTorchモデルを用いたコンピュータービジョン画像変換を容易にするように設計されています。TorchVisionはPythonおよびC++開発環境で使用できます。PyTorchライブラリと一緒にpip経由でインストールできます。 以下は、事前トレーニング済みのセグメンテーション モデルの使用例です。 Github: https://github.com/ultralytics/ultralytics YOLO公式サイト YOLOは、ジョセフ・レドモンドとアリ・ファルハディによって2016年に開発された、リアルタイム画像物体検出に特化した最速のコンピュータービジョンツールの一つです。YOLOはニューラルネットワークを用いて画像をグリッドに分割し、各グリッドを同時に予測することで認識効率を向上させます。 YOLOバージョン8がリリースされました。YOLOv8は最先端(SOTA)モデルであり、以前のYOLOバージョンの成功を基に、新機能と改良点を導入することで、パフォーマンスと柔軟性をさらに向上させています。YOLOv8は、そのスピード、精度、使いやすさにより、物体検出と追跡、インスタンスセグメンテーション、画像分類、姿勢推定といった幅広いタスクに最適です。 YOLOアプリケーションシナリオ 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 は、次の機能を提供するコンピューター ビジョンの基本ライブラリです。
MMCV は、以下を含む複数のプラットフォームをサポートしています。
Github: https://github.com/scikit-image/scikit-image Scikit-Image 公式サイト Scikit-Imageは、最も便利なPythonビジョンライブラリとして広く認知されており、Scikit-Learnの拡張版です。教師あり学習と教師なし学習の両方で広く使用されているツールの一つです。NumPy配列を画像オブジェクトとして処理するのに使用できます。 以下は、Scikit-image を使用したコイン認識の例です。 Github: https://github.com/python-pillow/Pillow ピロー(PILフォーク)公式サイト PillowはPythonで書かれた画像処理ライブラリです。Windows、Mac OS X、Linuxプラットフォームに対応し、C言語とPythonの両方で使用できます。主に様々な形式の画像の読み込みと保存に使用されますが、回転、結合、拡大縮小といった基本的な画像変換機能も備えています。 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 アプリケーションシナリオ リンク: https://ww2.mathworks.cn/products/matlab.html MATLAB公式サイト MATLABはMatrix Laboratoryの略称ですが、機械学習、ディープラーニング、画像処理、ビデオ信号処理などのアプリケーションに適した有料のプログラミングプラットフォームです。エンジニアや科学者の間で人気のプラットフォームです。MATLABには、以下のような多くのアルゴリズム機能を備えたコンピュータービジョンツールキットが搭載されています。
リンク: https://keras.io/ KerasはオープンソースのPythonライブラリで、特に初心者にとって使いやすいです。ニューラルネットワークモデルを迅速に構築でき、コンピュータービジョンエンジニアがアプリケーションの迅速な構築とモデルの学習に使用できるモジュール式のAIツールキットです。Kerasの基盤となるフレームワークはTensorFlowを採用しており、強力なコミュニティサポートにより、多くのユーザーを抱えています。Kerasで実現できることの例としては、以下のようなものがあります。
リンク: 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プログラミング言語をサポートしています。 リンク: 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 など、様々なプログラミング言語をサポートし、ほとんどのオペレーティングシステムと互換性があります。 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などの他のライブラリとのモデル交換もサポートしています。 Github: https://github.com/openvinotoolkit/openvino OpenVINO公式サイト OpenVINOは、Open Visual Inference and Neural Network Optimization(オープン・ビジュアル・インファレンス・アンド・ニューラル・ネットワーク・オプティマイゼーション)の略称です。包括的なコンピュータービジョンツールスイートです。Intelによって開発されたOpenVINOは、以下の様々なビジョン処理機能を備えた、無料のクロスプラットフォームフレームワークです。
Github: https://github.com/BVLC/caffe カフェ公式ウェブサイト CAFFEは、Convolutional Architecture for Fast Feature Embedding(高速特徴埋め込みのための畳み込みアーキテクチャ)の略です。カリフォルニア大学バークレー校が開発した、使いやすいオープンソースのディープラーニングおよびコンピュータービジョンフレームワークです。 C++で記述されたCaffeは、複数のプログラミング言語と、画像分類およびセグメンテーションのための様々なディープラーニングアーキテクチャをサポートしています。ビジョン、音声、マルチメディアアプリケーションで使用でき、画像のセグメンテーション、分類、その他のタスクのためのモデル開発をサポートします。 SimpleCV 公式サイト SimpleCVは、無料のオープンソースマシンビジョンフレームワークです。このフレームワークは、ビット深度、色空間、バッファ管理、ファイル形式といった複雑な概念に関する深い知識を必要とせずに、OpenCVをはじめとする様々な高性能コンピュータビジョンライブラリに簡単にアクセスできるようにします。 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のアプリケーションシナリオ やっとコンピューター、キーボード—あなたの知恵を解き放ち、充実した人生を送りましょう。 |