This chapter presents an idealised design, such design is open-ended to allow for multiple possible implementations that still meet the project requirements.
This idealised design is also envisioned to not be limited by time or engineering constraints.
The chapter \ref{sec:si} will discuss in more details how this design was further scoped to be able to be implemented in the timeframe available.
This chapter will transform the requirements discussed in the previous chapter into a more specialized technical design that can be used as a guide to implement such a service.
The API should be structured as a REST JSON API, per the requirements.
The API should only accept inputs via the URL parameters of GET requests or via JSON on POST requests.
Binary formats can also be used to handle file upload and downloads, as transferring files via JSON extremely inefficient.
\subsection{Generation of Models}
The service should use any means available to generate models, such means can be:
\begin{multicols}{2}
\begin{itemize}
\item Templating.
\item Transfer Learning.
\item Database Search.
\item Pretrained Models with classification heads.
\end{itemize}
\end{multicols}
\subsection{Models Training}
% The Training process follows % TODO have a flow diagram
Model Training should be independent of image classification. A model training should not affect any current classification. The system could use multiple ways to achieve this, such as:
\begin{multicols}{2}% TODO think of more ways
\begin{itemize}
\item Separating the training to different machines.
This chapter introduced multiple possible designs options for a service, that intends to achieve automated image classification, can follow to implement a robust system. The next chapter will be discussing how the system was implemented and which of the possible design options were chosen when implementing the system.