Es scheint, dass OpenVINO™ und Ultralytics-geladene Modelle unterschiedliche Eingaben erhalten haben, was den Unterschied in den Ergebnissen verursacht.
Es müssen einige Änderungen vorgenommen werden, um in einer lokalen Umgebung ausgeführt werden zu können:
04-04-accident-recog.ipynb
original_image: np.ndarray = cv2.imread("images/carImage3.jpg")
blob = cv2.dnn.blobFromImage(original_image, size=(640, 640), swapRB=False)
blob = np.ascontiguousarray(blob[0].transpose((1,2,0)))
results = model.predict(blob)
Image.fromarray(result.plot()[:,:,::-1].astype(np.uint8))
04-05-model-serving.ipynb
Keine Änderungen am Notebook selbst. Erforderliche Änderungen in remote_infer.py.
// code placeholder
def preprocess(image_path):
original_image: np.ndarray = cv2.imread(image_path)
[height, width, _] = original_image.shape
# Calculate scale factor
scale = (height/640, width/640)
# Preprocess the image and prepare blob for model
blob = cv2.dnn.blobFromImage(original_image, scalefactor=1 / 255, size=(640, 640), swapRB=True)
return blob, scale, original_image
draw_bounding_box(original_image, class_ids[index], scores[index], round(box[0] * scale[1]), round(box[1] * scale[0]),round((box[0] + box[2]) * scale[1]), round((box[1] + box[3]) * scale[0]))