تشخیص اشیاء یک فناوری کامپیوتری مرتبط با بینایی کامپیوتری و پردازش تصویر است که با شناسایی نمونه هایی از اشیاء معنایی یک کلاس خاص (مانند انسان، ساختمان یا اتومبیل) در تصاویر و ویدئوهای دیجیتال سروکار دارد. در صورتی که نیاز به انجام برنامهنویسی تشخیص شی با استفاده از Cloud API دارید، APIهای Aspose.Imaging Cloud یک انتخاب عالی هستند. ما همچنین SDK های مختص زبان را برای تسهیل مشتریان خود توسعه داده ایم. بنابراین Aspose.Imaging Cloud Java SDK یک انتخاب مناسب برای تشخیص اشیا با استفاده از Java است.
در نسخههای منتشر شده اخیر، ما ویژگی تشخیص شی را در SDKهای خود گنجاندهایم و با کمک این ویژگی، کاربران میتوانند تا زمانی که برچسبها و احتمالات آنها در یک تصویر ورودی وجود دارد، مرزهای شی را تشخیص دهند. API در حال حاضر از 3 فرمت تصویر شطرنجی (BMP، JPG و JPEG2000) پشتیبانی میکند و آشکارساز تک شات (SSD) روش تشخیص برای تشخیص اشیا است. با این وجود، ما در حال برنامه ریزی برای ادغام چندین روش و فرمت تصویر دیگر در نسخه های بعدی خود هستیم. هنگامی که عملیات از طریق API انجام شد، میتوانیم یک شی JSON با محدودیتها، برچسبها و امتیازات شی شناسایی شده یا یک تصویر نتیجه با کرانهای شی و برچسبها روی آن دریافت کنیم. در حال حاضر، شما می توانید اشیایی مانند یک شخص، دوچرخه، ماشین، گربه، سگ، اسب و غیره را شناسایی کنید. برای جزئیات بیشتر در فهرست برچسب های موجود می توانید از لینک زیر دیدن کنید.
اشیاء را تشخیص داده و روی تصویر برجسته کنید
دو گزینه برای شناسایی اشیاء در داخل یک تصویر وجود دارد، یعنی انجام یک عملیات روی یک تصویر در ذخیره سازی یا انجام یک عملیات روی یک تصویر ارسال شده در بدنه درخواست.
- دریافت /imaging/ai/objectdetection/{name}/visualbounds
- POST /imaging/ai/objecttetection/visualbounds
پردازش تصاویر از Cloud Storage
روش اول از شما انتظار دارد که ابتدا یک تصویر را در فضای ذخیره سازی ابری آپلود کنید و سپس نام آن را در URL API قرار دهید. پس از شناسایی شی، API تصویر حاصل را در پاسخ برمی گرداند.
همچنین میدانیم که فضای ذخیرهسازی ابری راهی سریع و آسان برای ذخیره و دسترسی به فایلها است. روش تشخیص شی را می توان به راحتی بر روی تصاویر ذخیره شده در فضای ذخیره سازی ابری انجام داد و فایل حاصل در هدر پاسخ برگردانده می شود. در دستور cURL زیر، عملیات تشخیص شی بر روی یک تصویر حاوی چندین شی انجام می شود که در آن آرگومان ها، مشخص شده است که از آشکارساز تک شات (SSD) به عنوان مدل تشخیص استفاده کند، مقدار آستانه را روی 50 نگه دارد، برچسب های اشیاء را در تصویر حاصل اضافه کند، و همچنین امتیاز تشخیص شی را مشخص کنید. علاوه بر این، گورخر، زرافه، اسب را بهعنوان فهرستی از برچسبهای مجاز جدا شده با کاما در مقابل آرگومان allowLabels مشخص کردهایم. با این وجود، اگر میخواهید فایل حاصل را در سیستم محلی ذخیره کنید، میتوانید از -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
قطعه کد جاوا
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);
}
پردازش تصاویر بدون ذخیره سازی
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
قطعه کد جاوا
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);
}
نتیجه گیری
در این مقاله به بررسی قابلیت های مربوط به تشخیص اشیا با استفاده از Java SDK پرداخته ایم. SDK آنقدر شگفتانگیز است که میتواند چندین شی را در یک تلاش دقیقاً تعیین کند. برای تسهیل بیشتر کاربران، آنها را قادر میسازد تا اشیا را برجسته کرده و بر اساس آن برچسبگذاری کنند. اگر هنگام استفاده از API با مشکلی مواجه شدید، لطفاً از طریق [تالار گفتمان پشتیبانی رایگان محصول] با ما تماس بگیرید.
مقالات مرتبط
توصیه می کنیم برای کسب اطلاعات بیشتر به لینک های زیر مراجعه کنید: