By Roland Foster Supervisors: Mr. Mehrdad Ghaziasgar Mr. James Connan Mentor: Mr. Warren Nel.

Post on 29-Dec-2015

220 views 1 download

Tags:

Transcript of By Roland Foster Supervisors: Mr. Mehrdad Ghaziasgar Mr. James Connan Mentor: Mr. Warren Nel.

By Roland Foster

Supervisors: Mr. Mehrdad Ghaziasgar

Mr. James Connan

Mentor: Mr. Warren Nel

Overview

ReminderGUI changes &

additionsImplementationProject PlanReferencesDemo

ReminderOrganize and easily retrieve images and their metadata

Detect images on hard drive

Eliminate duplicates

Ability to tag images Manual Automatic (Object Detection)

Easily retrieve images based on these tags

GUI Changes & AdditionsCo-ordinate based tags

Position of tag on the image is stored

GUI Changes & AdditionsQuick tags ( Non c0-ordinate based tagging )

GUI Changes & AdditionsGUI Changes & AdditionsGUI Changes & Additions

GUI Changes & AdditionsEdit tags

Tags used in other images

Automatic tags

Implementation

Find image files

ImplementationGenerate checksums

Implementation

Remove duplicates

Implementation

Automatic tag detection of images:Detecting Haar-like features

The following haarcascades were used: Face Car Wall Clock

ImplementationUse haarcascade for detecting objects

ImplementationUse haarcascade for detecting objects

ImplementationXML string with detected objects is constructed

<face0 points="(78, 83, 138, 143)">Face</face0><face1 points="(403, 115, 471, 183)">Face</face1><face2 points="(47, 156, 113, 222)">Face</face2><face3 points="(177, 221, 245, 289)">Face</face3><face4 points="(87, 239, 157, 309)">Face</face4><face5 points="(241, 83, 311, 153)">Face</face5><face6 points="(290, 152, 362, 224)">Face</face6><face7 points="(313, 225, 387, 299)">Face</face7><face8 points="(373, 240, 451, 318)">Face</face8>

ImplementationXml string is then embedded within the image

<face0 points="(78, 83, 138, 143)">Face</face0><face1 points="(403, 115, 471, 183)">Face</face1><face2 points="(47, 156, 113, 222)">Face</face2><face3 points="(177, 221, 245, 289)">Face</face3><face4 points="(87, 239, 157, 309)">Face</face4><face5 points="(241, 83, 311, 153)">Face</face5><face6 points="(290, 152, 362, 224)">Face</face6><face7 points="(313, 225, 387, 299)">Face</face7><face8 points="(373, 240, 451, 318)">Face</face8>

Implementation

Tagging an image

Entered Tags

Embed XML

within the

image

XML string constructio

n<tags> <person> Roland Foster </person></tags>

Project PlanTerm 1

Gather Requirements and AnalysisLearn to use:

Image processing tools/techniques in Open CVProgramming in Python

Term 2Design and Development of the Prototype

Develop functions for the prototype:Image tagging and searching functions

Term 3

Coding the Application/ImplementationDetecting objects

New methods for taggingImprovements on the GUI for the application

Term 4 Testing and EvaluationRefactoring code if necessary

Tools used:

Python Programming Language

Wx Python wrapper for wx Widgets GUI toolkit

Pyexiv2-Accessing and embedding image metadata

Open CV libraries (Open Source Computer Vision Library)- Detection of objects

References Olivier Tilloy, 2010. Pyexiv2 Documentation. Available at:

http://tilloy.net/dev/pyexiv2/doc/release-0.2.0/index.html. Last accessed 12 July 2012.

wxPython, 2009. wx.ImageHandler-class. Available at: http://wxpython.org/docs/api/wx.ImageHandler-class.html. Last accessed 8 August 2012.

Willow Garage, 2010. Object Detection. Available at: http://opencv.willowgarage.com/documentation/python/objdetect_cascade_classification.html#haardetectobjects. Last accessed 20 August 2012.

Demo

The tasks to be demoed:

Manual tagging

Searching for images via tags

Automatic tagging

Questions