हम अपने नोनोग्राम कैसे बनाते हैं
यहाँ हर पहेली एक साधारण चित्र के रूप में शुरू होती है और एक ऐसी ग्रिड के रूप में समाप्त होती है जिसे आप केवल तर्क से हल कर सकते हैं। बीच में, यह एक स्वचालित पाइपलाइन से गुज़रती है जो छवि को रैस्टराइज़ करती है, परखती है कि परिणाम वास्तव में हल होने योग्य है या नहीं, और उन्हें फेंक देती है जो नहीं हैं। यह पृष्ठ उस प्रक्रिया को ईमानदारी से बताता है — उन हिस्सों सहित जो विफल होते हैं, क्योंकि अधिकांश काम अच्छी पहेलियाँ बनाने के बजाय खराब पहेलियों को अस्वीकार करने में है।
1. यह एक चित्र से शुरू होता है
एक नोनोग्राम हमेशा बस एक काला-सफ़ेद छायाचित्र होता है — कोई छायांकन नहीं, कोई रंग नहीं, कोई आंतरिक विवरण नहीं। तो पहला कदम एक ऐसी स्रोत छवि चुनना है जिसका आकार बहुत छोटे रिज़ॉल्यूशन पर स्पष्ट रूप से पढ़ा जा सके: एक जानवर, एक फल, एक राशि चिह्न, एक घरेलू वस्तु। हम वेक्टर कला (SVG), पारदर्शी PNG और सादे तस्वीरों से काम करते हैं, जिन्हें थीम-आधारित एसेट पैक में व्यवस्थित किया जाता है, साथ ही एक इन-ऐप छवि खोज के माध्यम से लाई गई छवियाँ।
इस चरण में जो मायने रखता है वह यह नहीं है कि छवि कितनी सुंदर है — बल्कि यह है कि 15×15 या 20×20 ग्रिड में दबाए जाने पर उसकी रूपरेखा कितनी अच्छी तरह टिकती है। एक बोल्ड, अच्छी तरह से अलग किया गया आकार काम करता है। बहुत सारे छोटे अतिव्यापी हिस्सों वाला एक व्यस्त दृश्य लगभग कभी नहीं करता, और हम नीचे देखेंगे कि क्यों।
2. एक चित्र को ग्रिड में बदलना
छवि को एक वास्तविक इमेजिंग लाइब्रेरी (वही जिस पर ब्राउज़र SVG के लिए निर्भर करते हैं) से रैस्टराइज़ किया जाता है, फिर प्रति सेल एक ही काले-या-सफ़ेद मान तक घटा दिया जाता है। ऐसा करने का कोई एक „सही” तरीका नहीं है, इसलिए पाइपलाइन कई तरीके आज़माती है: जहाँ छवि की अपनी पारदर्शिता है वहाँ उसके आधार पर, सादे चमक के आधार पर (गहरा = भरा हुआ), या — सादे पृष्ठभूमि पर एक चमकीले, रंगीन विषय के लिए, जहाँ केवल चमक शायद ही उसे अलग करती है — पृष्ठभूमि से रंग-दूरी के आधार पर। सफ़ेद पर एक हल्के-नारंगी लोमड़ी चमक में लगभग सफ़ेद है लेकिन रंग में उससे बहुत दूर है; रंग-दूरी मास्क उसे साफ़-सुथरे ढंग से अलग कर देता है।
„भरे” और „खाली” के बीच की सीमा स्वचालित रूप से Otsu's method का उपयोग करके चुनी जाती है, एक मानक तकनीक जो वह चमक-सीमा ढूँढती है जो छवि को सबसे साफ़-सुथरे ढंग से दो समूहों में विभाजित करती है। चूँकि यह पहले से जानने का कोई तरीका नहीं है कि कौन-सा आकार, क्रॉप और सीमा सबसे अच्छा पढ़ेगा, पाइपलाइन प्रति छवि कई उम्मीदवार ग्रिड उत्पन्न करती है — अलग-अलग आकार, अलग-अलग सीमाएँ — प्रत्येक को उसकी भरी हुई सामग्री तक क्रॉप करती है और आकार को ग्रिड के अनुपात में फ़िट करती है ताकि एक चौड़े मुकुट को एक वर्ग में दबाने के बजाय एक चौड़ी ग्रिड मिले।
3. यह जाँचना कि इसे वास्तव में हल किया जा सकता है
एक चित्र जो किसी इंसान को ठीक लगता है, अपने आप एक वैध पहेली नहीं है। एक वास्तविक नोनोग्राम को केवल अपनी पंक्ति और स्तंभ संकेतों से हल होने योग्य होना चाहिए और — महत्वपूर्ण रूप से — इसका ठीक एक समाधान होना चाहिए। यदि दो अलग-अलग भरे हुए पैटर्न हर संकेत को संतुष्ट करते हैं, तो पहेली अस्पष्ट और अनुचित है, क्योंकि शुद्ध तर्क का पालन करने वाला हल करने वाला „गलत” चित्र पर सही तरीके से पहुँच सकता है।
इसलिए हर उम्मीदवार को एक हल करने वाले को दिया जाता है: यह वही पंक्ति-दर-पंक्ति निगमन लागू करता है जो एक व्यक्ति करता, और जहाँ केवल तर्क अटक जाता है, यह यह गिनने के लिए एक संपूर्ण खोज पर लौट आता है कि कितने पूर्ण समाधान मौजूद हैं। शून्य समाधान (विरोधाभासी) या एक से अधिक समाधान (अस्पष्ट) वाली कोई भी ग्रिड तुरंत अस्वीकार कर दी जाती है। यह अद्वितीयता जाँच पूरी पाइपलाइन में सबसे महत्वपूर्ण द्वार है।
4. यह सुनिश्चित करना कि यह तर्क है, अनुमान नहीं
एक समाधान होना बिल्कुल पर्याप्त नहीं है। एक पहेली तकनीकी रूप से अद्वितीय हो सकती है लेकिन केवल परीक्षण-और-त्रुटि से पहुँची जा सकती है — एक सेल भरना, उसे ग्रिड में गहराई तक ले जाना, और जब यह विरोधाभास करे तो पीछे हटना। यह हल करना नहीं है; यह अनुमान लगाना है, और यह एक निराशाजनक पहेली बनाता है।
इसे पकड़ने के लिए, हम वर्गीकृत करते हैं कि प्रत्येक पहेली को सोच-समझकर सुलझाना कितना कठिन है। जो पहेलियाँ सीधी पंक्ति-दर-पंक्ति तर्क से निकलती हैं वे „सरल” हैं। निगमन का एक दूसरा, अच्छी तरह से अध्ययन किया गया स्तर (Batenburg and Kosters द्वारा प्रकाशित नोनोग्राम-कठिनाई शोध पर आधारित) बाकी अधिकांश को बिना किसी अनुमान के संभालता है। जो कुछ भी अभी भी परीक्षण-और-त्रुटि के बिना तय नहीं किया जा सकता उसे अनुमान-आवश्यक के रूप में चिह्नित किया जाता है — और रोज़मर्रा की सूची के लिए, उन्हें प्रकाशित करने के बजाय अलग रख दिया जाता है।
5. क्यों बहुत सारी छवियाँ कभी नहीं बन पातीं
किसी भी हल करने के काम से पहले, पाइपलाइन यह भी अनुमान लगाती है कि क्या कोई छवि आज़माने लायक भी है, दो कुंद लेकिन ईमानदार संकेतों का उपयोग करते हुए। एक है वियोज्यता: छवि बिल्कुल कितनी साफ़-सुथरे ढंग से दो टोन में विभाजित होती है — एक गंदला, कम-कंट्रास्ट स्रोत किसी भी आकार पर एक बुरा दांव है। दूसरा है विवरण-बनाम-रिज़ॉल्यूशन फ़िट: एक छवि जिसमें ग्रिड की कोशिकाओं की तुलना में कहीं अधिक बारीक विशेषताएँ हैं, बस एक धब्बे में ढह जाएगी।
हमारे अपने परीक्षण से एक ठोस उदाहरण: एफ़िल टॉवर की एक असली तस्वीर ने एक 40×40 उम्मीदवार तैयार किया जो हर हल-होने-योग्यता जाँच पास कर गया — एक अद्वितीय समाधान, एक उचित भराव अनुपात — लेकिन एक ठोस आयत के रूप में प्रस्तुत हुआ। टॉवर का जालीदार विवरण और उसके नीचे की अव्यवस्था एक अविभेदित ब्लॉक में चपटी हो गई। तकनीकी रूप से एक वैध नोनोग्राम; दृष्टिगत रूप से बेकार। ऐसे मामले ठीक वही हैं जिन्हें रोकने के लिए ये अग्रिम जाँचें, साथ ही एक मानवीय नज़र, मौजूद हैं। सीमाओं के बारे में स्पष्ट रहने के लिए: यहाँ कोई दृष्टि मॉडल नहीं है — पाइपलाइन कभी नहीं पहचानती कि किसी चित्र में *क्या* है, केवल यह मापती है कि उसका आकार कितनी अच्छी तरह परिवर्तित होता है। यही कारण है कि अंतिम निर्णय अब भी एक व्यक्ति का है।
6. एक रेटिंग, और एक अंतिम मानवीय नज़र
जो पहेलियाँ हर द्वार पार करती हैं उन्हें उनके हल करने के स्तर और आकार के आँकड़ों (ग्रिड कितनी भरी है, चित्र किनारों से बाहर निकलता है या नहीं, इत्यादि) से एक कठिनाई रेटिंग मिलती है, और यही उन्हें आसान, मध्यम और कठिन संग्रहों में क्रमबद्ध करता है। फिर एक व्यक्ति हमारे ग्रिड संपादक में सूची के लिए नियत पहेलियों को खोलता है, जाँचता है कि चित्र वास्तव में वही पढ़ा जाता है जो उसे होना चाहिए, और किसी भी ऐसी चीज़ को समायोजित या त्याग देता है जिसे स्वचालित जाँचों ने पास कर दिया लेकिन नहीं करना चाहिए था।
यह जानबूझकर एक अनाकर्षक प्रक्रिया है, और यही मुद्दा है: स्वचालन निष्पक्षता की गारंटी देने के लिए मौजूद है — एक समाधान, तर्क से हल होने योग्य — जबकि एक इंसान उस चीज़ की रखवाली करता है जिसे कंप्यूटर नहीं आँक सकता, वह यह कि तैयार चित्र अच्छा है या नहीं।
यही पूरी पाइपलाइन है, कोड को छोड़कर। यदि आप इस बारे में पढ़ने के बजाय एक हल करना पसंद करेंगे कि इसे कैसे बनाया गया है, तो आज की पहेली शुरुआत के लिए एक अच्छी जगह है।
