Vous êtes sur la page 1sur 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 drastically increase 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.

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

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

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

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

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 SPEED

: :
6

Pentium III 2.5 GHz

RAM HARD DISK MONITOR KEYBOARD MOUSE

: : : : :

1 GB 120 GB 15 Color Logitech 104 Keys Logitech

Software Requirements:

OPERATING SYSTEM DEVELOPMENT TOOL IDE

: : :

Windows XP Java 1.6 Net Beans 6.5

Overview Software:

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-ondemand 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

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 bluecollar 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

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

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

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 in many cases, the additional development time and effort don't justify the minimal performance
12

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

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 image to 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

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

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

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 results are 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

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

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 are utilized 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

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 successfully achieved. During testing, the program to be tested is executed with set of test data and output
20

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

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 MPEG7.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, 45 diagonal, 135 diagonal, 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

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

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 perceptually meaningful 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

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

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.

Validation:
Validation also has been done through inappropriate user input. For example, giving inappropriate image. This will warn the user to give correct input.

26

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

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

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

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

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 should be 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.

31

Vous aimerez peut-être aussi