VSUAモデルは、ノードがいわゆるビジュアルセマンティックユニット(VSU)である構造化グラフとして画像を表します:オブジェクト、属性、および関係単位。私たちのVSUAモデルは、キャプションワードとVSUの間のアライメントの性質を利用しています。

このコードがあなたの研究で役立つと思うなら、引用してください
@inproceedings{guo2019vsua,
title={Aligning Linguistic Words and Visual Semantic Units for Image Captioning},
author={Longteng Guo, Jing Liu, Jinhui Tang, Jiangwei Li, Wei Luo, and Hanqing Lu},
booktitle={ACM MM},
year={2019}}
すべてのサブモジュールをインストールするには: git clone --recursive https://github.com/ltguo19/VSUA-Captioning.git
詳細およびその他のデータセットについては、ruotianluo/selfcritical.pytorchを参照してください
KarpathyのホームページからLinkからPreprocessed Cocoキャプションをダウンロードします。 zipファイルからdataset_coco.jsonを抽出し、 data/にコピーします。このファイルは、前処理されたキャプションと標準の列車バルテストスプリットを提供します。
その後、:
$ python scripts/prepro_labels.py --input_json data/dataset_coco.json --output_json data/cocotalk.json --output_h5 data/cocotalk prepro_labels.py 、発生するすべての単語を<= 5回5回特別なUNKトークンにマッピングし、残りのすべての単語の語彙を作成します。画像情報と語彙はdata/cocotalk.jsonに投棄され、離散化されたキャプションデータはdata/cocotalk_label.h5に投棄されます。
事前に抽出されたボトムアップ画像機能を使用します。リンクから事前に抽出された機能をダウンロードします(実験で適応型を使用します)。例えば:
mkdir data/bu_data ; cd data/bu_data
wget https://storage.googleapis.com/bottom-up-attention/trainval.zip
unzip trainval.zipそれから:
python script/make_bu_data.py --output_dir data/cocobuこれにより、 data/cocobu_fc 、 data/cocobu_att 、 data/cocobu_boxが作成されます。
Yangxuntu/Sgaeのシーングラフデータを使用します。このリンクからファイルcoco_img_sg.zipおよびcoco_pred_sg_rela.npyをダウンロードして、フォルダーdataに入れてから解凍します。 coco_img_sg.zipには、各画像のシーングラフデータが含まれています。これには、オブジェクトラベルや属性ごとのボックスのラベル、およびボックス間のセマンティックリレーションシップラベルが含まれます。 coco_pred_sg_rela.npyは、オブジェクト、属性、および関係ラベルの語彙が含まれています。
このリンクからファイルvsua_box_info.pklをダウンロードします。このリンクには、各ボックスのサイズと各画像の幅/高さが含まれています。その後、:
python scripts/cal_geometry_feats.py
python scripts/build_geometry_graph.pyジオメトリ関係の特徴を抽出し、ジオメトリグラフを作成します。これによりdata/geometry_feats-undirected.pklとdata/geometry-iou0.2-dist0.5-undirected作成されます。
全体として、データフォルダーにはこれらのファイル/フォルダーを含める必要があります。
cocotalk.json # additional information about images and vocab
cocotalk_label.h5 # captions
coco-train-idxs.p # cached token file for cider
cocobu_att # bottom-up feature
cocobu_fc # bottom-up average feature
coco_img_sg # scene graph data
coco_pred_sg_rela.npy # scene graph vocabularies
vsua_box_info.pkl # boxes and width and height of images
geometry-iou0.2-dist0.5-undirected # geometry graph data python train.py --gpus 0 --id experiment-xe --geometry_relation Trueトレインスクリプトは、 --checkpoint_rootおよび--idで指定されたフォルダーにチェックポイントをダンプします。
python train.py --gpus 0 --id experiment-rl --geometry_relation True --learning_rate 5e-5 --resume_from experiment-xe --resume_from_best True --self_critical_after 0 --max_epochs 50--gpuモデルの実行に使用されるGPUを指定します。 --idはこの実験の名前であり、すべての情報とチェックポイントはcheckpoint_root/idフォルダーにダンプされます。--geometry_relation使用する関係のタイプを指定します。 TRUE:ジオメトリ関係を使用し、偽:セマンティック関係を使用します。--resume_fromオプションを指定して、再開したい実験IDになり、使用して--resume_from_bestを使用して、最高のパフォーマンスのチェックポイントまたは最新のチェックポイントから再開するかどうかを選択できます。checkpoint_root/idにダンプされ、 sh script/tensorboard.shによってTensorboardを使用して視覚化できます。--language_eval 1オプションを使用しますが、CoCo-Captionコードをcoco-captionディレクトリにダウンロードすることを忘れないでください。opts.py参照してください。そして、より多くのトレーニングガイダンスについては、selfcritical.pytorchを参照してください。 このコードは、Ruotian Luoの素晴らしい画像キャプションリポジトリRuotianluo/selfcritical.pytorchから変更されています。ボトムアップのPeteanDerson80/Bottom-Up-Attentionが提供する視覚的な機能と、Yangxuntu/Sgaeが提供するシーングラフデータを使用します。彼らの作品をありがとう!このコードが役立つ場合は、対応する論文と私たちの論文を引用することを検討してください。