Skip to content

Latest commit

 

History

History
98 lines (74 loc) · 5.6 KB

File metadata and controls

98 lines (74 loc) · 5.6 KB

English Français 中文 日本語

ロジスティック・テンソル・ニューラル・ネットワークを用いた視覚シーンの理解 🚀 🤖

Python 3.12 CUDA 12.4 LTNTorch Visual Genome YOLO OneFormer

このプロジェクトでは、セグメンテーションモデルとロジックテンソルネットワークを組み合わせ、一階論理式と多層パーセプトロンネットワークにより、画像中のオブジェクトの関係に関する推論を実現し、画像コンテンツ解析の向上を目指します。✨


全体的なアーキテクチャとモジュール分割

全体アーキテクチャ

  1. ✨ 画像のセグメンテーションと特徴抽出: 入力画像のセグメンテーションと特徴抽出には、UltraLyticsのYOLO-Segモデル、またはSHI-LabsのOneFormerモデルを使用します。セグメンテーションと特徴抽出のための画像
  2. ✨ゴール関係検出: LTNTorchの論理テンソルネットワークを用いて、各ゴールを論理述語に変換し、論理テンソルネットワークで推論する。
  3. ✨論理関係学習Visual Genomeデータベースの関係データを用いてロジスティックテンソルネットワークを学習した。
  4. ✨ 推論結果の出力: ユーザーが見つけた関係を三項形式で読み取り、推論結果を出力します。

インストレーションガイド

トレーニング環境(Ubuntu 22.04)

pip install -r requirements.train.txt

推論環境(macOS 15.3)

pip install -r requirements.inference.txt

YOLOとOneFormerの訓練済みモデルは、プログラムの実行時に自動的にダウンロードされます。

使用に関するガイドライン

トレーニングの例

from utils.Trainer import trainer

predicate = ["in", "on", "next to"]
for pred in predicate:
    print(f"🚂 {pred} 述語を訓練中 ...")
    trainer(
        pos_predicate=pred,
        neg_predicates=[p for p in predicate if p != pred],
        epoches=50,
        batch_size=32,
        lr=1e-4
    )

推論の例

from utils.Inferencer import Inferencer

# 推論器を初期化
analyzer = Inferencer(
    subj_class="person",
    obj_class="bicycle",
    predicate="near"
)

# 画像の単一推論を実行
result = analyzer.inference_single("demo.jpg")
print(f"🔎 Get :{result['relation']} (Confidence:{result['confidence']:.2f})")

# 画像フォルダの推論を実行
analyzer.process_folder("input_images/")

データベース

Visual Genomeデータベースの人間関係と画像メタデータデータを用いて、画像情報と特徴ペア情報を抽出した。

Visual Genole の例

このプロジェクトでは、リレーショナル データからデータとターゲットの場所を抽出し、イメージ データを抽出してターゲットの場所を正規化します。

コード スタイルとドキュメント

このプロジェクトでは、'blackisort を使用して、一貫したコード スタイルを自動的に適用します。すべてのコード コメントとドキュメントは、Google Python スタイル ガイド に従って、明瞭性と一貫性を維持します。

送信前にコードを同じ形式に保つには、次のコマンドを使用します。

black . && isort .

謝辞

このプロジェクトは LTNTorch プロジェクトに基づいており、データ抽出に Visual Genome データベースを使用します。このプロジェクトでは、オブジェクトの検出とセグメンテーションに YOLO および OneFormer モデルを使用します。

ライセンス

このプロジェクトは GNU3.0 ライセンスの下でライセンスされています。詳細については、LICENSE ファイルを参照してください。