Model VSUA mewakili gambar sebagai grafik terstruktur di mana node adalah unit visual semantik (VSUS): unit objek, atribut, dan hubungan. Model VSUA kami memanfaatkan sifat penyelarasan antara kata -kata keterangan dan VSU.

Jika Anda menemukan kode ini berguna dalam riset Anda maka silakan mengutip
@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}}
Untuk menginstal semua submodul: git clone --recursive https://github.com/ltguo19/VSUA-Captioning.git
Untuk detail lebih lanjut dan dataset lainnya, lihat ruotianluo/self-critical.pytorch
Unduh Coco Captions yang diproses dari tautan dari beranda Karpathy. Ekstrak dataset_coco.json dari file zip dan salin ke data/ . File ini memberikan keterangan praproses dan juga split kereta-val-uji standar.
Kemudian lakukan:
$ python scripts/prepro_labels.py --input_json data/dataset_coco.json --output_json data/cocotalk.json --output_h5 data/cocotalk prepro_labels.py akan memetakan semua kata yang terjadi <= 5 kali ke token UNK khusus, dan membuat kosakata untuk semua kata yang tersisa. Informasi gambar dan kosa kata dibuang ke data/cocotalk.json dan data caption yang didiskritisasi dibuang ke dalam data/cocotalk_label.h5 .
Kami menggunakan fitur gambar bottom-up yang telah diekstraksi sebelumnya. Unduh fitur yang telah diekstraksi dari tautan (kami menggunakan yang adaptif dalam percobaan kami). Misalnya:
mkdir data/bu_data ; cd data/bu_data
wget https://storage.googleapis.com/bottom-up-attention/trainval.zip
unzip trainval.zipKemudian:
python script/make_bu_data.py --output_dir data/cocobu Ini akan membuat data/cocobu_fc , data/cocobu_att dan data/cocobu_box .
Kami menggunakan data grafik adegan dari Yangxuntu/Sgae. Unduh file coco_img_sg.zip dan coco_pred_sg_rela.npy dari tautan ini dan masukkan ke dalam data folder dan kemudian unzip. coco_img_sg.zip berisi data grafik adegan untuk setiap gambar, termasuk label objek dan label atribut untuk setiap kotak dalam data bottom-up adaptif, dan label hubungan semantik antar kotak. coco_pred_sg_rela.npy berisi kosakata untuk label objek, atribut dan relasi.
Unduh file vsua_box_info.pkl dari tautan ini, yang berisi ukuran masing -masing kotak dan lebar/tinggi setiap gambar. Kemudian lakukan:
python scripts/cal_geometry_feats.py
python scripts/build_geometry_graph.py Untuk mengekstrak fitur relasi geometri dan membangun grafik geometri. Ini akan membuat data/geometry_feats-undirected.pkl dan data/geometry-iou0.2-dist0.5-undirected .
Secara keseluruhan, folder data harus berisi file/folder ini:
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 Skrip kereta akan membuang pos pemeriksaan ke folder yang ditentukan oleh --checkpoint_root dan --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 Menentukan GPU yang digunakan untuk menjalankan model. --id adalah nama percobaan ini dan semua informasi dan pos pemeriksaan akan dibuang ke folder checkpoint_root/id .--geometry_relation Menentukan jenis hubungan yang akan digunakan. Benar: Gunakan hubungan geometri, salah: Gunakan hubungan semantik.--resume_from untuk menjadi ID percobaan yang ingin Anda lanjutkan, dan gunakan --resume_from_best untuk memilih apakah akan melanjutkan dari pos pemeriksaan berkinerja terbaik atau pos pemeriksaan terbaru.checkpoint_root/id , dan dapat divisualisasikan menggunakan Tensorboard oleh sh script/tensorboard.sh .--language_eval 1 , tetapi jangan lupa untuk mengunduh kode coco-caption ke dalam direktori coco-caption .opts.py Dan lihat self-critical.pytorch untuk panduan pelatihan lebih lanjut. Kode ini dimodifikasi dari gambar Ruotian Luo yang brilian Captioning repo ruotianluo/self-critical.pytorch. Kami menggunakan fitur visual yang disediakan oleh Peteanderson80/bottention-attention, dan data grafik adegan yang disediakan oleh Yangxuntu/SGAE. Terima kasih atas pekerjaan mereka! Jika Anda menemukan kode ini bermanfaat, harap pertimbangkan mengutip kertas dan kertas kami yang sesuai.