(Camera position Calibration) or Why camera cannot tell the true position to robot

ทำไมกล้องไม่สามารถบอกตำแหน่งให่หุ่นยนต์ได้ถูกต้อง
(Camera position Calibration) or Why camera cannot tell the true position to robot
อ้างอิง : Reference : https://www.universal-robots.com/products/ur5-robot/ 
http://www.neatorama.com/2006/08/29/the-wonderful-world-of-early-photography/

เรามาดูว่าเหตุใด กล้องจึงไม่สามารถบอกได้ทันทีว่า ตำแหน่งบนรูปคือตำแหน่งใดๆๆ เว้นแต่อยู่จุดกึ่งกลาง
First we notice how camera and our eyes tell the position and ruler from center to picture



 รูปที่ 1 เป็นรูปที่ได้จากการเห็นของมนุษย์สายตาปกติ 
Fig1  Naked eye image

 รูปที่ 2 เป็นรูปที่ได้จากกล้อง 
Fig2 Camera image 


สังเกต ากรูปที่ 1 เราจะพบว่าการเห็นของเราจะเห็นรูปสิ่งของ และ ไม้บรรทัดเป็นรูปที่จริงและ สเกลไม้บรรทัด ยังมีความเป็นเชิงเส้น หรือห่างกันอย่างสม่ำเสมอ คือ 1 cm. เท่ากัน

จากรูปที่ 2 เราจะเห็นรูปสิ่งของ จากรูปถ่ายผ่านกล้อง และ ไม้บรรทัด เป็นรูปใหม่ และ สเกลห่างไม่สม่ำเสมอหรือไม่มีความเป็นเชิงเส้น แตกต่างจากรูปแรกโดยสิ้นเชิง มีเหตุผลและที่มา

From Fig1 We saw the picture and ruler is a real image. The ruler is even scale or linear scale

From Fig2 We saw the picture and ruler from camera is a new image. The ruler is uneven scale or nonlinear scale


เนื่องจากกล้อง มีเลนส์ เลนส์จะมีการหักเหของแสง ไปยังจุดโฟกัส ไม่ว่าจะเป็นการหักเหเข้าหา จุดโฟกัส หรือหักเหออกจากจุดโฟกัส กล่าวคือปรากฏการณ์ดังกล่าวจะทำให้เกิด อัตราการขยาย Magnitude (M) แล้วเข้าไปในกล้อง เสมือนว่าเป็นกล่องใบหนึ่ง และ มีฉากรับภาพ ทำให้ได้รูปดังที่เห็นจากกล้อง
Result of an experiment is the camera have lens. Lens work as the ray bender that make image bigger or small. They call the Magnitude(M)

รูปที่ 3 รูปจำลองการเกิดภาพของกล้อง
Fig3 Illustration of camera image

อ้างอิง :Reference :  https://en.wikipedia.org/wiki/Camera#/media/File:Pinhole-camera.svg


รูปที่ 4 การเกิดภาพของเลนส์
Fig4 Lens and how magnified
อ้างอิง : Reference : Physics: for Scientists and Engineers with Modern Physics , Serway , Jewett 
Part 5 Light and Optics : Images Formed by Thin Lenses

ในทางปฎิบัติของ image processing นั้นจะมีกระบวนการที่ช่วยให้สามารถกะระยะภาพได้ โดยการปรับเทียบกล้อง (Camera Calibrating) หลักการคือมีการนำ ตารางหมากรุก เสมือนเป็นไม้บรรทัด เทคนิคนี้ สามารถช่วยให้คอมพิวเตอร์ทราบถึงระยะที่แท้จริง จากการตรวจจับขอบของกระดานหมากรุก และ ตารางขาวดำ ช่วยให้ทราบสเกลคงที่ ทำให้หาความเบี่ยงเบนของภาพ

Practical way to do in image processing can convince the telling of position. Camera Calibration  is the method by use calibration or tester code with the Chessboard perform as a ruler make computer predict the real position from picture. The chess board make from black and white square alternate so this square help as 2D scale.

เพื่อให้สะดวกและเป็นการศึกษาหลักการทางผู้เขียนจึงใช้หลักการทางฟิสิกส์ เรื่องเลนส์แทนการปรับเทียบ
For our convenience.We use physic properties of Lens we will use Magnification to perform

สูตรดังนี้


q คือ ระยะห่างจากเลนส์ไปยังรูป
p คือ ระยะห่างจากเลนส์ไปยังวัตถุ
f คือ ระยะห่างจากเลนส์ไปยังจุดโฟกัส(จุดรวมแสง)

โค้ดสำหรับคำนวณระยะห่าง จากจุดศูนย์กลางของรูป จากระยะ pixel ของโปรแกรม Python

สูตรข้างล่างเป็นการประยุกต์ จาก กล้อง microsoft LifeCam
โดยภาพที่ได้มีขนาด 640 x 480 pixel
ครึ่งหนึ่งคือ 320 และ 240 ตามลำดับ
อัตราการขยาย 1cm. /16 pixel ที่ความสูงถึงพื้นผิวฉากวางวัตถุ 450 mm. (45 cm.)

This is code for calculation distance from center of picture (Pixel) in Python Language

This  is code for microsoft LifeCam  camera
Picture that we get from camera is 640 x 480 pixel
so half of this is 320 and 240 pixel
Magnification is experiment by get a ruler picture that place 0mm offset from center and collect each centimeter per pixel 
Eg. 1cm in real image from center is 16 pixel from center of image 
 Magnification is  1cm. /16 pixel from fix camera high 450 mm

โค้ดภาษาไพทอน 
Python CODE

def Px2mm(pix):
    mm=((pix-320)/16)*10
    return mm
def Py2mm(pix):
    mm=(((-pix+240)/16)*10)
    return mm

โปรแกรมนี้จะได้หน่วยระยะจากจุดกึ่งกลางเป็น  mm.
This program will calculate pixel from center to mm.
หลักการนี้มาจาก การวัดด้วยไม้บรรทัด และ นำมาเทียบกับจำนวน pixel ที่จอ จะได้อัตราการขยาย


ผู้เขียนบทความ  P. M
โปรแกรมปรับเทียบ คณะทำงาน Coleague
นักศึกษาปริญญาโท วิทยาการหุ่นยนต์ภาคสนามและระบบอัตโนมัติ FRA
มหาวิทยาลัย เทคโนโลยีพระจอมเกล้าธนบุรี KMUTT


ความคิดเห็น