ホームページ  >  記事  >  テクノロジー周辺機器  >  PyTorch をベースにした使いやすく、きめ細かい画像認識ディープラーニング ツール ライブラリ Hawkeye はオープンソースです

PyTorch をベースにした使いやすく、きめ細かい画像認識ディープラーニング ツール ライブラリ Hawkeye はオープンソースです

WBOY
WBOY転載
2023-04-12 20:43:031612ブラウズ

細粒度画像認識 [1] は、視覚認識学習における重要な研究トピックです。インテリジェントなニューエコノミーや産業用インターネットにおいて大きな応用価値があり、多くの現実世界のシナリオで広く使用されています...現在の分野には情報が不足しているという見解 この分野の深層学習のためのオープンソース ツール ライブラリとして、南京科技大学の Wei Xiucen 教授のチームは、オープンソースであるホークアイの開発、改良、完成に 1 年近くを費やしました。関連分野の研究者やエンジニアが参照できる、きめの細かい画像認識ディープラーニング用のツール ライブラリです。この記事ではホークアイについて詳しく紹介しています。

1. Hawkeye ライブラリとは

Hawkeye は、PyTorch に基づく高粒度画像認識深層学習ツール ライブラリであり、関連分野の研究者やエンジニア向けに特別に設計されています。現在、ホークアイには、「深度フィルターに基づく」、「注意メカニズムに基づく」、「高次特徴相互作用に基づく」、「特殊損失関数に基づく」、「ネットワーク データに基づく」およびその他の方法。

Hawkeye プロジェクトのコード スタイルは優れており、構造は明確で読みやすく、拡張性も優れています。高粒度画像認識の分野が初めての方にとって、Hawkeye はとっつきやすく、高粒度画像認識の主なプロセスや代表的な手法を理解しやすく、また、このツール ライブラリに独自のアルゴリズムを迅速に実装します。さらに、ライブラリには各モデルのトレーニング サンプル コードも用意されており、サンプルに従って独自に開発したメソッドをすぐに適応して Hawkeye に追加することもできます。

Hawkeye オープン ソース ライブラリのリンク: https://github.com/Hawkeye-FineGrained/Hawkeye

2. Hawkeye でサポートされているモデルとメソッド

Hawkeye は現在、ファイングレインをサポートしています。粒子状の画像 以下に示すように、認識における主要な学習パラダイムのモデルと手法は合計 16 個あります。

ディープ フィルターに基づく

  • S3N (ICCV 2019)
  • Interp-Parts (CVPR 2020)
  • ProtoTree (CVPR 2021)

アテンション メカニズムに基づく

    #OSME MAMC (ECCV 2018)
  • MGE-CNN (ICCV 2019)
  • APCNN (IEEE TIP 2021)

高水準に基づく順序機能インタラクション

    BCNN (ICCV 2015)
  • CBCNN (CVPR 2016)
  • 高速 MPN-COV (CVPR 2018)

特殊損失関数に基づく

    ペアワイズ混乱 (ECCV 2018)
  • API-Net (AAAI 2020)
  • CIN (AAAI 2020)

ネットワーク データに基づく

ピアラーニング (ICCV 2021)

その他の方法

NTS-Net (ECCV 2018)

CrossX (ICCV 2019)

DCL (CVPR 2019)

3. Hawkeye のインストール

依存関係のインストール

conda または pip を使用して関連する依存関係をインストールします:

    Python 3.8
  • PyTorch 1.11.0 以降
  • torchvison 0.12。 0 以上
  • #numpy
  • yacs
  • tqdm
リポジトリのクローンを作成します:

git clone https://github .com/Hawkeye-FineGrained/Hawkeye.gitcd ホークアイ

データ セットの準備

一般的に使用される 8 つの詳細な認識データ セットと最新のダウンロード リンクを提供します。

#CUB200: https://data.caltech.edu/records/65de6-vp158/files/CUB_200_2011.tgz
  • スタンフォード ドッグ: http://vision.stanford.edu/ aditya86/ImageNetDogs/images.tar
  • スタンフォード自動車: http://ai.stanford.edu/~jkrause/car196/car_ims.tgz
  • FGVC 航空機: https://www.robots .ox.ac.uk/~vgg/ data/fgvc-aircraft/archives/fgvc-aircraft-2013b.tar.gz
  • iNat2018: https://ml-inat-competition-datasets.s3.amazonaws .com/2018/train_val2018.tar.gz
  • WebFG-bird: https://web-fgvc-496-5089-sh.oss-cn-shanghai.aliyuncs.com/web-bird.tar。 gz
  • WebFG-car : https://web-fgvc-496-5089-sh.oss-cn-shanghai.aliyuncs.com/web-car.tar.gz
  • WebFG-航空機: https://web-fgvc- 496-5089-sh.oss-cn-shanghai.aliyuncs.com/web-aircraft.tar.gz
  • まず、データ セットをダウンロードします ( CUB200 を例にします):
cd Hawkeye/data
wget https://data.caltech.edu/records/65de6-vp158/files/CUB_200_2011.tgz
mkdir bird && tar -xvf CUB_200_2011.tgz -C bird/

上記 8 つのデータセットのメタデータ ファイルを提供しており、ライブラリ内の FGDataset と一致してトレーニング セットとテスト セットを簡単にロードできます。 set は、各データ セットによって提供される正式な区分です。異なるデータセットを使用する場合、切り替えを容易にするために、実験の構成ファイル内のデータセット構成を変更するだけで済みます。

実験用構成ファイルのデータセット構成を変更します (例は次のとおりです):

dataset:
name: cub
root_dir: data/bird/CUB_200_2011/images
meta_dir: metadata/cub

4. Hawkeye を使用してモデルをトレーニングします

Hawkeye でサポートされている各メソッドについて、個別のトレーニング テンプレートと設定ファイルを提供します。たとえば、APINet のトレーニングに必要なコマンドは 1 つだけです:

python Examples/APINet.py --config configs/APINet.yaml

実験のパラメーターはすべて、対応する yaml ファイル内にあり、可読性が高く、変更が簡単です。たとえば、次のようになります。実験のメインプログラム Examples/APINet .py のトレーナー APINetTrainer は Trainer から継承されており、複雑な学習処理、ロガー、モデルの保存、設定の読み込みなどのコードを記述する必要はなく、必要に応じて一部のモジュールを変更するだけで済みます。また、トレーニング段階で複数のフックも提供されており、一部のメソッドの特殊な実装に対応できます。

ログ ファイル、モデルの重みファイル、トレーニングに使用したトレーニング コード、およびそのときの設定ファイルは、実験出力ディレクトリ log_dir に保存されます。設定とトレーニング コードをバックアップすると、将来のさまざまな実験の比較が容易になります。 。

より詳細な例については、プロジェクト リンクの特定の情報を参照してください: https://github.com/Hawkeye-FineGrained/Hawkeye

以上がPyTorch をベースにした使いやすく、きめ細かい画像認識ディープラーニング ツール ライブラリ Hawkeye はオープンソースですの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事は51cto.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。