The Steward application is designed to detect sky light to determine the paths of the sun and the appropriate side for planting.
For the marked dataset, we cleaned it from repeating images and images outside the building, then parsed the sort and created a sky mask for each image.
Next, we segmented each image using the graph-based method. The following parameters were selected: scale = 10000, sigma = 0.01, min_size = 1000. Further, for the segment, we calculated an array of 9 features and, using a mask, calculated whether this segment is a sky (if more than 80 percent of the segment increments is sky, then the segment is sky)
Next, we installed a library for learning SVM using a GPU to speed up the learning process. Next, we tested the kernels and the C parameter for the SVM and checked which ones are most suitable for us on the test data we obtained using the rbf kernel and C = 10,000.
Next, we took all the segments on which there is a sky and merged them with the number of segments of the sky not two times smaller than the first one. Then we created a second dataset by taking all the segments to get the ratio of the sky: not the sky 1: 9. We trained 2 SVMs on these two datasets, one dataset more accurately identifies the segments of the sky and not the second region of the sky.
At the moment we have the accuracy of the first network 97.87 and the second 95.7 percent, we clarify that here precision means the probability does not make a mistake when classifying a segment, that is, these two SVMs are quite accurate but they can skip some segments.
In order not to miss the areas exactly, we are going to integrate these two SVMs.
Here is example of result
This detection is used to measure the amount of lighting in an algorithm that chooses which plant will grow well and which will not.
Team — 2 ML devs, 1 Unity3d dev, 1 iOS dev, image labeling team,
Terms — 2 month.