0% found this document useful (0 votes)
45 views

Internship Report

Communication

Uploaded by

Kalkidan Birhanu
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
45 views

Internship Report

Communication

Uploaded by

Kalkidan Birhanu
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 46

See discussions, stats, and author profiles for this publication at: https://www.researchgate.

net/publication/331298736

Internship Report

Article · February 2019

CITATIONS READS
0 1,800

2 authors, including:

Tesfamichael Molla
Transfer Multisort Electronik
14 PUBLICATIONS 5 CITATIONS

SEE PROFILE

All content following this page was uploaded by Tesfamichael Molla on 23 February 2019.

The user has requested enhancement of the downloaded file.


MInT
Internship Report

Tesfamichael Molla
Kena Awoke
02/18/2019
Ministry of Innovation and Technology
Internship Report

Declaration
We are honestly declaring that, this is our own work and no copying is there
with our work and that all sources of materials used in this project have been
strongly acknowledged. This is to certify that the above declaration made by
our effort is correct to the best of our knowledge.

In doing so, we assure that we agree with all written above with our signature
as follows.

Name ID Signature

1. Tesfamichael Molla 1074/07 ______________

2. Kena Awoke 651/07 ______________

i
Wolkite University
Department of Electrical and computer engineering
Ministry of Innovation and Technology
Internship Report

Mentor Approval
This is to certify that the internship report entitled “Self Driving Car” is
prepared by Tesfamichael Molla and Kena Awoke under my guidance based on
the regular reports that they had submitted. I recommend this report to be
submitted to the Department of Electrical and Computer Engineering for
evaluation.

Mentor’s Name ………………………….. Sign ……………….


Date …./…./………

ii
Wolkite University
Department of Electrical and computer engineering
Ministry of Innovation and Technology
Internship Report

Supervisor approval
I, the undersigned supervisor of this internship report entitled “Self Driving
Car” have evaluated and approved the corrected version of the final report as
per the guideline of Electrical and Computer Engineering.

Supervisor Name…………………… Sign ………


Date …/…/………

iii
Wolkite University
Department of Electrical and computer engineering
Ministry of Innovation and Technology
Internship Report

Acknowledgment
Above all, let be glory to God almighty for always being with in all our life,
secondly We would like to thank Wolkite University, Department of Electrical
and Computer Engineering for preparing this internship program and for
assigning us a supervisor to whom our deepest gratitude is for sharing his
experience, enlighten us the practical knowledge and Ministry of Innovation and
Technology (MInT) for accepting our request letter. Next we would like to thank
Mr. Ashenafi Paulos for facilitating the internship by giving the chance to find
the internship hosting company by our choice. And for *Human resource and
management Dr. Khalid who in valuable cooperation in accepting our application
letter and sending us to our mentor Mr. Elias* who gave advice and treat us
accordingly, understood everything those are practiced in the site and in the office
with respect to their past history, so we thank very much all of them for their
support, advice and contribution in all activities for our work in Self Driving Car
project.

iv
Wolkite University
Department of Electrical and computer engineering
Ministry of Innovation and Technology
Internship Report

Executive Summary

This internship report contains the overall matters which pass during the last four
months while staying in Ministry of Innovation and Technology (MInT). The first
part of the report, express the background, history, and objectives of the
internship hosting company, the overall organization and work flow in MInT.
The second part of the report briefly describes general overall internship
experience. The third part of the report describes assessment of the internship
what we gained from internship. The forth part of the report describes technical
aspects of the internship like design period and information about the material
and methodology used during internship period. The last part tells about
conclusions and recommendation of project respectively.

v
Wolkite University
Department of Electrical and computer engineering
Ministry of Innovation and Technology
Internship Report
List of figures
Fig [1] Organizational structure …………………………………………….. 5

Fig [2] ICT directorate structure ……………………………………………..6

Fig [3] Organization model …………………………………………………..6

Fig [4] Typical CNN Model [18] …………………………………………… 14

Fig [5] CNN Model [18] …………………………………………………… 15

Fig [6] CNN Layers [18] …………………………………………………… 17

Fig [7] Max Pooling [18] …………………………………………………… 19

Fig [8] Raspberry pi ………………………………………………………… 21

Fig [9] Raspberry pi hardware ……………………………………………… 22

Fig [10] Arduino UNO ……………………………………………………… 25

Fig [12] Micro servo ………………………………………………………… 26


Fig [11] TB6612FNG motor driver ……………………………………………. 27

vi
Wolkite University
Department of Electrical and computer engineering
Ministry of Innovation and Technology
Internship Report

Acronyms

CNN Convolutional Neural Network

ANN Artificial Neural Network

MInT Ministry of Innovation and Technology

MoST Ministry of Science and Technology

SIANN Space Invariant Artificial Neural Networks

3D 3 Dimension

Max Maximum

CONV Convolution

GAN Generative adversarial network

VAE Variation Auto Encoders

API Application Program Interface

vii
Wolkite University
Department of Electrical and computer engineering
Ministry of Innovation and Technology
Internship Report
Table of Contents
Declaration.................................................................................................................................. i
Mentor Approval ........................................................................................................................ ii
Supervisor approval .................................................................................................................. iii
Acknowledgment ...................................................................................................................... iv
Executive Summary ....................................................................................................................v
List of figures ............................................................................................................................ vi
Acronyms ................................................................................................................................ vii
Chapter 1 ....................................................................................................................................1
Introduction ................................................................................................................................1
MInT products and services ........................................................................................................4
Affiliate organizations .............................................................................................................4
Values of MInT .......................................................................................................................4
Organization and work flow ........................................................................................................5
Chapter 2 ....................................................................................................................................7
Overall internship experience ......................................................................................................7
Entry into the Company ..............................................................................................................8
Section of the company we have been working in .......................................................................8
Work task we have been executed ...............................................................................................8
Procedure used in our work task ..................................................................................................8
Performance Over Given Work Tasks .........................................................................................8
The challenges during our work ..................................................................................................9
Overall benefit from internship....................................................................................................9
Importance of internship .............................................................................................................9
Chapter 3 .................................................................................................................................. 11
Internship Project ...................................................................................................................... 11
Self-driving car ......................................................................................................................... 11
Abstract ............................................................................................................................... 11
Introduction ......................................................................................................................... 12
Object detection algorithm ................................................................................................. 13
CNN ..................................................................................................................................... 13

viii
Wolkite University
Department of Electrical and computer engineering
Ministry of Innovation and Technology
Internship Report
Architecture Overview ........................................................................................................ 14
Layers used to build ConvNets ........................................................................................... 16
Normalization Layer ............................................................................................................. 20
Fully-connected layer ............................................................................................................ 20
Scope ........................................................................................................................................ 20
Materials for the demonstration ................................................................................................. 21
Raspberry pi .............................................................................................................................. 21
Hardware ............................................................................................................................. 22
Processor.............................................................................................................................. 23
Performance ........................................................................................................................ 23
RAM .................................................................................................................................... 24
Video .................................................................................................................................... 24
Arduino ..................................................................................................................................... 25
TB6612FNG motor driver ......................................................................................................... 26
Micro servo ............................................................................................................................... 27
Chapter 4 .................................................................................................................................. 28
Recommendation and Conclusion ............................................................................................. 28
Recommendation ...................................................................................................................... 28
Conclusion ................................................................................................................................ 29
Appendix .................................................................................................................................. 30
Python code for raspberry pi .............................................................................................. 30
Arduino Code ...................................................................................................................... 33
Reference .................................................................................................................................. 34

ix
Wolkite University
Department of Electrical and computer engineering
Chapter 1
Introduction
As we all know that we live in the age of science and technology. The life of
every one of us highly depends on the scientific invention and modern day
technologies. Science and technology has changed the lives of people to a great
extent. It has made life easy, simple and fast. In the new era, the science
development has become a necessity to finish the era of bullock cart and bring
the trend of motorized vehicles. Science and technology has been implemented
to every aspect of modernization in every nation. Modern gadget has been
introduced to every walk of life and have solved almost all the problems. It was
not possible to have all the benefit of it without it in the sector like medicine,
education, infrastructure, electricity, aviation, information technology and other
field.

What improvement we are seeing in our life on daily basis is because of the
science and technologies. For the proper growth and development of the country,
it is very necessary to go science and technology hand in hand. Villages are
getting developed to towns and towns to cities thus expanding the greater
horizons of economy. Those country with better technology and technologist
have better economy. However, those countries with poor technological
advancements and use exhibit a very poor economic performance. Ethiopia is
said to be a land that started farming early as history of farming itself. However
due to the absence of modern technology, for ages the sector did not bring the
excepted result. Traditional ox ploughing is still being practiced. This does not
mean that the whole farming practice is still traditional. These are farming that
use modern technologies. In order to accelerate the countries, fast and
sustainable development, strengthen the science, technology and innovation
sector is important. Strengthen the sector will enable the countries dedication to

1
Ministry of Innovation and Technology
Internship Report
shift to industry led economy to be efficient and effective. Therefore, in order to
realize economic shift in short time the science, technology and innovation is
established.

General introduction about internship

The internship program goals are to improve our knowledge by linking the
theoretical knowledge through practical experience. So we can develop our
capacity to handle, adapt challenging situations in the real world.

Company Background

Strengthening the science, technology and innovation sector is essential to


accelerate the rapid and sustainable growth of our country. The scale of the sector
will enable the economy of the industry to be economically viable and efficient
as a leader in the industry. Thus, the council of ministers was approved.

Establishment

Ministry of Innovation and Technology (MInT) is governmental institution that


established for the first time in December 1975 by proclamation No.62/1975 as
a commission. Following the change in government in 1991 and with the
issuance of the new economic policy, the commission was re-established in
March 1994 by proclamationNo.91/94. The commission went into its 3 rd phase
of re-institution on the 24th of August 1995 by proclamation No.7/1995,
following the establishment of Federal Democratic Republic of Ethiopia as an
Agency. The ministry changed its title to Ministry of Innovation and technology
in October 2018.

2
Wolkite University
Department of Electrical and computer engineering
Ministry of Innovation and Technology
Internship Report
Vision

To see Ethiopia, entrench the capacity which enable learning, adaptation and
utilization of effective foreign technologies by the year 2022/23.

Mission

Coordinating, encouraging and supporting science and technology activities that


realize the country’s social and economic developments.

Power and Duties

The ministry of science and technology has the following power and duties

 Prepare national science and technology research and development


programs based on the country’s development priorities.
 Establish a system for technology need assessment, identification,
acquisition, packaging, utilization and disposal, and follow up the
implementation of the same
 Coordinate science and technology development activities and national
research program, ensure that research activities are conducted in line with
the country development needs.
 Facilitate interaction and collaboration among government and private
higher education and research institutions and industries.
 Facilitate capacity building of public and private sector institution and
professionals involved in science, technological activities.
 Establish, coordinate and support council that facilitate the coordination
of research activities.
 Encourage and support professional associations and academies that
contribute to the development of science and technology.

3
Wolkite University
Department of Electrical and computer engineering
Ministry of Innovation and Technology
Internship Report
MInT products and services
MInT staffs are involved with a number of different sectors, that Strengthening
the science, technology and innovation sector is essential to accelerate the rapid
and sustainable growth of our country. The scale of the sector will enable the
economy of the industry to be economically viable and efficient as a leader in
the industry. Some of organization currently working with:
Affiliate organizations
 Science and Technology Information Center (Ethiopia)
 Ethiopian Intellectual Property Office
 Ethiopian Conformity Assessment Enterprise
 Ethiopian National Accreditation Office
 Ethiopian Radiation and Protection Authority
 Ethiopian Standards Agency
 Ethiopian Space Science
 Ethiopian Biotechnology Institute
 Ethiopian Metrology Institute of Ethiopia
 Addis Ababa Science and Technology University
 Adam Science and Technology University
Values of MInT
 Organization’s information is our wealth for development
 Inventions is our tool for growth and development
 Strengthen scientific collaboration and partnership
 Promote science-based performance
 Research ethics is our motto.
 Search for new knowledge and technology
 Work towards customer satisfaction

4
Wolkite University
Department of Electrical and computer engineering
Ministry of Innovation and Technology
Internship Report
Organization and work flow

Fig [1] Organizational structure

5
Wolkite University
Department of Electrical and computer engineering
Ministry of Innovation and Technology
Internship Report

Fig [2] ICT directorate structure

Fig [3] Organization model

6
Wolkite University
Department of Electrical and computer engineering
Ministry of Innovation and Technology
Internship Report
Chapter 2
Overall internship experience

Introduction

Engineering is the profession in which knowledge of the mathematical and natural


sciences, gained by experience and practice, and applied the efficient use of the
materials and forces of nature. In one way or another way, human life is not far from
different types of problems. These problems must be solved by scientific way;
engineering is among the solution of these problems which is the section of the
company we work together for our internship period.
Then, we started with Engineering department by considering the following main
activities over fourth month internship program: -
 Hardware
 Software

7
Wolkite University
Department of Electrical and computer engineering
Ministry of Innovation and Technology
Internship Report
Entry into the Company
We got into the Ministry of Innovation and Technology (MInT) through an
agreement between the university and the company which is done through the
University Industry Linkage (UIL) office.

Section of the company we have been working in


We have been assigned to the engineering department, which is responsible for
idea generation and incubation for the country. The office fabricates PCB boards
in manufacturing level, also the department gives a 3D printing services for those
in need.

Work task we have been executed


From start we have been working on our project which is entitled Self driving
car, almost all our effort and time was invested in our project to indulge more
sections of the project.

Procedure used in our work task


The procedure we flow during our work task is firstly to identify the company
problem, and we didn’t find any problem the company was much modernized in
technology because of that we tried to identify a project that helps our country. We
choose project title to solve that problem and then communicate with the company
advisor and we shared idea on that title. After that we worked our project first in
simulation level when it was successful in simulation level, we continued by
hardware level.
Performance Over Given Work Tasks
The performance we get from our work task is how we can do what we think, how
to be responsible and never gave up on anything and the most of all is we gained big
knowledge from our task.

8
Wolkite University
Department of Electrical and computer engineering
Ministry of Innovation and Technology
Internship Report
The challenges during our work
The challenges during our work tasks are lack of getting lab seat to access some
internet, getting components needed for the project
Taken Measures to overcome the challenges

The measures we have taken to overcome the challenges are finding some
components from social media, by asking some advice from people and our
supervisor.
Overall benefit from internship
Internship is necessary to develop our knowledge by visualize the theoretical
knowledge in to practical knowledge. Not only this it also important to achieve
the ability, how to work or how to engage in the practical work like the proper
design in the ground.

Importance of internship
The main importance of this internship is to provide practical skills. This
practical skill was improved by exercising theoretical knowledge on the reality
performed activities it also develops: -

 Leadership and Development


 Learn new skills and add to your knowledge base while gaining
confidence in your abilities
 Opportunity to practice communication and teamwork skills
 Gain industry knowledge first hand from an organization and
professionals
 Provide evidence that you have initiative, are reliable, and have a
sense of responsibility
 Apply some of the ideas learned in school and the professional
world
9
Wolkite University
Department of Electrical and computer engineering
Ministry of Innovation and Technology
Internship Report
 Achieve a sense of accomplishment by contributing to an
organization
 Interpersonal communication skills
 Meet new people and practice networking skill while establishing a
network of professional contact, mentors, and references.
 Open to door to advice on the next steps to take on your career path.
 Entrepreneurship skills
 Handling failure, redefine goals, redesign plans, willing to take
risks, and keep going.
 Able to recognize opportunities, analyses the problem, plan a
creative solution, and take critical decisions.
 Work ethics related issues
 Be fair, considerate, honest, and cooperative when working with
co-workers and clients/customers
 Familiarize yourself with and adhere to relevant organization
procedures and functions.
 Give your best effort, follow through on commitments and meet
internship obligation.
 Take responsibility for decisions and actions taken while at the
internship site.
 Keep a positive attitude and open mind, accept constructive
criticism and strive to improve performance and acquire new skills.
 Communicate work information to your team and supervisor.

10
Wolkite University
Department of Electrical and computer engineering
Ministry of Innovation and Technology
Internship Report
Chapter 3
Internship Project
Self-driving car

Abstract
Self-driving is a vague term with a vague meaning as explained by tech
emergence magazine. Experiments have been conducting on automating driving
since ate list the 1920s [1]. There are five levels of automation in current self-
driving cars with their own degree of automation [2]. In this paper I am
proposing level 4 automation, which is a car that can drive itself almost all the
time without any human input, but might be programmed not to drive in
unmapped areas or during severe weather. The system has three stages. The
first stage will be receiving data from videos and sensors, followed by a
preprocessing section which applies CNN and Object detection mechanism on
the images and finally there is a classification model for predicting steering
angle, acceleration and direction. Performance will be tasted on various model
attributes and conditions and will be presented in graphical interface.

11
Wolkite University
Department of Electrical and computer engineering
Ministry of Innovation and Technology
Internship Report
Introduction
A self-driving car, also known as a robot car, autonomous car, or driverless
car, is a vehicle that is capable of sensing its environment and moving with little
or no human input [3]. Autonomous cars combine a variety of sensors to
perceive their surroundings, such as radar, computer, Vision, Lidar, Sonar, GPS,
odometery and inertial measurement units. Advanced control
systems interpret sensory information to identify appropriate navigation paths,
as well as obstacles and relevant signage [4] [5]. Potential benefits include
reduced costs, increased safety, increased mobility, increased customer
satisfaction and reduced crime. Safety benefits include a reduction in traffic
collisions [6] [7], resulting injuries and related costs, including for insurance.
Automated cars are predicted to increase traffic flow [8]; provide enhanced
mobility for children, the elderly [9], disabled, and the poor; relieve travelers
from driving and navigation chores; lower fuel consumption; significantly
reduce needs for parking space[10]; reduce crime [11]; and facilitate business
models for transportation as a service, especially via the sharing economy [12]
[13]. Problems include safety [14], technology, liability[15] [16], desire by
individuals to control their cars[17], legal framework and government
regulations; risk of loss of privacy and security concerns, such as hackers or
terrorism; concern about the resulting loss of driving-related jobs in the
road transport industry; and risk of increased suburbanization as travel becomes
more convenient.

12
Wolkite University
Department of Electrical and computer engineering
Ministry of Innovation and Technology
Internship Report
Object detection algorithm
This part of the system will detect pedestrian, traffic signs and other obstacles
that comes around the road. The algorithm uses haar cascade files to detect
objects in a given images. Haar cascade file are digital image features used in
object detection. They owe their name to their intuitive similarity with Haar
wavelets and were used in the first real time face detector. The system I am
proposing will use 1 haar cascade file for one object. The output of the detection
is going to be fed to the next stage which is the CNN (Convolutional Neural
Network).

CNN
In deep-learning, a convolutional neural network is a class of deep, feed-forward
artificial neural networks, most commonly applied to analyzing visual imagery.
CNNs use a variation of multilayer perceptron designed to require
minimal preprocessing. They are also known as shift invariant or space invariant
artificial neural networks (SIANN), based on their shared-weights architecture
and translation invariance characteristics.

A CNN consists of an input and an output layer, as well as multiple hidden layers.
The hidden layers of a CNN typically consist of convolutional layers, pooling
layers, fully connected layers and normalization layers. Description of the process
as a convolution in neural networks is by convention. Mathematically it is a cross-
correlation rather than a convolution. This only has significance for the indices in
the matrix, and thus which weights are placed at which index.

13
Wolkite University
Department of Electrical and computer engineering
Ministry of Innovation and Technology
Internship Report

Fig [4] Typical CNN Model [18]


In my system I am going to use three CNN models, one for predicting the speed
of the car, another for steering wheel angle and one for predicting the direction
of the car.

After the decision is made by those CNN architectures the out is applied on the
car and process the second frame. In our system, performance speed is going
to be my main concern, because accuracy can be improved by feeding more
data.

Architecture Overview
Recall: Neural Networks receive an input (a single vector), and transform it
through a series of hidden layers. Each hidden layer is made up of a set of
neurons, where each neuron is fully connected to all neurons in the previous
layer, and where neurons in a single layer function completely independently
and do not share any connections. The last fully-connected layer is called the
“output layer” and in classification settings it represents the class scores.

Regular Neural Nets don’t scale well to full images. In CIFAR-10, images are
only of size 32x32x3 (32 wide, 32 high, 3 color channels), so a single fully-
connected neuron in a first hidden layer of a regular Neural Network would have
32*32*3 = 3072 weights. This amount still seems manageable, but clearly this
fully-connected structure does not scale to larger images. For example, an image
of more respectable size, e.g. 200x200x3, would lead to neurons that have
200*200*3 = 120,000 weights. Moreover, we would almost certainly want to
14
Wolkite University
Department of Electrical and computer engineering
Ministry of Innovation and Technology
Internship Report
have several such neurons, so the parameters would add up quickly! Clearly, this
full connectivity is wasteful and the huge number of parameters would quickly
lead to over fitting.

3D volumes of neurons. Convolutional Neural Networks take advantage of the


fact that the input consists of images and they constrain the architecture in a more
sensible way. In particular, unlike a regular Neural Network, the layers of a
ConvNet have neurons arranged in 3 dimensions: width, height, depth. (Note
that the word depth here refers to the third dimension of an activation volume,
not to the depth of a full Neural Network, which can refer to the total number of
layers in a network.) For example, the input images in CIFAR-10 are an input
volume of activations, and the volume has dimensions 32x32x3 (width, height,
depth respectively). As we will soon see, the neurons in a layer will only be
connected to a small region of the layer before it, instead of all of the neurons in
a fully-connected manner. Moreover, the final output layer would for CIFAR-10
have dimensions 1x1x10, because by the end of the ConvNet architecture we
will reduce the full image into a single vector of class scores, arranged along the
depth dimension. Here is a visualization:

Fig [5] CNN Model [18]


Left: A regular 3-layer Neural Network. Right: A ConvNet arranges its neurons
in three dimensions (width, height, depth), as visualized in one of the layers.

15
Wolkite University
Department of Electrical and computer engineering
Ministry of Innovation and Technology
Internship Report
Every layer of a ConvNet transforms the 3D input volume to a 3D output volume
of neuron activations. In this example, the red input layer holds the image, so its
width and height would be the dimensions of the image, and the depth would be
3 (Red, Green, Blue channels).

Layers used to build ConvNets


As we described above, a simple ConvNet is a sequence of layers, and every
layer of a ConvNet transforms one volume of activations to another through a
differentiable function. We use three main types of layers to build ConvNet
architectures: Convolutional Layer, Pooling Layer, and Fully-Connected
Layer (exactly as seen in regular Neural Networks). We will stack these layers
to form a full ConvNet architecture.

 INPUT [32x32x3] will hold the raw pixel values of the image, in this case
an image of width 32, height 32, and with three color channels R,G,B.
 CONV layer will compute the output of neurons that are connected to
local regions in the input, each computing a dot product between their
weights and a small region they are connected to in the input volume. This
may result in volume such as [32x32x12] if we decided to use 12 filters.
 RELU layer will apply an element wise activation function, such as the
[Math Processing Error]
 Thresholding at zero. This leaves the size of the volume unchanged
([32x32x12]).
 POOL layer will perform a down sampling operation along the spatial
dimensions (width, height), resulting in volume such as [16x16x12].
 FC (i.e. fully-connected) layer will compute the class scores, resulting in
volume of size [1x1x10], where each of the 10 numbers correspond to a
class score, such as among the 10 categories of CIFAR-10. As with
16
Wolkite University
Department of Electrical and computer engineering
Ministry of Innovation and Technology
Internship Report
ordinary Neural Networks and as the name implies, each neuron in this
layer will be connected to all the numbers in the previous volume.

In this way, ConvNets transform the original image layer by layer from the
original pixel values to the final class scores. Note that some layers contain
parameters and other don’t. In particular, the CONV/FC layers perform
transformations that are a function of not only the activations in the input
volume, but also of the parameters (the weights and biases of the neurons). On
the other hand, the RELU/POOL layers will implement a fixed function. The
parameters in the CONV/FC layers will be trained with gradient descent so that
the class scores that the ConvNet computes are consistent with the labels in the
training set for each image.

Fig [6] CNN Layers [18]

The activations of an example ConvNet architecture. The initial volume stores


the raw image pixels (left) and the last volume stores the class scores (right).
Each volume of activations along the processing path is shown as a column.
Since it's difficult to visualize 3D volumes, we lay out each volume's slices in
17
Wolkite University
Department of Electrical and computer engineering
Ministry of Innovation and Technology
Internship Report
rows. The last layer volume holds the scores for each class, but here we only
visualize the sorted top 5 scores, and print the labels of each one. The full web-
based demo is shown in the header of our website. The architecture shown here
is a tiny VGG Net, which we will discuss later.

Pooling Layer

It is common to periodically insert a Pooling layer in-between successive Conv


layers in a ConvNet architecture. Its function is to progressively reduce the
spatial size of the representation to reduce the amount of parameters and
computation in the network, and hence to also control overfitting. The Pooling
Layer operates independently on every depth slice of the input and resizes it
spatially, using the MAX operation. The most common form is a pooling layer
with filters of size 2x2 applied with a stride of 2 downsamples every depth slice
in the input by 2 along both width and height, discarding 75% of the activations.
Every MAX operation would in this case be taking a max over 4 numbers (little
2x2 region in some depth slice). The depth dimension remains unchanged. More
generally, the pooling layer:

 Accepts a volume of size [Math Processing Error]


 Requires two hyperparameters:
 their spatial extent [Math Processing Error]
 the stride [Math Processing Error]
 Produces a volume of size [Math Processing Error] where:
 Introduces zero parameters since it computes a fixed function of the input
 For Pooling layers, it is not common to pad the input using zero-padding.

18
Wolkite University
Department of Electrical and computer engineering
Ministry of Innovation and Technology
Internship Report
General pooling. In addition to max pooling, the pooling units can also perform
other functions, such as average pooling or even L2-norm pooling. Average
pooling was often used historically but has recently fallen out of favor compared
to the max pooling operation, which has been shown to work better in practice.

Fig [7] Max Pooling [18]

Pooling layer down samples the volume spatially, independently in each depth
slice of the input volume. Left: In this example, the input volume of size
[224x224x64] is pooled with filter size 2, stride 2 into output volume of size
[112x112x64]. Notice that the volume depth is preserved. Right: The most
common down sampling operation is max, giving rise to max pooling, and here
shown with a stride of 2. That is, each max is taken over 4 numbers (little 2x2
square).

Back propagation. Recall from the back propagation chapter that the backward
pass for a max(x, y) operation has a simple interpretation as only routing the
gradient to the input that had the highest value in the forward pass. Hence, during
the forward pass of a pooling layer it is common to keep track of the index of
the max activation (sometimes also called the switches) so that gradient routing
is efficient during back propagation.

19
Wolkite University
Department of Electrical and computer engineering
Ministry of Innovation and Technology
Internship Report
Getting rid of pooling. Many people dislike the pooling operation and think that
we can get away without it. For example, Striving for Simplicity: The All
Convolutional Net proposes to discard the pooling layer in favor of architecture
that only consists of repeated CONV layers. To reduce the size of the
representation they suggest using larger stride in CONV layer once in a while.
Discarding pooling layers has also been found to be important in training good
generative models, such as variation auto encoders (VAEs) or generative
adversarial networks (GANs). It seems likely that future architectures will
feature very few to no pooling layers.

Normalization Layer
Many types of normalization layers have been proposed for use in ConvNet
architectures, sometimes with the intentions of implementing inhibition schemes
observed in the biological brain. However, these layers have since fallen out of
favor because in practice their contribution has been shown to be minimal, if
any. For various types of normalizations, see the discussion in Alex
Krizhevsky’s cuda-convnet library API.

Fully-connected layer
Neurons in a fully connected layer have full connections to all activations in the
previous layer, as seen in regular Neural Networks. Their activations can hence
be computed with a matrix multiplication followed by a bias offset. See the
Neural Network section of the notes for more information.

Scope
The final goal of the research is to build robot that can plough any given farm
by learning the environment without any human intervention, but this project
only emphasis on enabling the robot to learn environments and mange itself.

20
Wolkite University
Department of Electrical and computer engineering
Ministry of Innovation and Technology
Internship Report
As per our plan the project is all about demonstrating the system in the real time
environment. On this case the model we planned to use was a free open source
package.
Materials for the demonstration
 SunFounder 3D printed car model
 Raspberry pi 3 model B
 TB6612FNG motor driver
 Arduino UNO
 Micro servo
 2 DC Motors
 Raspberry pi camera
Raspberry pi

Fig [8] Raspberry pi

The Raspberry Pi is a series of small single-board computers developed in


the United Kingdom by the Raspberry Pi Foundation to promote teaching of
basic computer science in schools and in developing countries. The original model
became far more popular than anticipated,[8] selling outside its target market for uses
such as robotics. It does not include peripherals (such as keyboards and mice)
21
Wolkite University
Department of Electrical and computer engineering
Ministry of Innovation and Technology
Internship Report
and cases. However, some accessories have been included in several official and
unofficial bundles.
The organization behind the Raspberry Pi consists of two arms. The first two models
were developed by the Raspberry Pi Foundation. After the Pi Model B was released,
the Foundation set up Raspberry Pi Trading, with Eben Upton as CEO, to develop
the third model, the B+. Raspberry Pi Trading is responsible for developing the
technology while the Foundation is an educational charity to promote the teaching
of basic computer science in schools and in developing countries.
According to the Raspberry Pi Foundation, more than 5 million Raspberry Pis were
sold by February 2015, making it the best-selling British computer. By November
2016 they had sold 11 million units, and 12.5m by March 2017, making it the third
best-selling "general purpose computer In July 2017, sales reached nearly 15 million.
In March 2018, sales reached 19 million.
Hardware
The Raspberry Pi hardware has evolved through several versions that feature
variations in memory capacity and peripheral-device support.

Fig [9] Raspberry pi hardware


This block diagram describes Model B and B+; Model A, A+, and the Pi Zero are
similar, but lack the Ethernet and USB hub components. The Ethernet adapter is
internally connected to an additional USB port. In Model A, A+, and the Pi Zero,
the USB port is connected directly to the system on a chip (SoC). On the Pi 1
Model B+ and later models the USB/Ethernet chip contains a five-port USB hub, of
which four ports are available, while the Pi 1 Model B only provides two. On the
Pi Zero, the USB port is also connected directly to the SoC, but it uses a micro
USB (OTG) port.

22
Wolkite University
Department of Electrical and computer engineering
Ministry of Innovation and Technology
Internship Report
Processor
The Broadcom BCM2835 SoC used in the first generation Raspberry Pi includes a
700 MHz ARM11 76JZF-S processor, VideoCore IV graphics processing
unit (GPU), and RAM. It has a level 1 (L1) cache of 16 KB and a level 2 (L2) cache
of 128 KB. The level 2 cache is used primarily by the GPU. The SoC
is stacked underneath the RAM chip, so only its edge is visible. The 1176JZ(F)-S is
the same CPU used in the original iPhone, although at a higher clock rate, and mated
with a much faster GPU.
The earlier V1.1 model of the Raspberry Pi 2 used a Broadcom BCM2836 SoC with
a 900 MHz 32-bit, quad-core ARM Cortex-A7 processor, with 256 KB shared L2
cache. The Raspberry Pi 2 V1.2 was upgraded to a Broadcom BCM2837 SoC with
a 1.2 GHz 64-bit quad-core ARM Cortex-A53 processor, the same SoC which is
used on the Raspberry Pi 3, but underclocked (by default) to the same 900 MHz CPU
clock speed as the V1.1. The BCM2836 SoC is no longer in production as of late
2016.
The Raspberry Pi 3+ uses a Broadcom BCM2837B0 SoC with a 1.4 GHz 64-bit
quad-core ARM Cortex-A53 processor, with 512 KB shared L2 cache.
Performance
While operating at 700 MHz by default, the first generation Raspberry Pi provided
a real-world performance roughly equivalent to 0.041 GFLOPS. On the CPU level
the performance is similar to a 300 MHz Pentium II of 1997–99. The GPU provides
1 Gpixel/s or 1.5 Gtexel/s of graphics processing or 24 GFLOPS of general purpose
computing performance. The graphical capabilities of the Raspberry Pi are roughly
equivalent to the performance of the Xbox of 2001.
Raspberry Pi 2 V1.1 included a quad-core Cortex-A7 CPU running at 900 MHz and
1 GB RAM. It was described as 4–6 times more powerful than its predecessor. The
GPU was identical to the original. In parallelized benchmarks, the Raspberry Pi 2
V1.1 could be up to 14 times faster than a Raspberry Pi 1 Model B+.
The Raspberry Pi 3, with a quad-core ARM Cortex-A53 processor, is described as
having ten times the performance of a Raspberry Pi 1. This was suggested to be
highly dependent upon task threading and instruction set use. Benchmarks showed
the Raspberry Pi 3 to be approximately 80% faster than the Raspberry Pi 2
in parallelized tasks.

23
Wolkite University
Department of Electrical and computer engineering
Ministry of Innovation and Technology
Internship Report
RAM
On the older beta Model B boards, 128 MB was allocated by default to the GPU,
leaving 128 MB for the CPU. On the first 256 MB release Model B (and Model A),
three different splits were possible. The default split was 192 MB (RAM for CPU),
which should be sufficient for standalone 1080p video decoding, or for simple 3D,
but probably not for both together. 224 MB was for Linux only, with only a
1080p frame buffer, and was likely to fail for any video or 3D. 128 MB was for
heavy 3D, possibly also with video decoding (e.g. XBMC). Comparatively
the Nokia 701 uses 128 MB for the Broadcom Video Core IV.
For the later Model B with 512 MB RAM new standard memory split files
(arm256_start.elf, arm384_start.elf, arm496_start.elf) were initially released for
256 MB, 384 MB and 496 MB CPU RAM (and 256 MB, 128 MB and 16 MB video
RAM) respectively. But a week or so later the RPF released a new version of start.
Elf that could read a new entry in config.txt (gpu_mem=xx) and could dynamically
assign an amount of RAM (from 16 to 256 MB in 8 MB steps) to the GPU, so the
older method of memory splits became obsolete, and a single start. Elf worked the
same for 256 MB and 512 MB Raspberry Pis.
The Raspberry Pi 2 and the Raspberry Pi 3 have 1 GB of RAM. The Raspberry
Pi Zero and Zero W have 512 MB of RAM.
Video
The video controller can generate standard modern TV resolutions, such as HD
and Full HD, and higher or lower monitor resolutions as well as older NTSC or
PAL standard CRT TV resolutions. As shipped (i.e., without custom overclocking)
it can support the following resolutions: 640×350 EGA; 640×480 VGA;
800×600 SVGA; 1024×768 XGA; 1280×720 720p HDTV;
1280×768 WXGA variant; 1280×800 WXGA variant; 1280×1024 SXGA;
1366×768 WXGA variant; 1400×1050 SXGA+; 1600×1200 UXGA;
1680×1050 WXGA+; 1920×1080 1080p HDTV; 1920×1200 WUXGA.[45]
Higher resolutions, up to 2048×1152, may work or even 3840×2160 at 15 Hz (too
low a frame rate for convincing video). Note also that allowing the highest
resolutions does not imply that the GPU can decode video formats at these
resolutions; in fact, the Pis are known to not work reliably for H.265 (at those high
resolutions), commonly used for very high resolutions (however, most common
formats up to Full HD do work).

24
Wolkite University
Department of Electrical and computer engineering
Ministry of Innovation and Technology
Internship Report
Arduino

Fig [10] Arduino UNO


Arduino is an open-source hardware and software company, project and user
community that designs and manufactures single board microcontrollers
and microcontroller kits for building digital devices and interactive objects that can
sense and control both physically and digitally. Its products are licensed under
the GNU Lesser General Public License (LGPL) or the GNU General Public
License (GPL), permitting the manufacture of Arduino boards and software
distribution by anyone. Arduino boards are available commercially in preassembled
form or as do-it-yourself (DIY) kits.
Arduino board designs use a variety of microprocessors and controllers. The boards
are equipped with sets of digital and analog input/output (I/O) pins that may be
interfaced to various expansion boards or breadboards (shields) and other circuits.
The boards feature serial communications interfaces, including Universal Serial
Bus (USB) on some models, which are also used for loading programs from personal
computers. The microcontrollers are typically programmed using a dialect of
features from the programming languages C and C++. In addition to using
traditional compiler tool chains, the Arduino project provides an integrated
development environment (IDE) based on the Processing language project.

25
Wolkite University
Department of Electrical and computer engineering
Ministry of Innovation and Technology
Internship Report
The Arduino project started in 2003 as a program for students at the Interaction
Design Institute Ivrea in Ivrea, Italy, aiming to provide a low-cost and easy way for
novices and professionals to create devices that interact with their environment
using sensors and actuators. Common examples of such devices intended for
beginner hobbyists include simple robots, thermostats and motion detectors.
The name Arduino comes from a bar in Ivrea, Italy, where some of the founders of
the project used to meet. The bar was named after Arduin of Ivrea, who was
the margrave of the March of Ivrea and King of Italy from 1002 to 1014.

TB6612FNG motor driver

Fig [11] TB6612FNG motor driver


The TB6612FNG Motor Driver can control up to two DC motors at a constant
current of 1.2A (3.2A peak). Two input signals (IN1 and IN2) can be used to control
the motor in one of four function modes: CW, CCW, short-brake and stop. The two
motor outputs (A and B) can be separately controlled, and the speed of each motor
is controlled via a PWM input signal with a frequency up to 100kHz. The STBY pin
should be pulled high to take the motor out of standby mode.
Logic supply voltage (VCC) can be in the range of 2.7–5.5VDC, while the motor
supply (VM) is limited to a maximum voltage of 15VDC. The output current is rated
up to 1.2A per channel (or up to 3.2A for a short, single pulse).
This little board comes with all components installed as shown. Decoupling
capacitors are included on both supply lines. All pins of the TB6612FNG are broken
out to two 0.1" pitch headers; the pins are arranged such that input pins are on one
side and output pins are on the other.

26
Wolkite University
Department of Electrical and computer engineering
Ministry of Innovation and Technology
Internship Report
Micro servo

Fig [12] Micro servo


Tiny little servo can rotate approximately 180 degrees (90 in each direction), and
works just like the standard kinds you're used to but smaller. You can use any
servo code, hardware or library to control these servos. Good for beginners who
want to make stuff move without building a motor controller with feedback &
gear box, especially since it will fit in small places. Of course, it’s not nearly as
strong as a standard servo. Works great with the Motor Shield for Arduino or by
just wiring up with the Servo library. Comes with a few horns and hardware.

To control with an Arduino, we suggest connecting the orange control wire to pin
9 or 10 and using the Servo library included with the Arduino IDE (see here for
an example sketch). Position "0" (1.5ms pulse) is middle, "90" (~2ms pulse) is all
the way to the right, "-90" (~1ms pulse) is all the way to the left.
Note that the default servo pulse widths (usually 1ms to 2ms) may not give you a
full 180 degrees of motion. In that case, check if you can set your servo controller
to custom pulse lengths and try 0.75ms to 2.25ms. You can try shorter/longer
pulses but be aware that if you go too far you could break your servo !

27
Wolkite University
Department of Electrical and computer engineering
Ministry of Innovation and Technology
Internship Report
Chapter 4
Recommendation and Conclusion

Recommendation
Ministry of Innovation and technology has a lot of departments as part of its
main office. The most fun part and the one we were working on, Engineer
department (Idea generation room) is responsible for incubating various
innovational projects. The office is full of PCB designing machines and 3D
printers.

Most of the employees in the department work on very interesting projects that
could contribute to our increasingly growing industrial revolution. But as we
may have noticed, after projects completed the probability of them going to
market is very low, despite the fact that some of the projects will made it to
higher level qualifications and come out to be a good product.

As our opinion, it would be very interesting if there were a platform that can
communicate the local entrepreneurs and the department so that students and
other entrepreneurs can be benefited from it. With that said marketing products
is also should be given a higher priority.

28
Wolkite University
Department of Electrical and computer engineering
Ministry of Innovation and Technology
Internship Report

Conclusion
So far in our stay, we have experienced a lot of skills and professional manners.
The fact that we have a good experience to work with professionals in a
productive manner is priceless. We also had the chance to see how the PCB
manufacturing is in product level, which will help us our next biggest journey,
our thesis. With all that said, we can confidently say our four month was spend
wishfully.

29
Wolkite University
Department of Electrical and computer engineering
Ministry of Innovation and Technology
Internship Report
Appendix
Python code for raspberry pi
from tkinter import *
from tkinter.colorchooser import askcolor
import RPi.GPIO as GPIO
from time import sleep
import serial
class Paint(object):
DEFAULT_PEN_SIZE = 50
DEFAULT_COLOR = 'black'
def __init__(self):
self.root = Tk()
self.Forward_btn = Button(self.root, text='Forward', command=self.forward)
self.Forward_btn.grid(row=0, column=1)
self.Backward_btn = Button(self.root, text='Backward', command=self.Backward)
self.Backward_btn.grid(row=2, column=1)
self.Turnleft_btn = Button(self.root, text='Right', command=self.left)
self.Turnleft_btn.grid(row=1, column=2)
self.Stop_btn = Button(self.root, text='Stop', command=self.stop)
self.Stop_btn.grid(row=1, column=1)
self.Turnright_btn = Button(self.root, text='Left', command=self.right)
self.Turnright_btn.grid(row=1, column=0)
self.var = 0
self.choose_size_button = Scale(self.root, from_=1, to=180, resolution=30, variable =
self.var, command=self.printval, orient=HORIZONTAL)
self.choose_size_button.grid(row=3, column=1)
self.inval=90
self.choose_size_button.set(self.inval)
self.count = 0
#self.setup()
self.root.mainloop()

30
Wolkite University
Department of Electrical and computer engineering
Ministry of Innovation and Technology
Internship Report

def left(self):
if self.inval < 180:
self.inval=self.inval+30
self.choose_size_button.set(self.inval)
def right(self):
if self.inval > 0:
self.inval=self.inval-30
self.choose_size_button.set(self.inval)
def printval(self, var):
print(var)
ser.write(str.encode(str(var)))
def forward(self):
#self.activate_button(self.Forward_btn)
#s = '~/Desktop/Mnst/amharic_data/d/' + str(self.count) + '.ps'
self.stop()
sleep(1)
p.ChangeDutyCycle(60)
p2.ChangeDutyCycle(60)
GPIO.output(12, False)
GPIO.output(1, False)
def Backward(self):
#self.activate_button(self.Backward_btn)
self.stop()
sleep(1)
p.ChangeDutyCycle(60)
p2.ChangeDutyCycle(60)
GPIO.output(12, True)
GPIO.output(1, True)

31
Wolkite University
Department of Electrical and computer engineering
Ministry of Innovation and Technology
Internship Report
def stop(self):
#self.activate_button(self.Turnleft_btn, eraser_mode=True)
p.ChangeDutyCycle(0)
p2.ChangeDutyCycle(0)

def activate_button(self, some_button, eraser_mode=False):


self.active_button.config(relief=RAISED)
some_button.config(relief=SUNKEN)
self.active_button = some_button
self.eraser_on = eraser_mode

if __name__ == '__main__':
GPIO.setmode (GPIO.BCM)
GPIO.setup(18, GPIO.OUT)
GPIO.setup(12, GPIO.OUT)
GPIO.setup(1, GPIO.OUT)
GPIO.setup(23, GPIO.OUT)
GPIO.setwarnings(False)
ser = serial.Serial('/dev/ttyACM0', 9600)
#GPIO.output(12, False)
#GPIO.output(1, False)

p2 = GPIO.PWM(23, 50)
p = GPIO.PWM(18, 50)
p.start (0)
p2.start(0)
sleep (2)
Paint()

32
Wolkite University
Department of Electrical and computer engineering
Ministry of Innovation and Technology
Internship Report
Arduino Code

#include <Servo.h>

Servo myservo; // create servo object to control a servo


// twelve servo objects can be created on most boards
String val = "";

void setup() {
myservo.attach(9); // attaches the servo on pin 9 to the servo object
Serial.begin(9600);
}

void loop() {
val = Serial.readString();
myservo.write(val.toInt()); // tell servo to go to position in variable
delay(15); // waits 15ms for the servo to reach the position

33
Wolkite University
Department of Electrical and computer engineering
Ministry of Innovation and Technology
Internship Report
Reference
[1] https://www.techemergence.com/self-driving-car-timeline-themselves-top-
11-automakers/

[2] https://en.wikipedia.org/wiki/Self-driving_car

[3] Gehrig, Stefan K.; Stein, Fridtjof J. (1999). Dead reckoning and cartography
using stereo vision for an automated car. IEEE/RSJ International Conference
on Intelligent Robots and Systems. 3. Kyongju. pp. 1507–
1512. doi:10.1109/IROS.1999.811692. ISBN 0-7803-5184-3.

[4] Lassa, Todd (January 2013). "The Beginning of the End of Driving". Motor
Trend. Retrieved 1 September 2014.

[5 European Roadmap Smart Systems for Automated Driving Archived 12


February 2015 at the Wayback Machine., European Technology Platform on
Smart Systems Integration (EPoSS), 2015.

[6] Umar Zakir Abdul, Hamid; et al. (2016). "Current Collision Mitigation
Technologies for Advanced Driver Assistance Systems–A
Survey" (PDF). PERINTIS eJournal. 6 (2). Retrieved 14 June 2017.

[7] "[INFOGRAPHIC] Autonomous Cars Could Save The US $1.3 Trillion


Dollars A Year". businessinsider.com. 12 September 2014. Retrieved 3
October 2014.

[8] Gibson, David K. (28 April 2016). "Can we banish the phantom traffic jam?".
BBC.

34
Wolkite University
Department of Electrical and computer engineering
Ministry of Innovation and Technology
Internship Report
[9] "Driver licensing system for older drivers in New South Wales,
Australia". NSW Government. 30 June 2016. Retrieved 16 May 2018.

[10] "BMW Remote Controlled Parking". www.bmwblog.com. 10 October


2010. Retrieved 16 October 2011.

[11] Miller, Owen. "Robotic Cars and Their New Crime Paradigms".
Retrieved 4 September 2014.

[12] Miller, John (19 August 2014). "Self-Driving Car Technology's Benefits,
Potential Risks, and Solutions". theenergycollective.com. Archived from the
original on 8 May 2015. Retrieved 4 June 2015.

[13] Whitwam, Ryan (8 September 2014). "How Google's self-driving cars


detect and avoid obstacles". ExtremeTech. Retrieved 4 June 2015.

[14] Henn, Steve (31 July 2015). "Remembering When Driverless Elevators
Drew Skepticism". NPR. Retrieved 14 August 2016.

[15] Nicholas, Negroponte (1 January 2000). Being digital. Vintage


Books. ISBN 0679762906. OCLC 68020226.

[16] Adhikari, Richard (11 February 2016). "Feds Put AI in the Driver's
Seat". Technewsworld. Retrieved 12 February 2016.

[17] "New Allstate Survey Shows Americans Think They Are Great Drivers –
Habits Tell a Different Story". PR Newswire. 2 August 2011. Retrieved 7
September 2013.
[18] https://en.wikipedia.org/wiki/Convolutional_neural_network

35
Wolkite University
Department of Electrical and computer engineering

View publication stats

You might also like