ورق | أركسيف | كود NVS | صفحة المشروع
مجموعة بيانات MegaScenes عبارة عن مجموعة واسعة من حوالي 430 ألف مشهد و9 ملايين صورة وأشكال هندسية فوق القطبية، وتتميز بأكثر من 100 ألف عملية إعادة بناء للهيكل من الحركة من 2 مليون من هذه الصور. يتم التقاط صور هذه المشاهد في ظل ظروف مختلفة، بما في ذلك أوقات مختلفة من اليوم، وطقس وإضاءة مختلفة، ومن أجهزة مختلفة ذات خصائص كاميرا مميزة.
لعرض عمليات إعادة البناء في المتصفح، راجع عارض الويب الخاص بنا!
نحن نقدم ورقة بيانات لـ MegaScenes هنا .
إذا وجدت مجموعة البيانات أو الورقة البحثية الخاصة بنا مفيدة، فيرجى التفكير في الاستشهاد بها
@inproceedings {
tung2024megascenes,
title = { MegaScenes: Scene-Level View Synthesis at Scale } ,
author = { Tung, Joseph and Chou, Gene and Cai, Ruojin and Yang, Guandao and Zhang, Kai and Wetzstein, Gordon and Hariharan, Bharath and Snavely, Noah } ,
booktitle = { ECCV } ,
year = { 2024 }
}
تتم استضافة مجموعة بيانات MegaScenes على Amazon S3 بفضل برنامج رعاية البيانات المفتوحة AWS.
على وجه التحديد، تستخدم MegaScenes عنوان URL لحاوية AWS S3 s3://megascenes/
في منطقة AWS US-West-2
.
يمكن تنزيل جميع الملفات بشكل فردي . ولا يتم تقسيمها إلى ملفات بتنسيق .tar
أو .zip
.
يمكن للمستخدمين الوصول إلى مجموعة البيانات باستخدام s5cmd أو AWS CLI. هذه هي واجهات سطر الأوامر المثبتة محليًا والتي يمكنها الوصول إلى مجموعات البيانات على AWS. يحتوي كلا سطري سطر الأوامر (CLI) على أوامر متشابهة جدًا، لذا يمكن عادةً تحويل أمر s5cmd إلى أمر AWS CLI عن طريق استبدال البادئة s5cmd
بـ aws s3
.
في هذا القسم، سوف نشارك بعض أوامر s5cmd.
لنسخ ملف أو دليل من AWS إلى القرص المحلي، استخدم هذا الأمر: s5cmd --no-sign-request cp
وبدلاً من ذلك، يمكن استخدام sync
بدلاً من cp
. تعمل sync
أيضًا على التحقق من الاختلافات بين AWS ومجموعة البيانات التي تم تنزيلها محليًا.
مهم
إذا كان عنوان URL المصدر عبارة عن دليل، فيجب أن يحتوي على حرف بدل ( *
).
سيقوم هذا الأمر بتنزيل مجموعة البيانات بأكملها إلى مجلد محلي يسمى MegaScenes/
.
s5cmd --no-sign-request cp s3://megascenes/* ./MegaScenes/
يقوم هذا الأمر بتنزيل محتويات مجلد images
من AWS بشكل متكرر إلى المجلد المحلي MegaScenes/images/
:
s5cmd --no-sign-request cp s3://megascenes/images/* ./MegaScenes/images/
يقوم هذا الأمر بتنزيل ملف database.db
محدد من AWS إلى المجلد المحلي الخاص به:
s5cmd --no-sign-request cp s3://megascenes/databases/main/000/000/database.db ./MegaScenes/databases/main/000/000/database.db
من الممكن استخدام s5cmd لتحديد مجموعات فرعية من MegaScenes لتنزيلها؛ يتم ذلك عن طريق s5cmd run
مع ملف نصي لأوامر s5cmd. لمزيد من المعلومات، راجع وثائق s5cmd حول تشغيل أوامر متعددة بالتوازي.
سرد محتويات الدليل على AWS: s5cmd --no-sign-request ls
هذا الأمر مفيد لمعرفة العناصر الموجودة في كل دليل قبل تنزيلها على الجهاز المحلي.
يسرد هذا الأمر محتويات database/
المجلد الفرعي على AWS.
مدخل:
s5cmd --no-sign-request ls s3://megascenes/databases/
الإخراج:
DIR descriptors/
DIR main/
العلامة --no-sign-request
مخصصة للمستخدم للوصول إلى مجموعة AWS دون الحاجة إلى إنشاء بيانات اعتماد AWS وتوفيرها.
بالنسبة للأوامر الأخرى، يرجى مراجعة وثائق s5cmd أو AWS CLI.
يمكن تنزيل الملفات الفردية عبر HTTP (عبر wget
أو curl
) باستخدام عنوان URL الأساسي https://megascenes.s3.us-west-2.amazonaws.com/
.
على سبيل المثال، https://megascenes.s3.us-west-2.amazonaws.com/metadata/subcat/000/007/subcats.json هو تنزيل مباشر لمعلومات الفئة الفرعية لمعرف المشهد 7
.
شجرة دليل الجرافة هي كما يلي:
s3://megascenes/
أو https://megascenes.s3.us-west-2.amazonaws.com/
databases/
main/
000/000/
. . . 458/152/
descriptors/
000/000/
. . . 458/152/
images/
000/000/
. . . 458/152/
metadata/
subcat/
000/000/
. . . 458/148/
wikidata/
0/0/0/
. . . 9/9/9/
، other/
reconstruct/
000/000/
. . . 458/150/
README.md
يتم تمثيل المشهد برقم معرف المشهد المكون من ستة أرقام والمبطن بصفر كما هو موضح في مجلدات المشهد في الدلائل الفرعية القابلة للتطبيق. يمكن العثور على الدليل الذي يربط اسم المشهد بمعرف المشهد على: s3://megascenes/metadata/categories.json
. للحصول على تفاصيل حول محتويات المجلد الفرعي، راجع الأقسام المعنية أدناه.
databases/
الدليليضم هذا الدليل قواعد بيانات COLMAP لكل مشهد. تحتوي قواعد بيانات COLMAP على معلومات مجدولة حول الصور ونقاط المفاتيح والواصفات والمطابقات والأشكال الهندسية المقدرة ذات العرضين. تستخدم قواعد بيانات COLMAP تنسيق SQLite.
يتم تقسيم database/
الدليل إلى دليلين فرعيين:
main/
(1.9 تيرابايت)، والذي يحتوي على ملفات database.db
descriptors/
(6.8 تيرابايت مضغوطة، 8.3 تيرابايت غير مضغوطة)، والتي تحتوي على ملفات descriptors.db.gz
في الدليلين الفرعيين أعلاه، يتم تمثيل المشهد برقم معرف المشهد الخاص به كما هو موضح في مجلدات المشهد.
لكل مشهد، يتم تقسيم قاعدة بيانات COLMAP إلى ملفين:
database.db
، وهي قاعدة بيانات COLMAP بدون جدول الواصفات.descriptors.db.gz
، وهو جدول الواصفات المستخرج من قاعدة بيانات COLMAP كقاعدة بيانات SQLite خاصة به. يتم ضغطه ببرنامج gzip.نقوم بفصل جدول الواصفات لأنه يشغل معظم المساحة في قاعدة بيانات COLMAP، وقد لا يحتوي على معلومات ذات صلة بتطبيقات معينة.
بالنسبة للمشهد بالمعرف 1234
، ملفات قاعدة البيانات هي كما يلي:
databases/main/001/234/database.db
databases/descriptors/001/234/descriptors.db.gz
images/
الدليليضم هذا الدليل الصور والبيانات الوصفية للصورة لكل مشهد. يتم تمثيل المشهد برقم معرف المشهد الخاص به كما هو موضح في مجلدات المشهد.
images/
الدليل هو 3.2 تيرابايت.
يمكن أن يحتوي المشهد على أي عدد من الفئات الفرعية. تحتوي كل فئة فرعية على صور، و raw_metadata.json
، و category.json
، و 0/category.json
.
يتم تمثيل البيانات الوصفية للصورة في raw_metadata.json
. يحتوي ملف json هذا على مفتاح لكل اسم صورة، ويحتوي على معلومات لمختلف البيانات المستخرجة من Wikimedia Commons، بما في ذلك بيانات EXIF ومعلومات الترخيص.
اسم الفئة الفرعية للمشهد موجود في subcategory_name/category.json
.
توجد قائمة بأسماء الصور في subcategory_name/0/category.json
.
بالنسبة للمشهد بالمعرف 1234
، ملفات الصور هي كما يلي:
images/
001/234/
commons/
subcategory_name_1/
category.json
raw_metadata.json
0/
category.json
pictures/
image1.jpg
image2.jpg
subcategory_name_2/
category.json
raw_metadata.json
0/
category.json
pictures/
image1.jpg
image2.jpg
metadata/
الدليليضم هذا الدليل البيانات الوصفية لمجموعة البيانات.
يحتوي دليل metadata/
على المحتويات التالية:
subcat/
(386 ميجابايت)، وهو دليل يحتوي على ملفات JSON لمعلومات الفئة الفرعية للمشاهد التي تحتوي على فئة فرعية واحدة على الأقلwikidata/
(4.5 جيجابايت)، وهو دليل يحتوي على ملفات JSON لجميع إدخالات ويكي بيانات المتعلقة بالمشهد أو فئاتها الهرميةcategories.json
(19.2 ميجابايت)، وهو قاموس يقوم بتعيين اسم فئة Wikimedia Commons إلى معرف المشهد.images_index.parquet
(~230 ميجابايت)، وهو فهرس جدولي لجميع الصور في MegaScenes توجد معلومات الفئة الفرعية في دليل metadata/subcat/
. يتم تنظيم هذا الدليل حسب رقم معرف المشهد كما هو موضح في مجلدات المشهد.
المشهد موجود في metadata/subcat/
فقط إذا كان يحتوي على فئة واحدة على الأقل إلى جانب الفئة الرئيسية. سيحتوي مثل هذا المشهد على ملف subcats.json
لتمثيل بيانات الفئة الفرعية.
ملف subcats.json
هو قاموس يحتوي على الحقول التالية:
main_category
: سلسلة من اسم فئة المستوى الأعلى في ويكيميديا كومنز.graph
: قاموس يعين فئة ويكيميديا كومنز إلى قائمة فئاتها الفرعية المباشرة. ستكون الفئة مفتاحًا في graph
إذا تمت زيارتها. القائمة الفارغة تعني أن الفئة لا تحتوي على فئات فرعية.frontier
: قائمة الفئات الفرعية الموجودة في graph
والتي لم يتم توسيعها ليكون لها مفتاح خاص بها في graph
. تحتوي فئة Arco degli Argentari على معرف مشهد يبلغ 7
. معلومات الفئة الفرعية لهذا المشهد موجودة على s3://megascenes/metadata/subcat/000/007/subcats.json
وتحتوي على المحتويات التالية:
{
"main_category": "Arco_degli_Argentari",
"graph": {
"Arco_degli_Argentari": [
"Arco_degli_Argentari_in_art",
"Historical_images_of_the_Arco_degli_Argentari"
],
"Arco_degli_Argentari_in_art": [],
"Historical_images_of_the_Arco_degli_Argentari": [
"Arco_degli_Argentari_in_art"
]
},
"frontier": []
}
يوضح الرسم البياني هنا أن الفئة الرئيسية Arco degli Argentari تحتوي على فئتين فرعيتين: Arco degli Argentari في الفن والصور التاريخية لـ Arco degli Argentari. لا تحتوي فئة Arco degli Argentari في الفن على فئات فرعية، ومن هنا جاءت القائمة الفارغة. في المقابل، فإن فئة الصور التاريخية لـ Arco degli Argentari تحتوي على الفئة الفرعية Arco degli Argentari في الفن.
قائمة الحدود فارغة، مما يعني أن هذا الرسم البياني للفئة الفرعية موسع بالكامل.
نحن نقدم جدولًا يفهرس الصور في MegaScenes على s3://megascenes/metadata/images_index.parquet
(تنزيل HTTPS) (~230 ميجابايت). تقوم ملفات الباركيه بتخزين البيانات الجدولية مثل ملفات CSV، ولكنها أكثر إحكاما وأسرع في القراءة. ويمكن قراءتها باستخدام مكتبات Python dataframe، مثل Polars (مستحسن) أو Pandas. يحتوي هذا الجدول على أكثر من 8 ملايين صف، يمثل كل منها صورة في مجموعة البيانات. الأعمدة هي:
صفحة Wikimedia Commons الخاصة بالصورة موجودة على عنوان URL https://commons.wikimedia.org/wiki/File:{image_name}
. وبالمثل، فإن صفحة Wikimedia Commons الخاصة بفئة ما موجودة على عنوان URL https://commons.wikimedia.org/wiki/Category:{cat or subcat}
.
بينما يحتوي هذا الجدول على معلومات الترخيص التي تم تحليلها من Wikimedia Commons، فإننا نشجع المستخدم على التحقق من تراخيص الصور بنفسه.
يتم تنظيم wikidata/
الفئة الفرعية بواسطة Wikidata Q-ID. تحدد الأرقام الثلاثة الأولى من Q-ID المجلدات الفرعية الثلاثة التي يمكن العثور على معلومات Wikidata JSON فيها. إذا كان Q-ID يحتوي على أقل من ثلاثة أرقام، فإن JSON الخاص به موجود في المجلد other/
. وعلى عكس معرفات المشهد، فإن هذا الرقم ليس مبطنًا بصفر.
يوجد JSON لعنصر Wikidata ذو Q-ID Q1234
في metadata/wikidata/1/2/3/Q1234.json
.
يوجد JSON لعنصر Wikidata ذو Q-ID Q12
في metadata/wikidata/other/Q12.json
.
للحصول على وثائق JSON، راجع هذه الصفحة على Wikibase JSON.
للحصول على أدوات إضافية لتحليل JSON، راجع صفحة Wikidata هذه حول الوصول إلى البيانات.
reconstruct/
الدليل يحتوي هذا الدليل على عمليات إعادة بناء سحابة النقاط المتفرقة COLMAP لكل مشهد. يتم تنظيم دليل reconstruct/
حسب المشاهد، وفقًا لرقم معرف المشهد كما هو موضح في مجلدات المشهد. تتكون كل عملية إعادة بناء من images.bin
و cameras.bin
و points3D.bin
كما هو موضح هنا. قد لا يحتوي المشهد على أي إعادة بناء أو أكثر؛ يحتوي المجلد reconstruct/
فقط على مشاهد تحتوي على واحد أو أكثر.
حجم المجلد reconstruct/
429 جيجا بايت.
لنفترض أن المشهد ذو المعرف 1234
يحتوي على ثلاث عمليات إعادة بناء. في مجلد sparses/
لهذا المشهد، سيكون هناك ثلاثة مجلدات مرقمة من 0
إلى 2
.
وعلى وجه التحديد، يكون التنسيق كما يلي:
reconstruct/
001/234/
sparses/
0/
images.bin
cameras.bin
points3D.bin
1/
images.bin
cameras.bin
points3D.bin
2/
images.bin
cameras.bin
points3D.bin
يمكن مشاهدة عمليات إعادة البناء المتفرقة في MegaScenes باستخدام عارض الويب الخاص بنا.
وبدلاً من ذلك، يمكن عرض عمليات إعادة البناء محليًا باستخدام COLMAP GUI (يتطلب تثبيت COLMAP).
يمكن تحميل عمليات إعادة البناء في Python باستخدام البرنامج النصي read_write_model.py من مستودع COLMAP. على وجه التحديد، الوظائف المفيدة هي: read_model
، read_points3D_binary
، read_images_binary
، read_cameras_binary
تستخدم مجموعة البيانات نظامًا مكونًا من مجلدين فرعيين لتقسيم المشاهد، حيث يكون لكل مشهد رقم معرف المشهد. يستخدم المجلد الفرعي الأول الأرقام الثلاثة الأولى من معرف المشهد المبطن المكون من 6 أرقام. يستخدم المجلد الفرعي الثاني الأرقام الثلاثة الأخيرة. البيانات المرتبطة بالمشهد موجودة في المجلد الفرعي الأخير.
على سبيل المثال:
533
، فإنه يكون مبطنًا بصفر إلى 000533
. يُترجم هذا الرقم إلى الدليل 000/533/
.422678
، فإنه يترجم إلى الدليل 422/678/
.يعتمد كل مشهد على فئة من ويكيميديا كومنز. على سبيل المثال، يستخدم المشهد "Arc_de_Triomphe_de_l'Étoile" صورًا من الفئة:قوس النصر de l'Étoile وفئاته الفرعية. تستخدم MegaScenes الشرطات السفلية بدلاً من المسافات لأسماء المشاهد، ولكنها قابلة للتبديل عند استخدامها في عناوين URL الخاصة بـ Wikimedia Commons.
يربط الملف s3://megascenes/metadata/categories.json
(رابط HTTP) اسم الفئة بمعرف المشهد.
إذا وجدت أي عمليات إعادة بناء غير صحيحة أو لديك تحسينات لمجموعة البيانات، فيرجى إنشاء مشكلة GitHub أو منشور مناقشة.
تم ترخيص مجموعة البيانات هذه بموجب ترخيص Creative Commons Attribution 4.0 الدولي. الصور الموجودة في images/
المجلد لها تراخيص خاصة بها.