API and SDK. These two abbreviations usually say nothing for regular users who are used to turnkey solutions such as computer software or applications. However, in the case of programmers, they have to be and are familiar with both API and SDK. This knowledge comes particularly handy for those who have to integrate solutions like automatic number/license plate recognition ‘software’ that, in most cases, come in the form of an API. Or is it an SDK?
Since these terms are strongly related to each other, they are often confused and used as synonyms. However, there is a clear distinction between API and SDK. This article will pinpoint the key difference and also show you how they are related to license plate recognition.
API vs. SDK
API stands for Application User Interface. It is a series of functions that the application program can use to make, in our case, the ANPR engine do the recognition. It provides an interface between the application processes and license plate recognition’s core image recognition tasks.
Above image: Schematics showing how API and the ANPR engine are related.
However, unlike regular user interfaces, which connect computers to people (the end user), an application programming interface connects computers or pieces of software to each other. They are intended to be used by programmers/integrators. They are often created in such a way that the inner workings of the system stay hidden, only exposing those parts programmers find useful. These are usually kept consistent even if the internal details change.
Oftentimes, APIs are offered on their own, but there are certain instances when developers receive documentation with the API to better understand its workings and what could be done with it.
To work with an API—to develop applications using its functions—software developers need proper documentation, sample codes, and program tools. The collection of these is what we call SDK or Software Development Kit. Basically, everything developers need to write, build, test, and deploy, for instance, license plate recognition enabled applications, are included in these SDKs, usually in one installable package. In simpler words, developers get a complete package to create their own, tailor-made software with the desired functionalities.
A crucial part of SDKs is the documentation of the API. The documentation contains the exact description of the API’s definitions, functions, and variables so that integrators can perform the necessary modifications without tampering with the core functionalities of the solution.
As Nordic APIs pointed out, the reason for the confusion is that API and SDK are extremely overlapped, especially nowadays when new methodologies for organization and segmentation are added to the mix every year.
It’s like how we were told during biology class: all bugs (API) are part of a bigger family—insects (SDK)—but not all insects are bugs. And still, in everyday language, we sometimes call insects bugs.
As such, when it comes to making the crucial distinction between APIs and SDKs, it’s best to remember the following:
- APIs are usually included in SDKs, but SDKs aren’t part of APIs
- SDK acts as the foundation of a house, allowing programmers to create applications
- API, like a house’s electrical lines, allows for the functioning of applications within the SDK’s defined parameters.
ANPR: The Software That Isn’t Software
In the world of automatic number plate recognition (ANPR), there are many solutions to satisfy various customer needs. Companies like Adaptive Recognition offer license plate recognition solutions in the form of turnkey software, cloud-based SaaS, and even a mobile application for those who wish to have license plate recognition right away without the lengthy integration works. However, there is a very good reason why, in most cases, solutions like Carmen® ANPR Image are offered as software libraries instead of turnkey software: it’s in the clients’ interest.
For this reason, Carmen® ANPR Image is offered for applications running on C, C++, C#, Java, and VB.NET on Windows, and C, C++, and Java on Linux. Integrators are also treated with a feature-rich SDK and two demo applications to test out different features and see the workings of ANPR in action.