Wednesday, 24 September 2014

Face Cropper Software by Nidhin Jose

>> TUESDAY, SEPTEMBER 16, 2014

ആവശ്യമാണ് കണ്ടുപിടുത്തങ്ങളുടെ മാതാവ് എന്നാരോ പണ്ടേ പറഞ്ഞു വച്ചിട്ടുണ്ട്. ഞാനൊരു പ്രൊഫഷണല്‍ സോഫ്റ്റ്‌വെയര്‍ ഡെവലപ്പറോ ടാലന്റഡ് പ്രോഗ്രാമറോ ഒന്നുമല്ല. കേവലം ഒരു പ്രൈമറി അധ്യാപകന്‍. ഒരുപാട് കാലമായി ഞാന്‍ മനസില്‍ കൊണ്ടു നടന്ന ഒരു സോഫ്റ്റ്‌വെയര്‍ സ്വപ്നം ഇന്ന് യാഥാത്ഥ്യമായിരിക്കുകയാണ് -ഒരു ഫോള്‍ഡറില്‍ സൂക്ഷിച്ചിരിക്കുന്ന ഫോട്ടോകളിലെ മുഖങ്ങള്‍ കണ്ടെത്തി അവയെ പ്രത്യേകം പ്രത്യേകമായി നാം ആഗ്രഹിക്കുന്ന വലുപ്പത്തിലേക്ക് ക്രമപ്പെടുത്തി സേവ് ചെയ്യാന്‍ കഴിവുള്ള FaceCropper എന്ന



 സോഫ്ട്‌വെയര്‍. ഇങ്ങനെ ഒരു ഫ്രീ സോഫ്റ്റ്‌വെയര്‍ ഉണ്ടായിരുന്നെങ്കില്‍ എന്ന് ഞാന്‍ പലപ്പോഴും ആഗ്രഹിച്ചുപോയിട്ടുണ്ട്. അജ്ഞനായ ഈയുള്ളവന്‍ പ്രജ്ഞനെന്ന് ഭാവിച്ച് രചിച്ച ഈ 'സോഫ്റ്റ്‌വെയര്‍ഗാഥ' ബ്ലോഗുലകത്തോട് വിളിച്ചു പറയാന്‍ വെമ്പല്‍ കൊണ്ട് നടക്കാന്‍ തുടങ്ങിയിട്ട് ഏറെനാളായി. ഇന്നിത് മാലോകര്‍ക്ക് പ്രയോജനപ്പെടാന്‍ വേണ്ടി ഇന്റര്‍നെറ്റിന്റെ സിരകളിലൂടെ സ്വതന്ത്രമായി ഒഴുകാന്‍ അനുവദിക്കുമ്പോള്‍ ഉള്ളില്‍ അലയടിക്കുന്ന സന്തോഷം എനിക്ക് പറഞ്ഞറിയിക്കാവുന്നതിനുമപ്പുറമാണ്. FaceCropper എന്ന എന്റെ ആദ്യസോഫ്റ്റ്‌വെയര്‍ കണ്‍മണിയുടെ ജനനത്തിനു പിന്നിലെ കഥയാണിത്.

2007- 08 അദ്ധ്യയന വര്‍ഷത്തില്‍, ഞങ്ങളുടെ സബ് ജില്ലയുടെ (കുറവിലങ്ങാട്)ചുമതലക്കാരനായ IT@School മാസ്റ്റര്‍ ട്രെയ്നര്‍, ജോളിസാറാണ് ആദ്യമായി കലോത്സവത്തിന്റെ സോഫ്റ്റ്‍വെയര്‍ പരിപാലനവുമായി എന്നെ ബന്ധിപ്പിച്ചത്. പിന്നീടതങ്ങോട്ട് എന്റെ കുത്തകയായി മാറുകയായിരുന്നു. സബ് ജില്ല സയന്‍സ് ക്ലബ് സെക്രട്ടറി ആയതോടുകൂടി ശാസ്ത്രമേളയുടെ സോഫ്റ്റ്വെയര്‍ പരിപാലനവും എന്റെ ചുമതലയായി. പൊതുവേ ഒരു ടെക്നോക്രാറ്റായതിനാല്‍ ഈ ജോലികള്‍ എനിക്ക് ഇഷ്ടവുമായിരുന്നു. നടേശന്‍ സാറിനെയും TSN ഇളയത് സാറിനെയുമെല്ലാം കൂടുതല്‍ അടുത്ത് പരിചയപ്പെട്ടതും ഈ വഴിക്കാണ്.

അങ്ങനെയിരിക്കെയാണ് മുടങ്ങിപ്പോയ പഠനം പൂര്‍ത്തിയാക്കണമെന്ന ആഗ്രഹം കലശലായത്. ലീവെടുത്തു. ഒരു വര്‍ഷത്തേക്ക് എല്ലാത്തില്‍ നിന്നും വിട. പഠനം പൂര്‍ത്തിയാക്കി വീണ്ടും പഴയ സുഹൃത്തുക്കളോടൊപ്പം കളത്തിലിറങ്ങണമെന്ന ആഗ്രഹവുമായി തിരിച്ചെത്തിയപ്പോഴാണ് ഇരുട്ടിടി കിട്ടിയത്. കുറവിലങ്ങാട് സബ്ജില്ലയില്‍ ഒഴിവില്ല!! പണിപാളി!! പോസ്റ്റിങ്ങ് കിട്ടിയത് തൊട്ടടുത്തുള്ള സബ്ജില്ലയായ വൈക്കത്ത് വെച്ചൂര്‍ ഗവ. ഹൈസ്കൂളില്‍. മനസില്ലാ മനസോടെ കിട്ടിയ പോസ്റ്റില്‍ വലിഞ്ഞ് കേറി. അങ്ങനെ ഫീല്‍ഡ് ഔട്ടായി നില്‍ക്കുന്ന നേരത്താണ് നടേശന്‍ സാറിന്റെ വിളി.

"സബ്ജില്ലാ കലോത്സവമാണ്. കാരിക്കോട് അച്ചന്റെ സ്കൂളില്‍. നാളെ കമ്മറ്റിക്ക് വരണം."

"പൊന്നുരുക്കുന്നിടത്ത് പൂച്ചക്കെന്തുകാര്യം?" എന്റെ മറുപടി.

പോയാല്‍ കൊള്ളാമെന്നുണ്ട്. പക്ഷെ എങ്ങനാ ജോലി ചെയ്യുന്ന സബ് ജില്ലയിലല്ലാതെ ഇത്തരമൊരു വര്‍ക്കിന് പോകുന്നത്? എച്ച്. എം. എന്ത് പറയും? തുടങ്ങിയ കാര്യങ്ങളോര്‍ത്തപ്പോള്‍..........

"നടക്കില്ല സാറേ .... സ്കൂളീന്ന് വിടൂന്ന് തോന്നുന്നില്ല"

"അതൊന്നും പ്രശനമില്ല. AEO യെക്കൊണ്ട് ഞാന്‍ HM നെ വിളിപ്പിച്ചോളാം.. വന്നേപറ്റൂ.... ഇത്തവണ ഞാനാണ് കണ്‍വീണര്‍. സംഗതി ഉഗ്രനാക്കണം.. "

"ശരി നോക്കട്ടെ HM സമ്മതിച്ചാല്‍ വരാം"

മനസില്ലാ മനസോടെയാണെങ്കിലും HM സമ്മതിച്ചു. അങ്ങനെ വീണ്ടും കലോത്സവ നഗരിയിലേക്ക്......

കലോത്സവ ബ്ലോഗ്, ലൈവ് വീഡിയോ സ്ട്രീമിങ്, ലൈവ് സ്കോര്‍ ബോര്‍ഡ്, ഫോട്ടോ ഗാലറി..... അങ്ങനെ പല നൂതന സങ്കേതങ്ങളുമായി കലോത്സവം പതിവിലും ഗംഭീരമായി നടന്നു. നന്ദി പറയേണ്ടത് കാരിക്കോട് സ്കൂളിലെ മനോജ് സാറിനും പ്രിയടീച്ചര്‍ക്കും അച്ചടക്കത്തോടെ കൂടെ നിന്ന ഒരു പറ്റം വിദ്യാര്‍ത്ഥികളോടുമാണ്. 

അങ്ങനെ കലോത്സവമെല്ലാം കഴിഞ്ഞ് സ്കൂളില്‍ തിരിച്ചെത്തി ആത്മനിര്‍വൃതിയോടെ പരിലസിക്കുമ്പോഴാണ് ഒരുവിളി വന്നത്.......
"ഹലോ.... നിധിന്‍ സാറല്ലേ...... നടേശനാ.......
അതേ ഒരു ചെറിയ പ്രശ്നമുണ്ട്...... ജില്ലേപോവണ്ട പിള്ളാരുടെ ഫോട്ടോ കൂടി വേണമെന്ന്.... യു.പി കാരുടെ ഇല്ലേലും ഹൈസ്കൂളിന്റെ നിര്‍ബന്ധമാണെന്ന്.... എന്താ മ്പക്ക് ചെയ്യാമ്പറ്റുക.... ? "
"കലോത്സവത്തിന്റെ ഓഫ് ലൈന്‍ സോഫ്റ്റ്‍വെയറില്‍ ഫോട്ടോ കേറ്റാനുള്ള ഒപ്ഷനുണ്ട്. ഡാറ്റ എക്സ്പോര്‍ട്ട് ചെയ്യുന്നതിന് മുമ്പ് ഫോട്ടോ കേറ്റിയാല്‍ മതി........"
"ഫോട്ടോയൊക്കെ സീഡിലാക്കി തരാം... ഒന്ന് കൈകാര്യം ചെയ്തുതരണം..... "
പണികിട്ടി........എട്ടിന്റെ............
പറഞ്ഞ് സമ്മതിപ്പിക്കാന്‍ നടേശന്‍ സാറിന് ഒരു പ്രത്യേക ചാതുര്യമാണ്. ചെന്ന് പണിമേടിക്കാന്‍ എനിക്കും.

"അപ്പോ രണ്ട് ദിവസത്തിനകം ലാപ്ടോപ്പും ഫോട്ടോകളും സ്കൂളിലെത്തിക്കാം..... യൂ,പിക്കാരുടെ കൂടി സംഘടിപ്പിച്ചാലോ?"
"ഹും ... വിട്ടുപൊക്കോണം..... ഇതുതന്നെ പറ്റുമോന്ന് അറിയില്ല... അപ്പളാ..."
പതിവു ചിരിയും പാസാക്കി സാര്‍ ഫോണ്‍വച്ചു.
പറഞ്ഞതുപോലെ രണ്ട് ദിവസത്തിനകം ലാപ്പ്ടോപ്പ് എത്തി. പണിതുടങ്ങി. അപ്പോഴാണ് മനസിലായത് അത് അത്ര എളുപ്പമല്ലെന്ന്.

200X200 PIX സൈസേ പാടുള്ളു. ബാച്ച് റീസൈസ് ചെയ്യാന്‍ ടൂളുകള്‍ ഉബുണ്ടുവിലുണ്ടല്ലോ... പക്ഷെ ആസ്പക്റ്റ് റേഷ്യോയുടെ കാര്യം കടുംപിടുത്തം പിടിച്ചാല്‍ ഫോട്ടോ പലതും ചളുങ്ങിപ്പോകും. കിട്ടിയ ഫോട്ടോയെല്ലാം ഒന്നിനൊന്ന് വ്യത്യസ്തം. ചിലതില്‍ സൂംഡ് ഔട്ടായാണ് മുഖം. എല്ലാം കൊണ്ടും വെട്ടിലായി. സോഫ്റ്റ്‌വെയറുകള്‍ പലതുമാറി നോക്കി മുഖംമാത്രം 200X200 ല്‍ തന്നെ മുറിച്ചെടുക്കാന്‍ ഒരുപാട് ക്ലിക്കും ഡബിള്‍ ക്ലിക്കും റൈറ്റ് ക്ലിക്കും ഡ്രാഗുമെല്ലാം ചെലവാക്കാതെ നടക്കില്ലെന്ന് മനസിലായി. തദ്വാരാ നടേശന്‍സാറിനെ 'നന്ദി'പൂര്‍വം സ്മരിച്ചു.....

ഒടുവില്‍ എല്ലാ ഫോട്ടോയും വെട്ടിനിരത്തി അപ് ലോഡ് കര്‍മം നടത്തി. ഒരുപാട് ക്ഷീണിച്ചെങ്കിലും മനസ് സംതൃപ്തിയുടെ മധുരം നുണഞ്ഞു. അന്ന് മനസില്‍ കുറിച്ചിട്ടതാണ് മുഖം കണ്ടെത്തി ബുദ്ധി പൂര്‍വം ക്രോപ്പ് ചെയ്യാന്‍ കഴിവുള്ള ഒരു സോഫ്റ്റ്‌വെയര്‍ ഉണ്ടാക്കണമെന്ന്. എനിക്കതിന് കഴിയുമെന്ന് ഉറച്ച വിശ്വാസം ഉണ്ടായിരുന്നു. ഈ വിശ്വാസത്തിനു പിന്നിലെ ഊര്‍ജം ഷാജിസാറായിരുന്നു. എം.എസ്.സി ക്ക് ജാവയുടെ ആദ്യാക്ഷരങ്ങള്‍ പകര്‍ന്നുതന്ന ഷാജി സാര്‍. എന്നെ ഇന്‍സ്പെയര്‍ ചെയ്തിട്ടുള്ള അധ്യാപകരില്‍ എറ്റവും പ്രധാനിയാണ് അദ്ദേഹം. അദ്ദേഹം പറയുമായിരുന്നു.

"ഒരു പ്രോഗ്രാമര്‍ക്ക് ആവശ്യമുള്ളതെന്തും ജാവയില്‍ ലഭ്യമാണ്. ഒഫീഷ്യലും അല്ലാത്തതുമായ ഒരുപാട് API കള്‍ ജാവയിലുണ്ട്. നിങ്ങള്‍ ഒരുകാര്യം റൂട്ട് ലെവലില്‍ നിന്ന് ചെയ്തെടുക്കണമെന്ന് വിചാരിച്ച് ജാവയുടെ മുന്നിലിരുന്ന് സമയം കളയെണ്ട കാര്യമില്ല. Just Google... ആ കാര്യം ചെയ്തെടുക്കാന്‍ പറ്റിയ ഒരു API നിങ്ങള്‍ക്ക് കിട്ടിയിരിക്കും. അതുതന്നെയാണ് ജാവയുടെ സ്ട്രെങ്ത്തും."

ഈ വാക്കുകളായിരുന്നു എം.എസ്‍സിക്ക് ഫൈനല്‍ പ്രോജക്റ്റായി ജാവയും മൈക്രോകണ്ട്രോളറും കൂട്ടിക്കുഴച്ച് ഒരു ലാബ് എക്സ്പിരിമെന്റ് ഓട്ടോ മേറ്റ് ചെയ്തെടുക്കാന്‍ എനിക്ക് ഊര്‍ജം നല്‍കിയത്.

കാര്യങ്ങള്‍ എന്തൊക്കെയായാലും ഒന്നിന്ന് പുറകേ ഒന്നായി വന്നുകൊണ്ടിരുന്ന സാഹചര്യങ്ങള്‍ക്കനുസരിച്ച് അങ്ങോട്ടുമിങ്ങോട്ടും ചാടിച്ചാടി എന്റെ മനസ് ബ്രൗണിയന്‍ ചലനം തുടര്‍ന്നു കൊണ്ടിരുന്നു. കുറച്ചുനാള്‍ ആനിമേഷന്റെ പുറകേയാണെങ്കില്‍ കുറച്ചുനാള്‍ ഇലക്ട്രോണിക്സിന്റെ പുറകേ. പിന്നെ വെബ്, ആന്‍ഡ്രോയിഡ് ഡെവലപ്പ്മെന്റ്, കീബോഡ് പഠനം അങ്ങനെയങ്ങനെ ചിതറിയ ചിന്തകളുമായി നടക്കുന്ന തിനിടെയാണ് പത്താം ക്ലാസുകാരായ എന്റെ ചില സ്കൂള്‍ ശിങ്കിടികള്‍ മേളകള്‍ക്ക് വേണ്ടി എന്തേലും ചെയ്യണമെന്ന ആവശ്യവുമായി വന്നത്. വര്‍ക്കിംഗ് മോഡല്‍ ഉണ്ടാക്കുന്നതിനെ കുറിച്ചുള്ള ചര്‍ച്ചക്കിടയില്‍ യുഎസ്ബിയില്‍ കണക്ട്ചെയ്തിരിക്കുന്ന വെബ്ക്യാം എങ്ങനെ ആക്സസ് ചെയ്യാമെന്നും മറ്റൊരു യുഎസ്ബി പോര്‍ട്ടില്‍ നിന്നും വരുന്ന സിഗ്നല്‍ കൊണ്ട് വീഡിയോ / ചിത്രം എടുക്കുന്നത് നിയന്ത്രിക്കാമെന്നും ചിന്തിക്കേണ്ടി വന്നു. "ശ്രമിച്ചു നോക്കട്ടെ" എന്ന് കുട്ടികളോട് പറഞ്ഞ് കളം വിട്ടു. അങ്ങനെ എന്നെക്കൊണ്ട് പറയിച്ചത് ഷാജിസാര്‍ പകര്‍ന്നു തന്ന ആത്മവിശ്വാസമൊന്നുമാത്രമാണ്.

ഇതിനോടകം എന്റെ വീട്ടിലെ ഒരു മുറി ലാബാക്കി മാറ്റിയിരുന്നു. നിവര്‍ത്തി പറഞ്ഞാല്‍ ഇലക്ട്രോണിക്സ് പരീക്ഷണങ്ങള്‍ക്കായി കമ്പോണന്റ്സും ബോര്‍ഡുകളും സോള്‍ഡറിഗ് അയണും മറ്റും മറ്റും.... + എന്റെ സകല ആക്രിസമ്പാദ്യങ്ങളും നിറച്ച ആക്രിപ്പെട്ടിയും, സോഫ്റ്റ്‌വെയര്‍ ഡെവലപ്പ്മെന്റ് പരീക്ഷണങ്ങള്‍ക്കും PCB ഡിസൈനിംഗിനുമായി ഇന്റര്‍നെറ്റ് കണക്ഷനുള്ള ഒരു ലാപ്ടോപ്പും സജ്ജീകരിച്ച ഒരു മുറി. ചുരുക്കി പറഞ്ഞാല്‍ ഒരു സോഫ്റ്റ്-ട്രോണിക്സ് ലാബ്.
പിന്നെ കുറച്ച് മാസങ്ങള്‍ പരീക്ഷണങ്ങളുടെ നാളുകളായിരുന്നു......... 'ഘോര പരീക്ഷണങ്ങള്‍'. സ്വന്തമായി PCB യുണ്ടാക്കാനുള്ള ടെക്നോളജി സ്വായത്തമാക്കിയതോടെ പരീക്ഷണങ്ങളുടെ വേഗതയും കൃത്യതയും പ്രൊഫഷ്ണല്‍ ടച്ചും കൂടി വന്നു. എന്റെ പരീക്ഷണങ്ങളെ കൗതുകത്തോടെ നോക്കിക്കാണാനും പ്രോത്സാഹിപ്പിക്കാനും എന്റെ പ്രിയ പത്നിയും ഇടയ്ക്കിടെ ലാബിലെത്താറുണ്ട്. (അല്ലാതെ ഈ മനുഷ്യന്‍ എന്ത് കടുംകയ്യാണ് ചെയ്യുന്നതെന്നറിയാനൊന്നുമല്ലാട്ടോ...)
പാവം അറിഞ്ഞിരുന്നില്ല, എന്നെ കല്യാണം കഴിച്ചാല്‍ ഇങ്ങനെയൊക്കെ 'തോളോടു തോള്‍ചേര്‍ന്ന് നിന്ന് പോരാടേണ്ടി വരുമെന്ന്, ചിലപ്പോള്‍ ഇലക്ടിക്ക് സ്പാര്‍ക്കിനെയും പൊട്ടിത്തെറികളെയും ഷോക്കിനെയുമെല്ലാം നേരിടേണ്ടി വരുമെന്ന്. ഞാന്‍ പെണ്ണു കാണാന്‍ പോയപ്പോള്‍ ഇതെല്ലാം ബുദ്ധിപൂര്‍വം മറച്ചു വച്ചു..... ഹ.. ഹ...

ഇതിനിടെ വിജയാഘോഷങ്ങളില്‍ പങ്കുചേരാന്‍ ഞങ്ങള്‍ക്കൊരു കാന്താരി കുഞ്ഞും പിറന്നു...... അതെ ശരിക്കും ഒരു കൊച്ചു കാന്താരി......

സയന്‍സ് വര്‍ക്കിംഗ് മോഡലിനോട് ഇന്റര്‍ഫേസു ചെയ്യാനുള്ള വെബ്ക്യാം ആപ്ലിക്കേഷന്റെ നിര്‍മാണവേളയില്‍ വലയിലൂടെ ഒരുപാട് അലയേണ്ടി വന്നു. അതിനിടയില്‍ ഫേസ് ഡിറ്റക്ഷന്‍ അല്‍ഗോരിതങ്ങളെ പറ്റിയുള്ള ഒരു ലേഖനം ശ്രദ്ധയില്‍പ്പെട്ടു. കൂടുതല്‍ വായിച്ച് സമയം കളയാനില്ലാതിരുന്നതിനാല്‍ ആ പേജ് സേവ് ചെയ്തിട്ട് പണിതുടര്‍ന്നു. എന്തായാലും ഒടുവില്‍ ഉദ്ദേശിച്ച പോലൊരു വെബ്ക്യാം ആപ്ലിക്കേഷന്‍ ഉണ്ടാക്കുക എന്ന എന്റെ ഉദ്യമം വിജയം കണ്ടു. അതിനൊപ്പിച്ച് മൈക്രോകണ്‍ട്രോളറും പ്രോഗ്രാം ചെയ്തെടുത്തു.... പിള്ളാര്സെറ്റ് ഹാപ്പി.... കുറച്ച് നാള് അവധി ദിവസങ്ങളില്‍ അവന്മാര്‍ വീട്ടില്‍ തന്നെയായിരുന്നു. എന്റെ കൂടെ കൂടി ഇലക്ടോണിക്സിന്റെ ബാലപാഠങ്ങളെല്ലാം വശത്താക്കി.
അതില്‍ ജയശങ്കര്‍ സ്റ്റേറ്റ് വര്‍ക്ക് എക്സ്പീരിയന്‍സ് മേളയില്‍ ഇലക്ട്രോണിക്സിന് A grade വാങ്ങി.
മേളകള്‍ കഴിഞ്ഞു. എന്റെ ലാബില്‍ ആര്‍ക്കും കാലുകുത്താന്‍ കഴിയാത്തവിധം ആക്രി സാധനങ്ങള്‍ കൊണ്ട് നിറഞ്ഞു. ഒടുവില്‍ ഹെഡ് ഓഫീസില്‍ നിന്ന് ഓര്‍ഡര്‍ വന്നു - മുറിയൊഴിയണം..... ഞാന്‍ ഓര്‍ഡര്‍ അവഗണിച്ചെങ്കിലും സഹധര്‍മിണി ഒരറ്റം മുതല്‍ തൂത്തുവാരാന്‍ തുടങ്ങിയപ്പോള്‍ ഞാനും കൂടി. എല്ലാം തവിടുപൊടിയായാലോ എന്ന് പേടിച്ചിട്ടാണെന്ന് മാത്രം. ഇപ്പോള്‍ താമസിക്കുന്ന വീട് പണിയുന്നതിന് മുമ്പ്തന്നെ ഒരു ഔട്ട് ഹൗസ് ഞങ്ങള്‍ ഉണ്ടാക്കിയിരുന്നു. അങ്ങോട്ട് എല്ലാം കൂടി ഷിഫ്റ്റ് ചെയ്തു.... ആ വീടിന് ഒരു പേരുമിട്ടു..... NJLAB.....

കുറച്ച്കാലമായിട്ടുള്ള ഓട്ടത്തിന് അറുതി വരുത്തി കുറച്ച് കാലം വിശ്രമിക്കാമെന്നു കരുതി NJLAB തല്കാലം പൂട്ടിയിട്ടു. എങ്ങനെ വിശ്രമിക്കും ????
ഉറങ്ങി നോക്കി.... മടുത്തു......ടിവി കണ്ടു നോക്കീ..... അതും മടുത്തു.........
അങ്ങനെയിരിക്കുമ്പോള്‍ മേശപ്പുറത്തിരിക്കുന്ന ലാപ്ടോപ്പ് എന്നെ മാടി വിളിക്കുന്ന പോലെ തോന്നി.....
ഇല്ല.... ഞാന്‍ വരില്ല..... ഞന്‍ ഉറപ്പിച്ചു പറഞ്ഞു.....
പക്ഷെ ഏതോ ഒരു മാസ്മര ശക്തിയുടെ ആകര്‍ഷണ വലയില്‍ പെട്ടപോലെ ലാപ്ടോപ്പി നരികിലേക്ക് ഞാന്‍ എത്തപ്പെട്ടു.....
സാരമില്ല... ഇതിനുമുമ്പിലിരുന്നും ആവാല്ലോ വിശ്രമം.....

കുറച്ചുനേരം മെയിലും ഫേസ്ബുക്കുമെല്ലാം നോക്കി വിശ്രമിച്ചു.
ഇനി ഒരു സിനിമകണ്ടു വിശ്രമിക്കാമെന്നു കരുതി ഫോള്‍ഡറുകള്‍ ചികയുമ്പോഴാണ് അവനെ കണ്ണിലുടക്കിയത്..... " Article on Face Detection Algorithms".
എങ്കില്‍ അതുവായിച്ച് വിശ്രമിക്കാമെന്നു കരുതി വായന തുടങ്ങിയപ്പോഴാണ് എനിക്കും ഇത് വഴങ്ങുമെന്ന് മനസിലായത്. അതോടെ വിശ്രമചിന്ത പറപറന്നു.
ജാവയുടെ ആദ്യാക്ഷരങ്ങള്‍ പഠിപ്പിച്ചു തന്ന പ്രിയ ഗുരുവിനെ മനസില്‍ ധ്യാനിച്ച് എക്ലിപ്സ് IDE ക്ക് ദക്ഷിണയും വച്ച് തുടങ്ങി...... File-New-Java Project ........
ജനിക്കുന്നതിന് മുമ്പേ ആ ജാവാ സോഫ്റ്റ്‌വെയര്‍ കുഞ്ഞിനൊരു പേരുമിട്ടു..... "FaceCropper". 

കോഡിങ്ങ് തുടങ്ങി.... മനസിന്റെ ശൂന്യതയ്ക്കുമേല്‍ ക്രീയേഷ്ന്‍, അനിഹീലേഷന്‍ ഓപ്പറേറ്ററുകള്‍ പ്രവര്‍ത്തിച്ചു തുടങ്ങി..... പുതിയ ആശയങ്ങള്‍ ഉരുത്തിരിഞ്ഞു വന്നു.... തള്ളേണ്ടതിനെ തള്ളിയും കൊള്ളേണ്ടതിനെ കൊണ്ടും മുന്നേറി....... കോഡറിയാതെ ഇടക്കിടെ വഴിയില്‍ പകച്ചു നിന്നുപോയി.... അപ്പോള്‍ വഴിവിളക്ക് തെളിച്ചുതന്നു വലയിലെ ചങ്ങാതിമാര്‍. ലക്ഷ്യത്തിലെത്തണമെന്ന ആഗ്രഹം, വലയിലെ പല ചര്‍ച്ചാവേദികളിലെ ചോദ്യങ്ങിലൂടെയും ഉത്തരങ്ങളിലൂടെയും ഒരുപാട് അലഞ്ഞുതിരിഞ്ഞിട്ടും മനസിനെ ക്ഷീണിപ്പിച്ചില്ല . അങ്ങനെ ആ ജാവാ ഭ്രൂണം വളരാന്‍ തുടങ്ങി..... 0.1, 0.2, 0.3, 0.3.1.... അങ്ങനെയങ്ങനെ.....എല്ലാ ഘട്ടങ്ങളിലെയും സ്കാനിഗ് റിപ്പോര്‍ട്ടുകള്‍ മങ്കടമാഷിനും, മാത്സ് ബ്ലോഗിന്റെ സൃഷ്ടാക്കളായ ഹരി-നിസാര്‍ മാഷുമ്മാര്‍ക്കും, ടോണിസാര്‍, തുടങ്ങിയ സുഹൃത്തുക്കള്‍ക്കും അയച്ച് കൊടുത്തുകൊണ്ടിരുന്നു. 

മാത് സ് ബ്ലോഗ് ടീമിനെയാണ് ഇതുമായ് ബന്ധപ്പെട്ട് ആദ്യം ഫോണില്‍ വിളിച്ചത്. അവര്‍ പറഞ്ഞു "സോഫ്റ്റ്‌വെയര്‍ കലക്കി. നന്നായി വിശക്കുമ്പോള്‍ വേണം വിളമ്പാന്‍. സമയമാവുമ്പോ മാത്സ് ബ്ലോഗു വഴി നമുക്കിത് വിളമ്പാം". എങ്കിലും എനിക്ക് അടങ്ങിയിരിക്കാന്‍ കഴിഞ്ഞില്ല. ആകാംക്ഷ സഹിക്കാനാവാതെ 0.7 വേര്‍ഷനായപ്പോഴേക്കും ലോഞ്ച്പാഡില്‍ വച്ച് സിസേറിയന്‍ നടത്തി ..... ആദ്യമായി പുറംലോകം കണ്ടു. പക്ഷെ കാര്യമായ പബ്ലിസിറ്റി കൊടുത്തില്ല. മാസം തികയാതെ പിറന്ന കുഞ്ഞിന് ചില ചില പ്രശ്നങ്ങള്‍ ഇപ്പോഴും നില നില്‍പ്പുണ്ട്. ഈ കുറിപ്പ് എഴുതുമ്പോള്‍ വേര്‍ഷന്‍ 0.8.4 ല്‍ എത്തി നില്‍ക്കുന്നു. അവന്‍ വളര്‍ന്നു വന്ന വഴി ...... ഇല്ല. ഞാനൊന്നും പറയുന്നില്ല..... ദാ കണ്ടോളൂ......
വേര്‍ഷന്‍ 0.1


ഇതാണ് നവജാത ശിശു
(ചിത്രങ്ങളില്‍ ക്ലിക്ക് ചെയ്താല്‍ വലുതായിക്കാണാം)

വേര്‍ഷന്‍ 0.2

GUI യില്‍ കുറച്ച് അടുക്കും ചിട്ടയും വരുത്തി.
മെനുബാര്‍ കുട്ടിച്ചേര്‍ത്തു.
കൂടാതെ കണ്ണില്‍പെടാതിരുന്ന ഒരു ചെറിയ വണ്ടിനെ (bug) ഞെക്കിക്കൊന്നു. 
വേര്‍ഷന്‍ 0.3

GUI യില്‍ മാറ്റമൊന്നും വരുത്തിയില്ല.
CropFaces ബട്ടന്‍ ക്ലിക്ക് ചെയ്യുമ്പേള്‍ ക്രോപ്പിങ്ങിന്റെ പുരോഗതി കാണിക്കാനായി ഒരു progress bar കൂട്ടിച്ചേര്‍ത്തു.
വേര്‍ഷന്‍ 0.4

GUI യില്‍ മാറ്റമൊന്നും വരുത്തിയില്ല.
കണ്ണില്‍ പെടാതിരുന്ന ഒരു വലിയ വണ്ടിനെ തല്ലിക്കൊന്നു.
അതിനിടെ നമ്മുടെ സമ്മതി സോഫ്റ്റ്‌വെയറിന്റെ തലതൊട്ടപ്പന്‍ THE GREAT നന്ദുവിന്റെ റിപ്ലെ മെയില്‍ വന്നു. (സോഫ്റ്റ്‌വെയറിന്റെ ലൈസന്‍സ് സംബന്ധമായ സംശയങ്ങള്‍ ദൂരീകരിക്കാനും മൊത്തത്തിലുള്ള അഭിപ്രായങ്ങള്‍ ആരായാനും വേണ്ടി ഞാനൊരു മെയില്‍ അയച്ചിരുന്നു.)
------------------------------------------------------------
"ഉഗ്രന്‍ സോഫ്റ്റ്‌വെയര്‍! ഉപകാരപ്രദമാവുമെന്നതില്‍ സംശയമില്ല.
ലൈബ്രറി മെര്‍ജ് ചെയ്യുന്ന കാര്യത്തില്‍ ചില പ്രശ്നങ്ങളുണ്ട്.
ലൈസന്‍സിന്റെ കാര്യം നൂലാമാലയാണ്. ഞാന്‍ ഫ്രീ സോഫ്റ്റ്‌വെയര്‍
ഫൗണ്ടേഷനുമായി ബന്ധപ്പെട്ടിട്ടുണ്ട്. ചര്‍ച്ച ചെയ്ത് തീരുമാനം പറയാം."
-------------------------------------------------------------
എനിക്ക് ഒരുപാട് സന്തോഷമായി.......
വേര്‍ഷന്‍ 0.5

പൂഞ്ഞാര്‍ ബ്ലോഗ് മുതലാളി ടോണി സാറും ITSchool കോട്ടയം മാസ്റ്റര്‍ ട്രെയിനര്‍ ടോണി സാറും എന്റെ ചേട്ടന്‍, ആഴകം ജി.യു.പി സ്കുളിലെ നിഖില്‍ മാഷും കുറേ ഫോട്ടോകള്‍ സോഫ്റ്റ്‌വെയറില്‍ ഉപയോഗിച്ച് കിട്ടിയ റിസല്‍റ്റുകള്‍ മെയില്‍ അയച്ചു തന്നു. ചില്ലറ പ്രശ്നങ്ങളും അവര്‍ ചൂണ്ടിക്കാട്ടി. അവ പരിഹരിക്കാനൊരു ശ്രമം ഈ വേര്‍ഷനില്‍ നടത്തി.

GUI യൂടെ സ്ട്രക്ചറില്‍ മാറ്റമൊന്നും വരുത്തിയില്ല. പക്ഷെ look and feel ചെറുതായൊന്നു മാറ്റി.

ഈ സമയം മങ്കടമാഷ് സ്മാര്‍ട്ട് ക്ലാസ്റൂം എന്ന വിഷയത്തിന്റെ പൈലറ്റ് സ്റ്റ‍ഡിയുമായി ബന്ധപ്പെട്ട് അനന്തപുരിയില്‍ തിരക്കിലായിരുന്നു. തിരിച്ച് വരുന്ന വഴി ട്രെയിനില്‍ വച്ച് എന്റെ മെയില്‍ കണ്ട് വിളിച്ചു. സോഫ്റ്റ്‌വെയറിന്റെ കാര്യം ചര്‍ച്ച ചെയ്തു. കുറേ നിര്‍ദേശങ്ങള്‍ അദ്ദേഹം പറഞ്ഞുതന്നു. ഒടുവില്‍,

"നന്നായിരിക്ക്ണു മാഷിന്റെ സോഫ്റ്റ്‌വെയര്‍. ആളുകള്‍ക്കിത് തീര്‍ച്ചയായും ഉപകാരപ്പെടും എന്നതില്‍ തര്‍ക്കോല്ല്യ. എനിക്ക് ഒരാളെ എന്തങ്കിലും ഐ.ടി. സംബന്ധമായ കാര്യത്തിന് വിളിക്കാന്‍ അവസരം കിട്ടിയാല്‍ ഞാന്‍ മാഷിനെ വിളിച്ചിരിക്കും...... തീര്‍ച്ച..... ങ്ളെ പ്പോലുള്ള ടെക്നോക്രാറ്റുകളയാണ് IT@SCHOOL ന് ആവശ്യം....."

അക്ഷരാര്‍ത്ഥത്തില്‍ എന്റെ മനസ് നിറഞ്ഞു. കണ്ണുകളില്‍ ഈറന്‍ പൊടിഞ്ഞു. IT@SCHOOL ല്‍ ഞാൻ ഏറെ ആരാധനയോടെ കണ്ടിരുന്ന ഒരു വ്യക്തിയുടെ നാവില്‍ നിന്ന് ഇത് കേള്‍ക്കാനായല്ലോ........

വേര്‍ഷന്‍ 0.6

GUI അടിമുടി പരിഷ്കരിച്ചു.
മങ്കടമാഷ് പറഞ്ഞതനുസരിച്ച്, സോഫ്റ്റ്‌വെയറില്‍ നടന്നുകൊണ്ടിരിക്കുന്ന പ്രവര്‍ത്തനങ്ങളെ പറ്റി യൂസര്‍ക്ക് കുടുതല്‍ അറിവ് നല്കുന്ന തരത്തിലേക്ക് ഒരു മാറ്റം.
GUI എങ്ങനെ വേണമെന്ന് ഒരു പടം വരച്ചു നോക്കി. വരയ്ക്കുന്നത് നോക്കി ഭാര്യ പുറകില്‍ നില്‍പ്പുണ്ടായിരുന്നു.
"എല്ലാം താഴെത്താഴെ വേണ്ട..... അത് ഒരു സൈഡിലേക്ക് മാറ്റി വയ്ക്ക്......"
എന്ന് തുടങ്ങി നിര്‍ദ്ദേശ ശരങ്ങള്‍. 'അടിയന്‍' അതെല്ലാം അക്ഷരം പ്രതി അനുസരിച്ചു. 

എന്നിട്ട് ജാവയമ്മച്ചിയുടെ ലെയൗട്ട് മാനേജര്‍ ഭാണ്ഡക്കെട്ടഴിച്ച് വേണ്ട കോഡെല്ലാം പെറുക്കിയെടുത്തുവെച്ചു് GUI പടത്തില്‍ കണ്ട പരുവത്തിലാക്കി. പ്രോഗ്രസ് ബാര്‍ ആവശ്യമുള്ളപ്പോള്‍ മാത്രം മെയിന്‍ വിന്‍ഡോയില്‍ തന്നെ പ്രത്യക്ഷപ്പെടുന്ന വിധത്തിലാക്കി.

"ഇത് കലക്കി" ഞാന്‍ എന്നെത്തന്നെ സമ്മതിച്ചു കൊടുത്തു.
ഓരോ തവണയും മാറ്റം വരുത്തിയതു കാണാന്‍ വിളിക്കുമ്പോള്‍ സഹധര്‍മിണി പറയാറുള്ള ഡയലോഗ് മനസില്‍ തന്നെയുണ്ടായിരുന്നു.
"എന്നെപ്പോലുള്ള സാധാരണക്കാര്‍ക്ക് ഉപയോഗിക്കാന്‍ പാകത്തിന് സിമ്പിളായിരിക്കണം സോഫ്റ്റ്‌വെയര്‍"
ഇത് കണ്ടപ്പോള്‍ അവളും സമ്മതിച്ചു. "കൊള്ളാം"
വേര്‍ഷന്‍ 0.7


അതിനിടെ നന്ദുവിന്റെ ഒരു മെയില്‍ വന്നു.
-------------------------------------------------------------
"IMPORTANT

I strongly recommend you not to publish the package before you solve

this BIG PROBLEM:

Your program can literally crash the RAM.

Each time it processes a folder, the program grabs a lot of memory,

but no de-allocation is done. Run it a ten times with a 50 photo

folder and a 1 GB RAM is full."
----------------------------------------------------------- 
മെമ്മറി ലീക്കേജ്........ !!!! അതൊരു വലിയപ്രശ്നമായിരുന്നു. ജാവ തനിയെ അണ്‍യൂസ്ഡ് ഒബ്ജക്ടുകളെ Automatic Garbage Collector നെ പറഞ്ഞ് വിട്ട് പെറുക്കിയെടുത്ത് മെമ്മറി ഫ്രീയാക്കും എന്നാണ് പഠിച്ചിട്ടുള്ളത്. എന്നെ പറ്റിച്ചല്ലേ.... എന്ന് പറഞ്ഞ് ഞാന്‍ കുറച്ചു ദിവസം ജാവയമ്മച്ചിയുമായി പിണങ്ങി നടന്നു. ഒടുവില്‍ പ്രശ്നം ജാവയുടേതല്ലെന്നും ഉപയോഗിച്ചിരിക്കുന്ന API യുടെയാണെന്നും തിരിച്ചറിഞ്ഞു. ഗാര്‍ബേജിനെ മാനുവലായി പെറുക്കിയെടുത്ത് മെമ്മറി വൃത്തിയാക്കാന്‍ അല്ലറ ചില്ലറ കോ‍ഡ് തിരുത്തലൊക്കെ നടത്തി മെമ്മറി ലീക്കേജ് പ്രോബ്ളം പരിഹരിച്ചു. Process completed മെസേജ്ബോക്സിന്റെ കൂടെ സമ്മറിയും output ഫോള്‍ഡര്‍ തുറക്കാനും തുറക്കാതിരിക്കാനുമുള്ള ബട്ടനുകളും സ്ഥാപിച്ചു. കൂടാതെ പ്രോഗ്രസ്ബാറിന്റെ നിറവും ലുക്കും ഒന്ന് പരിഷ്കരിക്കുകയും ചെയ്തു.
വേര്‍ഷന്‍ 0.8

ഫേയ്സ്‍ക്രോപ്പറിന്റെ ഡെവലപ്പ്മെന്റ് ആരംഭിച്ചപ്പോള്‍ തന്നെ എന്റെ മനസില്‍ ഒരു ചിത്രം ഉണ്ടായിരുന്നു. ഡിറ്റെക്റ്റ് ചെയ്യപ്പെടുന്ന മുഖങ്ങളുടെ ഒരു പ്രിവ്യു ചെയ്യുക എന്നത് അതില്‍ പ്രധാനപ്പെട്ട ഒരു ഫീച്ചര്‍ ആയിരുന്നു. ഓരോ പുതിയ വേര്‍ഷനിറക്കുമ്പോളും പിന്നെയാകട്ടെ എന്ന് പറഞ്ഞ് അത് മാറ്റി വച്ചുകൊണ്ടിരുന്നു. മുമ്പ് സൂചിപ്പിച്ചപ്പോലെ മാസം തികയാതെ പിറന്നതിന്റെ ​എല്ലാ പോരായ്മകളും ഫേയ്സ്‍ക്രോപ്പറിനുണ്ട്. മുഖം കണ്ടെത്തി അതിനെ പുതിയ ക്യാന്‍വാസില്‍ പ്രതിഷ്ഠിക്കുന്നതിലെ കൃത്യതക്കുറവ് അതിലൊന്നാണ്. ഇന്‍പുട്ടായി കൊടുക്കുന്ന ഫോട്ടോകളിലെ മുഖങ്ങള്‍ ഒന്നിനൊന്ന് വ്യത്യസ്തമാണല്ലോ, ആ വ്യത്യസ്തത പോസിഷനിങ്ങിനെയും ബാധിക്കും. ഈ പ്രശ്നം പരിഹരിക്കാനുള്ള മാര്‍ഗരേഖ മനസിലുണ്ട്. കുറച്ച്കൂടി ഗവേഷണം അതിനാവശ്യമാണ്. ഒരു താല്‍ക്കാലിക പരിഹാരം എന്ന നിലയ്ക്ക് ഒരു പ്രിവ്യു വിന്‍ഡോയും അതില്‍ പോസിഷന്, സൂം, ഫയല്‍ നാമം എന്നിവ യുസറുടെ ഇഷ്ടാനുസരണം ക്രമീകരിക്കാന്‍ കഴിയും വിധം ചില സംവിധാനങ്ങള്‍ 0.8.2 എന്ന വേര്‍ഷനില്‍ കൂട്ടിച്ചേര്‍ത്തു.

ജാവ റണ്‍ടൈം എന്‍വിയോണ്‍മെന്റ് (JRE) ഇന്‍സ്റ്റോള്‍ ചെയ്ത മെഷീനുകളില്‍(windiws /linux) മാത്രമേ ഫേയ്സ്‍ക്രോപ്പര്‍ വര്‍ക്ക് ചെയ്യുകയുള്ളു. അതിന് പരിഹാരമായി JRE കൂടി ഫേയ്സ്‍ക്രോപ്പറിനോട് ബണ്ടില്‍ ചെയ്താലോ എന്നായി ആലേചന. പക്ഷെ പാക്കേജിന്റെ സൈസ് കൂടും. ഈ JRE മറ്റ് ജാവ സോഫ്റ്റ്‌വെയറുകള്‍ക്ക് പ്രയോജനപ്പെടുകയുമില്ല. അഭിപ്രായം ആരായാന്‍ മങ്കടമാഷിനെ വിളിച്ചു. അത് അത്ര ആശാസ്യമായ മാര്‍ഗമല്ലെന്നായിരുന്നു അദ്ദേഹത്തിന്റെ മറുപടി. അതിനാല്‍ ആ ശ്രമം ഉപേക്ഷിച്ച് JRE ഇല്ലാത്ത മെഷീന്‍ യുസറിനെ കൊണ്ട് JRE ഇന്‍സ്റ്റോള്‍ ചെയ്യാന്‍ പ്രേരിപ്പിക്കാനും സമ്മതമാണെങ്കില്‍ ഇന്റര്‍നെറ്റില്‍ നിന്ന് ഓട്ടോമാറ്റിക്കായി ഡൗണ്‍ലോഡ് ചെയ്ത് JRE ഇന്‍സ്റ്റോള്‍ ചെയ്യാനും കഴിവുള്ള ഒരു ലോഞ്ചര്‍ സ്ക്രിപ്റ്റ് ഉണ്ടാക്കി. സ്ക്രിപ്റ്റ് പരിശോധിച്ച് വേണ്ട നിര്‍ദ്ദേശങ്ങള്‍ മ‌െയില്‍ വഴി പറഞ്ഞു തന്നത് ഫ്രീ സോഫ്റ്റ്‌വെയര്‍ രംഗത്തെ മറ്റൊരു പ്രഗല്ഭനായ, മാത്സ്ബ്ലോഗ് SSLC റിസല്‍റ്റ് ആന്‍ഡ്രോയിഡ് ആപ്പ് ഉണ്ടാക്കിയ ശ്രീനാഥ് ആണ്. ആ ലോഞ്ചര്‍ സ്ക്രിപ്റ്റും ചേര്‍ത്ത് 0.8.4 എന്ന നിലവിലെ വേര്‍ഷനില്‍ എത്തിനില്‍ക്കുന്നു.

ഉബുണ്ടു/വിന്‍ഡോസ് ഇന്‍സ്റ്റാളര്‍ പാക്കേജുകള്‍(Ver0.8.4)
For Ubuntu (both 32 bit and 64 bit) - Version (0.8.4)

For Windows (32bit offline installer) - Version (0.8.4)

ഉപയോഗിക്കേണ്ട വിധം
  • Application-Graphics-face-cropper എന്ന ക്രമത്തില്‍ Ubuntu വില്‍ തുറക്കുക. വിന്‍ഡോസില്‍ Start -‍‍‍All Programmes -FaceCropper-FaceCropper എന്ന ക്രമത്തിലും.
  • Select Folderബട്ടന്‍ ക്ലിക്ക് ചെയ്യുക.

  1. ഫോട്ടോകള്‍ സൂക്ഷിച്ചിരിക്കുന്ന ഫോള്‍ഡര്‍ ബ്രൗസ് ചെയ്ത് സെലക്റ്റ് ചെയ്യുക.
  2. Options ല്‍ ഔട്ട്പുട്ടായി ലഭിക്കേണ്ട ചിത്രത്തെ സംബന്ധിച്ച ക്രമീകരണങ്ങള്‍ വരുത്തുക.
  3. ഓരോ മുഖവും സേവ് ചെയ്യുന്നതിന് മുമ്പ് പ്രിവ്യു കണ്ട് സൂം, പോസിഷന്‍, ഫയല്‍ നെയിം എന്നിവയില്‍ മാറ്റം വരുത്താന്‍ Edit, Preview and Proceed സ്വിച്ച് കൂടി ഓണ്‍ ആക്കുക.
  4. CropFaces ബട്ടന്‍ ക്ലിക്ക് ചെയ്യുക.
  5. പ്രോഗ്രസ്ബാര്‍ 100 % ല്‍ എത്തുന്ന വരെ കാത്തിരിക്കുക.
  6. ഫോട്ടോകള്‍ സൂക്ഷിച്ചിരിക്കുന്ന ഫോള്‍ഡറിന് സബ് ഫോള്‍ഡറായി Faces എന്ന ഒരു ഫോള്‍ഡര്‍ സോഫ്റ്റ്‌വെയര്‍ തനിയെ ഉണ്ടാക്കി ക്രോപ്പ് ചെയ്ത മുഖങ്ങള്‍ അതില്‍ സേവ് ചെയ്തിട്ടുണ്ടാകും.

ചില പരീക്ഷണ ഫലങ്ങള്‍ 
ഇന്‍പുട്ട് ഫയലുകള്‍
ഔട്ട്പുട്ട് ഫയലുകള്‍
ഇനിയും സോഫ്റ്റ്‌വെയറിന്റെ പുരോഗതിക്കായി ഒരുപാട് പദ്ധതികള്‍ മനസിലുണ്ട്. പി.എസ്.സി. അപേക്ഷര്‍ക്ക് പ്രയോജനപ്പെടുന്ന രീതിയില്‍ പേരും തിയതിയും ഫോട്ടോയ്ക്ക് മേല്‍ എഴുതാനുള്ള സംവിധാനം..... അങ്ങനെയങ്ങനെ....... എന്തായാലും കുറച്ച് നാള്‍ ഇനി വിശ്രമം.....

0 Click here to comment:

Post a Comment