يمثل نموذج VSUA الصور كرسوم بيانية منظمة حيث تكون العقد هي الوحدات الدلالية البصرية المزعومة (VSUS): وحدات الكائن ، السمة ، وعلاقة. يستخدم نموذج 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
لمزيد من التفاصيل وغيرها
قم بتنزيل التسميات التوضيحية Coco المعالجة مسبقًا من Link من صفحة Karpathy الرئيسية. استخراج 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 .
نستخدم ميزات الصورة من أسفل إلى أعلى من الأسفل. قم بتنزيل الميزة المسبقة مسبقًا من Link (نستخدم التكييف في تجاربنا). على سبيل المثال:
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 في دليل coco-caption .opts.py وانظر الذاتية. تم تعديل هذا الرمز من صورة Ruotian Luo الرائعة لتسميات التسمية التوضيحية Ruotianluo/Self-Critical.pytorch. نحن نستخدم الميزات المرئية التي توفرها PeteAnderson80 من أسفل إلى أعلى ، وبيانات الرسم البياني للمشهد المقدمة من Yangxuntu/SGAE. شكرا لأعمالهم! إذا وجدت هذا الرمز مفيدًا ، فيرجى التفكير في ذكر أوراقها المقابلة وورقنا.