The Technology that Sightengine is built upon is called Deep Learning. It is a type of Artificial Intelligence that makes use of so-called Deep Convolutional Neural Networks.
Neural Networks have been around since the 1950s. They were an attempt to mimic the way neurons work and interact in the brain (in a very simplistic way). They did achieve interesting results but due to the limited capacities of computers at that time, they were limited to just a few neurons and the results were therefore limited.
It is only recently that the processing power of computers combined with new smart algorithms have made it possible to build extremely large networks, with billions of neurons. Those neurons are arranged into successive layers (hence the "Deep") in an attempt to mimic the inner workings of the brains.
It is those networks that have helped achieve huge leaps in computer vision, one of which was achieved in 2012, right at the time when Sightengine was being built.
Now if you are familiar with Machine Learning, you might wonder what frameworks and technologies we use to work with those Neural Networks. Nowadays our inference layer relies mostly on Tensorflow and Caffe. We started out using Caffe only (Tensorflow did not exist back then) and progressively added Tensorflow to the mix. Our orchestration layer is mostly Python-based. Our orchestration layer, inference layer and our custom specialized models have all been built and improved internally over the years.
The orchestration layer processes incoming requests and makes sure they get taken care of as quickly as possible. It was therefore built to be distributed (no single point of failure), secure, and very fast
We're always looking for advice to help improve our documentation!