Views
No views yet
1from transformers import BlipProcessor
2import onnxruntime as ort
3from PIL import Image
4
5# load the ONNX model
6onnx_model_path = "models/navqa_onnx/model.onnx"
7ort_session = ort.InferenceSession(onnx_model_path,providers=["CPUExecutionProvider"])
8
9# load the processor
10model_id = "models/navqa_onnx"
11processor = BlipProcessor.from_pretrained(model_id)
12
13# prepare the input image and question
14raw_image = Image.open("img/path")
15question = "question?"
16
17# process the inputs using the processor
18inputs = processor(raw_image, question, return_tensors="np")
19
20# the input tensors for ONNX
21pixel_values = inputs["pixel_values"]
22input_ids = inputs["input_ids"]
23
24# run inference on the ONNX model
25outputs = ort_session.run(
26 None,
27 {
28 "pixel_values": pixel_values,
29 "input_ids": input_ids,
30 }
31)
32
33# decode the output
34output_ids = outputs[0] # Extract the output (token IDs)
35decoded_output = processor.tokenizer.decode(output_ids[0], skip_special_tokens=True)
36
37print(decoded_output)