Chapter - 1: 1.1 Salient Features of The System
Chapter - 1: 1.1 Salient Features of The System
Chapter - 1: 1.1 Salient Features of The System
INTRODUCTION
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
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
Fast retrieval of the targeted image Number of iteration is low Input as image
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
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.
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.
Hardware Requirements:
PROCESSOR SPEED
: :
6
: : : : :
Software Requirements:
: : :
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
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.
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.
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.
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.
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.
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
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
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
22
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.
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
25
The candidate system is subject to variety of tests: stress recovery, and security and usability tests.
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
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.
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.
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