-1
次のコードを使用してオブジェクトを検出して予測します。puttextラベルを常に表示する
for i in range(len(detections)):
face_i = detections[i]
x,y,w,h = face_i
xw1 = max(int(x - 0.4 * w), 0)
yw1 = max(int(y - 0.4 * h), 0)
xw2 = min(int(x + w + 0.7 * w), img_w - 1)
yw2 = min(int(y + h + 0.4 * h), img_h - 1)
roi = frame[yw1:yw2 + 1, xw1:xw2 + 1, :]
roi = cv2.resize(roi, (299, 299), interpolation=cv2.INTER_CUBIC)
numpy_frame = np.asarray(roi)
numpy_frame = cv2.normalize(numpy_frame.astype('float'), None, -0.5, .5, cv2.NORM_MINMAX)
numpy_final = np.expand_dims(numpy_frame, axis=0)
start_time = timeit.default_timer()
#Do prediction for every five seconds
if (constance.x % 5 == 0):
predictions = sess.run(detection_graph, {'Mul:0': numpy_final})
animal_score= predictions[0][1]
human_Score = predictions[0][0]
if (male_score > female_Score):
human_string = "Animal"
else:
human_string = "Human"
cv2.putText(image_np, str (human_string), (x, y - 10), font, 1, (0, 0, 255), 2, cv2.LINE_AA)
cv2.rectangle(image_np, (xw1, yw1), (xw2, yw2), (0, 222, 0), 1)
return image_np
予測には多くの時間がかかるため、時々予測をスキップします。 5秒ごとにテキストを置くだけなので、ラベルの値はちらつきます。どのようにラベルを常に表示させることができますか?
新しい値が以前の値と同じであるかどうかをチェックします。それ以外の場合は、cv2.putTextメソッドを使用します。 –
が同時に表示されることがあります。 –
いつもラベルを表示させることはどういう意味ですか?ラベルの値がまだ変化していない場合は、5秒ごとに点滅していますか? –