Kinect Project

Kinect – 3D Motion sensor กำลังมาแล้วครับ

By November 20, 2010 January 30th, 2011 2 Comments

ช่วงนี้ ผมเข้าไปดูตามเวปต่างๆ เห็นบันดาลชาว Hacker กำลังสนุกสนาน กับการ hack เจ้า Kinect ของ xbox กันอย่างสนุกสนาน เข้าไปดูมีการ update กันรายวันเลยที่ดี เราคนไทยก้อรอไปก่อนครับ เดี่ยวให้ สะำพานเหล็กเอามาขายก่อน เดี่ยวเราค่อยเอามาเล่นก้อได้มั่งครับ

Kinect คืออะไร

Kinect ก้อคือ Motion Controller ของ xbox  คือ เราจะใช้การเคลื่อนไหวของร่างกาย (motion) แทน joystick ได้เลย เพียงแค่ เรากวาดมือไปมา หรือจะเต้น ตัวระบบเซ็นเซอร์ จะแปลงการเคลื่อนที่ของเรา เอาไปควบคุมเกมส์กันได้  มันให้เราเล่นเกมส์ได้ อิสระและเป็นธรรมชาติมากขึ้นไปอีก สำหรับผม Kinect บางมุมมอง มันก้อคือ 3D Sensor บางมุมมอง ก้อเหมือน Motion capture ไม่รู้จะจำแนกมันคืออะไรดี แต่ที่แน่ๆ จุดประกายให้ อีกหลายที่ ต้องพัฒนา sensor แบบนี้ไปใช้งาน กับ เกมส์ หรือ การระบบ apps ของเขาแน่ๆ

บริษัท Mircosoft ได้เริ่มพัฒนาเจ้าโปรเจค Kinect  มานานหลายปี เงียบหายไปเป็นช่วงๆ จนคิดว่า xbox คงจะทำไม่ได้แล้วมั่ง ก่อนหน้านี้ ทาง xbox ได้ซื้อ บริษัท ZCam ซึ่งเป็นเจ้าของเทคโนโลยีเกี่ยวกับ กล้องที่วัดความลึกได้ และตั้งชื่อโปรเจคว่า Project Natal (ไม่เกี่ยวกับ นาธานนะครับ) ซึ่งทาง xbox ก้อปล่อยออกมาโชว์ เรื่อยๆ และก้อสร้างความประหลาดใจมาก เพราะว่า ระบบ มันสามารถวิเคราะห์หาการเคลื่อนไหว ของคนได้จริงๆ ตอนนี้ ผมก้อสงสัยว่า เขาจะสร้างออกมาได้ โดยราคามันจะเท่าไรกัน

เนื่องจาก ระบบเซ็นเซอร์ ที่ทางผมเคยเห็นระบบแบบนี้ ใน motion capture ที่ใช้กันในภาพยนตร์ อย่าง lord of the ring จะใช้กล้องหลายๆตัว กับระบบคอมพิวเตอร์ สแกนหา จุด หรือ marker แปะไว้เลย และ ยังไม่ค่อยเสถียรเลย ต้องมีคนมาควบคุมแสงด้วยตลอด หรือจะใช้อีกรูปแบบ คือ Laser scan ก้อน่าจะแพงเอาเรื่องอยู่เหมือน ราคามันจะถูกจนเราซื้อได้จริงเหรอ แต่ด้วยราคาเปิดตัว ก้อต้องบอกได้เลยว่า xbox ของ mircosoft งานนี้ทุ่มสุดตัวเลยสำหรับ kinect นี้

ทำไม Kinect จึงทำงานได้

หลังจากที่ทาง Mircosoft ทุ่มวิจัยอยู่นาน จนได้เป็น โปรดักส์สุดท้ายออกสู่ตลาด ได้ไม่นาน ก้อโดน iFixit จับมาแกะ ให้เราดูว่า ภายใน มันประกอบด้วยอะไรบ้าง ประกอบว่าภายใน Kinect ไม่ได้มีอะไรมากกว่า แผงไอซีเลยครับ ส่วนประกอบหลักๆ ของ Kinect ตัวนี้ ประกอบไปด้วย 1 กล้อง RGB 640×480 30fps  2. กล้อง Mono 320×240 30fps และสุดท้าย 3. Laser IR Projector และ 4. เซ็นเซอร์เสียง Mic ครับ

ระบบภายในระบบของ Kinect

สรุป ก้อคือจะมอง kinect เป็นกล้อง Webcam ที่แบ่งออกมา สองส่วนครับ ส่วนแรกเป็น กล้องธรรมดา เอาไว้จับภาพ อ่านค่าสี RGB ได้เหมือน webcam และ อีกส่วน เอาไว้วัดความลึก โดยใช้ Laser IR Projector ยิงแสง Infrared ความเข้มสูง แต่ตาเรามองไม่เห็น แล้วใช้ กล้อง Mono อ่านค่าความสว่างออกมา คิดง่ายๆว่า อันนี้อยู่ใกล้ แหล่งกำเนิดแสงจะสว่างมาก คงใช้หลักการนี้อ่านค่าความลึกนะครับ สำหรับวิธีการวัดความลึก Kinect  จะใช้หลักการ structure light คือจะใช้จะสร้าง Pattern ของแสง แล้วยิงเป็นที่วัตถุ คิดง่ายว่า เป็นภาพจุด ที่ฉายมาจาก projetion ก้อได้ครับ คราวนี้ ถ้ามีวัตถุ อยู่ระดับความลึก ต่างกัน เราจะเห็นจากภาพได้ครับ ดูกันที่วีดีโอ เลยดีกว่า

ฉะนั้นจากกล้อง kinect จะได้มาสองภาพครับ และส่งข้อมูลภาพดังกล่าวผ่าน USB เข้าสู่เครื่องเล่นเกมส์ หรือ คอมพิวเตอร์ต่อไปครับ

ภาพจากกล้อง จะได้สองภาพ

ซึ่งที่ผมตามข่าวมาตอนแรก ผมได้ยินข่าวว่าทาง Microsoft จะทำ sensor ของ CCD ตัวใหม่ที่มี Layer วัดแสง Infra red เข้าไปอีกหนึ่งชั้น คงจะป้องกันการ copy โดยง่าย แต่ทำไปทำมา กลายเป็นสองกล้อง จะเห็นได้ว่า จากตัวต้นแบบหรือ Prototype จนถึงตัวโปรดักส์สุดท้าย คนสร้างจะต้องคิดให้หนักมาก ทั้งต้นทุนการสร้าง เวลาการพัฒนา ผมว่าทาง xbox เขาคงวิเคราะห์เรื่องนี้มาเป็นอย่างดีแล้ว ตอนนี้อยู่ที่เกมส์เขาจะติดใจ ลูกค้าหรือป่าว

สำหรับใครไม่มี kinect เราก้อสามารถไอเดียง่ายๆ แบบนี้ เอากล้องมา จำนวน สองกล้อง ติดไฟฉาย IR และ กล้องที่ใช้วัดความลึกติดฟิวเตอร์แสง IR ก้อน่าจะทำงานได้ เหมือนกันครับ แต่คงได้แบบไม่ละเอียดมากนะครับ ใช้ Kinect ดูสะดวกกว่าเยอะ กับในอนาคต คิดว่า Microsoft คงจะออกรุ่นใหม่ ที่เร็วขึ้น กับ ความละเอียดที่มากขึ้น ศึกษาการทำงานของเจ้าตัวนี้ไปก่อน ก้อคงจะดี

เอาภาพวีดีโอ แรกๆ ที่มี hack เอาภาพวีดีโอออกมาจาก kinect ได้ครับ

ภาพวีดีโอ แรก ที่ได้จาก Kinect

นำ Kinect ไปใช้งานได้อย่างไง

การนำไปใช้งานจริงแล้ว Kinect ได้ภาพ มาสองภาพ เป็นภาพที่ให้ค่าสี กับ ค่าที่ให้ความลึก ส่วนที่จะเอามาวิเคราะห์การเคลื่อนไหว จะอยู่ที่คนพัฒนาโปรแกรมแล้ว ว่าจะวิเคราะห์ภาพอย่างไง?

Kinect ก้อคงเหมือนระบบ image processing ระบบเดิม แต่มันส่วนของ Hardware เพิ่มเข้าไปช่วยในการหาความลึกได้ ถ้ากลับไปมองระบบนี้เป็นระบบที่ใช้แต่เพียงจับภาพจากกล้องเพียงอย่างเดียว  ตัว software จะต้องวิเคราะห์ว่า ส่วนไหน คือ ตัวคน และทำการตัดออกจาก Background จะยากมาก เนื่องจากจะมีปัญหาเรื่องการแสง และ สี  มันจะมีการเปลี่ยนแปลงตลอดเวลา ระบบที่วิเคราะห์ภาพแบบเดิมจะใช้งานได้ กับ สภาพแวดล้อมที่ควบคุม หรือ จำกัดได้ เท่านั้น

แต่การที่ Kinect ได้ค่าความลึกมาได้ ทำให้นำค่าความลึกของภาพ มาตัดภาพสี เราจะได้ส่วนที่เราสนใจได้ อย่างน้อยทำให้ตัด Background ที่เราไม่สนใจออกได้ ก้อวิเคราะห์ภาพได้ง่ายกว่าเดิมเยอะแล้วครับ

ความลึกที่อ่านจาก Kinect ได้ ค่าความละเอียด จะได้ความละเอียดที่ไม่ลงลึกขนาดเห็นรูขุมขน แบบ Laser scan ได้นะครับ แต่พอเอามาดูได้ว่า ส่วนไหนอยู่หน้า อยู่หลัง error ประมาณ 1 cm กล้อง kinect น่าจะดูความแตกต่างได้ คงจะเห็นว่าทาง xbox ตั้งใจจะทำให้ Kinect ว่าวิเคราะห์การเคลื่อนไหวของคนครับ

ใครลอง search  Kinect ใน internet จะพบว่า ตอนนี้ kinect ก้อโดน Hack โดยผู้สนใจ หรือ ผู้ใช้งาน แล้วสร้าง Driver แล้วครับ ทีเห็นมีก้อจะมี Driver ของ MacOS ,Linux และ Windows7  ซึ่งช่วงนี้ก้อเรียกได้ว่าเป็น กระแสเลย จะเห็น เวปไซค์ต่างๆ มีการโพส Kinect ที่โดนเอาไปใช้งานบ่อยๆ  ซึ่งผมคาดว่า ปีหน้า เราคงได้เห็น Kinect ในไทยบ้างแล้วล่ะครับ เนื่องจากราคา และ ประโยชน์ของมัน


ภาย 15 วันก้อมี โปรแกรมเมอร์ นำ kinicet ไปวิเคราะห์ หาข้อต่อ ทำ animator เชิดนก เล่นได้

ตอนนี้ทาง microsoft ก้อตื้นเต้นกับประกฏการณ์ทางกล่าวที่มี user ทั่วโลก มาช่วยกันเล่นเจ้า kinect กัน ผมว่ามาลุ้นให้ทาง microsoft ออก driver มาให้ support กันเลยดีกว่า ทางเราจะได้ใจไปอีกมาก สำหรับปีนี้ พ.ศ.นี้  คงเป็นยุคพลังสร้างสรรค์ของ user จริงเลย เอาล่ะครับ พอจะเห็นภาพว่า Kinect คืออะไรกันบ้างแล้ว เดี่ยวเจอกันใหม่สำหรับตอนหน้า เราจะมี solution ไหนบ้าง ถ้าจะเอา Kinect ไปใช้งาน

ที่มา [creativeapplications, adafruit]

chang

ชื่อ “ช้าง” ส่วนมากเขาจะเรียกว่า “พี่ช้าง” แล้ว มีความสนใจทางเทคโนโลยีทางคอมพิวเตอร์ อิเล็กทรอนิกส์ และ หุ่นยนต์ เป็นทั้งนักคิด นักประดิษฐ์ ชอบทดลองเล่น จนเดี่ยวนี้รู้สึกว่าจะเล่นมากกว่ามืออาชีพไปสักแล้ว

2 Comments

Leave a Reply to หลักการทำงานและการประยุกต์ใช้งานของไคเนค(Kinect) | Langisser's Blog Cancel Reply