Code Monkey home page Code Monkey logo

ierolsen / bachelor-thesis-project-ml-based-conveyor-belt-for-detecting-separating-rotten-fruits Goto Github PK

View Code? Open in Web Editor NEW
6.0 6.0 4.0 915 KB

This repo contains my bachelor thesis project which is a conveyor belt system that detects and separates rotten fruits using machine learning.

License: GNU General Public License v3.0

Python 90.54% Jupyter Notebook 9.46%
conveyor-belt dc-motor firebase gpio image-processing keras object-detection opencv pillow pyqt5 python qt5-gui raspberry-pi realtime-database tensorflow transfer-learning

bachelor-thesis-project-ml-based-conveyor-belt-for-detecting-separating-rotten-fruits's People

Contributors

ierolsen avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

bachelor-thesis-project-ml-based-conveyor-belt-for-detecting-separating-rotten-fruits's Issues

Camera Setup

In this step, the camera must be set according to a convenient position.

  • Set the position of the camera for a clear view.
  • Draw a couple of lines for the fruit passed.
    • There should be 2 lines (for now) one of which is for opening the flapper, other one is closing the flapper.

Draw Contours

In this section, a function or a class structure must be defined for contour detection. It will be working with the object detection algorithm. When the object (fruit) is detected, this algorithm will detect and draw the object's contours.

  • Define a function or class structure
    • Use morphological operations
    • Find and Draw the contours
    • Set a text label above the rectangle drawn, it is a place for the label of the fruit (e.g. rotten Apple, fresh Banana, etc.)

Implement all Algorithms Together

This is the final part, put all those algorithms together!

  • Inside the GUI script, implement object detection, and contour detection algorithms.
  • Set motor opening and closing times by updating the **FireBase Realtime Database".
  • The counter of the GUI must be updated according to the fruits.

Train a Model

Train a Neural Network model by using the Transfer Learning method.

  • Create a class structure for this.
    • The class must have a train function. It must be controlled by argparser in the terminal.
      • argparser must take
      • the path of the dataset,
      • number of epochs and batch size
      • path of the model for saving
  • Save the model.

Motor Control Algorithms

This part will take place in Raspberry Pi for coding motor control algorithms.

  • Create two Config Files for both OS (Windows and Raspberry Pi).
    • One of the Config Files will contain the KEYS of FireBase Realtime Database
    • Another one will contain Parameters of Motor Controlling Algorithms inside the Raspberry Pi.

The main idea of Config Files is that control the Motor inside of Windows OS remotely without controlling in Raspberry Pi.

  • Create two FireBase Realtime Database
    • One of the Database will be about controlling the opening and closing time of the Motor
    • Another one of the Database is about Motor Control Parameters

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.