- โปรเจกต์ต้นแบบที่ทำให้ MacBook ทำงานเหมือนหน้าจอสัมผัสได้ด้วย ชิ้นส่วนราคาเพียง 1 ดอลลาร์และเทคโนโลยีคอมพิวเตอร์วิทัศน์
- ติดตั้งกระจกขนาดเล็กไว้หน้ากล้องเว็บแคมในตัวเพื่อให้มองเห็นหน้าจอในมุมเฉียง และตรวจจับการสัมผัสจาก จุดตัดระหว่างนิ้วกับภาพสะท้อน
- คำนวณจุดสัมผัสและโฮเวอร์ด้วย การกรองสีผิวและการวิเคราะห์คอนทัวร์ แล้วแมปไปยังพิกัดหน้าจอด้วย การแก้ไข homography
- อินพุตที่ตรวจจับได้จะถูก แปลงเป็นเหตุการณ์เมาส์ ทำให้แอปเดิมสามารถใช้งานแบบสัมผัสได้ทันที
- ทำงานได้แม้กับกล้อง 480p และหากใช้ กล้องความละเอียดสูงหรือกระจกโค้ง ก็สามารถขยายขอบเขตการตรวจจับได้ เป็นตัวอย่างของ การสร้างหน้าจอสัมผัสต้นทุนต่ำ
ภาพรวมของ Project Sistine
- ใช้ฮาร์ดแวร์ราคาเพียง 1 ดอลลาร์และเทคนิคคอมพิวเตอร์วิทัศน์อย่างง่ายเพื่อ เปลี่ยน MacBook ให้เป็นหน้าจอสัมผัส
- เป็น proof-of-concept prototype ที่สร้างโดยคน 4 คนภายในเวลาประมาณ 16 ชั่วโมง
- ชื่อนี้ได้แรงบันดาลใจจากการจำลองภาพ ‘The Creation of Adam’ ในโบสถ์น้อยซิสทีน
หลักการพื้นฐาน
- ใช้ปรากฏการณ์ที่เมื่อมองหน้าจอในมุมเฉียง จะเห็น นิ้วและภาพสะท้อนของนิ้วพร้อมกันจากการสะท้อนแสง
- ตรวจจับช่วงเวลาที่นิ้วแตะกับภาพสะท้อนเพื่อ ตัดสินว่ามีการสัมผัสหรือไม่
- ไอเดียนี้นำมาจากโปรเจกต์ ShinyTouch ที่ Kevin เคยสร้างไว้
- แทนที่วิธีใช้เว็บแคมภายนอกด้วย เว็บแคมในตัวของ MacBook และกระจกขนาดเล็ก
- ติดตั้งกระจกเล็กไว้หน้ากล้องในตัวเพื่อให้ ได้มุมมองก้มเฉียงที่เห็นทั้งหน้าจอ
- ตรวจจับการเคลื่อนไหวของนิ้วจากภาพกล้องแล้ว แปลงเป็นเหตุการณ์สัมผัส
องค์ประกอบฮาร์ดแวร์
- วัสดุที่ต้องใช้เป็นชิ้นส่วนง่าย ๆ เช่น กระจกขนาดเล็ก จานกระดาษ บานพับประตู และปืนกาว
- ยึดกระจกในมุมที่เหมาะสมเพื่อให้กล้องมองเห็นหน้าจอทั้งหมดได้
- ประกอบได้ภายในไม่กี่นาทีโดยใช้เพียงมีดและปืนกาว
อัลกอริทึมตรวจจับนิ้ว
- ค้นหานิ้วและภาพสะท้อนจากวิดีโออินพุตเพื่อ คำนวณจุดสัมผัส/โฮเวอร์
-
การกรองสีผิวและแปลงเป็นภาพไบนารี → ตรวจจับคอนทัวร์ → เลือกคอนทัวร์หลัก 2 เส้น
- คอนทัวร์ทั้งสองต้องซ้อนทับกันในแนวนอน และคอนทัวร์ที่เล็กกว่าจะต้องอยู่ด้านบน
- กำหนด จุดสัมผัส/โฮเวอร์ เป็นจุดกึ่งกลางของเส้นที่เชื่อมส่วนบนและส่วนล่างของคอนทัวร์ทั้งสอง
- แยกการสัมผัสกับโฮเวอร์ด้วย ระยะห่างในแนวตั้ง ระหว่างคอนทัวร์ทั้งสอง
- ในภาพผลลัพธ์ นิ้วและเส้นสะท้อนจะแสดงเป็น สีเขียว กรอบขอบเขตเป็น สีแดง และจุดสัมผัสเป็น สีม่วงแดง
-
การแมปและการปรับเทียบ
- คำนวณ homography เพื่อแปลงพิกัดจากเว็บแคมไปเป็นพิกัดบนหน้าจอ
- ผู้ใช้ทำ การปรับเทียบ (calibration) โดยแตะจุดที่กำหนดบนหน้าจอ
- ประมาณเมทริกซ์การฉายภาพจากคู่พิกัดที่เก็บได้ด้วยอัลกอริทึม RANSAC
- หลังปรับเทียบ จะแสดง เส้นสีแดงเพื่อทำภาพเมทริกซ์การฉายภาพให้เห็น และจุดสัมผัสที่ประเมินได้จะแสดงเป็น จุดสีน้ำเงิน
การประยุกต์ใช้งาน
- โปรโตไทป์นี้ แปลงโฮเวอร์และการสัมผัสเป็นเหตุการณ์เมาส์ ทำให้แอปเดิมรองรับการใช้งานแบบสัมผัสได้ทันที
- หากพัฒนาแอปเอง ก็สามารถนำ ข้อมูลสัมผัสแบบละเอียด เช่น ความสูงของโฮเวอร์ ไปใช้ได้โดยตรง
บทสรุปและโอกาสในการปรับปรุง
- Project Sistine เป็นการทดลองสร้าง โน้ตบุ๊กให้กลายเป็นหน้าจอสัมผัสด้วยฮาร์ดแวร์ราคา 1 ดอลลาร์
- ใช้งานได้แม้กับกล้องในตัวความละเอียด 480p และหากใช้ กล้องความละเอียดสูง หรือ กระจกโค้ง ก็อาจตรวจจับได้ครอบคลุมทั้งหน้าจอ
- มีศักยภาพที่จะพัฒนาไปเป็นระบบหน้าจอสัมผัสที่ใช้งานได้จริงในต้นทุนต่ำ
ซอร์สโค้ด
- โปรโตไทป์ Sistine เปิดซอร์สภายใต้ สัญญาอนุญาต MIT
- ที่เก็บ GitHub: bijection/sistine
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
Steve Jobs เคยพูดไว้ในปี 2010 ว่า หน้าจอสัมผัสแนวตั้ง เหมาะแค่สำหรับเดโมสวย ๆ แต่พอใช้งานจริงแขนจะล้าเร็วมาก จนแย่ในเชิงสรีรศาสตร์
เป็นข้อความที่อ้างมาจากบทความของ Business Insider
เมื่อก่อนมือถือ Android ราคาถูกที่ใช้ stylus หรือของเลียนแบบ Palm Pilot นั้นแย่มากจริง ๆ แต่สำหรับศิลปิน stylus ที่รองรับแรงกด ก็ยังเป็นเครื่องมือที่มีประโยชน์อยู่
(อนึ่ง คำว่า ‘gorilla arm’ มาจาก Jargon File ในยุค 1980)
ใช้งานโดยวางอุปกรณ์ให้ราบหรือหมุนไปมา และยังใช้ Kindle Scribe กับ Galaxy Note 10+ ควบคู่กันด้วย
อยากลองใช้ Apple Sidecar แต่ยังลังเลเพราะต้องซื้อ stylus เพิ่มอีกอัน หวังว่าสักวัน Apple จะออก อุปกรณ์สืบทอดจาก Newton
ต่อให้มีคนให้ MacBook Pro จอสัมผัส ฟรี ฉันก็ไม่เอา เพราะทุกอย่างถูกปรับให้เหมาะกับคีย์ลัดอยู่แล้ว ไม่มีเหตุผลอะไรต้องเอื้อมไปแตะจอ
ถ้าใช้ทำงาน คีย์บอร์ดกับแทร็กแพดมีประสิทธิภาพกว่าระบบสัมผัสมาก
จอหลักก็ไม่มีระบบสัมผัส ส่วนหน้าจอโน้ตบุ๊กก็ใช้เป็นจอรอง จึงไม่มีเหตุผลให้เอื้อมมือไปแตะ เลยคิดว่า Touch Bar ก็ล้มเหลวเพราะเหตุนี้
พอเห็นโปรเจกต์นี้ก็ทำให้นึกถึง การทดลอง Wii-mote ของ Johnny Lee สมัยก่อน
johnnylee.net/projects/wii/
โน้ตบุ๊กบริษัทเครื่องเก่าที่เคยใช้มีจอสัมผัส และน่าแปลกที่มัน มีประโยชน์สัปดาห์ละสักหนึ่งถึงสองครั้ง
ตอนอยู่บนรถไฟ ถ้าไม่อยากเอาศอกไปชนคนข้าง ๆ การแตะหน้าจอตรง ๆ จะสะดวกกว่า และตอนเลื่อนหน้าจอก็ใช้นิ้วทำได้เป็นธรรมชาติกว่า
มันไม่ใช่อุปกรณ์ป้อนข้อมูลหลัก แต่ในฐานะ ทางเลือกเสริมสำหรับการป้อนข้อมูล ก็ถือว่าใช้ได้
พอเห็นคำว่า “การกรองสีผิว” ก็เกิดคำถามขึ้นมา ว่าใช้ สีผิวแบบไหน เป็นเกณฑ์ และโดยเฉพาะกับผิวเข้มนั้นทำงานได้ดีแค่ไหน อยากเห็นข้อมูลเหมือนกัน
บนโน้ตบุ๊ก หน้าจอสัมผัสนั้น ใช้งานไม่สบาย สำหรับฉันแล้วไม่มีจะดีกว่า
เป็น กรณีใช้งานด้านคอมพิวเตอร์วิทัศน์ ที่เจ๋งมาก และก็ขอบคุณที่เปิดโค้ดให้ด้วย
ถึงจะเป็นแค่โปรโตไทป์ง่าย ๆ แต่ก็น่าสนใจ สงสัยว่า สภาพแสง จะมีผลต่อความแม่นยำแค่ไหน — กลางแจ้งหรือในสภาพย้อนแสงจะยังทำงานได้ดีไหม?
คิดว่าถ้าใช้ background subtraction แทน “การกรองสีผิว” น่าจะเสถียรกว่า เพราะสีผิวนั้นหลากหลายเกินไปตามสภาพแสง
พอคิดภาพว่ามีกล้องคั่นอยู่ระหว่างจอแล้วปิด MacBook ลงมา ก็รู้สึกเหมือน หน้าจออาจแตกได้เลย
ฉันชอบ Mac นะ แต่ฮาร์ดแวร์มัน บอบบางจนน่ากังวล มาก โดยเฉพาะพอเป็นโน้ตบุ๊กของบริษัทก็ยิ่งต้องระวัง