acodet / streamlit_app.py
vskode
add files with lfs and code for tfrec and train
c25c31a
import streamlit as st
from acodet.create_session_file import create_session_file, read_session_file
from acodet.front_end import help_strings
if not "session_started" in st.session_state:
st.session_state.session_started = True
create_session_file()
from acodet.front_end import (
utils,
st_annotate,
st_generate_data,
st_train,
st_visualization,
)
utils.write_to_session_file("streamlit", True)
def select_preset():
utils.write_to_session_file("run_config", st.session_state.run_option)
show_run_btn = False
if st.session_state.run_option == 1:
show_run_btn = st_annotate.annotate_options()
elif st.session_state.run_option == 2:
show_run_btn = st_generate_data.generate_data_options()
elif st.session_state.run_option == 3:
show_run_btn = st_train.train_options()
if show_run_btn:
run_computions()
def run_computions(**kwargs):
utils.next_button(id=4, text="Next step")
if st.session_state.b4:
display_not_implemented_text()
kwargs = utils.prepare_run()
if not st.session_state.run_finished:
import run
st.session_state.save_dir = run.main(
fetch_config_again=True, **kwargs
)
st.session_state.run_finished = True
if st.session_state.run_finished:
if not st.session_state.preset_option == 3:
st.write("Computation finished")
utils.next_button(id=5, text="Show results")
st.markdown("""---""")
else:
conf = read_session_file()
st.session_state.b5 = True
st.session_state.save_dir = conf["generated_annotation_source"]
if not st.session_state.b5:
pass
else:
st_visualization.output()
st.stop()
def display_not_implemented_text():
if False:#not st.session_state.run_option == 1:
st.write(
"""This option is not yet implemented for usage
with the user interface. A headless version is
available at https://github.com/vskode/acodet."""
)
st.stop()
if __name__ == "__main__":
st.markdown(
"""
# Welcome to AcoDet - Acoustic Detection of Animal Vocalizations :loud_sound:
### This program is currently equipped with a humpback whale song detector for the North Atlantic :whale2:
For more information, please visit https://github.com/vskode/acodet
---
"""
)
run_option = int(
st.selectbox(
"How would you like run the program?",
("1 - Inference", "2 - Generate new training data", "3 - Train"),
key="main",
help=help_strings.RUN_OPTION,
)[0]
)
st.session_state.run_option = run_option
select_preset()