ข้อมูลเมตา XMP ของภาพ 360 องศา

เนมสเปซของภาพพาโนรามาที่อธิบายในที่นี้มีสมบัติที่ให้ข้อมูลเกี่ยวกับการสร้างและการแสดงภาพของ Photo Sphere หรือที่บางครั้งเรียกว่าพาโนรามา เช่น ภาพที่สร้างขึ้นโดยคุณลักษณะ Photo Sphere ในกล้องถ่ายรูปของ Android 4.2 ข้อมูลเมตาควรอยู่ในรูปแบบที่ต่อเนื่องและฝังไว้ในภาพ 360 องศาตามที่อธิบายไว้ตามมาตรฐาน Adobe XMP (ดูreferencesที่ส่วนท้ายของหน้านี้)

URI ของเนมสเปซคือ http://ns.google.com/photos/1.0/panorama/

พร็อพเพอร์ตี้ข้อมูลเมตา

แผนภาพและตารางด้านล่างแสดงคุณสมบัติของ Photo Sphere ที่รวมอยู่ในพารามิเตอร์ GPano ขณะแก้ไขและดู Photo Sphere โปรดตรวจสอบให้แน่ใจว่า ได้ยืนยันและอัปเดตข้อมูลเมตาตามรายละเอียดที่ให้ไว้ในภายหลังของเอกสารนี้ เมื่อระบุช่องท่าทางและส่วนหัวเริ่มต้น โปรดทำตามแบบแผนมุมออยเลอร์ ซึ่งจะกล่าวถึงต่อไปในเอกสารนี้

โปรดทราบว่าผลิตภัณฑ์ Google สนับสนุนเพียงการฉายภาพ 360 องศาเท่านั้น ขณะนี้มีผู้อื่นสนับสนุนการคาดการณ์เพิ่มเติมเท่านั้น

การฉายภาพ 360 องศา

เส้นโครงรูปทรงกระบอก

โปรดทราบว่าหากด้านบนของรูปภาพทรงกระบอกเหนือขอบฟ้า CroppedAreaTopPixels ต้องเป็นค่าลบ ค่า 0 สำหรับ CroppedAreaTopPixels จะวางด้านบนของรูปภาพตรงขอบฟ้า ค่าบวกของ CroppedAreaTopPixels จะวางด้านบนของรูปภาพไว้ใต้ขอบฟ้า

การอ้างอิงพารามิเตอร์ GPano

ชื่อ Type จำเป็น ค่าเริ่มต้น
(คาดว่าผู้ชม)
คำอธิบายที่พัก ต้องดำเนินการหากมีการแก้ไขรูปภาพ
GPano:UsePanoramaViewer บูลีน ไม่ได้ จริง กำหนดว่าจะแสดงภาพนี้ในโปรแกรมดู Photo Sphere แทนที่จะเป็นภาพธรรมดาทั่วไปหรือไม่ ซึ่งอาจระบุตามค่ากำหนดของผู้ใช้หรือตามซอฟต์แวร์ต่อภาพ แอปพลิเคชันที่แสดงหรือนำเข้ารูปภาพอาจเลือกที่จะไม่สนใจข้อความนี้ สัดส่วน/การครอบตัด:
ไม่มีการเปลี่ยนแปลง แอปพลิเคชันอาจตัดสินใจเปลี่ยนค่านี้เป็น "เท็จ" หากช่องของมุมมองต่ำกว่าค่าที่กำหนด
GPano:CaptureSoftware สตริง ไม่ได้ ไม่มี หากทำการจับภาพโดยใช้แอปพลิเคชันบนอุปกรณ์เคลื่อนที่ เช่น โทรศัพท์ Android ชื่อแอปพลิเคชันที่ใช้ (เช่น "ภาพ 360 องศา") ควรเว้นว่างไว้หากรูปภาพต้นฉบับถ่ายด้วยตนเอง เช่น โดยการใช้กล้อง DSLR บนขาตั้งกล้อง ไม่มี
GPano:StitchingSoftware สตริง ไม่ได้ ไม่มี ซอฟต์แวร์ที่ใช้สร้างภาพ 360 องศาสุดท้าย บางครั้งค่านี้อาจเหมือนกับของ GPano:Capture Software ไม่มี
GPano:ProjectionType ตัวเลือกข้อความแบบเปิด มี

ทรงกลม

ประเภทการฉายภาพที่ใช้ในไฟล์ภาพ ขณะนี้ผลิตภัณฑ์ของ Google รองรับค่าทรงกลมเท่านั้น การปรับขนาด/การครอบตัด: ไม่มีการเปลี่ยนแปลง
GPano:PoseHeadingDegrees จริง ไม่ แต่จำเป็นต้องระบุเพื่อแสดงบน Google Maps ไม่มี ทิศทางของเข็มทิศซึ่งวัดเป็นองศาตามเข็มนาฬิกาจากทิศเหนือ เพื่อกำหนดศูนย์กลางรูปภาพ ค่าต้องเป็น >= 0 และ < 360 การปรับขนาด/การครอบตัด: ไม่มีการเปลี่ยนแปลง
GPano:PosePitchDegrees จริง ไม่ได้ 0 ระดับความสูงต่ำ วัดเป็นองศาเหนือขอบฟ้า สําหรับศูนย์กลางของภาพ ค่าต้องเป็น >= -90 และ <= 90 การปรับขนาด/การครอบตัด: ไม่มีการเปลี่ยนแปลง
GPano:PoseRollDegrees จริง ไม่ได้ 0 หมุน วัดเป็นองศาของภาพในระดับที่มีแนวเส้นขอบฟ้าเป็น 0 เมื่อหมุนเพิ่มขึ้น ขอบฟ้าจะหมุนทวนเข็มนาฬิกาในรูปภาพ ค่าต้องมากกว่า -180 และ <= 180 การปรับขนาด/การครอบตัด: ไม่มีการเปลี่ยนแปลง
GPano:InitialViewHeadingDegrees จำนวนเต็ม ไม่ได้ 0 มุมทิศทางของมุมมองเริ่มต้นเป็นองศาตามเข็มนาฬิกาจากโลกจริง ทิศเหนือ ไม่ใช่จุดศูนย์กลางพาโนรามา การปรับขนาด/การครอบตัด: ไม่มีการเปลี่ยนแปลง
GPano:InitialViewPitchDegrees จำนวนเต็ม ไม่ได้ 0 มุมระดับความสูงต่ำของมุมมองเริ่มต้นในหน่วยองศาเหนือเส้นขอบฟ้าของโลก ไม่สัมพันธ์กับศูนย์กลางพาโนรามา การปรับขนาด/การครอบตัด: ไม่มีการเปลี่ยนแปลง
GPano:InitialViewRollDegrees จำนวนเต็ม ไม่ได้ 0 มุมการกลิ้งของมุมมองเริ่มต้นเป็นองศาที่ระดับกับขอบฟ้าของโลกจริงเป็น 0 เมื่อการทอยเพิ่มขึ้น แนวเส้นขอบฟ้าจะหมุนทวนเข็มนาฬิกาในมุมมอง การปรับขนาด/การครอบตัด: ไม่มีการเปลี่ยนแปลง
GPano:InitialHorizontalFOVDegrees จริง ไม่ได้ ไม่มี ขอบเขตการมองเห็นแนวนอนเริ่มต้นที่ผู้ดูควรแสดงผล (หน่วยเป็นองศา) ซึ่งคล้ายกับระดับการซูม ไม่มี
GPano:InitialVerticalFOVDegrees จริง ไม่ได้ ไม่มี ฟิลด์มุมมองแนวตั้งเริ่มต้นที่ผู้ชมควรจะแสดง (หน่วยเป็นองศา) ซึ่งคล้ายกับระดับการซูม หากมีทั้ง GPano:InitialHorizontalFOVDegrees และ GPano:InitialVerticalFOVDegrees ระบบจะใช้ GPano:InitialHorizontalFOVDegrees ก่อน ใช้เฉพาะ InitialVerticalFOVDegrees หากมีการแสดงเนื้อหาของคุณในสัดส่วนภาพหลายแบบ และคุณอยากให้พื้นที่ของมุมมองแนวตั้งคงที่ ในขณะที่มุมมองแนวนอนอาจมีการเปลี่ยนแปลง ขณะนี้ผลิตภัณฑ์ของ Google ยังไม่รองรับช่องนี้ ไม่มี
GPano:FirstPhotoDate วันที่ ไม่ได้ ไม่มี วันที่และเวลาของภาพแรกที่สร้างขึ้นในภาพ 360 องศา การปรับขนาด/การครอบตัด: ไม่มีการเปลี่ยนแปลง
GPano:LastPhotoDate วันที่ ไม่ได้ ไม่มี วันที่และเวลาของรูปภาพสุดท้ายที่สร้างใน Photo Sphere การปรับขนาด/การครอบตัด: ไม่มีการเปลี่ยนแปลง
GPano:SourcePhotosCount จำนวนเต็ม ไม่ได้ ไม่มี จำนวนภาพต้นฉบับที่ใช้สร้างภาพ 360 องศา การปรับขนาด/การครอบตัด: ไม่มีการเปลี่ยนแปลง
GPano:ExposureLockUsed บูลีน ไม่ได้ ไม่มี เมื่อถ่ายภาพต้นฉบับแต่ละภาพ การตั้งค่าการเปิดรับแสงของกล้องจะล็อกอยู่หรือไม่ ไม่มี
GPano:CroppedAreaImageWidthPixels จำนวนเต็ม มี ไม่มี ความกว้างเดิมเป็นพิกเซลของรูปภาพ (เท่ากับความกว้างของภาพจริงสำหรับภาพที่ไม่มีการแก้ไข) ดูแผนภาพด้านบน สัดส่วน/การครอบตัด: ต้องอัปเดตพร็อพเพอร์ตี้นี้เพื่อแสดงขนาดใหม่ของรูปภาพ
GPano:CroppedAreaImageHeightPixels จำนวนเต็ม มี ไม่มี ความสูงต้นฉบับเป็นพิกเซลของรูปภาพ (เท่ากับความสูงของรูปภาพจริงสำหรับรูปภาพที่ไม่ผ่านการแก้ไข) ดูแผนภาพด้านบน สัดส่วน/การครอบตัด: ต้องอัปเดตพร็อพเพอร์ตี้นี้เพื่อแสดงขนาดใหม่ของรูปภาพ
GPano:FullPanoWidthPixels จำนวนเต็ม มี ไม่มี เต็มความกว้างเดิมที่ครอบตัดรูปภาพ หากมีการบันทึกภาพ 360 องศาเพียงบางส่วน ข้อมูลนี้จะระบุความกว้างของภาพ Photo Sphere ที่สมบูรณ์ ดูแผนภาพด้านบน การครอบตัด: ไม่มีการเปลี่ยนแปลง
สเกล: ต้องปรับขนาดอย่างเหมาะสม
GPano:FullPanoHeightPixels จำนวนเต็ม มี ไม่มี ความสูงเต็มขนาดต้นฉบับที่ครอบตัดรูปภาพ หากมีการบันทึกภาพ 360 องศาเพียงบางส่วน ข้อมูลนี้จะระบุความสูงของภาพ 360 องศาแบบเต็ม ดูแผนภาพด้านบน การครอบตัด: ไม่มีการเปลี่ยนแปลง
สเกล: ต้องปรับขนาดอย่างเหมาะสม
GPano:CroppedAreaLeftPixels จำนวนเต็ม มี ไม่มี คอลัมน์ที่ครอบตัดขอบด้านซ้ายของรูปภาพจาก Photo Sphere ขนาดเต็ม ดูแผนภาพด้านบน การครอบตัด: หากการครอบตัดด้านซ้ายของรูปภาพมีการเปลี่ยนแปลง คุณต้องอัปเดตค่านี้
สเกล: ต้องมีการปรับขนาดอย่างเหมาะสม
GPano:CroppedAreaTopPixels จำนวนเต็ม มี ไม่มี แถวที่ขอบด้านบนของรูปภาพถูกครอบตัดจาก Photo Sphere ขนาดเต็ม ดูแผนภาพด้านบน การครอบตัด: หากการครอบตัดด้านบนของรูปภาพมีการเปลี่ยนแปลง คุณต้องอัปเดตค่านี้
สเกล: ต้องมีการปรับขนาดให้สอดคล้องกัน
GPano:InitialCameraDolly จริง ไม่ได้ 0 พารามิเตอร์ที่ไม่บังคับนี้จะย้ายตำแหน่งกล้องเสมือนตามแนวสายตา ให้ห่างจากจุดกึ่งกลางของ Photo Sphere ตำแหน่งของพื้นผิวด้านหลังจะแสดงด้วยค่า -1.0 ขณะที่ตำแหน่งของพื้นผิวด้านหน้าจะแสดงด้วย 1.0 หากต้องการดูแบบปกติ ควรตั้งค่าพารามิเตอร์นี้เป็น 0 ไม่มี

ตัวอย่างภาพ 360 องศาแบบเต็ม

ผู้ที่ไม่ได้เขียนโปรแกรมจะเพิ่มตัวอย่างข้อมูลเมตาด้านล่างลงใน Photo sphere แบบเต็มที่มีอยู่ (360 องศา x 180 องศา) ได้โดยทำการแก้ไขเพียงเล็กน้อยเท่านั้น ซึ่งสามารถทำได้ในผลิตภัณฑ์สำหรับแก้ไขรูปภาพ เช่น Adobe Photoshop

  1. เปลี่ยนรายการใดๆ ของ 4000 และ 2000 เพื่อให้ตรงกับความกว้างและความสูงที่สอดคล้องกันของภาพเป็นพิกเซล
  2. อัปเดต PoseHeadingDegrees หากคุณต้องการให้ Google Maps สามารถแสดงภาพ 360 องศาของคุณได้ มิเช่นนั้น คุณสามารถเลือกนำพารามิเตอร์นี้ออกได้
  3. อัปเดตหรือนำพารามิเตอร์ที่ไม่บังคับออก (ตามที่แสดงไว้ด้านบน)
<rdf:Description rdf:about="" xmlns:GPano="http://ns.google.com/photos/1.0/panorama/">
    <GPano:UsePanoramaViewer>True</GPano:UsePanoramaViewer>
    <GPano:CaptureSoftware>Photo Sphere</GPano:CaptureSoftware>
    <GPano:StitchingSoftware>Photo Sphere</GPano:StitchingSoftware>
    <GPano:ProjectionType>equirectangular</GPano:ProjectionType>
    <GPano:PoseHeadingDegrees>350.0</GPano:PoseHeadingDegrees>
    <GPano:InitialViewHeadingDegrees>90.0</GPano:InitialViewHeadingDegrees>
    <GPano:InitialViewPitchDegrees>0.0</GPano:InitialViewPitchDegrees>
    <GPano:InitialViewRollDegrees>0.0</GPano:InitialViewRollDegrees>
    <GPano:InitialHorizontalFOVDegrees>75.0</GPano:InitialHorizontalFOVDegrees>
    <GPano:CroppedAreaLeftPixels>0</GPano:CroppedAreaLeftPixels>
    <GPano:CroppedAreaTopPixels>0</GPano:CroppedAreaTopPixels>
    <GPano:CroppedAreaImageWidthPixels>4000</GPano:CroppedAreaImageWidthPixels>
    <GPano:CroppedAreaImageHeightPixels>2000</GPano:CroppedAreaImageHeightPixels>
    <GPano:FullPanoWidthPixels>4000</GPano:FullPanoWidthPixels>
    <GPano:FullPanoHeightPixels>2000</GPano:FullPanoHeightPixels>
    <GPano:FirstPhotoDate>2012-11-07T21:03:13.465Z</GPano:FirstPhotoDate>
    <GPano:LastPhotoDate>2012-11-07T21:04:10.897Z</GPano:LastPhotoDate>
    <GPano:SourcePhotosCount>50</GPano:SourcePhotosCount>
    <GPano:ExposureLockUsed>False</GPano:ExposureLockUsed>
</rdf:Description>

ตัวอย่างภาพ 360 องศาบางส่วน

<rdf:Description rdf:about="" xmlns:GPano="http://ns.google.com/photos/1.0/panorama/">
    <GPano:UsePanoramaViewer>True</GPano:UsePanoramaViewer>
    <GPano:CaptureSoftware>Photo Sphere</GPano:CaptureSoftware>
    <GPano:StitchingSoftware>Photo Sphere</GPano:StitchingSoftware>
    <GPano:ProjectionType>equirectangular</GPano:ProjectionType>
    <GPano:PoseHeadingDegrees>350.0</GPano:PoseHeadingDegrees>
    <GPano:InitialViewHeadingDegrees>90.0</GPano:InitialViewHeadingDegrees>
    <GPano:InitialViewPitchDegrees>0.0</GPano:InitialViewPitchDegrees>
    <GPano:InitialViewRollDegrees>0.0</GPano:InitialViewRollDegrees>
    <GPano:InitialHorizontalFOVDegrees>75.0</GPano:InitialHorizontalFOVDegrees>
    <GPano:CroppedAreaLeftPixels>90</GPano:CroppedAreaLeftPixels>
    <GPano:CroppedAreaTopPixels>128</GPano:CroppedAreaTopPixels>
    <GPano:CroppedAreaImageWidthPixels>2300</GPano:CroppedAreaImageWidthPixels>
    <GPano:CroppedAreaImageHeightPixels>1042</GPano:CroppedAreaImageHeightPixels>
    <GPano:FullPanoWidthPixels>4000</GPano:FullPanoWidthPixels>
    <GPano:FullPanoHeightPixels>2000</GPano:FullPanoHeightPixels>
    <GPano:FirstPhotoDate>2012-11-07T21:03:13.465Z</GPano:FirstPhotoDate>
    <GPano:LastPhotoDate>2012-11-07T21:04:10.897Z</GPano:LastPhotoDate>
    <GPano:SourcePhotosCount>50</GPano:SourcePhotosCount>
    <GPano:ExposureLockUsed>False</GPano:ExposureLockUsed>
</rdf:Description>

ระดับความรุนแรงของการแก้ไขรูปภาพ

เพื่อให้มีประสิทธิภาพ โปรแกรมที่แสดง Photo Sphere ในโปรแกรมดูควรตรวจสอบว่า Photo Sphere ต้นฉบับถูกปรับขนาดโดยแอปพลิเคชันโดยไม่อัปเดตข้อมูลเมตาหรือไม่ ซึ่งทำได้ด้วยขั้นตอนต่อไปนี้

  1. ตรวจสอบว่าแท็ก CroppedAreaImageความกว้างPixels เท่ากับความกว้างจริงของรูปภาพ
  2. ตรวจสอบว่าแท็ก CroppedAreaImageHeightPixels เท่ากับความสูงจริงของรูปภาพ
  3. หากขั้นตอนที่ 1 หรือ 2 ล้มเหลว ให้ตรวจสอบว่าอัตราส่วนของรูปภาพยังคงเดิมหรือไม่
  4. หากขั้นตอนที่ 3 ล้มเหลว ห้ามแสดงรูปภาพเป็น Photo 360 องศา เนื่องจากรูปทรงไม่เข้ากันซึ่งจะทำให้เกิดการบิดเบี้ยวที่ไม่ดี
  5. หากผ่านขั้นตอนที่ 3 สัดส่วนภาพจะมีค่าเท่ากัน และควรปรับขนาดแท็กที่เกี่ยวข้องทั้งหมดต่อไปนี้ให้พอดีกับขนาดรูปภาพใหม่
    CroppedAreaImageWidthPixels, CroppedAreaImageHeightPixels, FullPanoWidthPixels, FullPanoHeightPixels, CroppedAreaLeftPixels, CroppedAreaRightPixels

ภาพรวมของมุมออยเลอร์

การวางแนวของ Photo Sphere ในกรอบโลกจะกำหนดโดยมุมออยเลอร์ มุมออยเลอร์สามารถกำหนดได้หลายวิธี ว่ากันตามตรง โปรแกรมต้องเป็นไปตาม กฎมุมของออยเลอร์ที่อธิบายในที่นี้อย่างเคร่งครัด

ตำแหน่งเหนือผิวโลกจะกำหนด XYZ "เฟรมเฉพาะที่" คงที่ โดยที่ Z ตั้งขึ้นและตั้งฉากกับพื้นผิวโลก X คือทิศตะวันออกตามจริง และ Y คือทิศเหนือจริง การวางแนวจะกำหนดโดยสัมพันธ์กับ "เฟรมเฉพาะที่" คงที่นี้ และมุมออยเลอร์คือการหมุนรอบแกน XYZ คงที่เหล่านี้ ดังนั้นการวางแนวของท่าทางจึงระบุที่ขั้วโลกไม่ได้ ซึ่งหมายความว่า Photo Sphere ที่มีมุม (0, 0, 0) จะตั้งทิศทางให้พิกเซลตรงกลางหันไปทางทิศเหนือกับเส้นศูนย์สูตรของ Photo Sphere ที่ขนานกับพื้นผิวโลก

มุมออยเลอร์จะทำการแมปจากจุดใน "กรอบโฟโต้สเฟียร์" (หมุน) ไปยังจุดใน "เฟรมเฉพาะที่" (คงที่) ดังนี้
 
เมทริกซ์การหมุนจะสร้างขึ้นจากมุมออยเลอร์ดังต่อไปนี้ (จะต้องคงลำดับเหล่านี้ไว้)

R = R_Z(-ส่วนหัว) * R_X(ระดับเสียง) * R_Y(ม้วน)

ตำแหน่ง: R_*(t) คือการหมุนด้วยมือขวารอบแกนที่มีชื่อ:











และที่ไหน: Z = ขึ้น, X = ตะวันออก, Y = ทิศเหนือ

สิ่งสำคัญคือต้องคงการจัดลำดับนี้ไว้:

R = R_Z(-ส่วนหัว) * R_X(ระดับเสียง) * R_Y(ม้วน)

เนื่องจากการหมุนเวียนไม่สามารถสลับเปลี่ยนกันได้

โปรดทราบว่ามุมทิศทางเหมือนกับทิศทางการชี้ของเข็มทิศมาตรฐาน

รายการอ้างอิง

Adobe XMP แบบมาตรฐาน: http://www.adobe.com/devnet/xmp.html