Augmented Reality SDK พร้อม OpenCV [ปิด]


94

ฉันกำลังพัฒนา Augmented Reality SDK บน OpenCV ฉันมีปัญหาในการค้นหาแบบฝึกหัดในหัวข้อขั้นตอนที่ต้องปฏิบัติตามอัลกอริทึมที่เป็นไปได้การเข้ารหัสที่รวดเร็วและมีประสิทธิภาพเพื่อประสิทธิภาพแบบเรียลไทม์เป็นต้น

จนถึงตอนนี้ฉันได้รวบรวมข้อมูลถัดไปและลิงค์ที่เป็นประโยชน์

การติดตั้ง OpenCV

ดาวน์โหลดรุ่นล่าสุด

คุณสามารถดูคู่มือการติดตั้งได้ที่นี่ (แพลตฟอร์ม: linux, mac, windows, java, android, iOS)

ออนไลน์เอกสาร

เพิ่มความเป็นจริง

สำหรับผู้ขอทานนี่คือรหัสเติมความเป็นจริงง่ายๆใน OpenCV ถือเป็นการเริ่มต้นที่ดี

สำหรับใครก็ตามที่ค้นหา SDK ที่ล้ำสมัยที่ออกแบบมาอย่างดีฉันพบขั้นตอนทั่วไปบางอย่างที่ทุกความเป็นจริงที่เพิ่มขึ้นตามการติดตามเครื่องหมายควรมีโดยพิจารณาจากฟังก์ชัน OpenCV

  1. โปรแกรมหลัก: สร้างคลาสทั้งหมดการเริ่มต้นจับภาพเฟรมจากวิดีโอ

  2. คลาส AR_Engine: ควบคุมส่วนต่างๆของแอปพลิเคชันความเป็นจริงเสริม ควรมี 2 สถานะหลัก:

    • การตรวจจับ : พยายามตรวจจับเครื่องหมายในฉาก
    • การติดตาม : เมื่อตรวจพบแล้วให้ใช้เทคนิคการคำนวณที่ต่ำกว่าสำหรับการติดตามเครื่องหมายในเฟรมที่กำลังจะมาถึง

นอกจากนี้ควรมีอัลกอริทึมบางอย่างสำหรับการค้นหาตำแหน่งและการวางแนวของกล้องในทุกเฟรม สิ่งนี้ทำได้โดยการตรวจจับการเปลี่ยนแปลงโฮโมกราฟีระหว่างเครื่องหมายที่ตรวจพบในฉากและภาพ 2 มิติของเครื่องหมายที่เราประมวลผลแบบออฟไลน์ คำอธิบายของวิธีนี้ที่นี่ (หน้า 18) ขั้นตอนหลักสำหรับการประมาณค่าท่าทาง ได้แก่ :

  1. โหลดกล้อง Intrinsic พารามิเตอร์ ก่อนหน้านี้แยกออฟไลน์ผ่านการปรับเทียบ พารามิเตอร์ที่แท้จริง

  2. โหลดรูปแบบ (เครื่องหมาย) เพื่อติดตาม: เป็นภาพของเครื่องหมายระนาบที่เรากำลังจะติดตาม จำเป็นต้องแยกคุณสมบัติและสร้างตัวอธิบาย ( จุดสำคัญ ) สำหรับรูปแบบนี้เพื่อให้เราสามารถเปรียบเทียบกับคุณสมบัติจากฉากได้ในภายหลัง อัลกอริทึมสำหรับงานนี้:

  3. สำหรับการอัปเดตเฟรมทุกครั้งให้เรียกใช้อัลกอริทึมการตรวจจับเพื่อดึงคุณสมบัติจากฉากและสร้างตัวอธิบาย อีกครั้งเรามีหลายทางเลือก

    • SIFT
    • รวดเร็ว
    • เซิร์ฟ
    • FREAK : วิธีการใหม่ (2012) ถูกยกให้เป็นวิธีที่เร็วที่สุด
    • ลูกโลก
  4. ค้นหาการจับคู่ระหว่างรูปแบบและตัวบอกฉาก

  5. ค้นหาเมทริกซ์Homographyจากการแข่งขันเหล่านั้น สามารถใช้ RANSAC ก่อนเพื่อค้นหา inliers / outliers ในชุดการแข่งขัน

  6. แยกCamera Poseออกจาก homography

ตัวอย่างที่สมบูรณ์:


1
ขออภัยนี่ "ไม่สร้างสรรค์" คุณกำลังมองหาคำแนะนำ
bfavaretto

3
เกี่ยวกับงานการติดตั้งตอนนี้ OpenCV ได้ย้ายไปที่ GIT แล้วดังนั้นสำหรับการดาวน์โหลดโค้ด Cource จำเป็นต้องทำ "git clone git: //code.opencv.org/opencv.git"
Carlos Cachalote

12
47 โหวตขึ้นยังปิดเนื่องจากกฎโง่ ๆ
SvaLopLop

คำตอบ:


19

เนื่องจากแอปพลิเคชัน AR มักทำงานบนอุปกรณ์พกพาคุณจึงสามารถพิจารณาคุณสมบัติอื่น ๆ ของเครื่องตรวจจับ / ตัวอธิบาย:


3
ขอบคุณ! นอกจากนี้ยังมี FAST เวอร์ชัน "เร็ว" ที่ทำงานแบบเรียลไทม์ในโทรศัพท์มือถือเป็นแบบเสี้ยมและตัวบอก SIFT จะลดลง
Jav_Rock

2
ฉันได้ผลลัพธ์เกือบสมบูรณ์แบบโดยใช้ ORB
dynamic

ที่จริงอ่านเกี่ยวกับ ORB มันบอกว่าเป็น FAST ในปิรามิด
Jav_Rock

3
Freak เป็นอัลกอริทึมสุดท้ายในการประมวลผล descriptor บน AR เร็วกว่า FAST
goe

13

โดยทั่วไปหากคุณสามารถเลือกเครื่องหมายคุณจะตรวจจับชิ้นงานที่เป็นสี่เหลี่ยมจัตุรัสโดยใช้เครื่องตรวจจับขอบก่อนจากนั้นจึงเลือกแบบ Hough หรือเพียงแค่รูปทรงจากนั้นระบุเครื่องหมายเฉพาะจากการออกแบบภายใน แทนที่จะใช้ตัวจับคู่จุดทั่วไป.

ดูโค้ดตัวอย่างที่Arucoเขียนได้ดี


4
ใช่วิธีการ fiducial เป็นวิธีที่ง่ายที่สุด แต่ก็ยังไม่เป็นปัจจุบัน ฉันคิดว่าตอนนี้ควรชี้ไปที่เครื่องหมายที่มีพื้นผิว ขอบคุณ. ตัวอย่างนี้น่าสนใจมากเนื่องจากมีการอธิบายไว้เป็นอย่างดี
Jav_Rock

1
หากคุณต้องการทราบท่าทางคุณต้องจับคู่ตำแหน่ง 3 มิติของคุณสมบัติมาร์กเกอร์กับภาพที่สอดคล้องกัน เป้าหมายที่มีรูปร่างปกติทำให้ง่ายขึ้น แต่ไม่จำเป็นต้องเป็นแนวระนาบ
Martin Beckett

แต่ถ้าไม่ใช่แบบระนาบคุณต้องใช้โมเดล 3 มิติหรือแบบจำลอง CAD มิฉะนั้นการเปรียบเทียบจาก 2d-to-3d ไม่ใช่วิธีการที่ถูกต้องอีกต่อไปใช่หรือไม่? ฉันหมายถึง Direct Linear Transform ที่ใช้ใน findhomography
Jav_Rock

ใช่ถ้าคุณมีเครื่องหมาย 3d คุณจำเป็นต้องรู้คำจริง 3d รูปร่าง (จาก CAD, หรือวัดได้) แต่มันก็ไม่ให้ soln ดีกว่า
มาร์ติน Beckett
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.