شعار Aspose.Imaging Cloud

اكتشاف الكائنات هي تقنية حاسوبية مرتبطة برؤية الحاسوب ومعالجة الصور التي تتعامل مع اكتشاف حالات الكائنات الدلالية من فئة معينة (مثل البشر أو المباني أو السيارات) في الصور ومقاطع الفيديو الرقمية. في حالة احتياجك إلى إجراء اكتشاف الكائنات برمجيًا باستخدام Cloud API، فإن واجهات برمجة تطبيقات Aspose.Imaging Cloud هي الخيار الأمثل. لقد قمنا أيضًا بتطوير حزم تطوير برمجيات خاصة باللغة لتسهيل الأمر على عملائنا. لذا فإن Aspose.Imaging Cloud Java SDK هو خيار قابل للتطبيق للتعرف على الكائنات باستخدام Java.

في إصدارات الإصدار الأخيرة، قمنا بدمج ميزة اكتشاف الكائنات في حزم SDK الخاصة بنا وبمساعدة هذه الميزة، يتمكن المستخدمون من اكتشاف حدود الكائنات في صورة الإدخال، طالما كانت تسمياتها واحتمالاتها. تدعم واجهة برمجة التطبيقات حاليًا 3 تنسيقات صور نقطية (BMP وJPG وJPEG2000) وSingle Shot Detector (SSD) هي طريقة الكشف للتعرف على الكائنات. ومع ذلك، نخطط لدمج العديد من الطرق وتنسيقات الصور الأخرى في إصداراتنا اللاحقة. بمجرد إجراء العملية من خلال واجهة برمجة التطبيقات، يمكننا الحصول على كائن JSON مع حدود الكائنات المكتشفة والتسميات والنتائج أو صورة نتيجة مع حدود الكائنات والتسميات عليها. حاليًا، يمكنك تحديد كائنات مثل شخص أو دراجة أو سيارة أو قطة أو كلب أو حصان وما إلى ذلك. يمكنك التفكير في زيارة الرابط التالي لمزيد من التفاصيل حول قائمة التسميات المتاحة.

اكتشاف الكائنات وتسليط الضوء عليها في الصورة

هناك خياران لاكتشاف الكائنات داخل صورة، أي إجراء عملية على صورة مخزنة أو إجراء عملية على صورة تم تمريرها في نص الطلب.

معالجة الصور من التخزين السحابي

تتوقع الطريقة الأولى منك أولاً تحميل صورة إلى Cloud Storage ثم تمرير اسمها في عنوان URL الخاص بواجهة برمجة التطبيقات. بعد اكتشاف الكائن، تعيد واجهة برمجة التطبيقات الصورة الناتجة في الاستجابة.

نحن ندرك أيضًا أن تخزين السحابة هو وسيلة سريعة وسهلة لتخزين الملفات والوصول إليها. يمكن إجراء عملية اكتشاف الكائن بسهولة على الصور المخزنة على التخزين السحابي ويتم إرجاع الملف الناتج في رأس الاستجابة. في أمر cURL التالي، يتم إجراء عملية اكتشاف الكائن على صورة تحتوي على كائنات متعددة حيث يتم تحديد الوسائط لاستخدام Single Shot Detector (SSD) كنموذج اكتشاف، والحفاظ على قيمة العتبة عند 50، وتضمين تسميات الكائنات في الصورة الناتجة، وتحديد درجة اكتشاف الكائن أيضًا. علاوة على ذلك، حددنا Zebra, giraffe, horse كقائمة مفصولة بفواصل من التسميات المسموح بها مقابل وسيطة 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

مقتطف من كود جافا

 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:- الملف الناتج مع الكائنات المعترف بها

معالجة الصور بدون تخزين

توفر واجهة برمجة تطبيقات معالجة الصور طريقة ثانية (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);
}
إدخال الصورة مع الحصان

الصورة 3:- إدخال صورة مع حصان يركض

تم اكتشاف جسم الحصان في الصورة

الصورة 4:- تم اكتشاف الحصان بنسبة 98%

خاتمة

في هذه المقالة، استكشفنا الإمكانيات المتعلقة بالتعرف على الكائنات باستخدام Java SDK. إن SDK مدهشة للغاية لدرجة أنها تستطيع تحديد كائنات متعددة بدقة في محاولة واحدة. ولتسهيل الأمر على المستخدمين بشكل أكبر، فإنها تمكنهم من تمييز الكائنات ووضع علامات عليها وفقًا لذلك. في حالة مواجهة أي مشكلات أثناء استخدام واجهة برمجة التطبيقات، فلا تتردد في الاتصال بنا عبر منتدى دعم المنتج المجاني.

مقالات ذات صلة

ننصحك بزيارة الروابط التالية للتعرف على: