Let's control your computer with your own hand.

Product Goal

โปรเจกต์นี้ เป็นโปรเจกต์เกี่ยวกับการสั่งการคอมพิวเตอร์บนระบบปฏิบัติการวินโดวส์ เพื่ออำนวยความสะดวกการในใช้งานคอมพิวเตอร์ด้วยท่าทางจากมือ โดยโปรแกรมจะทำงานอยู่เบื้องหลัง และการอ่านท่าทางของมือผู้ใช้ผ่านกล้องเว็บแคม แล้วจึงแปลงเป็นคำสั่งปุ่มลัดต่างๆ โดยใช้ OpenCV ในการประมวลผลรูปภาพ เช่น แบมือแล้วหมุนตามเข็มนาฬิกาเพื่อเพิ่มเสียง, ชูสามนิ้วเพื่อปิด / เปิดเสียง, หรือคำสั่งใดๆ ตามที่ผู้ใช้กำหนด นอกจากนี้ยังสามารถใช้แทนการใช้การรับข้อมูลเข้าเบื้องต้นทั่วไปอย่าง เมาส์และคีย์บอร์ด ทำให้สามารถใช้รวมกับโปรแกรมอื่นๆ ที่รันบน Windows ได้ เช่น โปรแกรมเล่นภาพยนตร์ เพลง การนำเสนอด้วย PowerPoint นอกจากนี้ยังรองรับการใช้งานบนเว็บไซต์เล่นวิดีโอชื่อดังอย่าง YouTube อีกด้วย

Why Us

อำนวยความสะดวกในการใช้งานคอมพิวเตอร์

ใน keyboard ราคาแพงส่วนใหญ่จะมีปุ่มพิเศษที่เรียกกว่า ปุ่มมาโคร ซึ่งแยกออกมาจาก Key มาตรฐาน เราสามารถกำหนดคำสั่งพิเศษให้กับปุ่มเหล่านี้ได้ เช่น Mute, Unmute, Play, Pause หรือจะเป็นคำสั่งที่ซับซ้อนสำหรับใช้กับโปรแกรมบางตัว เช่น Windows+Tab สำหรับสั่ง Windows Tab ใน Windows ด้วยโปรแกรมนี้ เราสามารถกำหนดคำสั่งเหล่านี้ให้กับท่าทางมือแต่ละแบบ แล้วใช้ท่าทางมือนั้นแทนปุ่มมาโคร ช่วยให้ใช้งานคอมพิมเตอร์ได้สะดวกขึ้น โดยไม่ต้องใช้ keyboard ราคาแพง

เพิ่มประสบการณ์การใช้งานคอมพิวเตอร์

โดยส่วนใหญ่ในยุคก่อนหน้า เรามักจะใช้เมาส์และคีย์บอร์ด เป็น input สำหรับการควบคุมต่างๆ ทั้งในโปรแกรมต่างๆ หรือแม้แต่ตัว Windows เอง ระบบนี้จึงเพิ่มประสบการณ์ใหม่ๆ ให้กับการใช้คอมพิวเตอร์ เช่น การใช้งานคอมพิวเตอร์จากระยะไกล เช่น ควบคุมโปรแกรมดูภาพยนตร์, การออกกำลังกาย เป็นต้น การใช้งานคอมพิวเตอร์โดยไม่ต้องสัมผัส เช่น การเพิ่มเสียงขณะที่มือเลอะขนม หรือ การเลื่อนสูตรอาหารกำลังทำอาหาร เป็นต้น นำไปประยุกต์ใช้กับการเล่นเกมส์ การกายภาพบำบัด หรือแอปพลิเคชันอื่นๆ

ราคาถูกกว่าอุปกรณ์เสริมเฉพาะทาง

ในปัจจุบัน มีอุปกรณ์เสริมสำหรับจับความเคลื่อนไหวของมือนั้นมีอยู่หลายตัว แต่ละตัวมีราคาตั้งแต่ 3,000 บาท (Leap Motion) ไปจนถึง 7,000 บาท (MYO) ด้วยโปรแกรมของเรานั้น จะทำให้ผู้ใช้ได้รับประสบการณ์ที่ใกล้เคียงกับอุปกรณ์เสริมเหล่านั้น โดยใช้เพียงกล้อง webcam ที่มีอยู่แล้วใน laptop ทั่วไป ทำให้ประหยัดต้นทุนไปได้มาก*ทั้งนี้การใช้งานจะควรมีแสงและตำแหน่งที่เหมาะสม

Project Scope

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

ในการนำไปใช้ จะสามารถใช้งานได้กับระบบปฏิบัติการวินโดวส์ เพื่อควบคุมการเล่นมัลติมีเดียต่างๆ เช่น การเล่นเพลงหรือวิดีโอด้วยโปรแกรมเครื่องเล่นต่างๆ รองรับการดูวิดีโอผ่านทางเว็บ YouTube.com ตลอดจนเควบคุมการใช้งานและปลี่ยน Slide Show ในโปรแกรม Microsoft Powerpoint และสามารถเลือกสลับเพื่อเปลี่ยนวินโดวส์ได้

Hand Gesture

Standby ห้านิ้วตั้งตรง หรือ กำมือ
Play/Pause ท่าสี่นิ้วตั้งตรง
Forward ท่าสองนิ้วชี้ขวา
Backward ท่าสองนิ้วชี้ซ้าย
Mute/Unmute ท่าสามนิ้วตั้งตรง
Volume Up ห้านิ้วหมุนตามเข็มนาฬิกา
Volume Down ห้านิ้วหมุนทวนเข็มนาฬิกา
Full Screen ห้านิ้วเลื่อนขึ้น
Exit Full Screen ห้านิ้วเลื่อนลง
Switch Windows ห้านิ้วเลื่อนไปขวาขวา จากนั้นใช้การเลื่อนซ้ายขวาเพื่อเลือกแล้วเลื่อนขึ้น

Development

ในการพัฒนาจะใช้ OpenCV ร่วมกับโปรแกรม Code::Blocks และพัฒนาด้วยภาษา C++ ควบคู่กับการใช้ library ของ Windows เพื่อควบคุมการสั่งการคีย์ลัดต่างๆ

Requirement สำหรับโปรแกรมนี้คือ ต้องมีกล้อง Webcam แล้วนำภาพที่ capture ได้นี้มาประมวลผล เทคนิคที่ใช้ ได้แก่

  • Color Segmentation : โดยจะเลือกเฉพาะ Skin Color ในโทนสีผิวที่กำหนดไว้ และสามารถทำ Color Calibration ตามสภาพแสงที่เป็นอยู่จริง ด้วยการกดปุ่ม enter ค้าง เพื่อลล้างค่าสีที่กำหนด จากนั้นทำการลากพื้นที่ส่วนที่เป็นมือ เพื่อนำค่าสีในพื้นที่นั้นมา segment เป็นสีของมือ

  • Connected Component : ทำการเลือกหา component ที่ติดกันที่มีลักษณะเป็นมือ

  • Morphology : ทำการ morph close เพื่อลักษณะของมือที่ครบสมบูรณ์

  • ทำการประมวลผลมือที่ได้ โดยจะคำนวณ จะหาจุดศูนย์กลางของมือ (Hand Center) เพื่อตรวจสอบการเคลื่อนไหวของมือ นอกจากนี้ยังมีการคำนวณอศาเฉลี่ยของมือ (Hand Angle)
  • Demo

    Thanks

    This project is a part of Computer Vision 2110433 course in Engineering Faculty Chulalongkorn University.

    Developed by

    5530224021 นส.ธนภรณ์ สุพักตร์มนตรี
    5531001621 นส.กมลพรรณ ลิ้วประเสริฐ
    5531042321 นายปฏิญญา เพ็ชร์ฤทธิ์
    5531043021 นส.ประภัสสร เสรีพรประเสริฐ