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