ด้วยการเปิดตัว Aspose.Imaging Cloud 20.5 เรายินดีที่จะประกาศคุณลักษณะการตรวจจับวัตถุในภาพ ซึ่งทำให้ผู้ใช้สามารถตรวจจับขอบเขตของวัตถุในภาพอินพุตโดยอิงจากป้ายกำกับและความน่าจะเป็น การใช้งานปัจจุบันรองรับ วิธีตรวจจับแบบช็อตเดียว เพื่อจดจำวัตถุที่ฝึกโมเดลโดยใช้ชุดข้อมูล COCO 2017 แนวทาง SSD จะแบ่งพื้นที่เอาต์พุตของกล่องขอบเขตออกเป็นชุดของกล่องเริ่มต้นตามอัตราส่วนภาพและมาตราส่วนที่แตกต่างกันตามตำแหน่งแผนที่คุณลักษณะ

Aspose.Imaging Cloud ดำเนินการตรวจจับวัตถุโดยอิงตามวิธีการ 4 วิธีดังต่อไปนี้:

  1. ตรวจจับวัตถุบนรูปภาพที่มีอยู่และส่งคืนผลลัพธ์เป็นวัตถุ JSON
  2. ตรวจจับวัตถุบนภาพที่มีอยู่และส่งคืนผลลัพธ์เป็นภาพ
  3. อัปโหลดรูปภาพ ตรวจจับวัตถุบนรูปภาพ และส่งคืนผลลัพธ์เป็นวัตถุ JSON
  4. อัปโหลดรูปภาพ ตรวจจับวัตถุบนรูปภาพ และส่งคืนผลลัพธ์เป็นรูปภาพ

ในส่วนนี้เราจะมาพูดถึงส่วนต่อไปในรายละเอียดเพิ่มเติม

ตรวจจับขอบเขตของวัตถุ

แนวทางนี้จะตรวจจับวัตถุบนรูปภาพที่มีอยู่และส่งคืนผลลัพธ์เป็นวัตถุ JSON

ขอพารามิเตอร์การสอบถาม:

  • ชื่อ (สตริง, จำเป็น): ชื่อภาพ ปัจจุบันเรารองรับรูปแบบภาพ 3 รูปแบบ ได้แก่ BMP, JPEG และ JPEG 2000
  • วิธีการ (สตริง, ตัวเลือก, เริ่มต้น “ssd”): วิธีการตรวจจับวัตถุ
  • เกณฑ์ (ตัวเลข, ตัวเลือก, [0 - 100], ค่าเริ่มต้น 50): ความน่าจะเป็นของวัตถุที่ตรวจพบขั้นต่ำเป็นเปอร์เซ็นต์ที่จะรวมอยู่ในผลลัพธ์
  • includeLabel (บูลีน, ตัวเลือก, ค่าเริ่มต้นเป็นเท็จ): จะรวมป้ายชื่อของวัตถุที่ตรวจพบไว้ในการตอบกลับหรือไม่
  • includeScore (บูลีน, ตัวเลือก, ค่าเริ่มต้นเป็นเท็จ): จะรวมความน่าจะเป็นของวัตถุที่ตรวจพบในคำตอบหรือไม่
  • โฟลเดอร์ (สตริง, ตัวเลือก): โฟลเดอร์
  • ที่เก็บข้อมูล (สตริง, ตัวเลือก): ที่เก็บข้อมูล

การตรวจจับวัตถุโดยใช้คำสั่ง cURL

นอกจากนี้ยังสามารถเข้าถึง Aspose.Imaging Cloud ได้โดยใช้คำสั่ง cURL คำสั่งต่อไปนี้จะแสดงวิธีใช้คำสั่ง cURL เพื่อตรวจจับอ็อบเจ็กต์และรับการตอบสนองเป็นอ็อบเจ็กต์ JSON

เรากำลังใช้ภาพต่อไปนี้เพื่อตรวจจับวัตถุ

ตัวอย่างภาพแมว

ภาพที่ 1:- ภาพต้นฉบับ

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>"

ขอ URL

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

เนื้อหาตอบกลับ

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

โครงร่างการตอบสนอง

{
    "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#

โปรดลองใช้โค้ดสั้นๆ ต่อไปนี้เพื่อตรวจจับวัตถุในรูปภาพโดยใช้โค้ดสั้นๆ ใน C#

ตัวอย่างโค้ด C# .NET

//-<summary>
/// ตรวจจับวัตถุบนภาพจากที่เก็บข้อมูลบนคลาวด์
//-</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
    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);
    // รับจำนวนวัตถุในไฟล์ภาพ
    Console.WriteLine("Objects detected: " + detectedObjectList.DetectedObjects.Count);
}

ตรวจจับขอบเขตของวัตถุและส่งกลับเป็นภาพ

อัปโหลดรูปภาพ ตรวจจับวัตถุ วาดขอบเขตรอบๆ วัตถุ และส่งผลลัพธ์เป็นรูปภาพ

ขอพารามิเตอร์การสอบถาม:

  • ชื่อ (สตริง, จำเป็น): ชื่อภาพ ปัจจุบันรองรับรูปแบบภาพ 3 รูปแบบ ได้แก่ bmp, jpg, jpeg และ jpeg2000
  • วิธีการ (สตริง, ตัวเลือก, [“ssd”], ค่าเริ่มต้น “ssd”): วิธีการตรวจจับวัตถุ
  • เกณฑ์ (ตัวเลข, ตัวเลือก, [0 - 100], ค่าเริ่มต้น 50): ความน่าจะเป็นขั้นต่ำของวัตถุเป็นเปอร์เซ็นต์ที่จะถูกรวมอยู่ในผลลัพธ์
  • includeLabel (บูลีน, ตัวเลือก, ค่าเริ่มต้นเป็นเท็จ): จะรวมป้ายชื่อของวัตถุที่ตรวจพบไว้ในการตอบกลับหรือไม่
  • includeScore (บูลีน, ตัวเลือก, ค่าเริ่มต้นเป็นเท็จ): จะรวมความน่าจะเป็นของวัตถุที่ตรวจพบในคำตอบหรือไม่
  • สี (สตริง, ตัวเลือก): สีที่กำหนดเองของขอบเขตและข้อมูลของวัตถุที่ตรวจพบ หากเท่ากับค่าว่าง วัตถุของป้ายกำกับที่แตกต่างกันจะมีขอบเขตของสีที่แตกต่างกัน
  • โฟลเดอร์ (สตริง, ตัวเลือก): โฟลเดอร์
  • ที่เก็บข้อมูล (สตริง, ตัวเลือก): ที่เก็บข้อมูล

การใช้คำสั่ง cURL เพื่อกำหนดวัตถุ

สามารถเข้าถึง Aspose.Imaging Cloud ได้โดยใช้คำสั่ง cURL อย่างไรก็ตาม คุณต้องสร้างโทเค็นการเข้าถึง JWT ตามข้อมูลประจำตัวไคลเอนต์ของคุณก่อน โปรดดำเนินการคำสั่งต่อไปนี้เพื่อสร้างโทเค็น JWT

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"

ตอนนี้ให้ดำเนินการคำสั่งต่อไปนี้เพื่อตรวจจับขอบเขตของวัตถุและส่งคืนเป็นรูปภาพ

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>"

ขอ URL

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

ในคำร้องข้างต้น สังเกตว่ามีการระบุสีแดงเป็นสีเน้น

ตัวอย่างโค้ด C#.NET

ตัวอย่างโค้ดต่อไปนี้แสดงขั้นตอนในการโหลดไฟล์รูปภาพที่มีวัตถุสองชิ้น (Dog และ Cat) วัตถุทั้งสองชิ้นนี้ได้รับการระบุโดยใช้ Aspose.Imaging Cloud API รูปภาพที่ได้พร้อมวัตถุที่เน้นสีจะถูกบันทึกไว้ในไดรฟ์ระบบ

//-<summary>
/// แสดงภาพวัตถุที่ตรวจพบบนภาพที่ถูกส่งไปในสตรีมคำขอ
//-</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
    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))
        {
            // บันทึกสตรีมภาพที่อัปเดตไปยังตำแหน่งระบบ
            System.Drawing.Image img = System.Drawing.Image.FromStream(updatedImage);
            img.Save("/Users/Aspose/Desktop/myImage.Jpeg", System.Drawing.Imaging.ImageFormat.Jpeg);
        }
    }
    Console.WriteLine();
}
ภาพปกแมวและสุนัข

ภาพที่ 2:- อินพุตภาพด้วยแมวและสุนัข

ภาพที่ประมวลผลเน้นวัตถุที่ระบุ

ภาพที่ 3: ภาพที่ประมวลผลเน้นวัตถุที่ระบุ

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการค้นหารูปภาพ โปรดไปที่ การค้นหารูปภาพย้อนกลับ

บทสรุป

ในบทความนี้ เราได้เรียนรู้เกี่ยวกับความสามารถของ Aspose.Imaging Cloud สำหรับการตรวจจับวัตถุในรูปภาพ หากต้องการระบุวัตถุในรูปภาพ คุณสามารถใช้สไนปเป็ตโค้ดหรือใช้คำสั่ง cURL นอกจากนี้ เพื่ออำนวยความสะดวกแก่ลูกค้าของเรา เราได้สร้าง SDK เฉพาะภาษาการเขียนโปรแกรม และในบทความข้างต้น เราได้สำรวจคุณสมบัติของ Aspose.Imaging Cloud SDK สำหรับ .NET สำหรับการตรวจจับวัตถุ โค้ดต้นฉบับทั้งหมดของ SDK พร้อมให้ดาวน์โหลดได้ที่ GitHub

บทความที่เกี่ยวข้อง

เราขอแนะนำให้เยี่ยมชมลิงก์ต่อไปนี้เพื่อเรียนรู้เพิ่มเติมเกี่ยวกับ: