Data Science Applications (Contracts)

As part of Cen­tre for Intel­li­gent Sys­tems, Depart­ment of Com­put­er Sci­ence, Tal­Tech, I am con­tin­u­ous­ly involved in projects involv­ing data sci­ence and machine intel­li­gence. Here are a few projects that I’ve been devel­op­ing soft­ware for.

Development of artificial intelligence methods based system for classification and risk groups determination of motor insurance clients (2016)

An R&D project done for a large insur­ance com­pa­ny. My role in it was twofold:

  1. Data (pre)processing. Most­ly tex­tu­al data and most­ly in MATLAB. Fur­ther analy­sis and arti­fi­cial neur­al net­work train­ing were done in Python environment.
  2. Putting togeth­er the final deliverable—a graph­i­cal appli­ca­tion for Python which includ­ed data pro­cess­ing and appli­ca­tion of pre­trained neur­al net­works to obtain the pre­dic­tions accord­ing to the project goals.

For me this was the first project where I would employ a MATLAB and Python co-devel­op­ment cycle.

A Methodology for computerised detection of pavement cracks and other road defects (2018)

In this project
nnap­ply—the UI of the appli­ca­tion for ana­lyz­ing pave­ment images
, my task was con­duct­ing a research of deep learn­ing meth­ods for image recog­ni­tion and the imple­men­ta­tion of cor­re­spond­ing algo­rithms to the prob­lem of detec­tion of pave­ment dis­tress from non­ide­al pho­to­graph­ic images of high­way roads. This was a so called smart spe­cial­iza­tion project and research and devel­op­ment was done for a com­pa­ny that deals with issues relat­ed to high­way road inspection.

This was a chal­leng­ing project not only because I had lit­tle pre­vi­ous expe­ri­ence with machine vision but also because of the essence of the prob­lem. The pho­tos of high­way roads were of vary­ing qual­i­ty fea­ture-wise often­times cor­rupt­ed by shad­ows and ran­dom road­side objects mak­ing it to the final com­pos­ite photograph.

Thus, sev­er­al issues had to be tack­led. In terms of com­pu­ta­tion­al intel­li­gence algo­rithms, con­vo­lu­tion­al neur­al net­works were final­ly con­sid­ered as the tool for image classification—the out­put of the com­plete net­work pre­dict­ed the pres­ence of a defect on a square-shaped seg­ment cut from the large pho­to based on a grid (pix­el res­o­lu­tion of the pho­tos was con­sid­er­ably high—another chal­lenge to overcome).

Exam­ple of the appli­ca­tion output—analysis of a pho­to­graph­ic image

Oth­er team mem­bers also tried var­i­ous machine learn­ing meth­ods, but con­vo­lu­tion­al net­works pro­duced the most coher­ent results in the scope of the project. In the end, precision/recall met­rics were still low, but the over­all sys­tem was already capa­ble of detect­ing defect-like objects on arbi­trary images.

The deliverable—a fron­tend com­plete­ly writ­ten in Python and PyQt5—was then hand­ed over to the com­pa­ny. Some back­end func­tion­al­i­ty (espe­cial­ly parts relat­ed to ini­tial image mask manip­u­la­tion and road extrac­tion) was co-devel­oped with Dr. Andri Riid.

Also, the project has grown into a big­ger one and is cur­rent­ly ongoing.