Nchaleys commited on
Commit
c4ce56b
·
1 Parent(s): cf218a8

Add application file

Browse files
.gitattributes CHANGED
@@ -29,3 +29,4 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
29
  *.zip filter=lfs diff=lfs merge=lfs -text
30
  *.zstandard filter=lfs diff=lfs merge=lfs -text
31
  *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
29
  *.zip filter=lfs diff=lfs merge=lfs -text
30
  *.zstandard filter=lfs diff=lfs merge=lfs -text
31
  *tfevents* filter=lfs diff=lfs merge=lfs -text
32
+ *.png filter=lfs diff=lfs merge=lfs -text
app.py ADDED
@@ -0,0 +1,122 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ import requests
3
+ from PIL import Image
4
+ import json
5
+ import numpy as np
6
+ from tensorflow.keras import models
7
+ import cv2
8
+ from tensorflow.keras.preprocessing.image import array_to_img
9
+ import glob
10
+ import os
11
+
12
+
13
+
14
+ ex_path = ""
15
+ images_paths = [image_name for image_name in glob.glob(os.path.join(ex_path, "image/*"))]
16
+ dico_paths = {}
17
+ dico_paths[' '] = None
18
+ for img in images_paths:
19
+ dico_paths[img[-36:-23]] = img
20
+
21
+ def get_true_msk(img_path):
22
+ msk_name = img_path[-36:-15]+'gtFine_labelIds.png'
23
+ return [msk_link for msk_link in glob.glob(os.path.join(ex_path, "mask\\", msk_name))]
24
+
25
+ def dice_coeff(y_true, y_pred):
26
+ smooth = 1.
27
+ y_true_f = K.flatten(y_true)
28
+ y_pred_f = K.flatten(y_pred)
29
+ intersection = K.sum(y_true_f * y_pred_f)
30
+ score = (2. * intersection + smooth) / (K.sum(y_true_f) + K.sum(y_pred_f) + smooth)
31
+ return score
32
+
33
+ def recolor(img):
34
+ prediction_color = {0:[0, 0, 0],
35
+ 1:[204, 204, 204],
36
+ 2:[148, 148, 148],
37
+ 3:[220, 220, 0],
38
+ 4:[111, 196, 53],
39
+ 5:[188, 230, 254],
40
+ 6:[191, 30, 62],
41
+ 7:[3, 50, 126]}
42
+ new_img = np.zeros((*img.shape, 3))
43
+ for k, v in prediction_color.items():
44
+ new_img[img==k] = v
45
+ new_img = new_img.astype('uint8')
46
+ return new_img
47
+
48
+
49
+ def encode_labels(mask):
50
+ mapping_8 = {
51
+ 0:0, 1:0, 2:0, 3:0, 4:0, 5:0, 6:0,
52
+ 7:1, 8:1, 9:1, 10:1,
53
+ 11:2, 12:2, 13:2, 14:2, 15:2, 16:2,
54
+ 17:3, 18:3, 19:3, 20:3,
55
+ 21:4, 22:4,
56
+ 23:5,
57
+ 24:6, 25:6,
58
+ 26:7, 27:7, 28:7, 29:7, 30:7, 31:7, 32:7, 33:7, -1:7
59
+ }
60
+ label_mask = np.zeros_like(mask)
61
+ for k in mapping_8:
62
+ label_mask[mask == k] = mapping_8[k]
63
+ return label_mask
64
+
65
+ def request_prediction(option):
66
+
67
+ #Model & File
68
+ model = models.load_model('model_best.h5', custom_objects={"dice_coeff": dice_coeff})
69
+ file_in = open(option ,'rb')
70
+
71
+ #Bloc preprocessing
72
+ y_img = Image.open(file_in)
73
+ y_img = np.array(y_img)
74
+ y_img = cv2.resize(y_img, (128, 128))
75
+
76
+ #Bloc prédiction
77
+ batch_img = np.empty((32, 128, 128, 3))
78
+ batch_img[0] = y_img
79
+ y_pred = model.predict(batch_img)
80
+
81
+ #Bloc image
82
+ printable_pred = np.argmax(y_pred[0], axis=2)
83
+ printable_pred = recolor(printable_pred)
84
+ img = array_to_img(printable_pred)
85
+
86
+ return img
87
+
88
+
89
+ def main():
90
+
91
+
92
+
93
+ st.title('Mask Prediction')
94
+ option = st.selectbox('Choisissez une image',(dico_paths.keys()))
95
+ st.write('You selected:', option)
96
+
97
+
98
+ predict_btn = st.button('Prédire')
99
+ if predict_btn:
100
+ pred = None
101
+ pred = request_prediction(dico_paths[option])
102
+
103
+ file_img = open(dico_paths[option] ,'rb')
104
+ img = Image.open(file_img)
105
+
106
+ file_msk = open(get_true_msk(dico_paths[option])[0] ,'rb')
107
+ msk = Image.open(file_msk)
108
+
109
+ msk = np.asarray(msk, dtype="float32")
110
+ msk = encode_labels(msk)
111
+ msk = cv2.resize(msk, (128, 128))
112
+ msk = np.asarray(msk, dtype="int32")
113
+ msk = array_to_img(recolor(msk))
114
+
115
+ st.image(img, caption = 'Origine', channels = 'BGR')
116
+ st.image(pred, caption = 'Prédiction', width = 600, channels = 'BGR')
117
+ st.image(msk, caption = 'Label', width = 600, channels = 'BGR')
118
+
119
+
120
+
121
+ if __name__ == '__main__':
122
+ main()
image/lindau_000000_000019_leftImg8bit.png ADDED

Git LFS Details

  • SHA256: 87eeebe5886e2193aad97cc233254c4dfe86eec9fced00a8bfdabe9d3cf96317
  • Pointer size: 132 Bytes
  • Size of remote file: 2.33 MB
image/lindau_000001_000019_leftImg8bit.png ADDED

Git LFS Details

  • SHA256: bb3d30bd8f6bcda1454800a86c4b9fcc91789cfcb71a5d0220e36c37972c4cae
  • Pointer size: 132 Bytes
  • Size of remote file: 2.52 MB
image/lindau_000002_000019_leftImg8bit.png ADDED

Git LFS Details

  • SHA256: a830488ab1a57c7ba63336c368e0c98acb26874eef7e06ac18e00a148ab17d80
  • Pointer size: 132 Bytes
  • Size of remote file: 2.59 MB
image/lindau_000003_000019_leftImg8bit.png ADDED

Git LFS Details

  • SHA256: 4abf15104208de432ca7046754782fbc14fbbe85620df5abaa155cf36c00d068
  • Pointer size: 132 Bytes
  • Size of remote file: 2.16 MB
image/lindau_000004_000019_leftImg8bit.png ADDED

Git LFS Details

  • SHA256: 0572f81083c2a15de89f69f0a3e059619928469c4f669703277784e1b84a1d75
  • Pointer size: 132 Bytes
  • Size of remote file: 2.32 MB
image/lindau_000005_000019_leftImg8bit.png ADDED

Git LFS Details

  • SHA256: 9c684de395589affeebf3f121213ffd6fb48cd505cb7896230d723a598509028
  • Pointer size: 132 Bytes
  • Size of remote file: 2.19 MB
image/lindau_000006_000019_leftImg8bit.png ADDED

Git LFS Details

  • SHA256: 8b80a4511f0f180a1bac7773950e418720d9f9f2eeda36e3fba02f948386909f
  • Pointer size: 132 Bytes
  • Size of remote file: 2.18 MB
image/lindau_000007_000019_leftImg8bit.png ADDED

Git LFS Details

  • SHA256: 7a869cbb71c51186064dee0722e90e1c485a3740b5e14a864935b821f89b40da
  • Pointer size: 132 Bytes
  • Size of remote file: 2.21 MB
image/lindau_000008_000019_leftImg8bit.png ADDED

Git LFS Details

  • SHA256: 203dbab381d39eba4b42661e80d7dd131e23e3f1955a27f4df60a04be168223b
  • Pointer size: 132 Bytes
  • Size of remote file: 2.64 MB
image/lindau_000009_000019_leftImg8bit.png ADDED

Git LFS Details

  • SHA256: 6b2fb4b382cbce15cb7b7d125a46df84bcaf92600b7fcb0efc6954ec1b51348e
  • Pointer size: 132 Bytes
  • Size of remote file: 2.55 MB
mask/lindau_000000_000019_gtFine_labelIds.png ADDED

Git LFS Details

  • SHA256: 01e7e072bf50cfcb3f66c191fe2740bb6869a8ea7f213999bda8ed61b6a4cdf8
  • Pointer size: 130 Bytes
  • Size of remote file: 18.8 kB
mask/lindau_000001_000019_gtFine_labelIds.png ADDED

Git LFS Details

  • SHA256: 73ee6c4e39b889b413f3c6fdfeb91a98efabe70d197862aeb5d08b678f419595
  • Pointer size: 130 Bytes
  • Size of remote file: 12.4 kB
mask/lindau_000002_000019_gtFine_labelIds.png ADDED

Git LFS Details

  • SHA256: 95f443e53cadfd78e00c874894cdae2415549b6301b42a9ee6f07a8d91dadd24
  • Pointer size: 130 Bytes
  • Size of remote file: 13.7 kB
mask/lindau_000003_000019_gtFine_labelIds.png ADDED

Git LFS Details

  • SHA256: 1c4752797f7ad540eca66bf1a073e2054b4a311826c09e29367f33534adfbb45
  • Pointer size: 130 Bytes
  • Size of remote file: 14.6 kB
mask/lindau_000004_000019_gtFine_labelIds.png ADDED

Git LFS Details

  • SHA256: 1044421fc2e62edc2c70060b41d9b9fbb3fbf6d99ced13a73aabd3d0d118c682
  • Pointer size: 130 Bytes
  • Size of remote file: 18.1 kB
mask/lindau_000005_000019_gtFine_labelIds.png ADDED

Git LFS Details

  • SHA256: fe21ec26bcac41cbfd2787a252a4e5eefb6c5c3707a192e039244abebcbfa5e7
  • Pointer size: 130 Bytes
  • Size of remote file: 17.8 kB
mask/lindau_000006_000019_gtFine_labelIds.png ADDED

Git LFS Details

  • SHA256: 4e4c65c87a360384599748e32b193cdb99486230c8a4665859b6543975469cca
  • Pointer size: 130 Bytes
  • Size of remote file: 18.7 kB
mask/lindau_000007_000019_gtFine_labelIds.png ADDED

Git LFS Details

  • SHA256: dcd3d496463f23b92f3a51f29e6b9f3b82fd6f316addf9d848e4e5541658c46d
  • Pointer size: 130 Bytes
  • Size of remote file: 19.8 kB
mask/lindau_000008_000019_gtFine_labelIds.png ADDED

Git LFS Details

  • SHA256: c5b7af6a0fb57210cb41f146df12a6959cd5c59a0f1f24059d728e129d5117a9
  • Pointer size: 130 Bytes
  • Size of remote file: 14.9 kB
mask/lindau_000009_000019_gtFine_labelIds.png ADDED

Git LFS Details

  • SHA256: f855434b3acc61c64d6cd6df8bbf56ae05b16ba1a6c31016237a63391149cc30
  • Pointer size: 130 Bytes
  • Size of remote file: 21.9 kB
model_best.h5 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:93d10b239e8db5fdc2f9cfcc3eec79f58da7b4b679815379f3c513376153016c
3
+ size 414763072
requirements.txt ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ numpy==1.20.3
2
+ opencv_python==4.5.5.64
3
+ Pillow==9.2.0
4
+ streamlit==1.10.0
5
+ tensorflow==2.8.0