Download First Term - UWC Computer Science

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
Roland Foster
Student Number: 2916282
Project Title: Image Management Suite
User Requirements and Requirements Analysis
Document
BSc. Honours (Computer Science)
Supervisors: Mehrdad Ghaziasgar and James Connan
Table of Contents
CHAPTER 1: ........................................................................................................................................... 3
CHAPTER 2: .......................................................................................................................................... 4
THIS CHAPTER DISCUSSES THE PROBLEM FROM THE USER’S POINT OF VIEW. IT
DESCRIBES THE FUNCTIONALITY WHICH THE USER REQUIRES FROM THE
PROPOSED SOFTWARE SOLUTION. ............................................................................................. 4
2.2 USER’S VIEW OF THE PROBLEM ........................................................................................................ 4
2.2.1 Duplicate Images ......................................................................................................................... 4
2.2.2 Searching for images ..................................................................................................................... 4
2.2.3 Tags for images............................................................................................................................ 4
2.2.4 Tagging detected objects .................................................................................................................. 4
2.2.5 Hardware and software requirements for the proposed application: .......................................................... 4
2.3 DESCRIPTION OF THE PROBLEM ...................................................................................................... 5
2.3.1 Duplicate images.......................................................................................................................... 5
2.3.2 Searching for images ..................................................................................................................... 5
2.2.3 Tags for images............................................................................................................................ 5
2.4 EXPECTATIONS FROM THE SOFTWARE SOLUTION ............................................................................ 6
2.4.1 Features of the software solution: ..................................................................................................... 6
CHAPTER 3: .......................................................................................................................................... 7
3.1 THE DESIGNER’S INTERPRETATION OF THE PROBLEM .................................................................... 7
3.1.1 Software and programming tools needed to develop the application: .......................................................... 7
3.2 BREAKDOWN AND ANALYSIS OF THE PROBLEM .............................................................................. 8
3.2.1 Remove Duplicate Images .............................................................................................................. 8
3.2.2. Object Detection ......................................................................................................................... 8
3.2.2. Adding Tags .............................................................................................................................. 8
3.3 CURRENT SOLUTIONS...................................................................................................................... 8
3.3.1 A few examples of current solutions: ................................................................................................ 8
3.4 SUGGESTED SOLUTION ................................................................................................................... 9
REFERENCES..................................................................................................................................... 10
Chapter 1:
Introduction
Images store the memories of our families, friends and pets. They store the important
moments and special occasions in our lives such as birthdays, weddings and graduations.
In the past we stored our photos in albums and searching for a desired image was not an
easy task. Now that we have entered the digital age more and more people are moving
away from traditional albums and storing their photos on their computers. Searching for
a desired image on the computer has become an easier task with the introduction of
embedded tags. Although the actual tags are not very descriptive and the manner in
which these tags are used to search for images is not effective.
The aim of this project is to develop an image management suite which mitigates
duplicate images and will make it easier for a user retrieve a desired image. The
application will make use of embedded tags to their true potential by improving the
manner in which these tags are used when searching for an image. It will also provide the
user with better tagging options and an improved approach to classifying an image.
Chapter 2:
User Requirements
This chapter discusses the problem from the user’s point of view. It describes the
functionality which the user requires from the proposed software solution.
2.2 User’s view of the problem
2.2.1 Duplicate Images
When having a large collection of images on a computer, there is a possibility of having
many duplicate images in this collection. These duplicates could occur when the user
transfers images from a camera or a storage device to his/her computer. Some of the
images which are being transferred are images which the user already has on his/her
computer. For this reason users often end up having multiple duplicates of images on
their computers.
2.2.2 Searching for images
Searching for a specific image from a computer which contains thousands of images is a
difficult task. If the user does not remember the name or path of the image the user
would have to navigate the computer’s entire filing system, opening all the folders and
each image individually to find the desired image. The user requires the application to
search for image based on search criteria from the user.
2.2.3 Tags for images
In the past users wrote comments on the back of their printed photographs to describe
the contents of that specific photograph. Today image viewer applications allow users to
add tags to their images but these tags do not give the user a manner in which to classify
images. The user requires a set of tags such as people, place, and occasion to properly
classify images.
2.2.4 Tagging detected objects
A professional photographer takes thousands of photos in a month and does not have
the time to tag every single image. The user requires an application which can detect
basic objects in an image and automatically add these tags to the image. He/she would
now be provided with some basic tags making it easier for the user to further classify the
image.
2.2.5 Hardware and software requirements for the proposed application:

A computer with Windows 7 or Linux based operating systems

Open CV 2.2 (Open Source Computer Vision Library)

Python 2.7.2

Pyexiv2 - A python module that allows python scripts to read and write metadata
(EXIF, IPTC, XMP, thumbnails) embedded in image files. [3]
2.3 Description of the problem
2.3.1 Duplicate images
When transferring images from a camera to a computer the user usually copies the folder
from the camera’s storage device which contains the images. The next time the user takes
photos, he/she does not delete the previous photos on the camera. The images are then
copied from the camera to a new folder on the computer. By doing this the user is
copying duplicate images to his/her computer. If the user continues doing this he/she
will have multiple duplicates of images on his/her computer. It is a tedious task for the
user to manually find all duplicate images and delete them.
2.3.2 Searching for images
The user usually finds an image by remembering where the image was stored and
navigating to the folder in which the image is stored. If the user cannot remember the
path to the desired image, he/she can search for the image based on its file name using
the search utility provided by the operating system of his/her computer. The problem
occurs when a user is searching for a particular image and he/she cannot remember the
path to the image file or the name of the file. The user only remembers what the
contents of the image are.
2.2.3 Tags for images
The conventional tagging options which image viewers provide are insufficient to
properly classify an image. These options allow the user to add tags to an image but do
not give the user categories for different types of tags. The user requires a set of tags
such as people, place, occasion, description, date and time to properly classify an image.
For example, there is an image of a man named David at the University of Western
Cape, the user would like to add tags which classify the contents of this image. The tags
would be used as shown below:
People/Person: David
Place: University of the Western Cape
Occasion: Graduation Ceremony
Description: Getting seated for the ceremony
Date: 20 March 2012
Time: 18h30
2.2.4 Tagging detected objects
2.4 Expectations from the software solution
The proposed software solution will remove duplicate images, allow the user to add tags
to images and easily retrieve images from a computer’s hard drive based on a search
criteria entered by the user. By using simple search terms such as name, place, occasion
etc, the user will be able to search for images on his/her computer. These tags will be
basic objects found in the image and the application will automatically detect these
objects and add them as tags to the image. The application’s GUI (Graphical User
Interface) should be user friendly and be compatible with Windows and Linux based
operating systems.
2.4.1 Features of the software solution:

Remove Duplicate Images
A function will automatically run on the initial start up of the application and
when prompted by the user to search the user’s hard drive for all images files.
The function will find all image files on the computer and mitigate the problem
of duplicate images.

Adding Tags
The user will be able to label the contents of the images with tags such as name,
place, occasion, description etc.

Searching For An Image
The user should be to search for an image not based on filename or path of the
file but by entering key words. The application will then search for images
which match these key words. For instance, if a person named John is
searching for an image of himself at the V&A Waterfront during the evening;
the application must find all images related to John at the V&A Waterfront
during the evening.

Object Detection
The application will also implement object detection. For example, if there is a
cat in an image the application will automatically detect the cat and add it to the
tags of the image.
Chapter 3:
Requirements Analysis
This chapter takes the user requirements defined in chapter 2 and explains how the
designer interprets them. It analyses the user requirements and breaks these requirements
down into parts.
3.1 The Designer’s Interpretation of the Problem
If there are duplicate images on the computer of the user, he/she would not know which
image amongst the duplicates he/she had added the tags to. To find the image containing
the tags he/she would have to open each of the duplicate images individually.
Image processing techniques provided from Open CV require a lot of computing power
to detect objects in an image. If the duplicate images are eliminated it decreases the
number of images and ultimately lowers the time required to detect objects for all images.
The proposed solution will automatically detect basic objects in the image such as a cat,
person or car and add these as tags to the image. Since these images will now have tags it
makes searching for them easier. The application receives search criteria for the user and
searches for images which meet these criteria. It does this by searching through a
combination of the detected tags which the application automatically added as well as the
tags entered by the user.
3.1.1 Software and programming tools needed to develop the application:

Open CV (Open Source Computer Vision Library):
A computer vision library which supports real-time image processing. Open CV
will be used to implement object detection. [1]

PyScripter:
An open-source Python Integrated Development Environment (IDE). [2]

Python:
An object orientated programming language. The application will be
programmed using Python.

Tkinter:
A GUI (Graphical User Interface) toolkit for the Python programming language.

Pyexiv2:
A python module that allows python scripts to read and write metadata (EXIF,
IPTC, XMP, thumbnails) embedded in image files. [3]
3.2 Breakdown and Analysis of the Problem
3.2.1 Remove Duplicate Images
To solve this problem the application will run a search function which finds all image
files on the user’s computer and creates a list of images without these duplicates. To find
the duplicate images generate checksums for the images and compare the checksums of
each image against one another to find the duplicates. The application does not delete
these duplicates but it restricts the user to this list of images.
3.2.2. Object Detection
The user has to manually enter tags in for each image and if there are thousands of
images it will be a time consuming task to label all these images. By making use of the
Open CV Library the application will implement object detection and use Haar-like
features [1] to detect basic objects on each image from the list generated. For instance, if
the there is a cat in an image the application will automatically detect the cat. These
detected objects will be embedded within the image.
3.2.2. Adding Tags
The application will allow the user to add descriptive tags to the image such as name,
place, occasion and comments. The descriptive tags entered by the user as well as the
objects detected will be embedded within the image. Pyexiv2 [1] will be used to embed the
tags within the images.
3.3 Current Solutions
To my knowledge there are no applications which provide the above mentioned
functionality as an all-in-one application. There are however, stand-alone applications
which provide the above mentioned features but most of these are expensive, proprietary
software and platform dependent.
3.3.1 A few examples of current solutions:

Windows Live Photo Gallery
An application included in the Windows 7 operating system. It is a photo viewer
which allows the user to add descriptive tags to images.

Picasa
A photo manager in which users can view, edit and add tags to images.

iTag
A tool that embeds title, description and keywords into your photos and movies.

Google Image Search
Allows a user to search for images from the internet

Remove Duplicate Pictures
A duplicate picture remover automatically removes duplicate images.[4]
3.4 Suggested Solution
The solution will be a cost effective one since the programming software and tools used
are all open source. The application will be able to run on the Windows and Linux
operating systems.
References
[1].
Willow
Garage,
2010.
Object
Detection.
[online]
Available
at:
<http://opencv.willowgarage.com/documentation/python/objdetect_cascade_classifica
tion.html#haardetectobjects> [Accessed 12 March 2012].
[2]. Google Code, 2011. Project Home of PyScripter. [online]
<http://code.google.com/p/pyscripter/>[Accessed 20 February 2012].
Available
at:
[3]. Olivier Tilloy, 2010. Pyexiv2 Documentation. [online] Available at:
<http://tilloy.net/dev/pyexiv2/doc/release-0.2.0/index.html> [Accessed 27 February
2012].
[4]. 2012, Home of Remove Duplicate Pictures [online] Available
<http://www.removeduplicatepictures.com> [Accessed 27 February 2012].
at: