KB Teo commited on
Commit
32f1589
·
1 Parent(s): 22844af

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +13 -7
app.py CHANGED
@@ -16,7 +16,8 @@ if importlib.util.find_spec("openvino"):
16
  def predict_openvino(
17
  image: Union[str, Path, np.ndarray],
18
  model_path: Union[str, Path],
19
- device: str) -> Dict[str, np.ndarray]:
 
20
  global inferencer, last_model_path
21
  if not isinstance(inferencer, OpenVINOInferencer) or last_model_path != str(model_path):
22
  inferencer = OpenVINOInferencer(
@@ -24,6 +25,7 @@ if importlib.util.find_spec("openvino"):
24
  device=device.upper()
25
  )
26
  last_model_path = str(model_path)
 
27
  return inferencer(image)
28
 
29
  def draw_contour(image, mask, color=(255,0,0), thickness=3):
@@ -34,27 +36,31 @@ def convert_to_heatmap(heatmap):
34
  heatmap = cv2.applyColorMap((heatmap*255).astype("uint8"), cv2.COLORMAP_HSV)
35
  return heatmap
36
 
37
- def predict(image, device, model_dir):
38
- outputs = predict_openvino(image, model_dir, device)
39
  out_image = draw_contour(image, outputs["pred_mask"])
40
  heatmap = convert_to_heatmap(outputs["anomaly_map"])
41
  return out_image, heatmap
42
 
43
  def launch():
44
- input_image = gr.Image(label="Input image")
 
 
 
 
45
  devices = gr.Radio(
46
  label="Device",
47
- choices=["AUTO", "CPU", "CUDA"],
48
  value="CPU",
49
  interactive=False
50
  )
51
  output_image = gr.Image(label="Output image")
52
  output_heatmap = gr.Image(label="Heatmap")
53
- model = gr.Text(label="Model", interactive=False, value="models/default")
54
  intf = gr.Interface(
55
  title="Anomaly Detection",
56
  fn=predict,
57
- inputs=[input_image, devices, model],
58
  outputs=[output_image, output_heatmap]
59
  )
60
  intf.launch()
 
16
  def predict_openvino(
17
  image: Union[str, Path, np.ndarray],
18
  model_path: Union[str, Path],
19
+ device: str,
20
+ threshold: float) -> Dict[str, np.ndarray]:
21
  global inferencer, last_model_path
22
  if not isinstance(inferencer, OpenVINOInferencer) or last_model_path != str(model_path):
23
  inferencer = OpenVINOInferencer(
 
25
  device=device.upper()
26
  )
27
  last_model_path = str(model_path)
28
+ inferencer.metadata["pixel_threshold"] = threshold
29
  return inferencer(image)
30
 
31
  def draw_contour(image, mask, color=(255,0,0), thickness=3):
 
36
  heatmap = cv2.applyColorMap((heatmap*255).astype("uint8"), cv2.COLORMAP_HSV)
37
  return heatmap
38
 
39
+ def predict(image, threshold, device, model_dir):
40
+ outputs = predict_openvino(image, model_dir, device, threshold)
41
  out_image = draw_contour(image, outputs["pred_mask"])
42
  heatmap = convert_to_heatmap(outputs["anomaly_map"])
43
  return out_image, heatmap
44
 
45
  def launch():
46
+ input_image = gr.Image(
47
+ label="Input image",
48
+ value="images/171436008_Fail.jpeg"
49
+ )
50
+ threshold = gr.Slider(value=5.5, step=0.1, label="Threshold")
51
  devices = gr.Radio(
52
  label="Device",
53
+ choices=["AUTO", "CPU", "GPU"],
54
  value="CPU",
55
  interactive=False
56
  )
57
  output_image = gr.Image(label="Output image")
58
  output_heatmap = gr.Image(label="Heatmap")
59
+ model = gr.Text(label="Model", interactive=False, value="models/glass-tr-5-ov")
60
  intf = gr.Interface(
61
  title="Anomaly Detection",
62
  fn=predict,
63
+ inputs=[input_image, threshold, devices, model],
64
  outputs=[output_image, output_heatmap]
65
  )
66
  intf.launch()