Модель VSUA представляет изображения как структурированные графики, где узлы являются так называемыми визуальными семантическими единицами (VSU): объект, атрибут и единицы взаимоотношений. Наша модель VSUA использует природу выравнивания между словами подписи и VSUS.

Если вы найдете этот код полезным в своем исследовании, пожалуйста, цитируйте
@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
Загрузите предварительные подписи Coco со ссылки с домашней страницы Карпати. Извлечь dataset_coco.json из файла ZIP и скопируйте его в 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 раз с специальным токеном 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 Указывает тип отношения для использования. Верно: Используйте отношения геометрии, ложь: используйте семантические отношения.--resume_from как идентификатор эксперимента, из которого вы хотите возобновить, и использовать --resume_from_best , чтобы выбрать, следует ли возобновить из наиболее эффективной контрольной точки или последней контрольной точки.checkpoint_root/id и могут быть визуализированы с использованием Tensorboard с помощью sh script/tensorboard.sh .--language_eval 1 , но не забудьте загрузить код Coco-Caption в каталог coco-caption .opts.py И увидеть самокритичный. Этот код изменяется из блестящей подписания изображения Ruotian Luo Repo Ruotianluo/Selfcritical.pytorch. Мы используем визуальные функции, предоставляемые снизу вверх Peteanserson80/снизу вверх, и данные о графе сцены, предоставленные Yangxuntu/SGAE. Спасибо за их работы! Если вы найдете этот код полезным, пожалуйста, рассмотрите возможность ссылаться на их соответствующие документы и нашу статью.