Optimization Models in Steganography Using Metaheuristics Intelligent Systems Reference Library 187 Sarmah - The ebook with rich content is ready for you to download
Optimization Models in Steganography Using Metaheuristics Intelligent Systems Reference Library 187 Sarmah - The ebook with rich content is ready for you to download
com
https://textbookfull.com/product/optimization-models-in-
steganography-using-metaheuristics-intelligent-systems-
reference-library-187-sarmah/
OR CLICK HERE
DOWLOAD EBOOK
https://textbookfull.com/product/metaheuristics-and-optimization-in-
computer-and-electrical-engineering-navid-razmjooy/
textbookfull.com
https://textbookfull.com/product/human-behaviour-analysis-using-
intelligent-systems-d-jude-hemanth/
textbookfull.com
https://textbookfull.com/product/optimization-of-manufacturing-
systems-using-the-internet-of-things-yingfeng-zhang/
textbookfull.com
https://textbookfull.com/product/intelligent-computing-optimization-
pandian-vasant/
textbookfull.com
https://textbookfull.com/product/optimization-of-complex-systems-
theory-models-algorithms-and-applications-hoai-an-le-thi/
textbookfull.com
https://textbookfull.com/product/c-standard-library-quick-
reference-1st-edition-van-weert-peter/
textbookfull.com
Intelligent Systems Reference Library 187
Optimization
Models in
Steganography
Using
Metaheuristics
Intelligent Systems Reference Library
Volume 187
Series Editors
Janusz Kacprzyk, Polish Academy of Sciences, Warsaw, Poland
Lakhmi C. Jain, Faculty of Engineering and Information Technology, Centre for
Artificial Intelligence, University of Technology, Sydney, NSW, Australia;
KES International, Shoreham-by-Sea, UK;
Liverpool Hope University, Liverpool, UK
The aim of this series is to publish a Reference Library, including novel advances
and developments in all aspects of Intelligent Systems in an easily accessible and
well structured form. The series includes reference works, handbooks, compendia,
textbooks, well-structured monographs, dictionaries, and encyclopedias. It contains
well integrated knowledge and current information in the field of Intelligent
Systems. The series covers the theory, applications, and design methods of
Intelligent Systems. Virtually all disciplines such as engineering, computer science,
avionics, business, e-commerce, environment, healthcare, physics and life science
are included. The list of topics spans all the areas of modern intelligent systems
such as: Ambient intelligence, Computational intelligence, Social intelligence,
Computational neuroscience, Artificial life, Virtual society, Cognitive systems,
DNA and immunity-based systems, e-Learning and teaching, Human-centred
computing and Machine ethics, Intelligent control, Intelligent data analysis,
Knowledge-based paradigms, Knowledge management, Intelligent agents,
Intelligent decision making, Intelligent network security, Interactive entertainment,
Learning paradigms, Recommender systems, Robotics and Mechatronics including
human-machine teaming, Self-organizing and adaptive systems, Soft computing
including Neural systems, Fuzzy systems, Evolutionary computing and the Fusion
of these paradigms, Perception and Vision, Web intelligence and Multimedia.
** Indexing: The books of this series are submitted to ISI Web of Science,
SCOPUS, DBLP and Springerlink.
Ajith Abraham
Optimization Models
in Steganography Using
Metaheuristics
123
Dipti Kapoor Sarmah Anand J. Kulkarni
Symbiosis Institute of Technology Symbiosis Institute of Technology
Symbiosis International Symbiosis International
(Deemed University) (Deemed University)
Pune, Maharashtra, India Pune, Maharashtra, India
Ajith Abraham
Scientific Network for Innovation
and Research Excellence
Machine Intelligence Research Labs (MIR)
Auburn, WA, USA
This Springer imprint is published by the registered company Springer Nature Switzerland AG
The registered company address is: Gewerbestrasse 11, 6330 Cham, Switzerland
Preface
v
vi Preface
1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ............. 1
1.1 The Basics of Digital Image Processing (DIP) . . ............. 2
1.2 Objectives and Methods Used for Digital Image
Processing (DIP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2.1 Techniques Used in DIP . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.3 Current Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
1.4 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2 Cryptography and Digital Image Steganography Techniques . . . . . . 33
2.1 Introduction: Cryptography and Image Steganography . . . . . . . . . 33
2.1.1 Cryptographic Algorithms with Examples . . . . . . . . . . . . . 34
2.1.2 Image Steganographic Algorithms with Examples . . . . . . . 36
2.2 Image Compression and Steganography . . . . . . . . . . . . . . . . . . . . 38
2.2.1 Steps of JPEG Image Compression . . . . . . . . . . . . . . . . . . 39
2.3 Steganography Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
2.4 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
3 Heuristics and Metaheuristic Optimization Algorithms . . . . . . . . . .. 49
3.1 Heuristic Algorithms with Examples . . . . . . . . . . . . . . . . . . . . .. 49
3.2 Metaheuristic Algorithms with Examples . . . . . . . . . . . . . . . . . .. 51
3.2.1 Review of Socio-Inspired Optimization (SIO)
Algorithms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 51
3.2.2 Cohort Intelligence (CI) Optimization Algorithm . . . . . . .. 53
3.2.3 Multi Random Start Local Search (MRSLS) Optimization
Algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
3.3 Steganography Using Existing Optimization Algorithms . . . . . . . . 56
3.4 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
vii
viii Contents
xi
xii Abbreviations
In recent times, digital communication plays a critical role in the day to day life.
With the massive growth of the digital world, there is always a concern about infor-
mation security. In order to understand the security aspects, one needs to recognize
the importance of signal processing [12]. This is an area which deals with various
operations of signals such as storing, transmitting, and filtering, etc. A signal is a
well-known term used in electronics and telecommunications to carry information
for an event. It can be represented as a kind of variation or any observed change in the
occurrence, for example: a sound produced while speaking is referred to as speech
signals, the heart functioning can be recognized as waves represented by electro-
cardiograms, television and mobile generates a signal in communication field, the
two dimensional signals dealing with image referred to an image signal, etc. The
functioning of an image signal deals only with the various types of images and its
processing; where an image is required as input and output. This field is referred to as
Image Processing and is divided into two parts: (i) Analog Image Processing (AIP)
and (ii) Digital Image Processing (DIP). AIP works on two-dimensional analog or
electrical wave signals, for example, photographs, television images (broadcasting
through dish antenna), paintings, etc. It is considered a costly and time-consuming
technique as it is continuous in nature. Also, a signal distortion while processing
takes lots of time to rectify. On the other side, DIP deals with digital images that
work on a matrix of pixels (the combination of discrete values of 0’s and 1’s). It
is quite easy to manipulate digital images as there is a range of algorithms [113]
available for processing. DIP is considered one of the active research areas [124] and
helped researchers to solve different types of practical problems [45, 107, 109] where
visual observations are involved such as analyzing and manipulating the images.
The next Sect. 1.1 of this chapter explains the basics of DIP with practical
examples. The objectives and various algorithms used for processing and manip-
ulating images are elaborated in Sect. 1.2. The techniques employed for DIP are
also explained in Sect. 1.2.1. Further, the relevant practical and the latest real-world
applications are expressed in Sect. 1.3. The summary is mentioned in Sect. 1.4.
© The Editor(s) (if applicable) and The Author(s), under exclusive license to Springer 1
Nature Switzerland AG 2020
D. K. Sarmah et al., Optimization Models in Steganography Using Metaheuristics,
Intelligent Systems Reference Library 187,
https://doi.org/10.1007/978-3-030-42044-4_1
2 1 Introduction
Digital Image Processing (DIP) performs various operations on images for different
classes e.g. image enhancement [49], image analysis [65], image compression [75],
image transformation [59], etc. The image enhancement is used to manipulate the
image for extracting the required and important key features as identified by a user,
for example: adjusting contrast value for an image. The meaningful information is
automatically produced using different tools such as neural networks [117]; edge
detectors [13, 97], etc., are referred to as Image analysis. The common examples of
Image analysis are Image segmentation [65], motion detection [36], object detection
[51], etc. Image compression is also considered one of the important classes of DIP
for converting a source image file to a resultant image that consumes less memory
space. The image compression methods are explained in Sect. 1.2.1 in detail. The
next class of DIP is the image transformation in which a function is applied to
an input image of one domain to produce an output image of another domain, for
example, Cosine transforms [76] and Fourier transforms [9]. The different domains
used for DIP are also explained in the next Sect. 1.2.1. DIP is employed in a variety
of applications such as medical imaging [26], information security [85], remote
sensing [34], document processing [5], textiles [7], military [79], computer vision
[107], deep learning [118, 127], etc. Nowadays, its usage in practical applications
has vastly increased.
There is a need to understand the concept of images in order to execute DIP
techniques which are specifically applied to images. The images can be considered
as two-dimensional signals of continuous variables x and y, where x and y denote the
two coordinates in the horizontal and vertical axis respectively. The mathematical
function g(x, y) is used to calculate the image value at a particular location with
respect to the coordinates. Sampling is required in order to convert the image data
from continuous to a digital form. Further, the image needs to be transformed into a
two-dimensional matrix having some numbers which are quantized further to form
integer values from fine accurate values. To apply various operations on images, DIP
manipulates those fine accurate values which help to identify the color or gray level of
the image. The number of pixel values of the image identifies its resolution referred to
a term spatial resolution. The images having different spatial resolutions are depicted
in Fig. 1.1. The visibility of a low-resolution image of 640 × 480 pixels, for instance,
could be excellent while displaying on the internet. However, it might appear distorted
when printed or enlarged. High-Resolution images such as 1280 × 1024 pixels look
good most of the time in internet and print form as it contains sufficient pictorial
information such as fine picture details, color information, etc.
There are 28 = 256 gray levels considered for an 8 bit image. The brightness value
of a grayscale image referred to as pixel intensity, changes from 0 to 255, where 0
represents black and 255 represents white pixel value. Whereas, for a color image,
there are 3 values between 0 and 255 per pixel represented as RGB.
In the next section, the objectives and various techniques used for DIP is identified
and elaborated.
There is a crucial role of computer algorithms in DIP as they are employed to solve
various tasks such as digital image detection, image compression, image enhance-
ment, image estimation, etc., as mentioned in Sect. 1.1. The objective of using DIP is
divided into five categories: (i) Visualization process [68], (ii) Image sharpening and
restoration [70], (iii) Image retrieval [30], (iv) Pattern measurement [127] and (v)
Image recognition [104] as depicted in Fig. 1.2. The first category of visualization
process perceives and creates the images or visuals for effective communication. This
has been widely used from the ancient times in a form of cave paintings, technical
drawings, data plots, etc., to computer graphics, animations, etc. DIP improves the
visualization process in various applications i.e. scientific visualization [106], edu-
cational visualization [35], information visualization [16], visual communication
[100], visual analytics [20], etc.
The second category, Image sharpening, and restoration help to create a better
image by focussing on identified features, adjusting the contrast between bright and
dark regions, reducing noise, upgrading camera focus, decreasing motion blur, etc.
Image sharpening is explicitly used to improve image description such as borders,
corners, contrast, edge, intensity, etc. As the name suggests, the image restoration is
employed to re-establish the noisy image to its clean and original form by removing
Pattern measurement
Image recognition
4 1 Introduction
scratches, blur, etc. A few of the identified features of an image under this category
are depicted in Fig. 1.3. The grayscale image of ‘baby’ of size 256×256 is considered
to showcase a few of the features of the second category, which is implemented in
Matlab R2017. One can easily perceive the difference between different features as
shown in the figure.
Image retrieval, the third category utilizes various methods for browsing, seeking
and retrieving images from an image database [22], for example, Cvonline: Image
Type Images
The original image
Blur Image
Sharp image
Edges
50
100
150
200
250
50 100 150 200 250
Pattern
6 1 Introduction
learning and deep learning concepts. Also, the combination of these concepts helped
to solve a variety of real-time problems such as face recognition [50], categorizing
objects [31], identifying pedestrians [67], security surveillance [90], vehicles on the
road [88], etc. The well-known examples of image recognition systems are Tensor
Flow by Google [80], Deep Face by Facebook [39], Project Oxford by Microsoft
[110], License plate matching [87], Optical character recognition [28], etc. There
are certain challenges associated with image recognition in the real-world such as
viewpoint difference [46], scale difference [1], deformation and inter-class difference
[69], which are still open for researchers.
Generally, there are seven steps involved in DIP from accepting an image as an
input and generating the desired image output as depicted in Fig. 1.5. These seven
steps are: (a) Image acquisition [55], (b) Image formation [55], and pre-processing
[63], (c) Image compression [72], (d) Image segmentation [74], (e) Image repre-
sentation and description [40], (f) Image recognition [92], (g) Image interpretation
Input
Image acquisition
Image representation
and description
Image recognition
Image interpretation
Output
[52]. All the classes as discussed above and the techniques of DIP revolve around
these steps. In image acquisition, an input image needs to be acquired first before
applying any DIP technique. The second step prepares the input image data for the
next steps by applying certain operations i.e. reducing noise, highlighting important
features, geometrical transformations, etc. The main aim of image formation and
pre-processing is to improve the image data before passing to any DIP algorithms.
Image compression is a technique that helps to reduce the memory space required
for storing an image which in turn fastens its transmission rate for transferring from
sender to receiver. The capability of Image segmentation as the name suggests is used
to segment the image into different objects. In image representation, the image input
data is converted into a form required for further processing. It includes the color
information, structure of an image, the type of an image, e.g. bitmap image, etc. In
order to segment the objects in an image, image description is required which focuses
on extracting the similar key features as quantitative information to distinguish the
objects from one another.
Image recognition helps to locate persons, objects, animals, etc. in images. This
assigns a label to each object as per the stored information. In the last step, image
interpretation is required for analyzing the image output on the basis of color, size,
shape, texture, shadow, pattern, etc. The required information about the problem
input can be gathered from an information database as shown in Fig. 1.5.
There are several techniques involved in order to execute each step of Fig. 1.5.
(a) The first step of image acquisition captures an image by using different cameras
based on the applications. The cameras which are receptive to infrared radiation,
x-rays, and visual spectrum can be used for capturing infrared images, x-ray
images, and normal grayscale or color images respectively. The concept of
Image acquisition depends on three steps:
(i) An optical device to focus on energy
(ii) Reflection/Absorption of energy by elements of objects
(iii) A sensor to measure the amount of energy
Basically, this process depends on the hardware device i.e. a camera and a sensor
inside the camera. A sensor plays an important role in image acquisition as it converts
light into electrical charges. Mostly, the digital cameras use image sensors referred
to as charge-coupled device (CCD). Sometimes, the technology of complementary
metal-oxide-semiconductor (CMOS) can also be used as an image sensor. CCD
devices are mature enough to produce high quality and low noise images. However,
they consume lots of power in comparison to CMOS devices.
(b) Once the image data is acquired, the second step of image pre-processing is used
to prepare images for further analysis according to requirements of applications
8 1 Introduction
such as character recognition, texturing an image, etc. The intelligent image pre-
processing/enhancement techniques employ a certain process to apply different
filter operations on Image referred to as convolution. Also, it helps to construct
the problem outcome in an effective way. The image pre-processing techniques
could be divided into the following categories as depicted in Fig. 1.6.
(i) Spatial domain image filtering operations,
(ii) Frequency domain image filtering operations, and
(iii) Morphological processing.
Histogram equalisation
Histogram
processing
Histogram specification
Median filter
Mask
Maximum filter
processing
Minimum filter
Morphological
Opening and Closing
processing
Outlining
The spatial domain image filtering [63] operations are used to modify the intensity
value of the current pixel by observing its neighborhood pixel values which could be
further partitioned in Point processing [63], Histogram processing [17], and Mask
processing [63]. Point processing is considered one of the simplest transformations
in the spatial domain and categorized in methods such as Contrast Stretching [82],
Image Thresholding [63], Log Transformations [3], Power Law Transformation [3],
and Gray Level Slicing [84].
The contrast stretching referred to as normalization used to stretch the range of
intensity values to improve the contrast of an image, for example, digital x-ray images
in medical imaging as shown in Fig. 1.7, which shows the difference between low
contrast and high contrast.
The image thresholding is used to segment the objects into two classes i.e. fore-
ground and background. This is one of the important techniques employed for image
segmentation as depicted in Fig. 1.9. For example, Global image thresholding [63]
is done by Otsu’s method [119] as shown in Fig. 1.8. The grayscale image ‘baby’
having size 256 × 256 is considered for image thresholding in Matlab R2017.
The next category of log transformations is used to replace each pixel value of an
image by its logarithmic values to enhance the contrast of lower intensity values. It
helps to narrow the brighter range of pixel values and expands the dark pixels. One
can apply this transformation when there is a need to reduce the skewness distribution
of image for better interpretation as shown in Fig. 1.9. On the other hand, power-law
transformations are employed to highlight the objects from lighter to a darker image
and can be used by the expression: s = c × r γ where s and r are the pixel values
of the output and input image respectively, c is a constant value and γ is referred
to as gamma value. In order to reduce the computer monitor display problems for
varying intensity values, different gamma values are used in this transformation as
showcased in Fig. 1.10 for better understanding.
The gray level slicing also referred to as Intensity slicing and is one of the important
techniques for emphasizing a particular range of gray levels or intensity values of
an image by diminishing or by leaving the rest of the values. It could be used to
segment a gray level image based on the selected intensity values. Figure 1.11 could
be observed for better understanding where the same image of Baby of size 256×256
is used. The intensity level selected for gray level slicing is based on the following
expression where b(i, j) is referred to as image intensity values at ith and jth location
and the new value i.e. 255 is copied to c(i, j).
Here, all the image intensity values more than 150 are considered as a group and
replaced by 255 in c(i, j).
Histogram processing is another method under spatial domain filtering and is used
to visualize the tonal distribution of a digital image in a graphical way. It enables to
distribute the number of pixel values of the image in a graph based on its correspond-
ing intensity values. Histogram processing could be done by applying the methods
of Histogram Equalisation and Histogram Specification. The histogram equalization
is used to achieve normal distribution of pixel intensities in the output image which
Gamma=0.4 Gamma=0.8
Original Image
enables to improve the contrast of the image. This method adjusts the intensity val-
ues in the image histogram as shown in Fig. 1.12. On the other side, the histogram
specification method referred to as histogram matching is employed to remap the
pixel intensity values to match the existing histogram with a specified histogram of
a reference image to achieve the output image. The graphical representation of this
method is shown in Fig. 1.13 for more clarity.
12 1 Introduction
Median Filter
Max Filter
Min Filter
High Pass Filter
On the other side, the Lossy compression techniques discard the redundant part of
the image data and reduce the image quality to a certain extent with a high compres-
sion rate. For example JPEG, GIF image types, etc. There are various compression
techniques under Lossless and Lossy as depicted in Fig. 1.16. The Lossless com-
pression techniques are Run-length encoding [111], Entropy encoding [111], Dic-
tionary techniques [111], Area image compression [111], Predictive coding [111],
and Chain coding [111]. Run-length encoding accepts strings and reduces the redun-
dancy of the string into one unit. For example: If there is an image of red and
green stripes, and there are 15 red pixels and 12 green pixels. It should be written
1.2 Objectives and Methods Used for Digital Image Processing (DIP) 15
Original image
Original Image
Image Compression
Techniques
In Che l les ließ die Aebtissin Hegilwich, die Mutter der Kaiserin
Judith, 833 den Leib der Königin B a l te chi ldis erheben, worüber
bald nach 856 berichtet wurde[18]. Etwas später finden sich hin und
wieder Nachrichten über die Unthaten der Normannen in den
Sammlungen von Wundergeschichten und den Berichten über die
Irrfahrten der vor den gottlosen Feinden geflüchteten Reliquien. So
in des Abts Odo von G la nfeui l Geschichte der Uebertragung des h.
Ma ur us von Saint-Maur-sur-Loire nach Saint-Maur-des-Fossés bei
Paris[19] 868, welche wohl etwas, doch nicht viel mehr Glauben
verdienen mag, als desselben Odo angeblich nach einem
gleichzeitigen Werk des Faustus erneuertes Leben des h. Maurus[20],
und mit besonderer Lebhaftigkeit und Anschaulichkeit in den
Wundergeschichten vom heil. B e r tinu s[21].
Einige Verse, die zum Preise des Bischofs Azo von Ivre a um
876 verfaßt und im folgenden Jahrhundert einer Copie in Goldschrift
würdig erachtet wurden, sind fast nur wegen der äußerst
barbarischen Form bemerkenswerth[27].
Ob der Verfasser ein Geistlicher oder ein Laie war, geht aus
seinem Werke nicht mit Sicherheit hervor; wahrscheinlich ist er
Schulmeister in Ve ro na gewesen. Für die Schule ist auch dieses
Werk bestimmt, und ist deshalb, wie das des Abbo mit einer
erläuternden Glosse versehen, welche derselben Zeit angehört[32].
Darin tritt eine ausgebreitete Gelehrsamkeit, und auch Kenntniß der
griechischen Sprache, deutlicher als im Gedicht selbst hervor. Einige
geschichtliche Erklärungen werden gegeben, vorzüglich aber
grammatische, bei denen Servius stark benutzt ist. Bei der
Erläuterung der Mythen, welche in allen Commentaren des früheren
Mittelalters eine Hauptrolle spielt, übergeht der Glossator vieles, weil
das ja allgemein bekannt sei.
Wir begegnen hier einer Bildung, die durchaus nicht von der
Kirche herrührt, sondern fortgepflanzt wird durch jene einzeln
stehenden Grammatiker, deren Wirksamkeit in Italien niemals
aufgehört hat. Es ist W. v. Giesebrechts Verdienst, zum ersten Male
nachgewiesen zu haben, daß diese Schulen in Italien immer
fortbestanden haben und unter den Laien einen Grad der Bildung
verbreiteten, den man diesseit der Alpen nicht kannte. In Italien,
sagt Wipo im elften Jahrhundert, geht die ganze Jugend ordentlich
zur Schule und nur in Deutschland hält man es für überflüssig oder
unanständig, einen Knaben unterrichten zu lassen, wenn er nicht
zum geistlichen Stande bestimmt ist. Der italienische Laie las seinen
Vergil und Horaz, aber er schrieb keine Bücher, während die
Geistlichkeit theils in Rohheit versank, theils zu sehr in den
politischen Händeln befangen war, um an den wissenschaftlichen
Bestrebungen der Zeit Theil zu nehmen. Daraus erklärt sich der
Mangel litterarischer Productivität und die Dürftigkeit der
vorhandenen Litteratur, während andererseits bei jenem
Panegyristen und etwas später bei Liudprand plötzlich eine
überraschende Fülle klassischer Gelehrsamkeit und große
Gewandtheit im Ausdruck hervortraten, namentlich im Versemachen,
welches ein Hauptgegenstand der Schulbildung war. Denn einzelne
vom geistlichen Stande naschten auch von jener verbotenen Frucht;
im allgemeinen aber stand der Clerus im Gegensatz zu diesem
Treiben, in dem er nicht mit Unrecht ein heidnisches Element
erkannte. Die Wissenschaft war hier nicht in den Dienst der Kirche
genommen; sie behauptete einen unabhängigen Standpunkt, war
aber fast ausschließlich formaler Natur und darum wesentlich
unproductiv.
Our website is not just a platform for buying books, but a bridge
connecting readers to the timeless values of culture and wisdom. With
an elegant, user-friendly interface and an intelligent search system,
we are committed to providing a quick and convenient shopping
experience. Additionally, our special promotions and home delivery
services ensure that you save time and fully enjoy the joy of reading.
textbookfull.com