From 1bd7dbc1249447d514d4d8f310af8db78fd6c4ed Mon Sep 17 00:00:00 2001 From: Josefine Date: Fri, 27 Nov 2020 22:13:37 +0100 Subject: [PATCH] updated report to final version --- .../report/Appendices/Appendix_B.tex | 13 +- .../report/Chapters/Classification.tex | 436 +++++++++--------- documentation/report/Chapters/Conclusion.tex | 20 +- documentation/report/Chapters/Dataset.tex | 210 ++++----- documentation/report/Chapters/Discussion.tex | 53 +-- .../report/Chapters/Introduction.tex | 36 +- .../report/Chapters/Preparations.tex | 87 ++-- documentation/report/Chapters/Summary.tex | 76 ++- documentation/report/asparagus-report.pdf | Bin 20858304 -> 20855517 bytes documentation/report/bibliography.bib | 29 +- 10 files changed, 516 insertions(+), 444 deletions(-) diff --git a/documentation/report/Appendices/Appendix_B.tex b/documentation/report/Appendices/Appendix_B.tex index 0d14f5a..f9c0c2b 100644 --- a/documentation/report/Appendices/Appendix_B.tex +++ b/documentation/report/Appendices/Appendix_B.tex @@ -12,7 +12,18 @@ \subsection{Supplementary Information} \subsubsection{File moving service} \label{subsec:FileService} -In this section it is in detail described how the service of filemoving is constructed. As Windows is used as the operating system of the sorting machine, the development was done with the .NET framework\footnote{For further information on the .NET framework, see \url{https://docs.microsoft.com/en-us/dotnet/framework/get-started/overview}} in the programming language C\#. The package provided is called Topshelf.\footnote{For further information on Topshelf, see \url{https://github.com/Topshelf/Topshelf}} Topshelf is a service hosting framework for building Windows services using .NET. With the package, it is possible to develop a console application in the development phase, compile it as a service, and install it later via the console. Previously, it was not possible to debug services during the development phase. The function of the service is based on the FileSystemWatcher object from the System.IO namespace.\footnote{For further information on the SystemFileWatcher, see \url{https://docs.microsoft.com/en-us/dotnet/api/system.io.filesystemwatcher?view=netframework-4.8}} In the main program, a list of files in the source folder is kept. Files that are older than one hour are moved to the target folder on the external drive. The selected files are moved by a function that is called, when an event is triggered. The event is triggered by the FileSystemWatcher after subscribing to different flags. Shortly after initialization, the service was adjusted because removing the images from the C disk straight away caused the sorting program to stop. The problem is solved by keeping the most recent 1000 images and moving older images to the external disk. +In this section it is in detail described how the service of filemoving is constructed. As Windows is used as the operating system of the sorting machine, the development was done with the .NET framework\footnote{For further information on the .NET framework, see \url{https://docs.microsoft.com/en-us/dotnet/framework/get-started/overview} (visited on 04/24/2020)} in the programming language C\#. The package provided is called Topshelf.\footnote{For further information on Topshelf, see \url{https://github.com/Topshelf/Topshelf} (visited on 04/24/2020)} Topshelf is a service hosting framework for building Windows services using .NET. With the package, it is possible to develop a console application in the development phase, compile it as a service, and install it later via the console. Previously, it was not possible to debug services during the development phase. The function of the service is based on the FileSystemWatcher object from the System.IO namespace.\footnote{For further information on the SystemFileWatcher, see \url{https://docs.microsoft.com/en-us/dotnet/api/system.io.filesystemwatcher?view=netframework-4.8} (visited on 04/24/2020)} In the main program, a list of files in the source folder is kept. Files that are older than one hour are moved to the target folder on the external drive. The selected files are moved by a function that is called, when an event is triggered. The event is triggered by the FileSystemWatcher after subscribing to different flags. Shortly after initialization, the service was adjusted because removing the images from the C disk straight away caused the sorting program to stop. The problem is solved by keeping the most recent 1000 images and moving older images to the external disk. + +\subsubsection{Benefits of Data Set Creation with Tensorflow} +\label{subsec:BenefitsDataSet} + +In the following, TensorFlow's own binary storage format \texttt{TFRecord} is introduced. Motivated by faster learning times and avoiding loss of information, and in accordance with the large amount of data collected, this format was chosen. + +The file format is optimized for images and text data. These are stored in tuples which always consist of file and label. In our case, the difference in reading time is significant, because the data is stored in the network and not on a SSD on the local PC. The serialized file format allows the data to be streamed through the network efficiently. Therefore, this storage format facilitates the mix and match of data sets and network architectures. Another advantage is that the file is transportable over several systems. + +Working with these files simplifies the next steps of image transformations. With the \mbox{\texttt{tf.data}} API complex, input pipelines from simple and reusable components are created, even for large data sets. The preferred pipeline for our asparagus project can apply complex transformations to the images and combine them into stacks for training, testing and validating in arbitrary ratios. A data set can be changed, e.g.\ by using different labels or by transformations like mapping, repeating, batching, and many others. + +Besides the described functional transformations of the input pipeline under \mbox{\texttt{tf.data.dataset}}, an iterator gives sequential access to the elements in the data set. The iterator stays at the current position and allows to call the next element as a tuple of tensors. Initializable iterators go through the data set in parallel. In addition, different parameters are passed to start the call. This is especially handy when searching for the right parameters in parallel. \newpage diff --git a/documentation/report/Chapters/Classification.tex b/documentation/report/Chapters/Classification.tex index 78dbe2e..813ca63 100644 --- a/documentation/report/Chapters/Classification.tex +++ b/documentation/report/Chapters/Classification.tex @@ -6,50 +6,50 @@ \section{Classification} \label{ch:Classification} -Given the structure of our data set, namely image data which is partially annotated with corresponding class labels and partially hand-labeled with corresponding feature labels, different machine learning and computer vision methods were chosen to tackle the problem of image classification. +Given the structure of our data set, different machine learning and computer vision methods were chosen to tackle the problem of image classification. \bigskip -Image classification refers to the method of identifying to which category an image belongs to, according to its visual information. Classification problems can be divided into three different types: binary, multiclass and multi-label. Moreover, there are different methods on how to approach image classification. Those can be divided into three main groups: supervised learning, semi-supervised learning and unsupervised learning~\citep{har2003constraint}. +Image classification refers to the method of identifying to which category an image belongs to, according to its visual information. Classification problems can be divided into three different types: binary, multiclass and multi-label. Moreover, there are different methods on how to approach image classification. Those can be divided into three main groups: supervised learning, semi-supervised learning and unsupervised learning~\citep{har2003constraint}. -Binary classification can be used to decide whether a certain feature is present in an asparagus spear, or not. Multiclass classification solves this problem as well, but is also applicable to data with more than two classes. As the class label results from a combination of the presence of certain features and the absence of others, it is also reasonable to go for a multi-label classification approach. In this approach, several features are learned simultaneously without being mutually exclusive. +Binary classification can be used to decide whether a certain feature is present or not. Multiclass classification solves this problem as well, but is also applicable to data with more than two classes. As the class label results from a combination of the presence of certain features and the absence of others, it is also reasonable to go for a multi-label classification approach. In this approach, several features are learned simultaneously without being mutually exclusive. During our group work, algorithms of the different classification types as well as of the different learning types were applied. -In the long run, an integrated model was aimed at that is predicting all features of a single asparagus spear, from which the final class label can be inferred. However, as intermediate steps towards that goal, the focus was to optimize models on identifying the presence of the features described in~\autoref{sec:AutomaticFeatureExtraction}. +In the long run, an integrated model was aimed at predicting all features of a single asparagus spear, from which the final class label can be inferred. However, as intermediate steps towards that goal, the focus was to optimize models on identifying the presence of the features described in~\autoref{sec:AutomaticFeatureExtraction}. \bigskip -This chapter gives a general background of the different approaches chosen for our image classification problem, as well as a detailed overview of the concrete implementations of the models and the mechanisms of their hyperparameters. +This chapter gives a general background of the different approaches chosen for our image classification problem, as well as a detailed overview of the concrete implementations of the models and the mechanisms of their hyperparameters. \subsection{Supervised learning} \label{sec:SupervisedLearning} -In machine learning, there are different approaches for an application to be trained on a set of data~\citep{geron2019hands,bishop2006pattern}. Depending on the level of supervision that the system receives during the training phase, the learning process is grouped into one of four major categories~\citep{geron2019hands}. One of these categories is supervised learning. For supervised learning approaches, the training data includes not only the input but also its corresponding target labels. The objective is to find a mapping between object \((x)\) and label \((t)\) when a set of both \((x,t)\) is provided as training data to the application~\citep{olivier2006semi}. An advantage of supervised learning is that the problem is well defined and the model can be evaluated in respect to its performance on labeled data~\citep{daume2012course,olivier2006semi}. In other words, the labels are used as a direct basis for the model optimizing function during training. +In machine learning, there are different approaches for an application to be trained on a set of data~\citep{geron2019hands,bishop2006pattern}. Depending on the level of supervision that the system receives during the training phase, the learning process is grouped into one of three major categories~\citep{geron2019hands}. One of these categories is supervised learning. For supervised learning approaches, the training data includes not only the input but also its corresponding target labels. The objective is to find a mapping between object \((x)\) and label \((t)\) when a set of both \((x,t)\) is provided as training data to the application~\citep{olivier2006semi}. An advantage of supervised learning is that the problem is well defined and the model can be evaluated in respect to its performance on labeled data~\citep{daume2012course,olivier2006semi}. In other words, the labels are used as a direct basis for the model’s optimization function during training. Supervised learning spans over a large set of different methods, from decision trees and random forests, to \acrfullpl{svm} and \acrlongpl{ann}~\citep{caruana2006comparison,geron2019hands}. -A classical task for supervised learning systems is the classification of received data and mapping it to one of a finite number of categories~\citep{bishop2006pattern}. -The disadvantage of supervised learning is the effort of receiving enough labeled data. It can be challenging to obtain fully labeled data because labeling experts are needed to classify the data which is usually a time consuming and expensive task~\citep{zhu05survey,figueroa2012predicting}. +A classical task for supervised learning systems is the classification of received data which means mapping the input data to one of a finite number of categories~\citep{bishop2006pattern}. +The disadvantage of supervised learning is the effort of receiving enough labeled data. It can be challenging to obtain fully labeled data of high quality~\citep{zhu05survey,figueroa2012predicting}. \bigskip -In the following sections, different supervised learning methods were chosen to solve the classification task using the data that was manually labeled for features as described in~\autoref{ch:Dataset}. In \ref{subsec:FeatureEngineering}~\nameref{subsec:FeatureEngineering}, an approach using an \acrshort{mlp} is described for feature classification. The section of \ref{subsec:SingleLabel}~\nameref{subsec:SingleLabel} is concerned with labeling the input images with a \acrshort{cnn} in a binary setup for their designated features. In section \ref{subsec:MultiLabel}~\nameref{subsec:MultiLabel}, a neural network is trained on the data to label it not only for one feature but all features at the same time. In the fourth section, \ref{subsec:HeadNetwork}~\nameref{subsec:HeadNetwork}, a \acrshort{cnn} is used to train solely on the head image data for the features flower and rusty head. +In the following sections, different supervised learning methods were implemented to solve the classification task using the data that was manually labeled for features as described in~\autoref{ch:Dataset}. In \ref{subsec:FeatureEngineering}~\nameref{subsec:FeatureEngineering}, an approach using an \acrshort{mlp} is described for feature classification. The section of \ref{subsec:SingleLabel}~\nameref{subsec:SingleLabel} is concerned with labeling the input images with a \acrshort{cnn} in a binary setup for their designated features. In section \ref{subsec:MultiLabel}~\nameref{subsec:MultiLabel}, a neural network is trained on the data to label it not only for one feature but all features at the same time. In the fourth section, \ref{subsec:HeadNetwork}~\nameref{subsec:HeadNetwork}, a \acrshort{cnn} is used to train solely on the head image data for the features flower and rusty head. Finally, in \ref{subsec:FeaturesToLabels}~\nameref{subsec:FeaturesToLabels}, a random forest approach is described to map the features of the image data to their class label. \subsubsection{Prediction based on feature engineering} \label{subsec:FeatureEngineering} -Besides approaches that directly use images as an input one may use high level feature engineering. That is, one can retrieve sparse representations that contain relevant information in a condensed form and apply classical machine learning classifiers such as \acrshortpl{mlp} to predict labels~\citep{zheng2018feature}. These classifiers are comparatively simple, fast to train and only few network hyperparameters have to be defined. One may argue that this is one of the major benefits as compared to networks of higher complexity (e.g.\ deep \acrshortpl{cnn}). As a consequence, finding suitable parameters for \acrshortpl{mlp} (i.e.\ the number of hidden layers and neurons per layer) is comparatively easy.\footnote{The challenge of finding appropriate network parameters is well known in the deep learning community: ``Designing and training a network using backprop requires making many seemingly arbitrary choices $[...]$. These choices can be critical, yet there is no foolproof recipe for deciding them because they are largely problem and data dependent’’~\citep[p.~9]{lecun2012efficient}. The requirement to specify hyperparameters is a disadvantage of neural networks (including \acrshortpl{mlp}) as compared to parameter free methods~\citep{scikit2019neural}. Due to the combinatorial explosion, the challenge of finding suitable parameter settings is harder for more complex networks as more options must be considered.} Beside of that retrieving sparse representations highly reduces the amount of variance and hence the required amount of labeled data. +Besides approaches that directly use images as an input one may use high level feature engineering. That is, one can retrieve sparse representations that contain relevant information in a condensed form and apply classical machine learning classifiers such as \acrshortpl{mlp} to predict labels~\citep{zheng2018feature}. Note that we use the ambiguous term MLP in the strict sense i.e.\ for networks that comprise fully connected layers only and speak of CNNs if the network contains one or more convolutional layers. As we used MLPs for sparse features and CNNs for images we oppose these typical approaches for the respective domains of data. \acrshortpl{mlp} classifiers for sparse features are considered comparatively simple as only few network hyperparameters have to be defined and typically comprise a limited number of neurons (see below). Besides retrieving sparse features can make the learning task very simple and allows for a higher degree of control over what is measured. -The simplicity of \acrshortpl{mlp} also means that the best suitable structure could be found more easily as compared to deepleaning \acrshortpl{cnn}. In \acrshortpl{cnn} for deep learning, suitable means are required to avoid the vanishing gradient problem~\citep{wang2019vanishing}. Further, kernel sizes, strides, the number of kernels and other parameters must be defined. Therefore, designing shallow \acrshortpl{mlp} appears to be easier: As less decisions must be made, there is less one could possibly do wrong. Underfitting can potentially be due to an unsuitable network design or because predictions are impossible due to incongruencies or missing information in the sparse data set~\citep{lecun2012efficient}. +The simplicity of shallow \acrshortpl{mlp} means that the best suitable structure could be found more easily as compared to deep learning \acrshortpl{cnn} that require a special structure to address the vanishing gradient problem and have many other hyperparameters such as the size and number of kernels~\citep{wang2019vanishing}. As a consequence, finding suitable hyperparameters for \acrshortpl{mlp} (i.e.\ the number of hidden layers and neurons per layer) is comparatively easy.\footnote{The challenge of finding appropriate network parameters is well known in the deep learning community: \enquote{Designing and training a network using backprop requires making many seemingly arbitrary choices $[...]$. These choices can be critical, yet there is no foolproof recipe for deciding them because they are largely problem and data dependent}’~\citep[p.~9]{lecun2012efficient}. The requirement to specify hyperparameters is a disadvantage of neural networks (including \acrshortpl{mlp}) as compared to parameter free methods~\citep{scikit2019neural}. Due to the combinatorial explosion, the challenge of finding suitable parameter settings is harder for more complex networks as more options must be considered.} This is beneficial because underfitting can potentially be due to an unsuitable network design ~\citep{lecun2012efficient}. -An extensive search in hyperparameter space is practicable for simple \acrshortpl{mlp}. This is because of them having few parameters only and because training on sparse representations limits the number of neurons in the networks. Taken together this results in fast training that allows for many experiments. If the learning task is simple enough to be accomplished by \acrshortpl{mlp} (e.g.\ finding combinations of partial angles that correspond to the impression of curvature), one may hence speculate that underfitting can rather be explained by incongruencies or missing information in the labels than a result of issues in network design and training parameters. +An extensive search in hyperparameter space is possible for simple \acrshortpl{mlp} for sparse features, because they have few network hyperparameters and because networks for training on sparse representations typically have a limited number of neurons. This becomes clear in our example of learning the binary feature curvature using 18 partial angles as the input. The dimensionality of the input layer of networks that are trained on dense features (here: three images of size $1040\times1376$ with three color channels i.e.\ more than twelve million values) are substantially larger. The reduced dimensionality of sparse features could even be considered as the defining criterion for the term. For our example, a network that uses the raw input requires an input layer with more than twelve million neurons as compared to only 531 neurons in the whole \acrshortpl{mlp} for partial angles. Taken together this results in fast training of a network that is trained on sparse features - typically a MLP \footnote{MLPs can be used for sparse data because there is no necessity to further limit the size of the network by use of convolutional layers and it is not always the case that a locality criterion holds.}. This allows for many experiments to find best suitable network hyperparameters. -This classical machine learning approach which relies on feature engineering is applied to predict features based on color and partial angles of asparagus spears because of these benefits.\footnote{~See \url{https://github.com/CogSciUOS/asparagus/tree/FinalProject/classification/supervised/mlps\_and\_feature\_engineering}} +The use of \acrshortpl{mlp} in combination with feature engineering certainly also has drawbacks as compared to the direct application of deeper \acrshortpl{cnn}. Most strikingly one is at risk of discarding relevant information when defining the features and has to find and implement ways to reliably measure them. Because of the benefits we nonetheless tested the performance of shallow \acrshortpl{mlp} using color histograms and partial angles of asparagus spears.\footnote{~See \url{https://github.com/CogSciUOS/asparagus/tree/FinalProject/classification/supervised/mlps\_and\_feature\_engineering} (as of 11/27/2020)} \bigskip \textbf{Violet and rust prediction based on color histograms} -The feature violet is based on the distribution of sufficiently intense color hues in the violet color range. The initial approach of measuring the feature faces at least two drawbacks. First, it requires defining two thresholds. Second, the impression of a violet asparagus spear could possibly be affected by the combination of colors that are potentially outside the violet range or that are too pale to be considered (see~\autoref{subsec:Violet}). The same holds for the features rusty body and rusty head. Hence, in a second approach histograms were computed for foreground pixels after transforming the images to palette images with 256 color hues (see \autoref{sec:Preprocessing}). The resulting representation is a sparse descriptor that allows to predict color features using explicitly defined rules or trainable machine learning models. +The feature violet is based on the distribution of sufficiently intense color hues in the violet color range. The initial approach of automatically measuring the feature as described in ~\autoref{sec:AutomaticFeatureExtraction} faces at least two drawbacks. First, it requires defining two thresholds. Second, the impression of a violet asparagus spear could possibly be affected by the combination of colors that are potentially outside the violet range or that are too pale to be considered (see~\autoref{subsec:Violet}). The same holds for the features rusty body and rusty head. Hence, in a second approach histograms were computed for foreground pixels after transforming the images to palette images with 256 color hues (see \autoref{sec:Preprocessing}). The resulting representation is a sparse descriptor that allows to predict color features using explicitly defined rules or trainable machine learning models. \begin{figure}[!htb] \centering @@ -85,7 +85,7 @@ \subsubsection{Prediction based on feature engineering} \label{fig:FeatureEngineeringPaletteColor} \end{figure} -The sample set contains a histogram for each labeled asparagus. Twenty percent are randomly assigned to the evaluation set. A simple \acrshort{mlp} with four hidden layers and 128 neurons in each of them was trained on the resulting normalized histograms of palette colors (ReLU activation / sigmoid activation in the final layer). Hyperparameters were optimized and the network was trained for a total of 500 epochs as the learning curve indicated convergence at this point. +The sample set contains a histogram for each labeled asparagus. Twenty percent are randomly assigned to the evaluation set. A simple \acrshort{mlp} with four hidden layers and 128 neurons in each of them was trained on the resulting normalized histograms of palette colors (ReLU activation / sigmoid activation in the final layer). Hyperparameters were optimized and the network was trained for a total of 500 epochs as the learning curve indicates convergence at this point. \bigskip \textbf{Curvature prediction based on partial angles} @@ -100,6 +100,8 @@ \subsubsection{Prediction based on feature engineering} \label{fig:FeatureEngineeringNetStructureCurve} \end{figure} +The receiver operating characteristic reveals that the prediction is of better quality for violet and curvature prediction as compared to rust prediction which is reflected in a smaller area under the curve for the latter. Possibly this reflects that rather small brown spots were considered rust by some raters but not by others. + \begin{table}[!h] \centering \resizebox{\columnwidth}{!}{% @@ -117,32 +119,30 @@ \subsubsection{Prediction based on feature engineering} \label{tab:performance_angle_based} \end{table} -The receiver operating characteristic reveals that the prediction is of better quality for violet and curvature prediction as compared to rust prediction which is reflected in a smaller area under the curve for the latter. Possibly this reflects that rather small brown spots were considered rust by some raters but not by others. - -Considering the low agreement in labeling, high values for the specificity and sensitivity of the classifier are not expected. A likely explanation for rather low values is that the model generalizes deviating and potentially contradicting perceptual color-concepts that we had when attributing labels which in return affects the reliability of the data. Arguably, only little information was discarded by computing the sparse representations that served as an input for training. However, information about irregularities in the outline are not reflected in the partial angles but might contribute to the perception of curvature. The same holds for the spatial distribution of colored pixels which might contain additional information regarding the detection of rust and violet. Nonetheless, the major criteria are captured. As \acrshortpl{mlp} are suitable to establish non-linear mappings and as the task of mapping high level features (such as partial angles) to human estimates appears to be rather simple, one may speculate that there is rather little potential to improve the predictive quality using other techniques. By introducing a bias, the sensitivity of the classifier can be adjusted at the cost of more false positives. Here, introducing a bias means that the threshold that is used to convert the floating point outputs of a neural network to booleans that indicate whether a feature is present or not is set to values other than 0.5. The possibility of making the classifier more or less sensitive appears to be a good option to be implemented as a feature for customization by the user in asparagus sorting machines. +Considering the low agreement in labeling, high values for the specificity and sensitivity of the classifier are not expected. A likely explanation for rather low values is that the model generalizes deviating and potentially contradicting perceptual color-concepts that we had when attributing labels. Arguably, only little information was discarded by computing the sparse representations that served as an input for training. However, information about irregularities in the outline are not reflected in the partial angles but might contribute to the perception of curvature. The same holds for the spatial distribution of colored pixels which might contain additional information regarding the detection of rust and violet. Nonetheless, the major criteria are captured. As \acrshortpl{mlp} are suitable to establish non-linear mappings and as the task of mapping high level features (such as partial angles) to human estimates appears to be rather simple, one may speculate that there is rather little potential to improve the predictive quality using other techniques. By introducing a bias, the sensitivity of the classifier can be adjusted at the cost of more false positives. Here, introducing a bias means that the threshold that is used to convert the floating point outputs of a neural network to booleans that indicate whether a feature is present or not is set to values other than 0.5. The possibility of making the classifier more or less sensitive appears to be a good option to be implemented as a feature for customization by the user in asparagus sorting machines. \begin{figure}[!hb] - \centering - \includegraphics[scale=0.7]{Figures/chapter04/fe_curve.png} - \decoRule - \caption[Feature Engineering Learning Curve For Angle Based Prediction]{\textbf{Learning Curve For Angle Based Prediction}~~~The depiction shows the loss per training episode for the \acrshort{mlp} trained on partial angles of the centerline of asparagus spears.} - \label{fig:FeatureEngineeringCurve} + \centering + \includegraphics[scale=0.7]{Figures/chapter04/fe_curve.png} + \decoRule + \caption[Feature Engineering Learning Curve For Angle Based Prediction]{\textbf{Learning Curve For Angle Based Prediction}~~~The depiction shows the loss per training episode for the \acrshort{mlp} trained on partial angles of the centerline of asparagus spears.} + \label{fig:FeatureEngineeringCurve} \end{figure} \begin{figure}[!htb] - \centering - \includegraphics[scale=0.6]{Figures/chapter04/fe_roc.png} - \caption[Feature Engineering ROC Curve]{\textbf{ROC for MLPs Trained on High Level Features}~~~The depiction shows the \acrfull{roc} for the classifiers that were trained on the features retrieved via feature engineering with \acrshortpl{mlp}. This allows to compare the performance. A larger area under the \acrshort{roc} curve indicates better performance while a curve close to the diagonal line indicates poor results.} - \label{fig:FeatureEngineeringROC} + \centering + \includegraphics[scale=0.6]{Figures/chapter04/fe_roc.png} + \caption[Feature Engineering ROC Curve]{\textbf{ROC for MLPs Trained on High Level Features}~~~The depiction shows the \acrfull{roc} for the classifiers that were trained on the features retrieved via feature engineering with \acrshortpl{mlp}. This allows for comparison of the performance. A larger area under the \acrshort{roc} curve indicates better performance while a curve close to the diagonal line indicates poor results.} + \label{fig:FeatureEngineeringROC} \end{figure} \subsubsection{Single-label classification} \label{subsec:SingleLabel} -In the following chapter, a \acrlong{cnn} is described, which is used for single-label classification on features.\footnote{It can be found under \url{https://github.com/CogSciUOS/asparagus/tree/FinalProject/classification/supervised/single-label-CNN}} The approach was tested on the 13319 hand-labeled data images. 13 models were created, each predicting one feature.~\footnote{The 13 features to predict are: fractured, hollow, flower, rusty head, rusty body, bent, violet, very thick, thick, medium thick, thin, very thin, and not classifiable.} +In the following chapter, a \acrlong{cnn} is described, which is used for single-label classification on features.\footnote{It can be found at \url{https://github.com/CogSciUOS/asparagus/tree/FinalProject/classification/supervised/single-label-CNN} (as of 11/27/2020).} The approach was tested on the 13319 hand-labeled data images. 13 models were created, each predicting one feature.~\footnote{The 13 features to predict are: fractured, hollow, flower, rusty head, rusty body, bent, violet, very thick, thick, medium thick, thin, very thin, and not classifiable.} -A general model structure was needed as inspiration for the \acrshort{cnn}. For example, the \acrfull{vgg}~networks with varying depth seem to be a good choice for image classification as their \acrshort{vgg}16 won the ImageNet challenge of 2014 and is often implemented for image classification tasks~\citep{hassan2018vgg,vgg2014original}. However, there are two major drawbacks to using them. That is, they are slow to train and in need of a lot of memory storage due to their depth and the amount of fully-connected nodes \citep{hassan2018vgg,zhang2015accelerating}. Part of these problems also arise with even deeper networks like ResNet~\citep{resnet2016original,hassan2019resnet}. Thus, AlexNet is chosen as a blueprint for the \acrshort{cnn} because it is small in relation to other networks while still performing comparatively good~\citep{hassan2019alexnet,alexnet2012original,geron2019hands}. As the variance in the data images is relatively small it is assumed that not as many layers are needed as employed in deeper networks like \acrshort{vgg}~\citep{geron2019hands}. +A general model structure was needed as inspiration for the \acrshort{cnn}. For example, the \acrfull{vgg}~networks with varying depth seem to be a good choice for image classification as their \acrshort{vgg}16 won the ImageNet challenge of 2014 and is often implemented for image classification tasks~\citep{hassan2018vgg,vgg2014original}. However, there are two major drawbacks to using them. That is, they are slow to train and in need of a lot of memory storage due to their depth and the amount of fully-connected layers \citep{hassan2018vgg,zhang2015accelerating}. Part of these problems also arise with even deeper networks like ResNet~\citep{resnet2016original,hassan2019resnet}. Thus, AlexNet is chosen as a blueprint for the \acrshort{cnn} because it is small in relation to other networks while still performing comparatively good~\citep{hassan2019alexnet,alexnet2012original,geron2019hands}. As the variance in the data images is relatively small it is assumed that a smaller number of layers is sufficient as compared to deeper networks like \acrshort{vgg}~\citep{geron2019hands}. \begin{figure}[!htb] \centering @@ -152,10 +152,10 @@ \subsubsection{Single-label classification} \end{figure} \bigskip -The network comprises four hidden layers: a convolutional layer, followed by a pooling layer, a second convolutional layer, and a dense layer. The input is an array of multiple horizontally stacked images with no background removed and reduced by a factor of six. This input is trained on a set of binary labels containing information on whether the respective feature label applies to the current image. The output of the network gives a prediction on each entered image gated by a sigmoid function on a range between zero and one. The rounded integer values of this output give a prediction of the apparent feature label. +The network comprises four hidden layers: a convolutional layer, followed by a pooling layer, a second convolutional layer, and a dense layer. The input is an array of multiple horizontally stacked images with background and reduced by a factor of six. This input is trained on a set of binary labels containing information on whether the respective feature label applies to the current image. The output of the network gives a prediction on each entered image gated by a sigmoid function on a range between zero and one. The rounded integer values of this output give a prediction of the apparent feature label. For the training phase of the model, the Adam optimizer is used because of its general acceptance as the state of the art optimizer for backpropagation~\citep{bushaev2018adam,kingma2014adam}. As a loss function, binary cross-entropy is used as it promises good results for binary single-label classification tasks~\citep{geron2019hands,godoy2018understanding,dertat2017applied}. -When training \acrlongpl{ann}, it can be difficult to find clear guidelines on how to implement an architecture such that an optimal training performance is given~\citep{heaton2015aifh,geron2019hands,bettilyon2018classify}. Hence, the idea was to start with the simplest form of a \acrshort{cnn} and then gradually increase the complexity of the network. While AlexNet provides a good baseline for an image classification network, its architecture is still assumed to be unnecessarily complex for the given task. First, the architecture was reduced to the minimum number of layers and parameters needed for a \acrshort{cnn}. Over the period of training optimization, various processing steps and hyperparameters were implemented and compared according to their performance. During this process, the data was split between 12000 samples for training data and 1319 samples of validation data in order to have a reasonable overview on the possible test performance and to directly check for overfitting. The data used as test data was randomly chosen from the whole data set.\footnote{Only the models trained on detecting the features hollow, flower, rusty head, rusty body, bent, and violet use the same validation set. Like this, a better comparison can be made between them. For the other features, the validation set was always randomly composed anew before model training.} +When training \acrlongpl{ann}, it can be difficult to find clear guidelines on how to implement an architecture such that an optimal training performance is given~\citep{heaton2015aifh,geron2019hands,bettilyon2018classify}. Hence, the idea was to start with the simplest form of a \acrshort{cnn} and then gradually increase the complexity of the network. While AlexNet provides a good baseline for an image classification network, its architecture is still assumed to be unnecessarily complex for the given task. First, the architecture was reduced to the minimum number of layers and parameters needed for a \acrshort{cnn}. Over the period of training optimization, various processing steps and hyperparameters were implemented and compared according to their performance. During this process, the data was split between 12000 samples for training data and 1319 samples for validation data in order to have a reasonable overview on the possible test performance and to directly check for overfitting. The data used as test data was randomly chosen from the whole data set.\footnote{Only the models trained on detecting the features hollow, flower, rusty head, rusty body, bent, and violet use the same validation set. Like this, a better comparison can be made between them. For the other features, the validation set was always randomly composed anew before model training.} \bigskip In the following, the development of the hyperparameters over time is explained. @@ -170,11 +170,11 @@ \subsubsection{Single-label classification} Both convolutional layers of the model are built with batch normalization. The gradients were inspected visually and the results give no reason for assuming exploding or vanishing gradients~\citep{pascanu2012understanding}. -A next step was to weight the loss function because of the largely unbalanced data~\citep{he2009learning,batista2004study}. However, this did not lead to any changes. The model still tended to make an unbalanced prediction by classifying all values as negative samples. Another idea is to reduce the data set to make the number of images with the regarding feature present even to the number of images where it is absent. This would mean to throw away valuable data, which can otherwise provide information about negative cases to support the model in its training~\citep{batista2004study}. It was decided to keep all data images and instead balance the data by multiplying the minority of samples to match the number of contrary samples. As there was no feature positively exceeding a presence of 50\% in the data, solely positive labels were oversampled. The balancing was only performed on the training data, while the test data was not changed. +A next step was to weight the loss function because of the largely unbalanced data~\citep{he2009learning,batista2004study}. However, this did not lead to any changes. The model still tended to make an unbalanced prediction by classifying all values as negative samples. Another idea is to reduce the data set to make the number of images with the regarding feature present even to the number of images where it is absent. This would mean to throw away valuable data, which can otherwise provide information about negative cases to support the model in its training~\citep{batista2004study}. It was decided to keep all images and instead balance the data by multiplying the minority of samples to match the number of contrary samples. As there was no feature positively exceeding a presence of 50\% in the data, solely positive labels were oversampled. The balancing was only performed on the training data, while the test data was not changed. To prevent overfitting of the negative data samples, \(L_2\) regularization was applied. -To improve training performance, some kinds of data augmentation were tested \citep{brownlee2019augmentation} like horizontal flipping or small changes in the angle (up to 5\textdegree ) but they are not used in the final version. +To improve training performance, different kinds of data augmentation were tested \citep{brownlee2019augmentation} like horizontal flipping or small changes in the angle (up to 5\textdegree ) but not used in the final version. \bigskip Around 2700 to 5400 training steps are performed for the training, translating roughly to 120 epochs (with an exception for the model of feature fractured, which is trained for 60 epochs). Due to the balancing of the data, the number of training data (and therefore the ratio of training steps to epochs) varied when training the \acrshort{cnn} on the different features. @@ -216,7 +216,7 @@ \subsubsection{Single-label classification} \hline \end{tabular}% } - \caption[Single-Label CNN Classification Results]{\textbf{Single-Feature Label Classification Results}~~~In this table, the sensitivity, specificity, validation accuracy, balanced accuracy, and the number of training steps are given for each feature model after training on 12000 original hand-labeled data images. The numbers in brackets indicate the best result for the model in relation to its balanced accuracy. For most features, training lasted for 120 epochs. However, the number of data samples (and thus training steps) varies between features because of the data balancing.} + \caption[Single-Label CNN Classification Results]{\textbf{Single-Feature Label Classification Results}~~~In this table, the sensitivity, specificity, validation accuracy, balanced accuracy, and the number of training steps are given for each feature model after training on 12000 hand-labeled data images. The numbers in brackets indicate the best result for the model in relation to its balanced accuracy. For most features, training lasted for 120 epochs. However, the number of data samples (and thus training steps) varies between features because of the data balancing.} \label{tab:SingleLabelResults} \end{table} @@ -228,7 +228,7 @@ \subsubsection{Single-label classification} \label{fig:SingleLabelROC} \end{figure} -The \acrshort{cnn} is trained on 13 features separately, resulting in 13 trained models. For some features, there are no labels in the csv-file but they can be calculated from the parameters length and width of an asparagus. That is, the features very thick, thick, medium, thin, and very thin are all calculated from the thickness measured by the automatic feature extraction algorithm for width, according to the boundaries for each class label (for reference, see \autoref{tab:AsparagusLabels} and \autoref{fig:LabelTree} in \autoref{sec:BackgroundSortingAsparagus}, and also \autoref{subsec:Width}). For the feature fractured, the length was set to a threshold of 210 mm, with all asparagus of smaller length labeled as fractured. Additionally, asparagus labeled as not classifiable was included for training the model that is detecting the feature fractured. The reason is that fractured asparagus without a head part was previously labeled as not classifiable (see the feature descriptions in \autoref{subsec:Length}). The feature not classifiable was also trained on separately. Further, for all other features, not classifiable samples were removed before training to prevent a bias in the occurrence of false positives.\footnote{Not classifiable asparagus was not sorted for the presence of any other features (see~\autoref{subsec:NotClassifiable}). If a sample is sorted by a model, e.g.\ that is detecting the presence of feature bent, and the sample shows the sorting criteria, i.e.\ it is bent, the model will classify it as positive but its feature label will be negative. This will disturb the model and, thus, it was decided to exclude not classifiable samples with an exception for training on feature fractured and for feature not classifiable.} +The \acrshort{cnn} is trained on 13 features separately, resulting in 13 trained models. For some features, there are no labels in the csv-file but they can be calculated from the parameters length and width of an asparagus. That is, the features very thick, thick, medium, thin, and very thin are all calculated from the thickness measured by the automatic feature extraction algorithm for width, according to the boundaries for each class label (for reference, see \autoref{tab:AsparagusLabels} and \autoref{fig:LabelTree} in \autoref{sec:BackgroundSortingAsparagus}, and also \autoref{subsec:Width}). For the feature fractured, the length was set to a threshold of 210 mm, with all asparagus of smaller length labeled as fractured. Additionally, asparagus labeled as not classifiable was included for training the model that is detecting the feature fractured. The reason is that fractured asparagus without a head part was previously labeled as not classifiable (see the feature descriptions in \autoref{subsec:Length}). The feature not classifiable was also trained on separately. Further, for all other features, not classifiable samples were removed before training to prevent a bias in the occurrence of false positives. \begin{figure}[!htb] \centering @@ -310,20 +310,20 @@ \subsubsection{Single-label classification} In~\autoref{tab:SingleLabelResults} the 13 features are listed on which the \acrshort{cnn} architecture was trained 13 times. It further shows the results for the sensitivity, specificity, validation accuracy, and balanced accuracy of each feature after a certain number of training steps, indicated in the last column of the table. Sensitivity is a measure to assess the performance of the model in labelling positive samples correctly, while the specificity shows how correctly the model predicts negative samples. The validation accuracy is the accuracy of the validation set which is a representative subset of the entire data set. The balanced accuracy of a feature label is the mean of the sum of its sensitivity and specificity. It represents the accuracy of the feature label if positive and negative samples in the data set were evenly balanced. -Additionally, the performance of six models is calculated in a \acrshort{roc} curve in~\autoref{fig:SingleLabelROC}.\footnote{For an explanation of \acrshort{roc} curve, see \autoref{fig:FeatureEngineeringROC} in the previous section.} Models that determine features which indicate the thickness and length, as well as the feature not classifiable are excluded from the curve. +Additionally, the performance of six models is calculated in a \acrshort{roc} curve in~\autoref{fig:SingleLabelROC}.\footnote{For an explanation of \acrshort{roc} curve, see \autoref{fig:FeatureEngineeringROC} in the previous section.} Models that determine features which indicate the thickness and length, as well as the feature not classifiable are excluded. In the following discussion, it is referred to the best result of a model (depicted in brackets in~\autoref{tab:SingleLabelResults}) and not the last result. The results reveal that for every feature, the sum of sensitivity and specificity exceeds 1. This corresponds to a balanced accuracy over 50\%, which is better than chance level. For all features, the balanced accuracy is above 65\%. Best results are achieved for features that indicate the thickness of an asparagus. The feature very thick reaches the best results with 98\% sensitivity, 99\% specificity, and a balanced accuracy of 98.5\%. Besides features for thickness, the best prediction is observed for the feature fractured, which relies on the parameter length. It reaches a sensitivity of 88\%, a specificity of 99.8\%, and a balanced accuracy of 94\%. -On average, for the hand-labeled features hollow, flower, rusty head, rusty body, bent, and violet a balanced accuracy above 72\% is reached. Feature rusty head performs worst with 52\% sensitivity, 81\% specificity, and 67\% balanced accuracy. In general, the specificity of all features is relatively high. Most features reach a specificity above 90\%, except for the features flower (83\%), rusty head (81\%), rusty body (80\%), and bent (73\%). For all features, the sensitivity is above 50\%. After visual inspection of test loss and training accuracy, none of the models showed any form of overfitting in their respective range of training steps. -Further, example images of wrong classification are shown for feature hollow in~\autoref{fig:ExampleImagesHollow} and for feature bent in~\autoref{fig:ExampleImagesBent}. Additional example images of false negative and false positive classification for the other features can be found in the appendix in~\autoref{subsec:AdditionalSingleLabelCNN}. For feature fractured, training and test loss as well as training and test accuracy are plotted as an exemplar in the appendix in~\autoref{fig:ExamplePlotsFractured}.\footnote{The models and their log files for accuracy and loss can be found at~\url{https://github.com/CogSciUOS/asparagus/tree/FinalProject/classification/supervised/single-label-CNN/asparanet}.} +On average, for the hand-labeled features a balanced accuracy above 72\% is reached. The feature rusty head performs worst with 52\% sensitivity, 81\% specificity, and 67\% balanced accuracy. In general, the specificity of all features is relatively high. Most features reach a specificity above 90\%, except for the features flower (83\%), rusty head (81\%), rusty body (80\%), and bent (73\%). For all features, the sensitivity is above 50\%. After visual inspection of test loss and training accuracy, none of the models showed any form of overfitting in their respective range of training steps. +Further, example images of wrong classification are shown for feature hollow in~\autoref{fig:ExampleImagesHollow} and for feature bent in~\autoref{fig:ExampleImagesBent}. Additional example images of false negative and false positive classification for the other features can be found in the appendix in~\autoref{subsec:AdditionalSingleLabelCNN}. For feature fractured, training and test loss as well as training and test accuracy are plotted as an exemplar in the appendix in~\autoref{fig:ExamplePlotsFractured}.\footnote{The models and their log files for accuracy and loss can be found at~\url{https://github.com/CogSciUOS/asparagus/tree/FinalProject/classification/supervised/single-label-CNN/asparanet} (as of 11/27/2020).} \bigskip -The results indicate that the \acrshort{cnn} architecture is able to learn every feature. Features relying on the parameters of length and width achieve a good performance, with both validation accuracy and balanced accuracy above 90\%. The prediction of features like hollow or flower was expected to be more difficult. However, the balanced accuracy of both is above 75\%, with feature hollow even reaching a balanced accuracy of 88\%. This shows that the model predicts them relatively well. Features that depend on color (like rusty body, rusty head, and violet) do not reach equivalent results. It should be further tested whether an increase in model depth might lead to better results for features depending on color or for features depending on a more complex shape (like the feature bent). +The results indicate that the \acrshort{cnn} architecture is able to learn every feature. Features relying on the parameters of length and width achieve a good performance, with both validation accuracy and balanced accuracy above 90\%. The prediction of features like hollow or flower are expected to be more difficult. However, the balanced accuracy of both is above 75\%, with feature hollow even reaching a balanced accuracy of 88\%. This shows that the model predicts them relatively well. Features that depend on color (like rusty body, rusty head, and violet) do not reach equivalent results. It should be further tested whether an increase in model depth might lead to better results for features depending on color or for features depending on a more complex shape. An inspection of false positive and false negative images at the end of the training process suggests that training performance might be influenced by mislabeled data to a certain extent. The random images for feature hollow in \autoref{fig:ExampleImagesHollow} propose that the model might use the thickness of an asparagus as an indicator. Some of the samples look like hollow asparagus that could have been labeled incorrectly. -For the feature bent, the randomly selected examples in~\autoref{fig:ExampleImagesBent} might reveal a labeling bias by the human annotators. When the feature is only slightly present, it seems to become a random choice whether the sample was labeled as positive or negative by the human labelers. If true, this can make it difficult for the machine to perform above a certain level of accuracy. It might also be that the difference between the samples is not prominent enough to the model. -Again, these images are just randomly chosen examples and can mean that the model is simply not able to label them correctly. However, the results can also suggest that correct labeling might sometimes be difficult for the model because of an inconsistency in the labeling behavior of the human labelers (see \autoref{subsec:Reliability}). +For the feature bent, the randomly selected examples in~\autoref{fig:ExampleImagesBent} might reveal a labeling bias by the human annotators. When the feature is only slightly present, it seems to become a random choice whether the sample was labeled as positive or negative by the human annotators. If true, this can make it difficult for the machine to perform above a certain level of accuracy. It might also be that the difference between the samples is not prominent enough to the model. +The results can also suggest that correct labeling might sometimes be difficult for the model because of an inconsistency in the labeling behavior of the human labelers (see \autoref{subsec:Reliability}). On a general note, the architecture of the model is very flexible. It can be applied to many tasks (i.e.\ predicting different features) without much preprocessing of the image data beforehand. Further, the model is quite small, which makes it fast and robust for practical applications. However, instead of having the same architecture for all features, more precise adjustment of each model to its feature is needed. @@ -333,91 +333,90 @@ \subsubsection{Single-label classification} \subsubsection{Multi-label classification} \label{subsec:MultiLabel} -Building on the standard single-label classification we were further interested in how well a model, that predicts several feature labels at the same time, performs. A multi-label classification model hereby gets an image as the input and learns to predict the presence or absence of the feature labels. +Building on the standard single-label classification we were further interested in how well a model, that predicts several feature labels at the same time, performs. A multi-label classification model hereby gets an image as the input and learns to predict the presence or absence of the feature labels. For this model, we use a small \acrshort{cnn} as described below and the features that we labeled by hand. Each of the six features (hollow, flower, rusty head, rusty body, bent and violet) is encoded by a binary output in the target vector, indicating whether the asparagus exhibits the feature in question or not. \bigskip Multi-label classification is a useful tool for classification problems in which several classes are assigned to a single input. In contrast to a multiclass classification, where the model is supposed to predict the most likely class for an input, the multi-label classification makes a prediction for each class separately, determining whether the class is present in the image or not. While the different classes are mutually-exclusive in the multiclass classification, they can be related in the multi-label classification. Further, there is no limit on how many classes can be depicted in one image. It is possible that all or none of the classes are present. -Multi-label classification tasks can be thought of as consisting of different sub tasks. Therefore, the problem can be transformed to multiple binary classification tasks. In this transformation, a new model for each feature is trained, which are then combined to give a single output. That means that all features are independent of one another because they are learned separately. This can be seen as one of the major drawbacks as it is not always clear whether features are related, but in many cases they are. +Multi-label classification tasks can be thought of as consisting of different sub tasks. Therefore, the problem can be transformed to multiple binary classification tasks. In this transformation, a new model for each feature is trained, which are then combined to give a single output. That means that all features are independent of one another because they are learned separately. This can be seen as one of the major drawbacks as in many cases features are related. Therefore, we decided to not only use single-label classification as described in ~\autoref{subsec:SingleLabel} but to explore the possibilities of multi-label classification. -A second approach to transform a multi-label classification task is to interpret each possible combination of features as on class. Hereby, the problem is redefined as a multiclass classification task. For a classification problem with six features that means there are \(2^{6} = 64\) classes to be learned. The problems with this approach are, on the one hand, the exponentially increasing number of classes, and on the other hand, the sparsity of samples per class. In many cases, some of the classes are highly underrepresented or even empty. For that reason, we decided not to elaborate this approach further and implement a model for multi-label classification without transforming the task to a multiclass problem. +A second approach to transform a multi-label classification task is to interpret each possible combination of features as one class. Hereby, the problem is redefined as a multiclass classification task. For a classification problem with six features that means there are \(2^{6} = 64\) classes to be learned. The problems with this approach are, on the one hand, the exponentially increasing number of classes, and on the other hand, the sparsity of samples per class. In many cases, some of the classes are highly underrepresented or even empty. For that reason, we decided not to elaborate this approach further and implement a model for multi-label classification without transforming the task to a multiclass problem. \bigskip -Inspiration for the model gave a blogpost~\citep{blogpostMulti} which aims to classify images of the MNIST fashion data set in the context of multi-label, rather than multiclass classification. The author altered the data set in such a way that each input image contains four randomly selected items from the MNIST fashion data set. The model then learns to predict which classes are present in the image. The target vector has ten values, one for each class, which are either 0 or 1 depending on whether that class can be found in the input image or not. - +Inspiration for the model gave a blogpost~\citep{blogpostMulti} which aims to classify images of the MNIST fashion data set in the context of multi-label, rather than multiclass classification. This model was chosen as inspiration for two main reasons. Firstly, it tackles a similar problem as ours and the number of classes is similar. Secondly, the model uses a data set of similar size. Despite the rather small data set in comparison to many other image classification problems, good results with an accuracy of 95 -- 96\% were reached~\citep{blogpostMulti}. This leads us to think, it might be a model with a good complexity for our problem too, as it is complex enough to model the underlying distribution, but not too complex for the medium-sized data set. \begin{table}[!htb] - \centering - \includegraphics[scale=0.8]{Figures/chapter04/multilabel_structure.png} - \decoRule - \caption[Multi-Label Model Summary]{\textbf{Multi-Label Model Summary}~~~The summary of the multi-label classification model is shown. It describes which layers are implemented, how the output changes in each layer and how many parameters are trained in each layer and in total.} - \label{tab:MultilabelStructure} + \centering + \includegraphics[scale=0.8]{Figures/chapter04/multilabel_structure.png} + \decoRule + \caption[Multi-Label Model Summary]{\textbf{Multi-Label Model Summary}~~~The summary of the multi-label classification model is shown. It describes which layers are implemented, how the output changes in each layer and how many parameters are trained in each layer and in total.} + \label{tab:MultilabelStructure} \end{table} \bigskip A classical \acrshort{cnn} was chosen for the multi-label classification task. It consists of five blocks of convolution layers with max pooling layers each followed by a global average pooling layer and a dense layer. \begin{figure}[!htb] - \centering - \includegraphics[width=0.95\textwidth]{Figures/chapter04/multilabel_net_structure.png} - \decoRule - \caption[Multi-Label Net Structure]{\textbf{Multi-Label Net Structure}~~~The depiction shows the network structure of the multi-label \acrshort{cnn}.} - \label{tab:MultilabelNetStructure} + \centering + \includegraphics[width=0.95\textwidth]{Figures/chapter04/multilabel_net_structure.png} + \decoRule + \caption[Multi-Label Net Structure]{\textbf{Multi-Label Net Structure}~~~The depiction shows the network structure of the multi-label \acrshort{cnn}.} + \label{tab:MultilabelNetStructure} \end{figure} In contrast to multiclass classification models, where usually a softmax activation function is used in the last layer together with a categorical cross-entropy loss, the multi-label classification model uses a sigmoid activation function and a binary cross-entropy loss. -As the input of the model, a concatenated image of the three perspectives of each spear is used in order to maximize the information the model gets. This yields input images that look like the three asparagus spears are laying side by side. Further, the images are downscaled by a factor of six to facilitate training (see~\autoref{sec:AsparagusDataSet}). +As the input of the model, a concatenated image of the three perspectives of each spear is used in order to maximize the information the model gets. This yields input images where three asparagus spears are laying side by side. Further, the images are downscaled by a factor of six to facilitate training (see~\autoref{sec:AsparagusDataSet}). -The output of the model is a vector of length six in which each position encodes one of the six hand-labeled features (hollow, flower, rusty head, rusty body, bent and violet). Each feature can either be present in the input or not, which leads to a 1 or 0 in the target vector, respectively. +As stated above, the output of the model is a vector of length six in which each position encodes one of the six hand-labeled features (hollow, flower, rusty head, rusty body, bent and violet). Each feature can either be present in the input or not, which leads to a 1 or 0 in the target vector, respectively. Three loss functions are tested to improve the model's performance. The first two losses are in-built functions from keras, namely binary cross-entropy loss and hamming loss. The latter uses the fraction of the wrong labels to the total number of labels. Additionally, a custom loss function was implemented, that penalizes false negatives stronger than false positives. The motivation for this custom loss was the fact that the two labels 0 and 1 are highly unbalanced. As previously stated, there are noticeably more 0s than 1s in many classes. To be more precise, the model can reach an accuracy of 77\% by labeling all features as 0. By penalizing this error more, we intended to counteract the unbalanced data set. But at the end, the binary cross-entropy loss remains the one with the best results. -Further, it was tested whether regularization would improve the performance of the model on the validation data by preventing overfitting. For this, the model was trained by adding \(L_1\) or \(L_2\) regularization, respectively, to all five of the convolutional layers. Hereby, a kernel regularization was implemented with a value of 0.01. +Further, it was tested whether regularization would improve the performance of the model on the validation data by preventing overfitting. For this, the model was trained by adding \(L_1\) or \(L_2\) regularization, respectively, to all five of the convolutional layers. Hereby, a kernel regularization was implemented with a value of 0.01. \(L_1\) and \(L_2\) regularization can both be interpreted as constraints to the optimization that have to be considered when minimizing the loss term. The main difference between the two is that \(L_1\) regularization reduces the coefficient of irrelevant features to zero, which means they are removed completely. Hence, \(L_1\) regularization allows for sparse models and can be seen as a selection mechanism for features. The inputs to this model are images that consist of a large number of pixels, and additionally a large portion of those pixels are black, because the background was removed. Therefore, it appears to be a good idea to reduce the number of features taken into account in the early layers. \(L_2\) regularization, on the contrary, does not set coefficients to zero, but punishes large coefficients more than smaller ones. This way the error is better distributed over the whole vector. \begin{figure}[!htb] - \centering - \includegraphics[scale=0.37]{Figures/chapter04/multilabel_crossentropy.png} - \decoRule - \caption[Multi-Label Binary Cross-Entropy Loss]{\textbf{Binary Cross-Entropy Loss}~~~These graphs show the evaluation of the training with binary cross-entropy loss. The model was trained over 50 epochs and the accuracy and loss was measured. Further, the false/true positive/negative rates were determined.} - \label{fig:MultilabelCrossentropy} + \centering + \includegraphics[scale=0.37]{Figures/chapter04/multilabel_crossentropy.png} + \decoRule + \caption[Multi-Label Binary Cross-Entropy Loss]{\textbf{Binary Cross-Entropy Loss}~~~These graphs show the evaluation of the training with binary cross-entropy loss. The model was trained over 50 epochs and the accuracy and loss was measured. Further, the false/true positive/negative rates were determined.} + \label{fig:MultilabelCrossentropy} \end{figure} \begin{figure}[!htb] - \centering - \includegraphics[scale=0.37]{Figures/chapter04/multilabel_hamming.png} - \decoRule - \caption[Multi-Label Hamming Loss]{\textbf{Hamming Loss}~~~These graphs show the evaluation of the training with hamming loss. The model was trained over 50 epochs and the accuracy and loss was measured. Further, the false/true positive/negative rates were determined.} - \label{fig:MultilabelHammingLoss} + \centering + \includegraphics[scale=0.37]{Figures/chapter04/multilabel_hamming.png} + \decoRule + \caption[Multi-Label Hamming Loss]{\textbf{Hamming Loss}~~~These graphs show the evaluation of the training with hamming loss. The model was trained over 50 epochs and the accuracy and loss was measured. Further, the false/true positive/negative rates were determined.} + \label{fig:MultilabelHammingLoss} \end{figure} \begin{figure}[!htb] - \centering - \includegraphics[scale=0.37]{Figures/chapter04/multilabel_costum.png} - \decoRule - \caption[Multi-Label Custom Loss]{\textbf{Custom Loss}~~~These graphs show the evaluation of the training with custom loss that punishes falsely classified ones more than falsely classified 0s. The model was trained over 50 epochs and the accuracy and loss was measured. Further, the false/true positive/negative rates were determined.} - \label{fig:MultilabelCostumLoss} + \centering + \includegraphics[scale=0.37]{Figures/chapter04/multilabel_costum.png} + \decoRule + \caption[Multi-Label Custom Loss]{\textbf{Custom Loss}~~~These graphs show the evaluation of the training with custom loss that punishes falsely classified ones more than falsely classified zeros. The model was trained over 50 epochs and the accuracy and loss was measured. Further, the false/true positive/negative rates were determined.} + \label{fig:MultilabelCostumLoss} \end{figure} \begin{figure}[!htb] - \centering - \includegraphics[scale=0.37]{Figures/chapter04/multilabel_L1.png} - \decoRule - \caption[Multi-Label \(L_1\) Regularization]{\textbf{\(L_1\) Regularization}~~~These graphs show the evaluation of the training with \(L_1\) regularization. As the loss function the binary cross-entropy loss was used. The model was trained over 25 epochs and the accuracy and loss was measured. Further, the false/true positive/negative rates were determined.} - \label{fig:MultilabelL1Regularization} + \centering + \includegraphics[scale=0.37]{Figures/chapter04/multilabel_L1.png} + \decoRule + \caption[Multi-Label \(L_1\) Regularization]{\textbf{\(L_1\) Regularization}~~~These graphs show the evaluation of the training with \(L_1\) regularization. As the loss function the binary cross-entropy loss was used. The model was trained over 25 epochs and the accuracy and loss was measured. Further, the false/true positive/negative rates were determined.} + \label{fig:MultilabelL1Regularization} \end{figure} \begin{figure}[!htb] - \centering - \includegraphics[scale=0.37]{Figures/chapter04/multilabel_L2.png} - \decoRule - \caption[Multi-Label \(L_2\) Regularization]{\textbf{\(L_2\) Regularization}~~~These graphs show the evaluation of the training with \(L_2\) regularization. As the loss function the binary cross-entropy loss was used. The model was trained over 25 epochs and the accuracy and loss was measured. Further, the false/true positive/negative rates were determined.} - \label{fig:MultilabelL2Regularization} + \centering + \includegraphics[scale=0.37]{Figures/chapter04/multilabel_L2.png} + \decoRule + \caption[Multi-Label \(L_2\) Regularization]{\textbf{\(L_2\) Regularization}~~~These graphs show the evaluation of the training with \(L_2\) regularization. As the loss function the binary cross-entropy loss was used. The model was trained over 25 epochs and the accuracy and loss was measured. Further, the false/true positive/negative rates were determined.} + \label{fig:MultilabelL2Regularization} \end{figure} As shown in \autoref{fig:MultilabelCrossentropy}, \autoref{fig:MultilabelHammingLoss} and \autoref{fig:MultilabelCostumLoss}, all the different approaches explained above show a similar behavior in accuracy and loss values. The training and validation accuracy increase slowly but steadily with the training accuracy always being a little higher than the validation accuracy. The training loss decreases rapidly, while the validation loss only decreases very little and shows random fluctuations. This can be an indicator for overfitting. Usually, \(L_1\) and \(L_2\) regularization are used to prevent overfitting, but in our case it did not improve the results, as shown in \autoref{fig:MultilabelL1Regularization} and \autoref{fig:MultilabelL2Regularization}. @@ -425,14 +424,14 @@ \subsubsection{Multi-label classification} When looking at the sensitivity and specificity, it becomes apparent that both increase during the training process, while the false negative and false positive rates decrease with the same slope. The false positive and false negative rates are mirror images to the true positive and true negative rates with the mirroring axis at the 50\% mark. It can be observed that the rates change rapidly in the first two to four epochs, after which the change progresses slowly in the same direction with no greater disturbances. The model trained with the \(L_2\) loss is an exception as it does not show these large changes in either of the rates. \bigskip -When comparing the three different loss functions, it is noticeable that the binary cross-entropy loss has significantly larger accuracy values than the hamming loss and the custom loss. The values of the binary cross-entropy loss start at 75\%, while they start at around 30\% for the other two loss functions. The behavior of the curves and the (mis-)classification rates, however, are very similar in all three approaches. The specificities start off very high with values around 78.46\% for the binary cross-entropy loss, 78.73\% for the hamming loss and 74.74\% for the custom loss, and increase further during the training. The highest values are reached with the binary cross-entropy loss (91.41\%), closely followed by the hamming loss (91.37\%) and the custom loss (88.75\%). The sensitivity values start off lower, at around 37\% to 42\%, and increase rapidly in the first few epochs, after which the rates proceed to increase but with a narrower slope. They reach values of up to 67.27\% with the binary cross-entropy loss, 68.17\% with the hamming loss and 68.17\% with the custom loss. As stated above, the false negative and false positive rates show the same slope but in the opposite direction. +When comparing the three different loss functions, it is noticeable that the binary cross-entropy loss has significantly larger accuracy values than the hamming loss and the custom loss. The values of the binary cross-entropy loss start at 75\% and reach the highest accuracy with 87\%, while they start at around 30\% and only reach values between 45\% to 47\% for the other two loss functions. The behavior of the curves and the (mis-)classification rates, however, are very similar in all three approaches. The specificities start off very high with values around 78.46\% for the binary cross-entropy loss, 78.73\% for the hamming loss and 74.74\% for the custom loss, and increase further during the training. The highest values are reached with the binary cross-entropy loss (91.41\%), closely followed by the hamming loss (91.37\%) and the custom loss (88.75\%). The sensitivity values start off lower, at around 37\% to 42\%, and increase rapidly in the first few epochs, after which the rates proceed to increase but with a narrower slope. They reach values of up to 67.27\% with the binary cross-entropy loss, 68.17\% with the hamming loss and 68.17\% with the custom loss. As stated above, the false negative and false positive rates show the same slope but in the opposite direction. The accuracy values of the models that are trained with \(L_1\) or \(L_2\) regularization, respectively, do not change over the epochs. The same holds for the validation loss. The training loss decreases in the first few epochs and remains stable thereafter. While the (mis-)classification rates of the model trained with \(L_1\) regularization behave similarly to the ones trained with no regularization, the rates of the model trained with \(L_2\) regularization show a smaller increase and lack the fast change in the first epochs. The slopes of all curves indicate that the model is learning, because they are increasing in the case of the accuracy, sensitivity and specificity and decreasing in the case of the loss, false positive and false negative rates until the end of training. Hence, one might think that a longer training period will lead to better results. However, the training loss decreases very rapidly while the validation loss does not. This suggests overfitting of the model, a problem which gets worse when increasing the training steps. Therefore, a longer training period most likely will not increase performance unless overfitting is prevented. As shown in the result section, neither \(L_1\) nor \(L_2\) regularization alone were able to prevent overfitting. -Another common practice that can be tested is the drop-out, in which a certain amount of nodes are left out in different backpropagation steps. This way the model learns to not rely on a small number of nodes but distribute the information between all nodes available. Hence, the coefficients remain smaller. Another method to prevent overfitting is to reduce the model's complexity. A model with fewer parameters to train, is less prone to overfitting. A fitting degree of complexity should be found to model the data sufficiently good without losing the possibility of generalization. +Another common practice that can be tested in the future is the drop-out, in which a certain amount of nodes are left out in different backpropagation steps. This way the model learns to not rely on a small number of nodes but distribute the information between all nodes available. Hence, the coefficients remain smaller. Another method to prevent overfitting is to reduce the model's complexity. A model with fewer parameters to train, is less prone to overfitting. A fitting degree of complexity should be found to model the data sufficiently good without losing the possibility of generalization. Accuracy alone might not be a good indicator to evaluate a multi-label model~\citep{gibaja2015}. As it highly depends on the loss function, it may have misleading results. This can be seen in the comparison between the three different loss functions. Although the sensitivity and specificity show similar values, the accuracy values suggest that the binary cross-entropy loss outperforms the other two loss functions by far. The accuracy of the model trained with the binary cross-entropy loss has an accuracy more than twice as high. But when looking at the slope of the curve, it appears that the model with the binary cross-entropy loss does not perform better than the other two models. All three have an increase of accuracy of roughly 10\% and a similar sensitivity and specificity. This indicates that the slope of the accuracy function can be considered to evaluate the training process of the model, but the real values should be interpreted with caution. @@ -462,29 +461,11 @@ \subsubsection{A dedicated network for head-related features} \includegraphics[width=0.95\textwidth]{Figures/chapter04/head_net_structure.png} \decoRule \caption[Head Features Net Structure]{\textbf{Head Features Net Structure}~~~The depiction shows the network structure of the \acrshort{cnn} specifically aimed at head features.} - \label{tab:HeadNetStructure} + \label{fig:HeadNetStructure} \end{figure} \bigskip -A simple feedforward \acrshort{cnn} was trained on the images.\footnote{~See \url{https://github.com/CogSciUOS/asparagus/tree/FinalProject/classification/supervised/dedicated\_head\_network}} The features flower and rusty head are chosen as target categories. Hence, the model is an example for multi-label classification. The network comprises the input layer, three convolutional layers with kernel size two, a fully connected layer with 128 neurons as well as the output layer. For the final layer, the sigmoid activation function is applied while the hidden layers have ReLU activations. A dropout layer was added to avoid overfitting. The network was trained using \acrfull{mse} as an error function. The development of loss in the learning curve indicates convergence after 40 epochs (see \autoref{fig:HeadCurve}). - -\begin{table}[!b] - \centering - \resizebox{\columnwidth}{!}{% - \begin{tabular}{lrrrrrr} - {} & False positive & False negative & True positive & True negative & Sensitivity & Specificity \\ - \noalign{\smallskip} - \hline - \noalign{\smallskip} - flower & 0.04 & 0.06 & 0.08 & 0.82 & 0.55 & 0.95 \\ - rusty head & 0.02 & 0.13 & 0.03 & 0.83 & 0.19 & 0.98 \\ - \noalign{\smallskip} - \hline - \end{tabular}% - } - \caption[Head Features CNN Performance]{\textbf{Performance of Head Features CNN}~~~Performance of the \acrshort{cnn} trained on asparagus heads.} - \label{tab:performance_measures_head_based} -\end{table} +A simple feedforward \acrshort{cnn} was trained on the images.\footnote{~See \url{https://github.com/CogSciUOS/asparagus/tree/FinalProject/classification/supervised/dedicated\_head\_network} (as of 11/27/2020)} The features flower and rusty head are chosen as target categories. Hence, the model is an example for multi-label classification. The network comprises the input layer, three convolutional layers with kernel size two, a fully connected layer with 128 neurons as well as the output layer. For the final layer, the sigmoid activation function is applied while the hidden layers have ReLU activations. A dropout layer was added to avoid overfitting. The network was trained using \acrfull{mse} as an error function. The development of loss in the learning curve indicates convergence after 40 epochs (see \autoref{fig:HeadCurve}). \begin{figure}[!htb] \centering @@ -508,50 +489,68 @@ \subsubsection{A dedicated network for head-related features} The \acrshort{roc} curve indicates how the classifiers respond to the introduction of a bias and shows the overall prediction quality. In \autoref{fig:HeadROC} the area under the curve is small for the feature rusty head. Beside incongruencies in the labels, this is possibly due to the choice of the size of the head region. It might be the case that brown spots in regions other than the cropped part were considered as an indicator for a rusty head when attributing labels. Improvements by increasing the cropped head region appear to be possible. +\begin{table}[!htb] + \centering + \resizebox{\columnwidth}{!}{% + \begin{tabular}{lrrrrrr} + {} & False positive & False negative & True positive & True negative & Sensitivity & Specificity \\ + \noalign{\smallskip} + \hline + \noalign{\smallskip} + flower & 0.04 & 0.06 & 0.08 & 0.82 & 0.55 & 0.95 \\ + rusty head & 0.02 & 0.13 & 0.03 & 0.83 & 0.19 & 0.98 \\ + \noalign{\smallskip} + \hline + \end{tabular}% + } + \caption[Head Features CNN Performance]{\textbf{Performance of Head Features CNN}~~~Performance of the \acrshort{cnn} trained on asparagus heads.} + \label{tab:performance_measures_head_based} +\end{table} + \subsubsection{From hand-labeled features to class labels} \label{subsec:FeaturesToLabels} -Approximately 200 asparagus spears per class label are pre-sorted\footnote{Pre-sorted in this context means that the asparagus spears were first sorted by the sorting machine and, if needed, re-sorted manually by professional workers.} and serve as ground truth mappings between input images and output class labels. We manually annotated the images with features (see \autoref{sec:ManualLabeling}). This allows us to divide the classification process into two steps: In the first step we predict feature values from images and in a second step we predict class labels from those feature values. +Approximately 200 asparagus spears per class label serve as ground truth mappings between input images and output class labels. We manually annotated the images with features (see \autoref{sec:ManualLabeling}). This allows us to divide the classification process into two steps: In the first step we predict feature values from images and in a second step we predict class labels from those feature values. \begin{figure}[!htb] - \centering - \includegraphics[width=0.60\textwidth]{Figures/chapter04/ftl_pipeline.png} - \decoRule - \caption[Feature to Class Label Pipeline]{\textbf{Feature to Class Label Pipeline}~~~The figure shows the flow of data and possible visualizations of our end to end solution app. We developed an app into which the user can load the asparagus images and the corresponding annotations. The app then visualizes the class label distribution. The user then can choose a model to predict the features of the asparagus pieces and inspect predictions for individually selected samples. Next, the user chooses a model that predicts class labels based on features of the asparagus. The app then presents a classification report, a confusion matrix and the possibility to inspect individual samples to visualize the prediction performance.} - \label{fig:FeatureEngineeringNetStructure} + \centering + \includegraphics[width=0.60\textwidth]{Figures/chapter04/ftl_pipeline.png} + \decoRule + \caption[Feature to Class Label Pipeline]{\textbf{Feature to Class Label Pipeline}~~~The figure shows the flow of data and visualizations of our end to end solution app. We developed an app into which the user can load the asparagus images and the corresponding annotations. The app then visualizes the class label distribution. The user can choose a model to predict the features of the asparagus pieces and inspect predictions for individually selected samples. Next, the user chooses a model that predicts class labels based on features of the asparagus. The app then presents a classification report, a confusion matrix and the possibility to inspect individual samples to visualize the prediction performance.} + \label{fig:FeatureEngineeringNetStructure} \end{figure} \begin{figure}[!htb] - \centering - \includegraphics[scale=0.4]{Figures/chapter04/ftl_streamlit_app.png} - \decoRule - \caption[Screenshot of the Streamlit App]{\textbf{Screenshot of Streamlit App}~~~Screenshot of the streamlit app showing the three images of one asparagus spear with the corresponding labeled features.} - \label{fig:FeaturetoLabelStreamlitApp} -\end{figure} + \centering + \includegraphics[scale=0.4]{Figures/chapter04/ftl_streamlit_app.png} + \decoRule + \caption[Screenshot of the Streamlit App]{\textbf{Screenshot of Streamlit App}~~~Screenshot of the streamlit app showing the three images of one asparagus spear with the corresponding labeled features.} + \label{fig:FeaturetoLabelStreamlitApp} +\end{figure} \begin{figure}[!htb] - \centering - \includegraphics[scale=0.55]{Figures/chapter04/ftl_visualization.png} - \decoRule - \caption[Distribution of Class Labels]{\textbf{Distribution of Class Labels}~~~Absolute number of the asparagus spears for which a ground truth class label is available.} - \label{fig:FeatureToLabelVisualization} + \centering + \includegraphics[scale=0.55]{Figures/chapter04/ftl_visualization.png} + \decoRule + \caption[Distribution of Class Labels]{\textbf{Distribution of Class Labels}~~~Absolute number of the asparagus spears for which a ground truth class label is available.} + \label{fig:FeatureToLabelVisualization} \end{figure} \begin{figure}[!htb] - \centering - \includegraphics[scale=0.4]{Figures/chapter04/ftl_confusion_recall_random_forest.png} - \decoRule - \caption[Random Forest Classifier Confusion Matrices]{\textbf{Random Forest Classifier Confusion Matrices}~~~Confusion matrices showing the absolute and relative number of true positives of the random forest model.} - \label{fig:FeatureToLabelRandomForest} + \centering + \includegraphics[scale=0.4]{Figures/chapter04/ftl_confusion_recall_random_forest.png} + \decoRule + \caption[Random Forest Classifier Confusion Matrices]{\textbf{Random Forest Classifier Confusion Matrices}~~~Confusion matrices showing the absolute and relative number of true positives of the random forest model.} + \label{fig:FeatureToLabelRandomForest} \end{figure} %\begin{table}[!ht] -% \centering -% \includegraphics[scale=0.5]{Figures/chapter04/ftl_classification_report.png} -% \decoRule -% \caption[Classification Report of the Random Forest Classifier]{\textbf{Classification Report of the Random Forest Classifier}~~~The classification report shows key metrics for the trained random forest classifier.} -% \label{tab:FeatureToLabelReport} +% \centering +% \includegraphics[scale=0.5]{Figures/chapter04/ftl_classification_report.png} +% \decoRule +% \caption[Classification Report of the Random Forest Classifier]{\textbf{Classification Report of the Random Forest Classifier}~~~The classification report shows key metrics for the trained random forest classifier.} +% \label{tab:FeatureToLabelReport} %\end{table} \bigskip @@ -559,7 +558,7 @@ \subsubsection{From hand-labeled features to class labels} The user can also inspect the distribution of the selected data (\autoref{fig:FeatureToLabelVisualization}) and the absolute and relative number of correctly and incorrectly classified asparagus spears in a confusion matrix (\autoref{fig:FeatureToLabelRandomForest}). -The precision and recall are measures on how \enquote{useful and complete} the results are \citep{wiki:precisionrecall}. Precision is the ratio between true positives and the set of all true and false positives.Recall is the ratio between the true positives and the set of all true positives and false negatives. The confusion matrix (\autoref{fig:FeatureToLabelRandomForest}) gives us insight about which kind of errors the models make. We can observe that classes such as I~A~Anna, Dicke, Hohle, Rost, Köpfe, and Suppe can be recalled well (relative recall $\geq$ 0.8), while other classes, such as II~A and II~B have much lower recall ratings (relative recall $\leq$ 0.6). That means that II~A and II~B are the most commonly mislabeled classes (cf.~\autoref{tab:FeatureToLabelReport}). +The precision and recall are measures on how \enquote{useful and complete} the results are \citep{wiki:precisionrecall}. Precision is the ratio between true positives and the set of all true and false positives. Recall is the ratio between the true positives and the set of all true positives and false negatives. The confusion matrix (\autoref{fig:FeatureToLabelRandomForest}) gives us insight about which kind of errors the models make. We can observe that classes such as I~A~Anna, Dicke, Hohle, Rost, Köpfe, and Suppe can be recalled well (relative recall $\geq$ 0.8), while other classes, such as II~A and II~B have much lower recall ratings (relative recall $\leq$ 0.6). That means that II~A and II~B are the most commonly mislabeled classes (cf.~\autoref{tab:FeatureToLabelReport}). \begin{table}[!h] \centering @@ -625,13 +624,13 @@ \subsection{Unsupervised learning} Unsupervised learning is a class of machine learning techniques that deals with unlabeled data. More specifically, they work without a known goal, a reward system or prior training, and are usually used to find structure within data. Dimension reduction algorithms and clustering algorithms have been identified as the two main classes of unsupervised machine learning algorithms which are used in image categorization~\citep{olaode2014}. \bigskip -Multivariate data sets are generally high dimensional. However, it is common that some parts of that variable space are more filled with data points than others. A large part of the high dimensional variable space is not used. In order to recognize a structure or pattern in the data, it is necessary to reduce the number of dimensions. For this, both linear and non-linear approaches can be applied. Linear unsupervised learning methods for which also descriptive statistics can be acquired are e.g.\ \acrfull{pca}, Non-negative matrix factorization, and Independent Component Analysis~\citep{olaode2014}. Some examples for non-linear approaches are Kernel \acrshort{pca}~\citep{olivier2006semi}, Isometric Feature Mapping, Local Linear Embedding, and Local Multi-Dimensional Scaling. We employed the linear dimension reduction algorithm \acrshort{pca} as well as autoencoders for nonlinear dimension reduction. +Multivariate data sets are generally high dimensional. However, it is common that some parts of that variable space are more filled with data points than others. A large part of the high dimensional variable space is not used. In order to recognize a structure or pattern in the data, it is necessary to reduce the number of dimensions. For this, both linear and non-linear approaches can be applied. Linear unsupervised learning methods for which also descriptive statistics can be acquired are e.g.\ \acrfull{pca}, non-negative matrix factorization, and Independent Component Analysis~\citep{olaode2014}. Some examples for non-linear approaches are Kernel \acrshort{pca}~\citep{olivier2006semi}, Isometric Feature Mapping, Local Linear Embedding, and Local Multi-Dimensional Scaling. We employed the linear dimension reduction algorithm \acrshort{pca} as well as autoencoders for nonlinear dimension reduction. \subsubsection{Principal Component Analysis} \label{subsec:PCA} -\acrlong{pca} was chosen, because it is one of the standard unsupervised machine learning methods. Moreover, it is a linear, non-parametric method and a widespread application to extract relevant information from high dimensional data sets. The goal is to reduce the complexity of the data by only a minor loss of information~\citep{shlens2014}. Besides being a dimension reduction algorithm, \acrshort{pca} can also be useful to visualize or compress the data, filter noise, or extract features. +\acrlong{pca} was performed, because it is one of the standard unsupervised machine learning methods. Moreover, it is a linear, non-parametric method and a widespread application to extract relevant information from high dimensional data sets. The goal is to reduce the complexity of the data by only a minor loss of information~\citep{shlens2014}. Besides being a dimension reduction algorithm, \acrshort{pca} can also be useful to visualize or compress the data, filter noise, or extract features. \bigskip Our initial aim was to reduce the dimension of our data set for further models. As \acrshort{pca} was applied at the beginning of the data inspection, we also had the aim to visualize our data in a three-dimensional space, in order to get a better understanding of the data distribution. The images that comprise our original data set have a high quality, and instead of only reducing the pixel size, we aimed to reduce the information contained in named depictions. It was achieved by analyzing the principal components in a first step, followed by projecting all relevant images into the lower dimensional space. This information could serve as the input to supervised machine learning algorithms or as a simple lookup scheme to retrieve the label of the example with the most similar low dimensional representation. @@ -645,18 +644,18 @@ \subsubsection{Principal Component Analysis} However, there are several different ways on how to do so. First of all, we performed the \acrshort{pca} on black and white images. When working on black and white images, only one data point per pixel is given. Therefore, performing a \acrshort{pca} is less computationally expensive, and finding structure is easier. However, as we need to be able to recognize violet as well as rust, and therefore be able to differentiate between color nuances, it was decided to work on colored images. \bigskip -There are different possibilities regarding our project which can be considered as useful ways on how to perform a \acrshort{pca}. First, it can be performed on images of different classes at the same time – similar to capturing several images of several people in one database, on which one \acrshort{pca} is performed. In our case this would mean that a \acrshort{pca} is applied to a data set of several input images of all 13 class labels. The second way would be to perform a \acrshort{pca} separately on each class. This way, an \enquote{Eigenasparagus} in each class would be calculated, and distances between the Eigenasparagus of different classes could be measured. Thirdly, \acrshort{pca} can be employed feature-wise. In this case, the data set would consist of a collection of images with a certain feature present vs a collection of the same size with the feature absent. +There are various possibilities on what to apply the \acrshort{pca}. First, it can be performed on images of different classes at the same time – similar to capturing several images of several people in one database, on which one \acrshort{pca} is performed. In our case this would mean that a \acrshort{pca} is applied to a data set of several input images of all 13 class labels. The second way would be to perform a \acrshort{pca} separately on each class. This way, an \enquote{Eigenasparagus} in each class would be calculated, and distances between the Eigenasparagus of different classes could be measured. Thirdly, \acrshort{pca} can be employed feature-wise. In this case, the data set would consist of a collection of images with a certain feature present in contrast to a collection of the same size with the feature absent. \bigskip After trying several different approaches, we decided to perform our final \acrshort{pca} on sliced RGB images with background. The images were labeled for their features with the hand-label app, as this yielded the best results. An amount of 400 pictures per feature was used to perform a binary \acrshort{pca} for each feature (either the feature is absent or present). -The 200 pictures where a certain feature is present as well as the 200 pictures where a certain feature is absent are extracted via loops over the csv-file, where all hand-labeled information is stored as well as the path to the labeled pictures. For each feature a matrix is created, storing 200 pictures with the present feature and 200 pictures without the feature. E.g., m\textunderscore hollow is the matrix created for the feature hollow (shape = 400, img\textunderscore shape[0] $\times$ img\textunderscore shape[1] $\times$ img\textunderscore shape[2]). The first 200 entries in the matrix are pictures of hollow asparagus. The last 200 pictures show asparagus, which is not hollow. These matrices were calculated for the features hollow, flower, rusty head, rusty body, bent, violet, length, and width. The data points of those 400 images in 2D space can be seen in~\autoref{fig:PCAscatter}. +For each feature a matrix is created, storing 200 pictures with the present feature and 200 pictures without the feature. E.g.\, m\textunderscore hollow is the matrix created for the feature hollow (shape = 400, img\textunderscore shape[0] $\times$ img\textunderscore shape[1] $\times$ img\textunderscore shape[2]). The first 200 entries in the matrix are pictures of hollow asparagus. The last 200 pictures show asparagus, which is not hollow. These matrices were calculated for the features hollow, flower, rusty head, rusty body, bent, violet, length, and width. The data points of those 400 images in 2D space can be seen in~\autoref{fig:PCAscatter}. \begin{figure}[!htb] \centering \includegraphics[width=0.98\textwidth]{Figures/chapter04/pca_process.png} \decoRule - \caption[PCA Process]{\textbf{PCA Process}~~~Before the \acrshort{pca} can be conducted, 200 images per feature are identified by the \texttt{get\textunderscore feature\textunderscore ids} function. Then, a matrix for each feature is calculated. The \acrshort{pca} is conducted feature-wise. Thereafter, an Eigenspace for each feature is calculated. To evaluate the performance of the \acrshort{pca}, a verification process was performed. Therefore, new feature-labeled asparagus pictures are taken as input and by the help of all Eigenspaces, they evaluate if the feature is present \enquote{1} or absent \enquote{0}. The result is compared to the label in order to evaluate the performance of the Eigenspace. To improve the algorithm, a pipeline of calculations can be implemented such that a feature vector is calculated. This feature-vector gives a class prediction. This is compared to the known label to the image.} + \caption[PCA Process]{\textbf{PCA Process}~~~Before the \acrshort{pca} can be conducted, 200 images per feature are identified by the \texttt{get\textunderscore feature\textunderscore ids} function. Then, a matrix for each feature is calculated. The \acrshort{pca} is conducted feature-wise. Thereafter, an Eigenspace for each feature is calculated. To evaluate the performance of the \acrshort{pca}, a verification process was performed. Therefore, new feature-labeled asparagus pictures are taken as input and by the help of all Eigenspaces, they evaluate if the feature is present \enquote{1} or absent \enquote{0}. The result is compared to the label in order to evaluate the performance of the Eigenspace. To improve the algorithm, a pipeline of calculations can be implemented such that a feature vector is calculated. This feature-vector gives a class prediction. This is compared to the known label of the image.} \label{fig:PCAprocess} \end{figure} @@ -664,7 +663,7 @@ \subsubsection{Principal Component Analysis} \centering \begin{subfigure}{0.7\textwidth} \includegraphics[width=0.9\linewidth]{Figures/chapter04/pca_length_graph.png} - \caption{This plots shows the magnitude of the first ten eigenvalues for the feature length.} + \caption{This plot shows the magnitude of the first ten eigenvalues for the feature length.} \end{subfigure} \vspace{20pt} @@ -689,7 +688,7 @@ \subsubsection{Principal Component Analysis} \centering \begin{subfigure}{0.7\textwidth} \includegraphics[width=0.9\linewidth]{Figures/chapter04/pca_hollow_graph.png} - \caption{This plots shows the magnitude of the first ten eigenvalues for the feature hollow.} + \caption{This plot shows the magnitude of the first ten eigenvalues for the feature hollow.} \end{subfigure} \vspace{20pt} @@ -714,7 +713,7 @@ \subsubsection{Principal Component Analysis} \centering \begin{subfigure}{0.7\textwidth} \includegraphics[width=0.9\linewidth]{Figures/chapter04/pca_bent_graph.png} - \caption{This plots shows the magnitude of the first ten eigenvalues for the feature bent.} + \caption{This plot shows the magnitude of the first ten eigenvalues for the feature bent.} \end{subfigure} \vspace{20pt} @@ -739,7 +738,7 @@ \subsubsection{Principal Component Analysis} \centering \begin{subfigure}{0.7\textwidth} \includegraphics[width=0.9\linewidth]{Figures/chapter04/pca_violet_graph.png} - \caption{This plots shows the magnitude of the first ten eigenvalues for the feature violet.} + \caption{This plot shows the magnitude of the first ten eigenvalues for the feature violet.} \end{subfigure} \vspace{20pt} @@ -764,7 +763,7 @@ \subsubsection{Principal Component Analysis} \centering \begin{subfigure}{0.7\textwidth} \includegraphics[width=0.9\linewidth]{Figures/chapter04/pca_width_graph.png} - \caption{This plots shows the magnitude of the first ten eigenvalues for the feature width.} + \caption{This plot shows the magnitude of the first ten eigenvalues for the feature width.} \end{subfigure} \vspace{20pt} @@ -789,7 +788,7 @@ \subsubsection{Principal Component Analysis} \centering \begin{subfigure}{0.7\textwidth} \includegraphics[width=0.9\linewidth]{Figures/chapter04/pca_rustybody_graph.png} - \caption{This plots shows the magnitude of the first ten eigenvalues for the feature rusty body.} + \caption{This plot shows the magnitude of the first ten eigenvalues for the feature rusty body.} \end{subfigure} \vspace{20pt} @@ -814,7 +813,7 @@ \subsubsection{Principal Component Analysis} \centering \begin{subfigure}{0.7\textwidth} \includegraphics[width=0.9\linewidth]{Figures/chapter04/pca_flower_graph.png} - \caption{This plots shows the magnitude of the first ten eigenvalues for the feature flower.} + \caption{This plot shows the magnitude of the first ten eigenvalues for the feature flower.} \end{subfigure} \vspace{20pt} @@ -836,9 +835,9 @@ \subsubsection{Principal Component Analysis} %\end{figure} \bigskip -For all these features a \acrshort{pca} is calculated by first standardizing the matrix pixel-wise (dimensions: $1340\times346\times3$), calculating the covariance matrix, and then extracting the ordered eigenvalues. The principal components are calculated multiplying these eigenvectors with the standardized matrix. The feature space, the principal components, and the standardized matrices are saved to later perform a classification function. The highest ten eigenvalues are plotted to visually decide where to set the threshold of how many principal components will be further included. The first ten eigenvalues and the first ten Eigenasparagus for each feature can be seen in \autoref{fig:PCAlength} -- \autoref{fig:PCAflower}. +For all these features a \acrshort{pca} is calculated by first standardizing the matrix pixel-wise (dimensions: $1340\times346\times3$), calculating the covariance matrix, and then extracting the ordered eigenvalues. The principal components are calculated by multiplying these eigenvectors with the standardized matrix. The feature space, the principal components, and the standardized matrices are saved to later perform a classification function. The highest ten eigenvalues are plotted to visually decide where to set the threshold of how many principal components will be further included. The first ten eigenvalues and the first ten Eigenasparagus for each feature can be seen in \autoref{fig:PCAlength} -- \autoref{fig:PCAflower}. -The classification function is a control function, which performs on unseen images and predicts if a feature is absent or present. It reads in a new picture of one asparagus, which is not part of the asparagus database, meaning not within the 400 images that were used to calculate the \acrshort{pca}. Then, it searches for the asparagus that is most similar to it in the feature matrices (which are 200 pictures of asparagus carrying the feature, 200 pictures of asparagus without the feature). This comparison is made with the reduced representation of the original pictures. +The classification function is a control function, which performs on unseen images and predicts if a feature is absent or present. It reads in a new picture of one asparagus, which is not part of the 400 images that were used to calculate the \acrshort{pca}. Then, it searches for the asparagus that is most similar to it in the feature matrices (which are 200 pictures of asparagus carrying the feature, 200 pictures of asparagus without the feature). This comparison is made with the reduced representation of the original pictures. In greater detail, the input picture is first centered by subtracting the mean asparagus and then the picture is projected into the corresponding feature-space. That means the picture is translated into the lower dimensional space, in order to compare it to the known 400 pictures. The comparison is made through calculating the distance between the single centered Eigenasparagus and the 400 pictures in the feature space, by using the cdist function of the SciPy package. The smallest distance is considered as the most similar asparagus. If the index of the most similar asparagus is smaller than 200 we know that the feature is present, if it is above 200 the feature is absent. By comparing this to the information of the single asparagus spear, we know if the new asparagus has the same feature as its closest asparagus in the feature space, or not. By doing this for several images, we can already presume if the two features are likely to be easily separable or not. By evaluating this, we have a measure of how well our used principal components capture the distinguishing information of each feature. @@ -855,22 +854,22 @@ \subsubsection{Principal Component Analysis} The scatterplots in~\autoref{fig:PCAscatter} show the data of each feature lined up along the axes of the first two principal components of each feature. \begin{figure}[h] - \centering - \includegraphics[scale=0.35]{Figures/chapter04/pca_scatterplot.png} - \decoRule - \caption[Feature-Wise Scatterplots]{\textbf{Feature-wise Scatterplots}~~~These scatterplots show the 200 data points where the feature is present in blue and the 200 data points where the feature is absent in orange. The data is projected into a 2D subspace, which is spanned by the first two principal components of each feature.} - \label{fig:PCAscatter} + \centering + \includegraphics[scale=0.35]{Figures/chapter04/pca_scatterplot.png} + \decoRule + \caption[Feature-Wise Scatterplots]{\textbf{Feature-wise Scatterplots}~~~These scatterplots show the 200 data points where the feature is present in blue and the 200 data points where the feature is absent in orange. The data is projected into a 2D subspace, which is spanned by the first two principal components of each feature.} + \label{fig:PCAscatter} \end{figure} -For the classification function, we used the same ten images, to test each feature. The classification works best for the features length and hollow (10/10 classified correctly) and then width (8/10 classified correctly). It performs around chance-level for flower (6/10 classified correctly), violet, and rusty body (5/10 classified correctly), and extremely poor for bent (2/10 classified correctly). +For the classification function, we used the same ten images, to test each feature. The classification works best for the features length (10/10 classified correctly) and hollow (8/10 classified correctly, sensitivity 33.3\%, specificity 100%) and then width (8/10 classified correctly, sensitivity 100\%, specificity 60\%)\footnote{sensitivity in this analysis refers to the feature present correctly identified and specificity the feature not present correctly identified}. It performs around chance-level for flower (6/10 classified correctly, sensitivity 50\%, specificity 62.5\%), violet (5/10 classified correctly, sensitivity 0\%, specificity 55.5\%), and rusty body (5/10 classified correctly, sensitivity 100\%, specificity 44.4\%), and extremely poor for bent (2/10 classified correctly, sensitivity 16.6\%, specificity 25\%). From the images of the first ten principal components, we can visually assume that there is information about the length and shape stored in the first principal component, as a clear asparagus spear can be seen. The following images leave a lot of room for interpretation, about what information is contained there. We performed the \acrshort{pca} on each feature separately to extract the principal components. It is interesting to see that the pictures of the different features are all very similar, see \autoref{fig:PCAlength} -- \autoref{fig:PCAflower}. One reason for this might be that many of the 400 input pictures for each feature are overlapping between the remaining features. Another reason might be that even though the images vary between features, the general information of all asparagus images is very similar. \bigskip -From the results of the classification function, one can see that there are large differences between the features in how well our \acrshort{pca} performs (20\% -- 100\%). -One reason for this could be that certain features are simply more difficult to distinguish than others. Another reason for this large variation can be that certain features are also more difficult to label consistently (see~\autoref{subsec:AgreementMeasures}), and that the results are due to inconsistencies within the data. One indicator that this is a considerable reason is that the performance of the width and length features, which is information that is not hand-labeled, is very high. Moreover, the poorest results can be observed for the features bent and rusty body. Those are the features, for which the agreement measures show the largest discrepancies between annotators (see~\autoref{subsec:Reliability}). +From the results of the classification function, one can see that there are large differences between the features in how well our \acrshort{pca} performs. Arguably the testing set only comprised a small amount of images such that the tested categories are unbalanced that could cause ambiguous results. +One reason for this could be that certain features are simply more difficult to distinguish than others. Additionally asparagus spears appear to be similar above all classes, thus major variance is mostly reduced to the position or orientation of the spear. Further preprocessing of the images could eradicate this problem. Another reason for this large variation can be that certain features are also more difficult to label consistently (see~\autoref{subsec:AgreementMeasures}), and that the results are due to inconsistencies within the data. One indicator that this is a considerable reason is that the performance of the width and length features, which is information that is not hand-labeled, is very high. Moreover, the poorest results can be observed for the features bent and rusty body. Those are the features, for which the agreement measures show the largest discrepancies between annotators (see~\autoref{subsec:Reliability}). \bigskip Another reason why the results are partly only moderate, is that RGB image data possesses complicated structures and by representing it in a linear, low dimensional feature space, it might be that simply too much information is lost. Even though there are papers reporting good results of \acrshort{pca} on image data~\citep{turk1991face,lata2009}, there are other papers claiming that nonlinear dimension reduction algorithms are needed for this kind of image data~\citep{olaode2014}. @@ -879,22 +878,22 @@ \subsubsection{Principal Component Analysis} \subsubsection{Autoencoder} \label{subsec:Autoencoder} -Beside \acrshort{pca}, there are further techniques for dimension reduction. An alternative that can be employed to deduce sparse representations and automatically extract features by learning from examples are autoencoders.\footnote{See \url{https://github.com/CogSciUOS/asparagus/tree/FinalProject/classification/semisupervised/variational\_auto\_encoder}} +Beside \acrshort{pca}, there are further techniques for dimension reduction. An alternative that can be employed to deduce sparse representations and automatically extract features by learning from examples are autoencoders.\footnote{See \url{https://github.com/CogSciUOS/asparagus/tree/FinalProject/classification/semisupervised/variational\_auto\_encoder} (as of 11/27/2020)} \bigskip -Simple autoencoders, in which the decoder and encoder consist of \acrshortpl{mlp}, were already proposed as an alternative to \acrshort{pca} in the early days of \acrlong{ann} when computational resources were still comparatively limited~\citep{kramer1991nonlinear}. Today one can choose from a multitude of network architectures and designs that all have one property in common: A bottleneck layer. For image classification it is common practice to use convolutional autoencoders. There are numerous papers about applications in various domains. Examples range from medical images to aerial radar measurements~\citep{chen2017deep}. The autoencoders employed include not only shallow networks but more recently the benefits of deep autoencoders were demonstrated as well ~\citep{geng2015high}. In addition, more complex architectures combining autoencoders with generative adversarial models were proposed lately ~\citep{bao2017cvae}. In many cases the purpose of autoencoders is dimension reduction and feature extraction. Hence the activation of the bottleneck layer neurons (the output of the encoder) is of main interest. In other cases, autoencoders are used to map images from one domain to another. For example, camera recordings can be mapped to pixel-wise labeled images. In this approach the labeled image can be retrieved from the decoder’s output layer after successfully training the network ~\citep{iglovikov2018ternausnet}. In short, there are many possible ways to apply autoencoders and also many possible architectures to realize them. +Simple autoencoders, in which the decoder and encoder consist of \acrshortpl{mlp}, were already proposed as an alternative to \acrshort{pca} in the early days of \acrlong{ann} when computational resources were still comparatively limited~\citep{kramer1991nonlinear}. Today one can choose from a multitude of network architectures and designs that all have one property in common: A bottleneck layer. For image classification it is common practice to use convolutional autoencoders. There are numerous papers about applications in various domains. Examples range from medical images to aerial radar measurements~\citep{chen2017deep}. The autoencoders employed include not only shallow networks but more recently the benefits of deep autoencoders were demonstrated as well~\citep{geng2015high}. An example that became famous because of its good performance is the deep \acrshort{cnn} U-Net that includes contracting paths that bypass deeper layers of the encoder-decoder assembly ~\citep{ronneberger2015u}. In addition, more complex architectures combining autoencoders with generative adversarial models were proposed lately ~\citep{bao2017cvae}. In other cases, autoencoders are used to map images from one domain to another. For example, camera recordings can be mapped to pixel-wise labeled images. In this approach the labeled image can be retrieved from the decoder’s output layer after successfully training the network ~\citep{iglovikov2018ternausnet}. In short, there are many possible ways to apply autoencoders and also many possible architectures to realize them. -This motivates the question of how autoencoders work. As mentioned, all autoencoders have a bottleneck layer. If applied for dimension reduction, autoencoders are usually used to predict the input -- in this case the image -- with the input itself. The sparse representation corresponds to the activation of the latent layer for a given input. Autoencoders consist of an encoder that contains the initial layers as well as the bottleneck layer, and a decoder that maps the respective latent space back to the image. The desired mapping function of the input to a sparse representation is generated as a by-product of optimization in end-to-end training, as weights of the decoder are trained such that meaningful features are extracted. The main difference to \acrshort{pca} is that nonlinear functions can be approximated. Feedforward neural networks such as the encoder of an autoencoder are non-linear function approximators. Networks with multiple layers are especially well-known for establishing named nonlinear correlation. Hence, autoencoders allow for non-linear mappings to the latent space~\citep{kramer1991nonlinear}. This means that in the latter, multiple features may be represented in a two dimensional space. It shows that compared to \acrshort{pca}, where one dimension typically corresponds to one feature, more information can be represented in fewer dimensions. Different properties of the input are mapped to different areas of the latent space. +If applied for dimension reduction, autoencoders are usually used to predict the input -- in this case the image -- with the input itself. The sparse representation corresponds to the activation of the latent layer for a given input. Autoencoders consist of an encoder that contains the initial layers as well as the bottleneck layer, and a decoder that maps the respective latent space back to the image. The desired mapping function of the input to a sparse representation is generated as a by-product of optimization in end-to-end training, as weights of the decoder are trained such that meaningful features are extracted. The main difference to \acrshort{pca} is that nonlinear functions can be approximated. Feedforward neural networks such as the encoder of an autoencoder are non-linear function approximators. Networks with multiple layers are especially well-known for establishing named nonlinear correlation. Hence, autoencoders allow for non-linear mappings to the latent space~\citep{kramer1991nonlinear}. This means that in the latter, multiple features may be represented in a two dimensional space. It shows that compared to \acrshort{pca}, where one dimension typically corresponds to one feature, more information can be represented in fewer dimensions. Different properties of the input are mapped to different areas of the latent space. \bigskip For this project, we used a certain kind of autoencoder as basis, namely a \acrfull{vae} for unsupervised data exploration. In \acrshortpl{vae}, a special loss function is used that ensures features in the latent space are mapped to a compact cluster of values. This allows for interpolation between samples by moving on a straight line. Regions between points in the latent space lie within the data and hence reconstructions of the decoder are more realistic~\citep{keras2020vae}. Other than that, \acrshortpl{vae} share most properties with regular autoencoders. The location of a point in latent space refers to a compressed representation of the input. These can be interpreted as features of the input. \begin{figure}[h] - \centering - \includegraphics[scale=0.8]{Figures/chapter04/autoencoder_latent_asparagus.png} - \decoRule - \caption[Latent Asparagus Space for MLP-VAE and Reconstruction Manifold]{\textbf{Latent Asparagus Space for MLP-VAE and Reconstruction Manifold}~~~The depiction illustrates the mapping by the encoder and decoder of the \acrshort{vae}: On the left you can see scatterplots illustrating the activation of latent layer neurons for the test data set (the mapping by the encoder). Image-features are mapped to the respective latent asparagus space. There is a scatterplot for each feature of interest where colors indicate positive (yellow) and negative (purple) samples. On the right a manifold of decoded images is shown. The axes relate to the points sampled in latent asparagus space that correspond to the reconstructions (mapping by the decoder).} - \label{fig:AutoencoderLatentSpace} + \centering + \includegraphics[scale=0.8]{Figures/chapter04/autoencoder_latent_asparagus.png} + \decoRule + \caption[Latent Asparagus Space for MLP-VAE and Reconstruction Manifold]{\textbf{Latent Asparagus Space for MLP-VAE and Reconstruction Manifold}~~~The depiction illustrates the mapping by the encoder and decoder of the \acrshort{vae}: On the left you can see scatterplots illustrating the activation of latent layer neurons for the test data set (the mapping by the encoder). Image-features are mapped to the respective latent asparagus space. There is a scatterplot for each feature of interest where colors indicate positive (yellow) and negative (purple) samples. On the right a manifold of decoded images is shown. The axes relate to the points sampled in latent asparagus space that correspond to the reconstructions (mapping by the decoder).} + \label{fig:AutoencoderLatentSpace} \end{figure} Different \acrshortpl{vae} were tested in the scope of the project. First, a simple \acrshort{vae} with a \acrshort{mlp} as decoder was implemented. The second approach was a comparatively shallow convolutional \acrshort{vae}. The third approach relates to a convolutional \acrshort{vae} with a deeper encoder that was later used as a basis to design the networks for semi-supervised learning. The third approach is more complex but does not improve the mapping of the properties of asparagus spears to a two dimensional latent asparagus space. Thus, only the results for the second of the three mentioned networks are reported in the following. @@ -904,16 +903,15 @@ \subsubsection{Autoencoder} Similar to the application of \acrshort{pca}, batches of images that contain only one perspective are used as input to the network. The downsampled data set is used. Images have to be padded as the implementation does not work with inputs of arbitrary shape. This is because the deconvolutional layers of the decoder can only increase dimensionality by an integer factor: The filters that are used for the deconvolution in the given network double the tensor dimensionality. An increase of the vertical dimension from 34 to 68 and finally to the desired 136 pixels is achieved in the last three layers of the network (which is impossible for the original height of 134 pixels). The input shape, which also defines the shape of the output layer, must be divisible by two without remainder twice. \bigskip -\autoref{fig:AutoencoderLatentSpace} shows the results. It demonstrates that the features short, thick, and thin are mapped to separable clusters. As a tendency the feature bent correlates with a region in the lower periphery, as indicated especially by the deconstruction depicted on the right side of \autoref{fig:AutoencoderLatentSpace}. The other features (violet, rust and flower) are not mapped adequately, thus, they are not visible in the reconstruction. This shows that only some features of interest are mapped to the latent space and used to decode images. Reconstructions of autoencoders are known to miss many details \citep{kramer1991nonlinear}. One may speculate that better results can be achieved using larger input images as we applied autoencoders on downscaled images. +\autoref{fig:AutoencoderLatentSpace} shows the results. It demonstrates that the features short, thick, and thin are mapped to separable clusters. As a tendency the feature bent correlates with a region in the lower periphery, as indicated especially by the deconstruction depicted on the right side of \autoref{fig:AutoencoderLatentSpace}. The other features (violet, rust and flower) are not mapped adequately, thus, they are not visible in the reconstruction. This shows that only some features of interest are mapped to the latent space and used to decode images. Reconstructions of autoencoders are known to miss many details \citep{kramer1991nonlinear}. One may speculate that better results can be achieved using larger input images as we applied autoencoders on downscaled images. -The possibility to generate, for example, more or less bent asparagus spears may help to define a precise decision boundary and classify images accordingly. As a potential feature for asparagus sorting machines, this would allow the user to customize the definition of features such as bent to their own taste. For this approach to be viable for all features, however, the network performance appears to be insufficient. Some features are poorly separated by the network. +The possibility to generate, for example, more or less bent asparagus spears may help to define a precise decision boundary and classify images accordingly. As a potential feature for asparagus sorting machines, this would allow the user to customize the definition of features such as bent to their own taste. For this approach to be viable for all features, however, the network performance appears to be insufficient. Some features are separated poorly by the network. \subsection{Semi-supervised learning} \label{sec:SemiSupervisedLearning} -We collected more than 100000 samples. Considering the uniform appearance of the images this represents a substantial amount. However, labels had to be manually generated. This was done for only around 10\% of the samples. As a consequence, there is only a small subset of data with attributed labels. Smaller amounts of labeled data mean that predictions can be successful only if the variance in the source values is limited. Hence, for high dimensional data such as images, sparse representations are desirable. Extracting features automatically instead of relying on manual feature engineering is a strategy that is especially -appealing if large amounts of unlabeled data are available. +Only a small subset of the data (around 10\%) is attributed with labels. Smaller amounts of labeled data mean that predictions can be successful only if the variance in the source values is limited. Hence, for high dimensional data such as images, sparse representations are desirable. Extracting features automatically instead of relying on manual feature engineering is a strategy that is especially appealing if large amounts of unlabeled data are available. In semi-supervised learning features are extracted from the input images in an unsupervised fashion. If labels are available for a sample they are used to ensure that the extracted features correspond to the target categories ~\citep{keng2017semi}. Hence, semi-supervised learning promises better results by using not only labeled samples but also unlabeled data points of partially labeled data sets. @@ -921,84 +919,84 @@ \subsection{Semi-supervised learning} \subsubsection{Semi-supervised autoencoder} \label{subsec:VariationalAutoencoder} -In the previous chapter, methods and results for unsupervised learning are presented. One example is a convolutional autoencoder. In this section, it is shown how convolutional autoencoders with additional soft constraints in the loss function can be used for semi-supervised learning.\footnote{See \url{https://github.com/CogSciUOS/asparagus/tree/FinalProject/classification/semisupervised/semi_supervised_autoencoders}} Instead of using unsupervised methods to compute another data set of sparse representations and use the latter to predict labels, in semi-supervised learning sparse representations are retrieved and mapped to latent features at the same time~\citep{keng2017semi}. Bottleneck layer activations represent automatically extracted features. For semi-supervised learning one tries to enforce that latent layer activations of autoencoders correlate with the target categories. +In the previous chapter, methods and results for unsupervised learning are presented. One example is a convolutional autoencoder. In this section, it is shown how convolutional autoencoders with additional soft constraints in the loss function can be used for semi-supervised learning.\footnote{See \url{https://github.com/CogSciUOS/asparagus/tree/FinalProject/classification/semisupervised/semi_supervised_autoencoders} (as of 11/27/2020)} Instead of using unsupervised methods to compute another data set of sparse representations and use the latter to predict labels, in semi-supervised learning sparse representations are retrieved and mapped to latent features at the same time~\citep{keng2017semi}. Bottleneck layer activations represent automatically extracted features. For semi-supervised learning one tries to enforce that latent layer activations of autoencoders correlate with the target categories. \begin{figure}[!htb] \centering \includegraphics[scale=0.8]{Figures/chapter04/semi_supervised_network.png} \decoRule - \caption[Semi-Supervised Learning Network Structures]{\textbf{Network Structures for Semi-Supervised Learning}~~~The depiction illustrates the network structure for the autoencoders used for semi-supervised learning. Left: The structure for the semi-supervised convolutional \acrshort{vae}. Right: The structure for the semi-supervised convolutional autoencoder. Further explanations can be found in the text.} + \caption[Semi-Supervised Learning Network Structures]{\textbf{Network Structures for Semi-Supervised Learning}~~~The depiction illustrates the network structure for the autoencoders used for semi-supervised learning. Left: The structure for the semi-supervised convolutional \acrshort{vae}. Right: The structure for the semi-supervised convolutional autoencoder.} \label{fig:SemiSupervisedNetworkStructures} \end{figure} \bigskip -The general network structure is derived from the convolutional autoencoder used for unsupervised learning in \autoref{subsec:Autoencoder}. The feedforward \acrshort{cnn} is replaced by a network that has proven to be suitable to detect at least some features with sufficient adequacy when trained on asparagus heads (see~\autoref{subsec:HeadNetwork}). It comprises three convolutional layers with 32 kernels, respectively. The first layer has a kernel size of $2\times2$, and the two subsequent layers have a kernel size of $3\times3$. A max pooling layer with stride size two is added mainly to reduce the number of total neurons while maintaining a high number of kernels. Additionally, a dropout layer is added to avoid overfitting. In contrast to other implementations for semi-supervised learning~\citep{keng2017semi} the same network is used for the prediction of labels (when they exist for the current batch) as for the encoder that retrieves the sparse representation for reconstructing images. We chose the same decoder as in the \acrlong{vae} presented in the previous \autoref{subsec:Autoencoder}. The effects of a bypass layer that contains neurons not being subject to the label layer loss (see~\autoref{fig:SemiSupervisedNetworkStructures}) were tested. As accuracy did not improve, it was later dismissed. Two variations of the network were tested: A convolutional \acrshort{vae} for semi-supervised learning and a convolutional autoencoder for semi-supervised learning. The architecture for both networks can be seen in \autoref{fig:SemiSupervisedNetworkStructures}. +The general network structure is derived from the convolutional autoencoder used for unsupervised learning in \autoref{subsec:Autoencoder}. The feedforward \acrshort{cnn} is replaced by a network that has proven to be suitable to detect at least some features with sufficient adequacy when trained on asparagus heads (see~\autoref{subsec:HeadNetwork}). It comprises three convolutional layers with 32 kernels, respectively. The first layer has a kernel size of $2\times2$, and the two subsequent layers have a kernel size of $3\times3$. A max pooling layer with stride size two is added mainly to reduce the number of total neurons while maintaining a high number of kernels. Additionally, a dropout layer is added to avoid overfitting. In contrast to other implementations for semi-supervised learning~\citep{keng2017semi} the same network is used for the prediction of labels (when they exist for the current batch) as for the encoder that retrieves the sparse representation for reconstructing images. We chose the same decoder as in the \acrlong{vae} presented in the previous \autoref{subsec:Autoencoder}. The effects of a bypass layer that contains neurons not being subject to the label layer loss (see~\autoref{fig:SemiSupervisedNetworkStructures}) were tested. As accuracy did not improve, it was later dismissed. Two variations of the network were tested: A convolutional \acrshort{vae} for semi-supervised learning and a convolutional autoencoder for semi-supervised learning. The architecture for both networks is shown in \autoref{fig:SemiSupervisedNetworkStructures}. A challenge results from training with multiple inputs. As deep learning frameworks usually require a connected graph that links inputs to outputs, a trick is used in order to handle that two tensors -- images as well as labels -- are given as an input. A dummy layer is introduced where all information derived from the labels is multiplied by zero. The output vector is concatenated with the bottleneck of the encoder. As it contains no variance, training and, more importantly, validation accuracies remain unaffected even though information about the categories to be predicted is added on the input side. Nevertheless, the labels are part of the network graph and could hence be used in the loss function. \begin{figure}[!htb] - \centering - \includegraphics[scale=0.35]{Figures/chapter04/semi_supervised_latent_asparagus.png} - \decoRule - \caption[Semi-Supervised Convolutional VAE Latent Asparagus Space]{\textbf{Latent Asparagus Space for Semi-Supervised VAE}~~~The depiction illustrates the mapping by the encoder and decoder of the \acrshort{cnn}-\acrshort{vae} with additional constraints in the loss function for semi-supervised learning: On the left one can see scatterplots illustrating the activation of latent layer neurons for the test data set (the mapping by the encoder). Image-features are mapped to the respective latent asparagus space. Mind that there is a scatterplot for each feature of interest where colors indicate positive and negative samples. On the right, a manifold of decoded images can be found. The axis relates to the points sampled in latent asparagus space that correspond to the reconstructions (mapping by the decoder).} - \label{fig:SemiSupervisedLatentSpace} + \centering + \includegraphics[scale=0.35]{Figures/chapter04/semi_supervised_latent_asparagus.png} + \decoRule + \caption[Semi-Supervised Convolutional VAE Latent Asparagus Space]{\textbf{Latent Asparagus Space for Semi-Supervised VAE}~~~The depiction illustrates the mapping by the encoder and decoder of the \acrshort{cnn}-\acrshort{vae} with additional constraints in the loss function for semi-supervised learning: On the left one can see scatterplots illustrating the activation of latent layer neurons for the test data set (the mapping by the encoder). Image-features are mapped to the respective latent asparagus space. Mind that there is a scatterplot for each feature of interest where colors indicate positive and negative samples. On the right, a manifold of decoded images can be found. The axis relates to the points sampled in latent asparagus space that correspond to the reconstructions (mapping by the decoder).} + \label{fig:SemiSupervisedLatentSpace} \end{figure} -A custom conditional loss function is used. If labels are present for the current batch, the custom loss is equal to a combined loss that comprises the reconstruction loss and the label loss. Here, reconstruction loss refers to the pixel-wise loss that is used for the main task of the network -- namely, the mapping of input images back to the same images (fed into the network as target values to the output layer). The label loss is used with the goal of mapping label layer activations to the actual labels. It is low if activations in the sigmoid transformed label layer match the target values i.e.\ the sum of the error layer is low. The loss that is due to labels is multiplied by a custom factor $(k)$. In addition it is defined such that it scales with the current pixel-wise reconstruction loss and converges to a constant $(c)$. These values are chosen with the aim of increasing the contribution of the label loss to the combined loss, especially in late stages of training. +A custom conditional loss function is used. If labels are present for the current batch, the custom loss is equal to a combined loss that comprises the reconstruction loss and the label loss. Here, reconstruction loss refers to the pixel-wise loss that is used for the main task of the network -- namely, the mapping of input images back to the same images. The label loss is used with the goal of mapping label layer activations to the actual labels. It is low if activations in the sigmoid transformed label layer match the target values i.e.\ the sum of the error layer is low. The loss for the labels is multiplied by a custom factor $(k)$. In addition, it is defined such that it scales with the current pixel-wise reconstruction loss and converges to a constant $(c)$. These values are chosen with the aim of increasing the contribution of the label loss to the combined loss, especially in late stages of training. \begin{table}[!htb] - \centering - \resizebox{\columnwidth}{!}{% - \begin{tabular}{lrrrrrr} - {} & False positive & False negative & True positive & True negative & Sensitivity & Specificity \\ - \noalign{\smallskip} - \hline - \noalign{\smallskip} - bent & 0.04 & 0.37 & 0.04 & 0.55 & 0.10 & 0.94 \\ - violet & 0.00 & 0.08 & 0.00 & 0.92 & 0.00 & 1.00 \\ - rusty body & 0.14 & 0.27 & 0.20 & 0.39 & 0.42 & 0.73 \\ - fractured & 0.00 & 0.02 & 0.00 & 0.98 & 0.00 & 1.00 \\ - thick & 0.00 & 0.07 & 0.00 & 0.93 & 0.00 & 1.00 \\ - thin & 0.00 & 0.14 & 0.16 & 0.70 & 0.54 & 0.99 \\ - \noalign{\smallskip} - \hline - \end{tabular}% - } - \caption[Semi-Supervised Convolutional VAE Performance]{\textbf{Convolutional VAE Performance}~~~Performance of the semi-supervised convolutional \acrshort{vae}.} - \label{tab:performance_convolutional_vae} + \centering + \resizebox{\columnwidth}{!}{% + \begin{tabular}{lrrrrrr} + {} & False positive & False negative & True positive & True negative & Sensitivity & Specificity \\ + \noalign{\smallskip} + \hline + \noalign{\smallskip} + bent & 0.04 & 0.37 & 0.04 & 0.55 & 0.10 & 0.94 \\ + violet & 0.00 & 0.08 & 0.00 & 0.92 & 0.00 & 1.00 \\ + rusty body & 0.14 & 0.27 & 0.20 & 0.39 & 0.42 & 0.73 \\ + fractured & 0.00 & 0.02 & 0.00 & 0.98 & 0.00 & 1.00 \\ + thick & 0.00 & 0.07 & 0.00 & 0.93 & 0.00 & 1.00 \\ + thin & 0.00 & 0.14 & 0.16 & 0.70 & 0.54 & 0.99 \\ + \noalign{\smallskip} + \hline + \end{tabular}% + } + \caption[Semi-Supervised Convolutional VAE Performance]{\textbf{Convolutional VAE Performance}~~~Performance of the semi-supervised convolutional \acrshort{vae}.} + \label{tab:performance_convolutional_vae} \end{table} \begin{table}[!htb] - \centering - \resizebox{\columnwidth}{!}{% - \begin{tabular}{lrrrrrr} - {} & False positive & False negative & True positive & True negative & Sensitivity & Specificity \\ - \noalign{\smallskip} - \hline - \noalign{\smallskip} - bent & 0.02 & 0.34 & 0.07 & 0.57 & 0.18 & 0.96 \\ - violet & 0.00 & 0.08 & 0.00 & 0.92 & 0.00 & 1.00 \\ - rusty body & 0.23 & 0.19 & 0.28 & 0.30 & 0.59 & 0.57 \\ - fractured & 0.00 & 0.01 & 0.01 & 0.97 & 0.57 & 1.00 \\ - thick & 0.00 & 0.06 & 0.00 & 0.93 & 0.04 & 1.00 \\ - thin & 0.02 & 0.07 & 0.23 & 0.68 & 0.76 & 0.97 \\ - \noalign{\smallskip} - \hline - \end{tabular}% - } - \caption[Semi-Supervised Convolutional Autoencoder Performance]{\textbf{Convolutional Autoencoder Performance}~~~Performance of the Semi-Supervised Convolutional Autoencoder.} - \label{tab:performance_semi_supervised_autoencoder} + \centering + \resizebox{\columnwidth}{!}{% + \begin{tabular}{lrrrrrr} + {} & False positive & False negative & True positive & True negative & Sensitivity & Specificity \\ + \noalign{\smallskip} + \hline + \noalign{\smallskip} + bent & 0.02 & 0.34 & 0.07 & 0.57 & 0.18 & 0.96 \\ + violet & 0.00 & 0.08 & 0.00 & 0.92 & 0.00 & 1.00 \\ + rusty body & 0.23 & 0.19 & 0.28 & 0.30 & 0.59 & 0.57 \\ + fractured & 0.00 & 0.01 & 0.01 & 0.97 & 0.57 & 1.00 \\ + thick & 0.00 & 0.06 & 0.00 & 0.93 & 0.04 & 1.00 \\ + thin & 0.02 & 0.07 & 0.23 & 0.68 & 0.76 & 0.97 \\ + \noalign{\smallskip} + \hline + \end{tabular}% + } + \caption[Semi-Supervised Convolutional Autoencoder Performance]{\textbf{Convolutional Autoencoder Performance}~~~Performance of the Semi-Supervised Convolutional Autoencoder.} + \label{tab:performance_semi_supervised_autoencoder} \end{table} \bigskip -The results for the semi-supervised \acrshort{vae} are illustrated in~\autoref{tab:performance_convolutional_vae} and visualized by~\autoref{fig:SemiSupervisedLatentSpace}. As one can immediately see, the feature thin is adequately mapped to a decisive region in latent space. For the other features, no such clear cut clustering is visible. Reconstructions indicate that the main purpose of the network of predicting the input images is accomplished successfully although the reconstructions look rather uniform. Values for accuracy and sensitivity indicate only poor performance. Sensitivity is only above zero for the features rusty body (0.42), thin (0.54) and bent (0.1). +The results for the semi-supervised \acrshort{vae} are illustrated in~\autoref{tab:performance_convolutional_vae} and visualized by~\autoref{fig:SemiSupervisedLatentSpace}. As one can immediately see, the feature thin is adequately mapped to a decisive region in latent space. For the other features, no such clear cut division is visible. Reconstructions indicate that the main purpose of the network of predicting the input images is accomplished successfully although the reconstructions look rather uniform. Values for accuracy and sensitivity indicate only poor performance. Sensitivity is only above zero for the features rusty body (0.42), thin (0.54) and bent (0.1). -Compared to the variational autoencoder for semi-supervised learning, the simple convolutional autoencoder for semi-supervised learning performs better. However, there are substantial potentials for improvements. \autoref{tab:performance_semi_supervised_autoencoder} shows a summary of results. Violet detection is not successful at all, as indicated by a sensitivity of zero. For the other features that the network was trained on, mediocre results are achieved. Thickness detection shows little sensitivity (0.04), however a high specificity (1.0). Better results in sensitivity exist for bent (0.18) rusty body (0.42), and short spears (0.6). The specificity for rusty body is lower (0.6) as compared to named other features (1.0 and 0.96). Thin spears are detected in 76\% of all cases and few false positives characterize the detection of named feature (0.97 specificity). +Compared to the variational autoencoder, the simple convolutional autoencoder performs better for semi-supervised learning. However, there are substantial potentials for improvements. \autoref{tab:performance_semi_supervised_autoencoder} shows a summary of results. Violet detection is not successful at all, as indicated by a sensitivity of zero. For the other features that the network was trained on, mediocre results are achieved. Thickness detection shows little sensitivity (0.04), however a high specificity (1.0). Better results in sensitivity exist for bent (0.18) rusty body (0.42), and short spears (0.6). The specificity for rusty body is lower (0.6) as compared to named other features (1.0 and 0.96). Thin spears have the highest sensitivity (0.76) and a high specificity as well (0.97). \bigskip The approach for semi-supervised learning presented here faces two challenges. First, the networks are trained only on one perspective although labels are attributed per asparagus spear -- that is, for three concatenated images only one label exists. Information that might only be visible on one or two out of the three perspectives cannot be mapped to the desired target category. Image-wise labels would be desirable to improve the approach. -Second, reconstructions using convolutional autoencoders contain little detail. However, small details in the image, such as small brown spots that indicate rust, play an important role for classification. These features are not sufficiently reconstructed by the \acrshort{vae}. Arguably, they are hence not reflected in the sparse representation that corresponds to latent layer activations. One may speculate that a substantial increase of the network size would help to reconstruct more details and hence extract more features. As \acrfullpl{gan} are known to generate more detailed images~\citep{bao2017cvae} they could possibly be adopted for semi-supervised asparagus classification with greater success. However, this is a question that must be answered empirically. +Second, reconstructions using convolutional autoencoders contain little detail. However, small details in the image, such as small brown spots that indicate rust, play an important role for classification. These features are not sufficiently reconstructed by the \acrshort{vae}. Hence, they are not reflected in the sparse representation that corresponds to latent layer activations. One may speculate that a substantial increase of the network size would help to reconstruct more details and thereby extract more features. As \acrfullpl{gan} are known to generate more detailed images~\citep{bao2017cvae} they could possibly be adopted for semi-supervised asparagus classification with greater success. However, this is a question that must be answered empirically. \bigskip -In summary, one may conclude that automatic retrieval of sparse representations with autoencoders appears as an alternative to manual feature engineering (rule based retrieval of sparse representations) if a large data set is available and only a subset contains labeled samples. However, more research is necessary to find best suitable network structures for asparagus classification. +In summary, one may conclude that automatic retrieval of sparse representations with autoencoders appears as an alternative to manual feature engineering if a large data set is available and only a subset contains labeled samples. However, more research is necessary to find best suitable network structures for asparagus classification. \ No newline at end of file diff --git a/documentation/report/Chapters/Conclusion.tex b/documentation/report/Chapters/Conclusion.tex index 4cddb06..3f44878 100644 --- a/documentation/report/Chapters/Conclusion.tex +++ b/documentation/report/Chapters/Conclusion.tex @@ -4,27 +4,29 @@ \section{Conclusion} \label{ch:Conclusion} -In the scope of our project, we sucessfully adopted various classical as well as deep learning based computer vision approaches to classify asparagus spears according to their descriptive features or class labels. After collecting images, labeling, and processing the data, different trainable models were implemented from the fields of supervised learning, unsupervised learning and semi-supervised learning. +In the scope of our project, we successfully adopted various classical as well as deep learning based computer vision approaches to classify asparagus spears based on their descriptive features or class labels. After collecting images, labeling, and processing the data, different trainable models were implemented from the fields of supervised learning, unsupervised learning and semi-supervised learning. \bigskip -We could prove that computer vision and machine learning based techniques are practicable for the asparagus classification problem. +We could prove that computer vision and machine learning based techniques are practicable for the asparagus classification problem as they can be performed in a suitable time and our exploratory analysis yields promising results. -Our explorative study gave the possibility of a better overview on which techniques seem promising for asparagus classification and which might not need to be pursued in the future. As a next step, we would concentrate on using binary feedforward \acrshortpl{cnn} because they offer a flexible and simple solution. Additional fine-tuning of the architecture to fit the individual needs of the to-be-predicted features (or class labels) and further preprocessing of the data will improve the network (as demonstrated in \autoref{subsec:FeatureEngineering}). Considering the amount of labeled data that is available, unsupervised and semi-supervised approaches gave some insight into the data but, in the end, they were more effortful to implement while not promising much better results. If there had been less labeled data, these approaches might have been more useful than approaches relying on labeled data. +Our explorative study gave the possibility of a better overview on which techniques seem promising for asparagus classification and which might not need to be pursued in the future. Considering the amount of labeled data that is available, unsupervised and semi-supervised approaches gave some insight into the data but, in the end, they were more effortful to implement while not promising much better results than the supervised approaches. If there had been less labeled data, these approaches might have been more useful than approaches relying on labeled data. -Whether we have succeeded in improving the currently running sorting algorithm can not be said, yet. In cooperation with the local asparagus farm Gut Holsterfeld and the manufacturer of the asparagus sorting machine Autoselect ATS II, a method for evaluation can now be developed. +Whether we have succeeded in improving the currently running sorting algorithm can not be said, yet. In cooperation with the local asparagus farm Gut Holsterfeld and the manufacturer of the asparagus sorting machine Autoselect ATS II, an implementation into the existing system can take place now and a method for evaluation can be defined. \bigskip -Due to the direct start of the harvesting season at the beginning of the project, the sorting machine and the hardware setup had to be used as available (see also \autoref{sec:DiscussionMethodology}). However, improvements were discussed with the manufacturer of the machine. +Due to the direct start of the harvesting season at the beginning of the project, the sorting machine and the hardware setup had to be used as available (see also \autoref{sec:DiscussionMethodology}). However, possible improvements were discussed with the manufacturer of the machine. -A second camera to capture the head of the asparagus is needed in particular\footnote{This is already the case for newer versions of the Autoselect ATS II like the one at Querdel’s Hof.} which is reflected in our results. Especially for features like flower or rusty head, an additional head camera helps greatly with the classification (as shown in \nameref{subsec:HeadNetwork}). Another camera taking an image from the bottom of the spear could improve the detection of the feature hollow.\footnote{These cameras are already part of new asparagus sorting hardware like the one mentioned here: \url{https://www.neubauer-automation.de/uk/asparagus-sorting-machine-espaso-technicaldata.php}}Additional perspectives of the hole asparagus spears give more usable information to determine certain features more accurately. For example differences in lighting and reflection can carry useful information about the shape. +A second camera to capture the head of the asparagus is needed in particular\footnote{This is already the case for newer versions of the Autoselect ATS II like the one at Querdel’s Hof.} which is reflected in our results. Especially for features like flower or rusty head, an additional head camera helps greatly with the classification (as shown in \nameref{subsec:HeadNetwork}). Another camera taking an image from the bottom of the spear could improve the detection of the feature hollow.\footnote{These cameras are already part of new asparagus sorting hardware like the one mentioned here: \url{https://www.neubauer-automation.de/uk/asparagus-sorting-machine-espaso-technicaldata.php} (visited on 04/28/2020)} Additional perspectives of the whole asparagus spears provide more information to determine certain features more accurately. For example, differences in lighting and reflection can carry useful information about the shape. -To further improve the setup, it is also conceivable that other sensor systems, such as laser technology, could help to find relevant properties for asparagus classification \citep{bhargava2018fruits}. As mentioned in the \nameref{ch:Discussion}, the most crucial component for improving future asparagus sorting with the Autoselect ATS II is a further development of the setup. This requires hardware changes to the sorting machine and is therefore beyond the scope of our project. +As mentioned in the \nameref{ch:Discussion}, the most crucial component for improving future asparagus sorting with the Autoselect ATS II is a further development of the setup. To improve the setup, it is conceivable that other sensor systems, such as laser technology to measure the exact size, could help to find relevant properties for asparagus classification \citep{bhargava2018fruits}. As this requires hardware changes to the sorting machine it is beyond the scope of our project. \bigskip Another claim that we started to address in the \nameref{sec:DiscussionMethodology} -is that the asparagus classification varies between different farms. Further it also varies within one farm throughout the harvesting season. For example, one request of the farmer of Gut Holsterfeld is to have the possibility to sort asparagus in a higher category if weather conditions reduce the usual amount of high quality asparagus. In order to meet this requirement, manual adjustment of parameters and a smooth transition for several features is needed. At the moment this is impossible with most contemporary neural networks. Since there is the temporal, sequential component of the harvesting season, it may be worthwhile to consider \acrshortpl{lstm} in combination with \acrshortpl{cnn}. According to the literature there are still many wide possibilities, for example applying bayesian networks learning. +is that the asparagus classification varies between different farms. Further, it also varies within one farm throughout the harvesting season. For example, one request of the farmer of Gut Holsterfeld is to have the possibility to sort asparagus in a better category if weather conditions reduce the usual amount of high quality asparagus. In order to meet this requirement, manual adjustment of parameters and a smooth transition for several features is needed. At the moment this is impossible with most contemporary neural networks. Since there is the temporal, sequential component of the harvesting season, it may be worthwhile to consider \acrshortpl{lstm} in combination with \acrshortpl{cnn}. According to the literature, there is still a wide range of possibilities, for example applying bayesian networks learning. +\bigskip +If this work will be followed by another project, the collected images, the different datasets and also the hand label app can be used for further approaches. Access to all images and the datasets can be gained through the university server.\footnote{ Until 01/31/2021, it can be accessed via \\ /net/projects/scratch/summer/valid\textunderscore until\textunderscore 31\textunderscore January\textunderscore 2021/jzerbe.} The documentation of the different datasets and the hand label app can be found in this report. The code can be found in our github repository.\footnote{ at \url{https://github.com/CogSciUOS/asparagus} (as of 11/27/2020)} A time-consuming part of our project was to collect data and explore different computer vision and machine learning approaches. A follow-up project could directly focus on developing and evaluating end-to-end pipelines for asparagus classification. Our results suggest using a binary feedforward \acrshortpl{cnn} would be a promising starting point for future work, because we have enough labeled data, and they offer a flexible and simple solution. Additional fine-tuning of the architecture to fit the individual needs of the to-be-predicted features (or class labels) and further preprocessing of the data will improve the network (as demonstrated in \autoref{subsec:FeatureEngineering}). The exploratory approaches from this project should be looked at for inspiration, but the unsupervised and semi-supervised approaches are not suggested to be continued. If additional labeled data is wanted, the hand label app can be used.\footnote{The code can be found at our Github repository at \url{https://github.com/CogSciUOS/asparagus/tree/FinalProject/labeling/hand\textunderscore label\textunderscore assistant} (as of 11/27/2020).} To finalize the project, the finished algorithm should be integrated into the sorting machine and evaluated in the real life setting. \bigskip -In conclusion, we can confirm that modern approaches from computer vision and machine learning bear huge potential for the improvement of asparagus classification. Effective means of agile development allow for efficient collaboration in the production of the respective implementations. We demonstrated that the algorithms we selected could be used not only for scientific purposes but also in industrial applications. We strongly believe, machine learning approaches can help to improve the classification of asparagus into commercial quality classes. \ No newline at end of file +In conclusion, we can confirm that modern approaches from computer vision and machine learning bear huge potential for the improvement of asparagus classification. We demonstrated that the algorithms we selected and adapted from scientific purposes could also be used in industrial applications. We strongly believe, machine learning approaches can help to improve the classification of asparagus into commercial quality classes. \ No newline at end of file diff --git a/documentation/report/Chapters/Dataset.tex b/documentation/report/Chapters/Dataset.tex index b388ce2..30a5d06 100644 --- a/documentation/report/Chapters/Dataset.tex +++ b/documentation/report/Chapters/Dataset.tex @@ -7,36 +7,36 @@ \section{Preprocessing and data set creation} In this chapter, the different preparatory steps for the recorded data are described, including the creation of a data set which is usable for any machine learning or computer vision approach to analyze the image data. In~\ref{sec:Preprocessing}~\nameref{sec:Preprocessing} the data is assessed and simplified for any further processing. The second section,~\ref{sec:AutomaticFeatureExtraction}~\nameref{sec:AutomaticFeatureExtraction}, deals with the creation of feature scripts that were researched and implemented for an automatic recognition of single features. -The results were combined in an application which is described in detail in~\ref{sec:LabelApp}~\nameref{sec:LabelApp}. In~\ref{sec:ManualLabeling}~\nameref{sec:ManualLabeling}, the process of hand-labeling the images for their feature class with the label application is described, followed by a section analyzing the results and comparing the overall agreement of the labelers. The last section~\ref{sec:AsparagusDataSet}~\nameref{sec:AsparagusDataSet} concludes with the creation of the final data set, used for the later training of the neural networks and other approaches to detect the label of a spear from its three images. +The results were combined in an application which is described in detail in~\ref{sec:LabelApp}~\nameref{sec:LabelApp}. In~\ref{sec:ManualLabeling}~\nameref{sec:ManualLabeling}, the process of hand-labeling the images for their features with the label application is described, followed by a section analyzing the results and comparing the overall agreement of the labelers. The last section~\ref{sec:AsparagusDataSet}~\nameref{sec:AsparagusDataSet} concludes with the creation of the final data set, used for the training of the neural networks and other approaches to detect the label of a spear from its three images. \begin{figure}[!hb] - \centering - \includegraphics[width=0.98\textwidth]{Figures/chapter03/working_steps.png} - \decoRule - \caption[Working Steps from Data Collection to Classification]{\textbf{Working Steps from Data Collection to Classification}~~~All in all, 578226 unlabeled images were collected. Additionally, 13271 images with a class label were collected (see \autoref{tab:LabeledClassNumber} for the number of images per class label). The collected images go through different preprocessing steps. The preprocessed images are then taken as input to the computer vision based feature extraction algorithms. The preprocessed images and the computer vision based, extracted measures are taken as input to the hand-label app. By the help of the application, features are manually labeled by seven annotators. Agreement measures are calculated to compare agreement across annotators. The preprocessed images, plus the computer vision based features, plus the manual labels are taken to create different datasets, which are further used for the different classification approaches.} - \label{fig:WorkingSteps} + \centering + \includegraphics[width=0.98\textwidth]{Figures/chapter03/working_steps.png} + \decoRule + \caption[Working Steps from Data Collection to Classification]{\textbf{Working Steps from Data Collection to Classification}~~~Overall, 578226 unlabeled images were collected. Additionally, 13271 images with a class label were collected (see \autoref{tab:LabeledClassNumber} for the number of images per class label). The collected images go through different preprocessing steps. The preprocessed images are then taken as input to the various algorithms implemented in this project. Further, the preprocessed images combined with the computer vision based, extracted features (see \autoref{sec:AutomaticFeatureExtraction}) are taken as input to the hand-label app. With the help of the application, features are manually labeled by seven annotators. Agreement measures are calculated to compare agreement across annotators. The preprocessed images, the computer vision based features, and the manual labels are taken to create different datasets, which are further used for the different classification approaches.} + \label{fig:WorkingSteps} \end{figure} \subsection{Preprocessing} \label{sec:Preprocessing} -Before implementing any approach that allows to predict a label to an asparagus spear, the recorded image data has to go through multiple preprocessing steps. +Before implementing any approach, the recorded image data has to go through multiple preprocessing steps. The goal of this preprocessing is to reduce the variance by removing the background, shifting the asparagus spear to the center of the image patch and rotating it upwards. Correct orientation is especially important to make approaches such as \acrshort{pca} applicable and facilitates direct measuring of features. Background removal facilitates the measurement of features like width and height of the spears, because the position of foreground pixels per column can be easily evaluated (see \autoref{sec:AutomaticFeatureExtraction}). -In the following, the different preprocessing steps are elaborated in detail.\footnote{See \url{https://github.com/CogSciUOS/asparagus/blob/FinalProject/preprocessing/perform\_preprocessing.py}} +In the following, the different preprocessing steps are elaborated in detail.\footnote{See \url{https://github.com/CogSciUOS/asparagus/blob/FinalProject/preprocessing/perform\textunderscore preprocessing.py} (as of 11/27/2020)} \bigskip -As described in~\autoref{sec:DataCollection}, each asparagus can be found in three pictures, one in each of the three positions – left, center and right. The image names are used to find the three relevant images and determine in which position the asparagus is captured. The images are cut into three pieces and renamed in a way that makes clear which images belong together. Each asparagus gets a unique identification number and the three perspectives are denoted with textit{a} for left, textit{b} for center, and textit{c} for right. For example, the texttt{image 42\_b.png} is the center image of the asparagus spear with the identification number 42. +As described in~\autoref{sec:DataCollection}, each asparagus is depicted in three pictures, one in each of the three positions \textendash{} left, center and right. The image names are used to find the three relevant images and determine in which position the asparagus is captured. The images are cut into three pieces and renamed in a way that makes clear which images belong together. Each asparagus gets a unique identification number and the three perspectives are denoted with \textit{a} for left, \textit{b} for center, and \textit{c} for right. For example, the \texttt{image 42\textunderscore b.png} is the center image of the asparagus spear with the identification number 42. -Another step is to remove the background of the image. As the conveyor belt is blue, there is a high contrast to the bright asparagus spears which facilitates background removal (see \autoref{fig:PreprocessingCropping}). Hence, it is possible to mask the asparagus spear using the hue of the HSV representation of each image. All pixels with a blue hue and very dark regions are marked as background through threshold limitation of the value component. This is particularly important for the automatic feature extraction (see~\autoref{sec:AutomaticFeatureExtraction}). +Another step is to remove the background of the image. As the conveyor belt is blue, there is a high contrast to the bright asparagus spears which facilitates background removal (see \autoref{fig:PreprocessingCropping}). Hence, it is possible to mask the asparagus spear using the hue of the HSV representation of each image. All pixels with a blue hue and very dark regions are marked as background through threshold limitation of the value component. This is particularly important for the automatic feature extraction (see~\autoref{sec:AutomaticFeatureExtraction}). \begin{figure}[!ht] \centering \includegraphics[width=0.98\textwidth]{Figures/chapter03/preprocessing_pipeline.png} \decoRule - \caption[Preprocessing Pipeline]{\textbf{Preprocessing Pipeline}~~~The depiction shows the preprocessing pipeline that was used to generate different datasets. For each asparagus spear three images were saved. Downscaled versions were computed for each image dataset. A: The processing steps to retrieve full-scale images with and without background. B: The approach to retrieve color palette images and color histograms by feature engineering. C: Processing steps for the retrieval of partial angles. For details on B and C see also \autoref{subsec:FeatureEngineering}.} + \caption[Preprocessing Pipeline]{\textbf{Preprocessing Pipeline}~~~The depiction shows the preprocessing pipeline that was used to generate different datasets. For each asparagus spear three images were saved. Downscaled versions were computed for each image dataset. A: The processing steps to retrieve full-scale images with and without background. B: The approach to retrieve color palette images and color histograms by feature engineering. C: Processing steps for the retrieval of partial angles. For details on B and C see also \autoref{subsec:FeatureEngineering}.} \label{fig:PreprocessingPipeline} \end{figure} @@ -49,13 +49,13 @@ \subsection{Preprocessing} \end{figure} \bigskip -Subsequently, each triple of images that depict one piece from different angles is determined and the area that shows the correct piece is cropped. The cropping regions are set to three patches that are a little larger than the compartments of the conveyor belt. They are located such that they cover the spear of interest which can either be at the left, center or right (see \autoref{fig:ExampleImagesAnna}). As it has been found that some tilted spears span across the borders between the conveyor compartments, the cropping window in the images was moved. The new coordinates are determined by shifting the center of the current cropping box horizontally to the center of mass of the contained foreground pixels (see \autoref{fig:PreprocessingCropping}). Repeating the procedure in a second iteration can further improve the result. As this is the case for few examples only we refrained from doing so to increase processing speed. Small parts of the neighboring depiction potentially end up in the region of interest as well. These remainders are removed by masking out all pixels that do not belong to the main blob of connected pixels. +Subsequently, each triple of images that depict one piece from different angles is determined and the area that shows the correct piece is cropped. The cropping regions are set to three patches that are a little larger than the compartments of the conveyor belt. They are located such that they cover the spear of interest which can either be at the left, center or right (see \autoref{fig:ExampleImagesAnna}). As it has been found that some tilted spears span across the borders between the conveyor compartments, the cropping window in the images was moved. The new coordinates are determined by shifting the center of the current cropping box horizontally to the center of mass of the contained foreground pixels (see \autoref{fig:PreprocessingCropping}). Repeating the procedure in a second iteration can further improve the result. As this is the only case for a small number of examples we refrained from doing so to increase processing speed. Small parts of the neighboring depiction potentially end up in the region of interest as well. These remainders are removed by masking out all pixels that do not belong to the main blob of connected pixels. \bigskip To further reduce the variance the asparagus spears are rotated upwards to reduce the variance in angle. The rotation angle is achieved by binarizing the image into foreground and background pixels, calculating the centerline as the mean pixel location along the vertical axis, and fitting linear regression to the centerline pixels. \bigskip -Another preprocessing step, which generates an additional set of images, is quantization using a common color palette. It was mainly employed to allow for the computation of meaningful color histograms.\footnote{ The number of colors in the original 24 bit RGB colorspace is too large to use them as bins for the histograms: The low number of pixels per bin would not allow for meaningful statistics. By reducing the number of colors the problem is solved.} An appropriate palette and the respective mapping of RGB values to palette colors is determined using clustering in color space. First, a set of RGB tuples is collected by adding pixel values of 10000 asparagus spears. Second, the resulting list of RGB tuples is converted to an image such that a palette can be determined using standard tools for quantization. In the last step a clustering algorithm is employed that determines the position of cluster centers while maximizing the maximal coverage. The resulting cluster centers can be displayed as a list of RGB values which represent the color palette.\footnote{Here we used a standard implementation for image quantization that employs a maximal coverage algorithm ~\citep{pil_quantization}. An optimal solution to the problem of maximum coverage relates to the challenge of distributing a given number of circular areas named facilities such that they cover the largest possible area of the sample space ~\citep{zarandi2011large}. One can interpret the centers of named facilities as cluster centers. For each data point (here: pixel), the closest cluster center is determined and the respective value attributed. This means the data is quantized.} The color palette is used for quantization of the images: Each image of the downscaled data set is transformed to the palette representation. Visual inspection shows little quality loss such that it can be assumed that the relevant information for image classification is well preserved. +Another preprocessing step, which generates an additional set of images, is quantization using a common color palette. It was mainly employed to allow for the computation of meaningful color histograms.\footnote{The number of colors in the original 24 bit RGB colorspace is too large to use them as bins for the histograms: The low number of pixels per bin would not allow for meaningful statistics. By reducing the number of colors the problem is solved.} An appropriate palette and the respective mapping of RGB values to palette colors is determined using clustering in color space. First, a set of RGB tuples is collected by adding pixel values of 10000 asparagus spears. Second, the resulting list of RGB tuples is converted to an image such that a palette can be determined using standard tools for quantization. In the last step, a clustering algorithm is employed that determines the position of cluster centers while maximizing the maximal coverage. The resulting cluster centers can be displayed as a list of RGB values which represent the color palette.\footnote{Here we used a standard implementation for image quantization that employs a maximal coverage algorithm ~\citep{pil_quantization}. An optimal solution to the problem of maximum coverage relates to the challenge of distributing a given number of circular areas named facilities such that they cover the largest possible area of the sample space ~\citep{zarandi2011large}. One can interpret the centers of named facilities as cluster centers. For each data point (here: pixel), the closest cluster center is determined and the respective value attributed. This means the data is quantized.} The color palette is used for quantization of the images: Each image of the downscaled data set is transformed to the palette representation. Visual inspection shows little quality loss such that it can be assumed that the relevant information for image classification is well preserved. \bigskip Several additional collections of preprocessed images are computed based on the data without background. This holds for downscaled versions as well as for a version that contains the asparagus heads only. To compute the latter, the images are padded to avoid sampling outside of the valid image boundaries and the uppermost foreground row is detected. Subsequently, the center pixel is determined and the image is cropped such that this uppermost central pixel of the asparagus is the center of the uppermost row of the snippet. The resulting partial images of asparagus heads are rotated using the centerline regression approach described above. The approach has proven reliable and the resulting depictions are used to train a dedicated network for head related features (see~\autoref{subsec:HeadNetwork}). @@ -70,10 +70,10 @@ \subsection{Feature extraction} \bigskip We decided to label the images for their features rather than final class labels. The main reason for this was to make the labeling process easier for the inexperienced annotator. The boundaries between class labels are not always clear and can be difficult to detect from image data. Deciding whether a single feature is present or absent in an asparagus spear is more straightforward. Further, the training for the hand labeling and communication about special cases is facilitated. Another reason to label features rather than class labels was to break down the classification problem into smaller problems. Additionally, it is possible to detect which features are more difficult to learn than others, which provides meaningful insight into the classification task. Last but not least, deciding on the class labels after the features are detected reliably is a small step and can be easily done with a decision tree or rule-based approach. -Even though the chosen features closely resemble the class labels defined by Gut Holsterfeld, they are different and should not be confused with one another. The 6 features we labeled by hand are as follows: hollow, flower, rusty body, rusty head, bent and violet. Additionally, the length and width was automatically detected as described below and used to set supplementary labels for very thick, medium thick, thick, thin, very thin and for fractured. Further, images that could not be classified thoroughly were labeled as ``not classifiable’’ (e.g.\ when the spear is cut off the image). +Even though the chosen features closely resemble the class labels defined by Gut Holsterfeld, they are different and should not be confused with one another. The 6 features we labeled by hand are as follows: hollow, flower, rusty body, rusty head, bent and violet. Additionally, the length and width was automatically detected as described below and used to set supplementary labels for very thick, medium thick, thick, thin, very thin, and fractured. Further, images that could not be classified thoroughly were labeled as \enquote{not classifiable} (e.g.\ when the spear is cut off the image). \bigskip -In this chapter, the different features as well as their extraction methods will be described. The results that are achieved by computationally extracting the features are reported alongside future steps that could be taken to improve the results further. For each feature detection method, the images with removed background are used as is displayed in a respective example image shown per feature. Additionally, it is described which features were hand labeled by us. The feature functions, that provide reliable predictions, were integrated into an application, which is described in the subsequent \autoref{sec:LabelApp}, with which human annotators could manually label the unlabeled data. +In this chapter, the different features as well as their extraction methods will be described. The results that are achieved by computationally extracting the features are reported alongside future steps that could be taken to improve the results further. For each feature detection method, the images with removed background are used as displayed in a respective example image shown per feature. Additionally, it is described which features were hand labeled by us. The feature functions, that provide reliable predictions, were integrated into an application, which is described in the subsequent \autoref{sec:LabelApp}, with which human annotators could manually label the unlabeled data. \subsubsection{Length} @@ -82,7 +82,7 @@ \subsubsection{Length} The length detection described in the following paragraph was later used to automatically calculate the presence of the feature fractured in an image. An asparagus spear includes the feature fractured if it is broken or if it does in any other way not fulfill the required, minimal length of 210 mm (see \autoref{fig:ExampleFractured}). \bigskip -The length detection uses a pixel-based approach. It counts the number of rows from the highest to the lowest pixel that is not a black background pixel and therefore not zero. The asparagus is rotated upwards, as described in~\autoref{sec:Preprocessing}. This is done to improve the results, as the rows between the highest and the lowest pixel are counted and not the pixels themselves. This technique is a simplification, which does not represent curved asparagus very well, because it will have a shorter count than it would have if the pixels were counted along the asparagus spear. +The length detection uses a pixel-based approach. It counts the number of rows from the highest to the lowest pixel that is not a black background pixel and therefore not zero. The asparagus is rotated upwards, as described in~\autoref{sec:Preprocessing}. This is done to improve the results, as the rows between the highest and the lowest pixel are counted and not the pixels themselves. This technique is a simplification, which does not represent curved asparagus accurately, because it will have a shorter count than it would have if the pixels were counted along the asparagus spear. \begin{wrapfigure}{!I}{0.35\textwidth} \begin{center} @@ -93,38 +93,36 @@ \subsubsection{Length} \label{fig:ExampleFractured} \end{wrapfigure} -However in reality, there are not a lot of asparagus spears close to the decision boundary between a fractured spear and a whole spear. Usually, the asparagus is harvested a few centimeters longer than necessary and then cut to the desired length. The only asparagus shorter than that length are the ones that break during the sorting process. Moreover, if they break, they generally break closer to the center of the asparagus rather than at the ends. Therefore, the difference in length detection does not matter for our classification. +However in reality, there are not a lot of asparagus spears close to the decision boundary between a fractured spear and a whole spear. Usually, the asparagus is harvested a few centimeters longer than necessary and then cut to the desired length. The only asparagus shorter than that length are the ones that break during the sorting process. Moreover, if they break, they generally break closer to the center of the asparagus rather than at the ends. Therefore, the difference in length detection does not matter for our purposes. \bigskip -All in all, by visual inspection the length detection yields good results that are very helpful for the hand-label app. The next step would be to train a decision boundary that determines which number of pixels should be the threshold to differentiate between fractured and not fractured. At first, we tried to calculate this threshold by finding a conversion factor from pixel to millimeter, as we know the cut off in millimeters. But this approach appeared to be more difficult than anticipated, because the conversion factor varies in the different image positions. This problem only became apparent after the asparagus season had ended, for which reason we could not reproduce the camera calibrations in retrospective in order to take well-measured images, for example from a chessboard pattern. Accordingly, the threshold needs to be deduced from the data manually or learned with a machine learning approach. +All in all, by visual inspection the length detection yields good results that are very helpful for the hand-label app. The next step would be to train a decision boundary that determines which number of pixels should be the threshold to differentiate between fractured and not fractured. At first, we tried to calculate this threshold by finding a conversion factor from pixel to millimeter, as we know the cut off in millimeters. But this approach appeared to be more difficult than anticipated, because the conversion factor varies in the different image positions. This problem only became apparent after the asparagus season had ended, for which reason we could not reproduce the camera calibrations in retrospective in order to take well-measured images. Accordingly, the threshold needs to be deduced from the data manually or learned with a machine learning approach. \begin{wrapfigure}{!I}{0.35\textwidth} \centering \includegraphics[width=0.15\textwidth]{Figures/chapter03/example_img_thick.png} - \caption[Example Image Not Classifiable]{ \textbf{Feature Not Classifiable} \\ Example image for the feature not classifiable. Further, a difference in width of the asparagus is observable.} + \caption[Example Image Not Classifiable]{ \textbf{Feature Not Classifiable} \\ Example image for the feature not classifiable. Further, a difference in width of both asparagus is observable but the exact thickness is hard to determine by view alone.} \label{fig:ExampleThickness} - \vspace{-10pt} + \vspace{-15pt} \end{wrapfigure} \subsubsection{Width} \label{subsec:Width} -Like the length of a spear, thickness is a feature that is hardly recognizable by view alone. Fortunately, it could also be automatically extracted with a classical approach described in the following section. +Like the length of a spear, thickness is a feature that is hardly recognizable by view alone (see for example \autoref{fig:ExampleThickness}). Fortunately, it can also be automatically extracted with a classical approach described in the following section. \bigskip The division into different ranges of width can be inferred by the overall thickness of the spear. The feature ‘very thick’ is attributed to asparagus that is more than 26 mm in width. The feature ‘thick’ corresponds to 20 -- 26 mm, the feature ‘medium thick’ to 18 -- 20 mm, and the feature ‘thin’ to 16 -- 18 mm. Every asparagus with less than 16 mm in width is described with the feature ‘very thin’. \bigskip -The width detection uses a very similar approach as the length detection. It takes the pixel count from the left-most to the right-most pixel in a certain row as a width measure. But in contrast to the length, the width was measured at several image rows from which the mean width was taken. Since the width detection works reliably, it is integrated in the hand-label app (see \autoref{sec:LabelApp}). +The width detection uses a very similar approach as the length detection. It takes the pixel count from the left-most to the right-most pixel in a certain row as a width measure. But in contrast to the length, the width is measured at several image rows from which the mean width is taken. Since the width detection works reliably, it is integrated in the hand-label app (see \autoref{sec:LabelApp}). -The algorithm operates as follows: Firstly, the images are binarized into foreground and background, which means setting all pixels that are not zero, and therefore not background, to one. After that, the uppermost foreground pixel is detected and the length is calculated with the length detection function as described above. The length of the asparagus is used to divide it into even parts. This is done by determining a start pixel and dividing the remaining rows that contain foreground pixels by the number of positions one wants to measure at. This way several rows are selected in which the number of foreground pixels is counted. One can interpret each row as a cross-section of the asparagus, therefore the number of foreground pixels is a direct measure for the width. Then, the mean of these counts is calculated and used as the final width value. As the head of the asparagus can be of varying form and does not represent the width of the whole asparagus well, it is excluded from the measure. This is done by selecting a start pixel below the head area instead of naively choosing the uppermost pixel. To be precise, the start pixel is chosen 200 pixels, which corresponds to roughly 25 mm, below the uppermost pixel in order to bypass the head area with certainty. As described in the section \nameref{subsec:Length}, also the width detection might lead to slightly different outcomes on curved asparagus spears than the true values. Again, this difference is regarded as irrelevant in our case. +The algorithm operates as follows: Firstly, the images are binarized into foreground and background, which means setting all pixels that are not zero, and therefore not background, to one. After that, the uppermost foreground pixel is detected and the length is calculated with the length detection function as described above. The length of the asparagus is used to divide it into even parts. This is done by determining a start pixel and dividing the remaining rows that contain foreground pixels by the number of positions one wants to measure at. This way several rows are selected in which the number of foreground pixels is counted. One can interpret each row as a cross-section of the asparagus, therefore the number of foreground pixels is a direct measure for the width. Then, the mean of these counts is calculated and used as the final width value. As the head of the asparagus can be of varying form and does not represent the width of the whole asparagus well, it is excluded from the measure. This is done by selecting a start pixel below the head area instead of naively choosing the uppermost pixel. To be precise, the start pixel is chosen at 200 pixels, which corresponds to roughly 25 mm, below the uppermost pixel in order to bypass the head area with certainty. As described in the section \nameref{subsec:Length}, also the width detection might lead to slightly different outcomes on curved asparagus spears than the true values. Again, this difference is regarded as irrelevant in our case. \subsubsection{Rust} \label{subsec:Rust} -The feature rust is split into the (sub-) features rusty body (see \autoref{fig:ExampleRustyBody}) and rusty head (see \autoref{fig:ExampleRustyHead}), because in the case of rust being only on the body, it is removable by peeling. Rust at the top part of the spear cannot be removed without damaging the head. Thus, rust on the head region is a decisive factor for the quality and later categorization into a price class. - \begin{wrapfigure}{!I}{0.35\textwidth} \begin{center} \includegraphics[width=0.15\textwidth]{Figures/chapter03/example_img_rustybody.png} @@ -135,6 +133,8 @@ \subsubsection{Rust} \label{fig:ExampleRustyBody} \end{wrapfigure} +The feature rust is split into the sub-features rusty body (see \autoref{fig:ExampleRustyBody}) and rusty head (see \autoref{fig:ExampleRustyHead}). Rust only covering the body can be removed. Whereas rust at the top part of the spear cannot be removed without damaging the head. Thus, rust on the head region is a decisive factor for the quality and later categorization into a price class. + If a spear has rust, it is visible as a dark brown color. It often starts at the tips of becoming leaves or at the bottom part. The color is not to be confused with bruises, pressure marks, or a slightly yellow complexion, which can occur in a ripe asparagus. The latter coloring is neglected. Rust is set to be present even when only the tip of a leaf shows a dark spot. Other brownish bruises are not classified as rust. @@ -157,7 +157,7 @@ \subsubsection{Rust} Visual inspection shows that the rust detection algorithm works well to detect rusty areas and barely misses any rusty parts. The difficulty lies in setting a threshold for the number of pixels needed to be classified as rusty. Only clusters of brown pixels are reliable indicators for rust. Many pixels with a brown color distributed over the whole spear are not supposed to be classified as rust. It might be the case that a simple pixel count is not sufficient to set a classification threshold. More sophisticated approaches to detect clusters, such as morphological operators, could be beneficial for this feature detection. It remains unsolved to set a robust threshold that works well on the whole data set. \bigskip -One problem that cannot be solved algorithmically is dirt in the sorting machine. If the machine is not cleaned thoroughly and regularly, dirt can be falsely classified as rust because it often falls in the same color range. Another problem can be a change of lighting when taking the images. Both issues can be controlled for, but have to be communicated well to the farmers. +One problem that cannot be solved algorithmically is dirt in the sorting machine. If the machine is not cleaned thoroughly and regularly, dirt can be falsely classified as rust because it obtains the same color range. Another problem can be a change of illumination when taking the images as a small change in illumination can produce a large change in the appearance of a spear. \subsubsection{Violet} @@ -178,12 +178,12 @@ \subsubsection{Violet} \end{wrapfigure} \bigskip -According to the UNECE-norm asparagus of the highest quality grade may only be marginally violet or not violet at all ~\citep{unspargelnorm}. Hence it is crucial to sort asparagus pieces according to this binary attribute. In a simple procedure color hues are evaluated. More precisely, this strategy is based on evaluating histograms of color hues that are calculated for foreground pixels of the asparagus images after converting them to the HSV color space. Pale pixels are removed from the selection by thresholding based on the value component of the HSV representation. Finding the optimal threshold has proven difficult because of named subjectivity in color perception. A threshold of 0.3 for the value component is considered a good compromise: If applied, white and slightly rose pixels are masked out. All three perspectives are taken into account to compute a single histogram per asparagus spear. A score is calculated by summing up the number of pixels that lie within the violet color range. A second threshold is used as the decision boundary for violet detection. The direct and intuitive feedback in the hand-label app showed the relation between varying thresholds and the prediction. It could be seen that lowering the threshold also means that the feature extractor becomes more sensitive at the price of a reduced specificity. Best overall matches (accuracies) with the subjective perception are found for very low thresholds. In many cases, however, measurements based on this definition of violet do not match the feature label attributed by human coders. +According to the UNECE-norm asparagus of the highest quality grade may only be marginally violet or not violet at all ~\citep{unspargelnorm}. Hence it is crucial to sort asparagus pieces according to this binary attribute. In a simple procedure color hues are evaluated. More precisely, this strategy is based on evaluating histograms of color hues that are calculated for foreground pixels of the asparagus images after converting them to the HSV color space. Pale pixels are removed from the selection by thresholding based on the value component of the HSV representation. Finding the optimal threshold has proven difficult because of named subjectivity in color perception. A threshold of 0.3 for the value component is considered a good compromise. All three perspectives are taken into account to compute a single histogram per asparagus spear. A score is calculated by summing up the number of pixels that lie within the violet color range. A second threshold is used as the decision boundary for violet detection. The direct and intuitive feedback in the hand-label app showed the relation between varying thresholds and the prediction. It could be seen that lowering the threshold also means that the feature extractor becomes more sensitive at the price of a reduced specificity. Best overall matches (accuracies) with the subjective perception are found for very low thresholds. In many cases, however, measurements based on this definition of violet do not match the feature label attributed by human coders. -Hence, another sparse descriptor is derived from the input images. Instead of setting thresholds for pale values and calculating the histograms of color hues, this approach relies directly on the colors that are present in the depiction of an asparagus spear. As the 24 bit representations contain a vast amount of color information in relation to the number of pixels, it is, however, unfeasible to use these as input. Instead, the color palette images can be used. Histograms of palette images can serve as the basis to define the feature violet in a way that captures more of the initial color information. At the same time it is simple and understandable enough to allow for customizations by users of sorting algorithms or machines. As a consensus regarding such an explicit definition is hard to achieve and somewhat arbitrary, the descriptor is used to learn implicit definitions of the feature through examples (see~\autoref{subsec:FeatureEngineering}). +Hence, another sparse descriptor is derived from the input images. This approach relies directly on the colors that are present in the depiction of an asparagus spear. As the 24 bit representations contain a vast amount of color information in relation to the number of pixels, it is, however, unfeasible to use these as input. Instead, the color palette images can be used. Histograms of palette images can serve as the basis to define the feature violet in a way that captures more of the initial color information. At the same time it is simple and understandable enough to allow for customizations by users of sorting algorithms or machines. As a consensus regarding such an explicit definition is hard to achieve and somewhat arbitrary, the descriptor is used to learn implicit definitions of the feature through examples (see~\autoref{subsec:FeatureEngineering}). \bigskip -The lack of a formal definition for violet asparagus spears has proven to be a major challenge to approaches of measuring this feature. It has been shown that directly measuring whether an asparagus spear is violet heavily depends on the definition of this feature. It is to mention that color impression is highly subjective across and even within subjects ~\citep{luo2000review}. Effects of meta contrast that make minor variations in color more visible arguably affected the attribution of labels when many similar spears were assessed in succession ~\citep{reeves1981metacontrast}. Using machine learning can help to find the definition that generalizes best over varying color perceptions and retrieve objective rules to measure the degree to which an asparagus is violet. In other words, the task of establishing a rule that is a good compromise for several human attributors is shifted to an optimization algorithm. Hence, machine learning approaches that are trained on human labeled data appear to be more promising. +The lack of a formal definition for violet asparagus spears has proven to be a major challenge to approaches of measuring this feature. It has been shown that directly measuring whether an asparagus spear is violet heavily depends on the definition of this feature. It is to mention that color impression is highly subjective across and even within subjects ~\citep{luo2000review}. Effects of meta contrast that make minor variations in color more visible affected the attribution of labels when many similar spears were assessed in succession ~\citep{reeves1981metacontrast}. Using machine learning can help to find the definition that generalizes best over varying color perceptions and retrieve objective rules to measure the degree to which an asparagus is violet. In other words, the task of establishing a rule that is a good compromise for several human attributors is shifted to an optimization algorithm. Hence, machine learning approaches that are trained on human labeled data appear to be more promising. The automatic detection of the feature violet was integrated into the hand-label app as a helper function for the human annotators. @@ -191,7 +191,7 @@ \subsubsection{Violet} \subsubsection{Curvature} \label{subsec:Curvature} -The curvature score of an asparagus image is expected to automatically detect the presence of the feature bent. The function was used as a help to the human annotators during the manual labeling with the hand-label app. +The curvature score of an asparagus image is expected to automatically detect the presence of the feature bent. The function was used to help the human annotators during the manual labeling with the hand-label app. \begin{wrapfigure}{!I}{0.35\textwidth} \begin{center} @@ -203,7 +203,7 @@ \subsubsection{Curvature} \end{wrapfigure} \bigskip -An asparagus is categorized as having the feature bent, if the shape of the asparagus is curved and not straight (see \autoref{fig:ExampleBent}). +An asparagus is categorized as having the feature bent, if the shape of the asparagus is curved rather than straight (see \autoref{fig:ExampleBent}). If it is only slightly curved but can otherwise be thought of as straight -- that means fitting next to other straight spears without standing out -- it is labeled as straight. If the spear looks close to the same on all three pictures regarding its shape, it might indicate that it is heavily bent and therefore cannot be turned on the machine’s conveyor belt. @@ -214,12 +214,12 @@ \subsubsection{Curvature} Multiple curvature scores can easily be computed based on regression fits to the centerline of an asparagus spear. For example, the parameters of linear or polynomial regression can be interpreted as a description of how bent an asparagus spear is. \bigskip -Deriving sparse descriptions is based on a two-stage approach. In the first stage, the centerline of an asparagus spear is computed because it is considered to be a good description of the curvature of asparagus spears. In each image the asparagus spear is roughly vertically oriented. This means that also for bent spears the head relies within the top center of the image (see \autoref{sec:Preprocessing}). The centerline is computed by binarizing the image into foreground and background and computing the mean of pixel locations along the vertical axis (i.e.\ for each row). The resulting binary representation shows a single pixel line. It serves as the input to the second stage of curvature estimation. +Deriving sparse descriptions is based on a two-stage approach. In the first stage, the centerline of an asparagus spear is computed because it is considered to be a good description of the curvature of asparagus spears. In each image the asparagus spear is roughly vertically oriented. This means that also for bent spears the head lies within the top center of the image (see \autoref{sec:Preprocessing}). The centerline is computed by binarizing the image into foreground and background and computing the mean of pixel locations along the vertical axis (i.e.\ for each row). The resulting binary representation shows a single pixel line. It serves as the input to the second stage of curvature estimation. In the second stage, curves are fit to the pixel locations of the centerline. For a simple score, linear regression is employed and the sum of squared errors is thresholded and interpreted as a curvature score. This score is small for perfectly straight asparagus spears and increases the more bent an asparagus is. As an S-shaped asparagus is arguably perceived as bent even when the overall deviations from the center line are small, a second descriptor was computed as the ratio between the error of a linear fit and polynomial regression of degree three. Thresholding values and employing a voting scheme for the results for all three perspectives yields a rule to measure curvature (e.g.\ at least one of the three perspectives indicates that the asparagus is bent). However, it has again proven difficult to set thresholds appropriately to reliably capture the visual impression. Hence, another sparse representation was calculated by dividing the spears into several segments and fitting linear regression to each segment. A \acrfull{mlp} was trained on the resulting 18 angles per asparagus (see~\autoref{subsec:FeatureEngineering}). \bigskip -Calculating a score for curvature is fast and efficient. While the respective approach is suitable to define curvature, it does not necessarily meet up with the subjective perception of how bent an asparagus appears. Just like histograms of palette images, curvature scores are the results of feature engineering: The use of extensive domain knowledge to filter relevant features~\citep{zheng2018feature}. They can serve as an input to a machine learning approach that maps this sparse representation to the target categories (see~\autoref{subsec:FeatureEngineering}). +Calculating a score for curvature is fast and efficient. While the respective approach is suitable to define curvature on a technical level, it does not necessarily meet up with the subjective perception of how bent an asparagus appears. Just like histograms of palette images, curvature scores are the results of feature engineering: The use of extensive domain knowledge to filter relevant features~\citep{zheng2018feature}. They can serve as an input to a machine learning approach that maps this sparse representation to the target categories (see~\autoref{subsec:FeatureEngineering}). \begin{wrapfigure}{!I}{0.35\textwidth} \begin{center} @@ -238,7 +238,7 @@ \subsubsection{Flower} When a bud is in full bloom, it is clearly visible. However, it can be quite difficult to distinguish between an asparagus with clearly cut but closed petals and an asparagus that has just begun to develop a flower. It was decided to label the feature as absent when the asparagus does not clearly show the characteristic flower. With this decision, we aimed to reduce the correspondence error between annotators. \bigskip -The implementation of the flower detection function turned out to be difficult to realize. Several approaches have been tested, but none of them generated sufficiently good results. Two main notions were tried. The first approach uses the shape of the head as an indicator for a flower. The idea is that asparagus spears with a flowery head exhibit a less closed head shape. In other words, the head looks less round and has no smooth outline, but shows fringes. The second approach focuses on the structure within the head. Supposedly, asparagus with flowery heads exhibit more edges and lines in the head area. In both cases, it is challenging to find a way to discriminate between asparagus with and without flowery heads. One reason for that is the poor resolution of the camera that is installed in the sorting machine. With a pixel to millimeter ratio of around four to one\footnote{The ratio was not calculated by us but is an information provided by the manufacturer \citep{autoselectanleitung}.}, it is even difficult to detect flowers with the human eye. Likewise, the current software in the machine struggles greatly with the classification of this feature as well. +The implementation of the flower detection function turned out to be difficult to realize. Several approaches have been tested, but none of them generated sufficiently good results. Two main notions were tried. The first approach uses the shape of the head as an indicator for a flower. The idea is that asparagus spears with a flowery head exhibit a more open head shape. In other words, the head looks less round and has no smooth outline, but shows fringes. The second approach focuses on the structure within the head. Supposedly, asparagus with flowery heads exhibit more edges and lines in the head area. In both cases, it is challenging to find a way to discriminate between asparagus with and without flowery heads. One reason for that is the poor resolution of the camera that is installed in the sorting machine. With a pixel to millimeter ratio of around four to one\footnote{The ratio was not calculated by us but is an information provided by the manufacturer \citep{autoselectanleitung}.}, it is even difficult to detect flowers with the human eye. Likewise, the current software in the machine struggles greatly with the classification of this feature. \begin{wrapfigure}{!I}{0.35\textwidth} \begin{center} @@ -254,13 +254,13 @@ \subsubsection{Flower} \subsubsection{Hollow} \label{subsec:Hollow} -It was not possible to us to implement the feature hollow in an automatic, classical computer vision approach. Thus, only labels from the human annotators are available for this feature. +It was not possible for us to implement the feature hollow in an automatic, classical computer vision approach. Thus, only labels from the human annotators are available for this feature. \bigskip The feature hollow indicates if the spear has a cavity inside. -This might be expressed by a bulgy center and a line running vertically along the spear’s body. Another, more distinct indicator is when the asparagus looks like two spears fused together, forming a single asparagus (see \autoref{fig:ExampleHollow}). A hollow asparagus can be confused with a very thick asparagus. +This might be expressed by a bulgy center and a line running vertically along the spear’s body. Another, more distinct indicator is an asparagus that looks like two spears fused together (see \autoref{fig:ExampleHollow}). A hollow asparagus can be confused with a very thick asparagus. -The feature can be easily checked when you have physical access to the asparagus. If the asparagus is actually hollow, it will have a hole at its bottom that is noticeable when turning the spear around. Unfortunately, this cannot be done when only looking at the spears from the side. The feature hollow sometimes occurs without showing a clear line or obvious bulge at its center. Therefore, there is a high risk of wrong classification. +The feature hollow can occur without showing a clear line or obvious bulge at its center. Therefore, there is a high risk of wrong classification.The feature can be easily checked when you have physical access to the asparagus. If the asparagus is actually hollow, it will have a hole at its bottom. Unfortunately, this cannot be discovered when only looking at the spears from the side. \subsubsection{Not classifiable} @@ -268,7 +268,7 @@ \subsubsection{Not classifiable} The feature not classifiable is no feature to an asparagus per se. It is therefore not implemented as an automatic feature extraction approach. However, it is integrated into the hand-label application and can be selected by the human annotators if applicable. -That is, whenever the spear is unrecognizable, the head part of the spear was severed, two spears were present in one picture (as in \autoref{fig:ExampleThickness}), the spear was cut off by the image, or other unusual circumstances occurred, it falls into the category of being unclassifiable. +That is, whenever the spear is unrecognizable, the head part of the spear is severed, two spears are present in one picture (as in \autoref{fig:ExampleThickness}), the spear is cut off by the image, or other unusual circumstances occurred, it falls into the category of being unclassifiable. \subsection{The hand-label app: A GUI for labeling asparagus} @@ -286,7 +286,7 @@ \subsubsection{Motivation} \bigskip The options to reduce the variance and hence the need to attribute labels to a very large number of samples are limited. We employed preprocessing and manual feature engineering to reduce the variance and tested strategies on the algorithmic domain such as unsupervised and semi-supervised learning as they promise to work with relatively few labels (see \autoref{sec:SemiSupervisedLearning} and \autoref{subsec:FeatureEngineering}). Nonetheless for training and more importantly performance evaluation of machine learning models a substantial amount of labels are required. Otherwise quality metrics such as accuracies, sensitivity and specificity cannot be calculated. Hence labels had to be manually attributed. -Annotating labels manually requires plenty of effort. \blockquote{Data set annotation and/or labeling is a difficult, confusing and time consuming task} \citep[p.~2]{al2018labeling}. Human performance is often acknowledged as the baseline or ``gold standard’’ that image classifiers are evaluated by. Hence, in many scenarios data is labeled by humans such that machine learning algorithms can be applied. This holds especially for image classification.\footnote{For example the performance of GoogLeNet is compared to human level performance using the ImageNet data set \citep{russakovsky2015imagenet}.} In the present case some features were reliably measurable by means of classical computer vision algorithms (e.g.\ the width or the length). For features such as a flower or the evaluation whether or not a spear is affected by rust, this has proven to be difficult (see \autoref{subsec:Rust}). Considering the amount of data that could potentially be labeled, a custom interface is required that allows for time efficient attribution of labels. +Annotating labels manually requires plenty of effort. \blockquote{Data set annotation and/or labeling is a difficult, confusing and time consuming task} \citep[p.~2]{al2018labeling}. Human performance is often acknowledged as the baseline or \enquote{gold standard}’. Especially for image classification human labeled data is used.\footnote{For example the performance of GoogLeNet is compared to human level performance using the ImageNet data set \citep{russakovsky2015imagenet}.} Considering the amount of data that has to be labeled, a custom interface is required that allows for time efficient attribution of labels. We decided to attribute labels for each of the previously described features other than the width and the length to at least 10000 asparagus spears (and hence evaluate 30000 images). This means that several ten thousand judgements had to be made which highlights the importance of a tool that allows to make this process as quick as possible. @@ -294,37 +294,33 @@ \subsubsection{Motivation} \subsubsection{The Labeling Application} \label{subsec:LabelApp} -A custom application was built aiming for a quick and intuitive labeling process.\footnote{ See \url{https://github.com/CogSciUOS/asparagus/tree/FinalProject/labeling/hand\_label\_assistant}} Questions appear alongside depictions of an asparagus spear and the user answers them using the designated buttons or keys. Once all questions are answered the next asparagus appears automatically and the procedure is repeated. To assist the users in their judgement some automatically extracted features such as the length or width of the asparagus spear as well as a color histogram is displayed. +A custom application was built aiming for a quick and intuitive labeling process.\footnote{ See \url{https://github.com/CogSciUOS/asparagus/tree/FinalProject/labeling/hand\_label\_assistant} (as of 11/27/2020)} Questions appear alongside depictions of an asparagus spear and the user answers them using the designated buttons or keys. Once all questions are answered the next asparagus appears automatically and the procedure is repeated. To assist the users in their judgement some automatically extracted features such as the length or width of the asparagus spear as well as a color histogram are displayed. \begin{figure}[!htb] - \centering - \includegraphics[scale=0.3]{Figures/chapter03/labelapp_example.png} - \decoRule - \caption[The Labeling Dialog of the Hand-Label App]{\textbf{The Labeling Dialog of the Hand-Label App}~~~The depiction shows the main dialog used for labeling. In the left part you can see all three available images (perspectives) for the asparagus with the ID 40. The current question that targets at one of the features of interest is displayed in the area below the images. They are phrased such that the user can answer them with yes or no using the respective buttons or keyboard controls. On the right side you can see the results of the automatic feature extraction. The upper right panel shows the histogram of color hues.} - \label{fig:LabelAppGUI} + \centering + \includegraphics[scale=0.3]{Figures/chapter03/labelapp_example.png} + \decoRule + \caption[The Labeling Dialog of the Hand-Label App]{\textbf{The Labeling Dialog of the Hand-Label App}~~~The depiction shows the main dialog used for labeling. In the left part all three available images (perspectives) for the asparagus are shown with the ID 40. The current question that targets at one of the features of interest is displayed in the area below the images. They are phrased such that the user can answer them with yes or no using the respective buttons or keyboard controls. The results of the automatic feature extraction are displayed on the right side. The upper right panel shows the histogram of color hues.} + \label{fig:LabelAppGUI} \end{figure} -The app comprises two user interfaces: A startup window that allows for a preview of asparagus images and the attributed labels (represented by Ui\textunderscore Asparator) and the main labeling interface (Ui\textunderscore LabelDialog) (see \autoref{fig:LabelAppDiagram}). Using the labeling interface is possible only after the user selects the source folder of images and specifies or loads a file that contains the attributed labels. This ensures that the file paths for input and output are set. A dictionary that maps indices to images can be parsed from file names and the minimum index is determined. As such, the label dialog and the respective controller class always reside in a valid initial state. For labeling, the user answers questions that are displayed alongside the images that depict each asparagus spear from three perspectives. This can be done using the respective buttons or the arrow keys (see \autoref{fig:LabelAppGUI}). The result is saved and the next question will automatically appear upon answering. +The app comprises two user interfaces: A startup window that allows for a preview of asparagus images and the attributed labels (represented by Ui\textunderscore Asparator) and the main labeling interface (Ui\textunderscore LabelDialog) (see \autoref{fig:LabelAppDiagram}). Using the labeling interface is possible only after the user selects the source folder of images and specifies or loads a file that contains the attributed labels. This ensures that the file paths for input and output are set. A dictionary that maps indices to images can be parsed from file names and the minimum index is determined. As such, the label dialog and the respective controller class always reside in a valid initial state. For labeling, the user answers questions that are displayed alongside the images. The result is saved and the next question will automatically appear upon answering. -Automatic feature detection can be selected as an alternative for manual labeling for specific features. The result is displayed and saved to a file. This flexible approach was chosen as it is initially unclear and disputed in how far automatic feature extraction yields results that meet up with the individual, subjective perception. It also allowed to improve automatic feature extraction methods and to develop a direct intuition for the relation to the data. On top of that, it has proven to be useful for debugging automatic feature extraction methods that initially failed for some images. +Automatic feature detection can be selected as an alternative for manual labeling for specific features. The result is displayed and saved to a file. This flexible approach was chosen as it was initially unclear and disputed in how far automatic feature extraction yields satisfying results. Further, it allowed to improve automatic feature extraction methods and to develop an intuition for the characteristics of the features. On top of that, it has been proven to be useful for debugging. \bigskip -The development of the app was accompanied by three major challenges. First, handling a large data set of several hundred gigabytes that is accessible in a network drive. Second, changing requirements that resulted from group decision processes with respect to automatic feature extraction as well as from unforeseen necessities in (parallel) preprocessing. This required substantial changes of the initial architecture and the reimplementation of parts of the code. The third challenge is related to the question of the handling of internal states of the app. The latter may be further explained in the following. - -Internal states of the app are handled such that it is possible for the user to navigate into invalid states for which no images are available. Note that preprocessing was done such that each asparagus spear has a unique identification number and a specifier for perspectives textit{a}, textit{b} and textit{c} in it’s filename. While generally the identification numbers are in a continuous range from zero to n, some indices are missing. As preprocessing jobs were scheduled to run in parallel and preprocessing failed for few corrupted files, it has proven almost inevitable to end up with some few missing indices although a dictionary of input filename and output filename was passed to each grid job. In addition, the large amount of data did not allow to save all files in a single directory. In summary, this means that one could not simply iterate over asparagus identification numbers (represented by the state of a spin box in the user interface), determine the file path, and display the related images. Instead, parsing file names from a slow network drive is necessary which requires limiting the number of selected images. As GUI elements such as spin boxes and keyboard controls allow for setting an integer, and it was a requirement that this integer relates to the asparagus identification number, one ends up with the following situation: Either one prevents that the asparagus identification number is set or incremented freely to a value that does not exist, or one allows to navigate into an invalid state. The latter solution was considered to be easier and thus implemented.\footnote{The earlier approach showed to have several implementation specific drawbacks. Note for example that upon entering multiple digits in an input field, an event is triggered multiple times. Upon entering the value 10 for the asparagus identification number, one ends up with the value being set to 1 before being set to 10 where 1 relates to a potentially missing identification number. This means the user cannot freely enter IDs because setting them to certain values is impossible.} Hence, all cascades of methods of the app including preprocessing functions that require the respective images as an input were adjusted such that they can handle this case. +The development of the app was accompanied by three major challenges. First, handling a large data set of several hundred gigabytes that is accessible in a network drive. Second, changing requirements that resulted from group decisions. This required substantial changes of the initial architecture and the reimplementation of parts of the code. The third challenge is related to the question of the handling of internal states of the app. +Internal states of the app are handled such that it is possible for the user to navigate into states for which no images are available. All cascades of methods of the app including preprocessing functions that require the respective images as an input are adjusted such that they can handle this case. The architecture is beneficial as it allows the user to manually iterate over asparagus IDs without being interrupted because an ID relates to an invalid or missing file. It was chosen over alternatives to handle invalid states as it was considered the easiest to implement and meets requirements given by the PyQt framework. \begin{figure}[!t] - \centering - \includegraphics[scale=0.3]{Figures/chapter03/label_app_diagram.png} - \decoRule - \caption[UML Diagram for the Hand-Label App]{\textbf{UML Diagram for the Hand-Label App}~~~The depiction shows the class diagram for the hand-label app in \acrshort{uml}.} - \label{fig:LabelAppDiagram} + \centering + \includegraphics[scale=0.3]{Figures/chapter03/label_app_diagram.png} + \decoRule + \caption[UML Diagram for the Hand-Label App]{\textbf{UML Diagram for the Hand-Label App}~~~The depiction shows the class diagram for the hand-label app in \acrshort{uml}.} + \label{fig:LabelAppDiagram} \end{figure} -The app is implemented using the PyQt5 framework\footnote{see \url{https://pypi.org/project/PyQt5/}} while coarsely following the model, view controller principle. Model and controller are not strictly separate and thus no distinct model class or database is used. Instead the labels are managed as a Pandas DataFrame and serialized as a csv-file. Upon state change (i.e.\ index increment), images are loaded from the network drive that is mounted on the level of the operating system. The views are designed using QtDesigner. Four manually coded classes are essential for the architecture of the app: (1) The class HandLabelAssistant in which the PyQt5 app is instantiated, (2) the controllers MainApp and (3) LabelingDialog as well as (4) Features which is member class of the latter. Features is of type QThread and represents the API to the automatic feature extraction methods in FeatureExtraction. Ui\textunderscore Asparator, UiLabelDialog and classes for file dialogs represent the views. A class ImageDisplay is required to display images with the correct aspect ratio. \autoref{fig:LabelAppDiagram} shows the \acrshort{uml} class diagram alongside methods and attributes that are considered relevant to understand the architecture of the app. - -\bigskip -Developing a custom app for the labeling process required substantial time resources. However, it was found that existing solutions did not meet the specific requirements. Our custom hand-label app allowed us to attribute labels to more than 10000 asparagus spears in a manageable amount of time. Details of the manual labeling process are described in the next section. +The app is implemented using the PyQt5 framework\footnote{see \url{https://pypi.org/project/PyQt5/} (visited on 04/24/2020)} while coarsely following the model, view controller principle. Model and controller are not strictly separated and thus no distinct model class or database is used. Instead the labels are managed as a Pandas DataFrame and serialized as a csv-file. Upon state change (i.e.\ index increment), images are loaded from the network drive that is mounted on the level of the operating system. The views are designed using QtDesigner. Controller classes, utility classes for feature extraction (Features) and a custom ImageDisplay were manually implemented. \autoref{fig:LabelAppDiagram} shows the \acrshort{uml} class diagram. \subsection{Manual labeling} @@ -332,9 +328,6 @@ \subsection{Manual labeling} In this section, the process and the results of manually labeling the data with the help of the hand-label app is laid out. The labeling criteria which allocate each spear to a single quality class were explained in the subsections of the section \nameref{sec:AutomaticFeatureExtraction}. The outcome of the labeling process and one approach to measure the agreement of the manual labeling will be described in the following subsections. -\bigskip -The images were labeled for their features by all members of the group with the hand-label app (described in \autoref{sec:LabelApp}). As none of the team members were experts in asparagus labeling, a general guideline for the feature labeling had to be established (see \autoref{sec:AutomaticFeatureExtraction}). The guideline was written in accordance with the owner of the asparagus farm Gut Holsterfeld, Mr. Silvan Schulze-Weddige. He was consulted in all questions regarding the labeling of the asparagus. - \begin{figure}[!htb] \centering \vspace{20pt} @@ -350,15 +343,16 @@ \subsection{Manual labeling} \includegraphics[width=0.80\linewidth]{Figures/chapter03/diff-img-violet.png} \caption{violet?} \end{subfigure} - \caption[Examples of Critical Images]{\textbf{Examples of Critical Images}~~~Three examples of asparagus are shown where the corresponding feature label is difficult to determine -- thus, a critical decision has to be made. Image (A) displays an asparagus that shows a slight S-curve, however, not very strongly. It might be labeled as being bent or as not being bent by the annotator. Images (B) and (C) show asparagus with brown spots which can be judged as rust or as pressure marks (no rust), again depending on the annotator. Additionally, it is not obvious whether the asparagus in (B) exhibits a flower or whether the spear in (C) is of violet color at the head region.} + \caption[Examples of Critical Images]{\textbf{Examples of Critical Images}~~~Three examples of asparagus are shown where the corresponding feature label is difficult to determine -- thus, a critical decision has to be made. Image (A) displays an asparagus that shows a slight S-curve, however, not very strong. It might be labeled as being bent or as not being bent by the annotator. Images (B) and (C) show asparagus with brown spots which can be judged either as rust or as pressure marks (no rust), again depending on the annotator. Additionally, it is not obvious whether the asparagus in (B) exhibits a flower or whether the spear in (C) is of violet color at the head region.} \label{fig:CriticalExampleImages} \end{figure} -The features labeled by the human annotators included the features hollow, flower, rusty head, rusty body, bent, and violet. Additionally, the feature not classifiable could be selected and attributed to spears where a feature detection was not possible (see \autoref{subsec:NotClassifiable}). The features fractured, very thick, thick, medium thick, thin, and very thin were extracted via the automatic feature detection functions described in the respective sections for \nameref{subsec:Length} and \nameref{subsec:Width} which were integrated in the hand-label app. Other features that were integrated into the hand-label app, and which helped as an orientation to the human annotators, were the feature extraction functions for feature bent and feature violet. +\bigskip +The images were labeled for their features by all members of the group with the hand-label app (described in \autoref{sec:LabelApp}). As none of the team members were experts in asparagus labeling, a general guideline for the feature labeling had to be established (see \autoref{sec:AutomaticFeatureExtraction}). The guideline was written in accordance with the owner of the asparagus farm Gut Holsterfeld, Mr. Silvan Schulze-Weddige. He was consulted in all questions regarding the labeling of the asparagus. -General challenges in the manual labeling in front of a computer screen, including the respective image quality and the variance in the agreement of the project members, were expected from the start. As the task relies on the subjective view of individual humans, opinions about the presence or absence of features can diverge. By consulting Mr. Schulze-Weddige on difficult decision-making cases, it became clear that some examples are difficult to classify even for experts (see \autoref{fig:CriticalExampleImages}). +General challenges in the manual labeling in front of a computer screen, including the respective image quality and the variance in the agreement of the project members, were expected from the start. As the task relies on the subjective view of individual humans, opinions about the presence or absence of features can diverge. By consulting Mr. Schulze-Weddige on difficult cases, it became clear that even for experts some examples are difficult to classify from image data (see \autoref{fig:CriticalExampleImages}). -To tackle the issue and to have an overview of the general agreement of the labeling between group members, a measure was applied, namely the Kappa Agreement. The Kappa Agreement was used to assess the degree of accordance in labeling between the single members and monitor how the labeling agreement developed during the manual labeling process. +To tackle the issue and to have an overview of the general agreement of the labeling between group members, a measure was applied, namely the Kappa Agreement. The Kappa Agreement is used to assess the degree of accordance in labeling between the single members and to monitor how the labeling agreement developed during the manual labeling process. \subsubsection{Labeling outcome} @@ -366,26 +360,15 @@ \subsubsection{Labeling outcome} In this section, the process and the results of the labeling with the hand-label app are described. -The labels of all labeled images are stored in a csv-file, as shown in~\autoref{fig:CSVfileOverview}. The first entry is the image identification number. Every feature can be of value 0, value 1 or empty. Whenever a feature is present in an image, the value is set to 1. If the feature is absent, it is set to 0. For images labeled as not classifiable, all feature values remain empty. The image path to every of the three images for one spear is also saved in the label file in a separate column. After the labeling process, the individual csv-files with the labels are merged into one large \texttt{combined\_new.csv} file. The content of this file is later used for the classification of the data with the different approaches (see \autoref{ch:Classification}). It can be found in the study project’s GitHub repository.\footnote{~See \url{https://github.com/CogSciUOS/asparagus/tree/FinalProject/preprocessing/get_data}} - \begin{figure}[!ht] \centering \includegraphics[scale=0.5]{Figures/chapter03/csv_overview.png} \decoRule - \caption[Manual Labeling Output CSV-File]{\textbf{Label File}~~~The feature labels extracted by the manual labeling process were saved in a csv file. This image shows the beginning of the file \texttt{combined\_new.csv} in which all label files were later combined as one.} + \caption[Manual Labeling Output CSV-File]{\textbf{Label File}~~~The feature labels extracted by the manual labeling process are saved in a csv file. This image shows the beginning of the file \texttt{combined\textunderscore new.csv} in which all label files were later combined as one.} \label{fig:CSVfileOverview} \end{figure} -\bigskip -The manual labeling lasted over the period of November 2019 to January 2020. A session usually consisted of 500 images, with an asparagus spear being viewed in three positions. A session of labeling 500 images took between two and four hours. One minor factor sometimes influencing the time spent for labeling were difficulties with the external \acrshort{ssh} connection to the \acrshort{ikw} storage, as all images are stored on the university servers. The average time spent for labeling one asparagus is around 27 -- 48 seconds. - -All in all, 13319 triples of images were labeled for their features. There is a large variance in the presence of the features in the data as can be seen in~\autoref{tab:FeatureRepresentation}. Of the acquired 13319 images, the feature most present in the data is rusty body with 45.5\%, followed by the feature bent with 40\%. Features whose representation is below 10\% include the features violet (7.9\%), hollow (3.3\%), fractured (3.5\%), and very thick (4\%). The feature not classifiable shows least presence with 2.1\%. - -It emerges that many features are only sparsely present in the data. This poses an imbalance in the data that is relevant for later classification tasks and the usage of the data set. - -Further, every member of the group participated in the labeling but not everybody labeled the same number of images. Due to this circumstance, the labeling bias of certain members is more present in the data than of others. - -The manual labeling was stopped when the amount of classified data exceeded 13000 samples. Reason for this is that we had reached our time limit for labeling samples and needed to begin with training our classification approaches.\footnote{To have an intuition of how much labeled data we might need, we found some of the suggestions in a blogpost helpful which can be visited at \url{https://machinelearningmastery.com/much-training-data-required-machine-learning/}. However, we did not find an exact number when to stop labeling.} +The labels of all labeled images are stored in a csv-file, as shown in~\autoref{fig:CSVfileOverview}. The first entry is the image identification number. Every feature can be of value 0, value 1 or empty. Whenever a feature is present in an image, the value is set to 1. If the feature is absent, it is set to 0. For images labeled as not classifiable, all feature values remain empty. The image path to every of the three images for one spear is also saved in the label file in a separate column. After the labeling process, the individual csv-files with the labels are merged into one large \texttt{combined\textunderscore new.csv} file. The content of this file is later used for the classification of the data with the different approaches (see \autoref{ch:Classification}). It can be found in the study project’s GitHub repository.\footnote{~See \url{https://github.com/CogSciUOS/asparagus/tree/FinalProject/preprocessing/get_data} (as of 11/27/2020)} \begin{table}[!hb] \centering @@ -409,6 +392,17 @@ \subsubsection{Labeling outcome} \label{tab:FeatureRepresentation} \end{table} +\bigskip +The manual labeling took place over the period of November 2019 to January 2020. A session usually consisted of 500 images. A session of labeling 500 images took between two and four hours. The average time spent for labeling one asparagus is around 27 -- 48 seconds. + +All in all, 13319 triples of images were labeled for their features. There is a large variance in the presence of the features in the data as shown in~\autoref{tab:FeatureRepresentation}. Of the acquired 13319 images, the feature most present in the data is rusty body with 45.5\%, followed by the feature bent with 40\%. Features whose representation is below 10\% include the features violet (7.9\%), hollow (3.3\%), fractured (3.5\%), and very thick (4\%). The feature not classifiable shows least presence with 2.1\%. + +It emerges that many features are only sparsely present in the data. This poses an imbalance in the data that is relevant for later classification tasks and the usage of the data set. + +Further, every member of the group participated in the labeling but not everybody labeled the same amount of images. Due to this circumstance, the labeling bias of certain members is more present in the data than of others. + +The manual labeling was stopped when the amount of classified data exceeded 13000 samples. We had reached our time limit for labeling samples and needed to begin with training our classification approaches.\footnote{To get an intuition of how much labeled data we might need, we found some of the suggestions in a blogpost helpful which can be visited at \url{https://machinelearningmastery.com/much-training-data-required-machine-learning/} (visited on 04/29/2020). However, we did not find an exact number when to stop labeling.} + \subsubsection{Agreement Measures} \label{subsec:AgreementMeasures} @@ -416,9 +410,9 @@ \subsubsection{Agreement Measures} When different annotators label data, it is indispensable to verify the degree of agreement among raters. In order to judge how consistently the data is labeled, several statistical methods (inter-rater-reliability) can be applied. \bigskip -For the current purpose, different agreement measures, all implemented by scikit-learn, are used. The first is Cohen’s Kappa. It is seen as a more robust measure than a simple agreement percentage, such as a measure of true positives and true negatives, which was traditionally used for those cases~\citep{cohen1960coefficient}. Cohen’s Kappa is more robust, as the rate of agreement occurring by chance is included in the calculation. This method is applicable to compare the rating of two raters on a classification problem. The degree of agreement is always within $-1.0$ and 1.0 inclusive. The higher the Kappa value, the higher the agreement. Values around zero indicate no agreement and negative values indicate negative agreement which can be interpreted as systematic disagreement. Values between 0.41 -- 0.6 are seen as moderate agreement, 0.61 -- 0.8 as substantial agreement, and everything above as almost perfect agreement. All scores below 0.4 are interpreted as unacceptable \citep{mchugh2012interrater}. +For the current purpose, different agreement measures, all implemented by scikit-learn, are used. The first is Cohen’s Kappa. It is seen as a more robust measure than a simple agreement percentage, such as a measure of true positives and true negatives, which was traditionally used for those cases~\citep{cohen1960coefficient}. Cohen’s Kappa is more robust, as the rate of agreement occurring by chance is included in the calculation. This method is applicable to compare the rating of two raters on a classification problem. The degree of agreement is always within $-1.0$ and 1.0 inclusive. The greater the Kappa value, the higher the agreement. Values around zero indicate no agreement and negative values indicate negative agreement which can be interpreted as systematic disagreement. Values between 0.41 -- 0.6 are seen as moderate agreement, 0.61 -- 0.8 as substantial agreement, and everything above as almost perfect agreement. All scores below 0.4 are interpreted as unacceptable \citep{mchugh2012interrater}. -Another statistical method used to measure the agreement is the F1 score. The F1 score is used for the evaluation of binary classification. It relies on both precision as well as recall of a test. An F1 score value lies between 0.0 and 1.0 -- the higher the F1 score, the higher the agreement. +Another statistical method used to measure our agreement is the F1 score. The F1 score is used for the evaluation of binary classification. It relies on both precision as well as recall of a test. An F1 score value lies between 0.0 and 1.0 -- the greater the F1 score, the higher the agreement. Lastly, we calculated the accuracy measure. For a normalized accuracy score, the values lie between 0.0 and 1.0, and the best performance is 1.0. This measure returns the fraction of correctly classified samples. It is a less robust measure than Cohen’s Kappa score~\citep{mchugh2012interrater}. @@ -426,29 +420,29 @@ \subsubsection{Agreement Measures} \subsubsection{Reliability} \label{subsec:Reliability} -In order to evaluate the degree of agreement of our data, we made agreement measures at two points in time.\footnote{for our API documentation see \\ \url{https://asparagus.readthedocs.io/en/latest/api/measure\textunderscore agreement.html}} +In order to evaluate the degree of agreement of our data, we measured the agreement at two different points in time.\footnote{for our API documentation see \url{https://asparagus.readthedocs.io/en/latest/api/measure\textunderscore agreement.html} (as of 11/27/2020)} -The first time, six different annotators assigned feature labels to images out of each class of the pre-sorted asparagus that we obtained by running the spears through the machine twice. We ensured that always two different annotators labeled the same set of images. The Kappa scores varied strongly between groups and features from $-0.03$ to 0.76, while the accuracy scores ranged from 0.49 to 1. We were surprised that the agreement scores are low, even though the raters gave the same label to many of the asparagus spears. This is an acknowledged problem~\citep{powers2012problem,sim2005kappa,feinstein1990high,posterFlight}. +First, six annotators assigned feature labels to images out of each class of the pre-sorted asparagus that we obtained by running the spears through the machine twice. We ensured that two different annotators labeled the same set of images. The Kappa scores varied strongly between annotator pairs and features from $-0.03$ to 0.76, while the accuracy scores ranged from 0.49 to 1. We were surprised that the agreement scores are low, even though the raters gave the same label to many of the asparagus spears. This is an acknowledged problem~\citep{powers2012problem,sim2005kappa,feinstein1990high,posterFlight}. \begin{figure}[!ht] - \centering - \includegraphics[scale=0.55]{Figures/chapter03/kappa_measurewise.png} - \decoRule - \caption[Agreement Measure-Wise Comparison of all Features]{\textbf{Comparing Measures}~~~The figure shows the agreement measures accuracy, F1 and Cohen’s Kappa, separately for each manually labelled feature. Shown are the box-plots, so the middle line indicates the median, the box indicates the IQR. All scores are aggregated scores over all annotator pairs.} - \label{fig:KappaMeasurewise} + \centering + \includegraphics[scale=0.55]{Figures/chapter03/kappa_measurewise.png} + \decoRule + \caption[Agreement Measure-Wise Comparison of all Features]{\textbf{Comparing Measures}~~~The figure shows the agreement measures accuracy, F1 and Cohen’s Kappa, separately for each manually labelled feature. Shown are the box-plots, so the middle line indicates the median, the box indicates the IQR. All scores are aggregated scores over all annotator pairs.} + \label{fig:KappaMeasurewise} \end{figure} \begin{figure}[!ht] - \centering - \includegraphics[scale=0.55]{Figures/chapter03/kappa_featurewise.png} - \decoRule - \caption[Feature-Wise Comparison of Agreement Measure Scores]{\textbf{Comparing Features}~~~The figure shows each feature separately. For each feature, the corresponding accuracy, F1 and Cohen’s Kappa score is given. Shown are the box-plots, so the middle line indicates the median, the box indicates the IQR. All scores are aggregated scores over all annotator pairs.} - \label{fig:KappaFeaturewise} + \centering + \includegraphics[scale=0.55]{Figures/chapter03/kappa_featurewise.png} + \decoRule + \caption[Feature-Wise Comparison of Agreement Measure Scores]{\textbf{Comparing Features}~~~The figure shows each feature separately. For each feature, the corresponding accuracy, F1 and Cohen’s Kappa score is given. Shown are the box-plots, so the middle line indicates the median, the box indicates the IQR. All scores are aggregated scores over all annotator pairs.} + \label{fig:KappaFeaturewise} \end{figure} -One reason for our results could be that we compared the agreement class-wise. The occurrence of 1s and 0s per class is therefore very unbalanced. For Kappa scores, if the distribution of 0s and 1s is not balanced, disagreement of the underrepresented value is punished more heavily.\footnote{see also \\ \url{https://stats.stackexchange.com/questions/47973/strange-values-of-cohens-kappa}} Therefore, we decided to repeat our agreement measure feature-wise on non-labeled images, so that the annotators cannot anticipate a specific group label. In order to better understand the reliability of our data, we additionally decided to look at the accuracy score and the F1 score. Beforehand, the team labeled another 50 images all together, clarified classification boundaries again and discussed unclear images (see \autoref{fig:CriticalExampleImages}). +A reason for the variance in our results could be that we compared the agreement class-wise. Thus, the occurrence of 1s and 0s per class is very unbalanced (for example the class I~A~Anna has very few 1s because the binary features rusty head, rusty body, hollow, bent and violet are not present in this class label). For Kappa scores, if the distribution of 0s and 1s is not balanced, disagreement of the underrepresented value is punished more heavily.\footnote{see also \url{https://stats.stackexchange.com/questions/47973/strange-values-of-cohens-kappa} (visited on 04/24/2020)} Therefore, we decided to repeat the agreement measure feature-wise on non-labeled images, so that the annotators cannot anticipate a specific class label. In order to better understand the reliability of our data, we additionally decided to look at the accuracy score and the F1 score. Beforehand, the team labeled another 50 images all together, clarified classification boundaries again and discussed unclear images (see \autoref{fig:CriticalExampleImages}). -The second time, 50 images were labeled by four annotators. The agreements were measured annotator-pair-wise, and then averaged. The results in the Cohen’s Kappa score vary between and within features, and between annotator pairs as well. The highest aggregated kappa score over all annotator pairs is reached for the features flower (0.79) and hollow (0.79), then violet (0.76), rusty head (0.72), bent (0.55) and lastly for rusty body (0.47). +The second time, 50 images were labeled by four annotators. The agreements were measured annotator-pair-wise, and then averaged. The results in the Cohen’s Kappa score vary between features, and annotator pairs. The highest aggregated kappa score over all annotator pairs is reached for the features flower (0.79) and hollow (0.79), then violet (0.76), rusty head (0.72), bent (0.55) and lastly for rusty body (0.47). For the features flower, rusty head and violet, the interquartile range (IQR) is quite small, whereas the IQR for hollow, bent and rusty body is much larger (see \autoref{fig:KappaMeasurewise} and \autoref{fig:KappaFeaturewise}). The agreement scores accuracy and F1 yield very similar results. Results are slightly better than the Kappa scores, in total and for each feature. The highest median accuracy score is reached for the feature hollow (0.96), then flower (0.93), then violet (0.92), then rusty head (0.86), then bent (0.75) and then rusty body (0.74). The order is the same for the F1 scores. The median F1 scores lie between (0.71 and 0.97). @@ -460,19 +454,19 @@ \subsubsection{Reliability} \subsection{The asparagus data set} \label{sec:AsparagusDataSet} -In the following chapter, the asparagus data sets will be discussed. The data that we collected is restructured and preprocessed into several different versions which are used for the classification approaches. Further, the possibility to save a Tensor or a \texttt{TFRecord} file and the \mbox{\texttt{tf.data}} API and the \mbox{\texttt{tf.data.dataset}} API are introduced. These methods are compared and followed by a recommendation for further work with the data set. +In the following chapter, the asparagus data sets will be discussed. The data that we collected is restructured and preprocessed into several different versions which are used for the classification approaches. Further, the possibility to save a the dataset as Tensor with the numpy API or as serialized \texttt{TFRecord} files with the \mbox{\texttt{tf.data.dataset}} API are introduced. These methods are compared and followed by a recommendation for further work with the data set. -One peculiarity about our data is its variance. The differences in the features which decide the class label of an asparagus are very small. All in all, the asparagus spears look very similar. This differentiates our classification task from other examples in the literature which usually have a high inter-class difference. We decided to reduce the variance within the images even further by removing all differences that are not relevant for the classification task (see Chapter ~\ref{sec:Preprocessing}). By doing so we facilitate the learning process and help the model focus on the features that matter. +One peculiarity about our data is its variance. The differences in the features which decide the class label of an asparagus are very small. Overall, asparagus spears look very similar. This differentiates our classification task from other examples in the literature which usually have a high inter-class difference.To facilitate the learning process and help the model focus on the most important information, we removed irrelevant differences (eg. in the background) from the images. (see Chapter ~\ref{sec:Preprocessing}). \subsubsection{Description of our data set(s)} \label{subsec:DifferentDataSets} -With the help of the preprocessing as described in ~\ref{sec:Preprocessing}~\nameref{sec:Preprocessing}, the raw images are transformed and distributed into folders which serve as input for the networks. -The different data sets can be distinguished in three ways: the images have the original background or the background is removed, the asparagus spears are moved to the center of the image patch and rotated upwards or not and the images are down sampled to reduce memory consumption or in the original resolution. +With the help of the preprocessing as described in ~\ref{sec:Preprocessing}~\nameref{sec:Preprocessing}, the raw images are transformed and distributed into different folders which serve as input for the approaches. +The images in the different folders can be distinguished in three ways: the images either have the original background or the background is removed, the asparagus spears are centered and rotated upwards or not and the images are down sampled to reduce memory consumption or in the original resolution. -Further, a data set is constructed with all the labeled images in a single numpy array, which can be stored and loaded at once. As the three perspectives of each asparagus spear are concatenated horizontally, they appear to lie next to each other in the resulting image. These concatenated images are then combined to the final file. The first out of four dimensions in this file depicts the number of labeled asparagus spears. The second and third dimension represent the height and the width of the images, respectively. Further, the fourth dimension represents the three RGB values. -In addition, the images are downscaled to facilitate the training process and reduce memory consumption. Each image is downsampled by a factor of six, that means every 6th pixel is used in the reduced image. This factor can be easily changed and a new data set can be created. +One data set is constructed with all the labeled images in a single numpy array, which can be stored and loaded at once. As the three perspectives of each asparagus spear are concatenated horizontally, they appear to lie next to each other in the resulting image. These concatenated images are then combined to the final file. The first out of four dimensions in this file depicts the number of labeled asparagus spears. The second and third dimension represent the height and the width of the images, respectively. Further, the fourth dimension represents the three RGB values. +In addition, the images are downscaled to facilitate the training process and reduce memory consumption. Each image is downsampled by a factor of six, that means every 6th pixel is used in the reduced image. This factor can be easily changed to create a new data set. An additional data set is generated which contains images of the head region of the asparagus spears exclusively. This data set was used to train a dedicated network for head related features (see~\autoref{subsec:HeadNetwork}). @@ -480,17 +474,11 @@ \subsubsection{Description of our data set(s)} \subsubsection{Data set creation with Tensorflow} \label{subsec:DataSetTheory} +As pointed out before more than 800 Gigabyte (GB) of preprocessed image data was generated. This big amount of data for training and evaluation in different approaches was challenging. The main difficulty was memory management, an acceptable training time and data organisation. Especially the size and format of the image has a significant impact on our import pipeline and, therefore, on the total training time. -In the following, TensorFlow's own binary storage format \texttt{TFRecord} is introduced. This approach facilitates the mix and match of data sets and network architectures. The large amount of data that was collected has a significant impact on our import pipeline and, therefore, on the total training time. The file format is optimized for images and text data. These are stored in tuples which always consist of file and label. In our case, the difference in reading time is significant, because the data is stored in the network and not on a SSD on the local PC. The serialized file format allows the data to be streamed efficiently through the network efficiently. Another advantage is that the file is transportable over several systems, regardless of the model one wants to train. - -Two data sets are created in this file format. One with all files that were preprocessed, and another one with the preprocessed and labeled data. -The first binary file includes images with background in png format and has a size of 225 Gigabyte (GB). The \texttt{TFRecord} file does not only take up less memory capacity, but can also be read more efficiently. The second \texttt{TFRecord} file includes all labeled images and their labels. - -Working with these files simplifies the next steps of transformations. With the \mbox{\texttt{tf.data}} API complex, input pipelines from simple and reusable components are created, even for large data sets. The preferred pipeline for our asparagus project can apply complex transformations to the images and combine them into stacks for training, testing and validating in arbitrary ratios. A data set can be changed, e.g.\ by using different labels or by transformations like mapping, repeating, batching, and many others. These dozens of transformations can be combined. - -Besides the described functional transformations of the input pipeline under \mbox{\texttt{tf.data.dataset}}, an iterator gives sequential access to the elements in the data set. The iterator stays at the current position and allows to call the next element as a tuple of tensors. Initializable iterators go through the data set in parallel. In addition, different parameters are passed to start the call. This is especially handy when searching for the right parameters in parallel. +In respect to the importance of preventing any loss of information the \texttt{TFRecord} storage format was chosen to retain the data set. Two data sets are created in this file format. One with all files that were preprocessed with a size of 225 GB, and another one with the preprocessed and labeled data, respectively smaller. -In summary there are two advantages using \texttt{tf.data}. On the one hand, it is possible to build a data set with different data sources. On the other hand, there are many functional transformations and an iterator with sequential access to the data. +A detailed description of the benefits of the used data format can be found in the appendix at \autoref{subsec:BenefitsDataSet}. In summary, there are advantages using \texttt{tf.data}. On the one hand, it is possible to reduce the disk space and to read the image data faster due to an iterator with parallel and sequential access to the data. On the other hand, many functional transformations to adjust the images with custom preprocessing steps according to the approach can be used in the pipeline, as we did manually. \bigskip -Further we tried to add our data set to the \texttt{\acrshort{tfds}} \footnote{See~\url{https://www.tensorflow.org/datasets/beam\_datasets}}. \texttt{\acrshort{tfds}} enables all users to access the data set directly using the TensorFlow API. For this, we need to publish the data. However, the process of publishing the data set turned out to be too time consuming. Especially the large amount of data was a problem. Questions like: How do we deal with the fact that only a part of the images has labels? How should we pass the labels: each as a feature, in a list, or as several features? It would have been better, faster, and more helpful for the development of our network approaches, if we had continued to search and to integrate the \texttt{TFRecord} files with the \mbox{\texttt{tf.data}} API in our pipeline early. +We tried to add our data set to the \texttt{\acrshort{tfds}} \footnote{See~\url{https://www.tensorflow.org/datasets/beam\_datasets} (visited on 04/26/2020)}. \texttt{\acrshort{tfds}} enables all tensorflow users to access the data set directly using the TensorFlow API. However, the process of publishing the data set turned out to be too time consuming because of the large amount of images. In order to use the benefits of the \mbox{\texttt{tf.data}} API we should have integrated it into our pipeline at an earlier stage. \ No newline at end of file diff --git a/documentation/report/Chapters/Discussion.tex b/documentation/report/Chapters/Discussion.tex index 5cfa0ae..35b3e98 100644 --- a/documentation/report/Chapters/Discussion.tex +++ b/documentation/report/Chapters/Discussion.tex @@ -4,79 +4,74 @@ \section{Discussion} \label{ch:Discussion} -In our study project we pursued three main objectives. The main goal was to explore and implement different algorithms for asparagus classification. The second objective is closely linked to this and relates to best practices in relation to applied data science and big data. This included storage of data on remote servers and computationally expensive procedures that are required for training in the computational grid of Osnabr{\"u}ck University: The methodological aspect of our study project. As our work also served as a sample project to learn more about possibilities to effectively organize collaborative work, we also targeted a third objective, that is, the organizational aspect that is closely linked to project management. In the following, the core results with respect to these three objectives are shortly named and discussed. +In our study project we pursued three main objectives. The first one is to explore and implement different algorithms for asparagus classification. The second one is closely linked to this and relates to best practices in relation to applied data science and big data. This included storage of data on remote servers and computationally expensive procedures that are required for training in the computational grid of Osnabr{\"u}ck University: The methodological aspect of our study project. As our work also served as a sample project to learn more about possibilities to effectively organize collaborative work, we also targeted a third objective, that is, the organizational aspect such as project management. In the following, the core results with respect to these three objectives are shortly named and discussed. \subsection{Classification results} \label{sec:DiscussionResults} -Asparagus spears have several features that we aimed to extract. Some features such as the length and width of asparagus spears were undoubtedly measurable using a pure computer vision approach that does not rely on machine learning. For others, direct filtering was not easily possible because no clear cut definition of features, such as bent or violet exists, that is precise enough to be implemented directly. Although relevant information can easily be extracted, the rules to infer the desired binary features are inaccessible: On one side, decision boundaries for binary classifiers have to be found. On the other side, the perception of the features color or bent has been shown to be very subjective. Moreover, filtering features such as flower has been proven difficult. Named attribute relates to details in a few pixels, comes in different forms, and highly depends on the perspective. These are the reasons machine learning must be employed to successfully classify asparagus. +Asparagus spears have several features that we aimed to extract. Some features such as the length and width of asparagus spears were undoubtedly measurable using a pure computer vision approach that does not rely on machine learning. For others, direct filtering was not easily possible because no clear cut definition of features, such as bent or violet exists, that is precise enough to be implemented directly. Although relevant information can easily be extracted, the rules to infer the desired binary features are inaccessible: On one side, decision boundaries for binary classifiers have to be found. On the other side, the perception of the features color or bent has been shown to be very subjective. Moreover, filtering features such as flower has been proven difficult. Named attribute relates to details in a few pixels, comes in different forms, and highly depends on the perspective. These are the reasons machine learning promises better results to successfully classify asparagus from image data. We designed several neural networks and applied them in different ways to analyze and classify a large-scale asparagus image data set. Some approaches worked better than others, as can be concluded from the \nameref{ch:Summary}. \bigskip -Training \acrshort{mlp} classifiers on histograms of palette images has proven a promising approach to predict color features. Named histograms contain information about the fraction of foreground pixels that correspond to violet or rusty colors. As \acrshortpl{mlp} have few parameters, the design is rather trivial and the training process quick. The fact that predictions are far from perfect might be due to inconsistencies in the training data. One may assume, however, that the models generalize well and represent rules that relate to average opinions or definitions of highly subjective features such as color or bent. +Training \acrshort{mlp} classifiers on histograms of palette images is a promising approach to predict color features. As \acrshortpl{mlp} have fewer hyperparameters, the design is rather trivial. Moreover networks for sparse data can be very small. The fact that predictions are far from perfect might be due to inconsistencies in the training data. One may assume, however, that the models generalize well and represent rules that relate to average opinions or definitions of highly subjective features such as color or bent. \bigskip -The single-label \acrshort{cnn} for the classification of 13 features promises a flexible and easy-to-use solution. Not much preprocessing is needed\footnote{The input images are only slightly reduced in pixel size to increase training speed, however, the background is not removed.} and it is able to learn every feature. The network architecture is not aimed at a small, specific subset of only one or two features. Rather it is a basic network that could now be fine-tuned to the individual needs of each feature. +The single-label \acrshort{cnn} for the classification of 13 features promises a flexible and easy-to-use solution. Not much preprocessing is needed\footnote{The input images are only slightly reduced in pixel size to increase training speed, however, the background is not removed.} and it is able to learn every feature. The network architecture is not aimed at a small, specific subset of only one or two features. Rather it is a basic network that could now be fine-tuned to the individual needs of each feature. This would be a good starting point for a follow-up project (see \autoref{ch:Conclusion}). -As already mentioned before (like for the feature engineering network from \autoref{subsec:FeatureEngineering}), the lack of a clear threshold regarding certain features like rusty body or bent might be a factor that reduces the possible performance of the \acrshort{cnn}. The smooth transition of the presence and absence of a feature makes it more difficult to categorize images close to named transition. In contrast, the performance of the model is well on features that were previously not labeled by humans but labeled automatically, like width and length. This difference between humanly labeled and automatically labeled features is striking in the network’s results. - -A drawback of the approach is the need of more labeled data with a feature being present to make the network more robust to outliers. +As already mentioned before (like for the feature engineering network from \autoref{subsec:FeatureEngineering}), the lack of a clear threshold regarding certain features like rusty body or bent might be a factor that reduces the possible performance of the \acrshort{cnn}. The smooth transition of the presence and absence of a feature makes it more difficult to categorize images close to named transition. In contrast, the performance of the model is well on features that were previously not labeled by humans but labeled automatically, like width and length. This difference between hand-annotated and automatically labeled features is striking in the network’s results. +A drawback of the approach is the need of more labeled data with a feature being present to make the network more robust. \bigskip -Feedforward \acrshortpl{cnn} were applied to predict individual features, for multilabel prediction, and predictions based on snippets that depict asparagus heads. In addition, effects of a custom loss function were tested. Promising in the multilabel prediction is that not only individual features, but also the relation between features can be considered in the learning process. +Feedforward \acrshortpl{cnn} were applied to predict individual features, for multi-label prediction, and predictions based on snippets that depict asparagus heads. In addition, effects of a custom loss function were tested. Promising in the multi-label prediction is that not only individual features, but also the relation between features can be considered in the learning process. -Our multilabel \acrshort{cnn} reaches an accuracy up to 87\%, which seems high. However, when looking at the accuracy and loss values over time, one can see that the model does not improve much. While sensitivity and specificity improve, and therefore indicate learning, the validation loss remains high, indicating overfitting. This model seems to be especially sensitive to the imbalance between 0 and 1 in the label vectors. Concerning this, there is still room to play around with our parameters to further improve the architecture. +Our multi-label \acrshort{cnn} reaches an accuracy up to 87\%, which seems high. However, when looking at the accuracy and loss values over time, one can see that the model does not improve much. While sensitivity and specificity improve, and therefore indicate learning, the validation loss remains high, indicating overfitting. This model seems to be especially sensitive to the imbalance between 0 and 1 in the label vectors. After solving the problem of overfitting, more fine-tuning of the parameters and the network architecture could improve the performance of this approach. \bigskip Applying \acrshort{pca} on individual features and projecting the image information into a smaller dimensional subspace showed promising results. It revealed that the first principal components managed to capture most of the information. However, differences between most features seem to be too small to be adequately represented in the low dimensional space. -In this approach, the features width, length and hollow seem to be classifiable with high performance, and the features bent and rusty body seem to be most difficult. Width, length and hollow (as hollow asparagus is likely to be thick) are features that can be related to the shape and spatial appearance of the spear in the picture. This walks together with the findings that the first principle components (so the most important ones) only refer to the appearance of the asparagus in the picture and show the same picture for all asparagus. This leads to the assumption that the spatial appearance is counted as the most important feature, rather than taking the surface of the spears into account. This problem could be improved by generating pictures, where the possible asparagus positions are equally distributed over the pictures. Another reason for the similarities between the first principal component pictures is that one asparagus can have many features. Therefore the same pictures can be used for several feature \acrshortpl{pca}. As asparagus with only one present feature is rather difficult to find, another solution to solve this problem needs to be found. +In this approach, the features width, length and partly hollow seem to be classifiable with high performance, and the features bent, violet and rusty body seem to be most difficult. Width, length and hollow (as hollow asparagus is likely to be thick) are features that can be related to the shape and spatial appearance of the spear in the picture. This walks together with the findings that the first principle components only refer to the appearance of the asparagus in the picture. This leads to the assumption that the spatial appearance is counted as the most important feature, rather than taking the color and structure of the spears into account. This problem could be improved by generating pictures, where the possible asparagus positions are equally distributed over the pictures. Another reason for the similarities between the first principal component pictures is that one asparagus can have many features. Therefore the same pictures can be used for several features \acrshortpl{pca}. As asparagus with only one present feature is rather difficult to find, another solution to solve this problem needs to be found. \bigskip -Similarly, \acrlongpl{vae} were used to derive a low dimensional representation using unsupervised learning. While some features such as the width and length are mapped to clearly differentiable regions in latent asparagus space, this is not the case for many others. Only as a tendency, spears labeled as bent are for example mapped to regions in the lower periphery. Autoencoders are known for blurry reconstructions. This is a possible explanation for the lack of clusters in latent space for features that relate to details that are not sufficiently reconstructed. +Similarly, \acrlongpl{vae} were used to derive a low dimensional representation using unsupervised learning. While some features such as the width and length are mapped to clearly differentiable regions in latent asparagus space, this is not the case for many others. For example, spears labeled as bent are tendentially mapped to regions in the lower periphery. Autoencoders are known for blurry reconstructions. This is a possible explanation for the lack of clusters in latent space for features that relate to details that are not sufficiently reconstructed. \bigskip -Convolutional autoencoders were used for semi-supervised learning. However the results for this approach can be described as merely mediocre. One problem is arguably the mentioned insufficiency in reconstructing details. As details such as brown spots define target classes (e.g.\ rusty head) and they are not present in latent space. It is hard to establish a correlation of the respective latent layer activation and the target labels. Larger input image sizes or different network architectures that are suitable to reconstruct higher detail images could potentially help to improve performance of these semi-supervised learning algorithms. +Convolutional autoencoders were used for semi-supervised learning. However the results for this approach can be described as merely mediocre. One problem is arguably the mentioned insufficiency in reconstructing details. As details such as brown spots define target classes (e.g.\ rusty head) but are not present in latent space, it is hard to establish a correlation of the respective latent layer activation and the target labels. Larger input image sizes or different network architectures that are suitable to reconstruct images with higher detail could potentially help to improve performance of these semi-supervised learning algorithms. \bigskip -Detecting the feature rusty head has proven rather difficult even though a dedicated network was trained on snippets that show asparagus heads in rather high resolution. This is potentially the case because details that are hardly visible even to the human eye have to be considered that occur in different locations. Although better results are achieved for the feature flower, the same most likely holds for this category as well. In contrast, better results are achieved for features that relate to the overall shape of asparagus spears instead of fine details. This holds for the category hollow as well as for bent. Color features are detected especially well based on histograms of palette images while \acrshortpl{cnn} have proven suitable to detect shape related features. +Detecting the feature rusty head has proven rather difficult even though a dedicated network was trained on snippets that show asparagus heads in rather high resolution. This is potentially the case because some details are hardly visible even to the human eye. Although better results are achieved for the feature flower, the same holds for this category as well. Even better results are achieved for features that relate to the overall shape of asparagus spears instead of fine details. This holds for the category hollow as well as for bent. Color features are detected especially well based on histograms of palette images while \acrshortpl{cnn} have proven suitable to detect shape related features. As previously noted (i.e.\ in \autoref{subsec:FeatureEngineering} and \autoref{subsec:SingleLabel}), an obstructive factor for applications relying on labeled data proves to be the inconsistent labelling of certain data samples. Even for an expert in asparagus labeling like the owner of Gut Holsterfeld, setting a clear threshold for the absence or presence of specific features (and thus the attribution of a class label) becomes difficult in certain cases. This is partly evident in our classification approaches. Additionally, the agreement of manual annotators has to be better controlled during labeling. Thus, one suggestion for improvement would be to label the data a second time, with clear and consistent thresholds for feature presence and absence, then adapt and improve the supervised approaches. \bigskip -Our work was specially directed at the Autoselect ATS II sorting machine. Whether we have succeeded in improving its currently running sorting algorithm could not yet be clarified systematically because of a lack of time and resources for a suitable comparison and evaluation. An idea for evaluating the current sorting method and our developed methods would be to run pre-sorted asparagus through the machine, test our approaches on the generated images, and then compare the performance of both. - -During our meetings we discussed existing difficulties of evaluation. If our algorithm controls the sorting machine, new possibilities to create an evaluation are given. -One method is to measure and compare the sorting of the harvesters who control the asparagus label after it was sorted by the machine. Further methods need to be considered. If necessary, the setup for automated procedures can be extended. +Our work was specially directed at the Autoselect ATS II sorting machine. Whether we have succeeded in improving its currently running sorting algorithm could not yet be clarified systematically because of a lack of time and resources for a suitable comparison and evaluation. An idea for evaluating the current sorting method and our developed methods would be to run pre-sorted asparagus through the machine, test our approaches on the generated images, and then compare the performance of both. -In cooperation with the local asparagus farm Gut Holsterfeld and the manufacturer of the sorting machine, a concrete realization of our approaches should now be developed and tested. +In cooperation with the local asparagus farm Gut Holsterfeld and the manufacturer of the sorting machine, a concrete realization of our approaches should now be developed and tested. \bigskip -In summary, we successfully measured the width and height of asparagus spears and were able to develop detectors for the other features that performed surprisingly good, given the moderate inter-coder reliability that was partially due to unclear definitions of binary features such as bent or violet. +In summary, we successfully measured the width and height of asparagus spears and were able to develop detectors for the other features that performed surprisingly good, given the moderate inter-coder reliability that was partially due to unclear definitions of binary features such as bent or violet. Further, we provide an extensive theoretical and practical groundwork that can guide future developments of asparagus classification algorithms. \subsection{Methodology} \label{sec:DiscussionMethodology} -Looking back, there are several methodological issues, which we would process differently now. We started our study project at the beginning of April. This is as well the beginning of the asparagus harvesting season. Therefore, we were able to start collecting data straight away. On the down-side, we had to start collecting data without a detailed plan in advance. Planning the data collection ahead could have made the data acquisition more efficient, and structured. Afterwards we could not change relevant parameters to answer a lot of organizational and methodological questions such as: How much data do we need? What format do we need it in? Is autonomous calibration possible? How exactly do we store the images effectively and efficiently? Is the hardware setup as we need it? And if not, how can we improve it? What kind of measurements or changes do we want to perform with the camera? Is the illumination as we want it? Could stereo cameras or other 3D viewing techniques such as depth cameras or laser grid be used? Would we integrate an additional camera taking pictures from the bottom of the spear or from the head region separately? What should our pipeline look like? How can we get labeled data right away? +Looking back, there are several methodological issues, which we would process differently now. We started our study project at the beginning of April. This aligns with the beginning of the asparagus harvesting season. Therefore, we were able to start collecting data straight away. On the down-side, we had to start collecting data without a detailed plan. Planning the data collection ahead could have made the data acquisition more efficient, and structured. Afterwards we could not change relevant parameters to answer a lot of organizational and methodological questions such as: How much data do we need? What format and hardware setup satisfies our purpose? Is autonomous calibration possible? How exactly do we store the images effectively and efficiently? What kind of measurements or changes could be applied to the camera? Is the illumination sufficient? Could stereo cameras or other 3D viewing techniques such as depth cameras or laser grids be useful? Is it possible to integrate an additional camera to capture the bottom of the spear or the head region separately? How can we efficiently obtain labeled data? \bigskip -As already mentioned in \autoref{sec:Roadmap}, there was a misunderstanding between the group and the supporting asparagus farm about the type of data necessary. The already existing images were too few, and unlabeled. Therefore, we spent the entire asparagus season with data acquisition instead of starting with preprocessing as had been planned at project start. The number of labeled images that were collected by running pre-sorted classes though the machine is arguably insufficient to learn classes using the chosen deep learning approaches~\citep{russakovsky2013detecting,russakovsky2010attribute,how_many_images}. Therefore, a lot of time was spent on preprocessing and labeling the data manually. - -Another discussion point concerns our data. The image quality in terms of pixel size of our images is really high. Due to limited memory capacity and long runtimes of some of the tested networks, images needed to be down-sampled. Additionally, images of different file types were used (e.g.\ png, jpg), which also includes reduction in disc space. We should further investigate to what extent images can be down-sampled without losing critical information, in order to optimize the named difficulties. +As already mentioned in \autoref{sec:Roadmap}, a misunderstanding between the group and the supporting asparagus farm about the type of data necessary occured. The already existing images were too few, and unlabeled. Therefore, we spent the entire asparagus season with data acquisition instead of starting with preprocessing as planned. The number of labeled images that were collected by running pre-sorted classes though the machine is arguably insufficient to learn classes using the chosen deep learning approaches~\citep{russakovsky2013detecting,russakovsky2010attribute,how_many_images}. Therefore, additional time was spent on preprocessing and labeling the data manually. -Even though three images of every asparagus spear are given, they are all taken from the same angle – from above. In the ideal case, the asparagus spear rotates over the conveyor belt, such that each spear is depicted in the pictures from a different viewpoint. The better the asparagus rotates, the more reliable is a later judgement of the spear in terms of class labels or features. Since the rotation is often missing when the spear is too bent, an additional angle could improve the rating. Concrete ideas on how to improve the setup are given in the last chapter, \ref{ch:Conclusion}~\nameref{ch:Conclusion}. +Another discussion point concerns the data. The image quality in terms of pixel size of our images is really high. Due to limited memory capacity and long runtimes of the tested networks, images needed to be down-sampled. It should be further investigated to what extent images can be down-sampled without losing critical information. -As previously mentioned, our labels of asparagus features are partly achieved by computer vision algorithms, partly based on human perception. As previously outlined, human performance is commonly acknowledged as the baseline performance in classification tasks. While the performance of our automatic feature extraction for length and width is really high, we decided that for the features violet, rusty head, rusty body, bent, hollow, and flower a human perception would be more accurate. Even though this is commonly used as the \enquote{gold standard}, it can of course also bring more variation, and maybe even inconsistency between raters, than an algorithm. +Even though three images of every asparagus spear are given, they are all taken from above. In the ideal case, the asparagus spear rotates over the conveyor belt, such that each spear is depicted in the pictures from a different viewpoint. The better the asparagus rotates, the more reliable is a later judgement of the spear in terms of class labels or features. Since the rotation is often missing when the spear is too bent, an additional camera could improve the rating. Concrete ideas on how to improve the setup are given in the last chapter, \ref{ch:Conclusion}~\nameref{ch:Conclusion}. -As explained in the section ~\nameref{sec:Preprocessing}, during preprocessing for the labeling procedure, the three images of one asparagus spear are joined together and then labeled. Therefore, labeling was faster because three perspectives are labeled at once. However, it could also be tried to use the single perspectives and conclude the classes from a combination of the recognized features. +As previously mentioned, our labels of asparagus features are partly achieved by computer vision algorithms and partly based on human perception. Human performance is commonly acknowledged as the baseline performance in classification tasks. While the performance of our automatic feature extraction for length and width is really high, for the features violet, rusty head, rusty body, bent, hollow, and flower a human perception is more accurate. Even though this is commonly used as the \enquote{gold standard}, it holds space for variation, and maybe inconsistency between and even within raters, in contrast to an algorithm. -We kept the features binary, as this is easier to label, and easier to use for our supervised classification approaches. The down side of a binary label is, however, that a clear boundary is set, where in real life there is a smooth transition. Even for our supervising farmer, it is sometimes difficult to decide on a boundary. This is arguably due to the small differences between class labels, and vague borders between positive and negative examples. While the binary representation makes certain analyses and classification much easier, it also brings restrictions. +As explained in the section ~\nameref{sec:Preprocessing}, during preprocessing for the labeling procedure, the three images from different perspectives of one asparagus spear are labeled together. Therefore, labeling was faster. +We kept the features binary, as this is easier to label, and suitable for supervised classification approaches. The down side of a binary label is, however, that a clear boundary is set, where in real life there is a smooth transition. Even for our supervising farmer, it is sometimes difficult to decide on a boundary due to the small differences between class labels, and vague borders between positive and negative examples. While the binary representation makes certain analyses and classification much easier, it also brings restrictions. -Moreover, we observed difficulties concerning the labels in the communication between the group and the farmer. The communicated need is that the sorting algorithm works \enquote{better}. But what does that technically mean? And what is technically possible? For the farmer, the sorting would already be \enquote{better}, if the sorting mistakes would be more systematic. This would not necessarily mean that the overall accuracy of correctly sorted asparagus into one out of 13 class labels needs to improve, but that the overall impression of all spears sorted into one tray is more homogeneous. +Moreover, we observed difficulties in the communication between the group and the farmer. The goal was to improve the sorting algorithm. But what that technically refers to and what improvements are technically possible remained unclear. For example, the sorting would already be improved, if the sorting mistakes would occur more systematically. This would not necessarily mean that the overall accuracy of correctly sorted asparagus into classes is greater, but that the overall impression of all spears sorted into one tray is more homogeneous. \subsection{Organization} @@ -93,7 +88,7 @@ \subsection{Organization} Further, the strengths of the single members have to be evaluated before the project starts, so they can be used efficiently. Although, not everyone has to do the task he or she is best at. One should also have the opportunity to work on tasks that are new, challenging and interesting. It allows each member to broaden their skills and it avoids discouragement. -Finally, the team agrees to have more focus on the overall goal than only think of what directly lies ahead. For this, concrete goals have to be formulated well. Milestones or intermediate goals should be defined and evaluated more rigorously. More time has to be taken into consideration when planning ahead as well as for including adjustments. +Finally, the team agrees to focus more on the overall goal than to only think of what directly lies ahead. For this, concrete goals have to be formulated well. Milestones or intermediate goals should be defined and evaluated more rigorously. More time has to be taken into consideration when planning ahead as well as for including adjustments. \bigskip In conclusion, the experience of having two different working structures gave us the ability to compare and judge what is essential to successful teamwork. It also helped to understand how each member can contribute to the team regarding personal skills and interests, and what each member wants to improve for future teamwork. diff --git a/documentation/report/Chapters/Introduction.tex b/documentation/report/Chapters/Introduction.tex index 9476a23..b19bff6 100644 --- a/documentation/report/Chapters/Introduction.tex +++ b/documentation/report/Chapters/Introduction.tex @@ -9,9 +9,9 @@ \section{Introduction} \bigskip The aim of this study project was to investigate how techniques from computer vision, both classical and deep learning-based, can be applied to improve classification results for asparagus sorting machines. Asparagus is sorted by quality. The quality is defined based on several features that represent differences in color, shape, or texture. Hence, improving sorting algorithms for the classification of asparagus requires reliable means of measuring these features. As such, we were interested in the question of how the quality-defining features of asparagus can be estimated using state of the art computer vision and machine learning techniques. -The project was supported by a local asparagus farm and a company specializing in asparagus sorting machines. They provided training data and expertise on the classification of the asparagus. The idea to apply new machine learning approaches to a commercial problem of the agricultural industry seemed promising and challenging at the same time. As the data received from the farm was unlabeled, a larger focus on the preprocessing of the recorded image data became inevitable. Further, the variance in quality classes and the subjective view of human sorting behavior toughened the perspective on a practical application into the actual sorting machine. Nevertheless, the original goal of studying different techniques in computer vision and testing their usability in a fixed hardware setting for asparagus classification gave valuable insights into the practical application of previously theoretically assessed knowledge. +The project was supported by a local asparagus farm and a company specializing in asparagus sorting machines. They provided training data and expertise on the classification of the asparagus. The idea to apply new machine learning approaches to a commercial problem of the agricultural industry seemed promising and challenging at the same time. As the data received from the farm was unlabeled, a larger focus on the preprocessing of the recorded image data became inevitable. Further, the variance in quality classes and the subjective view of human sorting behavior toughened the perspective on a practical application into the actual sorting machine. Therefore, the goal of the project shifted to a more broadly based, exploratory study in which we developed different techniques in computer vision and tested their usability in a fixed hardware setting. This gave us valuable insights into the practical application of previously theoretically assessed knowledge. -The hands-on experience on a long-term project gave us the chance to improve our project management skills, learn how to distribute work, and how to organize ourselves in a larger team. Over the course of one year, the team members worked on the implementation of different approaches to tackle the issue of image classification. After intense engagement with the subject, the methodologies and the project outcome were documented and critically reviewed. On the following pages, the different stages of the project together with the results of the applied computer vision approaches are described in detail. The report chapters are mostly in chronological order, each with the focus on a different stage of the study project throughout the year. +The hands-on experience on a long-term project gave us the chance to improve our project management skills, learn how to distribute work, and how to organize ourselves in a larger team. Over the course of one year, the team members worked on the implementation of different approaches to tackle the issue of image classification. After intense engagement with the subject, the methodologies and the project outcome were documented and critically reviewed. On the following pages, the different stages of the project together with the results of the applied approaches are described in detail. The report chapters are mostly in chronological order, each with the focus on a different stage of the study project throughout the year. \bigskip In chapter~\ref{ch:Introduction}~\nameref{ch:Introduction}, the idea of the project is presented together with an introduction to the current standards of image classification in machine learning as well as a general background on the quality classes, the sorting process, and classification of asparagus in the agricultural industry. @@ -22,9 +22,9 @@ \section{Introduction} Chapter~\ref{ch:Classification}~\nameref{ch:Classification} constitutes the different approaches that were chosen to tackle the issue of image classification. All approaches are critically reviewed and discussed in the subchapters. An emphasis was put on the application of deep learning techniques for the classification of the asparagus. As the collected data includes labeled and unlabeled samples, methods from the range of supervised learning, semi-supervised learning, and unsupervised learning were tested. -Chapter~\ref{ch:Summary}~\nameref{ch:Summary} contains the overall results of the classification approaches. The outcome of each approach is described and compared to the other methods as well as to the original classification accuracy of the sorting machine at the asparagus farm. Further, the overall results are discussed with an evaluation of their practical application in the food industry in chapter~\ref{ch:Discussion}~\nameref{ch:Discussion}. The overall outcome of the project is judged as a scientific study and as a team management experience. +Chapter~\ref{ch:Summary}~\nameref{ch:Summary} contains the overall results of the classification approaches. The outcome of each approach is described and compared with each other as well as to the original classification accuracy of the sorting machine at the asparagus farm. Further, the overall results are discussed with an evaluation of their practical application in the food industry in chapter~\ref{ch:Discussion}~\nameref{ch:Discussion}. The overall outcome of the project is judged as an exploratory scientific study and as a team management experience. -In Chapter~\ref{ch:Conclusion}~\nameref{ch:Conclusion}, the findings are set into a broader perspective. The project and its results are summarized on a scientific basis as well as on an organizational level while the future prospects of the project are assessed. +In Chapter~\ref{ch:Conclusion}~\nameref{ch:Conclusion}, the findings are set into a broader perspective. The project and its results are summarized on a scientific basis as well as on an organizational level. As an outlook, the existing preliminary work is summed up, while the future prospects of the project are assessed by evaluating possible starting points for follow-up projects. \bigskip Before analyzing the specific context of software development for the application in classification tasks further, a thorough insight into the idea of the study project is given in the following chapter. Additionally, background on the addressed topics of machine learning and the sorting of asparagus is provided. @@ -34,19 +34,19 @@ \section{Introduction} \subsection{The project} \label{sec:Project} -The objective of the study project was to find both, conventional and deep learning computer vision-based approaches that can be tested for their practical application in the commercial sorting of white asparagus. The different methods were implemented based on the image data that was received from the automatic sorting machine Autoselect ATS II employed by the asparagus farm ``Gut Holsterfeld’’~\footnote{see the website of Gut Holsterfeld at~\url{https://www.gut-holsterfeld.de/}}. It is explored whether approaches from the fields of machine learning and computer vision can be applied to improve the classification behavior of the asparagus sorting machine. Further it is investigated, if these approaches can be used in a more industrial than scientific setting for the specific task of asparagus classification. The initial intention to directly implement new software into the machine was postponed to allow for intensive research on the different approaches and on fine-tuning the received data to build a practical data set to train neural networks. +The objective of the study project was to find both, conventional and deep learning computer vision-based approaches that can be tested for their practical application in the commercial sorting of white asparagus. The different methods were implemented based on the image data that was received from the automatic sorting machine Autoselect ATS II employed by the asparagus farm \enquote{Gut Holsterfeld}~\footnote{see the website of Gut Holsterfeld at~\url{https://www.gut-holsterfeld.de/} (visited on 03/15/2020)}. It is explored whether approaches from the fields of machine learning and computer vision can be applied to improve the classification behavior of the asparagus sorting machine. Further it is investigated, if these approaches can be used in a more industrial than scientific setting for the specific task of asparagus classification. The initial intention to directly implement new software into the machine was postponed to allow for intensive research on the different approaches and on fine-tuning the received data to build a practical data set to train neural networks. -The idea for the project was formed by one of the students of the study group. She has a familial relationship to the asparagus farm Gut Holsterfeld and had received note of the unsatisfying classification performance of its sorting machine. The practical application to a real-world problem sparked the interest of the group and the general curiosity towards computer vision, in particular neural networks, further inspired to deal with the sorting issue in a deep learning context, as well as with classical methods. +The idea for the project was formed by one of the students of the study group. She has a familial relationship to the asparagus farm Gut Holsterfeld and had received note of the unsatisfying classification performance of its sorting machine. The practical application to a real-world problem sparked the interest of the group and the general curiosity towards computer vision and machine learning further inspired to deal with the sorting issue by experimenting with a broad selection of methods. All project members are students in the field of Cognitive Science at the University of Osnabr{\"u}ck. The study project is part of the Master Program in Cognitive Science at the University of Osnabr{\"u}ck. It is supervised by Dr.\ Ulf Krumnack and Axel Schaffland. The study project intends to confirm the ability of its participants to independently formulate and solve an unknown problem from the scientific context of one subject area using the methods and terms they previously learned~\citep{moduledescription,studyregulations}. This includes the documentation and presentation of the results, the methodologies as well as the reflection on the work process. Within the scope of the project, for example, the development of software, analysis, and interpretation of statistical data material is practiced. A further aspect of the study project is to deepen the communicative and decision-making competence of its participants~\citep{moduledescription}. The idea is to train independent project work in groups of students under conditions that are common for research projects in science or industry. -As the project took part in the scope of an examination for the Cognitive Science Master Program at the University of Osnabr{\"u}ck, most of the work was developed at the university, that is, at the \acrfull{ikw}. +As the project took part in the scope of an examination for the Cognitive Science Master Program at the University of Osnabr{\"u}ck, most of the work was developed at the university, that is, at the \acrfull{ikw}. -Additional image data was received from the asparagus farm ``Querdel’s Hof’’~\footnote{see the website of Querdel’s Hof at~\url{https://www.querdel.de/}}. Further cooperation existed with the mechanical engineering company HMF Hermeler Maschinenbau GmbH~\footnote{see the website of HMF Hermeler at~\url{www.hmf-hermeler.de}} that developed the sorting machine Autoselect ATS~II and provided valuable expertise on the sorting issue. +Additional image data was received from the asparagus farm \enquote{Querdel’s Hof}~\footnote{see the website of Querdel’s Hof at~\url{https://www.querdel.de/} (visited on 03/15/2020)}. Further cooperation existed with the mechanical engineering company HMF Hermeler Maschinenbau GmbH~\footnote{see the website of HMF Hermeler at~\url{www.hmf-hermeler.de} (visited on 03/15/2020)} that developed the sorting machine Autoselect ATS~II and provided valuable expertise on the sorting issue. -All associated software is stored online, in our GitHub repository, and at the institute internal storing system.\footnote{The documentation to the project can be found at~\url{https://asparagus.readthedocs.io/en/latest}. The GitHub repository can be found at~\url{https://github.com/CogSciUOS/asparagus}. \\ Until 31/07/2020, the internal storing folder to the project at the University of Osnabr{\"u}ck could be accessed via~/net/projects/scratch/winter/valid\_until\_31\_July\_2020/asparagus. Since then, it can be accessed via~/net/projects/scratch/summer/valid\_until\_31\_January\_2021/jzerbe, until 31/01/2021.} +All associated software is stored online, in our GitHub repository, and at the institute internal storing system.\footnote{The documentation to the project can be found at~\url{https://asparagus.readthedocs.io/en/latest} (as of 11/27/2020). The GitHub repository is located at~\url{https://github.com/CogSciUOS/asparagus} (as of 11/27/2020). \\ Until 07/31/2020, the internal storing folder to the project at the University of Osnabr{\"u}ck could be accessed via~/net/projects/scratch/winter/valid\_until\_31\_July\_2020/asparagus. Since then, it can be accessed via~/net/projects/scratch/summer/valid\_until\_31\_January\_2021/jzerbe, until 01/31/2021.} \subsection{Classification based on computer vision} @@ -54,25 +54,25 @@ \subsection{Classification based on computer vision} In this chapter, the current standard of computer-based image classification is described. The main focus will be on \acrfullpl{ann} and classical computer vision techniques. A broad overview of relevant topics will be given and their importance for this project will be underlined. -Computer vision is a field of computer science that aims to automatically extract high-level understanding from image data and provide appropriate output. It is closely linked with machine learning, which describes the ability of a system to learn and improve from experience rather than being specifically programmed. Machine learning is frequently used to solve computer vision tasks. +Computer vision is a field of computer science that aims to extract high-level understanding from image data. It is closely linked with machine learning, which describes the ability of a system to learn and improve from experience rather than being specifically programmed. Machine learning is frequently used to solve computer vision tasks. \bigskip -Image classification is one of the main subfields of computer vision which gains a lot of attention in the scientific as well as the economic world. Besides the classical computer vision techniques that use algorithmic approaches to determine patterns, edges, and other points of interest that can help to classify images, artificial intelligence was introduced to the field in the 1960s \citep{szeliski2010computer}. Since then, more and more creative and complex artificial neural networks were introduced to solve numerous classification tasks, including the recognition of letters, faces, and street signs~\citep{mironczuk2018recent,balaban2015deep,stallkamp2011german}. +Image classification is one of the main subfields of computer vision which gains a lot of attention in the scientific as well as the economic world. Besides the classical computer vision techniques that use algorithmic approaches to determine patterns, edges, and other points of interest that can help to classify images, artificial intelligence was introduced to the field in the 1960s to automate intelligent behaviour~\citep{szeliski2010computer}. Since then, more and more creative and complex technologies such as artificial neural networks were introduced to solve numerous classification tasks, including the recognition of letters, faces, and street signs~\citep{mironczuk2018recent,balaban2015deep,stallkamp2011german}. -Some experts claim that artificial neural networks revolutionized the field of image classification, yielding better results than ever before~\citep{he2016deep,alexnet2012original}. More and more challenges, for example ImageNet \citep{russakovsky2015imagenet}, were introduced and computer scientists all over the world implemented creative solutions for the proposed problems. Additionally, influential companies like Google have a deep interest in finding solutions for image-based classification problems and push the research on these and related topics even further. In the era of optimization, computer-based classification became indispensable in many industries and also found its way into agriculture which is the field of interest in this study project. -In the following, a short introduction in both artificial neural networks and classical computer vision techniques is given which will span a bridge to our current classification problem. +Some experts claim that especially artificial neural networks, as one of the popular methods in the field of artificial intelligence, revolutionized the field of image classification, yielding better results than ever before~\citep{he2016deep,alexnet2012original}. More and more challenges, for example ImageNet \citep{russakovsky2015imagenet}, were introduced and computer scientists all over the world implemented creative solutions for the proposed problems. Additionally, influential companies like Google have a deep interest in finding solutions for image-based classification problems and push the research on these and related topics even further. In the era of optimization, computer-based classification became indispensable in many industries and also found its way into agriculture which is the field of interest in this study project. +In the following, a short introduction to artificial neural networks and classical computer vision techniques is given which will span a bridge to our current classification problem. \bigskip -Neural networks are used for image classification in many domains. In contrast to the algorithmic approaches, it is not determined by the programmer how and what exactly the neural network learns. A large amount of data is provided to the model, which then extracts relevant information to learn the classification task. However, what is relevant to the model is not necessarily relevant or interpretable to a human observer. This is one of the biggest disadvantages compared to classical computer vision approaches, which are understandable and, therefore, interpretable and adjustable. Another problem that comes along with this is that the bias for those approaches often does not lie in the code itself but in the data, which is by far more difficult to detect and surpass. For this reason, many people see artificial neural networks as a black box, which may yield great results but cannot be fully understood. Recent advances try to tackle that issue by systematically researching artificial intelligence with the aim of making it more explainable~\citep{tjoa2019survey,gilpin2018explaining}. +Artificial neural networks are used for image classification in many domains. In contrast to the algorithmic approaches, it is not determined by the programmer how and what exactly the neural network learns. A large amount of data is provided to the model, which then extracts relevant information to learn the classification task. However, what is relevant to the model is not necessarily relevant or interpretable to a human observer. This is one of the biggest disadvantages compared to classical computer vision approaches, which are understandable (human readable) and, therefore, interpretable and adjustable. Another problem that comes along with this is that the bias for those approaches often does not lie in the code itself but in the data, which is by far more difficult to detect and surpass. For this reason, many people see artificial neural networks as a black box, which may yield great results but cannot be fully understood. Recent advances try to tackle that issue by systematically researching artificial neural networks with the aim of making it more explainable~\citep{tjoa2019survey,gilpin2018explaining}. In image classification, usually \acrfullpl{cnn} are used \citep{geron2019hands,lecun1995convolutional}, which are loosely inspired by the visual cortex of the brain. The idea is that highly specialized components or filters learn a very specific task, which is similar to the receptive fields of neurons in the visual cortex~\citep{hubel1962receptive}. These components can then be combined to high-level features which, in turn, can be combined to objects that can be used for classification~\citep{geron2019hands,bishop2006pattern,lecun1995convolutional}. In \acrshortpl{cnn} this concept is implemented by several successive convolutional layers in which one or more filters are slid over the input, generating so-called feature maps. Each unit in one feature map looks for the same feature but in different locations of the input. In recent years, \acrshortpl{cnn} improved so much that they outperform humans in many classification tasks~\citep{russakovsky2015imagenet,KarpathyConvNet}. \bigskip -Although machine learning exhibits very promising results and a lot of research and literature is available on the topic, many branches of industry still rely on traditional computer vision techniques in their implementation of image classification. This also applies to the asparagus sorting paradigm. To the best of our knowledge, no asparagus sorting machine is currently on the market that uses artificial intelligence for its classification algorithm. +Although artificial neural networks exhibit very promising results and a lot of research and literature is available on the topic, many branches of industry still rely on traditional computer vision techniques in their implementation of image classification. This also applies to the asparagus sorting paradigm. To the best of our knowledge, no asparagus sorting machine is currently on the market that uses artificial neural networks for its classification algorithm. -Many classical computer vision algorithms aim to detect and describe points of interest in the input images that can be generalized to features. For these features, low-level attributes such as rapid changes in color or luminance can be used. In contrast to the features learned with the help of machine learning, these features are not specific to any training data set and therefore do not depend on it being well-constructed. Further, they are usually created in a way that is interpretable by humans which makes them very flexible and easily adaptable to specific use cases. This is why in some cases, traditional computer vision techniques can solve a problem much more efficiently than deep learning approaches. +Many classical computer vision algorithms aim to detect and describe points of interest in the input images that can be generalized to features. For these features, low-level attributes such as rapid changes in color or luminance can be used. In contrast to the features learned with the help of artificial neural networks, these features are not specific to any training data set and therefore do not depend on it being well-constructed. Further, they are usually created in a way that is interpretable by humans which makes them very flexible and easily adaptable to specific use cases. This is why in some cases, traditional computer vision techniques can solve a problem much more efficiently than machine learning approaches. -One of the big advantages of deep learning algorithms is that they can extract underlying features from the data. In machine learning, it is essential to know about the components constructing a problem, whereas artificial neural networks have the ability to learn the features of the data, combine and correlate them and thus enable faster learning without an explicit command how to do so \citep{LeCun2015}. +One of the big advantages of machine learning algorithms, such as artificial neural networks, is that they can extract underlying features from the data. In algorithmic approaches (where predictions are based on fixed formulas), it is essential to know about the components constructing a problem, whereas artificial neural networks have the ability to learn the features of the data, combine and correlate them and thus enable faster learning without an explicit command how to do so \citep{LeCun2015}. \bigskip In summary, both approaches have interesting implications for computer-based image classification tasks and provide promising techniques for our problem of asparagus classification. While we rely mostly on machine learning for the classification task itself, traditional computer vision algorithms are used to detect important features from the images. @@ -129,7 +129,7 @@ \subsection{Background on sorting asparagus} \label{tab:AsparagusLabels} \end{table} -In the European Union, there is a uniform system for the sorting of asparagus into quality classes~\citep{euspargelnorm,unspargelnorm}.\footnote{see \url{https://mlr.baden-wuerttemberg.de/de/unser-service/presse-und-oeffentlichkeitsarbeit/pressemitteilung/pid/nationale-handelsklassen-fuer-frisches-obst-und-gemuese-abgeschafft-1/}}\footnote{see \url{https://www.bzfe.de/inhalt/spargel-kennzeichnung-5876.html}} However, supply and demand usually determine the number and accuracy of these classes. One of the first defining features is the color of the asparagus which comprises four categories: white, violet, violet-green, and green~\citep{euspargelnorm}. For this project, only the first two colors are of relevance. A further distinction is made between the quality classes Extra, class I, and class II. The class Extra defines the product as perfect quality, class I defines it as good quality, and class II includes products that do not qualify for the other classes but satisfy the minimum requirements for commercial distribution~\citep{euspargelnorm}. The last distinction is made for the characteristics of length and width. White and violet asparagus may not exceed 220 mm in length. The minimal length of the asparagus varies but should be above 170 mm for long asparagus. Additionally, there is some level of tolerance accepted for the quality classes. According to the quality class, 5\% - 15\% of wrongly sorted asparagus is tolerated in a package or bundle~\citep{euspargelnorm}. +In the European Union, there is a uniform system for the sorting of asparagus into quality classes~\citep{euspargelnorm,unspargelnorm}.\footnote{see \url{https://mlr.baden-wuerttemberg.de/de/unser-service/presse-und-oeffentlichkeitsarbeit/pressemitteilung/pid/nationale-handelsklassen-fuer-frisches-obst-und-gemuese-abgeschafft-1/} (visited on 03/16/2020)}\footnote{see \url{https://www.bzfe.de/inhalt/spargel-kennzeichnung-5876.html} (visited on 03/16/2020)} However, supply and demand usually determine the number and accuracy of these classes. One of the first defining features is the color of the asparagus which comprises four categories: white, violet, violet-green, and green~\citep{euspargelnorm}. For this project, only the first two colors are of relevance. A further distinction is made between the quality classes Extra, class I, and class II. The class Extra defines the product as perfect quality, class I defines it as good quality, and class II includes products that do not qualify for the other classes but satisfy the minimum requirements for commercial distribution~\citep{euspargelnorm}. The last distinction is made for the characteristics of length and width. White and violet asparagus may not exceed 220 mm in length. The minimal length of the asparagus varies but should be above 170 mm for long asparagus. Additionally, there is some level of tolerance accepted for the quality classes. According to the quality class, 5\% - 15\% of wrongly sorted asparagus is tolerated in a package or bundle~\citep{euspargelnorm}. \begin{figure}[!b] \centering diff --git a/documentation/report/Chapters/Preparations.tex b/documentation/report/Chapters/Preparations.tex index d2f670c..60de94f 100644 --- a/documentation/report/Chapters/Preparations.tex +++ b/documentation/report/Chapters/Preparations.tex @@ -18,7 +18,7 @@ \subsection{Roadmap of the project} \centering \includegraphics[scale=0.43]{Figures/chapter02/new_timetable.png} \decoRule - \caption[Timetable of the Project]{\textbf{Timetable of the Project}~~~The upper timeline shows the estimated time of the study project from April 2019 to April/Mai 2020. The lower timeline displays how the time was spent. Both timelines differ in that the year was more optimistically planned than realized. A major factor was the lack of experience of the participants concerning the conduction of a larger project with many co-workers as well as concerning the general implementation of the preprocessing stage for machine learning classification. Another factor influencing the shifted timeline was the appearance of a fifth major stage, the \emph{Manual Labeling}.} + \caption[Timetable of the Project]{\textbf{Timetable of the Project}~~~The upper timeline shows the estimated time of the study project from April 2019 to April/Mai 2020. The lower timeline displays how the time was spent. Both timelines differ in that the year was more optimistically planned than realized. Contributing factors were the lack of experience in managing a larger project and, on the technical side, the absence of expertise regarding the general implementation of the preprocessing stage. Additionally influencing the shifted timeline was the appearance of a fifth major stage, the \emph{Manual Labeling}.} \label{fig:Timetable} \end{figure} @@ -38,37 +38,38 @@ \subsection{Roadmap of the project} \label{fig:RoadmapActual} \end{figure} -The timetable in~\autoref{fig:Timetable} gives a broad outline of the major stages of the project. In the upper timeline of the figure, it was estimated how much time for a specific phase is needed, whereas in the lower timeline the real time spent for the stage is given. Both timelines are structured to display the project year, starting in April 2019 and ending in April/Mai 2020. The months are represented by the x-axis while the colors mark the different working stages. +The timetable in~\autoref{fig:Timetable} gives a broad outline of the major stages of the project. The upper timeline of the figure shows how much time for a specific phase was estimated, whereas the lower timeline shows the real time spent on each stage. Both timelines are structured to display the project year, starting in April 2019 and ending in April/Mai 2020. The months are represented by the x-axis while the colors mark the different working stages. -The project comprises four to five major stages: \textit{Data Collection \& Organization}, \textit{Preprocessing}, \textit{Manual Labeling}, \textit{Classification}, and \textit{Evaluation}. A detailed representation of the single tasks attributed to each stage can be found in the roadmaps in~\autoref{fig:RoadmapPlanned} and~\autoref{fig:RoadmapActual}. The project started with the data collection and the organization of the study project. During the first stage, the images were recorded with the sorting machine, while the major planning and research for the project took place. In the second phase, most of the preprocessing happened, that is, preparing and labeling the image data. The classification stage includes the time spent on the machine learning approaches which were implemented and trained on the asparagus data. In the last stage, the approaches were evaluated and their results were compared. The different stages overlapped to a certain degree. For the purpose of this figure, the start and end time is displayed as a hard boundary. +The project comprises five major stages: \textit{Data Collection \& Organization}, \textit{Preprocessing}, \textit{Manual Labeling}, \textit{Classification}, and \textit{Evaluation}. A detailed representation of the single tasks attributed to each stage can be found in the roadmaps in~\autoref{fig:RoadmapPlanned} and~\autoref{fig:RoadmapActual}. The project started with the data collection. During the first stage, the images were recorded with the sorting machine, while the major planning and research for the project took place. The second phase covered the preprocessing, that is, preparing and labeling the image data. The classification stage includes the time spent on the implementation of the machine learning approaches. In the last stage, the approaches were evaluated and their results were compared. The different stages overlapped to a certain degree. For the purpose of this figure, the start and end time is displayed as a hard boundary. -When comparing both timelines, some distinctions can be recognized. The upper timeline shows that preprocessing was estimated to be done by September. However, the phase continued until October, as can be observed in the lower timeline. Furthermore, the time for labeling a sufficient amount of images was underestimated, resulting in adjustments of the time attributed to this task. More specifically, it led to the \textit{Manual Labeling} of the image data receiving its own phase in the timetable, independent of the preprocessing phase. +It is obvious that both timelines differ. In detail, preprocessing was estimated to be done by September, however, the phase continued until October. Further, the time for labeling a sufficient amount of images was underestimated, resulting in adjustments of the time attributed to this task. The differences are depicted with different color codings. While the main focus of this project was supposed to be the application of different machine learning techniques to classify the data (color-coded in blue and green), the preprocessing phase and the data set creation/manual labeling posed to be most time-consuming (color-coded in orange and yellow). -In~\autoref{fig:RoadmapPlanned} and~\autoref{fig:RoadmapActual}, the stage specific tasks can be seen in more detail. Again, both figures display the estimated time and the actual time, respectively. The headlines serve as a division into the major stages except for the first heading, \emph{Constant Work}, which shows the tasks that demanded continuous attention and effort throughout the year. The duration of tasks is represented in blue, while the yellow lines mark milestones that are explained in the legends. +In~\autoref{fig:RoadmapPlanned} and~\autoref{fig:RoadmapActual}, the stage specific tasks are displayed in more detail. Again, both figures display the estimated time and the actual time, respectively. The headlines serve as a division into the major stages except for the first heading, \emph{Constant Work}, which shows the tasks that demanded continuous attention and effort throughout the year. The duration of tasks is represented in blue, while the yellow lines mark milestones that are explained in the legends. + \subsection{Organisation of the study group} \label{sec:Organization} -In this chapter, the management of the work distribution and the communication are taken into focus. For this the tools that were used for communication and organization will be examined as well as the structure of the group work. +This chapter focuses on the management of the work distribution and the communication. For this the used communication and organization tools will be examined as well as the structure of the group work. \subsubsection{Communication} \label{subsec:Communication} -The main communication consisted of weekly meetings in which the working process was discussed and new tasks were distributed. In addition to those meetings, different platforms were used, which worked with varying degrees of success. Used platforms were Asana, GitHub and Telegram to facilitate the communication aside from group meetings. The different means of communication will be described and evaluated in the following section. +The main communication took place in weekly meetings in which the working process was discussed and new tasks were distributed. In addition, different platforms were tried, which were used with varying quantities such as Asana, GitHub and Telegram. The different means of communication will be described and evaluated in the following section. \bigskip -Regular meetings made up the core organization of our project. During the meetings a discussion leader and a protocol writer were picked.\footnote{The protocols were saved for review in the GitHub project at \\ \url{https://github.com/CogSciUOS/asparagus}} The meetings were characterized by long discussions about how to approach the upcoming project step and how to tackle the next challenge. The project’s supervisors were usually present at the meetings, to bring in their expertise and to give the opportunity to ask concrete questions. During the first half of the project, tasks were distributed at the end of each meeting. In the subsequent meeting the working progress was discussed. This procedure was changed in the second half of the project. A schedule was used that described the different tasks and deadlines in detail. Additionally, we regularly gathered for co-working. The organizational meetings were continued, during which everyone gave precise and structured reports on their area of responsibility. This helped us to spend less time discussing and have more time for task-relevant work. +The weekly meetings were organized by a previously announced discussion leader and captured by a protocol writer.\footnote{The protocols were saved for review in the GitHub project at \\ \url{https://github.com/CogSciUOS/asparagus} (as of 11/27/2020)} The project’s supervisors were usually present at the meetings, to contribute with their expertise. At the beginning, tasks were distributed at the end of the meeting. In the second half of the project, the work was distributed through a schedule describing tasks and deadlines in detail. Additionally, a weekly co-working space was established. -The majority of important information was exchanged via Telegram~\footnote{Telegram is a cloud-based instant messaging service for the use on smartphones, tablets and computers.}. Starting from the first meeting, we had a constant conversation in a group chat on Telegram, in which we informed each other about the status of the project as well as support each other by answering questions. The group chat also created space for mutual motivation when needed. + Starting from the first meeting, we had a constant information exchange through a group chat on Telegram~\footnote{Telegram is a cloud-based instant messaging service for the use on smartphones, tablets and computers.}. The group chat helped to update others about the progress, support in technical issues but also created space for mutual motivation when needed. -Additionally, Asana was used in the beginning of the project. The communication platform is usually used to distribute tasks and to communicate about them. Many integrations of other applications, such as Slack, can help to achieve this. However, the tasks were easier to distribute in direct consultation at physical meetings and results could be easier demonstrated or discussed. If we had relied on communication with Slack or other agreed services or applications, it might have made more sense, but Asana alone has proven to be inefficient in our use case. +Asana was used in the beginning of the project to distribute tasks. However, the tasks were easier to distribute in direct consultation at physical meetings and results could be easier demonstrated and discussed. -During the project, it was further learned how to work with GitHub~\footnote{GitHub is a web-based popular platform using the version control system Git that helps developers to store and manage their code, and track and control changes to their project.}. Git allowed us to work from anywhere, which facilitated the workflow. +During the project, we gained a lot of expertise in using GitHub~\footnote{GitHub is a web-based popular platform using the version control system Git that helps developers to store and manage their code, and track and control changes to their project.}. Git allowed us to contribute to each other's work from anywhere, which facilitated the workflow. -Furthermore, we were able to automatically create documentations via Sphinx. This means that by adhering to the style conventions, the protocols, work schedules, manuals, and code comments were automatically included in our documentation.\footnote{see our documentation at~\url{https://asparagus.readthedocs.io/en/latest/}} +Furthermore, we automatically created documentations via Sphinx. Thus, adhering to the style conventions, the protocols, work schedules, manuals, and code comments were automatically included in our documentation.\footnote{see our documentation at~\url{https://asparagus.readthedocs.io/en/latest/} (as of 11/27/2020)} \subsubsection{Teamwork} @@ -77,21 +78,20 @@ \subsubsection{Teamwork} This section starts by introducing the team members and their previous experiences. It is followed by a description of the practical aspects of teamwork, the working structure, and the distribution of project-relevant tasks. \bigskip -The project was an initiative of one of the students. A large part of the project members knew each other in private but had not yet worked together. Further students joined the project after its public announcement to complete the team. Thus, the group consisted of members with varying degrees of knowledge about each other. The team was initially made up by Josefine Zerbe, Katharina Groß, Malin Spaniol, Maren Born, Michael Gerstenberger, Richard Ruppel, Sophia Schulze-Weddige, Luana Vaduva, Thomas Klein, and Subir Das. None of the members had yet worked together as such on a project of this scope. During the course of the project, three members left the team for various reasons. Thomas left in July due to a change in his study program. Further, Luana and Subir left in October to pursue different study projects. - -The members brought a wide variety of backgrounds into the team through different bachelor programs or different majors in the broader field of Cognitive Science. In the beginning of the project, the team members had little to no experience in the application of computer vision or neural networks. The motivation of most students was to pursue new and interesting tasks in these fields. Four students had a theoretical background in computer vision, six students had gained some experience with neural networks through the course ``\acrshortpl{ann} with TensorFlow’’, taught at the University of Osnabr{\"u}ck. Some had also taken machine learning classes during their study program. Git was previously only used by three students, but none of them were experts on its usage. Further, the team had neither experience with the Grid system of the \acrshort{ikw}, nor with running jobs on different machines. None of the members had prior knowledge about project management or task organization on a broader level. +The project was an initiative of one member of the project group. Further students joined the project after its public announcement to complete the team.. The team was initially made up by Josefine Zerbe, Katharina Groß, Malin Spaniol, Maren Born, Michael Gerstenberger, Richard Ruppel, Sophia Schulze-Weddige, Luana Vaduva, Thomas Klein, and Subir Das. None of the members had yet worked together as such on a project of this scope. During the course of the project, three members left the team for various reasons. +The members brought a wide variety of backgrounds into the team through different bachelor programs or different majors in the broader field of Cognitive Science. In the beginning of the project, the team members had little to no experience in the application of computer vision or neural networks. The motivation of most students was to pursue new and interesting tasks in these fields. Four students had a theoretical background in computer vision, six students had gained some experience with neural networks. Git was previously only used by three students, but none of them were experts on its usage. Further, the team had neither experience with the Grid system of the \acrshort{ikw}, nor with running jobs on different machines. None of the members had prior knowledge about project management or task organization on a broader level. \bigskip -In the beginning, the team lacked some structure and a clear distribution of individual roles. One reason for this could have been the harmonious atmosphere between team members. Further tasks such as the trips to the asparagus farm strengthened the team spirit and the social interactions. Thus, the task distribution was very dynamically structured by making every decision democratically. Most tasks were performed in smaller teams of two to three people. During meetings, possible next tasks were formulated but without assigning them to specific members or working groups. This resulted in a lot of unassigned tasks and a discontinuous workflow. +In the beginning, the team lacked some structure and a clear distribution of individual roles. One reason for this could have been the harmonious atmosphere between team members. Further tasks such as the trips to the asparagus farm strengthened the team spirit and the social interactions. Thus, the task distribution was very dynamically structured by making every decision democratically. Most tasks were performed in smaller teams of two to three people. During meetings, tasks were formulated but not clearly assigned to members which led to a discontinuous workflow. -In August, the organization was restructured. On the one hand, a new structure for task distribution seemed more appropriate, instead of a democratic distribution. On the other hand, the strengths of the individual team members should be used more efficiently. Some team members had less programming experience than others. They had difficulties realizing certain tasks in an equal time period and with the same precision as others. Although they had good ideas in terms of concept, these were not implemented quickly enough to include them into the project. Nevertheless, it gave the opportunity to acquire new programming skills. To integrate more of the strengths that the single team members brought and to tackle the issue of time management, it was decided to write a work schedule that distributed the work more appropriately, gave an overview of the tasks that still had to be done and showed how much time was left to do them. +In August, a new structure for task distribution was introduced, such that the strengths of the individual team members could be used more efficiently. Due to the different backgrounds, team members could not resolve programming tasks equally efficiently, such that good concepts could not be realized quickly enough to include them into the project. Nevertheless, it gave the opportunity to acquire new programming skills. To integrate more of the strengths that the single team members brought and to tackle the issue of time management, it was decided to write a work schedule that distributed the work more appropriately, gave an overview of the tasks that still had to be done and showed how much time was left to do them. -The supervision of the work was divided into manager roles, which means that the work was split into different main fields. Each member was responsible for managing their assigned area, distributing tasks and keeping an overview of the relevant work inside their working field. The manager could be consulted for questions, when in need of discussion, or for feedback. The meetings became more effective due to the new structure, and there was less discussion concerning task distribution. +The supervision of the work was divided into manager roles and the work itself into different main fields. Each member was responsible for managing their assigned area, distributing tasks and keeping an overview of the relevant work inside their working field. The manager could be consulted for questions, when in need of discussion or feedback. This distribution made the meetings more effective. -Further, common working hours on campus were introduced. The common working hours ensured that questions and decisions that arose could be discussed in person. This was especially helpful when different tasks overlapped and required communication and agreement. +During common working hours, questions and decisions that arose could be discussed in person. This was especially helpful when different tasks overlapped and required communication and agreement. \bigskip -In conclusion, the team structure and the distribution of work changed over the course of the project. The strengths of single members were used more efficiently and the supervision of working areas led to a more structured time management and task distribution. +In conclusion, the team structure and the distribution of work changed over the course of the project. The strengths of the single members were used more efficiently and the supervision of working areas led to a more structured time management and task distribution. \subsection{Data collection} @@ -99,8 +99,6 @@ \subsection{Data collection} In this section the asparagus sorting machine at Gut Holsterfeld is described. Then the process of collecting labeled and unlabeled data is reported. -The machine Autoselect ATS~II (2003) is designed for sorting white and green asparagus (see~\autoref{fig:SortingMachine}) \citep{autoselectanleitung}. The asparagus is arranged on a conveyor belt that runs it through the recording section of the machine. Here, a camera takes three pictures per asparagus spear (see \autoref{fig:SortingMachineSketch} and \autoref{fig:ExampleImagesAnna}). Small wheels on the conveyor belt rotate the asparagus in the meantime so that it can be photographed from several positions. In the best case, on each image a different side of the asparagus is recorded. The conveyor belt transports the spear further and it is sorted into a tray depending on the chosen class label by the machine. The sorting is based on the parameters for width, length, shape, curvature, rust, and color. A total of 30 criteria for classifying an asparagus spear are used to describe these parameters. The calculation of the single features is based on a classical analytical approach. For example, the parameter for color detection is composed of eight sub-parameters. Each spear is reviewed at different areas (the head of the asparagus, the area below the head, and the stem) and judged for its hue in percentage. The values are compared and, according to a threshold, the spear is sorted into a color category (e.g.\, white or violet). For all parameters, there is a minimal threshold and a maximal threshold. As another example, the parameter for width detection calculates at three points at the asparagus (top, middle, and bottom part). From these three values, an average value is calculated that decides in which category the asparagus is sorted. If an asparagus exceeds the maximal threshold for parameter detection, it is not recognized and cannot be sorted accordingly. The same holds for values below the minimal threshold. Thus, all parameters have to have an upper and a lower threshold, including parameters that decide the presence of features like shape, curvature, and color. When evaluating what parameter boundaries to choose, it is recommended to check that most asparagus spears tend to be in between the average value and the maximal threshold, with a larger tendency to accumulate around the average value. Reportedly, the parameters and their respective ranges can be freely chosen by the user and can in this way be fitted to the needs of the respective asparagus farm~\citep{autoselectanleitung}. - \begin{figure}[!t] \centering \includegraphics[width=0.9\textwidth]{Figures/chapter02/asparagusconveyerbelt_new.png} @@ -111,10 +109,13 @@ \subsection{Data collection} \centering \includegraphics[scale=0.6]{Figures/chapter02/sortingmachine_front.png} \decoRule - \caption[The Autoselect ATS II at Gut Holsterfeld]{\textbf{Autoselect ATS~II at Gut Holsterfeld}~~~In the figure the asparagus sorting machine Autoselect ATS~II at Gut Holsterfeld can be seen. The conveyor belt transports the asparagus from the left side of the image to the right side. It thereby passes the camera system. The display of the machine gives information on the parameters and the images. The machine is mainly controlled from here.} + \caption[The Autoselect ATS II at Gut Holsterfeld]{\textbf{Autoselect ATS~II at Gut Holsterfeld}~~~In the figure the asparagus sorting machine Autoselect ATS~II at Gut Holsterfeld is displayed. The conveyor belt transports the asparagus from the left side of the image to the right side. It thereby passes the camera system. The display of the machine gives information on the parameters and the images. The machine is mainly controlled from here.} \label{fig:SortingMachine} \end{figure} +\bigskip +The machine Autoselect ATS~II (2003) is designed for sorting white and green asparagus (see~\autoref{fig:SortingMachine}) \citep{autoselectanleitung}. First, the asparagus is arranged on a conveyor belt that runs it through the recording section of the machine. Here, a camera takes three pictures per asparagus spear (see \autoref{fig:SortingMachineSketch} and \autoref{fig:ExampleImagesAnna}). Small wheels on the conveyor belt rotate the asparagus throughout the process so that it can be photographed from several positions. In the best case, every image shows a different side of the asparagus. Subsequently, the asparagus is transported into a tray depending on its class label. The sorting is based on the parameters for width, length, shape, curvature, rust, and color. A total of 30 criteria for classifying an asparagus spear are used to describe these parameters. The calculation of the single features is based on a classical analytical approach. For example, the parameter for color detection is composed of eight sub-parameters. Each spear is reviewed at different areas (the head of the asparagus, the area below the head, and the stem) and judged for its hue in percentage. The values are compared and, according to a threshold, the spear is sorted into a color category (e.g.\, white or violet). For all parameters, there is a minimal threshold and a maximal threshold. As another example, the parameter for width detection calculates at three points at the asparagus (top, middle, and bottom part). From these three values, an average value is calculated that decides in which category the asparagus is sorted. If an asparagus exceeds the maximal threshold for parameter detection, it is not recognized and cannot be sorted accordingly. The same holds for values below the minimal threshold. Thus, all parameters have to have an upper and a lower threshold, including parameters that decide the presence of features like shape, curvature, and color. When evaluating what parameter boundaries to choose, it is recommended to check that most asparagus spears tend to be in between the average value and the maximal threshold, with a larger tendency to accumulate around the average value. Reportedly, the parameters and their respective ranges can be freely chosen by the user and can in this way be fitted to the needs of the respective asparagus farm~\citep{autoselectanleitung}. + \begin{figure}[!htb] \centering \includegraphics[scale=0.3]{Figures/chapter02/sorting_machine_slots.png} @@ -125,19 +126,19 @@ \subsection{Data collection} Before the first use of the machine, all parameters are selected after a calibrating charge of asparagus has run through the machine. Then, the user can adjust the thresholds accordingly. -According to the manual, the number of quality classes is selectable. The user can define the order of quality classes by choosing the arrangement of parameters. The manufacturer suggests to first sort for length and width, then use the parameters that sort for color, and the parameters for shape detection last. +According to the manual, the number of quality classes is selectable, by choosing the arrangement of parameters. The manufacturer suggests to first sort for length and width, then use the parameters that sort for color, and the parameters for shape detection last. -The accuracy of the sorting machine is described to be as good as 90\% best case by the manufacturer, while the farmer at Gut Holsterfeld reported it to be around 70\% at best, with re-sorting being necessary by professional sorters. Especially categories like Blume or Hohle were considered to be inconsistent by both, manufacturer and farmer. Further information could not be given on the software of the machine. A meeting with a representative of the engineering company HMF~\footnote{see \url{www.hmf-hermeler.de}} that manufactured the sorting machine was arranged. Unfortunately, the source code itself was not available to HMF as it was produced by another company. +The accuracy of the sorting machine is described to be as good as 90\% best case by the manufacturer, while the farmer at Gut Holsterfeld reported it to be around 70\% at best, with re-sorting being necessary by professional sorters. Especially categories like Blume or Hohle were considered to be inconsistent by both, manufacturer and farmer. Further information could not be given on the software of the machine. A meeting with a representative of the engineering company HMF~\footnote{see \url{www.hmf-hermeler.de} (visited on 03/15/2020)} that manufactured the sorting machine was arranged. Unfortunately, the source code itself was not available to HMF as it was produced by another company. \bigskip -In the following it is described how the image data was collected. It is possible to save images with the Autoselect ATS II, however, the storage space on the machine is very limited. Further, the selection of images to be saved is restricted to only 1000 images. -One workaround to the problem is the installation of the Teamviewer software~\footnote{see \url{https://www.teamviewer.com/en/}} on the machine and the connection of an external hard drive. After the installation, the process of image collection could be started remotely. This work was very ineffective and time-consuming. The data could not be directly transmitted to another computer because the internet speed at the farm is too slow. An automatic transfer of the images to the external hard drive was not possible until the installation of an automatic file moving service, for which the requirements are described below. +It is possible to save images with the Autoselect ATS II, however, the storage space on the machine is very limited. Further, the selection of images to be saved is restricted to only 1000 images at a time. +One workaround to the problem is the installation of the Teamviewer software~\footnote{see \url{https://www.teamviewer.com/en/} (visited on 03/15/2020)} on the machine and the connection of an external hard drive. After the installation, the process of image collection could be started remotely. This work was very ineffective and time-consuming. The data could not be directly transmitted to another computer because of the lack of internet speed at the farm. An automatic transfer of the images to the external hard drive was not possible until the installation of an automatic file moving service, for which the requirements are described below. -The file moving program needs to transfer the images to a new saving destination and has to run in the background without disturbing the workflow of the sorting machine. After research on background processes and programs, the decision was made to use a service, that is, a system process running independently of any program. The service manages moving the newly generated image files, as described in detail in the appendix in \autoref{subsec:FileService}. +The file moving program transfers the images to a new saving destination and runs in the background without disturbing the workflow of the sorting machine. We decided to use a service, that is, a system process running independently of any program. The service manages moving the newly generated image files, as described in detail in the appendix in \autoref{subsec:FileService}. -The project members split in groups of two and exchanged the hard drive two times a week. The collected images were then transferred to storage capacities of the university. +Hard drives were collected two times a week to subsequently store the collected images in the storage capacities of the university. -The label that the machine attributes to each asparagus is not reliable. Therefore, sending the asparagus through the machine a second time would be the only way to gather labeled images. Unfortunately, a second sorting is not good for the quality of the asparagus. Further, at least one project member has to be involved in the re-sorting and, thus, has to be present at the farm. The sessions of exchanging the external hard drive and collecting labeled image data were combined. +The label that the machine attributes to each asparagus is not reliable. Therefore, sending the asparagus through the machine a second time would be the only way to gather labeled images. Unfortunately, a second sorting degrades the quality of the asparagus. Therefore, only a limited amount of labeled data was collected. \begin{figure}[!h] \centering @@ -154,12 +155,11 @@ \subsection{Data collection} \includegraphics[width=0.95\linewidth]{Figures/chapter02/anna_c.png} \caption{right} \end{subfigure} - \caption[Example Asparagus Images]{\textbf{Example Asparagus Images}~~~Example pictures of the quality class I~A~Anna. The asparagus is arranged on a conveyor belt that runs it through the recording section of the machine, where a camera takes three pictures. In picture (A) the target asparagus is to the left, in (B) it is in the middle, and in (C) it is to the right. Small wheels on the conveyor belt rotate the asparagus in the meantime so that it can be photographed from several positions. In the best case, on each image a different side of the asparagus is recorded. The conveyor belt transports the asparagus further and it is sorted into a tray depending on the chosen quality class by the machine. + \caption[Example Asparagus Images]{\textbf{Example Asparagus Images}~~~Example pictures of the quality class I~A~Anna whose capturing process is described in \autoref{fig:SortingMachineSketch}. In picture (A) the target asparagus is to the left, in (B) it is in the middle, and in (C) it is to the right. Small wheels on the conveyor belt rotate the asparagus in the meantime so that it can be photographed from several positions. } \label{fig:ExampleImagesAnna} \end{figure} -\bigskip An example image of the received data can be seen in~\autoref{fig:ExampleImagesAnna}. There are three pictures per asparagus. The image resolution is $1040\times1376$ pixel per image, with an RGB color space. \begin{table}[!htb] @@ -177,14 +177,10 @@ \subsection{Data collection} \hline \end{tabular}% } - \caption[Collected Images with Class Label]{\textbf{Collected Images with Class Label} \\ In this table, the number of collected images with a class label is reported. This was achieved by running pre-sorted spears a second time through the sorting machine} + \caption[Collected Images with Class Label]{\textbf{Collected Images with Class Label} \\ In this table, the number of collected images with a class label is reported. This was achieved by running pre-sorted spears through the sorting machine a second time.} \label{tab:LabeledClassNumber} \end{table} -In total, 612113 images were collected, with each class label being represented with at least 309 images, corresponding to 103 asparagus. - -At the asparagus farm Gut Holsterfeld, 591495 labeled and unlabeled images were collected with the Autoselect ATS~II. The number of unlabeled data is 578226 images, thus, around 192742 different asparagus spears. Of the labeled data, the number of images that were collected per quality class can be found in \autoref{tab:LabeledClassNumber}. The image number does not represent the number of different asparagus spears, as each asparagus spear is represented by three distinct images. - \begin{figure}[!ht] \centering \vspace{20pt} @@ -210,23 +206,28 @@ \subsection{Data collection} \label{fig:ExampleImagesQuerdel} \end{figure} -Additionally, a few images could be recorded at another asparagus farm, Querdel’s Hof~\footnote{see~\url{https://www.querdel.de/}}, in Emsb{\"u}ren. The farm sorts the asparagus with an updated version of the Autoselect ATS~II at Gut Holsterfeld, that is, it uses the same software but other hardware. In particular the resolution of the camera was improved and a second camera was installed that focuses on the head region of the asparagus. At Querdel’s Hof, 20616 images were collected in total, 76 from the class label ``normal’’, 152 from the class label ``violet/flower’’, and 20388 unlabeled images. Each asparagus spear is represented by four images: three images show the asparagus from different perspectives and a fourth image depicts solely the head region. Example images for one asparagus can be seen in~\autoref{fig:ExampleImagesQuerdel}. No internet connection could be established to the farm, thus, no further images were collected. Moreover, the data format of the images from Querdel’s Hof is different to the data from the farm Gut Holsterfeld, due to the additional head image. Therefore a combination of both data sets was not convenient. +\bigskip +In total, 612113 images were collected, with each class label being represented with at least 309 images, corresponding to 103 asparagus. + +At the asparagus farm Gut Holsterfeld, 591495 labeled and unlabeled images were collected with the Autoselect ATS~II. The number of unlabeled data is 578226 images, thus, around 192742 different asparagus spears. Of the labeled data, the number of images that were collected per quality class can be found in \autoref{tab:LabeledClassNumber}. The image number does not represent the number of different asparagus spears, as each asparagus spear is represented by three distinct images. + +Additionally, a few images could be recorded at another asparagus farm, Querdel’s Hof~\footnote{see~\url{https://www.querdel.de/} (visited on 03/15/2020)}, in Emsb{\"u}ren. The farm sorts the asparagus with an updated version of the Autoselect ATS~II at Gut Holsterfeld, that is, it uses the same software but other hardware. In particular the resolution of the camera was improved and a second camera focuses on the head region of the asparagus. At Querdel’s Hof, 20616 images were collected in total, 76 from the class label \enquote{normal}, 152 from the class label \enquote{violet/flower}, and 20388 unlabeled images. Each asparagus spear is represented by four images: three images show the asparagus from different perspectives and a fourth image depicts solely the head region. Example images for one asparagus can be seen in~\autoref{fig:ExampleImagesQuerdel}. No internet connection could be established on the farm, thus, no further images were collected. Moreover, the data format of the images from Querdel’s Hof is different to the data from the farm Gut Holsterfeld. Therefore a combination of both data sets was inconvenient. \subsection{Literature on food classification using computer vision} \label{sec:Literature} -In the classification of food products, there are numerous possibilities to apply classical machine learning and \acrshort{ann} approaches for classification tasks on image data~\citep{bhargava2018fruits,brosnan2002inspection}. +In the classification of food products, there are numerous possibilities to apply machine learning approaches for classification tasks on image data~\citep{bhargava2018fruits,brosnan2002inspection}. For the scope of this investigation, we decided to focus our literature search on fruit and vegetable quality evaluation using computer vision and machine learning. Compared to other fields, research and evaluation in agricultural classification shares many characteristics and faces similar difficulties. -The quality inspection based on computer vision is usually constituted into five main steps: image acquisition, preprocessing, image segmentation, feature extraction and classification~\citep{bhargava2018fruits}. Moreover, most data in agriculture is based on photographic images. Also the features of interest are similar for different kinds of fruit or vegetable. Frequently by traditional computer vision techniques inspected features concern color, shape, size, texture, and defect~\citep{bhargava2018fruits}. This makes other papers in the field of agricultural evaluation directly comparable to our case. Moreover, we hope to get an impression of the state of the art of how many images are needed in our case, how high the image resolution needs to be, what kind of computer vision approaches could be helpful as a starting point, and also to become aware of known challenges. +The quality inspection based on computer vision is usually constituted into five main steps: image acquisition, preprocessing, image segmentation, feature extraction and classification~\citep{bhargava2018fruits}. Moreover, most data in agriculture is based on photographic images. Also the features of interest are similar for different kinds of fruit or vegetable. Features that are frequently inspected by traditional computer vision techniques concern color, shape, size, texture, and defect~\citep{bhargava2018fruits}. This makes other papers in the field of agricultural evaluation directly comparable to our case. Moreover, we hope to get an impression of the state of the art of how many images are needed in our case, how high the image resolution needs to be, what kind of computer vision approaches could be helpful as a starting point, and also to become aware of known challenges. \bigskip -None of the found papers were suitable as blueprints for the asparagus classification project. However, some of them helped to get an idea of how to proceed with the project. For example, some papers show how the preprocessing phase could be structured~\citep{mery2013automated}, or they evaluate the machine learning methods that were already used on other food classification tasks~\citep{bhargava2018fruits}. Further, some of the literature is concerned with the classification of food products but not with differentiating between as many classes as 13~\citep{diaz2004comparison,kilicc2007classification}. Often, the variance in the food products, that is, the quality as well as the type of food used is either too high~\citep{zhang2012classification} or too low~\citep{kilicc2007classification,al2011dates} in comparison to the variance in our project data. One paper evaluates the sorting of asparagus, however, it only does so on a small data set with three categories of green asparagus~\citep{donis2016classification}. Further papers on food classification are not detailed enough in their explanations and do not share the information needed for replication~\citep{pedreschi2016grading}. Another paper is mainly about the implementation of a certain toolbox~\citep{mery2013automated}. +None of the found papers were suitable as blueprints for the asparagus classification project. However, some of them helped to get an idea of how to proceed with the project. For example, some papers show how the preprocessing phase could be structured~\citep{mery2013automated}, or they evaluate the machine learning methods that were already used on other food classification tasks~\citep{bhargava2018fruits}. Further, some of the literature is concerned with the classification of food products but not with differentiating between as many classes as 13~\citep{diaz2004comparison,kilicc2007classification}. Often, the variance in the food products, that is, the quality as well as the type of food used is either too high~\citep{zhang2012classification} or too low~\citep{kilicc2007classification,al2011dates} in comparison to the variance in our project data. One paper evaluates the sorting of asparagus, however, it only does so on a small data set with three categories of green asparagus~\citep{donis2016classification}. Further papers on food classification are not detailed enough in their explanations and do not share the information needed for replication~\citep{pedreschi2016grading}. -Even though no specific paper was used as guidance to our project, some specific papers inspires us to try out certain algorithms, such as PCA ~\citep{Vijayarekha2008, Zhu2007}) or neural networks ~\citep{Jhuria2013, Pujari2014}. Moreover, the literature review made us aware of the limiting fact that images of fruits and vegetables are captured mainly from one direction~\citep{bhargava2018fruits}.The literature suggests that performance might improve, if more perspectives are taken into account. Moreover, the literature shows that different authors use different color spaces such as CIE Lab, RGB or HSI ~\citep{Liming2010, Garrido-Novell2012, Kondo2010}. This further inspired us to apply color quantization on our data. +Even though no specific paper was used as guidance to our project, some specific papers inspired us to try out certain algorithms, such as \acrshort{pca} ~\citep{Vijayarekha2008, Zhu2007}) or neural networks ~\citep{Jhuria2013, Pujari2014}. Moreover, the literature review made us aware of the limiting fact that images of fruits and vegetables are captured mainly from one direction~\citep{bhargava2018fruits}.The literature suggests that performance might improve, if more perspectives are taken into account. Moreover, the literature shows that different authors use different color spaces such as CIE Lab, RGB or HSI ~\citep{Liming2010, Garrido-Novell2012, Kondo2010}. This further inspired us to apply color quantization on our data. \bigbreak -As the available data was only sparsely labeled, further research was done to evaluate the use of a semi-supervised learning approach~\citep{olivier2006semi,zhu05survey}. Details about the corresponding literature can be found in~\autoref{sec:SemiSupervisedLearning}. In regards to deep learning-based approaches, classical neural networks -- such as AlexNet \citep{alexnet2012original}, \acrshort{vgg}16/\acrshort{vgg}19 \citep{vgg2014original}, GoogleNet \citep{googlenet2015original}, Capsule Networks \citep{capsulenet2017original}, DenseNet \citep{densenet2017original}, ResNet \citep{resnet2016original} or \acrfull{nin} \citep{lin2013network} -- were assessed for better understanding of the range of possible pre-trained networks and ideas for network structures. Also, classical computer vision approaches were considered, like multiclass \acrfullpl{svm} \citep{prakash2012multi}. +As the available data was only sparsely labeled, further research was done to evaluate the use of a semi-supervised learning approach~\citep{olivier2006semi,zhu05survey}. Details about the corresponding literature can be found in~\autoref{sec:SemiSupervisedLearning}. In regards to deep learning-based approaches, classical neural networks -- such as AlexNet \citep{alexnet2012original}, \acrshort{vgg}16/\acrshort{vgg}19 \citep{vgg2014original}, GoogleNet \citep{googlenet2015original}, Capsule Networks \citep{capsulenet2017original}, DenseNet \citep{densenet2017original}, ResNet \citep{resnet2016original} or \acrfull{nin} \citep{lin2013network} -- were assessed for better understanding of the range of possible pre-trained networks and ideas for network structures. Additonal machine learning approaches were considered, like multiclass \acrfullpl{svm} \citep{prakash2012multi}. diff --git a/documentation/report/Chapters/Summary.tex b/documentation/report/Chapters/Summary.tex index 720aa0e..cc4faad 100644 --- a/documentation/report/Chapters/Summary.tex +++ b/documentation/report/Chapters/Summary.tex @@ -1,28 +1,86 @@ +%---------------------------------------------------------------------------------------- +% SUMMARY OF RESULTS +%---------------------------------------------------------------------------------------- + \section{Summary of results} \label{ch:Summary} -The study project was conducted to investigate the state of the art of asparagus classification aiming at the development of approaches that could help to improve the current sorting algorithm implemented in the Autoselect ATS II at the asparagus farm Gut Holsterfeld. Data was collected, preprocessed and then analyzed with seven different approaches. Out of our 591495 images, roughly corresponding to 197165 different asparagus spears, 13271 images were collected by re-sorting with the machine and 13319 images were manually labeled by us. This labeled data is considered for the supervised approaches. The semi-supervised approach is in addition based on approximately equally many unlabeled images, 20000 in total. The unsupervised learning approaches are based on roughly 5500 images. The results illustrate that classifying asparagus is not a trivial problem. However, the results also show that it is possible to extract relevant features that might improve current sorting approaches. +The study project was conducted to explore and develop various approaches for asparagus classification with the aim of improving the current sorting performance of the Autoselect ATS II at the asparagus farm Gut Holsterfeld. Data was collected, preprocessed and then analyzed with seven different approaches. Out of our 591495 images, roughly corresponding to 197165 different asparagus spears, 13271 images were collected by re-sorting with the machine and 13319 images were manually labeled by us. This labeled data is used for the supervised approaches. The semi-supervised approach is additionally based on approximately equally many unlabeled images, 20000 in total. The unsupervised learning approaches are based on roughly 5500 images. + +\begin{table}[!htb] +\centering +\resizebox{\columnwidth}{!}{% +\begin{tabular}{llllllll} + & Semi-supervised & Semi-supervised & PCA & Head & Color & Partial & Single-label \\ + & VAE & autoencoder & & network & histograms & angles & CNN \\ +\noalign{\smallskip} +\hline +\noalign{\smallskip} +Flower & & & 0.33 & 0.62 & & & 0.46 \\ +Rusty head & & & & 0.29 & & & 0.42 \\ +Bent & 0.16 & 0.28 & 0.2 & & & 0.72 & 0.66 \\ +Violet & 0 & 0 & 0 & & 0.59 & & 0.48 \\ +Rusty body & 0.49 & 0.67 & 0.29 & & 0.67 & & 0.69 \\ +Fractured & 0 & 0.67 & & & & & 0.91 \\ +Very thick & & & & & & & 0.93 \\ +Thick & 0 & 0 & & & & & 0.94 \\ +Medium thick & & & & & & & 0.8 \\ +Thin & 0.7 & 0.84 & & & & & 0.88 \\ +Very thin & & & & & & & 0.92 \\ +Hollow & & & 0.5 & & & & 0.63 \\ +Length & & & 1 & & & & \\ +Width & & & 0.83 & & & & \\ +Not classifiable & & & & & & & 0.6 +\end{tabular}% +} +\caption[Comparing F1 Scores for Features]{\textbf{Comparing F1 Scores for Features}~~~Here, the F1 scores of different approaches are compared for the single features. If an approach does not include a feature, the corresponding cell is empty.} + \label{tab:f1ScoresLarge} +\end{table} + +The results illustrate that classifying asparagus is not a trivial problem. However, the results also show that it is possible to extract relevant features that might improve current sorting approaches. \bigskip -For supervised learning, we employed \acrshortpl{mlp} and \acrshortpl{cnn}. Whereas the former were trained on sparse descriptions retrieved by high level feature engineering, the latter were directly trained on preprocessed images. They include networks for single-label classification as well as multi-label classification. +For supervised learning, we employed \acrshortpl{mlp} and \acrshortpl{cnn}. Whereas the former were trained on sparse descriptions retrieved by high level feature engineering, the latter were directly trained on preprocessed images. They include networks for single-label classification as well as multi-label classification. The feature engineering \acrshort{mlp} for curvature prediction and the single-label \acrshort{cnn} perform binary classification, whereas the \acrshort{cnn} for the multi-label approach as well as head-related features network perform multi-label classification. All approaches aim to solve the same image classification problem, using supervised learning. -Each approach has drawbacks and benefits. The complexity and the requirement to specify many parameters has proven to be a disadvantage of relatively deep but also rather shallow \acrshortpl{cnn} as compared to e.g.\ \acrshortpl{mlp}. In contrast, stronger preprocessing or even feature engineering is required to successfully employ the latter. After all, however, the most important criterion to evaluate an approach is its predictive performance. +\begin{table}[!htb] + \centering + \resizebox{.70\linewidth}{!}{% + \begin{tabular}{lr} + {Approach} & (mean) F1 \\ + \noalign{\smallskip} + \hline + \noalign{\smallskip} + Partial angles & 0.72 \\ + Color histograms & 0.66 \\ + Multi-label CNN with binary cross-entropy loss & 0.67 \\ + Multi-label CNN with hamming loss & 0.68 \\ + Multi-label CNN with custom loss & 0.65 \\ + Single-label CNN & 0.72 \\ + Head network & 0.46 \\ + Semi-supervised VAE & 0.19 \\ + Semi-supervised autoencoder & 0.41 \\ + PCA & 0.45 + \end{tabular}% + } + \caption[Mean F1 Score]{\textbf{Mean F1 Score}~~~The mean F1 score for each approach is displayed. Note that a different set of features was selected for different approaches. Hence, the mean F1 score can only give a first impression regarding differences in the performance. For details see \autoref{tab:f1ScoresLarge}.} + \label{tab:f1ScoresSmall} +\end{table} -The heterogeneity of approaches with respect to the number of target categories and the variety of performance measures pose challenges for a direct comparison using the overall accuracies. Therefore, feature-wise evaluation appears most promising. As the distribution of some features (e.g.\ violet) has proven to be very unbalanced in our data set, even high accuracies might relate to poor predictions (e.g.\ when the feature is never detected). Hence, feature-wise accuracies are only a coarse indicator of the model’s performance that may nonetheless give insights where difficulties lie and what features are more difficult to determine than others. However, for some promising approaches we computed the sensitivity and specificity per feature to reveal a more fine-grained picture of the predictive performance. +The heterogeneity of approaches with respect to the number of target categories and the variety of performance measures pose challenges for a direct comparison using the overall accuracies. Therefore, feature-wise evaluation appears most promising. As the distribution of some features (e.g.\ violet) has proven to be very unbalanced in our data set, even high accuracies might relate to poor predictions (e.g.\ when the feature is never detected). Hence, feature-wise accuracies are only a coarse indicator of the model’s performance that may nonetheless give insights where difficulties lie and what features are more difficult to determine than others. However, for some promising approaches we computed the sensitivity and specificity per feature to reveal a more fine-grained picture of the predictive performance. Further, F1 scores were calculated for each approach. For the feature-wise approaches, the F1 score was calculated for each feature individually (see \autoref{tab:f1ScoresLarge}) as well as a mean value for easy comparison with the other approaches (see \autoref{tab:f1ScoresSmall}). The best overall performance was reached by the single-label \acrshort{cnn} with an F1 score of 0.72. Additionally, this approach reached the best feature-wise performances for rusty head, rusty body, fractured and hollow as well as all features related to the width of the asparagus. The best results for the feature violet were reached by the color histograms (0.59) and the best results for the feature flower by the dedicated head network (0.62). Detailed summaries of the results of each approach can be found in the following. \bigskip -In the single-label \acrshort{cnn}, very good results are achieved for features relying on the thickness and length of the asparagus (see \autoref{subsec:SingleLabel}). All of these features achieve a balanced accuracy above 90\%, with best results for the feature very thick (98\% sensitivity and 99\% specificity). Of the solely hand-labeled features, feature hollow shows the best performance (77\% sensitivity and 98\% specificity). The feature rusty head has the least performance (52\% sensitivity and 81\% specificity). +In the single-label \acrshort{cnn}, very good results are achieved for features relying on the thickness and length of the asparagus (see \autoref{subsec:SingleLabel}). All of these features achieve a balanced accuracy above 90\%, with best results for the feature very thick (98\% sensitivity and 99\% specificity). Of the solely hand-labeled features, feature hollow shows the best performance (77\% sensitivity and 98\% specificity). The feature rusty head has the worst performance (52\% sensitivity and 81\% specificity). -The multi-label approach has an overall accuracy of 75\% (see \autoref{subsec:MultiLabel}). The performance of the \acrshort{cnn} for the two head-related features is indicated by sensitivity and specificity values. Flower detection reaches 55\% sensitivity and 95\% specificity while rusty head detection attains only 19\% sensitivity at 98\% specificity. The overall accuracy of the multi-label \acrshort{cnn} approach reaches up to 87\%. For this model, accuracies are not calculated per feature. +The multi-label approach for head-related features has an overall accuracy of 75\% (see \autoref{subsec:MultiLabel}). Its performance is further indicated by sensitivity and specificity values. Flower detection reaches 55\% sensitivity and 95\% specificity while rusty head detection attains only 19\% sensitivity at 98\% specificity. The multi-label \acrshort{cnn} approach with a binary cross-entropy loss reaches an overall accuracy of 87\%, specificity of 91.41\% and sensitivity of 67.27\%. For this model, accuracies are not calculated per feature. -In contrast, feature-wise accuracies for binary classification can be reported (see \autoref{subsec:FeatureEngineering}). The same holds for feature-wise performance measures that were calculated for some of the other approaches. The feature engineering based approaches show good results on all of its three detected features, namely for bent (82\% sensitivity, 67\% specificity) and similarly for violet detection (62\% sensitivity and 96\% specificity) as well as for rusty body (71\% sensitivity, 65\% specificity). +In contrast, feature-wise accuracies for binary classification can be reported (see \autoref{subsec:FeatureEngineering}). The same holds for feature-wise performance measures that were calculated for some of the other approaches. The feature engineering based approaches (see \autoref{subsec:FeatureEngineering}) show good results on all of its three detected features, namely for bent (82\% sensitivity, 67\% specificity) and similarly for violet detection (62\% sensitivity and 96\% specificity) as well as for rusty body (71\% sensitivity, 65\% specificity). \bigskip -The unsupervised learning approaches, namely \acrshort{pca} and the convolutional autoencoder, both deal with dimension reduction. Both were trained on the sample set for which labels are available. While the classification method based on \acrshort{pca} targets at binary feature prediction (absence or presence of a feature) (see \autoref{subsec:PCA}), the unsupervised autoencoder does not predict labels (see \autoref{subsec:Autoencoder}). The accuracy of \acrshort{pca} is promising for length and hollow (100\%) but extremely poor for bent detection (20\%). It has to be mentioned that only very few samples were used for training and evaluation of the named approach. As such it is yet to be proven whether or not these results generalize. +The unsupervised learning approaches, namely \acrshort{pca} and the convolutional autoencoder, both deal with dimension reduction. While the classification method based on \acrshort{pca} targets at binary feature prediction (absence or presence of a feature) (see \autoref{subsec:PCA}), the unsupervised autoencoder does not predict labels (see \autoref{subsec:Autoencoder}). The accuracy of \acrshort{pca} is promising for length (100\%) and width (sensitivity 100\%, specificity 60\%) but extremely poor for violet detection (sensitivity 0\%). It has to be mentioned that only very few samples were used for training and evaluation of the named approach. As such it is yet to be proven whether or not these results generalize. \bigskip A semi-supervised learning method was based on a partially labeled data set (see \autoref{subsec:VariationalAutoencoder}). A semi-supervised autoencoder and a semi-supervised variational autoencoder perform multi-label classification. The more simple semi-supervised autoencoder performs better. Unfortunately, the predicted power is still rather poor, best for fractured (57\% sensitivity, 100\% specificity) and worst for violet as it does not detect any violet spears (0\% sensitivity). \bigskip -In the last approach, a random forest model that predicts the class labels based on the annotated features instead of features as the aforementioned approaches, delivers an average accuracy of about 75\%. Our analysis shows that the model recalls some class labels like I A Anna or Hohle more reliably than class labels like II A or II B. \ No newline at end of file +In the last approach, a random forest model that predicts the class labels based on the annotated features instead of features as the aforementioned approaches, delivers an average accuracy of about 75\%. Our analysis shows that the model recalls some class labels like I~A~Anna or Hohle more reliably than class labels like II~A or II~B. \ No newline at end of file diff --git a/documentation/report/asparagus-report.pdf b/documentation/report/asparagus-report.pdf index c92020f9f5299716fd6a0da6e1fa19b6905a86ae..e83304cf3103283c699ebad74c58516967e73c23 100644 GIT binary patch delta 325452 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 z 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 z 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

Zc4y6Bjg* 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

    X&mW0%I?Fh@WalhkC-kHcHrd|5^<_e{mln^|d- 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

    `Ew`W%E^D-?d~@ISYi2tb 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≶8hUw*8A&O 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�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 delta 328506 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
    ?yP3b75CC4i+Cc5f9RNRQt3Edy+v@ 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 Kqmx#VLH diff --git a/documentation/report/bibliography.bib b/documentation/report/bibliography.bib index 77831c4..fac8c5f 100644 --- a/documentation/report/bibliography.bib +++ b/documentation/report/bibliography.bib @@ -256,6 +256,7 @@ @inproceedings{caruana2006comparison publisher = {Association for Computing Machinery}, address = {New York, NY, USA}, url = {https://doi.org/10.1145/1143844.1143865}, +urldate = {2020-03-25}, doi = {10.1145/1143844.1143865}, booktitle = {Proceedings of the 23rd International Conference on Machine Learning}, pages = {161–168}, @@ -805,8 +806,8 @@ @misc{wiki:precisionrecall author = "{Wikipedia contributors}", title = "Precision and recall --- {Wikipedia}{,} The Free Encyclopedia", year = "2020", - url = "https://en.wikipedia.org/w/index.php?title=Precision_and_recall&oldid=945184172", - note = "[Online; accessed 21-April-2020]" + url = {https://en.wikipedia.org/w/index.php?title=Precision_and_recall&oldid=945184172}, + urldate = {2020-04-21} } @online{hassan2018vgg, @@ -893,6 +894,7 @@ @book{szeliski2010computer @article{LeCun2015, doi = {10.1038/nature14539}, url = {https://doi.org/10.1038/nature14539}, + urldate = {2020-04-24}, year = {2015}, publisher = {Springer Science and Business Media {LLC}}, volume = {521}, @@ -924,6 +926,7 @@ @article{Zhu2007 Pages = {741 - 749}, Title = {Gabor feature-based apple quality inspection using kernel principal component analysis}, Url = {http://www.sciencedirect.com/science/article/pii/S0260877407000489}, + urldate = {2020-04-24}, Volume = {81}, Year = {2007}, } @@ -940,7 +943,8 @@ @inproceedings{Jhuria2013 Pages = {521-526}, Title = {Image processing for smart farming: Detection of disease and fruit grading}, Year = {2013}, - URL = {https://doi.org/10.1109/ICIIP.2013.6707647} + URL = {https://doi.org/10.1109/ICIIP.2013.6707647}, + urldate = {2020-04-25} } @@ -954,7 +958,8 @@ @article {Pujari2014 volume = {17}, number = {2}, Pages = {29 - 34}, - url = {https://content.sciendo.com/view/journals/ata/17/2/article-p29.xml} + url = {https://content.sciendo.com/view/journals/ata/17/2/article-p29.xml}, + urldate = {2020-04-25} } @@ -967,7 +972,8 @@ @article{Liming2010 Note = {Special issue on computer and computing technologies in agriculture}, Pages = {S32 - S39}, Title = {Automated strawberry grading system based on image processing}, - Url = {http://www.sciencedirect.com/science/article/pii/S016816990900204X}, + url = {http://www.sciencedirect.com/science/article/pii/S016816990900204X}, + urldate = {2020-04-25}, Volume = {71}, Year = {2010}, } @@ -983,6 +989,7 @@ @article{Garrido-Novell2012 Pages = {281 - 288}, Title = {Grading and color evolution of apples using RGB and hyperspectral imaging vision cameras}, Url = {http://www.sciencedirect.com/science/article/pii/S0260877412002701}, + urldate = {2020-04-25}, Volume = {113}, Year = {2012}, } @@ -998,7 +1005,19 @@ @article{Kondo2010 Pages = {145 - 152}, Title = {Automation on fruit and vegetable grading system and food traceability}, Url = {http://www.sciencedirect.com/science/article/pii/S0924224409002611}, + urldate = {2020-04-26}, Volume = {21}, Year = {2010} } +@inproceedings{ronneberger2015u, + title={U-net: Convolutional networks for biomedical image segmentation}, + author={Ronneberger, Olaf and Fischer, Philipp and Brox, Thomas}, + booktitle={International Conference on Medical image computing and computer-assisted intervention}, + pages={234--241}, + year={2015}, + organization={Springer} +} + + +