Хмарний логотип Aspose.Imaging

Виявлення об’єктів — це комп’ютерна технологія, пов’язана з комп’ютерним зором і обробкою зображень, яка має справу з виявленням екземплярів семантичних об’єктів певного класу (таких як люди, будівлі чи автомобілі) у цифрових зображеннях і відео. Якщо вам потрібно програмно виконати виявлення об’єктів за допомогою Cloud API, то Aspose.Imaging Cloud API є ідеальним вибором. Ми також розробили SDK для окремих мов, щоб полегшити роботу наших клієнтів. Тож Aspose.Imaging Cloud Java SDK є прийнятним вибором для розпізнавання об’єктів за допомогою Java.

В останніх версіях ми включили функцію виявлення об’єктів у наші SDK, і за допомогою цієї функції користувачі можуть виявляти межі об’єктів на вхідному зображенні, а також їхні мітки та ймовірності. Наразі API підтримує 3 формати растрових зображень (BMP, JPG і JPEG2000), а детектор одноразового знімка (SSD) є методом виявлення для розпізнавання об’єктів. Тим не менш, ми плануємо інтегрувати кілька інших методів і форматів зображень у наші наступні випуски. Після виконання операції через API ми можемо отримати об’єкт JSON із виявленими межами об’єкта, мітками та оцінками або зображення результату з межами та мітками об’єкта. Наразі ви можете розпізнавати такі об’єкти, як людина, велосипед, автомобіль, кіт, собака, кінь тощо. Ви можете перейти за наступним посиланням, щоб отримати додаткові відомості про Список доступних міток.

Виявляти об’єкти та виділяти на зображенні

Існує два варіанти виявлення об’єктів всередині зображення, тобто виконання операції над зображенням у сховищі або виконання операції над зображенням, переданим у тілі запиту.

Обробляйте зображення з хмарного сховища

Перший метод передбачає, що ви спочатку завантажите зображення в Cloud Storage, а потім передасте його ім’я в URL-адресі API. Після виявлення об’єкта API повертає результуюче зображення у відповідь.

Ми також розуміємо, що хмарні сховища — це швидкий і простий спосіб зберігання та доступу до файлів. Процедуру виявлення об’єкта можна легко виконати на зображеннях, які зберігаються в хмарному сховищі, і отриманий файл повертається в заголовку відповіді. У наступній команді cURL операція виявлення об’єкта виконується на зображенні, що містить кілька об’єктів, де в якості аргументів вказується використання детектора одиночного знімка (SSD) як моделі виявлення, збереження порогового значення 50, включення міток об’єктів до результуючого зображення та також вкажіть оцінку виявлення об’єкта. Крім того, ми вказали «Зебра», «жираф», «кінь» як список дозволених міток, розділених комами, проти аргументу allowedLabels. Тим не менше, якщо ви хочете зберегти отриманий файл у локальній системі, ви можете спробувати використати -o та вказати розташування для отриманого файлу.

команда cURL

curl -v "https://api.aspose.cloud/v3.0/imaging/ai/objectdetection/71ElMFUKIvL.jpg/visualbounds?method=ssd&threshold=50&includeLabel=true&includeScore=true&allowedLabels=zebra, giraffe, horse" \
-X GET \
-H "accept: application/json" \
-H "authorization: Bearer <JWT Token>" \
-o c:/pdftest/mydetected.jpeg

Фрагмент коду Java

 public void VisualBoundsAnImageInCloud() throws Exception {

	String fileName = "object_detection_example.jpg";
	
	String method = "ssd";
	int threshold = 50;
	Boolean includeLabel = true;
	Boolean includeScore = true;
	String color = "blue";
	String folder = CloudPath; // Input file is saved at the Examples folder in the storage
	String storage = null; // We are using default Cloud Storage

	GetVisualObjectBoundsRequest request = new GetVisualObjectBoundsRequest(getSampleImageFileName(), method, threshold, includeLabel, includeScore, color, folder, storage);

	byte[] resultImage = ImagingApi.getVisualObjectBounds(request);
	Path path = Paths.get(OutputFolder, "object_detection_example_out.jpg").toAbsolutePath();
    Files.write(path, resultImage);
}
Вихідний файл для виявлення об'єктів

Зображення 1: - Вихідний файл для виявлення об’єкта

Отримане зображення з виявленими об'єктами

Зображення 2: - Отриманий файл із розпізнаними об’єктами

Обробляйте зображення без зберігання

API обробки зображень пропонує другий метод (POST), за допомогою якого ви можете безпосередньо передати зображення з локального сховища в тіло запиту. Це також дозволяє зберегти отримане зображення в хмарному сховищі, вказавши значення параметра outPath. Однак, якщо ви не вкажете значення, відповідь міститиме потокове зображення.

команда cURL

curl -X POST "https://api.aspose.cloud/v3.0/imaging/ai/objectdetection/visualbounds?method=ssd&threshold=50&includeLabel=true&includeScore=true&allowedLabels=bird, cat, dog, horse, sheep, cow, elephant, bear, zebra, giraffe&color=yellow" -H "accept: application/json" -H "authorization: Bearer <jwt token>" -H "Content-Type: multipart/form-data" -d {"imageData":{}}

URL запиту

https://api.aspose.cloud/v3.0/imaging/ai/objectdetection/visualbounds?method=ssd&threshold=50&includeLabel=true&includeScore=true&allowedLabels=bird, cat, dog, horse, sheep, cow, elephant, bear, zebra, giraffe&color=yellow

Фрагмент коду Java

public void VisualBoundsAnImageInRequestBody() throws Exception {

	String fileName = "object_detection_example.jpg";
	
	String method = "ssd";
	int threshold = 50;
	Boolean includeLabel = true;
	Boolean includeScore = true;
	String color = null;
	String outPath = null;
	String storage = null; // We are using default Cloud Storage

	byte[] inputStream = Files.readAllBytes(Paths.get(ExampleImagesFolder, getSampleImageFileName()));
	CreateVisualObjectBoundsRequest request = new CreateVisualObjectBoundsRequest(inputStream, method, threshold, includeLabel, includeScore, color, outPath, storage);	

	byte[] resultImage = ImagingApi.createVisualObjectBounds(request);
	Path path = Paths.get(OutputFolder, "object_detection_example_out.jpg").toAbsolutePath();
    Files.write(path, resultImage);
}
Введіть зображення з конем

Зображення 3: - Вхідне зображення з конем, що біжить

На зображенні виявлено коня

Зображення 4:- Кінь виявлено з результатом 98%.

Висновок

У цій статті ми досліджували можливості, пов’язані з розпізнаванням об’єктів за допомогою Java SDK. SDK настільки дивовижний, що він може точно визначити кілька об’єктів за одну спробу. Для додаткового полегшення користувачам він дає змогу виділяти об’єкти та позначати їх відповідним чином. Якщо у вас виникнуть проблеми під час використання API, зв’яжіться з нами через безкоштовний форум підтримки продуктів.

Схожі статті

Ми рекомендуємо відвідати такі посилання, щоб дізнатися про: