JAV programavimo paslaugas teikianti kompanija „Devbridge Group“ įsteigė 1 tūkst. eurų paramą KTU Informatikos fakulteto (IF) organizuotame konkurse „Mecenatų stipendijų konkursas studentams ir dėstytojams“. Studento stipendiją – 500 eurų – už geriausią baigiamąjį bakalauro darbą gavo Aivaras Čiurlionis, Programų sistemų studijų programos absolventas. Tokios pačios vertės dėstytojo premija atiteko IF doktorantui ir studento baigiamojo darbo vadovui Mindaugui Vasiljevui.
„Studento baigiamojo darbo idėja inovatyvi, pats atlikimas sudėtingas ir reikalaujantis daug kruopštaus darbo. Vertiname studentus, kurie renkasi ne lengviausią kelią geriausiam įvertinimui, bet rodo ambiciją ir kelia sau kartelę kurti aukščiausio lygio sprendimus”, – apie studento baigiamąjį darbą pasakojo „Devbridge Group” vadovas Viktoras Gurgždys.
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.