Biểu trưng đám mây Aspose.Imaging

Phát hiện đối tượng là một công nghệ máy tính liên quan đến thị giác máy tính và xử lý hình ảnh, liên quan đến việc phát hiện các trường hợp đối tượng ngữ nghĩa của một lớp nhất định (như con người, tòa nhà hoặc ô tô) trong hình ảnh và video kỹ thuật số. Trong trường hợp bạn cần thực hiện phát hiện đối tượng theo chương trình bằng Cloud API, thì Aspose.Imaging Cloud API là lựa chọn hoàn hảo. Chúng tôi cũng đã phát triển SDK dành riêng cho ngôn ngữ để hỗ trợ khách hàng của mình. Vì vậy, Aspose.Imaging Cloud Java SDK là lựa chọn khả thi để nhận dạng đối tượng bằng Java.

Trong các phiên bản phát hành gần đây, chúng tôi đã tích hợp tính năng phát hiện đối tượng vào SDK của mình và với sự trợ giúp của tính năng này, người dùng có thể phát hiện ranh giới đối tượng trên hình ảnh đầu vào, miễn là nhãn và xác suất của chúng. API hiện hỗ trợ 3 định dạng hình ảnh raster (BMP, JPGJPEG2000) và Single Shot Detector (SSD) là phương pháp phát hiện để nhận dạng đối tượng. Tuy nhiên, chúng tôi đang có kế hoạch tích hợp một số phương pháp và định dạng hình ảnh khác trong các bản phát hành tiếp theo của mình. Sau khi thực hiện thao tác thông qua API, chúng tôi có thể nhận được đối tượng JSON có ranh giới đối tượng, nhãn và điểm số được phát hiện hoặc hình ảnh kết quả có ranh giới đối tượng và nhãn trên đó. Hiện tại, bạn có thể xác định các đối tượng như người, xe đạp, ô tô, mèo, chó, ngựa, v.v. Bạn có thể cân nhắc truy cập liên kết sau để biết thêm chi tiết về Danh sách nhãn khả dụng.

Phát hiện đối tượng và làm nổi bật trên hình ảnh

Có hai tùy chọn để phát hiện các đối tượng bên trong một hình ảnh, tức là thực hiện một thao tác trên một hình ảnh trong bộ lưu trữ hoặc thực hiện một thao tác trên một hình ảnh được truyền trong nội dung yêu cầu.

Xử lý hình ảnh từ lưu trữ đám mây

Phương pháp đầu tiên yêu cầu bạn tải hình ảnh lên Cloud Storage trước rồi truyền tên của hình ảnh đó vào URL API. Sau khi phát hiện đối tượng, API trả về hình ảnh kết quả trong phản hồi.

Chúng tôi cũng hiểu rằng lưu trữ đám mây là một cách nhanh chóng và dễ dàng để lưu trữ và truy cập tệp. Quy trình phát hiện đối tượng có thể dễ dàng được thực hiện trên các hình ảnh được lưu trữ trên lưu trữ đám mây và tệp kết quả được trả về trong tiêu đề phản hồi. Trong lệnh cURL sau, hoạt động phát hiện đối tượng được thực hiện trên một hình ảnh chứa nhiều đối tượng trong đó các đối số được chỉ định để sử dụng Single Shot Detector (SSD) làm mô hình phát hiện, giữ giá trị ngưỡng ở mức 50, bao gồm nhãn của các đối tượng trong hình ảnh kết quả và cũng chỉ định điểm phát hiện đối tượng. Hơn nữa, chúng tôi đã chỉ định Zebra, giraffe, horse là danh sách các nhãn được phép được phân tách bằng dấu phẩy đối với đối số allowedLabels. Tuy nhiên, nếu bạn muốn lưu tệp kết quả trên hệ thống cục bộ, bạn có thể thử sử dụng -o và chỉ định vị trí cho tệp kết quả.

lệnh 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

Đoạn mã 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);
}
Tệp nguồn để phát hiện đối tượng

Hình ảnh 1:- Tệp nguồn để phát hiện đối tượng

Hình ảnh kết quả với các đối tượng được phát hiện

Hình ảnh 2:- Tệp kết quả với các đối tượng được nhận dạng

Xử lý hình ảnh không cần lưu trữ

API xử lý hình ảnh cung cấp phương pháp thứ hai (POST) cho phép bạn trực tiếp truyền hình ảnh từ bộ nhớ cục bộ vào phần thân yêu cầu. Nó cũng cho phép bạn lưu hình ảnh kết quả trên Cloud Storage bằng cách chỉ định giá trị tham số outPath. Tuy nhiên, nếu bạn không chỉ định giá trị, phản hồi sẽ chứa hình ảnh được truyền phát.

lệnh 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":{}}

Yêu cầu 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

Đoạn mã 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);
}
Hình ảnh đầu vào với con ngựa

Hình ảnh 3:- Nhập hình ảnh có con ngựa đang chạy

Phát hiện vật thể ngựa trong hình ảnh

Hình ảnh 4:- Phát hiện ngựa với tỷ lệ 98%

Phần kết luận

Trong bài viết này, chúng tôi đã khám phá các khả năng liên quan đến Nhận dạng đối tượng bằng Java SDK. SDK tuyệt vời đến mức có thể xác định chính xác nhiều đối tượng chỉ trong một lần thử. Để hỗ trợ người dùng hơn nữa, SDK cho phép họ làm nổi bật các đối tượng và dán nhãn cho chúng theo đó. Trong trường hợp bạn gặp bất kỳ sự cố nào khi sử dụng API, vui lòng liên hệ với chúng tôi qua diễn đàn hỗ trợ sản phẩm miễn phí.

Bài viết liên quan

Chúng tôi khuyên bạn nên truy cập vào các liên kết sau để tìm hiểu về: