Project Sistine - 1 डॉलर के हार्डवेयर से MacBook को टचस्क्रीन में बदलना
(anishathalye.com)- एक प्रोटोटाइप प्रोजेक्ट जो सिर्फ 1 डॉलर के पुर्ज़ों और computer vision तकनीक से MacBook को टचस्क्रीन की तरह काम करने लायक बनाता है
- बिल्ट-इन webcam के सामने एक छोटा दर्पण लगाया जाता है, जिससे स्क्रीन को तिरछे ढंग से देखा जाता है, और उंगली तथा उसके प्रतिबिंब के प्रतिच्छेदन को touch के रूप में पहचाना जाता है
- skin color filtering और contour analysis के जरिए touch·hover बिंदु की गणना की जाती है, और homography correction से उसे स्क्रीन coordinates पर मैप किया जाता है
- पहचाने गए input को mouse events में बदला जाता है, जिससे मौजूदा apps में भी तुरंत touch interaction संभव हो जाता है
- 480p कैमरा पर भी काम करता है, और high-resolution camera या curved mirror का उपयोग करने पर पहचान क्षेत्र बढ़ाया जा सकता है — यह कम लागत वाले टचस्क्रीन इम्प्लीमेंटेशन का एक उदाहरण है
Project Sistine का अवलोकन
- MacBook को टचस्क्रीन में बदलने के लिए सिर्फ 1 डॉलर के हार्डवेयर और सरल computer vision तकनीकों का उपयोग
- लगभग 16 घंटे में 4 लोगों ने मिलकर बनाया गया proof-of-concept prototype
- इसका नाम Sistine Chapel की ‘The Creation of Adam’ पेंटिंग को पुनःनिर्मित करने के विचार से लिया गया
मूल सिद्धांत
- स्क्रीन को तिरछे कोण से देखने पर प्रकाश के परावर्तन से उंगली और उसका प्रतिबिंब एक साथ दिखाई देने की घटना का उपयोग
- जिस क्षण उंगली प्रतिबिंब को छूती है, उसे पहचानकर touch हुआ या नहीं यह निर्धारित किया जाता है
- यह विचार Kevin के पहले के ShinyTouch प्रोजेक्ट से लिया गया
- बाहरी webcam वाले तरीके को MacBook के बिल्ट-इन webcam और छोटे दर्पण से बदला गया
- बिल्ट-इन कैमरे के सामने छोटा दर्पण लगाकर पूरी स्क्रीन को तिरछे ऊपर से देखने वाला दृश्य प्राप्त किया गया
- कैमरा वीडियो में उंगली की गति को पहचानकर उसे touch event में बदला जाता है
हार्डवेयर संरचना
- ज़रूरी सामग्री में छोटा दर्पण, paper plate, door hinge, glue gun जैसे साधारण पुर्ज़े शामिल हैं
- दर्पण को उचित कोण पर स्थिर किया जाता है ताकि कैमरा पूरी स्क्रीन देख सके
- सिर्फ चाकू और glue gun से कुछ ही मिनटों में असेंबल किया जा सकने वाला सेटअप
उंगली पहचान एल्गोरिद्म
- input वीडियो में उंगली और उसके प्रतिबिंब को ढूँढकर touch/hover बिंदु की गणना
-
skin color filtering और binarization → contour detection → दो प्रमुख contours का चयन
- दोनों contours का क्षैतिज दिशा में overlap होना चाहिए, और छोटा contour ऊपर की ओर स्थित होना चाहिए
- दोनों contours के ऊपरी और निचले हिस्सों को जोड़ने वाली रेखा के midpoint को touch/hover बिंदु के रूप में सेट किया जाता है
- दोनों contours के बीच की vertical distance से touch और hover में अंतर किया जाता है
- परिणाम वीडियो में उंगली और प्रतिबिंब रेखा हरे, bounding box लाल, और touch point मैजेंटा रंग में दिखता है
-
मैपिंग और calibration
- webcam coordinates को स्क्रीन coordinates में बदलने के लिए homography की गणना
- उपयोगकर्ता स्क्रीन के कुछ खास बिंदुओं को छूकर calibration करता है
- इकट्ठा किए गए coordinate pairs के आधार पर RANSAC algorithm से projection matrix का अनुमान लगाया जाता है
- calibration के बाद स्क्रीन पर लाल रेखाओं से projection matrix का visualization दिखाया जाता है, और अनुमानित touch points नीले बिंदुओं के रूप में प्रदर्शित होते हैं
उपयोग
- यह prototype hover और touch को mouse events में बदलता है, जिससे मौजूदा apps तुरंत touch-compatible बन जाते हैं
- अपना ऐप बनाते समय hover height जैसी विस्तृत touch data का सीधे उपयोग भी किया जा सकता है
निष्कर्ष और सुधार की संभावना
- Project Sistine 1 डॉलर के हार्डवेयर से laptop को टचस्क्रीन बनाने का एक प्रयोगात्मक इम्प्लीमेंटेशन है
- 480p बिल्ट-इन कैमरा पर भी काम करता है, और high-resolution camera या curved mirror का उपयोग करने पर पूरी स्क्रीन की पहचान संभव हो सकती है
- कम लागत में इसे एक व्यावहारिक टचस्क्रीन सिस्टम के रूप में विकसित किए जाने की संभावना है
सोर्स कोड
- Sistine prototype को MIT लाइसेंस open source के रूप में जारी किया गया है
- GitHub रिपॉज़िटरी: bijection/sistine
1 टिप्पणियां
Hacker News की राय
Steve Jobs ने 2010 में कहा था कि vertical touchscreen सिर्फ शानदार demo के लिए होते हैं, लेकिन असल में बाजू जल्दी थक जाते हैं, इसलिए ergonomics के लिहाज़ से यह बहुत खराब है
यह Business Insider लेख से उद्धृत है
पहले के सस्ते Android stylus phones या Palm Pilot की नकलें सचमुच बहुत खराब थीं, लेकिन कलाकारों के लिए pressure-sensitive stylus अब भी उपयोगी टूल है
(संदर्भ के लिए, ‘gorilla arm’ शब्द 1980s के Jargon File से आया है)
मैं device को सपाट रखकर या घुमाकर इस्तेमाल करता हूँ, और Kindle Scribe व Galaxy Note 10+ भी साथ में इस्तेमाल करता हूँ।
मैं Apple Sidecar आज़माना चाहता हूँ, लेकिन एक और stylus खरीदना पड़ेगा, इसलिए हिचक रहा हूँ। उम्मीद है कि किसी दिन Apple Newton का successor device निकालेगा
मुझे touchscreen MacBook Pro मुफ़्त में भी मिले तो नहीं चाहिए। मैं पहले से keyboard shortcuts के हिसाब से optimized हूँ, तो फिर स्क्रीन दबाने की ज़रूरत ही क्या है
काम के लिए touch की तुलना में keyboard·trackpad कहीं ज़्यादा efficient हैं
main monitor में touch नहीं होता, और laptop screen सिर्फ secondary के लिए होती है, इसलिए हाथ बढ़ाने की ज़रूरत नहीं पड़ती। इसी वजह से मुझे लगता है कि Touch Bar भी असफल रहा
यह project देखकर मुझे पुराना Johnny Lee का Wii-mote experiment याद आ गया
johnnylee.net/projects/wii/
मेरी पुरानी कंपनी के laptop में touchscreen था, और हैरानी की बात है कि हफ़्ते में एक-दो बार वह उपयोगी साबित होता था
ट्रेन में बगल वाले व्यक्ति से कोहनी न टकराए, इसके लिए स्क्रीन को सीधे touch करना सुविधाजनक था, और scrolling करते समय भी उंगली से करना natural लगता था
यह primary input device नहीं था, लेकिन secondary input option के रूप में ठीक था
“skin color filtering” वाक्यांश देखकर सवाल उठा। यह किस skin color को आधार बनाता है, और खासकर गहरे रंग की त्वचा पर यह कितना अच्छा काम करता है, इसका data जानना चाहूँगा
laptop पर touchscreen आरामदायक नहीं होता। मेरी निजी राय में इसका न होना ही बेहतर है
यह सचमुच computer vision का शानदार application case है। code भी public करने के लिए धन्यवाद
यह एक simple prototype है, लेकिन दिलचस्प है। सोच रहा हूँ कि lighting conditions के हिसाब से recognition बदलेगा या नहीं — क्या यह outdoor या backlight में भी ठीक से काम करेगा?
“skin color filtering” की जगह background subtraction इस्तेमाल किया जाता तो शायद ज़्यादा stable होता। skin color lighting के हिसाब से बहुत बदलता है
कल्पना होती है कि स्क्रीन के बीच camera रखकर MacBook बंद करते समय स्क्रीन टूट जाएगी।
मुझे Mac पसंद है, लेकिन उसका hardware इतना नाज़ुक लगता है कि चिंता होती है। कंपनी का laptop होने की वजह से और भी सावधान रहना पड़ता है