Allan Thraen
May 19, 2017
  4791
(5 votes)

New add-on in the nuget feed: Enrich your image assets with Azure Cognitive Services.

Back in November as Ascend Nordic, I demoed an early version of this functionality. It was later improved and shown at the opening keynote of Ascend USA. I received quite a lot of requests after that to make it publicly available - and now (I admit a bit late, Jeroen even beat me to it) I'm now sharing it as a nuget package on the Episerver feed - as well as putting my code on GitHub.

Basically, this is how it works:

1) Install the nuget package on your Episerver site. (Episerver.Labs.Cognitive). Note that this is an experimental package and not supported in any way!

2) Add the access key to your appSettings in web.config (details are included in a readme).

And start adding the properties you want to your image model and attach attributes to them to describe what kind of cognitive content you want them populated with!

For instance, to add a descriptive text to your image (can be useful for indexing with Episerver Find or Vulcan) just add this attribute:

[Vision(VisionType =VisionTypes.Description)]
public virtual string Description { get; set; }

To index text recognized in the image add:

[Vision(VisionType=VisionTypes.Text)]
public virtual string TextRecognized { get; set; }

Or, one of my favorite features - Get a smart thumbnail (where the interesting parts of the image are in focus):

[ScaffoldColumn(false)]
[SmartThumbnail(100,100)]
public virtual Blob SmartThumbnail{ get; set; }

You can of course also extract a list of the age and gender of all people in the image like this:

[Vision(VisionType = VisionTypes.Faces)]
[BackingType(typeof(PropertyStringList))]
[Display(Order = 305)]
[UIHint(Global.SiteUIHints.Strings)]
public virtual string[] Faces { get; set; }

and much, much more.

Enjoy!

May 19, 2017

Comments

Please login to comment.
Latest blogs
Understanding Optimizely Opal Cost

Opal pricing are transparent at large extent, It is based on a credit consumption model rather than fixed per-user licensing or tokens consumptions...

K Khan | May 25, 2026

Optimizely CMS 12 Now Fully Supports .NET 10

This is the latest installment in our ongoing series covering .NET version support for Optimizely products. If you've been following along, you may...

Bien Nguyen | May 25, 2026

Optimizely Opal: How to Build Effective Workflow Agents

If you're building workflow agents in Optimizely Opal, this post covers how specialized agents pass context to each other, why keeping agents small...

Andre | May 20, 2026

ReviewPR: An Azure Function That Reviews Your Azure DevOps Pull Requests With Claude

A while back I wrote about an  Azure Function App for PDF creation that we use to offload PDF rendering from our Optimizely DXP site. That same...

KennyG | May 19, 2026