deep fashion

This algorithm detects clothing items in images; it returns a list of discovered clothing articles as well as annotating the input image with bounding boxes for each found article.

Note: We've recently made major upgrades to this algorithm, including changing the underlying model to improve our results. Give it another shot!

Model comparison Table

modelAverage Compute time (s)Mean Average Precision (mAP)
small8.223
mid10.928
large17.332

Class list

Curious about what classes this algorithm has been trained to detect? Take a look below:

'top handle bag'
't shirt'
'jewelry'
'boots'
'sunglasses'
'jeans'
'sweater'
'tank top'
'skirt'
'sandals'
'leggings'
'button down shirt'
'pants casual'
'heels pumps or wedges'
'lingerie'
'blouse'
'lightweight jacket'
'casual dress'
'winter jacket'
'formal dress'
'watches'
'hat'
'vest'
'sneakers'
'shoulder bag'
'flats'
'overall'
'sweatpants'
'shorts'
'rompers'
'pants suit formal'
'glasses'
'clutches'
'socks'
'backpack or messenger bag'
'jumpsuit'
'running shoes'
'blazer'
'tunic'
'hosiery'
'denim jacket'
'belts'
'leather jacket'
'trenchcoat'
'headwrap'
'sweater dress'
'sweatshirt'
'gloves'
'underwear'

I/O

Json input variant

Input

{  
   "image":String,
   "output":String,
   "threshold": Float,
	 "mode":String,
   "tags_only":String
}

  • image - (required) - an input image as either a url, data connector uri (data://, s3://, etc) or a base 64 encoded string.
  • output - (optional) - the output data connector path to where you want to save the thumbnail to. defaults to data://.algo/temp/UUID.png
  • threshold - (optional) - the minimum confidence for a label to be drawn / returned in the tag list. defaults to 0.65
  • tags_only - (optional) - set this to true if you don't want the annotated image output. defaults to 'false'
  • mode - (optional) - defines the mode for the algorithm, mode can be small, mid, or large. A break down on performance is shown above.

Simple input variant

Input

input: String/Byte[]

  • input - (required) - an input image as either a url, data connector uri (data://, s3://, etc), base 64 encoded string, or a binary array.

Output

{  
   "output":String,
   "articles":[  
      {  
         "bounding_box":{  
            "x0":Float,
            "x1":Float,
            "y0":Float,
            "y1":Float
         },
         "article_name":String,
         "confidence":Double
      },
      ...

   ]
}

  • output - If tags_only is false, then this key contains the url to the annotated image.
  • articles - the list of discovered articles.
  • bounding box - the rectangular coordinates of the most relevent bounding box, defined as (x0,y0), (x1,y1).
  • article_name - the name of the discovered article.
  • confidence - the algorithm's confidence that this article exists in the image.

Example

Input suit and tie

{  
   "image":"http://i.imgur.com/GtvDM8X.jpg",
   "model":"mid",
   "output":"data://.algo/perm/suit.png"
}

Output


  "articles": [
    {
      "article_name": "button down shirt",
      "bounding_box": {
        "x0": 431,
        "x1": 905,
        "y0": 267,
        "y1": 702
      },
      "confidence": 0.9515272378921508
    },
    {
      "article_name": "hat",
      "bounding_box": {
        "x0": 517,
        "x1": 807,
        "y0": 80,
        "y1": 215
      },
      "confidence": 0.9933492541313172
    }
  ],
  "output": "data://.algo/perm/suit.png"
}

Credits

This algorithm is a machine learning model based on the faster-rcnn project,which was inspired by the Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks paper.

All sample images courtesy of the wikimedia foundation

Writing good docs:

Communicate Value

A good introduction should make it clear why someone might use your API.

Show and Tell

Give examples of using your API and explain those examples.

Easy to Skim

Ensure your docs are structured such that familiar users can quickly jump to the content they want.

Current

Revisit your docs after making breaking changes or adding new features to keep them up-to-date.