Professional Documents
Culture Documents
DEEP LEARNING
Submitted by
PAVITHRAN T (1921172)
SURIYA M (1921204)
VIDHYAASAGAR G (1921212)
of
BACHELOR OF TECHNOLOGY
in
INFORMATION TECHNOLOGY
NOVEMBER 2022
K.S. RANGASAMY COLLEGE OF TECHNOLOGY
TIRUCHENGODE - 637 215
BONAFIDE CERTIFICATE
Certified that this project report titled “SKIN DISEASE DETECTION BASED
ON IMAGE PROCESSING TECHNIQUE” is the bonafide work of PAVITHRAN T
(1921172), SURIYA M (1921204) and VIDHYAASAGAR (1921212) who carried out the
project under my supervision. Certified further, that to the best of my knowledge the work
reported herein does not form part of any other project report or dissertation on the basis of
which a degree or award was conferred on an earlier occasion on this or any other
candidate.
SIGNATURE SIGNATURE
DR. C. NALLUSAMY M.E.,Ph.D.,
DR. R. POONKUZHALI M.E.,Ph.D.,
SUPERVISOR
HEAD OF THE DEPARTMENT
Professor
Professor
Department of Information Technology
Department of Information Technology
K.S. Rangasamy College of Technology
K.S. Rangasamy College of Technology
Tiruchengode - 637 215
Tiruchengode - 637 215
Signature
____________________
Pavithran T
____________________
Suriya M
____________________
Vidhyaasagar G
Place: Tiruchengode
Date:
ACKNOWLEDGEMENT
We are highly indebted to provide our heart full thanks to our supervisor
Dr. C. NALLUSAMY, M.E., Ph.D., Professor for his valuable ideas,
encouragement and supportive guidance throughout the project.
ABSTRACT
LIST OF TABLES
LIST OF FIGURES
1 INTRODUCTION
1.3 OBJECTIVE
2 LITERATURE SURVEY
3.1.1 DISADVANTAGES
3.2.1 CONVOLUTIONAL
NEURAL NETWORK
3.2.4 ADVANTAGES
4 SYSTEM REQUIREMENTS
4.3.5 ANDROID
5 SYSTEM DESIGN
5.1 GENERAL
5.2.5 COLLABRATION
DIAGRAM
6 SYSTEM IMPLEMENTATION
6.1 MODULES
6.1.1 MODULES
DESCRIPTION
6.1.3 LOGIN
7 SYSTEM TESTING
7.1.3 FEATURES TO BE
TESTED
8.1 CONCLUSION
9 APPENDICES
10 REFERENCES
LIST OF FIGURES
FIGURE TITLE PAGE
NO. NO.
5.1 ARCHITECTURE
DIAGRAM
5.2 USECASE DIAGRAM
5.3 SEQUENCE DIAGRAM
FOR REGISTRATION
5.4 CLASS DIAGRAM
5.5 SOLUTION FOR DISEASE
ABSTRACT
The increasing of mobile applications makes it easier for humans to get up to date
information. Users are searching for an answer from the virtual world, including health
problems. This system discusses the mobile application of skin disease detection based on
the image. The system requires dataset of unhealthy skin images. This system designed to
detect the skin disease from unhealthy images. preprocessing of the images will be
compared by finding the difference in threshold value. The difference in threshold value
will be put forward in the decision-making against suspected unhealthy skin that being
detected. The app was built with Android Studio with an OpenCV library for implementing
the CNN (Convolutional Neural Network). Android-based mobile applications have been
successfully created, and it is able to detect the skin disease image. However, base on
detection, it is providing a suggestion of the disease.
CHAPTER 1
INTRODUCTION
Skin Disease is defined as the uncontrolled growth of cells in the skin. The malignant tumors are
formed due to spreading of skin cells rapidly. Skin Disease can be mainly categorized as three
types such as Basal cell carcinoma (BCC), Melanoma, and Squamous cell carcinoma (SCC). The
non melanomas were BCC and SCC. The Skin Disease Foundation (SCF) recently reported that
melanoma is the most serious form of skin Disease because it is more likely to spread to other
parts of the body. Once melanoma spreads beyond the skin to other parts of the body, it becomes
hard to treat. However, early detection saves lives. Research shows that when melanoma is
recognized and treated in its early stages, it is nearly 100% curable. According to Indian Disease
Society 2015, it has been reported that the skin Disease rates in India was higher as compared to
other countries such as Canada, the US and the UK. It has been reported that nearly 125,693 new
Disease cases are spotted but it was higher than 45,395 people are anticipated to death from
Disease. Many people got treatment for melanoma but some are dying in the year. Melanoma is
one of the deadly diseases among skin Disease. Melanoma detection can be done by
dermatological screening and biopsy tests which are time consuming and expensive that requires
experts from medical field. Due to cost of dermatologist to screen every patient, an automated
system is needed for melanoma detection so that death rates can be minimized if detected early.
Other skin diseases are eczema and impetigo are also detected in this proposed work. Eczema is
one of the most widely known skin diseases, affecting about 10-20% of infants and 3% of adults
and children. It is defined by itchiness combined with crusting, scaling and lichenification of skin
often in reddish patches. Impetigo is a highly contagious skin condition. It usually occurs on the
face, neck, and hands of young children and infants. Children who wear diapers also tend to get it
around the diaper area.
Canny edge detection is a technique to extract useful structural information from different vision
objects and dramatically reduce the amount of data to be processed. It has been widely applied in
various computer vision systems. Canny has found that the requirements for the application
of edge detection on diverse vision systems are relatively similar. Thus, an edge detection solution
to address these requirements can be implemented in a wide range of situations. The general
criteria for edge detection include:
1. Detection of edge with low error rate, which means that the detection should accurately
catch as many edges shown in the image as possible
2. The edge point detected from the operator should accurately localize on the center of the
edge.
3. A given edge in the image should only be marked once, and where possible, image noise
should not create false edges.
To satisfy these requirements Canny used the calculus of variations – a technique which finds
the function which optimizes a given functional. The optimal function in Canny's detector is
described by the sum of four exponential terms, but it can be approximated by the
first derivative of a Gaussian.
Among the edge detection methods developed so far, Canny edge detection algorithm is one of the
most strictly defined methods that provides good and reliable detection. Owing to its optimality to
meet with the three criteria for edge detection and the simplicity of process for implementation, it
became one of the most popular algorithms for edge detection.
o The primary disadvantage of using Canny edge detector is that it consumes a lot of time
due to its complex computation.
o It is difficult to implement to reach the real-time response.
1.3 OBJECTIVE
This system discusses the mobile application of skin disease detection based on the
image. This system designed to detect the skin disease from unhealthy images.
CHAPTER 2
LITERATURE SURVEY
This paper reports an investigation into the application of a multilayer perceptron to the diagnosis
of skin melanoma. The lesions are classified as either benign or malignant based on information
relating to the shape of their outline. The results obtained by the standard back-propagation
learning algorithm are compared to those attained by various dynamic network design strategies.
These demonstrate that the results attained with the standard multilayer perceptron can be
improved upon by modifying the network architecture during the training process.
3. Nikhil J. Dhinagar ; Mehmet Celenk ; Mehmet A. Akinlar, Noninvasive
Screening and Discrimination of Skin Images for Early Melanoma
Detection”
This paper describes a method that helps in detection of sun tanned or preDiseaseous skin using
gross-overall image segmentation and boundary tracing to localize three layers in human skin
tissue. Skin Disease can become highly invasive and lethal if not treated at the earliest possible
stage. The undertaken research herein aims to eliminate the need for a patient to undergo biopsy as
a means of basic diagnosis for melanoma. When compared to the normal skin, the structure of
abnormal skin has an irregular outer epidermal layer as well as the inner dermal layer. The current
trend of non-invasive diagnosis analyses the entire mole. This paper detects skin Disease by
processing the cross-section of the skin sample. There are three different skin samples considered
to this end; namely, normal skin, sun tanned skin and preDiseaseous skin. In this work, optimal
histogram-based segmentation and boundary tracing are used as a means of classifying a sample
tissue. Experimental results have shown that the Otsu thresholding is highly effective to assist
separating the three layers of the skin sample leading to a highly robust discrimination of normal,
sun tanned and melanoma type skin samples
Nowadays it is the era of intelligent machine. With the advancement of artificial intelligent,
machine learning and deep learning, machines have started to impersonate as human.
Conversational software agents activated by natural language processing is known as chatbot, are
an excellent example of such machine. This paper presents a survey on existing chatbots and
techniques applied into it. It discusses the similarities, differences and limitations of the existing
chatbots. We compared 11 most popular chatbot application systems along with functionalities and
technical specifications. Research showed that nearly 75% of customers have experienced poor
customer service and generation of meaningful, long and informative responses remains a
challenging task. In the past, methods for developing chatbots have relied on hand-written rules
and templates. With the rise of deep learning these models were quickly replaced by end-to-end
neural networks. More specifically, Deep Neural Networks is a powerful generative-based model to
solve the conversational response generation problems. This paper conducted an in-depth survey of
recent literature, examining over 70 publications related to chatbots published in the last 5 years.
Based on literature review, this study made a comparison from selected papers according to method
adopted. This paper also presented why current chatbot models fails to take into account when
generating responses and how this affects the quality conversation.
SYSTEM ANALYSIS
3.1EXISTING SYSTEM
The Local Binary Patterns algorithm has its roots in 2D texture analysis. The basic idea of
this algorithm is to summarize the local structure in an image by comparing each pixel with
its neighborhood. Take a pixel as center and threshold against its neighbors. If the intensity
of the center pixel is greater-equal its neighbor, then denote it with 1 and 0 if not end up
with a binary number for each pixel. With 8 surrounding pixels will end up with 2^8
possible combinations, which are called Local Binary Patterns or sometimes it is
abbreviated as LBP codes. Firstly, we are converting the input color image to grayscale,
since LBP works on grayscale images. For each pixel in the grayscale image, a
neighborhood is selected around the current pixel and then we calculate the LBP value for
the pixel using the neighborhood. After calculating the LBP value of the current pixel, we
update the corresponding pixel location in the LBP mask (It is of same height and width as
the input image.) with the LBP value.
The Existing system analyzes the skin image healthy or unhealthy only.
The Existing system used image comparison and find mean value of image
only.
The Existing system they are providing result of affected image only.
DISADVANTAGES
15
3.2 PROPOSED SYSTEM
The proposed system has segmentation, feature extraction and classification process with
suitable algorithms. The skin disease images are first segmented, then from the segmented images
features are extracted using SVM algorithm and classification is done using support vector
machine classifier based along the features extracted.
Convolutional Neural Network
CNNs are the most popular algorithm for classification in machine learning algorithms.
Their mathematical background is quintessential in building the foundational block for the
geometrical distinction between the two classes. We will see how Convolutional Neural Network
work by observing their implementation in Python and finally, we will look at some of the
important applications.
What is CNN
Convolutional Neural Network are a type of supervised machine learning algorithm that
provides analysis of data for classification and regression analysis. While they can be used for
regression, CNNis mostly used for classification. We carry out plotting in the n-dimensional space.
Value of each feature is also the value of the specific coordinate. Then, we find the ideal
hyperplane that differentiates between the two classes.
These support vectors are the coordinate representations of individual observation. It is a frontier
method for segregating the two classes.
The basic principle behind the working of Convolutional Neural Network is simple –
Create a hyperplane that separates the dataset into classes. Let us start with a sample problem.
Suppose that for a given dataset, you have to classify red triangles from blue circles. Your goal is
to create a line that classifies the data into two classes, creating a distinction between red triangles
and blue circles.
16
ADVANTAGES
The proposed system provides detect the disease and then disease name and also
find the stage of disease using svm (e.g. Benign or malignant).
CNN works relatively well when there is clear margin of separation between classes.
CNN is effective in cases where number of dimensions is greater than the number of
samples.
17
CHAPTER 4
SYSTEM REQUIREMENTS
18
4.3 SOFTWARE DESCRIPTION
ANDROID STUDIO:
Android Studio is created by an Open Source community and is used in several different
areas, e.g. as a development environment for Java or Android applications. Android Studio's
roots go back to 2001. The Android Studio Open Source community has over 200 Open Source
projects covering different aspects of software development. The Android Studio projects are
governed by the Android Studio Foundation. The Android Studio Foundation is a non-profit,
member supported corporation that hosts the Android Studio Open Source projects and helps to
cultivate both an Open Source community and an ecosystem of complementary products and
services. The Android Studio IDE can be extended with additional software components.
Android Studio calls these software components plug-ins. Several Open Source projects and
companies have extended the Android Studio IDE. It is also possible to use Android Studio as a
basis for creating general purpose applications. These applications are known as Android Studio
Rich Client Platform (Android Studio RCP) applications.
Android had a worldwide smartphone market share of 75% during the third quarter of
2012, with 500 million devices activated in total and 1.3 million activations per day. The operating
system's success has made it a target for patent litigation as part of the so-called "smartphone wars"
between technology companies.
Applications are developed in the Java language using the Android software development
kit (SDK). The SDK includes a comprehensive set of development tools, including a debugger,
software libraries, a handset emulator based on QEMU, documentation, sample code, and tutorials.
The officially supported integrated development environment (IDE) is Android Studio using the
Android Development Tools (ADT) plugin. Other development tools are available, including a
Native Development Kit for applications or extensions in C or C++, Google App Inventor, a visual
environment for novice programmers, and various cross platform mobile web applications
frameworks.
19
Android Studio Public License
The Android Studio Foundation also validates that source code contributed to Android Studio
projects is free of Intellectual property (IP) issues. This process is known as IP cleansing.
The permissive EPL and the IP cleansing effort of the Android Studio Foundation makes
reusing the source code of Android Studio projects attractive.
Android Emulator
The Android Development Tools (ADT) include an emulator to run an Android system. The
emulator behaves like a real Android device (in most cases) and allows you to test your
application without having a real device.
You can configure the version of the Android system you would like to run, the size of the SD
card, the screen resolution and other relevant settings. You can define several of them with
different configurations.
These devices are called Android Virtual Device and you can start several in parallel.
20
Android Ecllipse:
Android is open source and Google releases the code under the Apache License.[15] This
open source code and permissive licensing allows the software to be freely modified and
distributed by device manufacturers, wireless carriers and enthusiast developers. Additionally,
Android has a large community of developers writing applications ("apps") that extend the
functionality of devices, written primarily in a customized version of the Java programming
language. In October 2012, there were approximately 700,000 apps available for Android, and the
estimated number of applications downloaded from Google Play, Android's primary app store, was
25 billion.
21
Android
These factors have allowed Android to become the world's most widely used smartphone
platform, overtaking Symbian in the fourth quarter of 2010, and the software of choice for
technology companies who require a low-cost, customizable, lightweight operating system for high
tech devices without developing one from scratch. As a result, despite being primarily designed for
phones and tablets, it has seen additional applications on televisions, games consoles, digital
cameras and other electronics. Android's open nature has further encouraged a large community of
developers and enthusiasts to use the open source code as a foundation for community-driven
projects, which add new features for advanced users or bring Android to devices which were
officially released running other operating systems.
Android had a worldwide smartphone market share of 75% during the third quarter of 2012,
with 500 million devices activated in total and 1.3 million activations per day. The operating
system's success has made it a target for patent litigation as part of the so-called "smartphone wars"
between technology companies.
Android is a software platform and operating system for mobile devices, based on the
Linux kernel, developed by Google and later the Open Handset Alliance. It allows developers to
write managed code in the Java language, controlling the device via Google-developed Java
libraries. Applications written in C and other languages can be compiled to ARM native code and
run, but this development path is not officially supported by Google. Google released most of the
Android code under the Apache license, a free-software and open source license.
Open Handset Alliance, is a consortium of several companies which include Google,
HTC, Intel, Motorola, Qualcomm, T-Mobile, Sprint Nextel and NVIDIA, ... These companies
which aim to develop technologies that will significantly lower the cost of developing and
distributing mobile devices and services. The Android platform is the first step in this direction -- a
fully integrated mobile "software stack" that consists of an operating system, middleware, user-
friendly interface and applications.
File Manager is a very visually fresh way of managing data on Android device. The
navigation vaguely reminds me of customised CRM view once used. It defaults its Home
Directory to external memory card but this can be changed through the settings and can also
change the theme to Light or Dark.
22
The software, like a lot of the others described here, can do a wealth of file manipulation,
searches, sorting, creation of folders etc. The settings are clear and easy to navigate though the
front-end may take a while to get used to if not a regular Android app user. Apart from the local
file management, can also scan your network and manage files that way too.
There is a very nice tool in this app called Storage Analysis. It shows, at the top of the
screen, device and any external storage, total amount of memory and available memory.
Underneath it lists all folders, their size, and the percentage of storage it uses. Not really useful
suppose if memory size doesn't interest , but useful and careful about how big an app really is when it
creates its installation folders.
Applications are developed in the Java language using the Android software development
kit (SDK). The SDK includes a comprehensive set of development tools, including a debugger,
software libraries, a handset emulator based on QEMU, documentation, sample code, and tutorials.
The officially supported integrated development environment (IDE) is Android Studio using the
Android Development Tools (ADT) plugin. Other development tools are available, including a
Native Development Kit for applications or extensions in C or C++, Google App Inventor, a visual
environment for novice programmers, and various cross platform mobile web applications
frameworks.
23
OPERATING SYSTEM
Android uses Linux for its device drivers, memory management, process management, and
networking. However you will never be programming to this layer directly.
The next level up contains the Android native libraries. They are all written in C/C++ internally, but
you’ll be calling them through Java interfaces. In this layer you can find the Surface Manager (for
compositing windows), 2D and 3D graphics, Media codec (MPEG-4, H.264, MP3, etc.), the SQL database
(SQLite), and a native web browser engine (WebKit).
Next is the Android runtime, including the Dalvik Virtual Machine. Dalvik runs dex files, which are
converted at compile time from standard class and jar files. Dex files are more compact and efficient than
class files, an important consideration for the limited memory and battery powered devices that Android
targets.
24
The core Java libraries are also part of the Android runtime. They are written in Java, as is
everything above this layer. Here, Android provides a substantial subset of the Java 5 Standard Edition
packages, including Collections, I/O, and so forth.
You can also set the Enabled flag for Snapshots. This will save the state of the emulator and
will let it start much faster. Unfortunately currently native GPU rendering and Snapshots do not
work together.
25
Android devices do not have to have hardware button. If you want to create such an AVD, add
theHardware Back/Home keys property to the device configuration and set it to false.
26
Enter the values similar to the following screenshot.
27
Select the Enabled for Snapshots box. This will make the second start of the virtual device
much faster. Afterwards press the Create AVD button. This will create the AVD configuration
and display it under theVirtual devices.
28
To test if your setup is correct, select your your new entry and press the Start button
After some time your AVD starts. Do not interrupt this startup process, as this might corrupt the
AVD.
After the AVD started, you can use the AVD via the mouse and via the virtual keyboard of the
emulator.
29
Android 4.2.3 builds on the performance improvements already included in Jelly Bean — vsync
timing, triple buffering, reduced touch latency, CPU input boost, and hardware-accelerated 2D
rendering — and adds new optimizations that make Android even faster.
For a graphics performance boost, the hardware-accelerated 2D renderer now optimizes the stream
of drawing commands, transforming it into a more efficient GPU format by rearranging and
merging draw operations. For multithreaded processing, the renderer can also now use
multithreading across multiple CPU cores to perform certain tasks.
Android 4.2.3 also improves rendering for shapes and text. Shapes such as circles and rounded
rectangles are now rendered at higher quality in a more efficient manner. Optimizations for text
include increased performance when using multiple fonts or complex glyph sets (CJK), higher
rendering quality when scaling text, and faster rendering of drop shadows.
Improved window buffer allocation results in a faster image buffer allocation for your apps,
reducing the time taken to start rendering when you create a window.
For highest-performance graphics, Android 4.3 introduces support for OpenGL ES 3.0 and makes
it accessible to apps through both framework and native APIs. On supported devices, the hardware
accelerated 2D rendering engine takes advantage of OpenGL ES 3.0 to optimize texture
management and increase gradient rendering fidelity.
30
CHAPTER 5
SYSTEM DESIGN
5.1 GENERAL
31
5.2.2 USECASE DIAGRAM
login
register
user
Detect disease
32
5.2.3 SEQUENCE DIAGRAM
user database
register
login
Detect disease
33
5.2.4 CLASS DIAGRAM
login1 register1
username username
password gmail
password
Disease detection
Disease image input
Detect disease
Solution for disease
34
5.2.5 COLLABRATION DIAGRAM
1: register
2: login
3.input disease image
4: detect disease
user databas
e
5: solution for disease
35
CHAPTER 6
SYSTEM IMPLEMENTATION
6.1 MODULES
User Register
User Login
Choose image or take picture
Detect diseases
Solution for disease
MODULES DESCRIPTION
USER REGISTER
This is the first user interface of this system, using this module user can
register their details for the purpose of authentication. Once they register using
this module, can easily enter into the system
LOGIN
This is the second user interface of this system, the main purpose of this
module to identify the user who access this system and also authenticate the
user.
This is the third module of this system, Purpose off this module to
choose the disease from gallery or take picture through camera
36
DETECT DISEASES
This is the fourth module of the system, it is show the result of the
disease
This is the final module of this system, it is show the solution for the
detected disease
37
CHAPTER 7
SYSTEM TESTING
Unit testing involves the design of test cases that validate that the internal
program logic is functioning properly, and that program inputs produce valid
outputs. All decision branches and internal code flow should be validated. It is the
testing of individual software units of the application. It is done after the
completion of an individual unit before integration. This is a structural testing, that
relies on knowledge of its construction and is invasive. Unit tests perform basic
tests at component level and test a specific business process, application, and/or
System configuration. Unit tests ensure that each unique path of a business process
performs accurately to the documented specifications and contains clearly defined
inputs and expected results. Unit testing is usually conducted as part of a combined
code and test phase of the software lifecycle, although it is not uncommon for
coding and unit testing to be conducted as two distinct phases.
38
TEST STRATEGY AND APPROACH
TEST OBJECTIVES
FEATURES TO BE TESTED
FUNCTIONAL TEST
39
Functional testing is centered on the following items:
SYSTEM TEST
System testing ensures that the entire integrated software system meets
requirements. It tests a configuration to ensure known and predicate results. An
Example of system testing is the configuration oriented system integration test.
System testing is based on process descriptions and flow emphasizing pre-driven
Process links and integration points.
40
CHAPTER 8
8.1 CONCLUSION
The proposed work shows the improvement in identifying the skin disease at
different stages using image processing techniques based on active contour
segmentation, Local binary Pattern and CNN classifier. The prime concern of the
proposed work is to extract the skin image features i.e. area, perimeter and mean
(R), mean (G), mean (B) and texture features. This enables in analyzing the skin
disease spot analysis and guides for the direction of spread of the disease. The
features are normalized with respect to skin image size so that the features remain
same if the image is varied in respect of it attributes. The main purpose is that the
features should not vary for the same image at different orientation, size and
location.
This further decreases the buffer time before the patient can reach the dermatologist. It
can further be improved by providing precautions and immediate relief measures which the patient
can follow so as to take care not to aggravate the disease. The proposed prototype can be modified
to detect Basal and Squamous Skin Disease Stages.
41
CHAPTER 9
APPENDICES
LOGIN PAGE
42
43
44
REFERENCES
[1] Delia-Maria Filimon and Adriana Albu ,“Skin Diseases Diagnosis Using
Artificial Neural
Networks’’,9th IEEE International Symposium on Applied Computational
Intelligence and Informatics, May 15-17, 2014 , Timisoara, Romania.
[2] M. Shamsul Arifini, M. Golam Kibria, Adnan Firoze, M.Ashraful Amini and
Hong Yan, “Dermatological Disease Diagnosis Using Color-Skin Images”,
Proceedings of the 2012 International Conference on Machine Learning
and Cybernetics, Xian, 15-17 July, 2012.
[3] Dr.J.Abdul Jaleel ,Sibi Salim and Aswin R.B. “Artificial Neural
Network Based Detection of Skin Disease”, International Journal of
Advanced Research in Electrical, Electronics and Instrumentation
Engineering,Vol. 1, Issue 3, September 2012.
46