Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

how to add custom Keras model in OpenCv in python

i have created a model for classification of two types of shoes

now how to deploy it in OpenCv (videoObject detection)??

thanks in advance

like image 524
jony Avatar asked Jul 18 '19 11:07

jony


1 Answers

You can do that with the help of OpenCV DNN module:

import cv2

# Load a model imported from Tensorflow
tensorflowNet = cv2.dnn.readNetFromTensorflow('card_graph/frozen_inference_graph.pb', 'exported_pbtxt/output.pbtxt')

# Input image
img = cv2.imread('image.jpg')
rows, cols, channels = img.shape

# Use the given image as input, which needs to be blob(s).
tensorflowNet.setInput(cv2.dnn.blobFromImage(img, size=(300, 300), swapRB=True, crop=False))

# Runs a forward pass to compute the net output
networkOutput = tensorflowNet.forward()

# Loop on the outputs
for detection in networkOutput[0,0]:

    score = float(detection[2])
    if score > 0.9:

        left = detection[3] * cols
        top = detection[4] * rows
        right = detection[5] * cols
        bottom = detection[6] * rows

        #draw a red rectangle around detected objects
        cv2.rectangle(img, (int(left), int(top)), (int(right), int(bottom)), (0, 0, 255), thickness=2)

# Show the image with a rectagle surrounding the detected objects 
cv2.imshow('Image', img)
cv2.waitKey()
cv2.destroyAllWindows()

you need frozen inference graph and pbtxt file to run your model in OpenCV

like image 51
Ajinkya Avatar answered Nov 20 '22 23:11

Ajinkya