Upgrade 3: Single SVM
For the third upgrade, I tried training an SVM to determine a good linear combination of bg and tg means.
I wrote an extremely basic SVM solver which employs gradient descent. I tested it on random separable datasets,
on which it converged well, but its convergence properties on non-separable data are un-tested at this point.
Each pixel of each image was considered an example. I aggregated the ground truth values of the data set and produced
my own ground truth image masks by counting a pixel as an edge if any of the segmenters thought it was an edge. Things
would have probably turned out better if I'd taken some average and thresholded it, but time was short.
I tried a variety of feature vectors for the SVM, but ultimately each one would end up with high precision at low
recall but low total recall.
Performance: