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/self-critical.pytorch를 참조하십시오
Karpathy의 홈페이지에서 링크에서 전처리 된 코코 캡션을 다운로드하십시오. 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 번 발생하는 모든 단어를 특별한 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 : 기하학 관계 사용, False : 시맨틱 관계를 사용하십시오.--resume_from 옵션을 지정하여 재개하려는 실험 ID가되고 --resume_from_best 사용하여 가장 성능이 좋은 체크 포인트 또는 최신 체크 포인트에서 재개 여부를 선택할 수 있습니다.checkpoint_root/id 에 덤프되며 sh script/tensorboard.sh 로 Tensorboard를 사용하여 시각화 할 수 있습니다.--language_eval 1 옵션을 사용하지만 Coco-Caption 코드를 coco-caption 디렉토리로 다운로드하는 것을 잊지 마십시오.opts.py 참조하십시오. 더 많은 교육 지침은 Self-Critical.pytorch를 참조하십시오. 이 코드는 Ruotian Luo의 화려한 이미지 캡션 repo ruotianluo/selfcritical.pytorch에서 수정되었습니다. 상향식 PeteAnderson80/상향식 소지가 제공하는 시각적 기능과 Yangxuntu/SGAE가 제공하는 장면 그래프 데이터를 사용합니다. 그들의 작품에 감사드립니다! 이 코드가 도움이되면 해당 논문과 논문을 인용하는 것을 고려하십시오.