Chapter Documentation
-
Upload
ranjith-cool -
Category
Documents
-
view
229 -
download
0
Transcript of Chapter Documentation
-
8/3/2019 Chapter Documentation
1/31
CHAPTER -1
1. INTRODUCTION
1.1 Salient Features of the System:
This project entitled as Squid using Bullys Algorithm is that a caching proxy for the
Web supporting HTTP, HTTPS, FTP, and more. It reduces bandwidth and improves response
times by caching and reusing frequently-requested web pages. Squid has extensive access
controls and makes a great server accelerator. It runs on most available operating systems,
including Windows.
Squid is used by hundreds of Internet Providers world-wide to provide their users with
the best possible web access. Squid optimizes the data flow between client and server to
improve performance and caches frequently-used content to save bandwidth. Squid can also
route content requests to servers in a wide variety of ways to build cache server hierarchies
which optimize network throughput.
Thousands of web-sites around the Internet would be useful by Squid to drasticallyincrease their content delivery. Squid can reduce your server load and improve delivery
speeds to clients. Squid can also be used to deliver content from around the world - copying
only the content being used, rather than inefficiently copying everything. Finally, Squid's
advanced content routing configuration allows you to build content clusters to route and load
balance requests via a variety of web servers.
In this project, the Bullys Algorithm is the technique used in order to improve the
efficiency of the system.
1
-
8/3/2019 Chapter Documentation
2/31
2. BACKGROUND STUDY
2.1 Existing System:
In the present system, the system security is so weak. High possibilities for the client
to crash the system from a client system. If a proxy video user is watching a video stream and
browses to a different page before the video completely downloads, Squid cannot keep the partial
download for reuse and simply discards the data. Special configuration is required to force such
downloads to continue and be cached.
Disadvantages of Existing System
The existing system has lot of problems that are listed below:
Time consuming process.
We cannot assure the exact images
Text Based Image Search
2.2 Proposed System:
According to this, several additional mechanisms have been introduced to achieve
better performance. Among them, relevance feedback (RF) proved to be a powerful tool to
iteratively collect information from the user and transform it into a semantic bias in the
retrieval process. RF increases the retrieval performance thanks to the fact that it enables the
system to learn what is relevant or irrelevant to the user across successive.
The experimental metadata based image retrieval; Different types of retrieval mechanisms are
supported:
Content based image retrieval using the MPEG-7 descriptors Color Layout, Edge
Histogram and Scalable Colour.
Graph based retrieval supporting wildcards for semantic relations and semantic
objects. 2D data repository and result set visualization based on Fast Map & FDP algorithms.
2
-
8/3/2019 Chapter Documentation
3/31
Algorithms of feature extraction and similarity measure are very dependent on the
features used. In each feature, there would be more than one representation. Among these
representations, histogram is the most commonly used technique to describe features.
This introduces the techniques of CBIR, including a review on features used, feature
representation and similarity measure.
1. Scalable Color Extraction Process
2. Color Layout Extraction Process
3. Edge Histogram Extraction Process
4. Scalable + Color Extraction Process
5. Scalable + Color + Edge Extraction Process
Advantages of the Proposed System:
Fast retrieval of the targeted image
Number of iteration is low
Input as image
\
3. SELECTION OF THE ORGANIZATION:
3.1 Organization Profile:
Arrin Solution is a privately owned Software Development, Web design and
Programming Company based in Coimbatore. Our expertise includes web designing and
software development. They have done web design for more than fifty clients globally from
simple static design to a complex database driven dynamic sites. The Company caters to
various software requirements as needed by our clients. They have designed and
implemented ERP Solutions in JAVA for Textile based companies. They also do rigorous
3
-
8/3/2019 Chapter Documentation
4/31
testing of our software before delivering the same to our clients; also offer post installation
support as and when required by our clients.
The Company offers the following Solutions/Services
Web Design Solutions
Software Development
Hosting Packages
Web Design Solutions:
At Arrin we offer affordable and professional web design packages. They do all web
design work! - You simply provide us with your information/goals and our web site designers
and developers do the rest. They have designed Requirements Extraction forms to get the
maximum of our clients requirements in a single go provided in case they are not sure with
their Web Site requirements. They also help them choose the best plan from our various
packages offered.
Web Hosting Packages:
The Company provides flexible Linux hosting plans at a very affordable price. Our
hosting space is most sought after by Web Designers due to our cheaper price and dedicated
support. They also help our customers in Search Engine Optimization (SEO) in case they are
beginners in Web Designing. The consultation for SEO is provided free of cost in case you
choose our hosting plan.
Software Development:
The Company caters to various software requirements as needed by our clients. They
have designed and implemented ERP Solutions in JAVA for Textile based companies. They
also contribute to the open source community to make the world a better place to live in. And
by contributing to the Open Source they have by the acquired some of the below mentioned
niche skills in developing softwares. The Company also does rigorous testing of our
software before delivering the same to our clients. They also offer post installation support as
4
-
8/3/2019 Chapter Documentation
5/31
and when required by our clients. They also undertake testing projects if requested by the
clients.
4. PROBLEM FORMULATION
4.1 Main Objective:
The objective of this project is to reduce the number of required iterations and
improves overall retrieval performance and Time will be consumed. According to this,
several additional mechanisms have been introduced to achieve better performance. Among
them, relevance feedback (RF) proved to be a powerful tool to iteratively collect information
from the user and transform it into a semantic bias in the retrieval process. RF increases the
5
-
8/3/2019 Chapter Documentation
6/31
retrieval performance thanks to the fact that it enables the system to learn what is relevant or
irrelevant to the user across successive.
4.2 Methodology:
The systematic and familiar methodology is used for design and development of the
system. The methodology adopted is Top Down methodology.
Top down Methodology:
In top-down methodology the analysis is the main one, which is identified the problem of
the existing system and gives a clear view about the designing of the new one without
deviating from the organization objectives. In this incremental approach is used in
construction of program structure. Modules are integrated by moving downward through the
control hierarchy, beginning with the main module. Modules subordinate to the main control
module are incorporated in to the structure in either a depth-first or breadth-first manner.
Bottom up Methodology:
This approach suggests that the development should initially concentration on
processing and updating of files at operational level within the organization. Sub sequent the
management activities of planning, controlling and decision models are added. Therefore the
overall plan reflects the co-ordinate development of sub system.
4.3 Platform:
System Requirements
Hardware Requirements: -
PROCESSOR : Pentium III
SPEED : 2.5 GHz
6
-
8/3/2019 Chapter Documentation
7/31
RAM : 1 GB
HARD DISK : 120 GB
MONITOR : 15 Color
KEYBOARD : Logitech 104 Keys
MOUSE : Logitech
Software Requirements: -
OPERATING SYSTEM : Windows XP
DEVELOPMENT TOOL : Java 1.6
IDE : Net Beans 6.5
Overview Software:
7
-
8/3/2019 Chapter Documentation
8/31
Java was developed at Sun Microsystems. Work on Java originally began with the
goal of creating a platform-independent language and operating system for consumer
electronics. The original intent was to use C++, but as work progressed in this direction, the
Java developers realized that creating their own language rather than extending C++ would
better serve them. The effort toward consumer electronics led the Java team, then known as
First Person, Inc., toward developing hardware and software for the delivery of video-on-
demand with Time-Warner.
Unfortunately (or perhaps fortunately, depending on your perspective), Time-Warner
selected Silicon Graphics as the vendor for its video-on-demand project. This setback left the
First Person team with an interesting piece of software (Java) but no market in which to place
it. Eventually, the natural synergies of the Java language and the World Wide Web (WWW)
were noticed, and Java found a market.
What we know today, as Java is both a programming language and an environment
for executing programs written in the Java language. Unlike traditional compilers, which
convert source code into machine-level instructions, the Java compiler translates Java source
code into instructions that are interpreted by the runtime Java Virtual Machine. So, unlike
languages like C and C++, on which Java is based, Java is an interpreted language. Although
most of the current excitement and anticipated use of Java are related to the Internet and the
World Wide Web in particular, Java did not begin as an Internet project.
Having seen that Java is equally suited as a language for development both on and off
the Internet, it's time to look more closely at the Java language itself. The creators of Java at
Sun Microsystems have defined the Java language as "a simple, object-oriented, distributed,
interpreted, robust, secure, architecture-neutral, portable, high-performance, multithreaded,
and dynamic language." Well, they managed to fit all of the important 1990s buzzwords into
one sentence, but we need to look more closely at Java to see if they managed to fit all of
these concepts into one language.
The simplicity of Java is enhanced by its similarities to C and C++. Because many of
today's current programmers, especially those likely to consider using Java, are experienced
in at least C and probably C++, Java is instantly familiar to these programmers. Java has
simplified C++ programming by both adding features beyond those found in C++ and by
removing some of the features that make C++ a complicated and difficult language to master.
8
-
8/3/2019 Chapter Documentation
9/31
Java is simple because it consists of only three primitive data types-numbers, Boolean types,
and arrays. Everything else in Java is a class. For example, strings are true objects, not just
arrays of characters. Similarly, arrays in the Java language are first-class objects, not just
memory allocations and runtime representations.
Java offers additional simplifications over C++. The ubiquitous go to statement has
been removed. Operator overloading, a frequent source of confusion during the maintenance
of C++ programs, is not allowed in Java. Unlike C and C++, Java has no pre-processor. This
means that the concepts behind #define and typed are not necessary in Java. Java reduces the
redundancy of C++ by removing structures and unions from the language. These are both just
poor cousins of a full-fledged class and are superfluous in a cohesively designed language. Of
course, they were necessary in C++ because it was important for early C++ translators and
then compilers to be able to correctly interpret the existing C code that relied on these
features.
However, as any C or C++ programmer will admit, pointers are also a significant
source of problems and debugging time in C and C++ programs. Pointers can accidentally be
set to point to the wrong thing, causing unexpected behaviour including crashes. Pointers also
can be used to store allocated memory. If the allocated memory isn't freed, or released back
to the operating system, then the program will gradually leak memory, until it eventually runs
out. An entire set of commercial products, such as the Bounds Checker products, has come
into existence to help programmers identify these types of pointer-related problems.
Java simplifies this by completely removing pointers from the language and using a
handle-based solution instead. Of course, if all Java did was remove syntax from C++, it
would be a poor compiler instead of an exciting new language. Java goes well beyond C++
by adding some important features. One of the most important is automatic memory
management, usually known as garbage collection. Garbage collection is really just a blue-
collar term that means that you don't need to free memory that you allocate-the Java Virtual
Machine takes care of doing this for you. Java goes beyond C++ in a variety of other ways, as
well. For example, Java includes language-level support for writing multithreaded programs.
A multithreaded program is one that is written such that it performs more than one task at a
time.
Object-Oriented:
9
-
8/3/2019 Chapter Documentation
10/31
Of course, Java is object-oriented. In fact, in the mid-1990s, it's hard to imagine
someone developing a new language and declaring it the greatest new thing without it being
object-oriented. In its approach to object-orientation, Java follows more closely along the
lines of languages such as Smalltalk than C++. Except for its primitive data types, everything
in Java is an object.
Java classes are comprised of methods and variables. Class methods are the functions
that an object of the class can respond to. Class variables are the data that define the state of
an object. In Java, methods and variables can be declared as private, protected, or public.
Private methods and variables are not accessible outside of the class. Protected members are
accessible to subclasses of the class, but not to other classes. Finally, public methods and
variables are accessible to any class.
Classes in Java can be defined as abstract. An abstract class is a class that collects
generic state and behavioural information. More specific classes are defined as subclasses of
the abstract class and are used to define actual, specific entities. For example, software in use
at a pet store may have an abstract class named Pet. This class would store information that is
common to all pets-birth date, cost, sale price, date received, and so on. Derived from the
abstract Pet class could be classes such as Dog, Cat, Bird, and Fish. Each of these classes can
augment the abstract class as necessary. For example, a member variable called Water Type
(salt or fresh) would be necessary in Fish. Because Water Type would be meaningless for
Dogs, Cats, and Birds, it is not part of the abstract implementation of Pet.
Distributed:
Java facilitates the building of distributed applications by a collection of classes for
use in networked applications. By using Java's URL (Uniform Resource Locator) class, an
application can easily access a remote server. Classes also are provided for establishing
socket-level connections.
Robust:
The designers of Java anticipated that it would be used to solve some very complex
programming problems. Writing a distributed, multithreaded program that can run on a
variety of operating systems with a variety of processors is not a simple task. To do it
10
-
8/3/2019 Chapter Documentation
11/31
successfully, you need all the help your programming language can offer you. With this in
mind, Java was created as a strongly typed language. Data type issues and problems are
resolved at compile-time, and implicit casts of a variable from one type to another are not
allowed. Memory management has been simplified in Java in two ways. First, Java does not
support direct pointer manipulation or arithmetic. This makes it impossible for a Java
program to overwrite memory or corrupt data. Second, Java uses runtime garbage collection
instead of explicit freeing of memory. In languages like C++, it is necessary to delete or free
memory once the program has finished with it.
Secure:
Closely related to Java's robustness is its focus on security. Because Java does not use
pointers to directly reference memory locations, as is prevalent in C and C++, Java has a
great deal of control over the code that exists within the Java environment.
It was anticipated that Java applications would run on the Internet and that they could
dynamically incorporate or execute code found at remote locations on the Internet. Because
of this, the developers of Java hypothesized the existence of a hostile Java compiler that
would generate Java byte codes with the intent of bypassing Java's runtime security. This led
to the concept of a byte-code verifier. The byte-code verifier examines all incoming code to
ensure that the code plays by the rules and is safe to execute. In addition to other properties,
the byte code verifier ensures the following:
No pointers are forged.
No illegal object casts are performed.
There will be no operand stack overflows or underflows.
All parameters passed to functions are of the proper types.
Rules regarding private, protected, and public class membership are followed.
Architecture-Neutral:
Back in the dark ages of the early 1980s, there was tremendous variety in desktop
personal computers. You could buy computers from Apple, Commodore, Radio Shack, Atari,
and eventually even from IBM. Additionally, every machine came with its own very different
operating system. Because developing software is such a time-consuming task, very little of
11
-
8/3/2019 Chapter Documentation
12/31
the software developed for use on one machine was ever ported and then released for use on a
different machine.
A number of commercially available source code libraries (for example, Zinc, ZApp,
and XVT) attempt to achieve application portability. These libraries attempt this by focusing
on either a lowest common denominator among the operating systems or by creating a
common core API (Application Programming Interface).
Java takes a different approach. Because the Java compiler creates byte code
instructions that are subsequently interpreted by the Java interpreter, architecture neutrality is
achieved in the implementation of the Java interpreter for each new architecture.
Portable:
In addition to being architecture-neutral, Java code is also portable. It was an
important design goal of Java that it be portable so that as new architectures (due to
hardware, operating system, or both) are developed, the Java environment could be ported to
them. In Java, all primitive types (integers, longs, floats, doubles, and so on) are of defined
sizes, regardless of the machine or operating system on which the program is run. This is in
direct contrast to languages like C and C++ that leave the sizes of primitive types up to the
compiler and developer.
High-Performance:
For all but the simplest or most infrequently used applications, performance is always
a consideration. It is no surprise, then, to discover that achieving high performance was one
of the initial design goals of the Java developers. A Java application will not achieve the
performance of a fully compiled language such as C or C++. However, for most applications,
including graphics-intensive ones such as are commonly found on the World Wide Web, the
performance of Java is more than adequate. For some applications, there may be no
discernible difference in performance between C++ and Java.
Many of the early adopters of C++ were concerned about the possibility of
performance degradation as they converted their programs from C to C++. However, many
C++ early adopters discovered that, although a C program will outperform a C++ program inmany cases, the additional development time and effort don't justify the minimal performance
12
-
8/3/2019 Chapter Documentation
13/31
gains. Of course, because we're not all programming in assembly language, there must be
some amount of performance we're willing to trade for faster development.
Overview of Swing:
Swing is the new GUI Toolkit, which partly replaces that Java Awt toolkit. Swing
uses some fundamental mechanisms of the AWT, like the event handling. Basically, Swing
uses the platform independent AWT features, and the AWT top level windows to get access
to the native GUI system.
The most important things to know about Swing are that
All of the components are lightweight; they are not platform-native widgets.
The components (subclass of the JC Component class) are drawn by delegate
The implication of the delegation architecture is that you may radically change the
look and feel of a Swing-based application by asking the UI Manager to use a given set of UI
delegates.
Swing comes with look-and-feels that mimic native widgets on Windows and Motif,
plus one Sun-designed L&F called Metal. Furthermore, Swing maintains a database of
properties that influence the delegates.
For example, you may set the property governing the default background colour of
all J Panels constructed from that moment on will have that background colour.
This is good because you neednt subclass J Components to change their behaviour,
which in turn is good because even components created by third-party code will exhibit your
customized attributes
Main New Features:
Lightweight. Not built on native window-system windows.
13
-
8/3/2019 Chapter Documentation
14/31
Much bigger set of built-in controls.Trees, image buttons, tabbed panes,
sliders, toolbars, colour choosers, tables, text areas to display HTML or
RTF, etc.
Much more customizable. Can change border, text aligment, or add imageto almost any control. Can customize how minor features are drawn. Can
separate internal representation from visual appearance.
Pluggable look and feel can change look and feel at runtime, or design
own look and feel.
Many miscellaneous new features. Double-buffering built in, tool tips,
lock able tool bars, keyboard accelerators, custom cursors, etc.
Components are named Java:
E.g. JFrame, JPanel, JApplet, JDialog, JButton, etc.There is an almost equivalent
Swing component for most AWT components.
Instead of adding components directly to frames or applets, use the content pane
Add to content pane via getContentPane( ).add
Replace content pane via setContentPane
Model-View-controller architecture lets you change the internal data representation for
lists, trees, tables; etc.Swing was in the com.sun.java.swing package in beta releases of
1.2.Switched to javax.swing in 1.2 final.
Mixing AWT and swing is doomed:
AWT components are always on top, and z-ordering problems catch you in many
unexpected ways. Stick with the AWT or move completely to Swing.
There are several ways that UIs are created in swing. Some people write code by
hand, other use visible tools to generate the code. In general, it is possible to specify a UI not
through code, but by serializing the componentsJavaBeansinvolved. This seems to be
less commonly used.
14
-
8/3/2019 Chapter Documentation
15/31
Until JDK 1.4, the serialized format of swing components was not guaranteed to
remain stable between different versions of the JDK, and so was not recommended for long
time storage, only short term persistence and sending between address spaces, in RMI
messages for example.
A common way to specify a GUI in Swing is to subclass one of the windows classes
(JFrame for main windows, JDialog for dialogs) and implements the window contents
(allocation and placement of all the widgets) in that subclass. This is not strictly required, but
has emerged as a common idiom. That idiom is also useful because it allows implementing
said subclasses as JavaBeans, thus the window implementation become re-usable components
when used in a BeaVns framework. (Notes: All modern Java IDEs contain a JavaBeans
management framework. So these own windows can be added to the IDEs tools pallet and be
re-used with a few clicks.)
GUI builders are usually also relaying on the introspection features for JavaBeans and
generate their window code as subclasses of one of the Swing windows classes.
UI and the application model kept in sync:
All Swing components keep their data in models, e.g., Document (a model for text
components), Table Model, and Tree Model. These models can be models in the original
Model View Controller-sense, but often they are acting as adapters to an underlying
application model.
A Swing component registers a listener with an appropriate model. When the model
changes and its listeners are notified, the components update the visual representation
accordingly. When a user clicks the component, this is directly written through to the model
and listeners are notified.
Actions triggered from the UI:
Interested parties register ActioListeners with suitable UI components.
JAVA.AWT:
15
-
8/3/2019 Chapter Documentation
16/31
This package contains awt classes. It is one of the largest java packages. AWT
provides support for applets. The AWT classes contains numerous classes and methods
that allows to create and manage windows, manage fonts, output text, and utilize
graphics.
JAVA.NET:
This package provides support for networking. These networking classes encapsulate
socket paradigm. Using this package a network communication can be created
between systems.
JAVA.IO:
This package supports javas basic I/O system, including file I/O. Apart from
print() and println(), I/O package contains stream classes.
JAVA.UTIL:
This package contains collection group, and also a wide assortment of classes
and interfaces that support broad range of functionality. These applications include
generating pseudorandom numbers, manipulating date and time, observing events,
manipulating set of bits, and tokenizing strings.
5. SYSTEM ANALYSIS AND DESIGN
5.1 Fact Finding:
16
-
8/3/2019 Chapter Documentation
17/31
This project information is to build their own capacity by acquiring knowledge of the
process of fact finding and formulating development projects. Produce an independent report
of recommendation concerning feasibility and content of a comprehensive program, leading
to an organized activity. According to the user requirement of the user the information will be
provided to the user. Input and output analysis identifies the elements that are related to the
inputs and outputs of the given system.
5.2 Feasibility Analysis:
Generally system study/analysis and design refers to the process of examining a
business solution with the intent of improving it through better procedures and methods.
System study has two major components of system development. Analysis specifies what the
system to do.
5.2.1 Operational analysis:
When developing a system, it is necessary to evaluate the feasibility of a project at the
earliest possible time. Unexpected technical problems can occur when poor problem
definition is obtained. It is advisable to conduct discussions regarding the analysis and design
of the project before starting it.
5.2.2 Economic Feasibility:
Content Based Image Retrieval, CBIR. While computationally expensive, the resultsare far more accurate than conventional image indexing. Hence, there exists a trade-off
between accuracy and computational cost. This trade off decreases as more efficient
algorithms are utilized and increased computational power becomes inexpensive.
5.2.3 Technical Feasibility:
17
-
8/3/2019 Chapter Documentation
18/31
This project is developed using JAVA. It is executed in the minimum hardware of
Intel Pentium III,RAM of 1 GB, hard disk capacity of 80GB,15 inches monitor, 104 keys and
mouse, the software java, the windows Xp operating system and that has been used in this
project are found to be technically feasible.
5.3 Input Design:
The input design of this project is being done with the following considerations
The following forms are designed to provide input to the system.
In GUI design the following forms are designed,
The RF form was designed in JAVA
The option, search was designed in JAVA
Browse Option was designed in JAVA
Indexing Option was designed in JAVA
5.4 Output Design:
The output of this project is image retrieving.
The result of existing system which indicates that doesnt give intended target image
and it takes many iterations.
The result of proposed system which indicates that give intended target image and it
takes few iterations.
It is an automatic process of searching images.
5.5 Menu Design:
18
-
8/3/2019 Chapter Documentation
19/31
Menu design is the process of converting user-originated inputs to a computer based
format. Menu design is one of the most expensive phases of the operation of computerized
system and is often the major problem of a system.
The following menu designs are using in this system,
1. File
2. Edit
3. Help
5.6 Code Design:
In this project Java is used for development. Here final solution is broken into smaller
modules so that coding will be easy to follow for debugging and testing.
The main purpose of the code and design is to simplify the coding and to achieve
better performance. The coding is prepared in such a way that the internal producers areutilized producers are utilized properly. Validation messages are displayed.
The variables have chosen for processing for data is meaningful to the context in
which in which it is used. The coding of the variable is done in such a way that any other
than person who have developed this real time can understand its purpose. Thus the
maintainability and retrieval of items of information is easy.
Coding is done with objects that help in quick processing the data simple to
understand and debugging the errors, further development and modification in coding be
done easily.
5.7 Test Case Design:
19
-
8/3/2019 Chapter Documentation
20/31
Preparation of test data
Preparation of test data plays a vital role in system testing. After preparing test data
the under study is tested using that test data, errors are again uncovered and corrected by
implementing the above testing steps and corrections are noted for future use.
Using live test data
Live test data are those that are actually extracted from the organization. It is
realistic data that will show how the system will perform for typical processing requirements,
assuming that the live data entered are in fact typical such data generally will not test all
combinations or formats that can enter the system.
Using artificial test data
Artificial test data are created solely for the test purposes, since they can be generated
to test all combinations of formats and values. The most effective test program use artificial
test generated by person other than those whose wrote the programs, often an independent
team of testers formulates a testing plan, using the system specification.
5.8 Validation checks
Integrity constraints are most essential factor for best development. A software
developer should have a better skill to find out the attributes, which needs validations; this
will be decided at the time of system designing itself.
This project validates the input data to minimize errors while entering the data is
done. In certain cases validation is made to check whether the given data is numeric or not.
Further validation done to find whether user skips an attribute with null value.
Software testing is a critical element of software quality assurance and represents the
ultimate review of specification, design and coding. Testing is vital to the success of the
system. Errors can be injected at any stage during development system testing makes a
logical assumption that if all the parts of the system are correct, the goal will be successfullyachieved. During testing, the program to be tested is executed with set of test data and output
20
-
8/3/2019 Chapter Documentation
21/31
of the program for the test data is evaluated to determine the performance as expected. A
series of testing are performed for the proposed system before the system is ready fir user
acceptance resting the successful test is one that finds error.
6. PROJECT DESCRIPTION
21
-
8/3/2019 Chapter Documentation
22/31
6.1 Module Description:
6.1.1: Relevance Feedback
Here you can annotate the photos with free text and you can rate the quality. Pre
existing metadata like EXIF or IPTC tags inside images is loaded and converted to MPEG-
7.Here the second panel, the semantic description panel, is shown. It offers a tool for visual
creation of MPEG-7 based semantic descriptions using a drawn directed graph. On the
feature extraction panel the low-level descriptors that are automatically extracted are shown.
Extracted MPEG-7 descriptors are Colour Layout, Scalable Colour and Edge Histogram.
6.1.2: Scalable Color Retrieval
Used to get the values of x & y co-ordinates. Identifies the proportion of pixels in an
image holding the specific values.
Since Image Retrieval already supports Color histograms (with the MPEG-7 Scalable
Color descriptor), functions for searching for colors have been added
6.1.3: Edge Histogram
The image array is divided into 4x4 sub images.Each sub image is further partitioned
into non-overlapping square image blocks whose size depends on the resolution of the input
image. The edges in each image-block are categorized into one of the following six types:
vertical, horizontal, 45diagonal, 135diagonal, non directional Edge and no-edge.Now a
5-bin edge histogram of each sub image can be obtained. Each bin value is normalized by the
total number of image-blocks in the sub image.The normalized bin values are nonlinearly
quantized.
22
-
8/3/2019 Chapter Documentation
23/31
Fig 6.1.3.a Categories of Edge Histogram.
6.1.4: Color Layout
The image array is partitioned into 8x8 blocks.Representative Colors are selected and
expressed in YCbCr Color space. Each of the three components (Y, Cb and Cr) is
transformed by 8x8 DCT (Discrete Cosine Transform). The resulting sets of DCT
coefficients are zigzag-scanned and the firs few coefficients are nonlinearly quantized to form
the descriptor.
Fig 6.1.4.a Work of Color Layout Module.
23
-
8/3/2019 Chapter Documentation
24/31
YCbCr and Y'CbCr are a practical approximation to color processing and perceptual
uniformity, where the primary colors corresponding roughly to Red, Green and Blue are
processed into perceptually meaningful information. By doing this, subsequent image/video
processing, transmission and storage can do operations and introduce errors in perceptuallymeaningful ways. Y'CbCr is used to separate out a luma signal (Y') that can be stored with
high resolution or transmitted at high bandwidth, and two chroma components (Cb and Cr)
that can be bandwidth-reduced, sub sampled, compressed, or otherwise treated separately for
improved system efficiency.
6.1.5: Image Retrieval
CBIR Retrieval gives the user the ability to retrieve annotated photos. Due to the fact,that this is experimental software the retrieval mechanism is file system based. All MPEG-7
documents found by CBIR Retrieval in a specified directory and in further subdirectories are
searched.
Four different ways to search for a matching photo:
1. Searching through an XPath statement
2. Defining search options through textboxes with various options
3. Content based image retrieval using the visual descriptors Color Layout and
Scalable Colour defined in the MPEG-7 standard.
4. Searching for a similar semantic description graph
24
-
8/3/2019 Chapter Documentation
25/31
7. SYSTEM DEVELOPMENT AND TESTING
7.1 System Development:
The software life cycle encompasses all activities required to define, develop, test,
deliver, operate, and maintain a software product. This is a important definition of life cycle
model for each software project because the model provides a basis for categorizing and
controlling the various activities require to develop and maintain a software product.
During the planning phase, the company estimate and work schedules will be
preliminary in nature. Requirement definition concerned with identifying the basic functions
of the software components in hardware / software people system. The product of
requirements definition in a specification that describes the processing environment the
required software functions exception handling subsets an implementation priorities and
likely modification. One of the important parts of the construction is testing. It is necessary to
test all modules to make sure that they are error free; once they are put into operation testing
it should proceed on its own.
7.2 System Testing:
7.2.1 Objective of Testing:
Software testing is a critical element of software quality assurance that represents the
ultimate review of specifications, design and coding. The user tests the developed system and
changes are made according to their needs. The testing phase involves the testing of
developed system using various kinds of data. It involves user training, system testing and
successful running of the developed system.
The changes are made according to their needs. The testing phase involves the testing
of the developed system using various kinds of data. While testing, errors are noted and
corrections are made. System testing is the stage of implementation, which is aimed at
ensuring that the system works accurately and efficiently before live operation commences.
25
-
8/3/2019 Chapter Documentation
26/31
The candidate system is subject to variety of tests: stress recovery, and security and usability
tests.
7.2.2 Test Plan:
After the integration of this proposed system, the verification and validation of the
system has been carried out. When the user gives the appropriate input, the system simulates
properly and gives reasonable output.
When the input from the user is found to be inappropriate, it display an error message
to indicate the user to gives appropriate input.
Verification:
Verification has been done by getting inappropriate input. If the users gives
inappropriate image message box with a desired message as no match is found will be
displayed.
Val idat ion:
Validation also has been done through inappropriate user input. For example, giving
inappropriate image. This will warn the user to give correct input.
26
-
8/3/2019 Chapter Documentation
27/31
7.2.3 Testing Methods:
The different types of testing are:-
White Box Testing
Black Box Testing
Unit Testing
Integration Testing
Validation Testing
Output Testing
User Acceptance Testing
White box testing:
White Box Testing is a testing in which in which the software tester has knowledge of
the inner workings, structure and language of the software, or at least its purpose. It is
purpose. It is used to test areas that cannot be reached from a black box level.
Black box testing:
Black Box Testing is testing the software without any knowledge of the inner workings,
structure or language of the module being tested. Black box tests, as most other kinds of tests,
must be written from a definitive source document, such as specification or requirements
document, such as specification or requirements document. It is a testing in which the
software under test is treated, as a black box .you cannot see into it. The test provides
inputs and responds to outputs without considering how the software works.
Unit testing:
Unit testing focuses verification efforts on the smallest unit of software design, of the
module. This is also known as Module Testing the modules are tested separately, this
testing is carried out during the programming stage itself. In this step each module is found to
be working correctly to meet the expected output.
Integration testing:
27
-
8/3/2019 Chapter Documentation
28/31
Integration testing focuses on the design and construction of the software architecture.
Data can be lost across an interface, one module can have adverse effect on another sub
functions and show on. Thus integration testing is a systematic technique for constructing test
to uncover errors associated with the interface. In this project, all the modules are combined
and then the entire program is tested as a whole.
Validation testing:
Validation testing is the requirement established as a part of software requirement
analysis is validated against the software that has been constructed. This test provides the
final assurance whether the software needs all functional, behavioural and performance
requirements
Thus the proposed system under consideration has been tested by using validation
testing and found to be working satisfactory.
Output testing:
After performing the validation testing, the next step is the output testing of the proposed
system, since no system could be useful if it does not produce required output in the specific
format. The outputs generated or displayed by the system under consideration are
Tester asking the users about the format required by them. Here, the output is
considered into two ways: one is on the screen and the other is printed format.
The output format on the screen is found to be correct as the format designed
according to the user needs, for the hard copy also, the output comes as specified by
the user.
User acceptance testing:
User acceptance testing of a system is the key factor for the success of any system.
The system under consideration is tested for user acceptance by constantly keep in touch with
the prospective system user at the time of developing and making changes wherever required.
8. IMPLEMENTATION
28
-
8/3/2019 Chapter Documentation
29/31
A software application in generally implemented after navigating the complete life
cycle method of a project. Various life cycle processes such as requirement analysis, design
phase, verification, testing and finally followed by the implementation phase results in a
successful project management. The software application which is basically a web based
application has been successfully implemented after passing various life cycle processes
mentioned above.
As the software is to be implemented in a high standard industrial sector, various
factors such as application environment, user management, security, reliability and finally
performance are taken as key factors throughout the design phase. These factors are analyzed
step by step and the positive as well as negative outcomes are noted down before the final
implementation.
The applications validations are made, taken into account of the entry levels
available in various modules. Possible restrictions like number formatting, date formatting
and confirmations for both save and update options ensures the correct data to be fed into the
database. Thus all the aspects are charted out and the complete project study is practically
implemented successfully for the end users.
9. CONCLUSION
29
-
8/3/2019 Chapter Documentation
30/31
A new Content based image retrieval method is presented in this paper with the help
of Relevance Feedback Process. The image retrieval problem is formulated as an
optimization problem, and is solved by using a RF and CBIR Process. The user is in the loop
and his interaction with the machine is used as an iterative supervision of the classification.
The users feedback drives a feature re-weighting process and the progress of the swarm,
towards the goal of minimizing a fitness function that takes into account the characteristics of
the relevant and irrelevant images, as points of attraction and repulsion. Experimental results
show the effectiveness of the proposed method. To enhance the retrieval performance, further
studies are being conducted about the re-weighting and fitness function. Different image
databases and features spaces are being compared and analyzed to better customize the DCT
and RF Techniques algorithm. Further developments will try to insert into the loop explicit
semantic knowledge (in the form of annotation) together with an unsupervised clustering of
the database. Furthermore, it is worth mentioning that standardized methodologies to allow
measuring the user satisfaction based on subjective criteria are still missing. Studies are being
carried on to place the proposed RF methodologies in a framework for human-oriented
testing and assessment.
10. FUTURE SCOPE AND FURTHER ENHANCEMENT OF
THE PROJECT
30
-
8/3/2019 Chapter Documentation
31/31
An automation of annotation is required. Based on already defined MPEG-7 based visual
descriptors some of the work, needed for annotation, should be done by the program, like
detecting visually similar images and proposing they have similar semantics or object
tracking through a sequence of images. An Internet or intranet based retrieval engine was
requested.
Most companies like the small to medium sized non-administrated image repositories like
clip arts collection, royalty free images for ads and flyers or photos from objects, persons and
events. Employees should be enabled to use these image libraries without the requirement of
special knowledge or browsing all images. In this context user and rights management shouldbe enabled to disable unauthorized access. Many of the visual descriptors and combinations
of descriptors have not yet proved functional in various contexts because they were not used
yet. A lot of sample development and prototyping must happen to ensure context specific
usefulness of parts of the new standard MPEG-7.
CBIR Techniques prove that this approach is able to reach any given target image with
fewer iterations in the worst and average cases. The application can be enhanced with the
needs of the company.This project will be useful for accurate image searching.