25 กุมภาพันธ์ 2553

การคำนวณมุมที่ใช้ในการ pan/tilt เพื่อ...

การคำนวณมุมที่ใช้ในการ pan/tilt เพื่อติดตามลูกบอล
ให้ลูกบอลอยู่กลางภาพพอดี


การจะหามุมที่ใช้ในการ pan/tilt
ได้นั้นเราต้องทราบระยะห่างระหว่างลูกบอลกับกล้อง
เพราะถ้าหากลูกอยู่ใกล้ ต้องใช้มุมในการหมุนมาก
แต่ในทางตรงกันข้ามถ้าหากลูกอยู่ไกล ต้องใช้มุมในการหมุนน้อย

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

เก็บตัวอย่างเพื่อหาความสัมพันธ์

เราเก็บภาพลูกปิงปองที่ระยะต่างๆกัน เพื่อหา
 z  = ระยะห่างระหว่างลูกปิงปองกับกล้อง
 r  = ขนาดรัศมีของลูกปิงปองในภาพ
z(cm)
r(pixel)
15
41
20
30
25
26
30
21


สรุปความสัมพันธ์

z= -0.737r + 44.25

หามุมกว้างของกล้อง


กล้องสามารถถ่ายภาพได้ 15.5 cm. ที่ระยะห่าง 15 cm.

ที่ระยะความลึกต่างๆ เราสามารถหาความกว้างของถาพได้ดังนี้
 W = 2* z * tan 48.95

เทียบระยะในภาพกับระยะจริง
b = (160-x)/320*W
หามุมที่ต้องใช้ในการ pan/tilt
เราจะใช้ทฤษฤีสามเหลี่ยมคล้าย

จากสูตร tan d = a/b

ดังนั้นมุม ก็คือpan
arctan (b/a)     = arctan (b/z)
                     = arctan [ ((160-x)/320*W) / (-0.737r + 44.25)]
                     = arctan [((160-x)/320*2* z * tan 48.95)/  (-0.737r + 44.25) ]

ในกรณีของมุม Tilt
ทำในลักษณะเดียวกันจะได้
มุมสูงของกล้อง
H = 2* z * tan 55.01
เทียบระยะในภาพกับระยะจริง
b = (120-y)/240*H
สามเหลี่ยมคล้าย จะได้
rctan(a/b) = arctan [ ((120-y)/240* 2* z * tan 55.01) / (-0.737r + 44.25) ]











ไม่มีความคิดเห็น: