Spaces:
Sleeping
Sleeping
Janne Mäyrä
commited on
add app
Browse filesThis view is limited to 50 files because it contains too many changes.
See raw diff
- .gitignore +1 -0
- app.py +85 -0
- examples/Hiidenportti_121.png +0 -0
- examples/Hiidenportti_122.png +0 -0
- examples/Hiidenportti_123.png +0 -0
- examples/Hiidenportti_124.png +0 -0
- examples/Hiidenportti_125.png +0 -0
- examples/Hiidenportti_127.png +0 -0
- examples/Hiidenportti_128.png +0 -0
- examples/Hiidenportti_129.png +0 -0
- examples/Hiidenportti_13.png +0 -0
- examples/Hiidenportti_131.png +0 -0
- examples/Hiidenportti_133.png +0 -0
- examples/Hiidenportti_134.png +0 -0
- examples/Hiidenportti_135.png +0 -0
- examples/Hiidenportti_136.png +0 -0
- examples/Hiidenportti_137.png +0 -0
- examples/Hiidenportti_139.png +0 -0
- examples/Hiidenportti_140.png +0 -0
- examples/Hiidenportti_141.png +0 -0
- examples/Hiidenportti_142.png +0 -0
- examples/Hiidenportti_143.png +0 -0
- examples/Hiidenportti_151.png +0 -0
- examples/Hiidenportti_157.png +0 -0
- examples/Hiidenportti_158.png +0 -0
- examples/Hiidenportti_159.png +0 -0
- examples/Hiidenportti_161.png +0 -0
- examples/Hiidenportti_162.png +0 -0
- examples/Hiidenportti_165.png +0 -0
- examples/Hiidenportti_167.png +0 -0
- examples/Hiidenportti_169.png +0 -0
- examples/Hiidenportti_172.png +0 -0
- examples/Hiidenportti_175.png +0 -0
- examples/Hiidenportti_177.png +0 -0
- examples/Hiidenportti_178.png +0 -0
- examples/Hiidenportti_184.png +0 -0
- examples/Hiidenportti_19.png +0 -0
- examples/Hiidenportti_196.png +0 -0
- examples/Hiidenportti_197.png +0 -0
- examples/Hiidenportti_198.png +0 -0
- examples/Hiidenportti_20.png +0 -0
- examples/Hiidenportti_200.png +0 -0
- examples/Hiidenportti_201.png +0 -0
- examples/Hiidenportti_202.png +0 -0
- examples/Hiidenportti_204.png +0 -0
- examples/Hiidenportti_205.png +0 -0
- examples/Hiidenportti_26.png +0 -0
- examples/Hiidenportti_32.png +0 -0
- examples/Hiidenportti_48.png +0 -0
- examples/Hiidenportti_53.png +0 -0
.gitignore
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
__pycache__
|
app.py
ADDED
@@ -0,0 +1,85 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import gradio as gr
|
2 |
+
from ultralytics import YOLO
|
3 |
+
|
4 |
+
import os
|
5 |
+
from pathlib import Path
|
6 |
+
|
7 |
+
model_paths = {
|
8 |
+
'YOLOv8n': '/mnt/d/Users/E1005164/articles/deadwood-yolov8/codes/runs_pretrained/yolov8n_Adam',
|
9 |
+
'YOLOv8s': '/mnt/d/Users/E1005164/articles/deadwood-yolov8/codes/runs_pretrained/yolov8s_Adam',
|
10 |
+
'YOLOv8m': '/mnt/d/Users/E1005164/articles/deadwood-yolov8/codes/runs_pretrained/yolov8m_Adam',
|
11 |
+
'YOLOv8l': '/mnt/d/Users/E1005164/articles/deadwood-yolov8/codes/runs_pretrained/yolov8l_Adam',
|
12 |
+
'YOLOv8x': '/mnt/d/Users/E1005164/articles/deadwood-yolov8/codes/runs_pretrained/yolov8x_Adam',
|
13 |
+
}
|
14 |
+
|
15 |
+
def run_models(
|
16 |
+
im:gr.Image=None,
|
17 |
+
model_type:gr.Dropdown='YOLOv8n',
|
18 |
+
conf_thr:gr.Slider=0.25
|
19 |
+
):
|
20 |
+
|
21 |
+
hp_model = f'{model_paths[model_type]}_hp/weights/best.pt'
|
22 |
+
model = YOLO(hp_model)
|
23 |
+
model.to(device='cpu')
|
24 |
+
hp_result = model(im[:,:,::-1], conf=conf_thr)
|
25 |
+
hp_im = hp_result[0].plot()
|
26 |
+
|
27 |
+
spk_model = f'{model_paths[model_type]}_spk/weights/best.pt'
|
28 |
+
model = YOLO(spk_model)
|
29 |
+
model.to(device='cpu')
|
30 |
+
|
31 |
+
spk_result = model(im[:,:,::-1], conf=conf_thr)
|
32 |
+
spk_im = spk_result[0].plot()
|
33 |
+
|
34 |
+
both_model = f'{model_paths[model_type]}_both/weights/best.pt'
|
35 |
+
model = YOLO(both_model)
|
36 |
+
model.to(device='cpu')
|
37 |
+
|
38 |
+
both_result = model(im[:,:,::-1], conf=conf_thr)
|
39 |
+
both_im = both_result[0].plot()
|
40 |
+
return [
|
41 |
+
(hp_im[:,:,::-1], 'HP'),
|
42 |
+
(spk_im[:,:,::-1], 'SPK'),
|
43 |
+
(both_im[:,:,::-1], 'HP+SPK')
|
44 |
+
]
|
45 |
+
|
46 |
+
ex_dir = Path('examples')
|
47 |
+
|
48 |
+
loc = gr.Textbox(label='Location')
|
49 |
+
|
50 |
+
desc_str = """
|
51 |
+
Demo application for YOLOv8 models for deadwood segmentation from RGB UAV imagery. Results are shown on three different models: HP is trained only with data from Hiidenportti,
|
52 |
+
SPK only with data from Sudenpesänkangas and HP+SPK is trained with both sites.
|
53 |
+
"""
|
54 |
+
|
55 |
+
with gr.Blocks() as demo:
|
56 |
+
with gr.Row():
|
57 |
+
gr.Markdown(desc_str)
|
58 |
+
with gr.Row():
|
59 |
+
with gr.Column(2):
|
60 |
+
inp = gr.Image(label='Input image', sources='upload')
|
61 |
+
with gr.Column(1):
|
62 |
+
ex_list = [[ex_dir/i, i.split('_')[0]] for i in os.listdir(ex_dir)]
|
63 |
+
ex = gr.Examples(ex_list, inputs=[inp, loc], label=None,
|
64 |
+
cache_examples=False, examples_per_page=5)
|
65 |
+
with gr.Column(1):
|
66 |
+
loc.render()
|
67 |
+
model = gr.Dropdown([
|
68 |
+
'YOLOv8n',
|
69 |
+
'YOLOv8s',
|
70 |
+
'YOLOv8m',
|
71 |
+
'YOLOv8l',
|
72 |
+
'YOLOv8x'
|
73 |
+
],
|
74 |
+
value='YOLOv8n', label='Model')
|
75 |
+
conf = gr.Slider(minimum=0.0, maximum=1.0, value=0.25, step=0.05, label='Confidence Threshold')
|
76 |
+
btn = gr.Button()
|
77 |
+
with gr.Row():
|
78 |
+
with gr.Column():
|
79 |
+
gallery = gr.Gallery(
|
80 |
+
label='Predictions', show_label=True, elem_id='gallery',
|
81 |
+
columns=[3], rows=[1], object_fit='contain', interactive=False
|
82 |
+
)
|
83 |
+
btn.click(run_models, [inp, model, conf], gallery)
|
84 |
+
|
85 |
+
if __name__ == '__main__': demo.launch(share=False)
|
examples/Hiidenportti_121.png
ADDED
examples/Hiidenportti_122.png
ADDED
examples/Hiidenportti_123.png
ADDED
examples/Hiidenportti_124.png
ADDED
examples/Hiidenportti_125.png
ADDED
examples/Hiidenportti_127.png
ADDED
examples/Hiidenportti_128.png
ADDED
examples/Hiidenportti_129.png
ADDED
examples/Hiidenportti_13.png
ADDED
examples/Hiidenportti_131.png
ADDED
examples/Hiidenportti_133.png
ADDED
examples/Hiidenportti_134.png
ADDED
examples/Hiidenportti_135.png
ADDED
examples/Hiidenportti_136.png
ADDED
examples/Hiidenportti_137.png
ADDED
examples/Hiidenportti_139.png
ADDED
examples/Hiidenportti_140.png
ADDED
examples/Hiidenportti_141.png
ADDED
examples/Hiidenportti_142.png
ADDED
examples/Hiidenportti_143.png
ADDED
examples/Hiidenportti_151.png
ADDED
examples/Hiidenportti_157.png
ADDED
examples/Hiidenportti_158.png
ADDED
examples/Hiidenportti_159.png
ADDED
examples/Hiidenportti_161.png
ADDED
examples/Hiidenportti_162.png
ADDED
examples/Hiidenportti_165.png
ADDED
examples/Hiidenportti_167.png
ADDED
examples/Hiidenportti_169.png
ADDED
examples/Hiidenportti_172.png
ADDED
examples/Hiidenportti_175.png
ADDED
examples/Hiidenportti_177.png
ADDED
examples/Hiidenportti_178.png
ADDED
examples/Hiidenportti_184.png
ADDED
examples/Hiidenportti_19.png
ADDED
examples/Hiidenportti_196.png
ADDED
examples/Hiidenportti_197.png
ADDED
examples/Hiidenportti_198.png
ADDED
examples/Hiidenportti_20.png
ADDED
examples/Hiidenportti_200.png
ADDED
examples/Hiidenportti_201.png
ADDED
examples/Hiidenportti_202.png
ADDED
examples/Hiidenportti_204.png
ADDED
examples/Hiidenportti_205.png
ADDED
examples/Hiidenportti_26.png
ADDED
examples/Hiidenportti_32.png
ADDED
examples/Hiidenportti_48.png
ADDED
examples/Hiidenportti_53.png
ADDED