Tarptautinė ir daug inovatyvių sprendimų teikianti kompanija „Festo“ įsteigė 500 eurų stipendiją Aivarui Čiurlioniui, studijavusiam Programų sistemų studijų programą. Studentas gavo antrą mecenatų įvertinimą už jo puikiai parengtą I pakopos baigiamąjį darbą „Matematinė edukacinė programėlė, panaudojanti neuroninius tinklus matematinių išraiškų atpažinimui“.
„A. Čurlionio bakalauro darbas atkreipė dėmesį inovatyvia idėja bei veikiančia praktine realizacija“, – apie studento baigiamąjį darbą pasakojo „Festo“ atstovas Martynas Adomavičius.
Absolventas, dar mokykloje mėgęs kurti įvairias edukacines matematines programėles, nusprendė pasirinkti sudėtingesnę bakalaurinio darbo temą ir parengė prototipą, kurio pagrindinė funkcija – palengvinti matematiką besimokančių moksleivių gyvenimą.
„Norėjosi iššūkio, todėl pasirinkau ne patį lengviausią kelią. Norėjosi nustebinti dėstytojus, draugus, giminaičius, kad galiu sukurti kažką tikrai įdomaus ir naudingo. Projektas buvo tikrai įdomus, padėjo įgyti patirties mobiliųjų aplikacijų kūrimo srityje ir sustiprėti emociškai”, – pasakojo A. Čiurlionis.
A. Čiurlionis, prie projekto dirbęs visu pajėgumu, įsitikino, jog svarbu niekada nepasiduoti, kad ir kaip būtų sunku.
„Turint pakankamai valios ir užsispyrimo viskas yra įmanoma“, – sakė absolventas.
Darbo santrauka
Interaktyvių matematikos mokymosi priemonių – ypač tokių, kurios būtų gerai pritaikytos savarankiškam mokymuisi, nesudėtingos ir intuityvios – poreikis šiais laikais yra kaip niekada didelis. Šiame darbe kuriama sistema, galinti iš nuotraukos atpažinti matematinę išraišką ir ją išspręsti bei aiškiai ir suprantamai atvaizduoti sprendimo žingsnius.
Sistema skirta Android išmaniesiems įrenginiams. Analizė parodė, kad sistemą galės naudoti savarankiškai matematikos besimokantys mokiniai, o mokytojams ji galės tapti viena iš pagalbinių priemonių pamokų metu. Nors panašios sistemos jau egzistuoja, nė viena iš analizuotųjų neturėjo galimybės atvaizduoti sprendimo žingsnių animacijos ar perkelti išraiškos į mobilųjį įrenginį ją fotografuojant.
Techninių galimybių analizės metu nustatyta, kad nors projekto įgyvendinimas ir kelia iššūkių, tokių kaip kokybiškas simbolių atpažinimas, paveikslėlio apdorojimas ir segmentacija, ir labai priklauso nuo išmaniojo įrenginio kameros parametrų, jie gali būti įveikiami, pasirenkant gerus techninius sprendimus bei algoritmus. Paveikslėlių apdorojimui reikalinga šviesumo ir kontrasto korekcija, o atvaizde netaisyklingai išsibarsčiusiems simboliams atskirti (segmentuoti) pasirinktas „ribos sekimo“ algoritmas. Optiniam simbolių atpažinimui nuspręsta taikyti skaičiais ir matematinių išraiškų ženklų atvaizdais apmokytą dirbtinį neuroninį tinklą, sudarytą iš trijų pilnai sujungtų neuronų sluoksnių.
Paskutiniame atpažinimo žingsnyje naudojamas originalus algoritmas, kuris atpažintus segmentus pagal jų tarpusavio poziciją suveda į simbolių eilute aprašytą matematinę išraišką. Jos sprendimui tinka interpretatoriaus šablonas, derinamas su rekursiniu simboliniu pertvarkymu, besiremiančiu apibrėžta algebros taisyklių baze. Projekto dalyje apibrėžiami panaudos atvejai, aprašomi naudojant Voleree šabloną. Sistemai papildomai taikomi kūrimo laiko (3 – 4 mėn.), diegimo (Windows operacinė sistema serveriui, Android – programėlei), greitaveikos (1 – 5 s. išraiškos atpažinimui ir sprendimui) apribojimai. Vartotojo sąsajos eskizai nusako planuojamą sistemos išvaizdą bei ryšį tarp skirtingų programėlės langų. Statinis sistemos vaizdas, pateikiamas skirtingų lygių paketų ir klasių diagramomis, parodo visų trijų sistemos dalių – dirbtinio neuroninio tinklo apmokymo, programėlės ir serverio – apimtį ir sudėtingumą. Vartotojo veiksmai ir sistemos reakcija pagrindiniuose panaudos atvejuose pavaizduoti sekų, svarbiausi ir įdomiausi algoritmai – veiklos diagramomis.
Testavimo dalyje apibrėžiama testavimo plano struktūra, nusakanti testavimo eigą bei prioritetus, pateikiami automatinių testų aprašymai su duomenų ir rezultatų rinkiniais: matematinių išraiškų atvaizdais ir juos atitinkančiomis simbolių eilutėmis bei planuojamais sprendimo rezultatais. Dokumentacija vartotojui pateikiama dvejoms sistemos dalims: neuroninio tinklo apmokymui (kuria galėtų naudotis mašinų mokymosi specialistai) ir programėlei (paprastiems vartotojams).
Padarytos išvados, jog dauguma simbolių atpažinimo klaidų pasitaikė dėl didelio galimų neuroninio tinklo rezultatų kiekio, ne visai tinkamos jo architektūros (konvoliucinis būtų pranašesnis) bei per mažos validacinių duomenų įvairovės. Originalaus matematinių išraiškų sprendimo algoritmo kūrimas sulėtino sistemos įgyvendinimo procesą ir leido išspręsti tik nesudėtingas lygtis ar išraiškas, tačiau kita vertus suteikė lankstumo, leidusio įgyvendinti sprendimo žingsnių sekimą bei animuotą jų atvaizdavimą. Programėlė bus ir toliau tobulinama, pridedant jai naujų savybių: atnaujintą neuroninio tinklo architektūrą, sudėtingesnių matematinių išraiškų sprendimą bei papildomus sprendimo žingsnių paaiškinimus.