לוגו ענן Aspose.Imaging

זיהוי אובייקטים היא טכנולוגיית מחשב הקשורה לראייה ממוחשבת ולעיבוד תמונה העוסקת באיתור מופעים של אובייקטים סמנטיים ממעמד מסוים (כגון בני אדם, בניינים או מכוניות) בתמונות ובסרטונים דיגיטליים. במקרה שאתה צריך לבצע באופן תוכניתי את זיהוי האובייקטים באמצעות Cloud API, אז Aspose.Imaging Cloud APIs הם בחירה מושלמת. פיתחנו גם ערכות SDK ספציפיות לשפה כדי להקל על הלקוחות שלנו. אז Aspose.Imaging Cloud Java SDK היא בחירה מעשית לזיהוי אובייקטים באמצעות Java.

בגרסאות המהדורות האחרונות, שילבנו את תכונת זיהוי האובייקטים ב-SDKs שלנו ובעזרת תכונה זו, משתמשים יכולים לזהות גבולות אובייקט בתמונת קלט, כל עוד התוויות וההסתברויות שלהם. ה-API תומך כיום ב-3 פורמטים של תמונת רסטר (BMP, JPG, ו-JPEG2000) ו-Single Shot Detector (SSD) היא שיטת הזיהוי לזיהוי אובייקטים. עם זאת, אנו מתכננים לשלב מספר שיטות ופורמטים נוספים של תמונה במהדורות הבאות שלנו. לאחר שהפעולה מבוצעת דרך API, נוכל לקבל אובייקט JSON עם גבולות אובייקט מזוהים, תוויות וציונים או תמונת תוצאה עם גבולות ותוויות של אובייקט. נכון לעכשיו, אתה יכול לזהות חפצים כגון אדם, אופניים, מכונית, חתול, כלב, סוס וכו’. תוכל לשקול לבקר בקישור הבא לפרטים נוספים על [רשימת התוויות הזמינות].

זיהוי אובייקטים והדגש על התמונה

ישנן שתי אפשרויות לזהות אובייקטים בתוך תמונה כלומר לבצע פעולה על תמונה באחסון או לבצע פעולה על תמונה שעברה בגוף הבקשה.

עבד תמונות מ-Cloud Storage

השיטה הראשונה מצפה ממך להעלות תחילה תמונה ל-Cloud Storage ולאחר מכן להעביר את שמה בכתובת ה-API. לאחר זיהוי האובייקט, ה-API מחזיר את התמונה המתקבלת בתגובה.

אנו גם מבינים שאחסון בענן הוא דרך מהירה וקלה לאחסן ולגשת לקבצים. הליך זיהוי האובייקטים יכול להתבצע בקלות על תמונות המאוחסנות באחסון ענן והקובץ שנוצר מוחזר בכותרת התגובה. בפקודת cURL הבאה, פעולת זיהוי האובייקט מבוצעת על תמונה המכילה מספר אובייקטים שבהם ארגומנטים, צוין להשתמש ב-Single Shot Detector (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

קטע קוד 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) שבה אתה יכול להעביר ישירות את התמונה מהאחסון המקומי לגוף הבקשה. זה גם מאפשר לך לשמור את התמונה המתקבלת ב-Cloud Storage על ידי ציון ערך הפרמטר 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":{}}

בקש כתובת אתר

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, אל תהסס לפנות אלינו דרך פורום תמיכת המוצרים החינמי.

מאמרים קשורים

אנו ממליצים לבקר בקישורים הבאים כדי ללמוד על: