dbuscombe commited on
Commit
b480bf5
1 Parent(s): 7ce2317
Files changed (2) hide show
  1. SandSnapModel.dockerfile.notes +12 -0
  2. app.py +10 -5
SandSnapModel.dockerfile.notes ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ FROM docker.io/library/python:3.8.9@sha256:49d05fff9cb3b185b15ffd92d8e6bd61c20aa916133dca2e3dbe0215270faf53
3
+ RUN sed -i 's http://deb.debian.org http://cdn-aws.deb.debian.org g' /etc/apt/sources.list && sed -i 's http://archive.ubuntu.com http://us-east-1.ec2.archive.ubuntu.com g' /etc/apt/sources.list && sed -i '/security/d' /etc/apt/sources.list && apt-get update && apt-get install -y git git-lfs ffmpeg libsm6 libxext6 cmake libgl1-mesa-glx && rm -rf /var/lib/apt/lists/* && git lfs install
4
+ RUN pip install --no-cache-dir pip==22.3.1 && pip install --no-cache-dir datasets "huggingface-hub>=0.12.1" "protobuf<4" "click<8.1"
5
+ RUN --mount=target=/root/packages.txt,source=packages.txt sed -i 's http://deb.debian.org http://cdn-aws.deb.debian.org g' /etc/apt/sources.list && sed -i 's http://archive.ubuntu.com http://us-east-1.ec2.archive.ubuntu.com g' /etc/apt/sources.list && sed -i '/security/d' /etc/apt/sources.list && apt-get update && xargs -r -a /root/packages.txt apt-get install -y && rm -rf /var/lib/apt/lists/*
6
+ WORKDIR /home/user/app
7
+ RUN useradd -m -u 1000 user
8
+ RUN --mount=target=pre-requirements.txt,source=pre-requirements.txt pip install --no-cache-dir -r pre-requirements.txt
9
+ RUN --mount=target=requirements.txt,source=requirements.txt pip install --no-cache-dir -r requirements.txt
10
+ RUN pip install --no-cache-dir gradio==3.28.3
11
+ COPY --link --chown=1000 --from=lfs /app /home/user/app
12
+ COPY --link --chown=1000 ./ /home/user/app
app.py CHANGED
@@ -4,6 +4,8 @@
4
  import gradio as gr
5
  import numpy as np
6
  import sys, json, os
 
 
7
  sys.path.insert(1, 'app_files'+os.sep+'src')
8
  from sedinet_eval import *
9
 
@@ -83,16 +85,18 @@ def grainsize(input_img, dims=(1024, 1024)):
83
 
84
  result = estimate_siso_simo_1image(vars, input_img, greyscale,
85
  dropout, weights_path)
86
-
 
87
  result = np.array(result)
88
  print(result)
89
-
90
  plt.plot(np.hstack((result[:3], result[4:])),[10,16,25,50,65,75,84,90], 'k-o')
91
  plt.xlabel('Grain size (pixels)')
92
  plt.ylabel('Percent finer')
93
  plt.savefig("psd.png", dpi=300, bbox_inches="tight")
94
 
95
- return 'mean grain size = %f pixels' % (result[4]), '90th percentile grain size = %f pixels' % (result[-1]), plt
 
96
 
97
  title = "SandSnap/SediNet Model Demo- Measure grain size from image of sand!"
98
  description = "Allows upload of imagery and download of grain size statistics. Statistics are unscaled (i.e. in pixels)"
@@ -104,9 +108,10 @@ examples = [
104
  ]
105
 
106
  inp = gr.Image()
107
- out2 = gr.Plot(type='matplotlib')
 
108
 
109
- Segapp = gr.Interface(grainsize, inp, ["text", "text", out2], title = title, description = description, examples=examples)
110
  #, allow_flagging='manual', flagging_options=["bad", "ok", "good", "perfect"], flagging_dir="flagged")
111
 
112
  Segapp.launch(enable_queue=True)
 
4
  import gradio as gr
5
  import numpy as np
6
  import sys, json, os
7
+ import pandas as pd
8
+
9
  sys.path.insert(1, 'app_files'+os.sep+'src')
10
  from sedinet_eval import *
11
 
 
85
 
86
  result = estimate_siso_simo_1image(vars, input_img, greyscale,
87
  dropout, weights_path)
88
+ result_str = [str(i)[:5] for i in result]
89
+
90
  result = np.array(result)
91
  print(result)
92
+ plt.clf()
93
  plt.plot(np.hstack((result[:3], result[4:])),[10,16,25,50,65,75,84,90], 'k-o')
94
  plt.xlabel('Grain size (pixels)')
95
  plt.ylabel('Percent finer')
96
  plt.savefig("psd.png", dpi=300, bbox_inches="tight")
97
 
98
+
99
+ return 'mean grain size = %f pixels' % (result[4]), '90th percentile grain size = %f pixels' % (result[-1]), plt, pd.DataFrame(data=result_str, index=['10','16','25','50','mean','65','75','84','90']).transpose(),
100
 
101
  title = "SandSnap/SediNet Model Demo- Measure grain size from image of sand!"
102
  description = "Allows upload of imagery and download of grain size statistics. Statistics are unscaled (i.e. in pixels)"
 
108
  ]
109
 
110
  inp = gr.Image()
111
+ out1 = gr.Plot(type='matplotlib')
112
+ out2 = gr.Dataframe(label='Summary statistics', headers=['10','16','25','50','mean','65','75','84','90'], type='pandas')
113
 
114
+ Segapp = gr.Interface(grainsize, inp, ["text", "text", out1, out2], title = title, description = description, examples=examples)
115
  #, allow_flagging='manual', flagging_options=["bad", "ok", "good", "perfect"], flagging_dir="flagged")
116
 
117
  Segapp.launch(enable_queue=True)