Я сейчас работаю над проектом обработки тензорного потока.Идентифицированы три типа объектов: 1 (автомобиль), 2 (автобус) и 3 (фургон), представленные как s_class.Обнаруженный выходной объект / objetcs дается s_class, который является numpy.ndarray.Когда я печатаю номер обнаруженного объекта,
(boxes, scores, classes, num) = sess.run(
[detection_boxes, detection_scores, detection_classes, num_detections],
feed_dict={image_tensor: frame_expanded})
s_class = classes[scores > 0.6]
print(s_class)
, он выдает вывод типа
>>[2.] #bus is detected
[3. 2. 1.] #all three objects(van,bus,car) are detected
[1. 2. 3.]
[1. 2. 3.]
[1. 2. 3.]
[2. 1. 3.]
[2. 1. 3.]
[2. 1. 3.]
[2. 1. 3.]
[2. 3. 1.]
[2. 3. 1.]
[] #nothing is detected
[2.] #only second object is detected
[]
[1.] #only first object is detected
и продолжает ... Объекты не представлены в массиве в упорядоченном порядке (например,: - [1. 2. 3.] или [2. 1. 3.] ... и т. Д. - это меняет положение) Мне нужно вывести «ok», если объект 1 обнаружен, и «notok», когда объект 2 и/ или 3 обнаружено.Также объект 1 обнаруживается с объектом 2 и / или 3, на нем должно быть напечатано «notok».Я пытался,
if (s_class==1):
print("ok")
elif (s_class==2 or s_class==3):
print("notok")
elif (s_class==1 and (s_class==2 or s_class==3)):
print("notok")
elif (s_class==1 and s_class==2 and s_class==3 ):
print("notok")
Это не работает.Как я могу сравнить этот numpy.ndarray с вышеуказанными условиями?