FISH IDENTIFICATION SYSTEM Diego Mushfieldt Supervisors: Mehrdad Ghaziasgar, James Connan
(UWC) Department of Computer Science A Quick Reminder... Background Aquarium hosts many people Variety of fish on display Visitors not able to get instant information Proposed solution An easy-to-use interactive system that provides instant information on specific fish Proposed solution: Also explain how this solution is useful 17/09/2018 (UWC) Department of Computer Science
Implementation Overview Design Decisions System Modifications User Interface Specification (UIS) High Level Design (HLD) Low Level Design (LLD) Code Organisation and Implementation Approach System Demonstration Mention what is not expected of the system 17/09/2018 (UWC) Department of Computer Science
(UWC) Department of Computer Science Implementation Design Decisions System Modifications User Interface Specification (UIS) High Level Design (HLD) Low Level Design (LLD) Code Organisation and Implementation Approach System Demonstration Mention what is not expected of the system 17/09/2018 (UWC) Department of Computer Science
(UWC) Department of Computer Science Design Decisions Previous System Segmentation Locate Position of fish – Mouse click Determine Border around fish – Manually Drawn on image Determine Shape of fish - Thresholding Determine Colour distribution of fish – 1D Histogram Classification Support Vector Machine (SVM) Mention that switching from pre-recorded to live video is just a matter of changing one line of code 17/09/2018 (UWC) Department of Computer Science
Design Decisions continued... Current System Segmentation Locate Position of fish – Mouse click Determine Border around fish – Tracking Algorithm Determine Shape of fish – Background Subtraction Algorithm Determine Colour distribution of fish – 2D Histogram Classification Support Vector Machine (SVM) Mention that switching from pre-recorded to live video is just a matter of changing one line of code 17/09/2018 (UWC) Department of Computer Science
(UWC) Department of Computer Science Implementation Design Decisions System Modifications User Interface Specification (UIS) High Level Design (HLD) Low Level Design (LLD) Code Organisation and Implementation Approach System Demonstration Mention what is not expected of the system 17/09/2018 (UWC) Department of Computer Science
User Interface Specification (UIS) The User Interface as seen by the user Mention what is not expected of the system 17/09/2018 (UWC) Department of Computer Science
User Interface Specification (UIS) How the user interacts with the system Mouse click How the User Interface behaves Mention that switching from pre-recorded to live video is just a matter of changing one line of code 17/09/2018 (UWC) Department of Computer Science
High Level Design(HLD) Diagram showing different subsystems Input Video feed Capture Images Capture mouse clicks Image Processing Image Segmentation Tracking Algorithm Background Subtraction Algorithm 2D Histogram Classification Support Vector Machine (SVM) Output Display Text in Window Mention what is not expected of the system 17/09/2018 (UWC) Department of Computer Science
(UWC) Department of Computer Science Low Level Design (LLD) Locate position of Fish User Clicks on Fish cvSetMouseCallback ( ); Mention that switching from pre-recorded to live video is just a matter of changing one line of code 17/09/2018 (UWC) Department of Computer Science
(UWC) Department of Computer Science Low Level Design (LLD) Segmentation Convert from RGB colour space to HSV colour space. cvCvtColor(CV_RGB2HSV) Mention that switching from pre-recorded to live video is just a matter of changing one line of code 17/09/2018 (UWC) Department of Computer Science
(UWC) Department of Computer Science Low Level Design (LLD) Segmentation Split HSV into individual components cvSplit (HSV, HUE, SATURATION, VALUE) Mention that switching from pre-recorded to live video is just a matter of changing one line of code 17/09/2018 (UWC) Department of Computer Science
(UWC) Department of Computer Science Low Level Design (LLD) Segmentation Threshold the HUE cvAdaptiveThresh (HUE) Mention what is not expected of the system 17/09/2018 (UWC) Department of Computer Science
cvSetImageROI (BinaryImage) Low Level Design (LLD) Segmentation Determine the border around the fish Crop the image cvSetImageROI (BinaryImage) Mention that switching from pre-recorded to live video is just a matter of changing one line of code 17/09/2018 (UWC) Department of Computer Science
(UWC) Department of Computer Science Low Level Design (LLD) Segmentation Find Contours cvFindContours (BinaryImage) Mention what is not expected of the system 17/09/2018 (UWC) Department of Computer Science
(UWC) Department of Computer Science Low Level Design (LLD) Segmentation Find the Largest Contour (remove noise!) Mention that switching from pre-recorded to live video is just a matter of changing one line of code 17/09/2018 (UWC) Department of Computer Science
(UWC) Department of Computer Science Low Level Design (LLD) Segmentation Fill the Largest Contour at (x,y) cvFloodFill (Contour, cvPoint(x,y)) Mention what is not expected of the system 17/09/2018 (UWC) Department of Computer Science
(UWC) Department of Computer Science Low Level Design (LLD) Colour Distribution 1D Histogram Mention that switching from pre-recorded to live video is just a matter of changing one line of code 17/09/2018 (UWC) Department of Computer Science
(UWC) Department of Computer Science Low Level Design (LLD) Classification - Send Shape and Colour data to SVM SVM Mention what is not expected of the system 17/09/2018 (UWC) Department of Computer Science
Low Level Design (LLD) changes Current System Design Decisions Tracking Algorithm (CAMShift) 2D HISTOGRAM HUE SATURATION Mention that switching from pre-recorded to live video is just a matter of changing one line of code 17/09/2018 (UWC) Department of Computer Science
Low Level Design (LLD) changes continued... Background Subtraction Algorithm - Gaussian Mixture Model (GMM) Frame Differencing GMM Mention what is not expected of the system 17/09/2018 (UWC) Department of Computer Science
(UWC) Department of Computer Science Implementation Design Decisions System Modifications User Interface Specification (UIS) High Level Design (HLD) Low Level Design (LLD) Code Organisation and Implementation Approach System Demonstration Mention what is not expected of the system 17/09/2018 (UWC) Department of Computer Science
Code Organisation and Implementation Approach Tools Used Operating System -> Ubuntu 10.04 Programming Language -> C/C++ SoftLibrary -> Open Computer Vision (OpenCV) Ffmpeg (Video manipulation) Mention that switching from pre-recorded to live video is just a matter of changing one line of code 17/09/2018 (UWC) Department of Computer Science
(UWC) Department of Computer Science References Bradski, Kaebler – “Learning OpenCV” http://www.newaquariuminformation.com http://www.cs.cmu.edu/~cil/vision.html http:// en.wikipedia.org/wiki/Computer_vision http:// en.wikipedia.org/wiki/Image_processing 17/09/2018 (UWC) Department of Computer Science
Project Plan Goal Due date Learn to use OpenCV functions/tools to manipulate images and videos Completed Design and Development Implementation (Programmer’s point of view) Testing and Evaluating 19 September 2011 – 08 November 2011 17/09/2018 (UWC) Department of Computer Science
(UWC) Department of Computer Science Implementation Design Decisions System Modifications User Interface Specification (UIS) High Level Design (HLD) Low Level Design (LLD) Code Organisation and Implementation Approach System Demonstration Mention what is not expected of the system 17/09/2018 (UWC) Department of Computer Science