Aspose.Imaging Cloud 20.5’in yayınlanmasıyla birlikte, görüntülerde nesne algılama özelliğini duyurmaktan mutluluk duyuyoruz. Kullanıcıların etiketlerine ve olasılıklarına göre bir giriş görüntüsündeki nesne sınırlarını algılamasını sağlar. Mevcut uygulama, modelin COCO 2017 veri kümesi kullanılarak eğitildiği nesneleri tanımak için tek çekim algılama yöntemini destekler. SSD yaklaşımı, sınırlayıcı kutuların çıktı alanını, özellik haritası konumu başına farklı en boy oranları ve ölçekler üzerinde bir dizi varsayılan kutuya ayırır.

Aspose.Imaging Cloud, nesne algılamayı aşağıdaki 4 yönteme göre gerçekleştirir:

  1. Mevcut bir görüntüdeki nesneleri algıla ve sonuçları bir JSON nesnesi olarak döndür
  2. Mevcut bir görüntüdeki nesneleri algıla ve sonuçları bir görüntü olarak döndür
  3. Bir resim yükleyin, üzerindeki nesneleri algılayın ve sonuçları bir JSON nesnesi olarak döndürün
  4. Bir resim yükleyin, üzerindeki nesneleri algılayın ve sonuçları resim olarak döndürün

Bu bölümde, aşağıdaki bölümleri daha ayrıntılı olarak ele alacağız

Nesne Sınırlarını Algıla

Bu yaklaşım, mevcut bir görüntüdeki nesneleri algılar ve sonucu bir JSON nesnesi olarak döndürür.

İstek sorgu parametreleri:

  • name (string, gerekli): resim adı. Şu anda 3 resim formatını destekliyoruz: BMP, JPEG ve JPEG 2000.
  • yöntem (dize, isteğe bağlı, varsayılan “ssd”): nesne algılama yöntemi.
  • eşik (sayı, isteğe bağlı, [0 - 100], varsayılan 50): sonuca dahil edilecek olan algılanan nesnelerin yüzdelik olarak minimum olasılığı.
  • includeLabel (boolean, isteğe bağlı, varsayılan false): algılanan nesne etiketlerinin yanıta dahil edilip edilmeyeceği.
  • includeScore (boolean, isteğe bağlı, varsayılan false): algılanan nesne olasılıklarının yanıta dahil edilip edilmeyeceği.
  • klasör (dize, isteğe bağlı): klasör.
  • depolama (dize, isteğe bağlı): depolama.

cURL Komutunu Kullanarak Nesne Algılama

Aspose.Imaging Cloud’a cURL komutları kullanılarak da erişilebilir. Aşağıdaki komut, bir cURL komutunun bir nesneyi algılamak ve bir JSON nesnesi olarak yanıt almak için nasıl kullanılabileceğini gösterir.

Nesneyi tespit etmek için aşağıdaki görseli kullanıyoruz.

Örnek kedi resmi

Resim 1:- Kaynak resim

curl "https://api.aspose.cloud/v3.0/imaging/ai/objectdetection/cat-pet-animal-domestic-104827.jpeg/bounds?method=ssd&threshold=50&includeLabel=true&includeScore=true" \
-X GET \
-H "accept: application/json" \
-H "authorization: Bearer <jwt token>"

İstek URL’si

https://api.aspose.cloud/v3.0/imaging/ai/objectdetection/cat-pet-animal-domestic-104827.jpeg/bounds?method=ssd&threshold=50&includeLabel=true&includeScore=true

Cevap Organı

{
  "detectedObjects": [
    {
      "label": "cat",
      "score": 0.9450986,
      "bounds": {
        "x": 43,
        "y": 4,
        "width": 401,
        "height": 323
      }
    }
  ]
}

Yanıt Şeması

{
    "type": "object",
    "properties": {
        "detectedObjects": {
            "type": "array",
            "items": [
                {
                    "type": "object",
                    "properties": {
                        "score": {
                            "type": "number"
                        },
                        "label": {
                            "type": "string"
                        },
                        "bounds": {
                            "type": "object",
                            "properties": {
                                "x": {
                                    "type": "number"
                                },
                                "y": {
                                    "type": "number"
                                },
                                "width": {
                                    "type": "number"
                                },
                                "height": {
                                    "type": "number"
                                }
                            },
                            "required": [
                                "x",
                                "y",
                                "width",
                                "height"
                            ]
                        }
                    },
                    "required": [
                        "score",
                        "label",
                        "bounds"
                    ]
                }
            ]
        }
    },
    "required": [
        "detectedObjects"
    ]
}

C# Kullanarak Görüntülerde Nesne Algılama

Lütfen C# kod parçacığını kullanarak resimlerdeki nesne algılama için aşağıdaki kod parçacığını kullanmayı deneyin.

C# .NET kod parçacığı

///<summary>
/// Cloud depolama alanındaki bir görüntüdeki nesneleri algıla.
///</summary>
public static void DetectObjectsImageFromStorage()
{
    string MyAppKey = "xxxxx";   // Get AppKey and AppSID from https://dashboard.aspose.cloud/
    string MyAppSid = "xxxxx";   // Get AppKey and AppSID from https://dashboard.aspose.cloud/

    string method = "ssd";
    int threshold = 50;
    bool includeLabel = true;
    bool includeScore = true;
    string folder = "";    // Input file is saved at default folder in the storage
    string storage = null; // We are using default Cloud Storage

    // Aspose.Imaging Cloud nesnesini başlatın
    ImagingApi imagingApi = new ImagingApi(appKey: MyAppKey, appSid: MyAppSid, debug: false);
    imagingApi.UploadFile(new Aspose.Imaging.Cloud.Sdk.Model.Requests.UploadFileRequest("dog-and-cat-cover.jpg", File.Open("dog-and-cat-cover.jpg", FileMode.Open), null));

    var request = new Aspose.Imaging.Cloud.Sdk.Model.Requests.GetObjectBoundsRequest("dog-and-cat-cover.jpg", method, threshold, includeLabel, includeScore, folder, storage);
    Console.WriteLine($"Call ObjectBoundsRequest with params: method:{method}, threshold:{threshold}, include label: {includeLabel}, includeScore: {includeScore}");
    Aspose.Imaging.Cloud.Sdk.Model.DetectedObjectList detectedObjectList = imagingApi.GetObjectBounds(request);
    // resim dosyasındaki nesnelerin sayısını al
    Console.WriteLine("Objects detected: " + detectedObjectList.DetectedObjects.Count);
}

Nesne Sınırlarını Algıla ve Görüntü Olarak Döndür

Bir resim yükleyin, nesneleri tespit edin, etraflarına sınırlar çizin ve sonucu bir resim olarak döndürün.

İstek sorgu parametreleri:

  • name (string, gerekli): resim adı. Şu anda 3 resim biçimi destekleniyor: bmp, jpg, jpeg ve jpeg2000.
  • yöntem (dize, isteğe bağlı, [“ssd”], varsayılan “ssd”): nesne algılama yöntemi.
  • eşik (sayı, isteğe bağlı, [0 - 100], varsayılan 50): sonuca dahil edilecek nesnelerin yüzde cinsinden minimum olasılığı.
  • includeLabel (boolean, isteğe bağlı, varsayılan false): algılanan nesne etiketlerinin yanıta dahil edilip edilmeyeceği.
  • includeScore (boolean, isteğe bağlı, varsayılan false): algılanan nesne olasılıklarının yanıta dahil edilip edilmeyeceği.
  • renk (dize, isteğe bağlı): algılanan nesne sınırlarının ve bilgilerinin özel rengi. Eğer null’a eşitse, farklı etiketlere sahip nesnelerin farklı renklerde sınırları vardır.
  • klasör (dize, isteğe bağlı): klasör.
  • depolama (dize, isteğe bağlı): depolama.

Nesneleri Belirlemek İçin cURL Komutunu Kullanma

Aspose.Imaging Cloud’a cURL komutları aracılığıyla da erişilebilir. Ancak, ön koşul olarak, önce istemci kimlik bilgilerinize dayalı bir JWT erişim belirteci oluşturmanız gerekir. Lütfen JWT belirtecini oluşturmak için aşağıdaki komutu yürütün.

curl -v "https://api.aspose.cloud/connect/token" \
-X POST \
-d "grant_type=client_credentials&client_id=4ccf1790-accc-41e9-8d18-a78dbb2ed1aa&client_secret=caac6e3d4a4724b2feb53f4e460eade3" \
-H "Content-Type: application/x-www-form-urlencoded" \
-H "Accept: application/json"

Şimdi nesne sınırlarını tespit etmek ve bunları bir görüntü olarak döndürmek için aşağıdaki komutu çalıştırın.

curl -v "https://api.aspose.cloud/v3.0/imaging/ai/objectdetection/dog-and-cat-cover.jpg/visualbounds?method=ssd&threshold=50&includeLabel=false&includeScore=false&color=Red" \
-X GET \
-H "accept: application/json" \
-H "authorization: Bearer <JWT Token>"

İstek URL’si

https://api.aspose.cloud/v3.0/imaging/ai/objectdetection/dog-and-cat-cover.jpg/visualbounds?method=ssd&threshold=50&includeLabel=false&includeScore=false&color=Red

Yukarıdaki talepte vurgu rengi olarak Kırmızı belirtilmiştir.

C#.NET kod parçacığı

Aşağıdaki kod parçacığı, iki nesne (Köpek ve Kedi) içeren bir görüntü dosyasını yükleme adımlarını gösterir. Bu nesnelerin her ikisi de Aspose.Imaging Cloud API kullanılarak tanımlanır. Vurgulanan nesnelerle elde edilen görüntüler sistem sürücüsüne kaydedilir.

///<summary>
/// İstek akışında iletilen bir görüntüde algılanan nesneyi görselleştirin.
///</summary>
public static void VisualizeObjectsImageFromRequestBody()
{
    Console.WriteLine("Detect objects on an image. Image data is passed in a request stream");

    string MyAppKey = "xxxxx";   // Get AppKey and AppSID from https://dashboard.aspose.cloud/
    string MyAppSid = "xxxxx";   // Get AppKey and AppSID from https://dashboard.aspose.cloud/
    // Aspose.Imaging Cloud nesnesini başlatın
    ImagingApi imagingApi = new ImagingApi(appKey: MyAppKey, appSid: MyAppSid, debug: false);
    using (FileStream inputImageStream = File.OpenRead("dog-and-cat-cover.jpg"))
    {
        string method = "ssd";
        int threshold = 50;
        bool includeLabel = true;
        bool includeScore = true;
        string color = null;
        string outPath = null;
        string storage = null; // We are using default Cloud Storage

        var request = new Aspose.Imaging.Cloud.Sdk.Model.Requests.CreateVisualObjectBoundsRequest(inputImageStream, method, threshold, includeLabel, includeScore, color, outPath, storage);

        Console.WriteLine($"Call CreateVisualObjectBoundsRequest with params: method:{method}, threshold:{threshold}, include label: {includeLabel}, include score: {includeScore}");

        using (Stream updatedImage = imagingApi.CreateVisualObjectBounds(request))
        {
            // güncellenen görüntü akışını sistem konumuna kaydet
            System.Drawing.Image img = System.Drawing.Image.FromStream(updatedImage);
            img.Save("/Users/Aspose/Desktop/myImage.Jpeg", System.Drawing.Imaging.ImageFormat.Jpeg);
        }
    }
    Console.WriteLine();
}
Kedi ve Köpek kapak resmi

Resim 2:- Kedi ve Köpek içeren giriş resmi

Tanımlanmış nesneleri vurgulayan işlenmiş görüntü

Resim 3:- Tanımlanmış nesneleri vurgulayan işlenmiş görüntü

Görüntü araması hakkında daha fazla bilgi için lütfen Ters Görüntü Araması sayfasını ziyaret edin.

Çözüm

Bu makalede, Aspose.Imaging Cloud’un Görüntülerde Nesne Algılama yeteneklerini öğrendik. Görüntülerdeki nesneleri tanımlamak için, kod parçacığını kullanabilir veya cURL komutlarını kullanabilirsiniz. Ayrıca, müşterilerimize kolaylık sağlamak için programlama diline özgü SDK’lar oluşturduk ve yukarıdaki makalede, nesne algılama için Aspose.Imaging Cloud SDK for .NET’in özelliklerini inceledik. SDK’nın tam kaynak kodu GitHub üzerinden indirilebilir.

İlgili Makaleler

Daha fazla bilgi edinmek için aşağıdaki bağlantıları ziyaret etmenizi öneririz: