Compare commits
2 Commits
884b8e42f9
...
8bfecc95d9
Author | SHA1 | Date | |
---|---|---|---|
8bfecc95d9 | |||
9c5e178e05 |
10
.drone.yml
10
.drone.yml
@ -8,7 +8,14 @@ steps:
|
|||||||
commands:
|
commands:
|
||||||
- bash linting.sh
|
- bash linting.sh
|
||||||
|
|
||||||
- name: Build UPDS-1
|
- name: Build diagrams
|
||||||
|
- commands:
|
||||||
|
- cd diagrams
|
||||||
|
- ls | grep d2 | xargs -I{} d2 --layout=elk {}
|
||||||
|
- mv *.svg '../images for report'
|
||||||
|
- cd -
|
||||||
|
|
||||||
|
- name: Build Project synopsis
|
||||||
commands:
|
commands:
|
||||||
- cd projectsynopsis
|
- cd projectsynopsis
|
||||||
- pdflatex project-synopsis.tex
|
- pdflatex project-synopsis.tex
|
||||||
@ -44,7 +51,6 @@ steps:
|
|||||||
- tea r rm -y current || echo "Release not found"
|
- tea r rm -y current || echo "Release not found"
|
||||||
# - tea r c --title "Latest Report" --asset report/report.pdf --asset upds-1/UPDS12-1.pdf --asset upds-2/UPDS12-2.pdf --asset results.txt --asset poster/poster.pdf current
|
# - tea r c --title "Latest Report" --asset report/report.pdf --asset upds-1/UPDS12-1.pdf --asset upds-2/UPDS12-2.pdf --asset results.txt --asset poster/poster.pdf current
|
||||||
- tea r c --title "Latest Report" --asset projectsynopsis/project-synopsis.pdf current
|
- tea r c --title "Latest Report" --asset projectsynopsis/project-synopsis.pdf current
|
||||||
- tea r c --title "Project Synopsis" --asset projectsynopsis/project-synopsis.pdf project-synopsis
|
|
||||||
|
|
||||||
- name: Remove current on failure
|
- name: Remove current on failure
|
||||||
environment:
|
environment:
|
||||||
|
1
diagrams/.gitignore
vendored
Normal file
1
diagrams/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
*.svg
|
133
diagrams/expandable_models.d2
Normal file
133
diagrams/expandable_models.d2
Normal file
@ -0,0 +1,133 @@
|
|||||||
|
indata: "Input data" {
|
||||||
|
shape: cylinder
|
||||||
|
}
|
||||||
|
|
||||||
|
model_generation: Model Generation {
|
||||||
|
|
||||||
|
hidden_layers_generator: Hidden Layers Model Generator
|
||||||
|
|
||||||
|
hidden_layers_generator<->generator: Request/Accept Model
|
||||||
|
|
||||||
|
head_generator: Head Models Generator {
|
||||||
|
|
||||||
|
|
||||||
|
_.head_generator->model1: Create
|
||||||
|
_.head_generator->model2: Create
|
||||||
|
_.head_generator->modeln: Create
|
||||||
|
|
||||||
|
model1
|
||||||
|
model2
|
||||||
|
modeln: "Model..."
|
||||||
|
|
||||||
|
model1<->_.generator: Request/Accept Model
|
||||||
|
model2<->_.generator: Request/Accept Model
|
||||||
|
modeln<->_.generator: Request/Accept Model
|
||||||
|
|
||||||
|
model1->_.head_generator: Accept Model
|
||||||
|
model2->_.head_generator: Accept Model
|
||||||
|
modeln->_.head_generator: Accept Model
|
||||||
|
}
|
||||||
|
|
||||||
|
generator: Generator {
|
||||||
|
|
||||||
|
_.generator->model_search: Start
|
||||||
|
|
||||||
|
model_search: Model Search {
|
||||||
|
|
||||||
|
database_search: Database search
|
||||||
|
|
||||||
|
autoML: Automl
|
||||||
|
}
|
||||||
|
|
||||||
|
model_search->model_training: Propose model
|
||||||
|
model_training->model_search: Reject model and request new one
|
||||||
|
|
||||||
|
model_training: Model Traning {
|
||||||
|
|
||||||
|
_.model_training->node: Start Training
|
||||||
|
|
||||||
|
node: Node
|
||||||
|
|
||||||
|
_.model_training<-node: End Training
|
||||||
|
}
|
||||||
|
|
||||||
|
model_training->_.generator: Accept Model
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
node_manager: Node_Manager {
|
||||||
|
node1
|
||||||
|
node2
|
||||||
|
noden: "node..."
|
||||||
|
|
||||||
|
node_manager->node1: Manage
|
||||||
|
node_manager->node2: Manage
|
||||||
|
node_manager->noden: Manage
|
||||||
|
}
|
||||||
|
|
||||||
|
model_generation.generator.model_training.node<->node_manager: Request/Gives node to train
|
||||||
|
|
||||||
|
model_database: Model database {
|
||||||
|
shape: cylinder
|
||||||
|
}
|
||||||
|
|
||||||
|
model_runner: Model Runner {
|
||||||
|
|
||||||
|
node: Node
|
||||||
|
|
||||||
|
headless: Obatin Headless Model
|
||||||
|
|
||||||
|
_.model_runner->headless: Start
|
||||||
|
|
||||||
|
headless<->_.model_database: Request/Get Model
|
||||||
|
|
||||||
|
headless<->node: Run/Result
|
||||||
|
|
||||||
|
headless->model_search: Results
|
||||||
|
|
||||||
|
model_search: Model Search {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
model_search<->_.model_database: Request Head Models
|
||||||
|
|
||||||
|
head_model: Head Model
|
||||||
|
|
||||||
|
model_search->head_model: Obtain
|
||||||
|
|
||||||
|
head_model<->node: Run/Result
|
||||||
|
|
||||||
|
head_model->model_search: Unsatatisfary results, request new model
|
||||||
|
head_model->results_cache: Unsatatisfary results, save results
|
||||||
|
|
||||||
|
results_cache: Results Cache
|
||||||
|
|
||||||
|
combine: Combine
|
||||||
|
|
||||||
|
head_model->combine: Satisfary Results/No more options
|
||||||
|
|
||||||
|
combine<-results_cache: Cached results Results
|
||||||
|
|
||||||
|
combine->_.model_runner: Results
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
model_runner.node<->node_manager: Request/Gives node to run model
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
User.shape: Person
|
||||||
|
|
||||||
|
User->indata: Uploads data
|
||||||
|
User->model_generation: Requests Model
|
||||||
|
User->model_database: Manages Models
|
||||||
|
User->model_runner: Request image for classification
|
||||||
|
model_runner->User: Give class of image
|
||||||
|
|
||||||
|
model_generation.generator <-> indata: Requests Data
|
||||||
|
|
||||||
|
model_generation->model_generation.hidden_layers_generator: Start
|
||||||
|
model_generation.hidden_layers_generator->model_generation.head_generator: Strip head and give base model to Head Generator
|
||||||
|
|
||||||
|
model_generation.head_generator->model_database: Save hidden layers model and heads
|
||||||
|
|
69
diagrams/simple_models.d2
Normal file
69
diagrams/simple_models.d2
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
indata: "Input data" {
|
||||||
|
shape: cylinder
|
||||||
|
}
|
||||||
|
|
||||||
|
model_generation: Model Generation {
|
||||||
|
_.generator->model_search: Start
|
||||||
|
|
||||||
|
model_search: Model Search {
|
||||||
|
|
||||||
|
database_search: Database search
|
||||||
|
|
||||||
|
autoML: Automl
|
||||||
|
}
|
||||||
|
|
||||||
|
model_search->model_training: Propose model
|
||||||
|
model_training->model_search: Reject model and request new one
|
||||||
|
|
||||||
|
model_training: Model Traning {
|
||||||
|
|
||||||
|
_.model_training->node: Start Training
|
||||||
|
|
||||||
|
node: Node
|
||||||
|
|
||||||
|
_.model_training<-node: End Training
|
||||||
|
}
|
||||||
|
|
||||||
|
model_training->_.generator: Accept Model
|
||||||
|
}
|
||||||
|
|
||||||
|
node_manager: Node_Manager {
|
||||||
|
node1
|
||||||
|
node2
|
||||||
|
noden: "node..."
|
||||||
|
|
||||||
|
node_manager->node1: Manage
|
||||||
|
node_manager->node2: Manage
|
||||||
|
node_manager->noden: Manage
|
||||||
|
}
|
||||||
|
|
||||||
|
model_generation.generator.model_training.node<->node_manager: Request/Gives node to train
|
||||||
|
|
||||||
|
model_database: Model database {
|
||||||
|
shape: cylinder
|
||||||
|
}
|
||||||
|
|
||||||
|
model_runner: Model Runner {
|
||||||
|
node: Node
|
||||||
|
|
||||||
|
model: Model
|
||||||
|
|
||||||
|
model<->_.model_database: Request/Get Model
|
||||||
|
|
||||||
|
model<->node: Run/Result
|
||||||
|
|
||||||
|
node->_.model_runner: Results
|
||||||
|
}
|
||||||
|
|
||||||
|
model_runner.node<->node_manager: Request/Gives node to run model
|
||||||
|
|
||||||
|
User.shape: Person
|
||||||
|
|
||||||
|
User->indata: Uploads data
|
||||||
|
User->model_generation: Requests Model
|
||||||
|
User->model_database: Manages Models
|
||||||
|
User->model_runner: Request image for classification
|
||||||
|
model_runner->User: Give class of image
|
||||||
|
|
||||||
|
model_generation <-> indata: Requests Data
|
||||||
|
|
4
main.bib
4
main.bib
@ -1,13 +1,13 @@
|
|||||||
@online{google-vision-api,
|
@online{google-vision-api,
|
||||||
author ={Google},
|
author ={Google},
|
||||||
title ={Vision AI | Google Cloud},
|
title ={Vision {AI} | Google Cloud},
|
||||||
year ={2023},
|
year ={2023},
|
||||||
url ={https://cloud.google.com/vision?hl=en}
|
url ={https://cloud.google.com/vision?hl=en}
|
||||||
}
|
}
|
||||||
|
|
||||||
@article{amazon-rekognition,
|
@article{amazon-rekognition,
|
||||||
author ={Amazon},
|
author ={Amazon},
|
||||||
title ={Image Recognition Software - ML Image \& Video Analysis - Amazon Rekognition - AWS},
|
title ={Image Recognition Software - {ML} Image \& Video Analysis - Amazon Rekognition - AWS},
|
||||||
year ={2023},
|
year ={2023},
|
||||||
url ={https://aws.amazon.com/rekognition/}
|
url ={https://aws.amazon.com/rekognition/}
|
||||||
}
|
}
|
||||||
|
@ -58,25 +58,24 @@
|
|||||||
\section{Introduction}
|
\section{Introduction}
|
||||||
% This section should contain an introduction to the problem aims and objectives (0.5 page)
|
% This section should contain an introduction to the problem aims and objectives (0.5 page)
|
||||||
Currently, there are many classification tasks that are being done manually. These tasks could be done more effectively if there was tooling that would allow the easy creation of classification models, without the knowledge of data analysis and machine learning models creation.
|
Currently, there are many classification tasks that are being done manually. These tasks could be done more effectively if there was tooling that would allow the easy creation of classification models, without the knowledge of data analysis and machine learning models creation.
|
||||||
The aim of this project is to create a classification service that has 0 requires zero user knowledge about machine learning, image classification or data analysis.
|
The aim of this project is to create a classification service that requires zero user knowledge about machine learning, image classification or data analysis.
|
||||||
The system should allow the user to create a reasonable accurate model that can satisfy the users' need.
|
The system should allow the user to create a reasonable accurate model that can satisfy the users' need.
|
||||||
The system should also allow the user to create expandable models; models where classes can be added after the model has been created.
|
The system should also allow the user to create expandable models; models where classes can be added after the model has been created.
|
||||||
|
|
||||||
\subsection{Aims}
|
\subsection{Project Aim}
|
||||||
The project aims to create a platform where users can create different types of classification models without the users having any knowledge of image classification.
|
The project aims to create a platform where users can create different types of classification models without the users having any knowledge of image classification.
|
||||||
|
|
||||||
\subsection{Objectives}
|
\subsection{Project Objectives}
|
||||||
This project's primary objectives are to:
|
This project's primary objectives are to:
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item Create platform where the users can create and manage their models.
|
\item Create platform where the users can create and manage their models.
|
||||||
\item Create a system to automatically create and train.
|
|
||||||
\item Create a system to automatically create and train models.
|
\item Create a system to automatically create and train models.
|
||||||
\item Create a system to automatically expand and reduce models without fully retraining the models.
|
\item Create a system to automatically expand and reduce models without fully retraining the models.
|
||||||
\item Create an API so that users can interact programatically with the system.
|
\item Create an API so that users can interact programatically with the system.
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
This project extended objectives are to:
|
This project extended objectives are to:
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item Create a system to automatically to merge modules to increase efficiency
|
\item Create a system to automatically to merge modules to increase efficiency.
|
||||||
\item Create a system to distribute the load of training the model's among multiple services.
|
\item Create a system to distribute the load of training the model's among multiple services.
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
\section{Literature and Techincal Review}
|
\section{Literature and Techincal Review}
|
||||||
@ -99,9 +98,9 @@
|
|||||||
|
|
||||||
|
|
||||||
\section{Technical overview}
|
\section{Technical overview}
|
||||||
% 1 page of overview. My approach is shown in Figure~\ref{fig:sample}. You can draw the diagram in powerpoint and save the picture
|
% technological free overview
|
||||||
\subsection{Web Interface}
|
\subsection{Web Interface}
|
||||||
The user will interact with the platform form via a web portal.
|
The user will interact with the platform form via a web portal. % why the web portal
|
||||||
The web platform will be designed using HTML and a JavaScript library called HTMX \cite{htmx} for the reactivity that the pagers requires.
|
The web platform will be designed using HTML and a JavaScript library called HTMX \cite{htmx} for the reactivity that the pagers requires.
|
||||||
The web server that will act as controller will be implemented using go \cite{go}, due to its ease of use.
|
The web server that will act as controller will be implemented using go \cite{go}, due to its ease of use.
|
||||||
Go was chosen has the programming language used in the server due to its performance, i.e. \cite{node-to-go}, and ease of implementation. As compiled language go, outperforms other server technologies such as Node.js.
|
Go was chosen has the programming language used in the server due to its performance, i.e. \cite{node-to-go}, and ease of implementation. As compiled language go, outperforms other server technologies such as Node.js.
|
||||||
@ -122,6 +121,7 @@
|
|||||||
|
|
||||||
\section{Workplan}
|
\section{Workplan}
|
||||||
\subsection{Timeline}
|
\subsection{Timeline}
|
||||||
|
% bold the headres
|
||||||
% The following work plan is what I will be using for the project is shown in Figure~\ref{fig:sample2}.
|
% The following work plan is what I will be using for the project is shown in Figure~\ref{fig:sample2}.
|
||||||
\begin{tabular}{ |m{0.5\textwidth}|m{0.5\textwidth}| }
|
\begin{tabular}{ |m{0.5\textwidth}|m{0.5\textwidth}| }
|
||||||
\hline
|
\hline
|
||||||
|
@ -56,6 +56,7 @@
|
|||||||
\newpage
|
\newpage
|
||||||
|
|
||||||
\section{Introduction}
|
\section{Introduction}
|
||||||
|
\subsection{Motivation}
|
||||||
|
|
||||||
\newpage
|
\newpage
|
||||||
\section{References}
|
\section{References}
|
||||||
|
Loading…
Reference in New Issue
Block a user