import re
import os
import cv2
from pycoral.utils.dataset import read_label_file
from pycoral.utils.edgetpu import make_interpreter
from pycoral.adapters import common
from pycoral.adapters import classify
# the TFLite converted to be used with edgetpu
modelPath = './efficientdet-lite-ha_edgetpu.tflite'
# The path to labels.txt that was downloaded with your model
labelPath = './ha-labels.txt'
# This function takes in a TFLite Interptere and Image, and returns classifications
def classifyImage(interpreter, image):
size = common.input_size(interpreter)
common.set_input(interpreter, cv2.resize(image, size, fx=0, fy=0,
interpolation=cv2.INTER_CUBIC))
interpreter.invoke()
return classify.get_classes(interpreter)
def main():
# Load your model onto the TF Lite Interpreter
interpreter = make_interpreter(modelPath)
interpreter.allocate_tensors()
labels = read_label_file(labelPath)
cap = cv2.VideoCapture('rtsp://192.168.1.212:8020/h264_pcm.sdp')
while cap.isOpened():
ret, frame = cap.read()
if not ret:
break
# Flip image so it matches the training input
frame = cv2.flip(frame, 1)
# Classify and display image
results = classifyImage(interpreter, frame)
# cv2.imshow('frame', frame)
print(f'Label: {labels[results[0].id]}, Score: {results[0].score}')
# if cv2.waitKey(1) & 0xFF == ord('q'):
# break
cap.release()
cv2.destroyAllWindows()
if __name__ == '__main__':
main()