3.1.2.1 Gaussian Blur
According to the documentation of the OpenCV.org, the blur is obtained by convoluting the image through a given filter, being very useful for removing undesirable noises and edges.
1. ImageCV[index] = cv2.addWeighted( 2. ImageCV[index],4,cv2.GaussianBlur(ImageCV[index],(0,0), 400/30),-4, 128)
The gaussian blur effect occurs by Source Code 1 and is useful for better reading of the image by the application, as it focuses on the retinal blood vessels. The problem is that in the dataset used for this work, there is a great variation of technological conditions in devices used to take the photo. This implies most images having camera artifacts and high illumination at the edges, details that the app may confuse with bleeding and leaks.
As can be seen in Figure 1 in an image with ideal conditions, the Gaussian effect is extremely advantageous to have a better analysis of blood vessels and general retinal condition.
Figure 2 - Image with camera artifacts (in red) present on the dataset
Figure 2 shows an image of the training dataset. A large number of artifacts and adverse lighting conditions are observed, which may be confused with some retinal alteration.
3.1.2.2 CLAHE Method
CLAHE is an adaptive equalization preprocessing method of histogram. According to the OpenCV documentation, this technique divides the image into frames called tiles that are equalized.
...Histogram would confine to a small region (unless there is noise). If noise is there, it will be amplified. To avoid this, contrast limiting is applied. If any histogram bin is above the specified contrast limit (by default 40 in OpenCV), those pixels are clipped and distributed uniformly to other bins before applying histogram equalization. After equalization, to remove artifacts in tile borders, bilinear interpolation is applied. (docs.opencv.org).
Figure 3 - Image processed with CLAHE
As seen in Figure 3, the CLAHE method really improves the contrast and visibility of retinal blood vessels, but just as the Gaussian effect, this method does not completely remove artifacts from the image.
In the final version of this project, therefore, no processing techniques were used.
3.1.3 Inclusion of images in the application
To include the training and validation images in the neural network, a file called train.py was created, which was responsible for the entire training. A method called ReadImages() has been created, which as its name suggests, reads the images that are in the training and validation directory, whose are passed as a parameter through the constants TRAIN_DIR and TEST_DIR, manipulates them and returns them in list form together with his class.
Both in the constant TRAIN_DIR and in the TEST_DIR there are two other subdirectories which contain the images to be used in the training process, which are nonPdr and pdr. These folders indicate the class belonging to the images that are inside.
As set out in Source Code 2, the ReadImages() method creates two empty lists, which will later be fed with images and their classes. After storing the subdirectories in the FolderList variable, a loop was created that traverses all images by directory.
With the OpenCV library, the path of the image through which the loop is passing is read by the application using the cv2.imread method and then readjusted to the size of 224x224 px. The read and resized image is included in the ImageCV list, which will be returned by the method for all your calls, as well as LabelList, which the class of each image traversed by the loop is included.
For the method call 4 variables are created, one to store the images and one to store the labels for both testing and validation.
3.2 Neural Network Models
The architecture of a neural network consists of several layers with its neurons, such as input layers, convolution, dense, polling layers, etc...
One feature of CNN networks applied to images is that the first layers are responsible for describing borders, intermediaries describe shapes, and the endings describe higher-level patterns, also known as semantic layers. Thus, when the database differs from that used in the training stage of the network (i.e., there is a need for fine tuning), the initial and intermediate layers usually bring better results for recognition, as they select more general characteristics (SANTOS et al, 2018).
Figure 4 – CNN Operation
Figure 4 exemplifies the CNN(Convolutional Neural Network) operation, in which the image is 'disassembled' and each of its pixels pass through the layers of the network, being converted to RGB if the image is colored (figure 5), as is the case in this project, or in binary value if the image is grayscale (Stamford University).
Figure 5 - CNN Read Representation of a Color Image
According to Keras documentation, the user can create their own neural model through two ways that are: Sequential Model and the Functional API.
3.2.1 Sequential Model
The first attempt was to use the Sequential model. In this approach the user includes the layers of the model linearly.
In source code 3 a standard convolutional model is specified using:
• A MaxPooling layer;
• A Flatten layer;
• Two dense layers, one output having 1 neuron and sigmoid activation,
After adding the layers, the model.compile() method is called that according to keras documentation is responsible for "configuring the learning process", containing three arguments: An optimizer, a loss function, and a metric. In this example, rmsprop was used as an optimizer, binary_crossentropy as a loss function because the application has a binary scope (nonPdr or pdr), and for measurement the model accuracy was selected.
Once the model is created and compiled, it's time to train it with the model.fit method(), which receives the list of images, classes, the amount of times that the application will run, and the number of examples per epoch.
3.2.2 Functional API
The Functional API is a way to create more flexible models than Sequential: it can manipulate models with nonlinear topology, models with shared layers, and multiinput or output models (TensorFlow, 2018). In this model each layer is connected to the other, usually the previous one. The following template was created using Functional API:
In source code 4, some changes were made regarding the sequential model, such as increased network, inclusion of the Dropout layer, decreased learning rate to 0.001, and the use of the Adam optimizer instead of rmsprop.
3.2.3 Overfitting
As stated by Cogswell et al (2016), overfitting is the situation when, in a neural model, it has a very high performance during training, however, a terrible accuracy in external data. Problem that is very susceptible when you have few examples of training, but can also occur on larger datasets depending on the situation.
According to Ying (2019), overfitting is "a fundamental issue in Machine learning, which prevents us from generalizing the models accordingly to adjust well the data observed in the training dataset, as well as in examples not seen by the application (test dataset)". Overfitting occurs due to the presence of noise, the limited size of the training dataset, and the complexity of the classifiers (YING, X. 2019). The author specifies some strategies to avoid overfitting in the neural network, including network reduction in order to reduce its complexity, the training dataset expansion, Early-Stopping, and regularization with Dropout layers. As claimed by Lemley et al (2017), the Data Augmentation is also a viable practice.
3.2.3.1 Network Reduction
On the report of Ying (2019) eliminating some 'branches' of the network is a significant theory used to reduce the complexity of classification by removing less significant or irrelevant data and avoiding overfitting. Especially on smaller datasets, a leaner network helps contain the loss.
This practice was carried out in this project, eliminating dense layers and reducing the network shape.
3.2.3.2 Dataset Expansion
In machine learning, the algorithm is not the only key that affects the final classification accuracy. Its performance can be significantly affected by the quantity and quality of the training dataset, especially when it comes to supervised learning (YING, 2019).
For the author, model training is a process of adjusting its parameters, because well-adjusted parameters strike a good balance between the accuracy and regularity of the training and then inhibit overfitting, and to adjust these parameters, the model needs enough samples for learning (YING, 2019).
In this project, the database used has 1400 images for training, and following the author's logic, if it could get more examples, the greater accuracy and less overfitting.
3.2.3.3 Early Stopping
Raskutti et al (2014) explains early stopping as being "... a form of regularization based on the choice of when to stop running an iterative algorithm." The author explains that at each step of an iterative algorithm will reduce bias, but will increase variation, so that early stopping ensures that the variation is not too high, that is, when greater error variation in the processing of the time is detected, the algorithm stops executing.
In Keras this practice can be performed as follows (source code 5):
The loss function was used to be the method monitor (source code 5), so every time the loss value increases (signaling overfitting), the application terminates its workout. The variable 'es' is later passed with argument of the method fit_generator.
3.2.3.4 Dropout
According to Ying (2019) Dropout is a popular and effective technique against overfitting in neural networks. The initial idea of Dropout is to randomly discard units and connections from neural networks during training. This prevents units from adapting too much.
Figure 6 – Normal Neural Network (left) / After Dropout implementation (right)
Figure 6 shows the Dropout effect on the neural network, 'cleaning' units randomly, which reduces the network (SRIVASTAVA et al, 2014). The process that this implementation aims to disassemble is the co-adaptation that occurs "when two or more hidden units depend on each other to perform some function that helps adjust the training data, becoming highly correlated." (SRIVASTAVA et al, 2014).
The Dropout implementation in Keras took place through the following code:
As source code 6 shows, a 0.6 Dropout rate was applied, this rate represents the fraction of the units that will be disregarded (keras.io, 2019).
3.2.3.5 Data Augmentation
The practice of data augmentation serves as a kind of regularization, reducing the chance of overfitting extracting more general information from the database and passing it to the network (LEMLEY et al, 2017). Generally, the practice is performed by trial and error, and the types of augmentations are limited to the researcher's imagination, time and experience. (LEMLEY et al, 2017).
Keras has a method for making data augmentation in training called ImageDataGenerator.
Source code 7 shows the augmentation made in training, using techniques such as image rotation, zoom, and normalization. After the process is carried out, it is necessary to normalize the examples, which is done by taking the datagen mean value and variance (embedded with the augmentation techniques). This values are restored in the file test.py, and this normalization is applied to the test samples, which was done with the following code:
In source code 8, the normalization performed in the test.py file is specified, responsible for testing the model on external images. This practice was needed because the original model normalization would be based on the images in which it was originally trained, in this case, ImageNet. However, in this case it was necessary to include the mean and variance values of the train dataset, therefore, after displaying the values on the screen, in the training period, they were passed as parameters for the function called normalize that focused on the images of test dataset.
3.3 Transfer Learning
As maintained by Fawaz et al (2018) the practice of transferring learning, is the process of first training a neural network based on a source, and then transferring the characteristics learned by the network (called weights), to a second network that will be trained on another dataset.
Figure 7 – Transfer learning process example
Figure 7 shows an example of transfer learning, which in the first model called 'Car' (source dataset) is trained and its weights are applied through fine-tuning in the target dataset.
This practice fits into this project because, according to Yosinski et al (2014) "When target dataset is significantly smaller than the base dataset, transfer learning can be a powerful tool to allow training of a large neural network without presenting overfitting".
The usual approach to transfer learning is to train a base network and then copy its first n layers in the first n layers of a target network. The remaining layers of the target network are randomly initialized and trained for the target task. (YOSINSKI et al, 2014).
ImageNet is a database with more than 14 million images used to assist researchers with an accessible database (Image-Net.org ,2010). Keras fully supports some pre-trained models such as: Xception, VGG16, VGG19, ResNet, ResNetV2, InceptionV3, InceptionResNetV2, MobileNet, MobileNetV2, DenseNet and NASNet (keras.io, 2019).
Due to the effort to avoid overfitting, the smaller, or simpler a model, the less likely to occur overfit. According to Lundström (2017), the VGG-16 is a very popular model precisely because it has a simple architecture.
VGG models are considered simple due to two reasons. The first is the use of 3x3 convolutions across the network. The second is the duplication of the number of resource maps after max-pooling of 2x2. 2x2 max-pooling is also used across the network. These simple choices eliminated the need to adjust convolutional filter sizes and individual layer sizes. LUNDSTRÖM, D. (2017).
The VGG16/19 model is among the top 5 models, which achieve the highest accuracy of image classification (BAJIĆ et al, 2019). There is a competition provided by ImageNet that evaluates algorithms for large-scale object detection and classification. Competition in which, in the 2014 edition, vgg-16, among several other models, came first in the localization competition, and second in the classification competition (image-net.org, 2014).
3.3.1 VGG-16
According to Keras documentation, the following code is sufficient to include the VGG-16 structure in a local model:
Source code 9 assigns the 'vgg16_model' variable to the pre-trained VGG-16 model with ImageNet weights.
Figure 8 - VGG-16 Original Structure
Figure 8 specifies the original structure of VGG-16, which, as can be seen, has 13 convolutional layers, which as stated by Reyes et al (2015), "... can be understood as filter banks that transform an input image into another image, highlighting specific patterns.", followed by 5 pooling layers, described by Romanuke (2017) as responsible for progressively reducing the spatial size of the representation. Thus, it reduces the number of parameters and the amount of computing on the network also assisting in to avoid overfitting. In the final part, there are 3 dense layers – or fully connected layers – whose take a vector as input and produce another vector as output (REYES et al, 2015). and as an output layer, a softmax with 1000 neurons representing its 1000 classes.
To perform the transfer learning, the following code snippet was used.
In source code 10 the fine-tune process with VGG-16 is specified. As the parameter include_top = false was passed, the last 3 dense layers of the original model (VGG-16) do not remain in the new model, so in the variable base_model, the model was stored having as input, the normal layer of input, and as output, the last layer of the model, which in this case is the layer of MaxPooling called block5_pool.
After storing the model base, 4 more layers were included in the network. Two Dropout layers with 0.60 rate with a Reshape layer in the middle, which in this case is flattening the pixels at 25088 parameters linearly.
The last layer, classification, was included with 1 neuron having sigmoid activation. Thus, the result of class predictions will be a value between 0 and 1, being 0 the first class, in this case 'nonPdr' and 1 the second class 'pdr'.
Next, the weights of the first 14 layers are frozen, so that only the last 3 convolutional layers are trained. Soon after the model is updated with the new output layer and builds, the learning rate was reduced, because according to Wilson et al (2001) "Decreasing the learning rate can significantly improve the accuracy of generalization, especially in large and complex problems." Therefore, the 0.0001 learning rate was used in the project.
Finally, the method fit_generator is called. In it passes the variables that store the examples and classes of training and validation, as well as the Callback of Early Stopping that was developed previously. The number of 10 epochs is set to run the training. Also including transformations performed by data augmentation through the
datagen.flow method.
Table 1 - Layers used to fine-tuning
Table 1 is the representation of the network created with fine-tuning of the VGG-16. It is noted the removal of the dense layers and classification of the original model, replacing with a binary classification, as santos et al (2018) quotes "... only the convolutional part of the network and not its classifier can be reused, since you can choose a fully connected network with a different number of neurons." The output layer that originally had softmax activation, has now been changed to sigmoid with only one neuron, which will result in a prediction with a value between 0 and 1, representing the identification of the first class (nonPdr) for predictions up to 0.5, or the second class (pdr) for predictions from 0.5 to 1.0.
The choice of two layers of Dropout was due to the incidence of overfitting, practice that, according to Hinton et al (2012) "can be reduced using Dropout avoiding complex co-adaptations in the test base".
Figure 9 – Model training
Figure 9 shows the model in the training phase, with the print of the mean and variance for later inclusion in the test.py. The training process usually goes on without overfitting is also observed, with the loss decreasing and the accuracy increasing between epochs.
4.0 RESULTS AND DISCUSSION
In the process of predicting classes we have the incidence of the previously trained model on the test base. The model is loaded using the native method load_model, which recreates and compiles the model for prediction.
Test images are obtained in the same way as training images and after passing through normalization, the model.predict() method is performed, which returns an input-based prediction between classes programmed between 0 (nonPdr) and 1 (pdr), it is then assumed that any prediction above 0.5 is considered class 1.
At first the default layer creation structure was used and since then the model has overfitting, returning the same value for all test images. After attempting to use the Functional API the results remained the same in whatever the image, even after the inclusion of Dropout and Data Augmentation layers, so the transfer learning process with VGG-16 were used.
Using the Transfer learning model with both Gaussian Blur and CLAHE, they result in overfit in season two. Apart from any type of processing in the images the model trained appropriately without presenting overfit.
The application test took place through 100 test images. Of these 100, 50 of each class, i.e. 50 retinas with Proliferative Diabetic Retinopathy (PDR) and 50 with other levels, or without the disease. All these images had their diagnosis ensured by the Ophthalmologist Eduardo Menezes.
Figure 10 - Retina without Proliferative Diabetic Retinopathy
Figure 10 shows an example of retina without PDR, which, after the application of the neural model returned a value of 0.10658325, which is considered a low value and consistent with the level of the disease presented.
Figure 11 - Retina with Proliferative Diabetic Retinopathy
Figure 11 presents a retina example with proliferative diabetic retinopathy, which, after the application of the neural model returned a value of 0.9691823, very close to 1.0, number representing class 1 ('pdr').
Table 2 - Confusion Matrix
Table 2 displays the confusion matrix obtained after evaluating the application test results. It is noticed that there was an equal proportion of results. Among the 50 images with PDR, 41 true positives (PV) and 9 false negatives (FN) were obtained, that is, 41 hits and 9 errors. Similarly, the 50 images without PDR (nonPdr), the result was 9 false positives (FP) and 41 true negatives (VN), resulting in 41 hits and 9 errors as well.
To calculate the accuracy of the classification follows the following formula (ASHCROFT, Mike. 2016):
In view of this, we found an accuracy of 82% in the model. As the results of the classification were symmetrical, the possibility of calculating other metrics such as recall, f-measure, and accuracy was dispensed, considering that all calculations would return to the same percentage of 82%.
According to the ophthalmologist Eduardo Menezes, the accuracy of 82% is a good initial indicator, which, however, should be improved to ensure the assertiveness of the diagnosis.
Figure 24 display some predictions obtained through the test dataset with PDR. The value between brackets represents the range of 0 and 1, representing both classes, being any prediction above 0.5, considered class 1, or PDR.
5.0 CONCLUSION
According to what was observed in the development and research process of this project, it is concluded that the aid of imaging technology is little explored in ophthalmologic offices. A process that, if applied, can generate greater assertiveness and agility to the diagnostic process of a disease as serious as is diabetic retinopathy, the sooner as possible to start treatment, the better the chances of preserving or softening the damage to the vision of the Patient. With this application we were able to reach the population in the places farther from the large centers, greatly reducing the sequelae that diabetic retinopathy can cause (Eduardo Henrique Marques Menezes).
The practice of applying this diagnostic method was received with great acceptance by ophthalmologist Eduardo Henrique Marques Menezes, who followed the development process. According to him "The development of a software to identify signs of Diabetic Retinopathy is extremely important for the identification and treatment of this disease that is one of the main causes of blindness in Brazil and in the world".
Considering that for a machine learning application a large number of examples are recommended, especially in this case where anomalies are thorough, if more examples are achieved, the result could be much better. Adverse conditions of luminosity and artifacts present in the images may have negatively influenced during training. Overfitting, on the other hand, prevented the inclusion of techniques for image processing.
The use of technologies for process automation is a positive practice that can have great benefits for both the doctor and the patient facilitating the early and agile detection of the disease, including acting as a support to the medical decision.
Like every intelligent application directed to health, there is a great learning in the medical field, understanding more about the disease, in this case, and acting for the efficiency and well-being of the community, eliminating time-consuming, unsafe processes, and in some inaccessible cases.
6.0 FUTURE WORK
Task automation is a growing practice in the world. It is of great importance the decrease in time, money and resources that you have to cut steps that can be done, and even improved, by some intelligent system. There has been a great increase in practices in this sense in the area of human health, which algorithms can perform some functions in favor of the agility and efficiency of the process.
To detect diabetic retinopathy, the patient should go to the doctor's office and take the background examination in which the doctor observes the image and identifies the disease. As this process is always the same, and some people do not have access to the exam, it is noted the possibility of automating it computationally with a system previously powered by a sick and non-sick imaging base.
This work can be improved by harvesting a larger number of images to cover all types of possible applications, and assisting to avoid overfitting, a practice that alone can enable the possibility of including an appropriate filter in the images, so that the system can better analyze the examples. The application of transfer learning proved to be profitable, and the testing of other pre-trained models can be a viable alternative for the continuation of this project, which will aim to increase the accuracy obtained by 82%. After improved accuracy, the application can be embarked on special devices that take the background examination of the eye, and in prototypes that take this examination to inhospitable regions, a process known as telemedicine, assisting people from these regions.
AAO – AMERICAN ACADEMY OF OPHTHALMOLOGY. Diabetic Retinopathy Diagnosis. Disponível em: <https://www.aao.org/eye-health/diseases/diabetic-retinopathy-diagnosis>. Acesso em: 11 mar. 2019.
AAO – AMERICAN ACADEMY OF OPHTHALMOLOGY. Retina. Disponível em: <https://www.aao.org/eye-health/anatomy/retina-103>. Acesso em: 11 mar. 2019.
ASHCROFT, Mike. The Essentials of Data Analytics and Machine Learning [A guide for anyone who wants to learn practical machining learning using R]. ®
2016 Dr. Michael Ashcroft and Persontyle Limited;
ASRS – AMERICAN SOCIETY OF RETINA SPECIALISTS. Diabetic Retinopathy. Disponível em: <https://www.asrs.org/patients/retinal-diseases/3/diabeticretinopathy>. Acesso em: 25 mar. 2019.
BAJIĆ, F.; JOB, J.; NENADIĆ, K. Chart Classification Using Simplified VGG
Model. 978-1-7281-3227-3/19/$31.00 ©2019 IEEE, 2019;
BASHIR, I.; BHAT, A.M.; KHURSHEED, O. IMAGE RESTORATION AND THE
VARIOUS RESTORATION TECHNIQUES USED IN THE FIELD OF DIGITAL
IMAGE PROCESSING. International Journal of Computer Science and Mobile
Computing, IJCSMC, Vol. 6, Issue. 6, pg.390 – 393, 2017;
BELLMAN, R.E. An Introduction to Artificial Intelligence: Can Computers Think?
Boyd & Fraser, 1978.
BIGONHA, Carolina. Panorama setorial da Internet. Disponível em: <https://nic.br/media/docs/publicacoes/1/Panorama_outubro_2018_online.pdf>.
Acesso em 20 mar. 2019.
BRADSKI, G; KAEHLER, A. LEARNING OPENCV. 1 ed. Sebastopol: O’Reilly, 2008. BogoToBogo. Disponível em:
<https://www.bogotobogo.com/python/OpenCV_Python/images/Canny/Canny_Edge
_Detection.png>. Acesso em: 22 jun. 2019.
CHEUNG, N, et al. DIABETIC RETINOPATHY. Disponível em: <https://www.ncbi.nlm.nih.gov/pubmed/20580421>. Acesso em: 10 maio. 2019.
Clínica Levi Madeira. Retinografia. Disponível em: <https://www.levimadeira.com.br/servicos/exames/retinografia/>. Acesso em: 21 maio. 2019.
COGSWELL M.; AHMED F.; GIRSHICK, R. REDUCING OVERFITTING IN DEEP
arXiv:1511.06068v4 [cs.LG] 10 Jun 2016;
CUADROS J.; BRESNIK G.; EyePACS: An Adaptable Telemedicine System for
Diabetic Retinopathy Screening. Journal of diabetes science and technology
(Online). 2009;3(3):509-516.
CvDeveloper. Disponível em: <https://www.cvdeveloper.com/projects/>. Acesso em 22 mar. 2019.
DAS, Reenita. 5 principais tecnologias digitais para a saúde em 2019. Disponível
em: <https://forbes.uol.com.br/negocios/2019/02/5-principais-tecnologias-digitais-
para-a-saude-em-2019/>Acesso em: 22 de março de 2019.
Diabetes: tipos, causas, sintomas, tratamento, diagnóstico e prevenção.
Disponível em: <http://portalms.saude.gov.br/saude-de-a-z/diabetes>. Acesso em:
11 mar. 2019.
<http://www.cbo.com.br/pacientes/doencas/doencas_retinopatia_diabetica.htm>.
Acesso em: 11 mar. 2019.
FAWAZ, H. I.; FORESTIER, G.; WEBER J.; IDOUMGHAR, L.; MULLER, P.A.
Transfer learning for time series classification. IRIMAS, Universite de Haute-
Alsace, Mulhouse, France, arXiv:1811.01533v1 [cs.LG] 5 Nov. 2018;
FRAZÃO, Arthur. 5 principais complicações da diabetes. Disponível em:
<https://www.tuasaude.com/complicacoes-da-diabetes/>. Acesso em: 11 mar. 2019.
GHOSH; A.; SUFIAN, Abu.; SULTANA, F.; AMLAN, C.; DEBASHIS, D. Fundamental
Concepts of Convolutional Neural Network. In Recent Trends and Advances in
Artificial Intelligence and Internet of Things, pp. 519-567. Springer, Cham, 2020.
GUPTA, S.; SINGHAL, R. FUNDAMENTALS AND CHARACTERISTICS OF AN
EXPERT SYSTEM. International Journal on Recent and Innovation Trends in
Computing and Communication, IJRITCC, Vol. 1, Issue. 3, pg.110 – 113, 2013;
HANBURY, Allan. Image Segmentation by Region Based and Watershed
Algorithms. Wiley Encyclopedia of Computer Science and Engineering, p.1543-1551,
2011;
HASSAN, M. VGG16 – Convolutional Network for Classification and Detection.
Disponível em: <https://neurohive.io/en/popular-networks/vgg16/>. Acesso em: 11
nov. 2019.
HEATHERTON, J. R.; VIKAN, T.T. AN INTRODUCTION TO EXPERT SYSTEMS AND KNOWLEDGE ACQUISITION TECHNIQUES. Air Force Institute Of
Technology, 1990.
HEIMANN, T.; DELINGETTE, H. Model-based Segmentation. Deserno, Thomas Martin. Biomedical Image Processing, Springer, pp.279-303, 2011.
SALAKHUTDINOV, R.R. Improving neural networks by preventing co-adaptation
of feature detectors. Department of Computer Science, University of Toronto,
arXiv:1207.0580v1 [cs.NE] 3 Jul 2012;
<http://hospitaldeolhosdoparana.com.br/retinopatia-diabetica/>. Acesso em: 11 mar.
2019.
HOSP – Retinografia: saiba como funciona a e quais os tipos de exame.
Disponível em: <https://hospitaldeolhos.net/dicas/retinografia-saiba-como-funciona>.
Acesso em: 21 maio. 2019.
Instituto Panorâmico da visão – Retinopatia Diabética. Disponível em:
<https://www.ipvisao.com.br/site/especialidades-retinopatia_diabetica>. Acesso em:
27 maio. 2019.
ImageNet. Large Scale Visual Recognition Challenge 2014 (ILSVRC2014).
Disponível em: <http://www.image-net.org/challenges/LSVRC/2014/index>. Acesso
em: 22 nov. 2019;
KERAS. Disponível em: <https://keras.io/>. Acesso em: 01 out. 2019.
KRÄHENBÜHL, P.; KOLTUN, V. Learning to Propose Objects. 2015;
LAUBE, Aline. 5 Benefícios da automatização de Processos. Disponível em: <
http://www.neomind.com.br:81/blog/beneficios-da-automatizacao-de-processos/>
Acesso em: 20 de março de 2019.
LEMLEY, J.; BAZRAFKAN, S.; CORCORAN, P. Smart Augmentation Learning an Optimal Data Augmentation Strategy. Collage of Engineering and Informatics
National University of Ireland, arXiv:1703.08383v1 [cs.AI] 24 Mar 2017;
LUNDSTRÖM, Dennis. Data-efficient Transfer Learning with Pre-trained
Networks. Master of Science Thesis in Electrical Engineering Department of Electrical
Engineering, Linköping University, 2017;
MARSLAND, S. MACHINE LEARNING An Algorithmic Perspective Second Edition. Boca Ratón: CRC Press, 2015. p. 25-27.
MARU, M.; PARIKH, M.C. Image Restoration Techniques: A Survey. International
Journal of Computer Applications Volume 160 – No 6, 2017;
<https://www.mathworks.com/solutions/deep-learning/convolutional-neural-
network.html>. Acesso em: 15 nov. 2019.
Ministério Brasileiro de Saúde. Número de brasileiros com diabetes cresceu 61,8%
<http://www.brasil.gov.br/noticias/saude/2017/11/numero-de-brasileiros-com-
diabetes-cresceu-61-8-em-10-anos>. Acesso em: 15 maio. 2019.
MURPHEY, R. YI; GUO Hong; FELDKAMP, A. Lee. Neural Learning from Unbalanced Data. Applied Intelligence – Kluwer Academic Publishers, 21, p. 117-128, 2004.
MUTHUKRISHNAN, R.; RADHA, M. EDGE DETECTION TECHNIQUES FOR IMAGE
SEGMENTATION. International Journal of Computer Science & Information
Technology Vol 3, No 6, p.259-267, 2011;
<https://nei.nih.gov/sites/default/files/Diabetic-Retinopathy-What-You-Should-Know-
508.pdf>. Acesso em: 19 maio. 2019.
National Institute of Diabetes and Digestive and Kidney Diseases. Diabetes. Disponível em: <https://www.niddk.nih.gov/health-information/diabetes>. Acesso em: 19 maio. 2019.
<https://www.h9j.com.br/centro-de-medicina
especializada/Paginas/especialidades/oftalmologia.aspx>. Acesso em: 11 mar. 2019.
OHM, J.R.; MA, P. Feature-Based Cluster Segmentation of Image Sequences.
Heinrich-Hertz-Institut, 2011;
OpenCV. Disponível em: <https://opencv.org/>. Acesso em: 22 mar. 2019.
ORLANDO, J.I.; PROKOFYEVA, E.; BLASCHKO, M.B. Fundus Image Analysis. Disponível em: <http://homes.esat.kuleuven.be/~mblaschk/projects/retina/>. Acesso em: 07 junho 2019.
PEREIRA, Silvio Do Lago. . Universidade São Paulo 2009; p. 1-5.
PREVENTIVE MEDICINE. ACPM (AMERICAN COLLEGE OF PREVENTIVE
Acesso em: 11 mar. 2019.
Portal R7 - Uma em cada 11 pessoas no mundo tem diabetes, alerta OMS.
Disponível em: <https://noticias.r7.com/saude/uma-em-cada-11-pessoas-no-mundo-
tem-diabetes-alerta-oms-14112016>. Acesso em: 18 mar. 2019.
PUDIL, P.; SOMOL, P.; HAINDL, M. Introduction to Statistical Pattern
Recognition. Faculty of Management, Prague University of Economics, p.165-170,
2005.
PYTHON. Disponível em: <https://docs.python.org/3/tutorial/>. Acesso em: 24 out. 2019.
RANI, Neetu. Image Processing Techniques: A Review. Chitkara University,
Himachal Pradesh, p.41-50, 2017.
RAO, M. S.; REDDY, B.E. Comparative Analysis of Pattern Recognition Methods:
An Overview. Indian Journal of Computer Science and Engineering (IJCSE), Vol. 2
No. 3, p.385-390, 2011.
RASKUTTI, G.; WAINWRIGHT, J.; YU, Bin. Early Stopping and Non-parametric
Regression: An Optimal Data-dependent Stopping Rule. Journal of Machine
Learning Research 15 (2014) 335-366;
Retina – Hospital De Olhos Dr. Ricardo Guimarães. Disponível em:
<http://www.holhos.com.br/portfolio-item/retina/>. Acesso em: 11 mar. 2019.
Retinopatia Diabética é uma das principais complicações da diabetes – EyeCo
Blog. Disponível em: <https://www.eyeco.com.br/blog/retinopatia-diabetica-e-uma-
das-principais-complicacoes-da-diabetes/>. Acesso em: 11 mar. 2019.
REYES, A. K.; CAICEDO, J.C.; CAMARGO, J.E. Fine-tuning Deep Convolutional Networks for Plant Recognition. Laboratory for Advanced Computational Science and Engineering Research, Universidad Antonio Nariño, Colombia, 2015.
ROMANUKE, V. V. Appropriate Number of Standard 2×2 Max Pooling Layers and Their Allocation in Convolutional Neural Networks for Diverse and
Heterogeneous Datasets. ISSN 2255-9094 (online), December 2017, vol. 20, pp.
12–19 doi: 10.1515/itms-2017-0002.
RUSSEL, Stuart; NORVIG, Peter. Artificial Intelligence - A Modern Approach. New
Jersey: Pearson 2010; p. 20-21.
SALZ, David A; WITKIN, Andre J. Imaging in Diabetic Retinopathy. Middle East African Journal of Ophthalmology 2015; p. 145-150.
SANTOS, C. C.; SILVA, L. A.; QUEIROZ, F. M.; PICORETI, R.; SAMATELO, J. L. A.;
VASSALO, R. F. USO DE TRANSFER LEARNING PARA O RECONHECIMENTO
DE GESTOS DINAMICOS. Universidade Federal do Espírito Santo. 2018.
SANTOS, R. M. UM ESTUDO DE PROCESSAMENTO DE IMAGENS COM
OPENCV. Trabalho de conclusão de curso em Tecnologia em Sistemas de
Informação – UFF. Niterói, p. 20. 2011.
SILVA, Ivan, S; SPRITZER I.M.P.A; OLIVEIRA, W.P.
INTELIGÊNCIA ARTIFICIAL E DOS SISTEMAS ESPECIALISTAS. Disponível em:
<http://www.abenge.org.br/cobenge/arquivos/15/artigos/09_158.pdf> Acesso em: 20 de março de 2019.
SBD – Sociedade Brasileira de Diabetes. . Disponível em: <https://www.diabetes.org.br/profissionais/images/pdf/diabetes-tipo-1/012-Diretrizes-SBD-Retinopatia-Diabetica-pg149.pdf> Acesso em: 20 de março de 2019.
SBEM – Sociedade Brasileira de Endocrinologia e Metabologia. Retinopatia . Disponível em: <https://www.endocrino.org.br/10-coisas-que-voce-precisa-saber-sobre-retinopatiac/> Acesso em: 20 de março de 2019.
SCHAPIRE, Robert. E. The Boosting Approach to Machine Learning An
Overview. MSRI Workshop on Nonlinear Estimation and Classification, 2002.
<https://sourceforge.net/projects/opencvlibrary/files/stats/timeline?dates=2001-09-
20+to+2019-01-30>. Acesso em: 04 novembro 2019.
SOUZA, L. R. ALGORITMO PARA RECONHECIMENTO E ACOMPANHAMENTO DE TRAJETÓRIA DE PADRÕES EM IMAGENS MÓVEIS. Trabalho de conclusão de
curso em Engenharia da computação – UNIVASF. Juazeiro, Bahia, p. 18. 2010.
<https://docs.opencv.org/3.1.0/d4/d13/tutorial_py_filtering.html#gsc.tab=0>. Acesso
em: 14 out. 2019.
SPYDER-IDE. Disponível em: <https://www.spyder-ide.org/>. Acesso em: 02 out. 2019.
SALAKHURDINOV, R. Dropout: A Simple Way to Prevent Neural Networks from
Overfitting. Journal of Machine Learning Research p1929-1958, 2014;
Stamford University. Introduction to computer vision. Disponível em: <https://ai.stanford.edu/~syyeung/cvweb/tutorial1.html>. Acesso em: 16 out. 2019.
SULTANA, F.; SUFIAN, Abu.; PARAMARTHA, D. Advancements in Image
Classification using Convolutional Neural Network. In 2018 Fourth International
Conference on Research in Computational Intelligence and Communication Networks (ICRCICN), pp. 122-129. IEEE, 2018.
SULTANA, F.; SUFIAN, Abu.; PARAMARTHA, D. A Review of Object Detection
Models based on Convolutional Neural Network. arXiv preprint arXiv:1905.01614
(2019).
TensorFlow. The Keras functional API in TensorFlow. Disponível em:
<https://www.tensorflow.org/guide/keras/functional>. Acesso em: 14 out. 2019.
<https://www.diabetes.org.br/publico/diabetes/tipos-de-diabetes>. Acesso em: 11
mar. 2019.
TURING, A.M. COMPUTING MACHINERY AND INTELLIGENCE. Mind 49 1950: p.
433-460.
WALTER, T.; KLEIN, J.C.; MASSIN, P.; ERGINAY, A. A Contribution of Image
Processing to the Diagnosis of Diabetic Retinopathy—Detection of Exudates in
Color Fundus Images of the Human Retina. IEEE TRANSACTIONS ON MEDICAL
IMAGING, vol. 21, 2002.
WILD, S.; ROGLIC, G.; GREEN, A.; SICREE, R.; KING, H.; Global prevalence of
diabetes: estimates for the year 2000 and projections for 2030. Diabetes care
2004; 27: 1047–53.
WILSON, R.; MARTINEZ, T. R.; The Need for Small Learning Rates on Large
Problems. In Proceedings of the 2001 International Joint Conference on Neural
Networks (IJCNN’01), 115-119.
WINSTON, P. Artificial Intelligence. Addison Wesley, 1992;
WHO – WORLD HEALTH ORGANIZATION. HEALTH INFORMATION SYSTEMS. Disponível em: <https://www.who.int/healthinfo/statistics/toolkit_hss/EN_PDF_Toolkit_HSS_Informat ionSystems.pdf>. Acesso em: 03 julho 2019.
WHO – WORLD HEALTH ORGANIZATION. Design and implementation of health information systems. Disponível em:
<http://scholar.google.com.br/scholar_url?url=https://apps.who.int/iris/bitstream/hand
le/10665/42289/9241561998.pdf&hl=pt-
BR&sa=X&scisig=AAGBfm0RlVbvxTzo8X1iJjRUpEMQtPyWdQ&nossl=1&oi=scholar r>. Acesso em: 03 julho 2019.
YING, Xue. An Overview of Overfitting and its Solutions. IOP Conf. Series: Journal
of Physics: Conf. Series 1168 (2019) 022022;
YOGOMANGALAM, R.; KARTHIKEYAN, B. Segmentation Techniques Comparison in Image Processing. International Journal of Engineering and Technology, Vol 5 No 1, p.307-311, 2013.
YOSINSKI, J.; CLUNE, J.; BENGIO, Y.; LIPSON, H. How transferable are features in deep neural networks?. In Advances in Neural Information Processing Systems 27 (NIPS ’14), NIPS Foundation, 2014.
8.0 ATTACHMENTS
In this part, the attachments relevant to the work carried out will be added.
8.1 Attachment A – Specialist doctor report
The development of software capable of identifying signs of diabetic retinopathy is extremely important for the identification and treatment of this disease that is one of the main causes of blindness in Brazil and worldwide. With this system we were able to reach the population in the farthest places from large centers, greatly reducing the sequelae that diabetic retinopathy can cause.
8.2 Attachment B – Specialist doctor report