Spaces:
Runtime error
Runtime error
Nchaleys
commited on
Commit
·
c4ce56b
1
Parent(s):
cf218a8
Add application file
Browse files- .gitattributes +1 -0
- app.py +122 -0
- image/lindau_000000_000019_leftImg8bit.png +3 -0
- image/lindau_000001_000019_leftImg8bit.png +3 -0
- image/lindau_000002_000019_leftImg8bit.png +3 -0
- image/lindau_000003_000019_leftImg8bit.png +3 -0
- image/lindau_000004_000019_leftImg8bit.png +3 -0
- image/lindau_000005_000019_leftImg8bit.png +3 -0
- image/lindau_000006_000019_leftImg8bit.png +3 -0
- image/lindau_000007_000019_leftImg8bit.png +3 -0
- image/lindau_000008_000019_leftImg8bit.png +3 -0
- image/lindau_000009_000019_leftImg8bit.png +3 -0
- mask/lindau_000000_000019_gtFine_labelIds.png +3 -0
- mask/lindau_000001_000019_gtFine_labelIds.png +3 -0
- mask/lindau_000002_000019_gtFine_labelIds.png +3 -0
- mask/lindau_000003_000019_gtFine_labelIds.png +3 -0
- mask/lindau_000004_000019_gtFine_labelIds.png +3 -0
- mask/lindau_000005_000019_gtFine_labelIds.png +3 -0
- mask/lindau_000006_000019_gtFine_labelIds.png +3 -0
- mask/lindau_000007_000019_gtFine_labelIds.png +3 -0
- mask/lindau_000008_000019_gtFine_labelIds.png +3 -0
- mask/lindau_000009_000019_gtFine_labelIds.png +3 -0
- model_best.h5 +3 -0
- requirements.txt +5 -0
.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
|
image/lindau_000001_000019_leftImg8bit.png
ADDED
![]() |
Git LFS Details
|
image/lindau_000002_000019_leftImg8bit.png
ADDED
![]() |
Git LFS Details
|
image/lindau_000003_000019_leftImg8bit.png
ADDED
![]() |
Git LFS Details
|
image/lindau_000004_000019_leftImg8bit.png
ADDED
![]() |
Git LFS Details
|
image/lindau_000005_000019_leftImg8bit.png
ADDED
![]() |
Git LFS Details
|
image/lindau_000006_000019_leftImg8bit.png
ADDED
![]() |
Git LFS Details
|
image/lindau_000007_000019_leftImg8bit.png
ADDED
![]() |
Git LFS Details
|
image/lindau_000008_000019_leftImg8bit.png
ADDED
![]() |
Git LFS Details
|
image/lindau_000009_000019_leftImg8bit.png
ADDED
![]() |
Git LFS Details
|
mask/lindau_000000_000019_gtFine_labelIds.png
ADDED
![]() |
Git LFS Details
|
mask/lindau_000001_000019_gtFine_labelIds.png
ADDED
![]() |
Git LFS Details
|
mask/lindau_000002_000019_gtFine_labelIds.png
ADDED
![]() |
Git LFS Details
|
mask/lindau_000003_000019_gtFine_labelIds.png
ADDED
![]() |
Git LFS Details
|
mask/lindau_000004_000019_gtFine_labelIds.png
ADDED
![]() |
Git LFS Details
|
mask/lindau_000005_000019_gtFine_labelIds.png
ADDED
![]() |
Git LFS Details
|
mask/lindau_000006_000019_gtFine_labelIds.png
ADDED
![]() |
Git LFS Details
|
mask/lindau_000007_000019_gtFine_labelIds.png
ADDED
![]() |
Git LFS Details
|
mask/lindau_000008_000019_gtFine_labelIds.png
ADDED
![]() |
Git LFS Details
|
mask/lindau_000009_000019_gtFine_labelIds.png
ADDED
![]() |
Git LFS Details
|
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
|