คู่มือเฉพาะแพลตฟอร์ม
Android (Kotlin/Java)
Android NDK (C)
Unity (AR Foundation)
Unreal Engine
Augmented Images API ใน ARCore ช่วยให้คุณสร้างแอป AR ที่ตรวจจับและเพิ่มรูปภาพ 2 มิติในสภาพแวดล้อมของผู้ใช้ เช่น โปสเตอร์หรือบรรจุภัณฑ์ของผลิตภัณฑ์
คุณระบุชุดรูปภาพอ้างอิง ARCore ใช้อัลกอริทึมคอมพิวเตอร์วิทัศน์เพื่อดึงองค์ประกอบจากข้อมูลภาพสีเทาในแต่ละรูปภาพ และจัดเก็บการนำเสนอองค์ประกอบเหล่านี้ไว้ในฐานข้อมูลภาพความจริงเสริมอย่างน้อย 1 ฐานข้อมูล
ขณะรันไทม์ ARCore จะค้นหาองค์ประกอบเหล่านี้บนพื้นผิวเรียบในสภาพแวดล้อมของผู้ใช้ ซึ่งช่วยให้ ARCore สามารถตรวจจับรูปภาพเหล่านี้ได้ทั่วโลก และประมาณตำแหน่ง การวางแนว และขนาดของภาพ หากไม่ได้ระบุ
ความสามารถ
ARCore ติดตามรูปภาพได้สูงสุด 20 รูปพร้อมกัน ARCore จะไม่ตรวจหาหรือติดตามรูปภาพเดียวกันหลายรายการพร้อมกัน
ฐานข้อมูลภาพความจริงเสริมแต่ละฐานสามารถจัดเก็บข้อมูลรูปภาพอ้างอิงได้สูงสุด 1,000 รูป ฐานข้อมูลไม่มีขีดจํากัดด้านจํานวน แต่มีเพียงฐานข้อมูลเดียวที่ใช้งานอยู่ได้ในเวลาหนึ่งๆ
คุณสามารถเพิ่มรูปภาพลงในฐานข้อมูลรูปภาพ AR ขณะรันไทม์ได้สูงสุด 1,000 รูปต่อฐานข้อมูล คุณสามารถดาวน์โหลดฐานข้อมูลที่สร้างไว้ก่อนหน้านี้ได้ โดยใช้การเชื่อมต่อเครือข่าย
เมื่อเพิ่มรูปภาพ คุณสามารถระบุขนาดจริงของรูปภาพเพื่อตรวจจับได้ ซึ่งจะช่วยปรับปรุงประสิทธิภาพการตรวจจับรูปภาพ
หากไม่ได้ระบุขนาดจริง ARCore จะประมาณขนาดและปรับแต่งค่าประมาณนี้เมื่อเวลาผ่านไป
หากระบุขนาดจริง ARCore จะใช้ขนาดที่ระบุและประมาณตำแหน่งและการวางแนวของรูปภาพ โดยจะไม่สนใจความคลาดเคลื่อนระหว่างขนาดที่ปรากฏหรือขนาดจริงกับขนาดจริงที่ระบุ
ARCore สามารถตอบสนองและติดตามรูปภาพต่อไปนี้
รูปภาพที่ยึดอยู่กับที่ เช่น รูปภาพติดผนังหรือนิตยสารบนโต๊ะ
รูปภาพที่เคลื่อนไหว เช่น โฆษณาบนรถเมล์ที่วิ่งผ่านหรือรูปภาพบนวัตถุแบนซึ่งผู้ใช้ถืออยู่ขณะขยับมือไปรอบๆ
เมื่อ ARCore เริ่มติดตามรูปภาพ ระบบจะแสดงค่าประมาณสำหรับตำแหน่งและการวางแนวของแต่ละเฟรม ARCore จะปรับแต่งค่าประมาณเหล่านี้อย่างต่อเนื่องเมื่อรวบรวมข้อมูลมากขึ้น
เมื่อตรวจพบรูปภาพแล้ว ARCore จะ "ติดตาม" ตำแหน่งและการวางแนวของรูปภาพต่อไป แม้ว่ารูปภาพจะออกจากมุมมองกล้องชั่วคราวเนื่องจากผู้ใช้ย้ายอุปกรณ์ เมื่อเกิดกรณีเช่นนี้ ARCore จะถือว่าตำแหน่งและการวางแนวของรูปภาพเป็นแบบคงที่ และรูปภาพไม่ได้เคลื่อนที่ผ่านสภาพแวดล้อม
การติดตามทั้งหมดเกิดขึ้นในอุปกรณ์ ไม่จำเป็นต้องเชื่อมต่ออินเทอร์เน็ต เพื่อตรวจจับและติดตามรูปภาพ
ข้อกำหนด
รูปภาพต้องมีลักษณะดังนี้
เติมพื้นที่อย่างน้อย 25% ของเฟรมกล้องเพื่อให้ระบบตรวจจับได้ตั้งแต่แรก
วางราบ (เช่น ไม่ยับหรือพันรอบขวด)
อยู่ในเฟรมกล้องอย่างชัดเจน ไม่ควรบดบังบางส่วน มองจากมุมเอียงสูง หรือมองเมื่อกล้องเคลื่อนไหวเร็วเกินไปเนื่องจากภาพเบลอ
ข้อควรพิจารณาเกี่ยวกับการใช้งานและประสิทธิภาพ CPU
การเปิดใช้ภาพความจริงเสริมอาจทำให้ CPU ของ ARCore ทำงานหนักขึ้น ทั้งนี้ขึ้นอยู่กับฟีเจอร์ ARCore ที่เปิดใช้ไว้ ลองปิดใช้ฟีเจอร์ที่ไม่ได้ใช้งานในช่วงเวลาที่ประสบการณ์ AR ไม่จำเป็นต้องใช้ฟีเจอร์ดังกล่าว ซึ่งจะทำให้แอปใช้รอบ CPU ได้มากขึ้น รวมถึงปรับปรุงประสิทธิภาพการระบายความร้อนและอายุการใช้งานแบตเตอรี่
ดูข้อมูลเพิ่มเติมได้ที่ข้อควรพิจารณาด้านประสิทธิภาพ
แนวทางปฏิบัติแนะนำ
เคล็ดลับในการเลือกรูปภาพอ้างอิง
- ความละเอียดของรูปภาพควรเป็นอย่างน้อย 300 x 300 พิกเซล การใช้รูปภาพที่มีความละเอียดสูงไม่ได้ช่วยปรับปรุงประสิทธิภาพ
- รูปภาพอ้างอิงสามารถส่งเป็นไฟล์รูปแบบ PNG หรือ JPEG
- ไม่ใช้ข้อมูลสี ทั้งรูปภาพสีและรูปภาพสีเทาที่เทียบเท่ากันสามารถนำมาใช้เป็นรูปภาพอ้างอิงหรือโดยผู้ใช้ขณะรันไทม์ได้
- หลีกเลี่ยงรูปภาพที่บีบอัดมากเกินไป เนื่องจากจะรบกวนการดึงข้อมูลฟีเจอร์
- หลีกเลี่ยงรูปภาพที่มีฟีเจอร์ทางเรขาคณิตจำนวนมากหรือมีฟีเจอร์เพียงไม่กี่อย่าง (เช่น บาร์โค้ด คิวอาร์โค้ด โลโก้ และภาพลายเส้นอื่นๆ) เนื่องจากจะทำให้การตรวจหาและติดตามประสิทธิภาพไม่ดี
- หลีกเลี่ยงรูปภาพที่มีลวดลายซ้ำเนื่องจากอาจทำให้เกิดปัญหาในการระบุและติดตาม
ใช้เครื่องมือ
arcoreimg
ที่รวมอยู่ใน ARCore SDK เพื่อรับคะแนนคุณภาพระหว่าง0
ถึง100
สำหรับรูปภาพแต่ละรูป เราขอแนะนำว่าคะแนนคุณภาพต้องอยู่ที่ 75 เป็นอย่างน้อย ต่อไปนี้เป็นตัวอย่างสองตัวอย่าง:รูปภาพตัวอย่าง 1 รูปภาพตัวอย่าง 2 คะแนน: 0
คะแนน: 100
มีองค์ประกอบเรขาคณิตที่ซ้ำกัน ความละเอียดเพียงพอ มีฟีเจอร์ที่ไม่ซ้ำกันหลายรายการ
เคล็ดลับสำหรับการสร้างฐานข้อมูลรูปภาพ
- ใช้เครื่องมือ arcoreimg สำหรับ Android เพื่อสร้างไฟล์ฐานข้อมูลรูปภาพ เครื่องมือนี้ใช้ได้กับการพัฒนา Android และ Android NDK เท่านั้น โดยรวมอยู่ใน Unity SDK และปลั๊กอิน ARCore Unreal
- ฐานข้อมูลจะจัดเก็บการแสดงลักษณะที่บีบอัดซึ่งดึงมาจากข้อมูลสีเทาในรูปภาพอ้างอิง รายการรูปภาพแต่ละรายการจะกินพื้นที่ประมาณ 6 KB
- การเพิ่มรูปภาพลงในฐานข้อมูลขณะรันไทม์จะใช้เวลาประมาณ 30 มิลลิวินาที
- เพิ่มรูปภาพในเธรดผู้ทํางานเพื่อหลีกเลี่ยงการบล็อกเธรด UI
- หรือหากเป็นไปได้ ให้เพิ่มรูปภาพเมื่อคอมไพล์โดยใช้
arcoreimg
เครื่องมือ ที่รวมอยู่ใน ARCore SDK
- หากทราบขนาดจริงที่คาดไว้ของรูปภาพ ให้ระบุขนาดนั้น ข้อมูลนี้ช่วยปรับปรุงประสิทธิภาพการตรวจจับและการติดตาม โดยเฉพาะอย่างยิ่งสำหรับรูปภาพขนาดจริงขนาดใหญ่ (มากกว่า 75 ซม.)
- หลีกเลี่ยงการเก็บรูปภาพที่ไม่ได้ใช้หลายๆ รูปไว้ในฐานข้อมูลเนื่องจากมีผลกระทบเล็กน้อยต่อประสิทธิภาพของระบบเนื่องจากการใช้งาน CPU ที่เพิ่มขึ้น
เคล็ดลับในการเพิ่มประสิทธิภาพการติดตาม
- หากรูปภาพไม่ย้ายจากตำแหน่งเริ่มต้นเลย (เช่น โปสเตอร์ติดอยู่ที่ผนัง) คุณอาจติดตัวยึดไว้กับรูปภาพเพื่อเพิ่มความเสถียรในการติดตามได้
- รูปภาพจริงต้องครอบคลุมพื้นที่อย่างน้อย 25% ของรูปภาพจากกล้องสำหรับการสแกนครั้งแรก คุณสามารถแจ้งให้ผู้ใช้ใส่ภาพตามจริงในเฟรมกล้องได้
- อย่าใช้การประมาณท่าทางและขนาดของรูปภาพจนกว่าสถานะการติดตามของรูปภาพจะได้รับการติดตามอย่างเต็มรูปแบบ เมื่อ ARCore ตรวจพบรูปภาพเป็นครั้งแรกและไม่ได้ระบุขนาดจริงที่คาดไว้ สถานะการติดตามของรูปภาพจะหยุดชั่วคราว ซึ่งหมายความว่า ARCore จดจำรูปภาพได้ แต่ไม่รวบรวมข้อมูลเพียงพอที่จะประมาณตำแหน่งของรูปภาพในอวกาศ 3 มิติ