P6-AAU-23 / real-time-whiteboard-app

Android app that digitizes whiteboards and papers in real time developed as part of our bachelor project at AAU (BSc Software Engineering).
0 stars 0 forks source link

What unsupervised learning algoritms might appropriate for color segmentation? #35

Closed CasperStaahl closed 1 year ago

CasperStaahl commented 1 year ago

Based on the image below from the MI slides for unsupervised learning, It seems that the following are good candidates:

Image

CasperStaahl commented 1 year ago

Soft clustering is not useful! The image is already soft clustered... kinda. The points is I don't think it's going to be useful.

CasperStaahl commented 1 year ago

Autoencoders don't seem applicable.

CasperStaahl commented 1 year ago

"If speed is our main concern then FCM and KHM seem to be reasonable choices. However, if the quality of the solution is our main objective then population-based stochastic approaches represent viable options because they can, in general, avoid being trapped in local optima." Omran, M. G., Engelbrecht, A. P., & Salman, A. (2007). An overview of clustering methods. Intelligent Data Analysis, 11(6), 583-605.

CasperStaahl commented 1 year ago

My current idea is clustering model on the pixel of a given image every once in a while (using the previous model as a starting point). The idea is that there would be one cluster for every color on the whiteboard, including the color of the whiteboard. Then we can segment later pictures on the model trained before, and train the model as needed.

Further, the label of each cluster would be the average color, maybe with some post-processing.

CasperStaahl commented 1 year ago

Asking the user to make a drawing with the colors they intend to use might make this a lot simpler, you can then learn the clusters only once at the start.

CasperStaahl commented 1 year ago

The method of clustering is probably not that important, I think getting the overall architecture in place is key.

CasperStaahl commented 1 year ago

I did look at some papers and lecture notes, only doing a first quick pass:

CasperStaahl commented 1 year ago

Conclusion

It seems that a form of clustering algorithm might be most appropriate for this task