PRE2019 4 Group3

From Control Systems Technology Group
Jump to navigation Jump to search

Group Members

Student name Student ID Study E-mail
Kevin Cox 1361163 Mechanical Engineering
Menno Cromwijk 1248073 Biomedical Engineering
Dennis Heesmans 1359592 Mechanical Engineering
Marijn Minkenberg 1357751 Mechanical Engineering
Lotte Rassaerts 1330004 Mechanical Engineering

Problem Statement

Over 5 trillion pieces of plastic are currently floating around in the oceans [1]. For a part, this so-called plastic soup, exists of large plastics, like bags, straws, and cups. But it also contains a vast concentration of microplastics: these are pieces of plastic smaller than 5[mm] in size [2]. There are five garbage patches across the globe [1]. In the garbage patch in the Mediterranean sea, the most prevalent microplastics were found to be polyethylene and polypropyline [3].

A study in the Northern Sea showed that 5.4[%] of the fish had ingested plastic [4]. The plastic consumed by the fish accumulates - new plastic does go into the fish, but does not come out. The buildup of plastic particles results in stress in their livers [5]. Beside that, fish can become stuck in the larger plastics. Thus, the plastic soup is becoming a threat for sea life.

The locations of the five garbage patches around the globe[1].

A lot of this plastic comes from rivers. A study published in 2017 found that about 80[%] of plastic trash is flowing into the sea from 10 rivers that run through heavily populated regions. The other 20[%] of plastic waste enters the ocean directly [6], for example, trash blown from a beach or discarded from ships.

In 2019, over 200 volunteers walked along parts of the Maas and Waal [7], and they found 77.000 pieces of litter of which 84[%] was plastic. This number was higher than expected. The best way to help cleaning up the oceans is to first make sure the influx stops. In order to do so, it is important to know how much waste flows from certain rivers to the ocean. At this moment there is no good monitoring of waste flow in rivers, usually everything is counted by hand.

In this project, a contribution will be made to the gathering of information on the litter flowing through the river Maas, specifically the part in Limburg. There will be worked together with the company Noria. They made a machine that removes waste from the water. More information on their project and their interests is provided within the 'Users' section. The device that will be designed will be placed on the Noria as an information-gathering device. It will use image recognition to identify the waste. A design will be made and the image recognition will be tested. Lastly, it will be thought out how the device will be able to save information and communicate it.


  • Do research into the state of the art of current recognition software, river cleanup devices and neural networks.
  • Create a software tool that recognizes and counts different types of waste.
  • Test this software tool and form a conclusion on the effectiveness of the tool.
  • Create a design for the image recognition device.
  • Think of a way to save and communicate the information gathered.


In this part the different users or stakeholders will be discussed.

Schone Rivieren (Schone Maas)

Schone rivieren is a foundation which is established by IVN Natuureducatie, Plastic Soup Foundation and Stichting De Noordzee [8]. This foundation has the goal to have all Dutch rivers plastic-free in 2030. They rely on volunteers to collectively clean up the rivers and gather information. They would benefit a lot from the information gathered by the Waste Identifier, because it provides the organization with useful data that can be used to optimize the river cleanup.

A few of the partners will be listed below. These give an indication of the organizations this foundation is involved with.

  • Rijkswaterstaat (executive agency of the Ministry of Infrastructure and Water Management) - Rijkswaterstaat is interested in information about the amount of waste in rivers and the clean up of this.
  • Nationale Postcode Loterij (national lottery) - They donated 1.950.000 euros to the foundation. This indicates that the problem is seen as significant. This donation helps the foundation to grow and allows them to use resources.
  • Tauw - Tauw is a consultancy and engineering agency that offers consultancy, measurement and monitoring services in the environmental field. It also works on the sustainable development of the living environment for industry and governments.

Lastly, the foundation also works together with the provinces Noord-Brabant, Gelderland, Limburg, and Utrecht.


Rijkswaterstaat is the executive agency of the Ministry of Infrastructure and Water Management, as mentioned before [9]. This means that it is the part of the government that is responsible for the rivers of the Netherlands. They also are the biggest source of data regarding rivers and all water related topics in the Netherlands. Other independent researchers can request data from their database. This makes them a good user, since this project could add important data to that database. Rijkswaterstaat also funds projects, which can prove helpful if the concept that is worked out in the project is ever realized.

RanMarine Technology (WasteShark)

RanMarine Technology is a company that is specialized in the design and development of industrial autonomous surface vessels (ASVs) for ports, harbors and other marine and water environments. The company is known for the WasteShark. This device floats on the water surface of rivers, ports and marinas to collect plastics, bio-waste and other debris [10]. It currently operates at coasts, in rivers and in harbors around the world - also in the Netherlands. The idea is to collect the plastic waste before a tide takes it out into the deep ocean, where the waste is much harder to collect.

The WasteShark in action[10].

WasteSharks can collect 200 liters of trash at a time, before having to return to an on-land unloading station. They also charge there. The WasteShark has no carbon emissions, operating on solar power and batteries. The batteries can last 8-16 hours. Both an autonomous model and a remote-controlled model are available [10]. The autonomous model is even able to collaborate with other WasteSharks in the same area. They can thus make decisions based on shared knowledge [11]. An example of that is, when one WasteShark senses that it is filling up very quickly, other WasteSharks can come join it, for there is probably a lot of plastic waste in that area.

This concept does seem to tick all the boxes (autonomous, energy neutral, and scalable) set by The Dutch Cleanup. A fully autonomous model can be bought for under $23000 [12], making it pretty affordable for governments to invest in.

The autonomous WasteShark detects floating plastic that lies in the path of the WasteShark using laser imaging detection and ranging (LIDAR) technology. This means the WasteShark sends out a signal, and measures the time it takes until a reflection is detected [13]. From this, the software can figure out the distance of the object that caused the reflection. The WasteShark can then decide to approach the object, or stop / back up a little in case the object is coming closer [12], this is probably for self-protection. The design of the WasteShark makes it so that plastic waste can go in easily, but can hardly go out of it. The only moving parts of the design are two thrusters which propel the WasteShark forward or backward [11]. This means that the design is very robust, which is important in the environment it is designed to work in.

The fully autonomous version of the WasteShark can also simultaneously collect water quality data, scan the seabed to chart its shape, and filter the water from chemicals that might be in it [12]. These extra measurement devices and gadgets are offered as add-ons. To perform autonomously, this design also has a mission planning ability. In the future, the device should even be able to construct a predictive model of where trash collects in the water [11]. The information provided by the Waste Identifier can be used by RanMarine Technology in the future to guide the WasteShark to areas with a high number of litter.


Noria focuses on the development of innovative methods and techniques to tackle the plastic waste problem in the water. They focus on tackling this problem from the time the plastic ends up in the water until it reaches the sea [14]. In the figure below, the system of Noria can be seen. It works with a large rotating mill, of which the blades consist of sieves. As the blades rotate, using an electric motor, macroplastics and other debris are removed out of the top layer of the water. Eventually the waste ends up in the middle of the machine, where it falls into a storage bin. Via Rijkswaterstaat, contact has been made with the founder and owner of Noria, Rinze de Vries. Rinze de Vries is interested in working together for this project. Therefore, there is decided to apply an image recognition system on the Noria system to detect the amount and type of waste that is collected by the system of Noria.

System of Noria in action [14].

A pilot has been executed with the Noria. This pilot is aimed at testing a plastic catch system in the lock of Borgharen. The following conclusions can be drawn from this pilot:

  • More than 95[%] of the waste released into the lock was taken out of the water with the Noria system. This applies to waste as well as organic waste with a size of 10 to 700 mm.
  • At this moment, it is quite a challenge to drain the waste from the system.


For the Waste Identifier a number of requirements has been set that are listed below. In order to make the requirements concrete and relevant it has been decided to contact potential users. One of the users, Rijkswaterstaat, responded to the request and decided that it was allowed to conduct an interview with one of their employees, Ir. Brinkhof, who is a project manager. He is specialized in the region of the Maas and has insight in all projects and maintenance. Another interview has been conducted with Ir. Rinze de Vries, who is the owner of Noria. Both these interviews can be found at the end of this page in the section 'Conducted interviews'. Based on the conducted interviews the following requirements have been set.

Requirements for the Software

  • The program should be able to identify and classify different types of waste;
  • The program should be able to count the amount of each waste type that flows into the Noria;
  • The program should be able to identify and count waste in the water correctly for at least 90[%] of the time;
  • Data should be converted to information;
  • The same piece of waste should not be counted multiple times. The same threshold of counting 90[%] correctly applies here.

Requirements for the Design

  • The design should be weatherproof;
  • The design should operate at all moments when Noria is also operating;
  • The design should be robust, so it should not be damaged easily;
  • The design should not interfere with the rotating parts of the Noria;
  • The design should have its own power source.

Finally, literature research about the current state of the art must be provided. At least 25 sources must be used for the literature research of the software and design.



For the planning, a Gantt Chart is created with the most important goals and subgoals that need to be tackled. The group is split into people who create the design and applications of the Waste Identifier, and people who work on the creation of the neural network. The overall view of the planning is that in the first two weeks, a lot of research has to be done. This needs to be done for, among other things, the problem statement, users and the current technology. In the second week, more information about different types of neural networks and the working of different layers should be investigated to gain more knowledge. Also, this could lead to installing multiple packages or programs on laptops, which needs time to test whether they work. During this second week, a data-set should be created or found that can be used to train our model. If this cannot be found online and thus should be created, this would take much more time than one week. However, it is hoped to be finished after the third week. After week 5, an idea of the design should be elaborated with the use of drawings or digital visualizations. Also all the possible neural networks should be elaborated and tested, so that in week 8 conclusions can be drawn for the best working neural network. This means that in week 8, the Wiki-page can be finished with a conclusion and discussion about the neural network that should be used and about the working of the device. Finally, week 9 is used to prepare for the presentation.

The activities are subdivided related to the neural network/image recognition and the design of the device. Kevin and Lotte will work on the design of the device and Menno, Marijn and Dennis will look work on the neural networks.

Project planning.


Week Milestones
1 (April 20th till April 26th) Gather information and knowledge about chosen topic.
2 (April 27th till May 3rd) Further research on different types of neural networks and having a working example of a neural network.
3 (May 4th till May 10th) Elaborate the first ideas of the design of the device and find or create a usable database.
4 (May 11th till May 17th) First findings of correctness of different neural networks and tests of different types of neural networks.
5 (May 18th till May 24th) Conclusion of the best working neural network and making final visualisation of the design.
6 (May 25th till May 31st) First set-up of wiki page with the found conclusions of neural networks and design with correct visualisation of the findings.
7 (June 1st till June 7th) Creation of the final wiki-page.
8 (June 8th till June 14th) Presentation and visualisation of final presentation.


  • Design of the Waste Identifier
  • Software for image recognition
  • Complete wiki-page
  • Final presentation


Quantifying Waste

Plastic debris in rivers has been quantified before in three ways [15]. First of all, by quantifying the sources of plastic waste. Second of all, by quantifying plastic transport through modelling. Lastly, by quantifying plastic transport through observations. The last one is most in line with what will be done in this project. No uniform method for counting plastic debris in rivers was made. So, several plastic monitoring studies each thought of their own way to do so. The methods can be divided up into 5 different subcategories [15]:

1. Plastic tracking: Using GPS (Global Positioning System) to track the travel path of plastic pieces in rivers. The pieces are altered beforehand so that the GPS can pick up on it. This method can show where cluttering happens, where preferred flowlines are, etc.

2. Active sampling: Collecting samples from riverbanks, beaches, or from a net hanging from a bridge or a boat. This method does not only quantify the plastic transport, it also qualifies it - since it is possible to inspect what kinds of plastics are in the samples, how degraded they are, how large, etc. This method works mainly in the top layer of the river. The area of the riverbed can be inspected by taking sediment samples, for example using a fish fyke [16].

3. Passive sampling: Collecting samples from debris accumulations around existing infrastructure. In the few cases where infrastructure to collect plastic debris is already in place, it is just as easy to use them to quantify and qualify the plastic that gets caught. This method does not require any extra investment. It is, like active sampling, more focused on the top layer of the plastic debris, since the infrastructure is too.

4. Visual observations: Watching plastic float by from on top of a bridge and counting it. This method is very easy to execute, but it is less certain than other methods, due to observer bias, and due to small plastics in a river possibly not being visible from a bridge. This method is adequate for showing seasonal changes in plastic quantities.

5. Citizen science: Using the public as a means to quantify plastic debris. Several apps have been made to allow lots of people to participate in ongoing research for classifying plastic waste. This method gives insight into the transport of plastic on a global scale.

Automatic Visual Observations

Cameras can be used to improve visual observations. One study did such a visual observation on a beach, using drones that flew about 10 meters above it. Based on input from cameras on the UAVs, plastic debris could be identified, located and classified (by a machine learning algorithm) [17]. Similar systems have also been used to identify macroplastics on rivers.

Another study made a deep learning algorithm (a CNN - to be exact, a "Visual Geometry Group-16 (VGG16) model, pre-trained on the large-scale ImageNet dataset" [18]) that was able to classify different types of plastic from images. These images were taken from above the water, so this study also focused on the top layer of plastic debris.

The plastic debris in these images was automatically classified by a deep learning algorithm.

The algorithm had a training set accuracy of 99[%]. But that does not say much about the performance of the algorithm, because it only says how well it categorizes the training images, which it has seen lots of times before. To find out the performance of an algorithm, it has to look at images it has never seen before (so images that are not in the training set). The algorithm recognized plastic debris on 141 out of 165 brand new images that were fed into the system [18]. That leads to a validation accuracy of 86[%]. It was concluded that this shows the algorithm is pretty good at what it should do.

Their improvement points are that the accuracy could be even higher and more different kinds of plastic could be distinguished, while not letting the computational time be too long.

Image Recognition

Over the past decade or so, great steps have been made in developing deep learning methods for image recognition and classification [19]. In recent years, convolutional neural networks (CNNs) have shown significant improvements on image classification [20]. It is demonstrated that the representation depth is beneficial for the classification accuracy [21]. Another method is the use of VGG networks, that are known for their state-of-the-art performance in image feature extraction. Their setup exists out of repeated patterns of 1, 2 or 3 convolution layers and a max-pooling layer, finishing with one or more dense layers. The convolutional layer transforms the input data to detect patterns and edges and other characteristics in order to be able to correctly classify the data. The main parameters with which a convolutional layer can be changed, is by choosing a different activation function or kernel size [21].

There are still limitations to the current image recognition technologies. First of all, most methods are supervised, which means they need big amounts of labelled training data, that need to be put together by someone [19]. This can be solved by using unsupervised deep learning instead of supervised. For unsupervised learning, instead of large databases, only some labels will be needed to make sense of the world. Currently, there are no unsupervised methods that outperform supervised. This is because supervised learning can better encode the characteristics of a set of data. The hope is that in the future unsupervised learning will provide more general features so any task can be performed [22]. Another problem is that sometimes small distortions can cause a wrong classification of an image [19] [23]. This can already be caused by shadows on an object that can cause color and shape differences [24]. A different pitfall is that the output feature maps are sensitive to the specific location of the features in the input. One approach to address this sensitivity is to use a max pooling layer. Max pooling layers reduce the number of pixels in the output size from the previously applied convolutional layer(s). The pool-size determines the amount of pixels from the input data that is turned into 1 pixel from the output data. Using this, has the effect of making the resulting down sampled feature maps more robust to changes in the position of the feature in the image [21].

Neural Networks

Neural networks are a set of algorithms that are designed to recognize patterns. They interpret sensory data through machine perception, labeling or clustering raw input. The patterns they recognize are numerical, contained in vectors. Real-world data, such as images, sound, text or time series, need to be translated into such numerical data to process it [25].

There are different types of neural networks [26]:

  • Recurrent neural network: Recurrent neural networks, also known as RNNs, are a class of neural networks that allow previous outputs to be used as inputs while having hidden states. These networks are mostly used in the fields of natural language processing and speech recognition [27].
  • Convolutional neural networks: Convolutional neural networks, also known as CNNs, are used for image classification.
  • Hopfield networks: Hopfield networks are used to collect and retrieve memory like the human brain. The network can store various patterns or memories. It is able to recognize any of the learned patterns by uncovering data about that pattern [28].
  • Boltzmann machine networks: Boltzmann machines are used for search and learning problems [29].

Convolutional Neural Networks

In this project, the neural network should retrieve data from images. Therefore a convolutional neural network could be used. Convolutional neural networks are generally composed of the following layers [30]:

Layers in a convolutional neural network.

The convolutional layer transforms the input data to detect patterns, edges and other characteristics in order to be able to correctly classify the data. The main parameters with which a convolutional layer can be changed are by choosing a different activation function, or kernel size. Max pooling layers reduce the number of pixels in the output size from the previously applied convolutional layer(s). Max pooling is applied to reduce overfitting. A problem with the output feature maps is that they are sensitive to the location of the features in the input. One approach to address this sensitivity is to use a max pooling layer. This has the effect of making the resulting downsampled feature maps more robust to changes in the position of the feature in the image. The pool-size determines the amount of pixels from the input data that is turned into 1 pixel from the output data. Fully connected layers connect all input values via separate connections to an output channel. Since this project has to deal with a binary problem, the final fully connected layer will consist of 1 output. Stochastic gradient descent (SGD) is the most common and basic optimizer used for training a CNN [31]. It optimizes the model using parameters based on the gradient information of the loss function. However, many other optimizers have been developed that could have a better result. Momentum keeps the history of the previous update steps and combines this information with the next gradient step to reduce the effect of outliers [32]. RMSProp also tries to keep the updates stable, but in a different way than momentum. RMSprop also takes away the need to adjust learning rate [33]. Adam takes the ideas behind both momentum and RMSprop and combines into one optimizer [34]. Nesterov momentum is a smarter version of the momentum optimizer that looks ahead and adjusts the momentum based on these parameters [35]. Nadam is an optimizer that combines RMSprop and Nesterov momentum [36].


YOLO is a deep learning algorithm which came out on may 2016. It is popular because it’s very fast compared with other deep learning algorithms [37]. For YOLO, a completely different approach is used than for prior detection systems. In prior detection systems, a model is applied to an image at multiple locations and scales. High scoring regions of the image are considered detections. For YOLO a single deep convolutional neural network is applied to the full image. This network divides the image into a grid of cells and each cell directly predicts a bounding box and object classification [38]. These bounding boxes are weighted by the predicted probabilities [39].

The newest version of YOLO is YOLO v3. It uses a variant of Darknet for training and testing. Darknet originally has 53 layers trained on ImageNet. For the task of detection, 53 more layers are stacked onto it. In total, this means that a 106 layer fully convolutional underlying architecture is used for YOLO v3. In the figure below it can be seen what the architecture of YOLO v3 looks like [40].

YOLO network structure [40].


The network needs to be trained on images of the object that is needed to be identified by the network. These images, on which the network will be trained, need to be labeled to assign them to a certain class. This can be done with LabelImg. LabelImg is a graphical image annotation tool which can be seen below. The objects need to be identified manually by creating a rectangular box around it and assigning them a label.


At the end, the network should be able to detect the objects that are trained on it. This can be done with different formats: photos, videos or via webcam. In the figure below, an example of the working of the network can be seen. First, the network divides the image into regions and predicts the bounding boxes and probabilities for each region. Then, these bounding boxes are weighted by the predicted probabilities.

Example object detection [41].

Further Exploration


Rivers are seen as a major source of debris in the oceans [42] . The tide has a big influence on the direction of the floating waste. During low tide the waste flows towards the sea, and during high tide it can flow over the river towards the river banks [43].

A big consequence of plastic waste in rivers, seas, oceans and river banks is that a lot of animals can mistake plastic for food, often resulting in death. There are also economic consequences. More waste in waters, means more difficult water purification, especially because of microplastics. It costs extra money to be able to purify the water. Also, cleaning of waste in river areas, costs millions a year [44].

A large-scale investigation has taken place into the wash-up of waste on the banks of rivers. At river banks of the Maas, an average of 630 pieces of waste per 100 meters of river bank was counted, of which 81[%] is plastic. Some measurement locations showed a count of more than 1200 pieces of waste per 100 meters riverbank, and can be marked as hotspots. A big concentration of these hotspots can be found at the riverbanks of the Maas in the south of Limburg. A lot of waste, originating from France and Belgium, flows into the Dutch part of the Maas here. Evidence for this, is the great amount of plastic packaging with French texts. Also, in these hotspots the proportion of plastic is even higher, namely 89[%] instead of 81[%] [43].

The Waste Identifier should help to tackle the problem of the plastic soup at its roots, the rivers. Because of the high plastic concentration in the Maas in the south of Limburg, there will be specifically looked into designing the image recognition module, for this part of the Maas. The Noria is often placed in locks to make sure it does not interfere with other water traffic. Therefore, there will also be focused on those specific parts of the river Maas in the South of Limburg.


An extensive research into the amount of waste on the river banks of the Maas has been executed [43]. As explained before, waste in rivers can float into the oceans or can end up on river banks. Therefore, the counted amount of waste on the river banks of the Maas is only a part of the total amount of litter in the rivers, since another part flows into the ocean. The exact numbers of how much flows into the oceans are not clear. However, it is certain that at the South of Limburg an average of more than 1200 pieces of waste per 100 meters of riverbank of the Maas were counted, of which 89[%] is plastic.

A top 15 was made of which types of waste were encountered the most. The type of plastic most commonly found is indefinable pieces of soft/hard plastic and plastic film that are smaller than 50 [cm], including styrofoam. This indefinable pieces also include nurdles. This are small plastic granules, that are used as a raw element for plastic products. Again, the south of Limburg has the highest concentration of this type of waste. This is because there are relatively more industrial areas there. Another big part of the counted plastics are disposable plastics, often used as food and drink packaging. In total 25[%] of all encountered plastic is disposable plastic from food and drink packages.

Only litter that has washed up on the riverbanks has been counted. The Waste Identifier can help with monitoring the waste flow in the water of the rivers to get a more complete view of hotspots and often encountered waste types.

Image Database

The CNN or YOLO can be pretrained on the large-scale ImageNet. Due to this pre-training, the model has learned certain image features from this large dataset. Secondly the neural network should be trained on a database specified on this subject. This database should then randomly be divided into 3 groups. The biggest group is the training data, which the neural network uses to see patterns and to predict the outcome of the second dataset, the validation data. Ones this validation data has been analyzed, a new epoch is started, which means that the validation data is part of the training data. Once a final model has been created, a test dataset can be used to analyzed its performance.

It is difficult to find a database perfectly corresponding to our subject. First of all, a big dataset of plastic waste in the ocean is available [45]. A big dataset of plastic shapes can be used, although these are not from waste in the water it can still be useful [46]. Using image preprocessing, it could be possible to still find corresponding shapes of plastic from pictures in the water that the camera takes. Lastly, a dataset can be created by ourselves.

Neural Network Design

Because of the higher frame rate that can be created using YOLO in comparison to CNN, it has been chosen to use YOLO as the object detection method. A dataset, that will be further explained later, will be labelled and used for training and validation. This training is done using Google Colab, so that an external GPU computer, made available by Google, can be used to improve the training speed. Here, weights from Darknet, which is the framework for YOLO, is downloaded and iterationally changed to fit the database and gain the lowest validation loss. However, the connection to Google Colab can only be made for 12 hours. Because of this, the training has been done multiple times by restarting a new training using the final weights from the previous training. By doing this, the validation loss has been reduced to 0.045. These weights have finally been trained on new images and videos, to verify the low loss. Also a counting software has been created. For this, it needs to be assumed that there is a current in the water and new waste objects only appear from the top of the frame. If an object has been detected, and no object was higher than this object, it means that this is a new object and it will be counted.

Although, that part of the code for testing and training has been obtained from the PySource blog [47], these codes need to be adapted to our problem statement and number of classifications. Besides, code for counting and changing the label number to our specific problem, have been created. The files can be downloaded from the following GitHub link: Here, the file "bottle_and_can_Train_YoloV3 .ipynb" can be used to train the model in Google Colab. the zip-file "" needs to be placed in a map named "yolov3" in Google Drive. The files "" can be used for the detection of images and "" for the detection of videos, where the counting software has been added.

Data Augmentation

The dataset does not contain as many images as desired. If there is not enough data, neural networks tend to over-fit to the little amount of data there is, which is undesirable. That is why some way has to be found to increase the size of the dataset. One way to increase the size of a dataset is by use of data augmentation [48][49] . If this is used, then not only are the original images fed into the neural network, but also slightly altered images. Alterations include:

  • Translation
  • Rotation
  • Scaling
  • Flipping
  • Illumination
  • Overlapping images
  • Gaussian noise, etc.
Different uses of data augmentation. Every image is a completely new one to the neural network.

Every altered image counts as completely new data for the neural network, which is why it is able to train using this duplicated data without over-fitting to it.

Neural networks benefit from having more data to train on, simply because the classifications become stronger with more data. But on top of that, neural networks that are trained on translated, resized or rotated images are much better at classifying objects that are slightly altered in any way (this is called invariance). In the case of waste in water, training a neural network to be invariant makes a lot of sense: there is no saying whether a piece of waste will be upside-down, slightly damaged, not fully visible etc. A data augmentation code has been written and can be implemented once the dataset is final. It can be found via the following GitHub link: at "".


The idea is that a test setup will be created and placed in a black reservoir. If the final proof-of-concept test setup is likewise, it makes sense that the dataset should have similar conditions. This is why the dataset will consist of self-taken pictures using a similar setup (position, camera angle, lighting) as the test setup, and of an online dataset which contains images of waste outside the water. This way, a dataset that is large enough to train the neural network is obtained. The final dataset can be found via the following GitHub link:

The self-taken pictures will be made from a very slight angle (so not directly above the plastic), in reasonable shade, with as little reflections as possible, to avoid confusing the neural network. The amount of useful images can later be increased using data augmentation. Different types of river waste will be gathered and submerged in the water of the reservoir. There will be images of:

  • Plastic bottles
  • Drinking cans

The ground truth of the images will be categorized by hand using the labelling program 'labelImg'. With the latter, the position of the object can also be indicated. More than one type of waste can be on one image. There will also be some noise in the water, to make it a bit harder for the neural network to recognize the waste. This noise will come in the form of leaves, similar to the noise that will be faced on Noria's actual installation.

This means that our final product will be mostly a proof-of-concept. If the idea is actually realized on the Noria, it is advised to recreate the dataset in its river environment, so that the neural network does not get confused over any sudden changes. Given the effectiveness in the black vat setup, the possible effectiveness of the neural network in Noria's environment can be discussed at the end of the project.


Eventually 78 photos have been taken by ourselves, containing bottles and cans, to train a neural network with, together with the online dataset of plastic bottles and cans on a white back ground[46]. This is a TrashNet database that is open for everybody and downloaded on GitHub.. They are compressed to 500 x 500 pixels using a Photoshop script. See the examples below.

4 of the photos that were taken, and 4 augmented photos.

Data augmentation was applied to this set of photos, expanding the dataset to 529 photos. In the Data Augmentation, use was made of:

  • Scaling
  • Translation
  • Rotation
  • Flipping

Each of these augmentations was done at random. The random range was made very slight so that little problems occured with trash being stretched out unrealistically. The resulting dataset is only 18 MB and can be found via the following Github link: The augmented images were categorized by hand as 'plastic' and 'can', using labelImg. They were then zipped into a folder and submitted into Google Colab to start training.

Test Plan


Test the amount of correctly identified and counted waste pieces in the water.


At least 90[%] of the waste will be identified and counted correctly out of at least 50 images and a video of waste in water.


  • Camera
  • Different types of waste
  • Image recognition software
  • Reservoir with water


  • Throw different types of waste in the water
  • Take at least 50 different images of this from above, with the camera (there can be more pieces of waste within one image)
  • Make a video of the floating waste
  • Add the images to a folder
  • Run the image recognition software
  • Analyze how much pieces of waste are correctly identified and counted

Note: due to limited resources it was not possible to make a long video of floating waste, so separate videos are made that are placed one behind the other. To get more reliable results in the future, more images and videos can be used.

Testing Results (photos)

New test photos are taken of individual waste items in the reservoir, and of a very crowded reservoir filled with lots of trash. This test dataset can also be found in GitHub ( The idea was to see if the current neural network could also handle crowded photos of trash, granted that recognizing individual items might be pretty easy for it.

Most of the test photos gave correct results. The test photos of the individual waste items all worked perfectly. However, in some of the crowded photos, one or maybe two items were missed. Sometimes this was caused by the object being a little out of frame. In other cases, the object was behind the surrounding objects, making it too hidden to be recognized.

4 examples of image recognition on the crowded test photos.

Waste being out of frame should not be an issue in the final application of the image recognition, since the camera will film over the entire width where the trash can be. Waste being too close together might cause a problem on the Noria though, as clogging of waste is a realistic problem. This problem could be (mostly) solved by training on very crowded images, which will force the neural network to look for smaller parts of waste hidden behind other parts.

Testing Results (videos)

The most important part of this project is to visualize the amount and sort of waste that is being removed from the water. This will be done by using the object detection software. A script is written that classifies the waste and also counts the amount of waste objects that are removed from the water. The same neural network that is used for the photos can be used for this purpose. The neural network individually interprets each frame in this case.

To test whether the counting works, new videos are recorded where the camera moves over the trash, making it as if the trash is moving from top to bottom. The idea is to use these videos to test whether the counting of waste is working or not. In the video below, a demonstration of the counting software can be seen. At this moment the software is made in a relatively simple way, because it would be good enough to show the working of the concept and there is not enough time to make a more complicated better working script.

Demonstration of counting software.

In the second video can be seen that some objects are counted double. This occurs because the object is not detected in a certain frame. To solve this, tracking software can be used so the object can be followed. The object could then be counted when it passes a certain line (see or when it is in a certain box (see

Two objects are counted double.


Besides the image recognition program, the module itself will need to meet the requirements mentioned at the beginning of this page. There, it is mentioned that the robot should operate at all moments when the Noria is also operating. This means that battery life should be long or some kind of power generation must be present at the Noria itself. Also, the design should be weatherproof and robust. The robot will need to have certain functionalities to be able to meet these requirements. There will be focused on specific parts of the robot that are essential to the operation of the robot. This includes:

  • Image recognition hardware
  • Data transfer
  • Power source
  • General assembly

Image Recognition Hardware

The camera that must be used, should be weatherproof. Also, the device should not run out of energy. Besides, it must be possible to retract the images from the camera to be able to use them for image recognition. Finally, the quality should of course be high enough to be able to let the image recognition work well. A common used camera is the GoPro. The GoPro Hero6, Hero7 and Hero8 can be powered externally, also with a weatherproof connection [50] [51]. The internal battery can be left in place as a safety net in case external power cannot be provided. Without an internal battery, the camera will turn off when the external power flow stops and it will not turn back on automatically when the power source is restored. With an internal battery it will switch seamlessly when necessary. The disadvantage is of course that the internal battery can also run out of power. GoPro does not offer very long battery life when shooting for a long time, however there are ways to improve this and this will be elaborated on in the next part. For now there will be focused on the resolution that the GoPro cameras have to offer. The newest GoPro, the GoPro Hero8 Black, takes photos in 12MP and makes video footage (including timelapses) in 4K up to 60fps. Additionally, it has improved video stabilization, called HyperSmooth 2.0, which can come in handy when there are more waves, by e.g. rougher weather [52]. However, lots of external extension (like additional power sources from external companies) are not compatible with the newest GoPros yet. The GoPro Hero7 Black has about the same specs when it comes to image and video quality. It also has video stabilization, but an older version, namely HyperSmooth [53]. More extensions are possible for the GoPro Hero7 Black, so it is better to use that version.

GoPros are a compact and a relatively cheap option compared to DSLR cameras (Digital Single Lens Reflex). However, as mentioned before, battery life can be an issue. Therefore, another option could be to use the Cyclapse Pro, which can also come with extensions such as solar panels. They have a build-in Nikon or Canon camera, which can provide a higher quality [54]. The standard implemented camera is the Canon T7, that provides 24.1MP pictures and can provide full HD videos at 30 fps [55]. The camera itself is $700 USD (2 times more expensive than GoPros), and the costs increase quickly when additional components are bought. The complete Cyclapse Pro includes a Digisnap Pro controller with Bluetooth to enable time-lapsing, a Cyclapse weatherproof housing and a lithium ion battery [54]. Because of this, this Cyclapse Pro module costs over $3000 USD. Also, the module is not as compact as a GoPro, since DSLR cameras themselves are already much larger than GoPros. Before a choice can be made between both options, there must be looked at data transfer options and additional power sources.

Data Transfer

A GoPro creates its own Wifi signal to which you could connect a phone using the GoPro app. Then data could be sent from there to a computer. Another option could be Auto Upload which is part of GoPro Plus. For a monthly or yearly fee, the GoPro automatically uploads its footage to The Cloud [56] [57]. However, this works together with the GoPro app which requires a mobile device. The image recognition itself will use a computer. Also, when auto uploading to The Cloud, the images/videos are not deleted from the storage within the GoPro. This will be necessary for operation of the device, since otherwise the GoPro storage will be filled up quickly. Besides, it is not completely clear if Auto Upload requires that the GoPro and mobile device are connected to the same Wifi network. Finally, to auto upload, the GoPro must be connected with a power source and it needs to be charged to at least 70[%], and it may not be possible to always keep the battery above this 70[%].

A solution could be to connect GoPro to the FlashAir™ W-04 wireless SD card. This SD card can save up to 64 GB of data. The SD card can be accessed with a phone or laptop and the pictures have to be manually saved. Then the pictures can be used for the image recognition. Also, a normal SD card could be used, but this requires that the SD card is manually swapped at certain times.

The Cyclapse Pro also offers Wifi options to be able to transfer data [58]. The DigiSnap Pro within the Cyclapse Pro can transfer images from the camera to an FTP (File Transfer Protocol) server on the local network or internet. The DigiSnap Pro most popularly uses FTP image transfers via USB cellular modems and local USB download. The Digisnap Pro also provides an Android app. Every image taken by the camera can be configured within the DigiSnap Pro Android Application to automatically transfer to a specified FTP folder location on the internet using a USB cellular modem.

Power Source

GoPro with SolarX extension[59].
Cyclapse with solar panel extension[60].

CamDo offers an add-on to the GoPro Hero3 to Hero7. It is called SolarX which is a weatherproof solar panel module [59]. This enables long term operation of GoPro cameras for time lapse photography. It includes a 9[W] solar panel to recharge the included V50 battery. The solar panel can be upgraded to 18[W] for use in cloudy or rainy areas. The solar panel charges the included lithium polymer battery which outputs 5[V] to power the camera and can also power other accessories within the weatherproof enclosure. The solar panel can directly be attached to the casing or can be placed separately for optimal usage. The complete module adds significant size to the GoPro, but within the casing there is extra space for additional accessories. If the camera can run indefinitely with only the solar panel, depends on the weather and camera settings. CamDo made a calculator to determine battery life and the best setup [61]. This calculator will be used in the next section to determine whether the solar panel will provide enough power to the camera if it has to make videos 24/7.

Cyclapse Pro also offers a solar panel extension [60]. Without solar panel, a full battery can make around 3000 images [58]. The 20W solar panel can make sure the battery is charged. A second battery pack can be included, to increase the duration the system will operate without charging (e.g. for cloudy skies) [62]. It uses a controller, the Digisnap Pro, to reduce battery usage and gives programming options [54]. Total costs (dependent on specific add-ons), are around $4000 USD, which is significantly larger than for the GoPro.

Since the Cyclapse Pro module is much more expensive, and similar performance is expected, it is chosen to go further with the GoPro Hero7 Black. Now some power calculations will be done with the previously mentioned CamDo calculator to determine if the solar panel will suffice as a power source [61].

Data Storage and Energy Consumption

To be able to draw a conclusion on the power source, the data storage and energy consumption of the camera should be known. To calculate the data storage and energy consumption, the time lapse and solar power calculator from CamDo [61] are used. This gives a rough estimation of the memory and energy needed. The estimations of the calculator will be taken with a margin, to be sure it will work in real life.

The image recognition needs a video as input, also the images have to be taken one second after each other. Further, the fps does not matter since the image recognition observes every single frame, but the GoPro automatically transfers the videos in 30 fps [63]. When the camera shoots 24 hours a day and has a time interval of 1 second between every photo, a 48 minute video with 86400 frames will be the result.

First, the data storage. The data will be stored on an SD card. There has been chosen to store it on a normal SD card. A WiFi SD card has been considered, however there is too much data to transfer, therefore it is easier to manually use two SD cards and change them. To make a choice of SD card, there should be known how many minutes of video can be saved on the card. The following table is obtained with numbers from the CamDo calculator [61].

SD card size [GB] Number of minutes that can be saved
4 9 minutes
8 18 minutes
16 37 minutes
32 74 minutes
64 148 minutes
128 297 minutes
200 464 minutes
256 594 minutes

The eventual choice of SD card also depends on the energy source. This is because the energy source might have to be switched after a certain period of time as time as well. The most effective is if both the SD card and power source are switched at the same time.

The approximation of energy needed is 40.80[Wh]. The internal battery delivers 4.7[Wh], meaning the GoPro needs external energy. The two options considered are a solar panel that powers an external battery or using only an external battery that will have to be switched manually.

In the CamDo calculator, the solar irradiance can be filled in, this is combined with the solar panel of choice and the delivered energy will be calculated. The solar irradiance can be found at the Solar Electricity Handbook [64]. The city taken to obtain the solar irradiance was Maastricht, since that is a city close to the Maas. The following values are obtained in the ideal situation, meaning the solar panel always faces the sun.

Solar irradiance in Maastricht in ideal situation.

The 9[W] solar panel delivers 36[Wh] of energy on a average day in June, where the highest solar irradiation is obtained. This means that multiple solar panels are needed to power the external battery needed to power the GoPro in June alone. In December, the solar radiation, ideally has an average of 1.19[kWh/m^2/day]. Two solar panels then deliver a combined energy of 17[Wh]. This is not enough to constantly power the GoPro, when it has to take a picture every second. Also, since the SD card needs to be switched, it is a better option to only use external batteries, since this is much cheaper, see the table below.

Item Price
2x 9[W] solar panel + 44[Wh] external battery[59] €1761,08
2x Anker Astro E7 external battery[65] (96.48Wh) €95,77

The Anker Astro E7 external battery is chosen because it is compatible with the GoPro Hero7 black and has an extremely high capacity. This option is much cheaper taking into account that a person already has to manually switch the SD card.

Now a choice of SD card can be made, since it is now known that the battery has to be switched once every two days. Two days of shooting is 96 minutes of video. The CamDo calculator assumes that there can be a 30[%] difference in capacity used on the SD card. Therefore, a time of (96*1.3=) 124.8 minutes is taken. This means that the card size has to be 64[GB]. The SanDisk Extreme microSDXC has been chosen, because this card is recommended by GoPro[66]. The price is €12 per card[67].

Total price

1x GoPro Hero 7 black €203,15
2x Anker Astro E7 external battery (96.48Wh) €95,77
2x SanDisk Extreme microSDXC €24,00
Total €322,92

This price seems to be very reasonable, however it is very deceptive. This is because the costs of the travel and time of the person switching the SD card and battery have not been taken into account yet. During more busy days the Noria has to be emptied almost every day. This means that then someone can also swap the battery and SD card, this will only take a few minutes extra. However, it can also occur that the Noria does not have to be emptied for days. This means someone will have to go the Noria to only change the battery and SD. This will increase the costs. However, for now this is the best solution since the SolarX will not provide enough energy and there is no solution for automatic and wireless data transfer. In the future there could be looked at other solutions to these problems, like hydropower as an energy source.


In order to make sure that images of the waste can be made 24/7 for the image recognition, it will be necessary to also makes pictures when it is dark. Therefore, a light will need to be added to the design. This external lighting has to meet some requirements. The lighting must work from dusk till dawn. It has to have its own power source, preferably through solar energy. The lighting must have at least an IP64 rating. The IP rating 'classifies and rates the degree of protection provided by mechanical casings'[68]. The IP64 rating means that the casing is dust-tight and protected against the splashing of water. The external lighting must be able to be mounted on the frame of the Noria. Lastly, the lighting needs to light up the space in front enough so that the image recognition works. In this project it is not possible to test if the first and last requirements is met. The first requirement is elucidated later. To test the last requirements, a setup with the lighting and camera in the dark has to be made. Then a lot of photos need to be made in order to train the image recognition. Finally, the image recognition needs to be tested if it recognizes at least 90[%] of the plastic in the night with the lighting. This is not possible to test in the current time frame. Because a test is not possible, there is no 100[%] guarantee that the current chosen lighting is suitable. However, there will be an elaborate explanation to why this particular lighting is chosen.

The chosen light is Solar Lights Outdoor, Hikeren IP65 Waterproof Solar Lights[69]. The first requirement is that the lighting has to work from dusk till dawn. For this requirement the times of the sunset and sunrise on the shortest day in the Netherlands are used. The longest time between sunset and sunrise is from December 20 to 21 [70]. The sun goes down at 16:29 and rises at 8:46 meaning the lighting has to be able to work for 16 hours and 17 minutes straight. The Hikeren IP65 Waterproof Solar Light can work up to 18 hours straight when fully charged. In order to fully charge the lighting, the solar panel needs 6.5 hours of illumination[69]. Because there are 24 hours in a day, and the longest dusk till dawn takes 16 hours and 17 minutes, this would still leave 7 hours and 43 minutes for charging. This should be enough, however this has to be tested in real life. If it turns out that the lighting does not last the full night, a second light should be added. The problem that should be solved then is to make sure that the lights are not working at the same time but one light turns on just before the other one turns off. This will not be investigated in this project, but should be kept in mind for a potential extension of this project. The Hikeren IP65 Waterproof Solar will automatically switch on and off when it becomes either light or dark.

The Hikeren IP65 Waterproof Solar Light, has as stated in the name an IP rating of 65, meaning it is dust-proof and protected against water jets[68]. The rating should be at least IP64 and therefore, the Hikeren Solar light meets this requirement.

Finally, the lighting has to be able to be mounted on the frame. This can be done and is discussed in further detail in the assembly section.

Field Of View (FOV)

GoPro offers different FOVs (Fields Of View), that determine the area that is covered within a shot by means of the angle in which it can shoot. A linear and wide FOV are provided. The wide FOV has a larger angle, which means a fisheye effect is caused. The difference between the two FOVs is shown in the figure below. The fisheye effect caused by the wide FOV can be seen clearly. It can also be seen that because of that effect a larger area is covered within the photo, while the linear FOV causes the picture to be cut-off in comparison with the wide FOV.

The two FOVs offered by GoPro [71].

The wide FOV curves the horizons and straight lines. Also, subjects in the middle of the frame will look artificially big compared to the surroundings [71]. Besides, when using wide FOV the chance is bigger that the sun sneaks into the shot, which can cause that some details are not visible anymore [72]. A Linear FOV corrects for the fisheye distortion by straightening horizons and verticals and narrowing the perspective. A linear FOV is often used when making aerial footage from drones or when a more 'normal' perspective is desired. So the overall look is less distorted when using linear FOV. However, it also has a few disadvantages. The area that is covered within an image or frame is smaller due to the smaller angle. Also, parts near the edges can get a more stretched look. This is because when choosing linear FOV, the GoPro applies software correction to the lens distortion before saving it to the memory card [71].

If wide FOV is used, the image recognition will have to be trained on such pictures in order to work accurate enough. This is not a huge issue, but taking into account that the perspective is quite distorted when using wide FOV and that sizes of objects can be distorted as well, it is best to use a linear FOV. Maybe in the future, the image recognition could be expanded, so it can also measure sizes of objects. For this, it will be important to have a normal perspective. Also, when using wide FOV more of the water, and maybe even the horizon will be within the image. Then the sun can cause distortions within the images (directly or via the water), which is not desirable. With linear FOV, this area will be kept as small as possible, while still keeping the waste that floats directly into the Noria within its view.


The camera needs to be mounted to the Noria [73]. To not interfere with rotating parts, and to have easy mounting, it is probably best to attach the camera to the shaft indicated in the figure below with the green arrow. The dimensions of the steel shaft are approximated in order to make a design for the mounting of the camera. To determine the height of the camera, it is important to know the FOV (Field Of View) of the camera. It was decided that the linear FOV of the GoPro will be used, which is 102 degrees [72]. It is approximated that the camera should be able to take images across a width of around 1.2 [m]. This means that the camera should be placed at a height of at least 50 [cm] for the linear FOV (relative to the water surface). It is approximated that the steel shaft itself will already be at around 30 [cm] above the water. The final design will need to contain an arm of around 20[cm] high, to reach the desired height with respect to the water surface.

The Noria with indicated the shaft to which the camera can be mounted [73].

A final design for the total assembly has been made. In view 1 the total design can be seen. A custom casing has been made which contains the camera [74] and the external battery (see view 2). The camera is held in place by some small vertical plates and a Velcro fastener (see view 3 and 4). This way the camera will always be placed in the right way. The battery is also held in place by a Velcro fastener (see view 5). The Velcro fasteners can be looped through a small elevation within the casing (see view 4). In front of the camera lens a thin plastic plate is added, which keeps the casing weatherproof (see view 2), while still being able to make video footage. One half of the casing has a slot, into which the other half of the casing can be slid. A rubber could be added to the slot to make sure the casing has better watertightness (see view 3 and 5). This would give the casing an IP rating of IP65, which means the casing is dust-tight (IP6x) and it is protected against water coming from any direction at 12.5[L/min] (IPx5) [75]. This makes the casing not completely watertight, but it does make it weatherproof for normal conditions. When the two casings are slid together, they can be held in place by 4 screws at the corners of the casing (see view 2, 3 and 5).

Also, the arm that is connected to the shaft of the Noria is connected to the casing with a metal plate and 4 screws (see view 1). Those 4 screws are at the same place as the ones of the casing. However, they must be screwed in from the other side. The hole of these screws will not reach the ones of the screws that hold together the casing (see view 8).

Furthermore, the arm is divided into two parts (see view 1). With the joint between the two arms, the angle of the camera can be changed slightly, if necessary. The joint can be held in place with a bolt. The arm is attached to the shaft of the Noria by means of a plate and some screws (see view 1).

Besides, a light is added to the arm (see view 1 and 7). This will make sure that useful footage can be taken 24/7. The light is powered by a solar panel (see view 1). The angle of the solar panel can be adjusted with a joint, so it can be placed the most optimal for a certain location. Also, if necessary, the solar panel can be moved. The cable is 5[m], so if more power can be generated at a different location at the Noria, the placement of the panel can be adjusted.

View 1: Total assembly.
View 2: Casing with camera and battery.
View 3: Camera inside casing with Velcro fasteners.
View 4: Velcro fasteners for camera inside casing.
View 5: Battery inside casing with Velcro fasteners.
View 6: Camera and battery.
  • View 7: Light.
  • View 8: Screws for attachment arm and closing case.

From Data to Information

Stakeholders like Rijkswaterstaat do not want raw data, but information. So the data will need to be converted to useful information, to be able to satisfy stakeholders. To do so the DIKAR model can be used, which stands for data, information, knowledge, action and result [76]. Data represents the raw numbers, stored, but not managed in a way that makes that they can easily be processed. Information comes from data when it is processed. It gets a form which makes it easier to understand or to find relationships. The last three stages: knowledge, action and result, are carried out by the stakeholder. When information is understood it becomes knowledge of the stakeholder. With this knowledge actions can be taken, that in the end give results.

Types of Information

To transform the collected data into something that is more readable, cohesive and accessible there could be looked at different information types. The most interesting types of information about waste in rivers are:

  • Time-dependency
  • Waste types
  • Location

How to process data for these types is worked out below.


MATLAB's geobubble() figure.

A simple histogram (not a line plot!) can be used to show the time-dependency of waste collected by the Noria. For good, trustworthy results, data over a long period of time will be needed. To make such histograms, Jupyter could be used to process the data. It can first be used to make a dataframe containing the amount of waste observed per day. Then it can also be used to create a histogram from this using hist(), which is part of pandas.

Conclusions that can be drawn from this visualization are whether there is less or more waste at night than during the day, whether there is more waste during certain seasons, during weekends, etc.

Waste types

Using a pie-chart or a bar chart, the types of observed waste can be displayed. Exact quantities for each type can be added as extra information. Again, these visualizations can be made in Jupyter, this time using plot.pie() or - of course, after storing the data in dataframes by type. Data can be taken from certain settings (locations, timespans) and compared very easily.

These visualizations effectively show the ratios between certain types of waste, for certain environments.


The MATLAB geobubble() function is good for showing data values and types for different locations around the globe. One can input latitude and longitude coordinates as borders of the chart. It may not be great to show data on the scale of the Netherlands (the grey map is not very detailed), it can serve as an inspiration for a good way of displaying the data by location.

This way of displaying could be combined with the 'types' display, by making every circle into a (bigger) pie-chart on its own. This could be a great visualization for the Noria.

Jupyter Notebooks

It is decided that the final information delivered will be a pie chart of waste type distribution per location. A Jupyter Notebook is written that can interpret data from a .csv file and can make pie charts out of it. An example of this can be found below. If needed, these pie charts can be placed onto a map by hand, based on the location it is for. Also, above the map a time indication could be added. Then it will display the amount of each waste type, at different locations and within a certain time span.

An example of a produced pie chart.



No ideal solution has been found for data transfer and an energy source. Now, these need to be changed manually and that will add costs that are not included in the project. These costs are not included since they are not determinable. The SD card and battery have to be changed once every two days, however it is not always necessary for a person to drive there to only switch these components. A lot of times the container of the Noria has to be emptied but an exact number has not been determined for this yet. Therefore, the costs of travelling and switching are not taken into account.

In the future, another solution could be found for this. For example by looking at other forms of energy generation, such as hydropower. Since the Noria is set in the Maas where there is a current, this could be used to induce power. Also, there can be looked at making the data transfer autonomous. This was not possible in the timeframe of this project but could be possible in a continuation of this project.

To conclude, this was the best possible design in the time frame of the project but multiple improvements are possible with more time.

Cost Problem

The original idea was to place the Waste Identifier on the Noria. However, conversations with Rinze de Vries have shown that it is better to use the Waste Identifier in a different way than directly on the Noria. When the Waste Identifier should be placed on each individual Noria, this would entail a large cost. Therefore, it might be less attractive for the user to purchase the Waste Identifier. A proposal by Rinze for this was to apply the Waste Identifier to a place where the waste is collected. Here, the waste collected by many different waste collection actions can be counted in a central location that will only require one Waste Identifier. This will reduce costs considerably and will make it easier to create a dataset due to the background environment of the video images. Creating the dataset becomes easier because the object detection software only needs to be trained on a fixed background. For example, if a black conveyor belt is used, this belt is filmed from above while moving, the software will only need to be trained on images with a black background. However, there is also one disadvantage when using the Waste Identifier on a central collection point. Namely, it is also important to know at what location the waste is collected, and with this it will be harder to distinct those locations. This can be solved by identifying each Noria's waste separately at the collection points, so that the original location is not lost in the process.


Experiments have shown that the Waste Identifier can recognize a large part of the bottles and cans. Unfortunately, we have not been able to conduct extensive tests to draw firm conclusions about the accuracy of the Waste Identifier. We did not have enough cans and bottles to make a video big enough for this. A solution for this could have been to collect plastic bottles and cans. However, we came up with this idea too late and therefore did not have enough time to implement it. As can also be seen in the video, the Waste Identifier will also keep track of how many plastic bottles and cans it has recognized so that it can be used to identify the waste problem in the water. As previously stated, the data will be converted into information via a pie chart in which the amount of waste per category will be displayed at a specific location.

Object Detection Software

At the moment, the object detection software was made so that we could show what the idea could ultimately look like. It is therefore not yet working optimally. It has now been decided to view the image and recognize the objects every 10 frames. The object is only counted when it is in the top part of the image. This could be improved by applying tracking. The object that comes into view is followed, and when it would pass a certain line or it is located in a certain box, the object could be counted. The network should also be trained on several different types of waste, so that a larger part of the waste problem can be identified. There are also some problems when using different backgrounds. This problem should be solvable by using more images with different backgrounds in the training data set.


In general, it could therefore be said that the Waste Identifier could certainly be an important tool for reducing the Plastic Soup. However, improvements will still be needed in the design and operation of the Waste Identification, such as better classification and counting of the waste, and enlarging the dataset with different types of waste.

Process of the Project

The process started off too ambitious. The goal was to design an underwater robot that could recognize and identify different types of plastics. With this goal, the capabilities of the team were overestimated. After conducting an interview with Hans Brinkhof (Rijkswaterstaat) it became clear that the initial goal was too complicated for the limited time of the project. Based on a suggestion of Hans the focus was shifted towards an extension of the Noria. This gave more structure and realizable goals to the project. After an interview with Rinze de Vries (owner Noria), new requirements and goals were set. With these requirements and goals, more structure was realized. At this moment, four valuable weeks had passed. However, from this point forward the project progressed more rapidly. For the design part, every aspect became much more concrete. The design was simplified a lot and therefore, it was possible to realize a sufficient design in the time frame. The image recognition part had to change datasets, but obtaining the new dataset also became less complicated since this dataset could be handmade more easily . Because of these simplifications, eventually, a design and a working image recognition based on the self-made database are realized. This would not have been possible with the original idea. After discussing the full process of the project with Rinze de Vries for feedback a few conclusions are drawn.

In future projects, there should be started with a good demarcation of the project. That means, set goals and subgoals. Each goal and subgoal has a corresponding question. With these questions, find out what activities are related to it and put these activities out in time.

From this project there can be learned that structure is the most important part of a project. The capability to bring structure in a project has to be developed throughout ones career. This means that it has to be learned to not set the bar too high. This mainly leads to a lot of unfinished tasks. It is better to set the bar a little lower so that all simpler tasks can be done extensively and a good conclusion can be drawn. This project is a perfect example of that.

Final Video

Here is a link to the final video:

Conducted Interviews

File:Minutes interview Hans Brinkhof 19 May.pdf

File:Minutes interview Rinze de Vries 27 May.pdf

File:Minutes Feedback Moment with Rinze de Vries 12 June.pdf


Week 1

Name Total hours Break-down
Kevin Cox 6 Meeting (1h), Problem statement and objectives (1.5h), Who are the users (1h), Requirements (0.5h), Adjustments on wiki-page (2h)
Menno Cromwijk 9 Meeting (1h), Thinking about project-ideas (4h), Working out previous CNN work (2h), creating planning (2h).
Dennis Heesmans 8.5 Meeting (1h), Thinking about project-ideas (3h), State-of-the-art: neural networks (3h), Adjustments on wiki-page (1.5h)
Marijn Minkenberg 7 Meeting (1h), Setting up wiki page (1h), State-of-the-art: ocean-cleaning solutions (part of which was moved to Problem Statement) (4h), Reading through wiki page (1h)
Lotte Rassaerts 7 Meeting (1h), Thinking about project-ideas (2h), State of the art: image recognition (4h)

Week 2

Name Total hours Break-down
Kevin Cox 4.5 Meeting (1.5h), Checking the wiki page (1h), Research and writing maritime transport (2h)
Menno Cromwijk 10 Meeting (1.5h), Installing CNN tools (2h), searching for biodiversity (4.5h), reading and updating wiki (2h)
Dennis Heesmans 6.5 Meeting (1.5h), Installing CNN tools (2h), USE analysis (3h)
Marijn Minkenberg 9 Meeting (1.5h), Checking the wiki page (1h), Installing CNN tools (2h), Research & writing WasteShark (4.5h)
Lotte Rassaerts 5.5 Meeting (1.5h), Research & writing Location and Plastic (4h)

Week 3

Name Total hours Break-down
Kevin Cox 7.5 Meeting (4h), project statement, objectives, users and requirements rewriting (3.5h)
Menno Cromwijk 16 Meeting (4h), planning (1h), reading wiki (1h), searching for database (6h), research Albatros (2h), reading and updating wiki page (2h)
Dennis Heesmans 11 Meeting (4.5h), Research & writing Plastic under water (2h), Calling IMS Services and installing keras (3h), Requirements and Test plan (1.5h)
Marijn Minkenberg 13.5 Meeting (4.5h), Research & writing Quantifying plastic waste (4h), Calling IMS Services and installing keras (3h), Reading through, and updating, wiki page (2h)
Lotte Rassaerts 13 Meeting (4h), Research & rewriting further exploration (3h), Research & writing robot requirements & functionalities (3h), Requirements and Test plan (1.5h), Start on ideas for robot design (1.5h)

Week 4

Name Total hours Break-down
Kevin Cox 10 Meeting (3h), contacting users (2h), Writing and researching localization and obstacle avoidance + contacting company about possibilities (5h)
Menno Cromwijk 11.5 Meeting (3.5h) Working on VGG model (4h) Working on tansfer learning (4h)
Dennis Heesmans 11 Meeting (4.5h), Installing Anaconda and corresponding packages (3h), Running test script (0.5h), Search database (1h), Trying to test CNN with other images (2h)
Marijn Minkenberg 11 Meeting (4.5h), Re-installing Anaconda and keras (1.5h), Running test script (0.5h), Finding 3 datasets (2.5h), Research & Writing Data Augmentation (2h)
Lotte Rassaerts 9 Meeting (3h), Thinking of/reseraching ideas/concepts for design (2h), Researching power source/battery life (4h)

Week 5

Name Total hours Break-down
Kevin Cox 9 Meeting (4.5h), Meeting with Hans Brinkhof (Rijkswaterstaat) (1h), Getting in touch with Hans Brinkhof (1h), Writing minutes regarding the meeting (0.5h), Getting in touch with Rinze de Vries (1h), meeting with Rinze de Vries (1h)
Menno Cromwijk 17.5 Meeting (4.5h), improving CNN (2h), researching and implementation of YOLO (8h), labelling dataset (2h), creating python files (1h)
Dennis Heesmans 19 Meeting (4.5h), Implement different datasets in neural network (8h), Searching datasets (1h), Adjustments planning (0.5h), Wiki cleanup (2h), Write about Noria (2h), Watch object detection videos (1h)
Marijn Minkenberg 15.5 Meeting (4.5h), Coding Data Augmentation (3h), Dataset plan (2h), Set-up and taking test photos (3h), Processing photos for dataset using Photoshop and Spyder (3h)
Lotte Rassaerts 15 Meeting (4.5h), Meeting with Hans Brinkhof (Rijkswaterstaat) (1h), Adjusting planning and requirements (0.5h), Working on design (camera and power source) (6h), Working on design (data transfer and decision matrix) (3h)

Week 6

Name Total hours Break-down
Kevin Cox 10.75 Meeting (3h), Meeting with Rinze (1h), Writing minutes regarding meeting with Rinze (0.5h), researching methods for autonomous image uploading (unsuccessful) (6h), Written final conclusion. (0.25h)
Menno Cromwijk 13 Meeting (3h), research on multiple classes and implementing this for our database (3h), combine all labeled databases with created python-files (1h), training model via Google Colab (failed) (3h) training model via Google Colab with Marijn (1h), Testing on different videos and photos (2h).
Dennis Heesmans 12 Meeting (3h), Watching videos YOLO (3h), Labeling images (4h), Meeting with Rinze (1h), Writing about YOLO (1h)
Marijn Minkenberg 12 Meeting (3h), Taking new pictures for test set (2h), Training model via Google Colab (2h), Expanding test set and labelling (4h), Updating wiki (1h)
Lotte Rassaerts 12.75 Meeting (3h), researching data transfer GoPro (3h), Data to information (1.5h), Mounting (5h), updating requirements after interview Rinze (0.25h)

Week 7

Name Total hours Break-down
Kevin Cox 10 Meeting (3h), Researching Data storage and energy consumption (6h), writing Data storage and energy consumption (1h)
Menno Cromwijk 13 Meeting (3h), re-training on entire-database (2h), resume last training to improve loss (2h), testing on multiple photos and videos (2h), working on counting software (4h).
Dennis Heesmans 13 Meeting (3h), Research Accuracy and Counting (3h), Working on counting software (7h)
Marijn Minkenberg 14 Meeting (3h), Test set photos+video (3h), Data to information (2h), Branding (1h), Converting video to low-res and 1 FPS (1h), Jupyter pie charts (4h)
Lotte Rassaerts 17 Meeting (3h), FOV + Night mode (4h), making new 3D drawings (10h)

Week 8

Name Total hours Break-down
Kevin Cox 10.75 Meeting (3h), editing wiki page + contacting Rinze de Vries (1h), Meeting with Rinze (0.5h), Writing minutes (0.25h), Researching lighting (5h), Writing lighting (1h)
Menno Cromwijk 8 Meeting (3h), working on counting software (4h), updating wiki (1h)
Dennis Heesmans 11.5 Meeting (3h), Working on counting software (4h), Meeting with Rinze (0.5h), Conclusion (4h)
Marijn Minkenberg 21 Meeting (3h), Writing: Testing results (1h), Script for video (5h), Video editing (12h)
Lotte Rassaerts 13 Meeting (3h), editing assembly and writing text (3h), cleaning up design part of wiki-page (0.5h), adding light and solar panel to design + improved assembly text (5h), text video + record text (1.5h)

Week 9

Name Total hours Break-down
Kevin Cox 2.5 Meeting (2.5h)
Menno Cromwijk 2.5 Meeting (2.5h)
Dennis Heesmans 5.5 Meeting (2.5h), Writing about counting (3h)
Marijn Minkenberg 15.5 Meeting (2.5h), Video editing & uploading (13h)
Lotte Rassaerts 8.5 Meeting (2.5h), Finalizing general wiki part (problem statement, SoTA, further exploration) and design part (2h), Final edit wiki (4h)


  1. 1.0 1.1 1.2 Oceans. (2020, March 18). Retrieved April 23, 2020, from
  2. Wikipedia contributors. (2020, April 13). Microplastics. Retrieved April 23, 2020, from
  3. Suaria, G., Avio, C. G., Mineo, A., Lattin, G. L., Magaldi, M. G., Belmonte, G., … Aliani, S. (2016). The Mediterranean Plastic Soup: synthetic polymers in Mediterranean surface waters. Scientific Reports, 6(1).
  4. Foekema, E. M., De Gruijter, C., Mergia, M. T., van Franeker, J. A., Murk, A. J., & Koelmans, A. A. (2013). Plastic in North Sea Fish. Environmental Science & Technology, 47(15), 8818–8824.
  5. Rochman, C. M., Hoh, E., Kurobe, T., & Teh, S. J. (2013). Ingested plastic transfers hazardous chemicals to fish and induces hepatic stress. Scientific Reports, 3(1).
  6. Stevens, A. (2019, December 3). Tiny plastic, big problem. Retrieved May 10, 2020, from
  7. Peels, J. (2019). Plasticsoep in de Maas en de Waal veel erger dan gedacht, vrijwilligers vinden 77.000 stukken afval. Retrieved May 6, from
  8. Schone Rivieren. (2020, May 19). Schone Rivieren. Retrieved June 17, 2020, from
  9. Rijkswaterstaat. (2020, June 12). Rijkswaterstaat. Retrieved June 17, 2020, from
  10. 10.0 10.1 10.2 WasteShark ASV | RanMarine Technology. (2020, February 27). Retrieved May 2, 2020, from
  11. 11.0 11.1 11.2 CORDIS. (2019, March 11). Marine Litter Prevention with Autonomous Water Drones. Retrieved May 2, 2020, from
  12. 12.0 12.1 12.2 Swan, E. C. (2018, October 31). Trash-eating “shark” drone takes to Dubai marina. Retrieved May 2, 2020, from
  13. Wikipedia contributors. (2020, May 2). Lidar. Retrieved May 2, 2020, from
  14. 14.0 14.1 Noria - Schonere wateren door het probleem bij de bron aan te pakken. (2020, January 27). Retrieved May 21, 2020, from
  15. 15.0 15.1 Emmerik, T., & Schwarz, A. (2019). Plastic debris in rivers. WIREs Water, 7(1).
  16. Morritt, D., Stefanoudis, P. V., Pearce, D., Crimmen, O. A., & Clark, P. F. (2014). Plastic in the Thames: A river runs through it. Marine Pollution Bulletin, 78(1–2), 196–200.
  17. Martin, C., Parkes, S., Zhang, Q., Zhang, X., McCabe, M. F., & Duarte, C. M. (2018). Use of unmanned aerial vehicles for efficient beach litter monitoring. Marine Pollution Bulletin, 131, 662–673.
  18. 18.0 18.1 Kylili, K., Kyriakides, I., Artusi, A., & Hadjistassou, C. (2019). Identifying floating plastic marine debris using a deep learning approach. Environmental Science and Pollution Research, 26(17), 17091–17099.
  19. 19.0 19.1 19.2 Seif, G. (2018, January 21). Deep Learning for Image Recognition: why it’s challenging, where we’ve been, and what’s next. Retrieved April 22, 2020, from
  20. Lee, G., & Fujita, H. (2020). Deep Learning in Medical Image Analysis. New York, United States: Springer Publishing.
  21. 21.0 21.1 21.2 Simonyan, K., & Zisserman, A. (2015, January 1). Very deep convolutional networks for large-scale image recognition. Retrieved April 22, 2020, from
  22. Culurciello, E. (2018, December 24). Navigating the Unsupervised Learning Landscape - Intuition Machine. Retrieved April 22, 2020, from
  23. Bosse, S., Becker, S., Müller, K.-R., Samek, W., & Wiegand, T. (2019). Estimation of distortion sensitivity for visual quality prediction using a convolutional neural network. Digital Signal Processing, 91, 54–65.
  24. Brooks, R. (2018, July 15). [FoR&AI] Steps Toward Super Intelligence III, Hard Things Today – Rodney Brooks. Retrieved April 22, 2020, from
  25. Nicholson, C. (n.d.). A Beginner’s Guide to Neural Networks and Deep Learning. Retrieved April 22, 2020, from
  26. Cheung, K. C. (2020, April 17). 10 Use Cases of Neural Networks in Business. Retrieved April 22, 2020, from
  27. Amidi, Afshine , & Amidi, S. (n.d.). CS 230 - Recurrent Neural Networks Cheatsheet. Retrieved April 22, 2020, from
  28. Hopfield Network - Javatpoint. (n.d.). Retrieved April 22, 2020, from
  29. Hinton, G. E. (2007). Boltzmann Machines. Retrieved from
  30. Amidi, A., & Amidi, S. (n.d.). CS 230 - Convolutional Neural Networks Cheatsheet. Retrieved April 22, 2020, from
  31. Yamashita, Rikiya & Nishio, Mizuho & Do, Richard & Togashi, Kaori. (2018). Convolutional neural networks: an overview and application in radiology. Insights into Imaging. 9. 10.1007/s13244-018-0639-9
  32. Qian, N. (1999, January 12). On the momentum term in gradient descent learning algorithms. - PubMed - NCBI. Retrieved April 22, 2020, from
  33. Hinton, G., Srivastava, N., Swersky, K., Tieleman, T., & Mohamed , A. (2016, December 15). Neural Networks for Machine Learning: Overview of ways to improve generalization [Slides]. Retrieved from
  34. Kingma, D. P., & Ba, J. (2015). Adam: A Method for Stochastic Optimization. Presented at the 3rd International Conference for Learning Representations, San Diego.
  35. Nesterov, Y. (1983). A method for unconstrained convex minimization problem with the rate of convergence o(1/k^2).
  36. Dozat, T. (2016). Incorporating Nesterov Momentum into Adam. Retrieved from
  37. Canu, S. (2019, June 27). YOLO object detection using Opencv with Python. Retrieved May 26, 2020, from
  38. Brownlee, J. (2019, October 7). How to Perform Object Detection With YOLOv3 in Keras. Retrieved May 29, 2020, from
  39. Redmon, J. (2019, November 15). pjreddie/darknet. Retrieved May 29, 2020, from
  40. 40.0 40.1 Kathuria, A. (2018, April 23). What’s new in YOLO v3? Retrieved May 29, 2020, from
  41. Bhattarai, S. (2019, December 25). What is YOLO v2 (aka YOLO 9000)? Retrieved June 1, 2020, from
  42. Lebreton. (2018, January 1). OSPAR Background document on pre-production Plastic Pellets. Retrieved May 3, 2020, from
  43. 43.0 43.1 43.2 Schone Rivieren. (2019). Wat spoelt er aan op rivieroevers? Resultaten van twee jaar afvalmonitoring aan de oevers van de Maas en de Waal. Retrieved from
  44. Staatsbosbeheer. (2019, September 12). Dossier afval in de natuur. Retrieved May 3, 2020, from
  45. Buffon X. (2019, May 20) Robotic Detection of Marine Litter Using Deep Visual Detection Models. Retrieved May 9, 2020, from
  46. 46.0 46.1 Thung G. (2017, Apr 10) Dataset of images of trash Torch-based CNN for garbage image classification. Retrieved May 9, 2020, from
  47. Sergio Canu (2020, April 1) Train YOLO to detect a custom object (online with free GPU)
  49. Goyal, S. (2019, December 17). MachineX: Image Data Augmentation Using Keras. Retrieved June 19, 2020, from
  50. Coleman, D. (2020, April 8). Can You Run a GoPro HERO8, HERO7, or HERO6 with External Power but Without an Internal Battery? Retrieved May 22, 2020, from
  51. Air Photography. (2018, April 29). Weatherproof External Power for GoPro Hero 5/6/7 | X~PWR-H5. Retrieved May 22, 2020, from
  52. GoPro. (n.d.). HERO8 Black Tech Specs. Retrieved May 22, 2020, from
  53. GoPro. (n.d.-a). HERO7 Black Action Camera | GoPro. Retrieved May 22, 2020, from
  54. 54.0 54.1 54.2 Harbortronics. (n.d.-b). Cyclapse Pro - Starter | Cyclapse. Retrieved May 22, 2020, from Cite error: Invalid <ref> tag; name "cyclapsepro" defined multiple times with different content Cite error: Invalid <ref> tag; name "cyclapsepro" defined multiple times with different content
  55. Canon USA. (n.d.). Canon U.S.A., Inc. | EOS Rebel T7 EF-S 18-55mm IS II Kit. Retrieved May 22, 2020, from
  56. GoPro. (2020, May 22). Auto Uploading Your Footage to the Cloud With GoPro Plus. Retrieved May 23, 2020, from
  57. GoPro. (2020a, May 14). How to Add Media to GoPro PLUS. Retrieved May 23, 2020, from
  58. 58.0 58.1 Harbortronics. (n.d.-d). Support / DigiSnap Pro / Frequently Asked Questions | Cyclapse. Retrieved May 23, 2020, from
  59. 59.0 59.1 59.2 CamDo. (n.d.-b). SolarX Solar Upgrade Kit. Retrieved May 22, 2020, from
  60. 60.0 60.1 Harbortronics. (n.d.-a). Cyclapse Pro - Standard | Cyclapse. Retrieved May 22, 2020, from
  61. 61.0 61.1 61.2 61.3
  62. Harbortronics. (n.d.-a). Cyclapse Pro - Glacier | Cyclapse. Retrieved May 22, 2020, from
  63. Time lapse settings. Retrieved June 05, 2020, from
  64. Solar Electricity Handbook. Retrieved June 05, 2020, from
  65. Anker Astro E7 26800 mAh external battery. Retrieved June 05, 2020, from
  66. SD cards compatible with GoPro. Retrieved June 05, 2020, from
  67. Sandisk Micro SDXC. Retrieved June 05, 2020, from
  68. 68.0 68.1 IP rating at Wikipedia. Retrieved June 12, 2020, from
  69. 69.0 69.1 Hikeren IP65 Waterproof Solar Lights at Amazon. Retrieved June 12, 2020, from
  70. Zonsopkomst en Zonsondergang. Retrieved June 12, 2020, from
  71. 71.0 71.1 71.2 Coleman, D. (2020a, March 20). GoPro Linear FOV: Pros, Cons, and Examples. Retrieved June 3, 2020, from
  72. 72.0 72.1 Michaels, P. (2018, September 20). GoPro Hero7: The Smoothest-Looking Action Cam Yet. Retrieved May 31, 2020, from,review-5755.html
  73. 73.0 73.1 Noria i.o.v. Rijkswaterstaat. (2020, April 1). Pilot vangsysteem voor plastic afval bij stuw Borgharen. Retrieved June 3, 2020, from
  74. Velimir. (2020, May 8). Free CAD Designs, Files & 3D Models | The GrabCAD Community Library. Retrieved May 31, 2020, from
  75. Wikipedia contributors. (2020a, March 5). IP-code. Retrieved June 10, 2020, from
  76. Carpenter, D. (2016, November 17). DIKAR: Aligning Technology And Organisational Strategies. Retrieved May 30, 2020, from