Hi Everyone!!
I want to create my first dashboard in Shiny in Rstudio using Python. The objective is to deploy a TensorFlow model inside a Shiny app. We will build a model that can classify insects in images; then, we will build a Shiny app that lets you upload an image and get predictions from this model.
My idea is to create a dashboard that uses a training neural network (Yolov5) (model = 'best.pt'
) to identify the targets with a bounding box in a JPG image chosen.
But, I had mixed feelings about what must be R or Python in my code. My idea to create a dashboard that uses a training neural network (Yolov5) to identify the targets with bounding-box in an image chosen.
I try to draft this:
# app.py
from shiny import UI
from yolo_v5_inference import Inference
from PIL import Image as view
from IPython.display import Image
The ui.page
# Load the model
model = 'best.pt' # Better model trains using Yolov5 neural network in Python
# Define the UI
ui <- fluidPage(
# App title ----
titlePanel("Hello TensorFlow!"),
# Sidebar layout with input and output definitions ----
sidebarLayout(
# Sidebar panel for inputs ----
sidebarPanel(
# Input: File upload
fileInput("image_path", label = "Input a JPEG image")
),
# Main panel for displaying outputs ----
mainPanel(
# Output:
textOutput(outputId = "prediction"),
plotOutput(outputId = "image")
)
)
)
# Define server logic required to draw a histogram ----
server <- function(input, output) {
image <- reactive({
req(input$image_path)
jpeg::readJPEG(input$image_path$datapath)
})
output$prediction <- renderText({
img <- image() %>%
array_reshape(., dim = c(1, dim(.), 1))
standart = Inference(crops_path=imgage, yolov5_model_path=model, conf_threshold=0.5, rescale=(1.5, 1.5), save_rescaled=True)
standart.standart
paste0("The predicted bounding-box ")
})
output$image <- renderPlot({
plot(as.raster(image()))
})
}
shinyApp(ui, server)
Please, any help with it?