I sh, чтобы добавить массив в другой. Я пробовал разные методы, такие как добавление, расширение и даже vstack, но я постоянно получаю ошибки.
Проясняя свой проект, я использую Fa cenet для создания вложений лиц, обнаруженных из веб-камера. Вложения 128-мерные. Кроме того, я создал набор данных из 26 граней, которые загружаются как вложения одинаковой размерности.
Во-первых, вложения набора данных загружаются в переменную с именем Data_1. Позже это будет использоваться для создания графиков t-SNE для визуализации данных. Сюжет работает хорошо, но я хочу иметь возможность сравнить сравнение лица из моей веб-камеры с точками набора данных
Вот код:
def detembed():
cam = cv2.VideoCapture(0)
_,frame = cam.read()
info = fd.detect_faces(frame)
if info != []:
for i in info:
x,y,w,h = i['box']
x,y = abs(x), abs(y)
w,h = abs(w), abs(h)
xx, yy = x+w, y+h
#cv2.rectangle(frame, (x,y), (xx,yy), (0,0,255),2)
face = frame[y:yy, x:xx]
image = Image.fromarray(face)
image = image.resize(size)
arr = asarray(image)
arr = arr.astype('float32')
mean, std = arr.mean(), arr.std()
arr = (arr - mean) / std
samples = expand_dims(arr, axis=0)
faces.append(samples)
#cv2.imshow('Camera Feed', frame)
while True:
detembed()
embeddings = Data_1
if not faces:
continue
else:
for face in faces:
embeds = facenet.predict(face)
print(embeds.shape, embeddings.shape)
embeds = expand_dims(embeds, axis=0)
embeddings = np.concatenate((embeddings,embeds), axis = 0 )
points = TSNE(random_state=seed).fit_transform(embeddings)
Я не хотел Заполните страницу кодом, но имейте в виду, что я пробовал различные методы (это конкатенация, добавление, расширение и вставка), но все безрезультатно. Большинство моих ошибок происходят с каким-то массивом, имеющим более высокий размер
ValueError: all the input arrays must have same number of dimensions, but the array at index 0 has 2 dimension(s) and the array at index 1 has 3 dimension
Я надеюсь, что кто-то может мне помочь