Я загружаю изображение в хранилище BLOB-объектов Azure, пытаюсь получить координаты обнаруженных лиц на изображении, используя API-интерфейс Azure Face.
В первый раз это работает хорошо - я получаю правильныекоординаты;но со второго раза - когда я перезаписываю изображение, хранящееся в BLOB-объекте Azure, новым изображением - оно возвращает мне снова координаты, которые я получил в первый раз, вместо того, чтобы приносить мне координаты обнаруженных лиц в новом загруженном изображении.
Только если я подожду несколько дней, я загружаю новое изображение на этот URL - я получаю новые правильные координаты;но если я попытаюсь обнаружить лица на новом изображении через несколько минут / секунд / часов с последнего раза, это не даст мне правильного ответа.
Интересно то, что на портале Azure я вижуновое изображение хранится там, и я не вижу старого в BLOB-объекте.
Я пытаюсь преодолеть его, удалив каждое изображение из BLOB-объекта после его использования;Это означает, что каждый раз, когда я загружаю новое изображение в BLOB-объект, я не перезаписываю его, а создаю новое с тем же URL-адресом, который использовал ранее
Когда я пытался перезаписать изображение без удаления, оноТакже не сработало!
Вот код распознавания лиц:
public async Task CropFacesAsync()
{ UploadImageToStorage(imageName);
FaceClient faceClient = new FaceClient(
new ApiKeyServiceClientCredentials(subscriptionKey),
new System.Net.Http.DelegatingHandler[] { });
faceClient.Endpoint = uriBase;
IList<DetectedFace> faces = await faceClient.Face.DetectWithUrlAsync("https://<private details>" + imageName, true, false);
// Crop all the faces in the image.
Image img = Image.FromFile(@"..\..\..\..\" + imageName), croppedFaceImg;
FaceRectangle sample;
Rectangle cropArea;
Bitmap bmpImage = null;
int index = 0;
// Go over all the detected coordinates, and create new image(s) according to these.
foreach (var face in faces)
{
sample = face.FaceRectangle;
cropArea = new Rectangle(sample.Left, sample.Top, sample.Width, sample.Height);
bmpImage = new Bitmap(img);
croppedFaceImg = bmpImage.Clone(cropArea, System.Drawing.Imaging.PixelFormat.Format24bppRgb);
croppedFaceImg.Save(@"..\..\..\..\" + imageName.Substring(0, imageName.Length - 4) + "_" + (index++) + ".jpg");
bmpImage.Dispose();
}
// Release all resorces used by this image.
img.Dispose();
// Delete the image for testing from blob.
DeleteBlob(imageName);
}
У кого-то есть идеи, как решить эту проблему?
За исключением ответа в ближайшее время!Большое спасибо и хорошего дня!