Allan Thraen
May 19, 2017
  4729
(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
Creating an admin tool - unused assets

Let's make an admin tool to clean unused assets and see how to extend your favorite CMS with custom tools and menues! We will build a tool step by...

Daniel Ovaska | Apr 15, 2026

Running Optimizely CMS on .NET 11 Preview

Learn how to run Optimizely CMS on the .NET 11 preview with a single-line change. Explore performance gains, PGO improvements, and future-proofing...

Stuart | Apr 15, 2026 |

Your Optimizely Opal Is Probably Burning Carbon It Doesn't Need To

Four patterns Optimizely practitioners could be getting wrong with Opal agents: inference levels, oversized tool responses, missing output...

Andy Blyth | Apr 15, 2026 |

Optimizely CMS 13: A Strategic Reset for Content, AI, and Composable Marketing

Optimizely CMS 13 is not just another version upgrade—it represents a deliberate shift toward a connected, AI-enabled, and API-driven content...

Augusto Davalos | Apr 14, 2026

The 74% Problem: Why Most Companies Are Getting AI Wrong

I’ve seen this before… The pattern. The rush, the excitement, the scramble to adopt something new before anyone has stopped to ask what problem it...

Mark Welland | Apr 14, 2026

Scheduled jobs with parameters

Scheduled jobs is an integral part of most Optimizely solution but the UI has, in my opinon, always been lacking in usability and features. Earlier...

Per Nergård (MVP) | Apr 14, 2026