If we seek proven working source code to plug into a GPLv2-licence compatible solution, we should at least consider autotrace. Its source code is open for review. It can be tested against the example images we have and, if it works fine, called by our GPLv2 software. We can even use the calling code in Inkscape's plug-in image tracing implementation as a good starting point for design and implementation of our calling program, whether it be C, C++, Java, Python, or ECMA (JS).
If we seek theory, there are several articles that resent theory, the last being most aligned with machine learning ideology. But I would not dismiss the earlier work, since it is implemented in the field and used by many successfully. The business wisdom of old is sometimes apropos and probabilistically correct: The bird in the hand is often worth more than two in the bush.
Potrace: a polygon-based tracing algorithm, Peter Selinger, 2003
Vector Representation of Binary Images Containing Halftone Dots, Kei Kawamura, Hiroshi Watanabe, Hideyoshi Tominaga, 2004
Testing AutoTrace: A Machine-learning Approach to Automated Tongue Contour Data Extraction, Jae-Hyun Sung, Jeff Berry, Marissa Cooper, Gustave Hahn-Powell, and Diana Archangeli, 2013