Skip to content
/ ics Public

The Image Classification Service (ICS) allows users to submit image URLs and get the linked image classified (tagged) based on their perceived content. To do this, the service relies on image recognition services online.

Notifications You must be signed in to change notification settings

pateva/ics

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ics

The Image Classification Service (ICS) allows users to submit image URLs and get the linked image classified (tagged) based on their perceived content. To do this, the service relies on the image recognition service Ximilar.

The project was developed within the VMware Bulgaria Talent Boost 2023.

Table of content:

Overall architecture

Requests:

  • GET /images -> lists all analysed images from the DB
Parameter Type Required Description
labels Array of strings No Specifies the labels to filter the images. If provided, images with matching labels will be returned.

Example response:

[
    {
        "imageId": 9,
        "imageUrl": "https://example.com/image.jpg",
        "createdAt": "2023-05-12T23:25:26.762859",
        "updatedAt": "2023-05-12T23:25:26.762859",
        "width": 1485.0,
        "height": 835.0,
        "imageService": "Ximilar",
        "labels": [
            {
                "labelId": 67,
                "labelDescription": "example"
            },
            {
                "labelId": 65,
                "labelDescription": "label"
            }]
      },
      {
        "imageId": 10,
        "imageUrl": "https://example.com/image2.jpg",
        "createdAt": "2023-06-12T23:25:26.762859",
        "updatedAt": "2023-06-12T23:25:26.762859",
        "width": 1485.0,
        "height": 835.0,
        "imageService": "Ximilar",
        "labels": [
            {
                "labelId": 61,
                "labelDescription": "example2"
            },
            {
                "labelId": 65,
                "labelDescription": "label"
            }]
      }
]
  • POST /images
Parameter Type Required Description
noCache boolean No Defaults to false. When true, the service shall always perform categorisation, replacing any prior tags for the same image

Example body:

{
 "records": [
     {
         "_url": "https://example.com/image.jpg"
     }
 ]
}

Example response:

 {
    "imageId": 10,
    "imageUrl": "https://example.com/image.jpg",
    "createdAt": "2023-05-13T12:25:58.22273",
    "updatedAt": "2023-05-13T12:25:58.22273",
    "width": 1338.0,
    "height": 896.0,
    "imageService": "Ximilar",
    "labels": [
        {
            "labelId": 68,
            "labelDescription": "easter"
        },
        {
            "labelId": 3,
            "labelDescription": "isolated"
        },
        {
            "labelId": 4,
            "labelDescription": "ladybug"
        }
      ]
   }
  • GET /images/{id} -> returns an image with a specific image id
  • DELETE /images/{id} -> deletes image with a specific imageID from the DB

  • GET /labels - lists all labels from the DB Example response:
  [
    {
        "labelId": 1,
        "labelDescription": "illustration"
    },
    {
        "labelId": 2,
        "labelDescription": "vector"
    },
    {
        "labelId": 3,
        "labelDescription": "isolated"
    },
  ]
  • POST /labels Example body:
{
    "name":"newLabel"
}

Example response:

   {
    "labelId": 269,
    "labelDescription": "newLabel"
}
  • GET /labels/{id} -> returns a label with a specific label id
  • DELETE /labels/{id} -> deletes a label with a specific label id from the DB

Demo and snaps

Video:

demo.mp4

About

The Image Classification Service (ICS) allows users to submit image URLs and get the linked image classified (tagged) based on their perceived content. To do this, the service relies on image recognition services online.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages