• Ei tuloksia

Deep Learning Neural Networks-Based Edge Detection in Mechanical Components

N/A
N/A
Info
Lataa
Protected

Academic year: 2022

Jaa "Deep Learning Neural Networks-Based Edge Detection in Mechanical Components"

Copied!
69
0
0

Kokoteksti

(1)

DEEP LEARNING NEURAL NETWORKS-BASED EDGE DETECTION IN MECHANICAL

COMPONENTS

Md Arifur Rahman

Master's thesis

School of Computing Computer Science

February 2021

(2)

i

UNIVERSITY OF EASTERN FINLAND, Faculty of Science and Forestry, Joensuu School of Computing

Computer Science

DEEP LEARNING NEURAL NETWORKS-BASED EDGE DETECTION IN MECHANICAL COMPONENTS

Master’s Thesis, 51 p., 1 appendix (13 p.)

Supervisors of the Master’s Thesis: Professor. Xiao-Zhi Gao February 2021

Abstract: For the past few decades, the traditional deep neural network was one of the vital parts of machine learning methods, but in recent years the trend has been changed with the development of machine vision technology. Nowadays convolu- tional neural network is used in most image detection-related sectors. Detecting the special features from the images such as hole detection, edge detection, or detection of any corners can be easily and effectively done using the convolutional neural network. The system can estimate and identify the location of possible objects for object detection.

This research aims to detect the special features from the images and determine the coordinates of the edges then convey those data to the industrial computer, which is used for the accurate assembling of the mechanical parts in the industry. The re- search is started with capturing the images of the mechanical disc. Next, the targeted parts of the images subjected to be detected are labeled using image labeling tools. In the next step, all the images are used in training. After the training, the weight value obtained from the training is used in the python code for detecting the features. A graphical user interface is made for operating with the data and result demonstration.

In the result section, all the required edges are identified correctly in the first step. In the second step, the mean distances between the two edges are determined using the Euclidean method. Lastly, the holes are detected and the center and the coordinates of the center of the holes are also identified.

Keywords: Artificial Intelligence, Pattern Recognition, Edge Detection, Convolu- tional Neural Network, Computer Vision.

(3)

ii

Acknowledgment

This thesis was done at the School of Computing, University of Eastern Finland dur- ing spring 2020.

At the very beginning, For His heavenly blessing, I would like to express my warm- est gratitude to the Almighty. It would not be possible to finish my thesis successful- ly without his blessings.

First and foremost, I would like to thank my honorable supervisor, Xiao-Zhi Gao, Professor, School of Computing, University of Eastern Finland, for giving me enor- mous support, advice, and valued guidance concerning this Thesis.

Last but not the least, I woe more than thanks to my family members for their con- tinuous support and encouragement throughout my whole educational career. With- out their support, I couldn't complete my educational career seamlessly.

Joensuu, February 2021 Md Arifur Rahman

(4)

iii

List of abbreviations

DL Deep Learning

RL Reinforcement Learning AI Artificial Intelligence

UEF University of Eastern Finland GUI Graphical User Interface DPI Depth Per Inch

CNN Convolutional Neural Network

NN Neural Network

(5)

iv

Contents

1 Introduction ... 1

1.1 Problem statement ... 1

1.2 Structure of the thesis ... 1

Background ... 2

1.3 Artificial Intelligence ... 2

1.4 Neural Network ... 3

1.4.1 Parameters of Neural Network ... 4

1.4.2 Architecture of Artificial Neural Network ... 5

1.4.3 Layers in Artificial Neural Network ... 6

1.4.4 Categories of Artificial Neural Network ... 7

1.5 Deep Learning ... 8

1.5.1 Types of Deep Learning Approaches ... 8

1.5.2 Supervised Learning ... 9

1.5.3 Unsupervised Learning ... 10

1.5.4 Why to use Deep Learning ... 11

1.5.5 When to apply Deep Learning ... 11

1.5.6 Challenges of Deep Learning ... 11

1.6 Machine Learning ... 13

1.7 Machine Vision ... 14

2 Convolutional Neural Network ... 15

2.1 How color images are produced ... 15

2.2 Introduction ... 15

2.3 Architecture ... 16

2.3.1 Convolutional layer ... 17

2.3.2 Pooling layer ... 17

2.3.3 Fully connected layer ... 18

2.3.4 Training Algorithm ... 19

3 Materials ... 21

3.1 Camera and Lens used for capturing data ... 21

3.1.1 Canon EOS 6D Mark II camera ... 21

3.1.2 Canon Zoom Lens EF 24-105mm φ77mm ... 22

3.2 The Disc ... 24

3.3 Image labeling software (LabelImg) ... 25

3.4 Darknet (Training Tool) ... 25

3.5 Python ... 26

4 Experimental Design ... 27

4.1 Equipment Used For Experiment ... 27

4.2 Image Capturing Process ... 29

4.3 Methods used for this study ... 29

4.3.1 Image Labelling ... 30

4.3.2 Training the Model ... 32

(6)

v

4.4 Calculating Mean Distance Between two Edges ... 35

4.5 Graphical User Interface ... 35

4.6 Python Library ... 36

5 Result Analysis ... 38

5.1 Output for Detecting two edges ... 38

5.2 Output for Calculating Mean Distance Between two edges ... 40

5.3 Results for Hole Detection ... 42

6 Conclusions ... 45

References ... 47 Appendices

Appendix 1: Python Source Codes (13 pages)

(7)

1 Introduction

Nowadays pattern recognition is the most efficient feature that controls any machine learning or Artificial Intelligence program. The progress of the industries are noticeable which are working based on machine learning. There are several patterns of data prevailing in this world. Some data are similar in categories, and some are different in the categories. We can classify all the data based on their respective features with the help of traditional programming but that is time-consuming and not efficient enough. With the help of machine learning, we can perform this task more easily by creating a model. Using the available data the machine learning model can classify different patterns. [1]

1.1 Problem statement

Different parts of a material located in the images can be tracked and detected automatically. This technique is known as object detection, which is one of the fundamental computer vision problems. It is known that convolutional neural networks are the best efficient technique as the solution for detecting objects from the images. This study is primarily aimed at reviewing and checking deep convolutional methods for detecting objects. In the theoretical section, we discuss the backgrounds and examine how deep convolutional methods of object detection have advanced in recent years. In the experimental section, we analyze how simple it can be to implement a convolutional object detection method, to assess how nicely a machine trained in fundamental data obtained from the image and executed a certain task, and to investigate it based on the theory and experiments.

1.2 Structure of the thesis

This research is arranged in 6 sections. In section 1, the theory of deep learning and machine learning is introduced. Section 2 describes the principle of convolutional neural networks in brief. In section 3, the materials used in the research and their working principle are explained. Section 4 demonstrates the experimental design of the research. In section 5, the analysis of edge detection and hole detection using

(8)

convolutional methods and the results are presented. The algorithm and procedure we implemented to analyze the object is explained in this section. Lastly, section 6 concludes with a summary of the experiment.

Background

This section introduces the Deep Learning technique and its background. At the beginning sub-section, 1.3 presents the theory of Artificial intelligence, where it describes the basic knowledge about Artificial Intelligence and also describes its goals and applications. Sub-section 1.4 the theory and architecture of neural networks have been discussed. Sub-section 1.5 talks about the background of deep learning with its classification. In sub-section 1.6 describes the concept of Machine learning as well as the applications of it, the difference between conventional imaging and spectral imaging. Sub-section 1.7 talks about machine vision technology.

1.3 Artificial Intelligence

AI means the representation of human intelligence possessed by machines built to behave like people and imitate their actions. The word can also be used for any computer with characteristics that are related to a human's mind, such as training and solving problems. The ideal aspect of artificial intelligence is its ability to justify and take steps that provide the greatest potential for achieving a certain objective.[ 2]

The idea behind Artificial Intelligence is that human intelligence should be described such that a computer can easily imitate and perform tasks, from the easiest to the more complicated. The main purposes of Artificial intelligence are perception, reasoning, and learning. When technology progresses, previous standards describing artificial intelligence become obsolete.

For illustration, machines that calculate essential functions or recognize text utilizing an optimal character identification are no longer considered to be the embodiment of artistic intelligence because this function is now considered to be an inherent

(9)

computing function. Machines are drawn up with an interdisciplinary approach focused on math, computer science, psychology, linguistics, etc.[ 2]

Figure 1. Taxonomy of Artificial Intelligence.[ 3]

1.4 Neural Network

The artificial neural network is a machine learning system that uses a network of functions to recognize and transform one data type input to another targeted output of a different form. The neural network can be compared to the human brain because it can perform a task similar to a human brain does.

Machine learning uses many types of approaches and tools but among them, the neural network is the most important and most used one. In multiple algorithms, the neural network can be used to process complex data inputs in such a way that the computer may understand them very easily. In various real-life problems like image processing, pattern recognition, speech recognition, medical diagnosis, etc the neural networks are used. In both artificial neuron and organic systems, artificial neural networks are being used. Neural networks can be adapted to changing inputs such that the network can generate the best result without having to redesign performance parameters. [4.18]

(10)

Machine learning techniques using neural networks are usually not configured to determine what to expect with the input. The neural network algorithm learns while processing several labeled examples during training the data, which are provided while training the data with this response key to figuring out what input characteris- tics are required to create the right output. The neural network can process new, un- known inputs then accurately return a precise result after processing a suitable num- ber of examples. As the program can preserve the result of the previous session so it can provide more accurate results while the number of training is increased. [5.19]

1.4.1 Parameters of Neural Network

The explanations of each of the parameters are as follows:

Binary

The binary activation function value can be 1 or 0. For accomplishing this, there is a value which is known as the threshold value. The final output of the neuron function is returned as 1 When the weighted neuron net entry reaches more than 1 or the neuron output returns 0.

Sigmoidal Hyperbolic

A general 'S' curve is the Sigmoidal Hyperbola function. The hyperbolic tan function for estimating the output of the actual net input is used here. This defines the function as:

f (x) = (1/1+ exp(-x))

where x is considered the steepness parameter.[5.19]

Activation function types

The final output of each neuron is determined by the activation function φ. To build an efficient network, it is necessary to properly select the feature. Early researchers noticed that there were significant limitations to perceptrons and other linear structures, which could not solve linearly separable problems, for example, the XOR issue. Often, using handcrafted feature detectors, these types of problems can be

(11)

solved by using linear systems, but it is not the most beneficial utilization of machine learning. Attaching layers may not work either, because no matter how many layers it has, a network remains linear that is composed of linear neurons. Rectified linear units are a lightweight and efficient way to build a non-linear network[6.14]. The output is generated by a rectified linear function using a ramp function like:

ϕ(s) = max (0, s)

It is easy to compute and distinguish this type of operation. The feature is not distinguishable at zero, although in practice this has not stopped its use. ReLus has recently become very common, often substitute for sigmoid activation, which has smooth alternatives and has saturation issues with slower computation. The SoftMax activation function[7.12] has been utilized in the feedback level of the network for multi-class classification problems:

The SoftMax function arbitrarily uses a K-vector with higher value outputs and a K- vector varying from 0...1 to sum 1. The SoftMax unit performance values can be used as class probabilities.[6.14]

1.4.2 Architecture of Artificial Neural Network

It needed to have some knowledge regarding a traditional neural network, to understand the structure of an artificial network. It requires a huge amount of artificial neurons that are called units which are organized in a number of layers to represent a typical neural network.

(12)

Figure 4. A simple Neural Network diagram.[8.20]

1.4.3 Layers in Artificial Neural Network

Different kinds of layers available in an artificial neural network are described below:

Input layer:

The input layers only include artificial neurons that receive external input that is known as units this is where the real network learning takes place or recognition takes place otherwise.

Output layer:

The output layer contains units that respond to it and learn from the information that is fed into the system.

Hidden layer:

The hidden layers between the output layers and the input layers are mentioned. The only role of a hidden layer is to turn the input into something that can be used in certain ways by the output layer.

(13)

Almost all the artificial neural networks are mostly interconnected, this ensures that all the hidden layers in their output layer and their input layer are individually connected with the neurons so that nothing can remain in the air. This allows a full learning process. After each iteration, learning takes place at the most when the weight inside the artificial neural network is modified.[9.21]

1.4.4 Categories of Artificial Neural Network

There are many kinds of neural networks and some of them are discussed below:

Feed-forward neural networks

For the neural network feed-forward, neural networks are the simplest algorithm. The feed-forward network doesn't have any memory. That is, in a feed-forward network there is no return. This method does not apply so well to certain tasks. As a reference, the words form a certain sequence when we deal with text, and we want it to be understood by the computer. In supervised learning, Feedforward neural networks are being implemented once the data on which it operated is not time-based or sequential. It can also be used when this is not known how the performance will be organized But wish to create a neural network relatively quick and simple.[10.22]

Recurrent neural networks

The processing of a set of images, videos, and texts can be done efficiently using the recurrent neural network. It provides a very precise result because it can preserve the outcomes of earlier iteration to use the data in the future to make a flawless decision.

For speech recognition and image processing, this method is widely used.[11.23]

Generative adversarial neural networks

An unsupervised machine learning algorithm is a generational adversarial network that combines two neural networks, one generating patterns and others attempting to differentiate true samples from guilty ones. Although networks have inverse objectives - sample production and rejection of samples - they are beginning an antagonistic game that is very successful.[12.24]

(14)

1.5 Deep Learning

A method of machine learning that makes it possible for machines to learn from the experience and understand the structure of ideas is termed deep learning. As knowledge is gathered by the computer from previous experience so a human- computer operator does not need to officially define any of the information that the computer requires. By constructing them of simpler concepts the hierarchy of concepts helps the machine to learn complex concepts; several levels are depth in a graph of these hierarchies.[ 13.6]

Classical machine learning is extended by deep learning by introducing additional

"depth," transforming data across many degrees of abstraction, using different functions that hierarchically permit data representation. A major benefit of DL is the auto-extraction of features from raw data, which results in a composition of lower- level features from higher levels in the hierarchy. The DL can especially well and quickly solve complex problems by using a more sophisticated model that enables significant parallelization. These complex models used in DL can enhance classification accuracy or minimize regression problem errors given that large data sets explaining the problem are adequately available.

Depending on the networking architecture utilized, DL consists of many components. The largely hierarchic structure and broad learning ability of the DL models make them especially successful at performing classification and forecasts, making them scalable and adaptable for a wide range of highly critical issues. DL has gained prominence in various raster-based data applications but can still be used on any type of data for example speech, audio, and language, either in point data or continuous data, such as soil chemistry, weather data, and population data. [14.7]

1.5.1 Types of Deep Learning Approaches

The DL method may be classified into supervised, semi-supervised, or partly supervised and unsupervised. Another type of learning methodology, Reinforcement Learning or Deep RL is discussed also in the form of semi-supervised or in some cases, unsupervised learning. In this study, we have worked with supervised and unsupervised learning. But reinforcement learning is no been used in our work.[ 3]

(15)

Figure 2. Category of Deep Learning approaches.[ 3]

1.5.2 Supervised Learning

Typically, supervised learning starts with a collection of data and a certain sense of classification. The object of a supervised study is to identify patterns in the data which may be used for analysis. These data have characteristics that determine the meaning of the data. For example, millions of animal images could be created to illustrate what each animal is, and then a learning machine would be created to differentiate between animals. It may classify hundreds of categories of different animals by marking this data on animal types. Due to the identification of the characteristics and significance of the data, the users training the modeled data to meet the mark information can be well-understood.

It is a regression when the label is continuous; when the knowledge comes from a small number of values it is referred to as a classification. Essentially, regression for supervised learning allows you to understand the link between variables. Weather forecasting is an example of supervised learning. Using logistic regression, weather forecasting helps determine established weather patterns of history and current weather conditions to predict the weather. The models are tested on pre-processed samples and at this stage, test data are used to assess the output of algorithms. In the wider population, trends found in a data subset may sometimes not be observed.

(16)

When the algorithm is capable of only representing the patterns in the training subset, an overfitting problem will be generated. Overfitting ensures that the model is accurately adjusted to your training data but does not apply to huge unknown sets of data. Testing of unexpected or unknown data is needed in order to protect against overfitting. The use of unforeseen test data will help to determine the exact outcomes and results of the model. Training of supervised models has widespread applicability to a number of business issues, fraud identification, recommendation solutions, voice recognition, or risk assessment. [15.5]

1.5.3 Unsupervised Learning

Unsupervised learning is most appropriate if there is a large number of unlabeled data needed for this problem. For example, applications in social media like Twitter, Instagram, Snapchat have a huge quantity of data that are unlabelled. Understanding the value of these data involves algorithms that can start understanding the significance by classifying the data according to patterns or clusters in which it identifies. Supervised learning thus performs an iterative data processing method without human involvement. Unsupervised learning with spam detection technology is used. There are already several variables for an analyst to flag unnecessary bulk emails in legitimate and spam emails. The machine learning classification is used instead to classify unwanted e-mails, based on clustering and association.

Unsupervised research algorithms segment data into examples category or function classes. The unlabelled data produces the importance of parameters and data classification. This method basically applies labels to the data to be tracked.

Unsupervised learning can decide the result when a large number of data is available.

In this case, the developer is not familiar with the context of the research data, so at this point, labeling is not possible. Unsupervised learning can also be used as the first stage before data is passed on to a supervised learning process.[16.8] Unsupervised learning algorithms will allow companies to recognize large quantities of new, unlabelled data. Likewise, these algorithms seek patterns in the information for supervised learning the difference though is that the data is not understood already.

For example, in healthcare, it can help physicians to gather information on symptoms trends and connect them to findings from patients by gathering vast quantities of data on a particular disease. All sources of information associated with a disease, such as

(17)

diabetes, would take too long to mark. An unsupervised learning approach can therefore help to evaluate results faster than a supervised approach to learning.[17.9]

1.5.4 Why to use Deep Learning

DL is often referred to as universal learning as it applies to virtually every application domain. Deep learning methods don't need a specific feature. Rather, optimum functionality for the task at hand is learned automatically. This ensures that the input data are tolerant of natural variations. This strategy is often referred to as transfer learning. Besides, if the problem does not even have ample available data, this method is still beneficial. This concept has been discussed in many pieces of literature. The DL model is extremely scalable. A deep network known as ResNet was invented by Microsoft.[18.10] There are 1202 layers in this network and it is also applied on a supercomputing scale. At the Lawrence Livermore National Laboratory (LLNL), there is a major initiative to build network architectures like this, that can deploy thousands of nodes. [18.10]

1.5.5 When to apply Deep Learning

In some cases where machine intelligence can be beneficial in those places, DL is employed. Firstly, this can be used in the absence of a human expert. It will then be used while people are unable to clarify their abilities such as vision, speech recognition, and language understanding. It can then be used to solve the changes in the problem over time such as weather prediction, tracking, preference, price prediction, and stock. It can then be used where solutions have to be tailored to individual situations such as personalization and biometrics. Finally, if the problem size is too big for limited thinking skills such as calculate webpage ranks, sentiment analysis and matching ads to Facebook then it can be used to [19.11]

1.5.6 Challenges of Deep Learning

Deep Learning has many challenges. First of all, these are big data analytics that uses deep learning. Then, deep learning approaches scalability. Afterward, the capability to produce data is necessary when there is no information available for the system to learn. Then, for special-purpose applications, energy-efficient methods, including

(18)

FPGAs, mobile intelligence, and many more. Then, multi-task learning as well as transition or multi-module learning. That implies learning together from other various or models. Finally, it deals with the causality of learning. [7.12]

Deep Learning community has already considered several of the challenges listed above. Firstly, there is a strong survey that was carried out in 2014 for the challenge of big data analytics [20.13]. The authors explained in this paper how DL can handle various parameters, including the number, speed, veracity, and variety of large data complications. In dealing with large data issues, he also demonstrated numerous advantages of DL approaches [6.14]. Figure 3 shows that, for smaller quantities of input data, the success rate of the conventional machine learning method represents more improve results. When the volume of data is greater than a specific amount, the output of conventional approaches to machine learning gets constant, while DL techniques are enhanced with regard to increasing the volume of data.[21.15]

Figure 3. Deep learning performance concerning the volume of data.[20.13]

Afterward, the approach is applied to a high-performance computing device in most cases to address large-scale issues that provide tremendous Data-intensive enterprise computing ability. When data explodes with respect to speed, veracity, velocity, volume, and variety, it is becoming progressively hard to handle computing efficiency in step with the increase. Most of the papers took all the criteria into

(19)

account and proposed successful HPCs with heterogeneous computing systems. In one case, the National Laboratory of Lawrence Livermore has developed a system for large-scale DL implementation named Livermore Big Artificial Neural Networks that supersedes the issue of deep learning scalability. [22.16]

Thirdly, for deep learning, generative models are also a challenge.GAN is one of the examples, that is an excellent information generation method for any activity that produces data with almost the same distribution. [20.13].

Lastly, a causality learning system is proposed, it is a model that describes graphically how to infer a causal data model. An approach based on deep learning to solving this form of problem has recently been proposed. [23.17] Nonetheless, other challenging problems were resolved over the decade that was not possible to solve successfully until this evolution. For example, text to image synthesis, Image or video captioning, style conversion using GAN from one domain to another domain, and many more, for instance. [20.13]

1.6 Machine Learning

In computer vision applications, research algorithms are commonly used. We will take a quick look at the fundamentals of machine learning before contemplating the picture-related tasks. Machine learning has proven to be a useful technique for designing problems that otherwise are hard to formulate. Traditional computer programs are manually designed to carry out a mission. A part of human contribution is replaced with a learning algorithm with machine learning. As computing capacity and availability of data have increased, machine learning has become virtually omniscient over the years. [24.4]

We can't expect a model to be 100 percent precise in machine learning, but the assumptions must be so similar that they can be divided into a specific category. The model is developed in Machine Learning based on certain algorithms that are learned from the given data. Statistics are used in the model. Machine learning can analyze and create a model with certain data that can predict things automatically. We have

(20)

to provide data with different characteristics to obtain a better prediction from such a model to allow the algorithms to recognize different patterns that might occur in a given problem.

Machine learning is a type of AI that allows a program to train from data instead of explicit programming. However, this is not an easy process. Based on the training data generated by the algorithms, more accurate models can be created based on these data. The result obtained by training a machine-learning algorithm with data is a machine-learning model. After training, the output can be obtained by providing a model along with the input. it can obtain an output by providing an A predictive algorithm. Then predictions will be obtained based on the data trained by the model when you supply the predictive model along with data.

Machine learning helps models to train data sets before deployment. There are online and simultaneous machine-learning models. This recursive online model method tends to an improvement in the class of connections between data elements. These models and correlations may easily have been ignored by human observation because of their size and complexness. After the training of a model, That is used in real-time to learn from results. Accuracy improvements are attributed to the automation and training processes involved in machine learning.[ 15]

1.7 Machine Vision

Machine vision is a form of technology that allows a computer to analyze, identify and classify moving images or still images. This is the branch of computer vision which is like surveillance cameras that automatically record, analyses, and processes images. Resolution and sensitivity are two essential requirements for any vision system. The ability of a system to detect weak light or to sense weak pulses whose wavelength lies between the invisible range is termed sensitivity. Resolution is the machine's capacity to discriminate among objects.[25] The higher the resolution, the more the field of vision is confined. Resolution and sensitivity are not dependent on each other. For many industrial purposes, machine vision technology is used. Its mainly used in object recognition, optical character recognition, material inspection, pattern recognition, electronic component analysis, etc.[26]

(21)

2 Convolutional Neural Network

2.1 How color images are produced

A pixel or a picture element is the smallest element in an image. Essentially, it's a point(dot) in the picture. A picture comprises several pixels that are arranged in rows and columns. But a machine doesn't see pixels as colored points. It only contains numbers. The machine uses different color models to translate colors to numbers.

Pixels can be seen in the RGB color model in color images. Red Green Blue is named RGB. These three colors are combined in each pixel.RGB is great for illustrating most human colors by mixing different quantities of red, green, and blue.

Each element may typically be between the range starting at zero (no color) and ending at 255 (complete saturation).[27]

Figure 5. Color Composites

2.2 Introduction

A convolutional neural network is a deep neural learning network for the processing of structured data arrays, including images. Convolutional neural networks have a

(22)

wide variety of uses in computer vision and are becoming state-of-the-art in many visual applications, such as image recognition. Convolutional neural networks are really effective at gathering patterns including lines, edges, circles, gradients, or indeed faces and eyes. It is this property that makes convolutional neural networks so powerful for computer vision. Controversial neural networks may operate over an image directly and require no pre-processing, unlike earlier computer vision algorithms. A convolutional neural network, usually of up to 20 or 30 layers is a feed-forward neural network. The power of a convolutional neural network is extracted from a particular layer termed a convolutional layer. Convolutional neural networks have several convolutional layers, Each of them may recognize more advanced shapes.[28]

2.3 Architecture

The basic architecture of the CNN architecture is as bellow.

Figure 6. The architecture of the convolutional neural network.[28]

The model takes a picture as input, executes several layers of pooling and convolu- tional layers to produce the output followed by fully connected layers each part of the architecture is described in the following chapters.

(23)

2.3.1 Convolutional layer

The first layer where from the input images the features are extracted is known as the convolutional layer. Using small squares of input data after learning image features the convolution restores the link between pixels. It is an operation with two inputs, for example, an image matrix and a filter or kernel. Consider a 5 x 5 with pixel val- ues of 0, 1, and filter of matrix 3 x 3. The convolution of the 5 x 5 image matrix is then multiplied by the 3 x 3 filter matrix called the "Feature Map" as output.

Convolution of an image can be created using various filters such as edge detection, sharpening, and blur through the application of filters. [29]

2.3.2 Pooling layer

Typically the next step is pooling in order to minimize dimensionality after a convolution process. It reduces the number of variables, shortening training time, and combating overfitting. The layers of the pooling are isolated from each feature map, reducing height and width to keep the depth intact.

The most popular pooling method is max pooling, where the highest value is only given to the pooling window. Unlike the convolution process, there are no parameters for pooling. A window is slid over its input and only takes the highest value in the window. We specify the window size and phase, just like a convolution.

Max pooling outputs the full value of the elements in the filter part of the image and the average value is returned by the average pooling. For extracting important features max pooling is the most effective method.[28]

Average pooling means that the average for each patch of the function map is determined. This means that the average value in the square is sampled down to 2 x 2 square of the function map.[28]

(24)

Figure 7.Classification of pooling.[30]

2.3.3 Fully connected layer

The goal of a fully connected layer is to use and classify the image into a Label with the results of the convolution Or pooling process. The output of convolution or pooling is reduced to a single value vector, Each one represents a chance that some function will be included in the label.[30]

The method of passing the input values to the first neuron layer is demonstrated by the picture below. They are multiplied by a weight and are triggered in the same way as in a classic neural artificial network. Then it is transferred to the output layer, in which each neuron is a classification marker.[28]

(25)

Figure 8.A Fully Connected Layer.[28]

To calculate the most exact weights the fully connected layer of the CNN network undergoes its backpropagation process. Each neuron gets the most suitable label weights. Finally, each of the labels is "voted" by neurons, and the decision on classification is the winner of that vote.[30]

2.3.4 Training Algorithm

The capability to learn from pattern presentation is the most significant feature of the convolutional neural network. The training phase requires a variety of steps to regulate networks neuron, thresholds, and weights. The network learned the similarity between outputs and inputs after being trained and generate a result similar to the desired output of each particular input.[31]

Neural networks can be compared to human beings as they learn from the example.

A neural network is generated by a collection of input data known as a training set.

The purpose of the training is to reduce the rate of error. The error function has a value that is built on the variation between the desired output and the neural network output.[32]

(26)

A validation set is used to validate the works of the neural network. The size of the validation set is 10-40% of the data set that is used for training. Both the validation st and training set has the input data. The exception is that the weights correlated with the neuron relation are not adjusted by using the validation set since this is mainly to observe their accuracy. Supervised learning is used in this analysis in combination with offline learning. Therefore for the training of a CNN using a supervised learning system includes a table, often called a value table that contains input and planned output. Training the system is considered as completed when the variation between the desired output and generated outputs reaches an acceptable range. In offline learning, after training of the network in a subset of the training set, weights and thresholds are modified.[31]

(27)

3 Materials

In this chapter, the description of the materials used in this research is described.

Section 3.1 introduces the Canon EOS 6D Mark II camera and Canon Zoom Lens EF 24-105mm φ77mm that is used to capture images in the research. Section 3.2 describes the working procedure of image labeling software. Section 3.3 describes the image labeling tool Section 3.4 describes the software used for neural network training. Section 3.5 describes the overview of python.

3.1 Camera and Lens used for capturing data

The powerful Canon EOS 6D Mark II camera is used for capturing huge data and Canon Zoom Lens EF 24-105mm φ77mm is used.

3.1.1 Canon EOS 6D Mark II camera

The EOS 6D II is one of the best cameras based on its features than its predecessor.

A camera that is able to create great pictures in a range of circumstances with a lot of resolution, decent bursting shooting speeds, and good Can-on colors. Nevertheless, the rivalry, consisting of more able cameras, is simply overshadowed.

Figure 9(a). Canon EOS 6D Mark II camera

(28)

Table 1

Specification of The Camera

Variable Specification

Effective pixels 26.2 megapixels

Data Format JPEG, RAW, M-RAW, S-RAW

Processor DIGIC 7

Focal length(Lens) 1.0x lens focal length

ISO sensitivity automatic (100-40000), 100-40000 (1/3

or full value increments)

Shutter speeds 30-1 / 4000 s

Color space sRGB and Adobe RGB

Viewing angle About 170 °( (horizontal / vertical)

NFC function NFC Forum Type 3/4 Tag compatible

3.1.2 Canon Zoom Lens EF 24-105mm φ77mm

For a wide range of focal length and excellent optical and mechanical quality, this is one of the best performing lenses of cannon L-Series. The range of the focal length is one of the most important features of the lens. Sometimes all the lenses are not about the capture the images in wide-angle due to shorter focal length.

This lens gives us a very nice general-purpose focal range to work with. The lens helps us to operate it the capturing high-quality images in a wide-angle range.24mm is very wide on a whole frame body. On a 1.6x body, 24mm is only moderately wide.

(29)

Figure 9(b). Canon Zoom Lens EF 24-105mm φ77mm

Table 2 Specification of The Lens

Variable Specification

Angle of view 74°-19°20'(horizontal)

53°-13°,(vertical) 84° - 23°20'(Diagonal)

(30)

AF actuator Ring USM

Image stabilizer Yes, 4-stop

Lens construction 17/12

Minimum aperture 22

No. of diaphragm blades 10

Maximum magnification (x) 0.24 (at 105mm)

3.2 The Disc

Our main experimental equipment is the disc. This disc is fitted in a tray. There are some holes and center hole in the disc which are subjected to detection. The discs can hold round parts. The disc's positions may have deviated because the sizes of the trays are different.

Figure 10. The Disc

(31)

3.3 Image labeling software (

LabelImg)

LabelImg is a free, open-source image labeling application that labels the image graphically. This is written in Python and for its graphical user interface, it uses QT.

It is a free and simple way to manually label a lot of images. Each time we select an image and we subdivide the object that we want to label manually. This is how it works. There are a few strategies to take into account when labeling images. These tips are applicable everywhere but can differ depending on the issue.

1.To label an object entirely. Including a little non-object buffer is better than running a component with a rectangular mark. Therefore, strive to have boxes that closely represent the things you want to mark, but it's to be kept in mind that no part of them is cut off. Following this method, the model can recognize the edges more efficiently.

2.Normally it labels the objects which are slightly out of the frame.

3. It needed to be labeled entirely in case of the occluded objects. When an object is out of focus because it is behind another object, mark it as if you might see the whole object outside of view. In this way, the model will be able to understand the actual bounds of the objects.

3.4 Darknet (Training Tool)

Darknet is one of the well-known open-source neural network frameworks. For real- time object detection, this is one of the fastest and finest tools. It provides very high accuracy. Not only for object detection it can also be used for images. The accuracy of the trained model depends on some parameters. The parameters are training data, batch size epochs, etc. It is a convolutional neural network that acts as a backbone for the YOLOv3 object detection approach. For writing it in C and CUDA it is so fast.

Just look at the table below to have an idea of how fast C is.

(32)

Table 3

Comparison between C and Python

Mandelbrot

Source Mem Secs Busy GZ Cpu Load

C GCC 27.024 1.64 6.53 1135 99%99%100%100%

Python 3

48.268 263.87 1054.07 688 100%100%100%100%

This table illustrates how much C (1.64 secs) is fast than Python (263.87 secs). This difference will make a huge difference in terms of speed in big projects.

3.5 Python

Python is one of the most powerful programming languages. It has a very good level of data structure and object-oriented programming. Also, this is an efficient language for application development and scripting. The Python interpreter, as well as the massive standard library, can be found freely. Just like the English language it has a simple syntax. New data types and functions introduced in C or C++ can be conveniently transferred to the Python interpreter. Python supports a variety of platforms like mac, windows, raspberry pi, etc. The syntax of python helps the user to write a program in less lines in comparison to others. For creating web applications python can be used. Through some machine learning libraries like TensorFlow and scikit-learn python is used for machine learning sectors. It is widely used for voice recognition, pattern recognition, image detection, handwriting detection, etc.

(33)

4 Experimental Design

This section describes the experimental process of this research. In section 4.1, all of the types of equipment and the architecture of the laboratory setup are demonstrated. Section 4.2, illustrates the image capturing process in the laboratory. Section 4.3, explains the information gathering process from the dataset. In section 4.4 the software implemented for the research purpose is presented. The functionality and the building process of the software are explained in this section. In section 4.4 mean distance calculating method has been described. Section 4.5 demonstrates the graphical user interface and its features.

In section 4.6 the description of all the python libraries used in this research has been described.

4.1 Equipment Used For Experiment

The experiment of this research has been done in WuXi Longsheng Technology Co., LTD, China. The main experimental object was a mechanical disc which is fitted to a tray. The discs can hold round parts. The disc's positions may deviate because the sizes of the trays are different.

The experiment has been conducted in an indoor setting. To provide a sufficient amount of illumination two halogen lights have been used (Figure 11). The object is placed right in the middle of the table and the halogen lights illuminated the whole surrounding area of the object. We have made sure that the object is illuminated properly with the use of external lights.

(34)

Figure 11. Halogen Lamp for the Experiment

Figure 9 illustrates the laboratory setup designed for the experiment purpose of this research. It gives a general architecture overview of the component setup. All of the equipment belongs to WuXi Longsheng Technology Co., LTD, China.

Figure 12(a). Setup for the Experiment

(35)

Figure 12(b).Setup for the Experiment

4.2 Image Capturing Process

To get the highest quality image it is important to capture photos with great caution.

There is no limit to the number of images that can be used for neural network training.

From figure 10, it can be seen that a motorized stage allows us to capture photos from several camera locations. Both the linear and rotary stage was used. Images were captured from different angles, from different positions, and in different lighting conditions. To get the optimal output it was made sure that the image was captured at the highest resolution possible. Low-resolution images or images with low brightness or contrast are not recommended for the neural network training software.

The images were captured by moving the camera slider slowly. It was started from one side of the slider and ended at the other side of the slider The computer sends a command in the COM-port of the motorized stage which enables it to move at a constant interval. The images were captured straight forward by moving the left and right direction.

4.3 Methods used for this study

Several methods are used for this study. All the steps are described below.

(36)

4.3.1 Image Labelling

The sample images are labeled using software LabelImg.It uses the QT library.

Images can be manually labeled using this software. First, we have labeled the images manually by defining the specific edges holes, and axis.

Figure 13. Labeling the images manually

Then we have prepared the training data. All the sample data are taken to the same folder for training purposes.

Figure 14.Preparing Training data

We can label different objects in just one image and call them whatever we want, for example here we call the first object ‘circle’ and the next one ‘hole’. Then we save it and we move to the next image.

(37)

Figure 15. Labeling Objects in Image

We have applied an algorithm for the detection process of the edges. The Method for Detecting two edges are as follows:

Figure 16. The method for edge detection

After this step, the Image labeling results for detection axes have been obtained and this is shown in the picture below.

(38)

Figure 17. Obtaining Image labeling results for detection axes

All the labeling data are then saved as an XML file which we will use later on for training purposes.

Figure 18.Training data saved as XML file 4.3.2 Training the Model

The second step is to train the model, for this purpose we have used Darknet. The purpose of training the model is to get the prediction of where the edges are for new images based on the information which it learns from the training section.

(39)

Figure 19.Neural Network Training Tool

Firstly two separate files for axes and holes are created. The training data for the axes and holes will be saved on the specific files which will be used later on for the detection purpose.

Figure 20.Creating folder for axes and holes

In the beginning, the model has bad accuracy, so to fix it we use other parameters and also make increase the number of iterations as much as possible. As the picture shows: while the number of iterations is large the cost or the error ( cost = 30%

This is the folder for axis

This is the folder for hole

(40)

means that given a new photo the probability of making mistake to detect the edges is 30%) is converging to 0, which means that the model has good accuracy.

Figure 21.Training screen

As there are more than thousands of images used for training the neural network and the training was done several times so it takes a long time to completely train the model. After completing the training two separate files are obtained which are the calculated weights of those images for detecting the axes and holes respectively.

Figure 22. Result of Training There are two kinds of files

(41)

4.4 Calculating Mean Distance Between two Edges

After training the model the predefined two edges are detected using the python code. Then the next step is to calculate the mean distance between the two edges. For this purpose, the euclidean method is used. The Euclidean method typically helps to calculate the distance between two points by using a straight line that joins them. The length of the straight line represents the shortest distance between these two points.

The distance is also known as the euclidean distance. Besides the minimum distance, the distance between two data points is calculated in many ways.[33]

The general formula for calculating Euclidean Distance is as follow:

Distance= √(x - a)² + (y - b)²

The Formula used in our code to calculate the mean distances between the two edges are as follows:

d1= ((((basePt1[0] - partPt1[0] )**2) + ((basePt1[1]-partPt1[1])**2) )**0.5) d2= ((((basePt2[0] - partPt2[0] )**2) + ((basePt2[1]-partPt2[1])**2) )**0.5) D=(d1+d2)/2

4.5 Graphical User Interface

The next work is to read and work with image files after the image dataset is obtained. To deal with basic operations with images and detecting the edges we have developed a simple graphical user interface ( GUI) with useful functionalities. We have used Python to create this program. Basic operations like open or upload image, Recognition of line, Recognition of hollow spaces can be done with this program. It's also possible to run those operations for the full folder.

(42)

Figure 23. Graphical User Interface

4.6 Python Library

We have used OpenCV. The full form of OpenCV is Open Source Computer VisionLibrary. It is an open-source library for machine learning and computer vision software. The purpose of creating OpenCV was to maximize the usage of machine learning for industrial purposes and providing a common platform for computer vision applications. This is the product that has a BSD-license, for that reason, it's very simple to modify and use the code for business purposes. Its library is enriched with over 2500 optimized algorithms, that include an extensive collection of machine learning and computer vision algorithms in both the state-of-the-art and classic. For identifying objects, detecting and recognizing the faces, tracking camera movements, extracting 3D models of the objects, producing 3D point clouds from stereo cameras, track moving objects, searching similar pictures from an image database, tracking the movements of the eye these algorithms can be used.

QT is the library that we have used for creating the graphical user interface. Qt is a free and open-source toolkit developed both for graphical user interfaces and cross- platform applications that run on different software and hardware platforms or embedded systems with or without a slight difference in the coding base underlying native application. Qt supports different compilers including the Visual Studio Suite,

(43)

the GCC C++, and PHP as an extension for PHP5. Qt also includes Qt Quick with a declarative QML scripting language that enables the logic to be generated using JavaScript. Using Qt Quick it has become possible to rapidly build the mobile application.[34]

We have used Jupiter Notebook as our Integrated Development Environment (IDE).

Jupiter Notebook is one of the commonly used IDEs for developing programs using the Python programming language. One of the main reasons for choosing Jupiter Notebook as our IDE is because it is very organized and easy to use.

(44)

5 Result Analysis

This section presents the major analysis and outcome of this research. Section 5.1 talks about the output for detecting two edges. Section 5.2 demonstrates Output for Calculating Mean Distance Between two edges. In section 5.3, the hole detection results are demonstrated. Each of the cases describes the problem, method of solving the problem, and outcome result.

5.1 Output for Detecting two edges

As the whole disc is fitted to a tray and the position of the disc is changeable con- cerning time so the gap between the edge of the tray and the edge of the disc is also changeable. The sample data were collected based on changing positions of the disc.

The pictures below clearly show the detected edges with respect to the position change. The red line represents the edge of the tray and the blue line represents the edge of the disc. The distance between the edges is not the same in all cases and that is noticeable after the detection process which is shown in the pictures below.

Figure 24(a). Edge Detection Output Figure 24(b).Edge Detection Output

(45)

Figure 24(c). Edge Detection Output Figure 24(d).Edge Detection Output Due to the deviation of the size and placement of the tray each time, it may cause a collision accident when the robot arm is placed in the part. Therefore, the position deviation value is identified through the above-mentioned detection method and then compensates to the robot arm path point coordinates to correct the deviation, to accu- rately put the rotor parts. The offset value dX of the base coordinates in the X and Y directions can be reached by defining the edge of the fitting (the red line on the right) and contrasting it with the edge of the standard position (the blue line on the right).

The rotational offset can be momentarily overlooked due to the directional restriction of the guide rail.

The recognition algorithm operates on the industrial computer, the measured dX and dY are transmitted to the PLC by a certain form of communication and then the co- ordinate offset data is passed to the robotic arm controller by the PLC. The robot arm program will correct the 240 coordinates of the entire pallet according to the coordi- nate offset value before executing the palletizing program.

(46)

Figure 24(e). Edge Detection Output

5.2 Output for Calculating Mean Distance Between two edges

As we have mentioned earlier that the position of the disk is not fixed, and it changes its position during its operational period for that reason the distance between the edg- es as well as the mean distance between the edges are also different. In the table be- low the mean distances between the two edges for different positions of the disc are demonstrated.

Table 3

Mean Distances Between the Edges

Image Number Mean Distance

3099 13.405mm

3125 9.743mm

3217 22.904mm

3247 26.119mm

3576 16.830mm

(47)

4535 19.905mm

4640 17.519mm

4652 21.382mm

Figure 25(a). Mean Distance of Edges Figure 25(b). Mean Distance of Edges

Figure 25(c). Mean Distance of Edges Figure 25(d). Mean Distance of Edges

(48)

The images demonstrated above are extracted from the graphical user interface by using python code. All the images show the mean distances between the edges. This is clearly noticeable that the mean distances are not the same due to the change of position of the disc. The DPI information of the images is used as a reference during calculating the mean distances between the two edges. The depth per inch of all images is 72. All the mean distances are calculated in millimeters and the calculated results are also in millimeters.

5.3 Results for Hole Detection

There are some hollow spaces in the disc which are termed as a hole. There are sev- eral holes in the disc but in this experiment, we have detected only a specific hole.

The disc can hold the circular parts and this disc will be fitted to other mechanical parts to go in operational mode. A mechanical device will be fitted to the disc where a long rod-shaped part is attached and that will be fitted to the holes. The images demonstrated below show the position of the holes which are detected by using py- thon codes.

Figure 26(a). Hole detection Figure 26(b). Hole detection

(49)

Figure 26(c). Hole detection Figure 26(d). Hole detection In the above figures, the detected wholes are shown by the green circle. The red dot inside the blue circle indicates the center of the hole. As the pictures are captured from different angles due to that the apparent position of the center of the hole which is visible in the image is not the same as the actual position. The actual center of the hole is determined by using the DPI information. In the picture, the coordinate of the center of the hole is also demonstrated.

Figure 27. Hole Detection

By identifying the edge of the circular structure of the hole where the rotor is placed in the lining (the red circle on the right), and comparing it with the edge of the standard position (the blue circle), the offset of the center coordinates of the two can

(50)

be found at X, Y-direction components dX, dY. Due to the direction constraint of the guide rail, the rotational offset can be temporarily ignored.

The recognition algorithm will run on the industrial computer, and the calculated dX and dY will be transmitted to the PLC through a certain communication method, and the PLC will then transmit the coordinate offset data to the robotic arm controller through ProfiNET. The algorithm is executed when the first pallet is placed on each pallet. The robot arm program needs to correct the 240 coordinates of the entire pallet according to the coordinate offset value before executing the palletizing program.

(51)

6 Conclusions

We will study our findings in this chapter and make some final observations. We studied the existing methods of convolution for implementing a system of this nature and discuss possible changes.

We started this study with an analysis of the theoretical background. We have clari- fied the functioning of neural networks and the consequences for object detection.

We explained how traditional neural networks are used to solve several computer vision problems and why convolutional neural networks are an efficient method to solve several computer vision problems.

For the experiment using a convolutional neural network, we have built a working python code that processes the data and a graphical user interface to use those data for demonstrating the results. We have learned that collecting training data and exe- cuting the training of the data is the most stressful part of implementing a deep learn- ing framework. It is observed that the detecting accuracy of the model can be im- proved by increasing the number of training. The more we wi train the data the more accuracy we will observe. The time of training can be reduced by using a pre-trained network.

In the result section, We have demonstrated how a system trained on basic image data can be used to detect objects in a particular task (detection of various parts and shapes). Our main focus is on three parts. The first part was detecting the two edges of the mechanical disc. We have successfully shown in the result section the detec- tion of two edges in different positions of the mechanical disc and different lighting conditions. Our second concern was to measure the mean distance between the two edges and we have nicely determined the mean distances between the two edges us- ing the Euclidean method which has been shown in the result section. The third task was to detecting the holes in the mechanical disk and finding the coordinates of the center of that hole. In the result section, it has been illustrated very clearly how the holes were detected and how the coordinates of the holes are determined and later on convey those values in the industrial computer that is transmitted to the PLC through a certain communication method, and the PLC will then transmit the coordinate

(52)

offset data to the robotic arm controller through ProfiNET.The robot arm program needs to correct the 240 coordinates of the entire pallet according to the coordinate offset value before executing the palletizing program.

However, the convolutional neural network is one of the best effective methods to detect specific parts from the images. This study result will create more space for further research on this topic. Detecting specific parts preciously from the images is always challenging but the convolutional method makes it easier to solve this preciously.

(53)

References

[1] He, K.; Zhang, X.; Ren, S.; Sun, J. Deep residual learning for image recognition.

In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, Las Vegas, NV, USA, 27–30 June 2016; pp. 770–778.

[2] A Definition of Artificial Intelligence, Dimiter Dobrev Institute of Mathematics and Informatics Bulgarian Academy of Sciences, Sofia 1090, BULGARIA.

[3] A State-of-the-Art Survey on Deep Learning Theory and Architectures, Md Zahangir Alom, Tarek M. Taha, Chris Yakopcic, Stefan Westberg, Paheding Sidike, Mst Shamima Nasrin, Mahmudul Hasan, Brian C. van Essen, Abdul A. S. Awwal and Vijayan K. Asari.

[4] Edge Detection Using Neural Networks P. John Terry and Duc Vu Code C2818, Naval Air Warfare Centre China Lake, CA 93555.

[5] Artificial Neural Networks Technology Dave Anderson and George McNeill Kaman Sciences Corporation 258 Genesse Street Utica, New York 13502-4627.

[6] Zhou, Z.-H.; Chawla, N.V.; Jin, Y.; Williams, G.J. Big data opportunities and challenges: Discussions from data analytics perspectives. IEEE Comput. Intell. Mag.

2014, 9, 62–74.

[7] Challenges in Deep Learning Plamen Angelov and Alessandro Sperduti- Lancaster University - School of Computing and Communications Lancaster, LA14WA - United Kingdom.

[8] Algorithmic/Automated Trading Basic Education. Neural Network By James Chen, Updated Sep 24, 2020.

[9] Theory of The Backpropagation Neural Network Robert Hecht-Nielsen HNC, Inc. 5501 Oberlin Drive San Diego, CA 92121 619-546-8877 And Department of Electrical and Computer Engineering University of Caliiomia At San Diego La Jolla, CA 92139.

(54)

[10] Deep Learning in Medical Image Analysis Dinggang Shen, Guorong Wuand Heung-Suk, Department of Radiology, University of North Carolina, Chapel Hill, North Carolina 27599.

[11] Graves, A., Fernández, S., Schmidhuber, J., 2007. Multi-dimensional Recurrent Neural Networks ,pp. 549–558.

[12] A. Creswell, T. White, V. Dumoulin, K. Arulkumaran, B. Sengupta and A. A.

Bharath, "Generative Adversarial Networks: An Overview," in IEEE Signal Processing Magazine, vol.35, no. 1, pp. 53-65, Jan. 2018.

[13] Deep Learning, Kwang Gi Kim, Ph.D. Biomedical Engineering Branch, Division of Precision Medicine and Cancer Informatics, National Cancer Center, Goyang, Korea.

[14] Deep learning in agriculture: A survey Andreas Kamilaris, Francesc X.

Prenafeta-Boldú Institute for Food and Agricultural Research and Technology (IRTA), Spain.

[15] Machine Learning for Dummies, IBM Limited Edition Published by John Wiley

& Sons, Inc. 111 River St. Hoboken, NJ 07030-5774.

[16] Unsupervised Learning, Zoubin Ghahramani, Gatsby Computational Neuroscience Unit, University College London, UK.

[17] Ghahramani, Z., 2004. Unsupervised Learning, in: Lecture Notes in Computer Science. Lecture Notes in Computer Science, pp. 72–112.. doi:10.1007/978-3-540- 28650-9_5

[18] Warburton, K. (2003), "Deep learning and education for sustainability", International Journal of Sustainability in Higher Education, Vol. 4 No. 1, pp. 44-56.

[19] Schmidhuber, J. Deep Learning in Neural Networks: An Overview. Neural Netw. 2015, 61, 85–117.

[20] Chen, X.-W.; Lin, X. Big Data Deep Learning: Challenges and Perspectives.

IEEE Access 2014, 2, 514–525.

(55)

[21] Deep learning applications and challenges in big data analytics Maryam M Najafabadi, Flavio Villanustre, Taghi M Khoshgoftaar, Naeem Seliya, Randall Wald, and Edin Muharemagic.

[22] Van Essen, B.; Kim, H.; Pearce, R.; Boakye, K.; Chen, B. LBANN: Livermore big artificial neural network HPC toolkit. In Proceedings of the Workshop on Machine Learning in High-Performance Computing Environments, Austin, TX, USA, 15–20 November 2015; p. 5.

[23] Singh, K.; Gupta, G.; Vig, L.; Shroff, G.; Agarwal, P. Deep Convolutional Neural Networks for Pairwise Causality. arXiv 2017, arXiv:1701.00597.

[24] Goodfellow, I., Bengio, Y., and Courville, A. Deep Learning. MIT Press, 2016.

[25] "IEE Colloquium 'The Application of Machine Vision" IEE Colloquium on Application of Machine Vision, London, UK.

[26] Golnabi, H., Asadpour, A., 2007. Design and application of industrial machine vision systems. Robotics and Computer-Integrated Manufacturing 23, 630– 637.doi:10.1016/j.rcim.2007.02.005

[27] M.Tkalcic and J. F. Tasic, "Colour spaces: perceptual, historical and applicational background," The IEEE Region 8 EUROCON 2003. Computer as a Tool., Ljubljana, Slovenia, 2003, pp. 304-308 vol-1.

[28] Dertat, A. 2017. Applied Deep Learning - Part 4: Convolutional Neural Networks. Date of retrieval 11.12.2019.

[29] Saad ALBAWI, Tareq Abed MOHAMMED, Understanding of a Convolutional Neural Network, Istanbul Kemerburgaz University Istanbul, Turkey.

[30] Saha, S. 2018. A Comprehensive Guide to Convolutional Neural Networks — the ELI5 way. Date of retrieval 16.12.2019.

[31] I. da Silva, D. Spatti, R. Flauzino, L. Liboni, and S. dos Reis Alves. Artificial Neural Networks: A Practical Course. Springer International Publishing, 2016.

(56)

[32] S. Wang. Interdisciplinary Computing in Java Programming. The Springer International Series in Engineering and Computer Science. Springer US, 2003.

[33] On the Surprising Behavior of Distance Metrics in High Dimensional Space, Charu C. Aggarwal, Alexander Hinneburg, and Daniel A. Keim, IBM T. J. Watson Research Center.

[34] Blanchette, Jasmin; Summerfield, Mark (14 February 2008). C++ GUI Programming with Qt 4 (2nd ed.). Prentice-Hall.

Viittaukset

LIITTYVÄT TIEDOSTOT

The aim of the thesis was to present an application of deep learning method using backpropagation algorithm in artificial neural network to improve Bluetooth security.. I would

Keywords: Fault Detection and Diagnosis, Deep Learning, Convolutional Neural Networks, Recurrent Neural Network, Long Short Term Memory, Mel Frequency Cepstrum

The convolutional neural network is the most powerful and famous deep learning neural network that has been used in various applications of computer vision such

Convolutional Neural Networks (CNN) are a type of deep feed-forward artificial net- works, which are used in deep learning applications such as image and video recogni-

The research gives a brief introduction to artificial intel- ligence, machine learning and neural networks and shows how these areas of computer science are utilised in

In order to make a neural network to learn in supervised learning environment, it has to bee trained with input data and expected output values from the training data.. Each input x

Keywords: machine learning, neural networks, interference, frequency domain, deep learning, mel spectogram, model, network, binary classification.. The originality of

The objective of this thesis is to leverage the best solution for the inference of a machine learning algorithm for an anomaly detection application using neural networks in the