树莓派和计算棒实现图形识别 RaspBerry Pi4 with OpenVino and Movidius
1 import cv2 as cv 2 import sys 3 import logging as log 4 5 # openvino_fd_myriad.py 6 filename ='./' 7 8 log.basicConfig(format="[ %(levelname)s ] %(message)s", level=log.INFO, stream=sys.stdout) 9 10 if len(sys.argv) > 1 : 11 filename = filename + sys.argv[1] 12 else: 13 filename = filename + 'Girls.jpg' 14 15 log.info("Image is " + filename) 16 # Load the model. 17 net = cv.dnn.readNet('face-detection-adas-0001.xml','face-detection-adas-0001.bin') 18 19 # Specify target device. 20 21 net.setPreferableTarget(cv.dnn.DNN_TARGET_MYRIAD) 22 23 log.info("Inference model is face-detection-adas-0001") 24 # Read an image. 25 frame = cv.imread(filename) 26 27 if frame is None: 28 raise Exception('Image not found!') 29 30 log.info("Perform an inference " + filename) 31 # Prepare input blob and perform an inference. 32 blob = cv.dnn.blobFromImage(frame, size=(672, 384), ddepth=cv.CV_8U) 33 net.setInput(blob) 34 out = net.forward() 35 36 i = 0 37 # Draw detected faces on the frame. 38 for detection in out.reshape(-1, 7): 39 confidence = float(detection[2]) 40 xmin = int(detection[3] * frame.shape[1]) 41 ymin = int(detection[4] * frame.shape[0]) 42 xmax = int(detection[5] * frame.shape[1]) 43 ymax = int(detection[6] * frame.shape[0]) 44 if confidence > 0.5: 45 cv.rectangle(frame, (xmin, ymin), (xmax, ymax), color=(0, 255, 0), thickness=1) 46 cv.rectangle(frame, (xmin-1, ymin-1),(xmin+70, ymin-10), color=(0, 255, 0), thickness= -1) 47 i = i + 1 48 cv.putText(frame, 'Human : ' + str(i) + ' ' + str(confidence) , (xmin, ymin -2), cv.FONT_HERSHEY_SIMPLEX, 0.3, (0,0,0), thickness=1) 49 50 # Save the frame to an image file. 51 cv.imwrite(filename + '_out.png', frame) 52 log.info("Save the frame to an image file as png : " + filename)