pablorocg commited on
Commit
f613584
1 Parent(s): 1e923a4

Upload 24 files

Browse files
.gitattributes CHANGED
@@ -32,3 +32,13 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
32
  *.zip filter=lfs diff=lfs merge=lfs -text
33
  *.zst filter=lfs diff=lfs merge=lfs -text
34
  *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
 
 
 
 
 
 
 
 
 
32
  *.zip filter=lfs diff=lfs merge=lfs -text
33
  *.zst filter=lfs diff=lfs merge=lfs -text
34
  *tfevents* filter=lfs diff=lfs merge=lfs -text
35
+ 8.png filter=lfs diff=lfs merge=lfs -text
36
+ 10.png filter=lfs diff=lfs merge=lfs -text
37
+ 15.png filter=lfs diff=lfs merge=lfs -text
38
+ 23.png filter=lfs diff=lfs merge=lfs -text
39
+ 25.png filter=lfs diff=lfs merge=lfs -text
40
+ 37.png filter=lfs diff=lfs merge=lfs -text
41
+ 48.png filter=lfs diff=lfs merge=lfs -text
42
+ 61.png filter=lfs diff=lfs merge=lfs -text
43
+ 82.png filter=lfs diff=lfs merge=lfs -text
44
+ 631.png filter=lfs diff=lfs merge=lfs -text
10.png ADDED

Git LFS Details

  • SHA256: 24f4f4d5e0a3ea6f2f7eaa47f1c3f89c68612c728b308e86599799d69afd5d58
  • Pointer size: 132 Bytes
  • Size of remote file: 1.78 MB
15.png ADDED

Git LFS Details

  • SHA256: f325351163fa784d1750684b1b8332ddc840d478a0ec2370d0b83c7a78d4a5ec
  • Pointer size: 132 Bytes
  • Size of remote file: 1.94 MB
23.png ADDED

Git LFS Details

  • SHA256: 16b9a6bfe3ab93ddffb615932924120661f4b900d780eacccb35d3115d170b03
  • Pointer size: 132 Bytes
  • Size of remote file: 1.8 MB
25.png ADDED

Git LFS Details

  • SHA256: 20daab431cc30f3583c84a9217227d8bfff89aa8acaff128287a2a144f631672
  • Pointer size: 132 Bytes
  • Size of remote file: 1.71 MB
37.png ADDED

Git LFS Details

  • SHA256: a4a10bc2c06f017cd75455b0bb13f81a6852d38b981225fae68f8eea6593a41d
  • Pointer size: 132 Bytes
  • Size of remote file: 1.71 MB
48.png ADDED

Git LFS Details

  • SHA256: 8ca7cf003846f44ca651b96cdaa05da720e95f29e91b2897880f37d0c7205fe3
  • Pointer size: 132 Bytes
  • Size of remote file: 1.73 MB
61.png ADDED

Git LFS Details

  • SHA256: 9aa4778d024f9a0084dc41bb8bba5cd6011a8cd143ba91c46066c9f88116bed8
  • Pointer size: 132 Bytes
  • Size of remote file: 1.81 MB
631.png ADDED

Git LFS Details

  • SHA256: e9f296ea02d58b3c5f8333477df91ab8203a387cc53ec100d8b3d3f27e05b3ad
  • Pointer size: 132 Bytes
  • Size of remote file: 6.41 MB
8.png ADDED

Git LFS Details

  • SHA256: 36d2054810830f103c238e369299b824e8028fc3e4bad2b74b8a83fce2b6e966
  • Pointer size: 132 Bytes
  • Size of remote file: 1.69 MB
82.png ADDED

Git LFS Details

  • SHA256: e2d173e1ad119629eb8727a1df833a8947571708deaf69bf04410101b4551681
  • Pointer size: 132 Bytes
  • Size of remote file: 1.65 MB
README.md CHANGED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ title: Retinal Disease
3
+ emoji: 🐠
4
+ colorFrom: pink
5
+ colorTo: blue
6
+ sdk: gradio
7
+ sdk_version: 2.9.4
8
+ app_file: app.py
9
+ pinned: false
10
+ ---
11
+
12
+ Check out the configuration reference at https://huggingface.co/docs/hub/spaces#reference
app.py ADDED
@@ -0,0 +1,85 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import numpy as np
2
+ import pandas as pd
3
+ import matplotlib.pyplot as plt
4
+ import cv2
5
+ import keras
6
+ import gradio as gr
7
+
8
+ SHAPE = (224, 224, 3)
9
+
10
+ predictor_disease_risk = keras.models.load_model('predictor_Disease_Risk.h5')
11
+ predictor_dr = keras.models.load_model('predictor_DR.h5')
12
+ predictor_mh = keras.models.load_model('predictor_MH.h5')
13
+ predictor_odc = keras.models.load_model('predictor_ODC.h5')
14
+ predictor_tsln = keras.models.load_model('predictor_TSLN.h5')
15
+ predictor_dn = keras.models.load_model('predictor_DN.h5')
16
+ predictor_armd = keras.models.load_model('predictor_ARMD.h5')
17
+ predictor_mya = keras.models.load_model('predictor_MYA.h5')
18
+ predictor_brvo = keras.models.load_model('predictor_BRVO.h5')
19
+
20
+
21
+ def cut_and_resize(image):
22
+ LOW_TOL = 20
23
+ img_bw = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
24
+ img_bw[img_bw<=LOW_TOL] = 0
25
+ y_nonzero, x_nonzero = np.nonzero(img_bw)
26
+ image = image[np.min(y_nonzero):np.max(y_nonzero), np.min(x_nonzero): np.max(x_nonzero), ]
27
+ return cv2.resize(image, SHAPE[:2], interpolation = cv2.INTER_LINEAR)
28
+
29
+ def simple_normalizer(X):
30
+ return X / 255.0
31
+
32
+ def predict (image_path):
33
+ image = simple_normalizer(cut_and_resize(cv2.imread(image_path)))
34
+ result = predictor_disease_risk.predict(np.array([image]))[0][0]
35
+
36
+ dr = predictor_dr.predict(np.array([image]))[0][0]
37
+ mh = predictor_mh.predict(np.array([image]))[0][0]
38
+ odc = predictor_odc.predict(np.array([image]))[0][0]
39
+ tsln = predictor_tsln.predict(np.array([image]))[0][0]
40
+ dn = predictor_dn.predict(np.array([image]))[0][0]
41
+ armd = predictor_armd.predict(np.array([image]))[0][0]
42
+ mya = predictor_mya.predict(np.array([image]))[0][0]
43
+ brvo = predictor_brvo.predict(np.array([image]))[0][0]
44
+
45
+ diseases = {
46
+ 'DR' : float(dr),
47
+ 'MH' : float(mh),
48
+ 'ODC' : float(odc),
49
+ 'DN' : float(dn),
50
+ 'TSLN': float(tsln),
51
+ 'ARMD': float(armd),
52
+ 'MYA' : float(mya),
53
+ 'BRVO': float(brvo)
54
+ }
55
+
56
+ to_delete = []
57
+ for k,v in diseases.items():
58
+ if v < 0.05:
59
+ to_delete.append(k)
60
+
61
+ for k in to_delete:
62
+ del diseases[k]
63
+
64
+ if len(diseases) == 0:
65
+ diseases = {'No specific disease': 0.0}
66
+
67
+
68
+ return (
69
+ {'Enferma': float(result), 'Sana': 1 - float(result)}, diseases
70
+ )
71
+
72
+ title = 'Retinal Disease Predictor'
73
+ description = 'Modelo de deep learning que permite clasificar imágenes de la retina en patológicas y no patológicas. Si detecta una retina enferma, realiza un diagnóstico de la enfermedad concreta entre las siguientes: Diabetic Retinopathy (DR), Media Haze (MH), Optic Disk Cupping (ODC), Drusen (DN), Tessellation (TSLN), Age Related Macular Disease (ARMD), Myopia (MYA), Branch Retinal Vein Occlusion (BRVO) . Las imágenes deben tener fondo negro.'
74
+ article = 'Proyecto HORUS (Helping Oftalmoscopy of Retina Using Supervised Learning'
75
+
76
+ interface = gr.Interface(
77
+ predict,
78
+ inputs = [gr.inputs.Image(source="upload",type="filepath", label="Imagen")],
79
+ outputs= [gr.outputs.Label(num_top_classes=2, label='Retina'), gr.outputs.Label(num_top_classes=4, label='Enfermedad')],
80
+ title = title, description = description, article = article,
81
+ theme = 'peach',
82
+ examples = ['10.png', '82.png', '15.png', '25.png', '48.png', '61.png', '37.png', '631.png', '23.png', '8.png']
83
+ )
84
+
85
+ interface.launch()
predictor_ARMD.h5 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:b30af261a3a9ef82297dfaf336ac18369e2678bef2a80ce32514ac8874a9ccb8
3
+ size 97691248
predictor_BRVO.h5 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:d9387d5a74494615cab858c411484617ab211c3f0dd30e17aaeac08732ba6ab0
3
+ size 97691248
predictor_DN.h5 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:53c4dec2d3de4384ddd0db5d1b5afe7af5ac40bb5a4b0fbef0a0ca73328e8e0d
3
+ size 97691248
predictor_DR.h5 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:7dd16cf2d5164072d799e33a96f768cf464555b65a4781bc427fbb1031b71b3c
3
+ size 97691248
predictor_Disease_Risk.h5 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:1981542e2679d36774a6475df85f5020e90ea24fb9ff7198c2ec21157590b11b
3
+ size 97691248
predictor_MH.h5 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:cc6452e79ee367e57c11ec3a21c3aa7b5b45483ca80000d0fc47033df105b42d
3
+ size 97691248
predictor_MYA.h5 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:6cb2e87b845c78fdf76d867caa6f90b43f27aee936a8c68333bb35bef0594ca7
3
+ size 97691248
predictor_ODC.h5 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:75d7ed01863b5a6fc1b4b7d444b4723465ff28acf159595c2a1e5bda5e3a20c3
3
+ size 97691248
predictor_TSLN.h5 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:402e230b2f0bc588a593ea83ae86817cd6810175c8fa4309ed8985c39820cd27
3
+ size 97691248
requirements.txt ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ opencv-python==4.1.2.30
2
+ tensorflow
retina_normal.jpeg ADDED
índice.gitattributes ADDED
@@ -0,0 +1,37 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ *.7z filter=lfs diff=lfs merge=lfs -text
2
+ *.arrow filter=lfs diff=lfs merge=lfs -text
3
+ *.bin filter=lfs diff=lfs merge=lfs -text
4
+ *.bz2 filter=lfs diff=lfs merge=lfs -text
5
+ *.ftz filter=lfs diff=lfs merge=lfs -text
6
+ *.gz filter=lfs diff=lfs merge=lfs -text
7
+ *.h5 filter=lfs diff=lfs merge=lfs -text
8
+ *.joblib filter=lfs diff=lfs merge=lfs -text
9
+ *.lfs.* filter=lfs diff=lfs merge=lfs -text
10
+ *.model filter=lfs diff=lfs merge=lfs -text
11
+ *.msgpack filter=lfs diff=lfs merge=lfs -text
12
+ *.onnx filter=lfs diff=lfs merge=lfs -text
13
+ *.ot filter=lfs diff=lfs merge=lfs -text
14
+ *.parquet filter=lfs diff=lfs merge=lfs -text
15
+ *.pb filter=lfs diff=lfs merge=lfs -text
16
+ *.pt filter=lfs diff=lfs merge=lfs -text
17
+ *.pth filter=lfs diff=lfs merge=lfs -text
18
+ *.rar filter=lfs diff=lfs merge=lfs -text
19
+ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
20
+ *.tar.* filter=lfs diff=lfs merge=lfs -text
21
+ *.tflite filter=lfs diff=lfs merge=lfs -text
22
+ *.tgz filter=lfs diff=lfs merge=lfs -text
23
+ *.wasm filter=lfs diff=lfs merge=lfs -text
24
+ *.xz filter=lfs diff=lfs merge=lfs -text
25
+ *.zip filter=lfs diff=lfs merge=lfs -text
26
+ *.zstandard filter=lfs diff=lfs merge=lfs -text
27
+ *tfevents* filter=lfs diff=lfs merge=lfs -text
28
+ 82.png filter=lfs diff=lfs merge=lfs -text
29
+ 61.png filter=lfs diff=lfs merge=lfs -text
30
+ 37.png filter=lfs diff=lfs merge=lfs -text
31
+ 23.png filter=lfs diff=lfs merge=lfs -text
32
+ 8.png filter=lfs diff=lfs merge=lfs -text
33
+ 631.png filter=lfs diff=lfs merge=lfs -text
34
+ 15.png filter=lfs diff=lfs merge=lfs -text
35
+ 48.png filter=lfs diff=lfs merge=lfs -text
36
+ 10.png filter=lfs diff=lfs merge=lfs -text
37
+ 25.png filter=lfs diff=lfs merge=lfs -text