Beruflich Dokumente
Kultur Dokumente
INTRODUCTION.4
1.1 MOTIVATION.
1.3 OBJECTIVES...
REVIEW OF LITERATURE.9
2.3 REALIZATION...12
PROJECT IMPLEMENTATION.16
S
3.1 PROJECT IMPLEMENTATION TOOLS..17
REFERENCES.27
List of figures
2
List of Tables
Many researchers implemented the SVD based watermarking in different domains like DCT,
DFT, and DWT etc. Domain change help in imperceptibility and robustness but it did not
help in false positive issue. So many solutions of this false positive problem are given by
different researchers. These suggestions include use of secret signature information generated
by hash function, insertion of complete watermark, encryption of watermark before insertion,
insertion of principal components of watermark etc. The use of signature method did not able
to provide a complete security to the scheme as the signature was itself vulnerable to different
attacks. The insertion of complete watermark provided complete security but the drawback
was a poor capacity.
1.3. PROPOSED SYSTEM
Dual watermarking scheme based on DWT and Singular Value Decomposition (SVD) along
with the chaos based encryption technique is proposed. After decomposing the cover image
into four bands (LL, HL, LH, and HH), we apply the SVD to each band, and modify the
singular values of the cover image with the singular values of the watermarked primary
watermark. When the primary watermark image is in question, the invisible secondary
watermark can provide rightful ownership. Modification in all frequencies allows the
development of a watermarking scheme that is robust to a wide range of attacks. SVD
transform is performed on all the images and sum up the singular values to find the new
singular values. Both the watermarks are embedded in the same manner and the watermarked
primary watermark is encrypted using chaos encryption.
This section describes the previous works which had been done on digital
watermarking:
REVIEW OF LITERATURE
2.1. Overview of Watermarking
Digital Watermarking is used for copyright protection and authentication. In the proposed
system, a Dual Watermarking Scheme based on DWT-SVD with chaos encryption algorithm,
will be developed to improve the robustness and protection along with security. DWT and
SVD have been used as a mathematical tool to embed watermark in the image. Two
watermarks are embedded in the host image. The secondary is embedded into primary
watermark and the resultant watermarked image is encrypted using chaos based logistic map.
This provides an efficient and secure way for image encryption and transmission. The
watermarked image is decrypted and a reliable watermark extraction scheme is developed for
the extraction of the primary as well as secondary watermark from the distorted image
The dual watermark is a combination of a visible watermark and an invisible watermark. The
visible watermark is first inserted in the original image and then an invisible watermark is
added to the already visible-watermarked image. The final watermarked image is the dual
watermarked image.
The first applications were related to copyright protection of digital media. In the past
duplicating artwork was quite complicated and required a high level of expertise for the
counterfeit to look like the original. However, in the digital world this is not true. Now it is
possible for almost anyone to duplicate or manipulate digital data and not lose data quality.
Similar to the process when artists creatively signed their paintings with a brush to claim
copyrights, artists of today can watermark their work by hiding their name within the image.
Hence, the embedded watermark permits identification of the owner of the work. With the
growing threat of piracy in the Internet and copyright infringement cases, watermarks are
sure to serve an important role in the future of intellectual property rights.
3.2 . Modules And Description
In the proposed system, there are four modules, they are as follows:
3. Attacks:
To investigate the robustness of the algorithm, the watermarked image is attacked by
Average and Mean Filtering, JPEG and JPEG2000 compression, Gaussian noise
addition, Resize, Rotation and Cropping. After these attacks on the watermarked
image, we compare the extracted watermarks with the original one. The watermarked
image quality is measured using PSNR (Peak Signal to Noise Ratio).
a. Perform 1-level wavelet transform on the host and the watermarked image.
Denote each sub-band with WK and WK for host and watermarked image
respectively where K _ {LL, LH, HL, HH} represents the orientation.
b. The detail and approximation sub-images of the host as well as watermarked
image is segmented into non overlapping rectangles.
c. Perform SVD transform on all non-overlapping rectangles of both images.
2.3. Realization
As a full realization of this concept is beyond the time and budgetary constraints of this
project, we plan instead to prove the concept by designing a demonstration project that will
operate as a scaled down version of the above system. The aim of this project then, is to prove
the concept of Dual Watermarking by developing an algorithm to encrypt the image using
DWT.
The proposed algorithm is demonstrated using MATLAB. We have taken 8-bit gray scale tree
image as host image of size 256 x 256 and for primary and
secondary watermark, we have used 8-bit gray scale image and boy image of sizes 128 128
and 64 64 respectively. The secondary watermark is
embedded into primary and the watermarked primary is encrypted. For encryption, chaos
encryption technique is used. For embedding the encrypted
watermarked primary into the host image, we have used 2-level of decomposition using
Daubechies filter bank. For extracting both the watermarks, decryption is done using the
chaos technique. The decrypted image is then used to extract the primary watermark and this
is used for extracting the secondary watermark. In figures 2 and 3 all original, watermarked
images and extracted watermarks are shown. To investigate the robustness of the algorithm,
the watermarked image is attacked by Average and Median Filtering, Gaussian noise
addition, Resize and Rotation. After these attacks on the watermarked image, we compare the
extracted watermarks with the original one.
12
2.4. Database Design
Image classification or categorization has often been treated as a preprocessing step for
speeding-up image retrieval in large databases and improving accuracy, or for performing
automatic image annotation.
Image categorization is often followed by a step of similarity measurement, restricted to
those images in a large database that belong to the same visual class as predicted for the
query.
Database is constructed when the image each pixel value need to be stored. It creates a
dataset to store the image information such as color value.
Database Design
Each entry in the database is designed to correspond to a single command utterance. The
entries in the database were designed to be a feature matrix containing features extracted
from the pre-recorded samples. There was one entry for all the pre-recorded commands.
Database construction
The entries in the database correspond to image values. The entries are in form of feature
matrices extracted from the image file inputted by the user. The formation of the feature
matrices is summarized in Feature Extraction.
13
2.4.2. System Architecture
1) Load Balancing:
Since the system will be available only the admin logs in the amount of load on server will be
limited to time period of admin access.
2) Easy Accessibility:
Records can be easily accessed and store and other information respectively.
3) User Friendly:
The system will be giving a very user friendly approach for all user.
Maintaining the all secured and database on the server which will be accessible according the
user requirement without any maintenance cost will be a very efficient as compared to storing
all the customer data on the spreadsheet or in physically in the record books.
5) Easy maintenance:
PROJECT IMPLEMENTATION
28
3.1. PROJECT IMPLEMENTATION TOOLS
The Project is loaded in MATLAB. We used MATLAB R2013a for Design and coding of
project.
Hardware Requirement:
Memory: 1 GB RAM
Hard Drive: 50 GB
Monitor
Software Requirement:
Introduction
The tutorials are independent of the rest of the document. The primarily objective is to help
you learn quickly the first steps. The emphasis here is learning by doing. Therefore, the
best way to learn is by trying it yourself. Working through the examples will give you a feel
for the way that MATLAB operates. In this introduction we will describe how MATLAB
handles simple numerical expressions and mathematical formulas. The name MATLAB
stands for MATrix LABoratory. MATLAB was written originally to provide easy access
to matrix software developed by the LINPACK (linear system package) and EISPACK
(Eigen system package) projects. MATLAB is a high-performance language for technical
computing. It integrates computation, visualization, and programming environment.
Furthermore, MATLAB is a modern programming language environment: it has
sophisticated data structures, contains built-in editing and debugging tools, and supports
object-oriented programming. These factors make MATLAB an excellent tool for teaching
and research. MATLAB has many advantages compared to conventional computer
languages (e.g., C, FORTRAN) for solving technical problems. MATLAB is an interactive
system whose basic data element is an array that does not require dimensioning. The
software package has been commercially available since 1984 and is now considered as a
standard tool at most universities and industries worldwide. It has powerful built-in routines
that enable a very wide variety of computations. It also has easy to use graphics commands
that make the visualization of results immediately available. Specific applications are
collected in packages referred to as toolbox. There are toolboxes for signal processing,
symbolic computation, control theory, simulation, optimization, and several other fields of
applied science and engineering.
Basic features
As we mentioned earlier, the following tutorial lessons are designed to get you started
quickly in MATLAB. The lessons are intended to make you familiar with the basics of
MATLAB. We urge you to complete the exercises given at the end of each lesson.
A minimum MATLAB session
The goal of this minimum session (also called starting and exiting sessions) is to learn the
first steps:
How to log on
Invoke MATLAB
Do a few simple calculations
How to quit MATLAB
Starting MATLAB
After logging into your account, you can enter MATLAB by double-clicking on the
MATLAB shortcut icon (MATLAB Version x) on your Windows desktop. When you start
MATLAB, a special window called the MATLAB desktop appears. The desktop is a
window that contains other windows. The major tools within or accessible from the desktop
are:
The Command Window
The Command History
The Workspace
The Current Directory
The Help Browser
The Start button
FIG: The graphical interface to the MATLAB workspace
When MATLAB is started for the first time, the screen looks like the one that shown
in the above Figure. This illustration also shows the default configuration of the MATLAB
desktop. You can customize the arrangement of tools and documents to suit your needs.
Now, we are interested in doing some simple calculations. We will assume that you have
sufficient understanding of your computer under which MATLAB is being run. You are now
faced with the MATLAB desktop on your computer, which contains the prompt (>>) in the
Command Window. Usually, there are 2 types of prompt:
Note: To simplify the notation, we will use this prompt, >>, as a standard prompt sign,
though our MATLAB version is for educational purpose.
Using MATLAB as a calculator
As an example of a simple interactive calculation, just type the expression you want to
evaluate. Lets start at the very beginning. For example, lets suppose you want to calculate
the expression, 1 + 2 3. You type it at the prompt command (>>) as follows,
>> 1+2*3
Ans = 7
You will have noticed that if you do not specify an output variable, MATLAB uses a default
variable ans, short for answer, to store the results of the current calculation. Note that the
variable ans is created (or overwritten, if it is already existed). To avoid this, you may assign
a value to a variable or output argument name. For example,
>> x = 1+2*3
x=7
will result in x being given the value 1 + 2 3 = 7. This variable name can always be used to
refer to the results of the previous computations. Therefore, computing 4x will result in
>> 4*x
Ans = 28.0000
Before we conclude this minimum session, Table gives the partial list of arithmetic
operators.
Quitting MATLAB
To end your MATLAB session,type quit in the Command Window, or select File Exit
MATLAB in the desktop main menu.
Getting started
After learning the minimum MATLAB session, we will now learn to use some additional
operations.
MATLAB variables are created with an assignment statement. The syntax of variable
assignment is variable name = a value (or an expression)
For example,
>> x = expression
where expression is a combination of numerical values, mathematical operators, variables,
and function calls. On other words, expression can involve:
Manual entry
Built-in functions
User-defined functions
Overwriting variable
Once a variable has been created, it can be reassigned. In addition, if you do not wish to see
the intermediate results, you can suppress the numerical output by putting a semicolon (;) at
the end of the line. Then the sequence of commands looks like this:
>> t = 5;
>> t = t+1
t=6
Error messages
If we enter an expression incorrectly, MATLAB will return an error message. For example,
in the following, we left out the multiplication sign, *, in the following expression
>> x = 10;
>> 5x
??? 5x
By adding parentheses, these two expressions give different results: 9 and 7. The order in
which MATLAB performs arithmetic operations is exactly that taught in high school algebra
courses. Exponentiations are done first, followed by multiplications and divisions, and finally
by additions and subtractions. However, the standard order of precedence of arithmetic
operations can be changed by inserting parentheses. For example, the result of 1+23 is quite
different than the similar expression with parentheses (1+2) 3.
The results are 7 and 9 respectively. Parentheses can always be used to overrule priority, and
their use is recommended in some complex expressions to avoid ambiguity. Therefore, to
make the evaluation of expressions unambiguous, MATLAB has established a series of rules.
The order in which the arithmetic operations are evaluated is given in Table 1.2. MATLAB
arithmetic operators obey the same precedence rules as those in most computer programs. For
operators of equal precedence, evaluation is from left to right.
MATLAB by default displays only 4 decimals in the result of the calculations, for example:
163:6667, as shown in above examples. However, MATLAB does numerical calculations in
double precision, which is 15 digits. The command format controls how the results of
computations are displayed. Here are some examples of the different formats together with
the resulting outputs.
>> x=-163.6667
>> x= -1.636666666666667e+002
There are several other formats. For more details, see the MATLAB documentation, or type
help format.
Note - Up to now, we have let MATLAB repeat everything that we enter at the
prompt (>>). Sometimes this is not quite useful, in particular when the output is pages
length. To prevent MATLAB from echoing what we type, simply enter a semicolon (;) at the
end of the command. For example,
>> x=-163.6667;
>> x
x = -163.6667
The contents of the workspace persist between the executions of separate commands.
Therefore, it is possible for the results of one problem to have an effect on the next one. To
avoid this possibility, it is a good idea to issue a clear command at the start of each new
independent calculation.
>> clear
The command clear or clear all removes all variables from the workspace. This frees up
system memory. In order to display a list of the variables currently in the memory, type
>> who
while, whos will give more details which include size, space allocation, and class of the
variables.
It is possible to keep track of everything done during a MATLAB session with the diary
command.
>> diary
The function diary is useful if you want to save a complete MATLAB session. They save all
input and output as they appear in the MATLAB window. When you want to stop the
recording, enter diary off. If you want to start recording again, enter diary on.
The file that is created is a simple text file. It can be opened by an editor or a word processing
program and edited to remove extraneous material, or to add your comments. You can use the
function type to view the diary file or you can edit in a text editor or print. This command is
useful, for example in the process of preparing a homework or lab submission.
It is possible to enter multiple statements per line. Use commas (,) or semicolons (;) to enter
more than one statement at once. Commas (,) allow multiple statements per line without
suppressing output.
b = 0.6570
c = 548.3170
Miscellaneous commands
To view the online documentation, select MATLAB Help from Help menu or MATLAB
Help directly in the Command Window. The preferred method is to use the Help Browser.
The Help Browser can be started by selecting the ? icon from the desktop toolbar. On the
other hand, information about any command is available by typing
Another way to get help is to use the look for command. The lookfor command differs
from the help command. The help commands search for an exact function name match, while
the look for command searches the quick summary information in each function for a match.
For example, suppose that we were looking for a function to take the inverse of a matrix.
Since MATLAB does not have a function named inverse, the command help inverse will
produce nothing. On the other hand, the command look for inverse will produce detailed
information, which includes the function of interest, inv.
Note - At this particular time of our study, it is important to emphasize one main point.
Because MATLAB is a huge program; it is impossible to cover all the details of each function
one by one. However, we will give you information how to get help. Here are some
examples:
This method provides high security for watermarks because of the encryption of watermark.
It also increases the embedding capacity of a watermark because of the use a dual watermark.
In this project, we adopted the spatial domain by using the least significant bit to hide
information in digital images.
Input:
Output:
The following feasibilities are considered for the project in order to ensure that the project is variable
and it does not have any major obstructions. Feasibility study encompasses the following things:
Technical Feasibility
Economic Feasibility
Operational Feasibility
In this phase, we study the feasibility of all proposed systems, and pick the
best feasible solution for the problem. The feasibility is studied based on three
main factors as follows.
Technical Feasibility
Languages : MATLAB
Economic Feasibility
Disadvantages:
Applications:
This application can be used when user wants to send a secret message
using an image file
Future Scope
Websites
en.wikipedia.org
http://ieeexplore.ieee.org/document/4664404/
https://arxiv.org/abs/1002.2414
https://scholar.google.co.in/scholar?q=dual+watermarking+scheme+with+
encryption&hl=en&as_sdt=0&as_vis=1&oi=scholart&sa=X&ved=0ahUKEwja
_I-R6Z3RAhUKKo8KHYiBDEUQgQMIGDAA
BOOKS
Dhananjay Theckedath
Gonsalves