SlideShare a Scribd company logo
1 of 34
Using SharePoint with
Cognitive Services for
automatic image tagging
Markus Hintner
Microsoft
Cognitive
Services
Give your apps
a human side
Computer Vision API
Distill actionable
information from images
Video API
Analyze, edit, and
process videos within
your app
Face API
Detect, identify, analyze,
organize, and tag faces in
photos
Content Moderator
API
Machine-assisted
moderation of text,
images, and videos,
augmented with human
review tools
Vision
Emotion API
Personalize experiences
with emotion recognition
Visual Feature Description
Categories categorizes image content according to a taxonomy defined in
documentation
Tags tags the image with a detailed list of words related to the image
content
Description describes the image content with a complete English sentence
Faces detects if faces are present. If present, generate coordinates, gender
and age
ImageType detects if image is clipart or a line drawing
Color determines the accent color, dominant color, and whether an image is
black&white
Adult detects if the image is pornographic in nature (depicts nudity or a sex
act). Sexually suggestive content is also detected
Celebrities - identifies celebrities if detected in the image
Landmarks - identifies landmarks if detected in the image
Supported Languages (as of today): EN and ZH (Simplified Chinese)
Subscription key which provides access to this API.
Found in your Cognitive Services accounts
raw image binary or
image URL
Supported image formats: JPEG, PNG, GIF, BMP.
Image file size must be less than 4MB.
Image dimensions must be at least 50 x 50
WebHooks
HTTP/1.1 200 OK
Content-Type: text/plain
{randomString}
SharePoint
Service
POST /_api/web/lists('list-id')/subscriptions
Yourapplication
POST https://{your host}/your/webhook/service
?validationToken={randomString}
YourWebHook
notificationservice
endpoint
HTTP/1.1 201 Created
Yourapplication
Content-Type: application/json
{
"resource": "https://contoso.sharepoint.com/_api/web/lists({id})",
"notificationUrl": "https://{your host}/your/webhook/service ",
"expirationDateTime": "2018-04-11T10:45:57+00:00"
}
HTTP/1.1 200 OK
SharePoint
Service
YourWebHook
notificationservice
endpoint
POST https://{your host}/your/webhook/service
{
"value":[
{
"subscriptionId":"91779246-afe9-4525-b122-6c199ae89211",
"clientState":"00000000-0000-0000-0000-000000000000",
"expirationDateTime":"2016-04-30T17:27:00.0000000Z",
"resource":"b9f6f714-9df8-470b-b22e-653855e1c181",
"tenantId":"00000000-0000-0000-0000-000000000000",
"siteUrl":"/",
"webId":"dbc5a806-e4d4-46e5-951c-6344d70b62fa"
}
]
}
YourWebHook
notificationservice
endpoint
SharePoint
Service
POST https://{your host}/your/webhook/service
Storage
Queue
WebJob
HTTP/1.1 200 OK
SharePoint
Service
WebHook creation: POST /_api/web/lists('list-id')/subscriptions
Yourapplication
Grab “CurrentChangeToken” from list
YourWebHook
notificationservice
endpoint POST https://{your host}/your/webhook/service
Storage
Queue
WebJob
Grab change
token from DB
Persis last used token
per subscription
SQL
Azure
DBPersist token per
subscription
The WebHook payload is very small
Notifications are batched because processing depends on the CSOM GetChanges() call
PATCH /_api/web/lists('list-
id')/subscriptions(‘subscriptionID’)
Have a background job that regularly renews the needed subscriptions (recommended model)
Renew at notification time (will drop WebHook if there’s no event within the defined expiration window)
Visual Content
Intelligence
By Diego Grez - Radiografía_pulmones_Francisca_Lorca.jpg, CC BY-SA 3.0,
https://commons.wikimedia.org/w/index.php?curid=10302947
Questions?
markus@hintner.cc
@MarkusHintner

More Related Content

Similar to Using SharePoint with cognitive services for automatic image tagging

Using Cognitive Services
Using Cognitive ServicesUsing Cognitive Services
Using Cognitive ServicesEng Teong Cheah
 
Automatic multi-modal metadata annotation based on trained cognitive solution...
Automatic multi-modal metadata annotation based on trained cognitive solution...Automatic multi-modal metadata annotation based on trained cognitive solution...
Automatic multi-modal metadata annotation based on trained cognitive solution...FIAT/IFTA
 
IBM cognitive service introduction
IBM cognitive service introductionIBM cognitive service introduction
IBM cognitive service introductionHui Wen Han
 
Overview of Microsoft Azure AI Services
Overview of Microsoft Azure AI ServicesOverview of Microsoft Azure AI Services
Overview of Microsoft Azure AI ServicesCraig Milroy
 
Gianluigi Viganò - How to use HP HEAVEN-on-demand functions for Big Data apps
Gianluigi Viganò - How to use HP HEAVEN-on-demand functions for Big Data appsGianluigi Viganò - How to use HP HEAVEN-on-demand functions for Big Data apps
Gianluigi Viganò - How to use HP HEAVEN-on-demand functions for Big Data appsCodemotion
 
Computers have feelings too
Computers have feelings tooComputers have feelings too
Computers have feelings tooPaul Glavich
 
Intelligent Apps - Amplifying Human Ingenuity
Intelligent Apps - Amplifying Human IngenuityIntelligent Apps - Amplifying Human Ingenuity
Intelligent Apps - Amplifying Human IngenuityDavid J Rosenthal
 
Global AI Night Cleveland.pptx
Global AI Night Cleveland.pptxGlobal AI Night Cleveland.pptx
Global AI Night Cleveland.pptxLuis Beltran
 
Microsoft Azure beyond IaaS
Microsoft Azure  beyond IaaSMicrosoft Azure  beyond IaaS
Microsoft Azure beyond IaaSBipeen Sinha
 
Cognitive Services: Building Smart Apps with Speech, NLP & Vision
Cognitive Services: Building Smart Apps with Speech, NLP & VisionCognitive Services: Building Smart Apps with Speech, NLP & Vision
Cognitive Services: Building Smart Apps with Speech, NLP & VisionNick Landry
 
Artificial Intelligence API Services Compared
Artificial Intelligence API Services ComparedArtificial Intelligence API Services Compared
Artificial Intelligence API Services ComparedCraig Milroy
 
Compared: IBM Watson Services / Microsoft Azure Services
Compared: IBM Watson Services / Microsoft Azure ServicesCompared: IBM Watson Services / Microsoft Azure Services
Compared: IBM Watson Services / Microsoft Azure ServicesCraig Milroy
 
Microsoft Cognitive Services
Microsoft Cognitive ServicesMicrosoft Cognitive Services
Microsoft Cognitive ServicesAnyline
 
Microsoft AI: Cognitive Service - Global Azure bootcamp 2018
Microsoft AI: Cognitive Service - Global Azure bootcamp 2018Microsoft AI: Cognitive Service - Global Azure bootcamp 2018
Microsoft AI: Cognitive Service - Global Azure bootcamp 2018JoTechies
 
Evolve your app’s video experience with Azure: Processing and Video AI at scale
Evolve your app’s video experience with Azure: Processing and Video AI at scaleEvolve your app’s video experience with Azure: Processing and Video AI at scale
Evolve your app’s video experience with Azure: Processing and Video AI at scaleMicrosoft Tech Community
 
Cognitive Services APIs [Mihai Negrea]
Cognitive Services APIs [Mihai Negrea]Cognitive Services APIs [Mihai Negrea]
Cognitive Services APIs [Mihai Negrea]ITCamp
 
SEMANTIC CONTENT MANAGEMENT FOR ENTERPRISES AND NATIONAL SECURITY
SEMANTIC CONTENT MANAGEMENT FOR ENTERPRISES AND NATIONAL SECURITYSEMANTIC CONTENT MANAGEMENT FOR ENTERPRISES AND NATIONAL SECURITY
SEMANTIC CONTENT MANAGEMENT FOR ENTERPRISES AND NATIONAL SECURITYAmit Sheth
 

Similar to Using SharePoint with cognitive services for automatic image tagging (20)

Using Cognitive Services
Using Cognitive ServicesUsing Cognitive Services
Using Cognitive Services
 
Automatic multi-modal metadata annotation based on trained cognitive solution...
Automatic multi-modal metadata annotation based on trained cognitive solution...Automatic multi-modal metadata annotation based on trained cognitive solution...
Automatic multi-modal metadata annotation based on trained cognitive solution...
 
IBM cognitive service introduction
IBM cognitive service introductionIBM cognitive service introduction
IBM cognitive service introduction
 
Overview of Microsoft Azure AI Services
Overview of Microsoft Azure AI ServicesOverview of Microsoft Azure AI Services
Overview of Microsoft Azure AI Services
 
Gianluigi Viganò - How to use HP HEAVEN-on-demand functions for Big Data apps
Gianluigi Viganò - How to use HP HEAVEN-on-demand functions for Big Data appsGianluigi Viganò - How to use HP HEAVEN-on-demand functions for Big Data apps
Gianluigi Viganò - How to use HP HEAVEN-on-demand functions for Big Data apps
 
Computers have feelings too
Computers have feelings tooComputers have feelings too
Computers have feelings too
 
Azure beyond IaaS
Azure  beyond IaaSAzure  beyond IaaS
Azure beyond IaaS
 
Intelligent Apps - Amplifying Human Ingenuity
Intelligent Apps - Amplifying Human IngenuityIntelligent Apps - Amplifying Human Ingenuity
Intelligent Apps - Amplifying Human Ingenuity
 
Global AI Night Cleveland.pptx
Global AI Night Cleveland.pptxGlobal AI Night Cleveland.pptx
Global AI Night Cleveland.pptx
 
Microsoft Azure beyond IaaS
Microsoft Azure  beyond IaaSMicrosoft Azure  beyond IaaS
Microsoft Azure beyond IaaS
 
NetBase API Data Sheet
NetBase API Data SheetNetBase API Data Sheet
NetBase API Data Sheet
 
Cognitive Services: Building Smart Apps with Speech, NLP & Vision
Cognitive Services: Building Smart Apps with Speech, NLP & VisionCognitive Services: Building Smart Apps with Speech, NLP & Vision
Cognitive Services: Building Smart Apps with Speech, NLP & Vision
 
Artificial Intelligence API Services Compared
Artificial Intelligence API Services ComparedArtificial Intelligence API Services Compared
Artificial Intelligence API Services Compared
 
Compared: IBM Watson Services / Microsoft Azure Services
Compared: IBM Watson Services / Microsoft Azure ServicesCompared: IBM Watson Services / Microsoft Azure Services
Compared: IBM Watson Services / Microsoft Azure Services
 
Microsoft Cognitive Services
Microsoft Cognitive ServicesMicrosoft Cognitive Services
Microsoft Cognitive Services
 
Microsoft AI: Cognitive Service - Global Azure bootcamp 2018
Microsoft AI: Cognitive Service - Global Azure bootcamp 2018Microsoft AI: Cognitive Service - Global Azure bootcamp 2018
Microsoft AI: Cognitive Service - Global Azure bootcamp 2018
 
Intelligent ChatBot
Intelligent ChatBotIntelligent ChatBot
Intelligent ChatBot
 
Evolve your app’s video experience with Azure: Processing and Video AI at scale
Evolve your app’s video experience with Azure: Processing and Video AI at scaleEvolve your app’s video experience with Azure: Processing and Video AI at scale
Evolve your app’s video experience with Azure: Processing and Video AI at scale
 
Cognitive Services APIs [Mihai Negrea]
Cognitive Services APIs [Mihai Negrea]Cognitive Services APIs [Mihai Negrea]
Cognitive Services APIs [Mihai Negrea]
 
SEMANTIC CONTENT MANAGEMENT FOR ENTERPRISES AND NATIONAL SECURITY
SEMANTIC CONTENT MANAGEMENT FOR ENTERPRISES AND NATIONAL SECURITYSEMANTIC CONTENT MANAGEMENT FOR ENTERPRISES AND NATIONAL SECURITY
SEMANTIC CONTENT MANAGEMENT FOR ENTERPRISES AND NATIONAL SECURITY
 

Recently uploaded

CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Hyundai Motor Group
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 

Recently uploaded (20)

CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
The transition to renewables in India.pdf
The transition to renewables in India.pdfThe transition to renewables in India.pdf
The transition to renewables in India.pdf
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 

Using SharePoint with cognitive services for automatic image tagging

  • 1. Using SharePoint with Cognitive Services for automatic image tagging Markus Hintner
  • 2.
  • 3.
  • 4.
  • 6. Computer Vision API Distill actionable information from images Video API Analyze, edit, and process videos within your app Face API Detect, identify, analyze, organize, and tag faces in photos Content Moderator API Machine-assisted moderation of text, images, and videos, augmented with human review tools Vision Emotion API Personalize experiences with emotion recognition
  • 7.
  • 8.
  • 9.
  • 10. Visual Feature Description Categories categorizes image content according to a taxonomy defined in documentation Tags tags the image with a detailed list of words related to the image content Description describes the image content with a complete English sentence Faces detects if faces are present. If present, generate coordinates, gender and age ImageType detects if image is clipart or a line drawing Color determines the accent color, dominant color, and whether an image is black&white Adult detects if the image is pornographic in nature (depicts nudity or a sex act). Sexually suggestive content is also detected
  • 11. Celebrities - identifies celebrities if detected in the image Landmarks - identifies landmarks if detected in the image Supported Languages (as of today): EN and ZH (Simplified Chinese)
  • 12. Subscription key which provides access to this API. Found in your Cognitive Services accounts
  • 13.
  • 14. raw image binary or image URL Supported image formats: JPEG, PNG, GIF, BMP. Image file size must be less than 4MB. Image dimensions must be at least 50 x 50
  • 15.
  • 16.
  • 17.
  • 19.
  • 20. HTTP/1.1 200 OK Content-Type: text/plain {randomString} SharePoint Service POST /_api/web/lists('list-id')/subscriptions Yourapplication POST https://{your host}/your/webhook/service ?validationToken={randomString} YourWebHook notificationservice endpoint HTTP/1.1 201 Created Yourapplication Content-Type: application/json { "resource": "https://contoso.sharepoint.com/_api/web/lists({id})", "notificationUrl": "https://{your host}/your/webhook/service ", "expirationDateTime": "2018-04-11T10:45:57+00:00" }
  • 21. HTTP/1.1 200 OK SharePoint Service YourWebHook notificationservice endpoint POST https://{your host}/your/webhook/service { "value":[ { "subscriptionId":"91779246-afe9-4525-b122-6c199ae89211", "clientState":"00000000-0000-0000-0000-000000000000", "expirationDateTime":"2016-04-30T17:27:00.0000000Z", "resource":"b9f6f714-9df8-470b-b22e-653855e1c181", "tenantId":"00000000-0000-0000-0000-000000000000", "siteUrl":"/", "webId":"dbc5a806-e4d4-46e5-951c-6344d70b62fa" } ] }
  • 23. SharePoint Service WebHook creation: POST /_api/web/lists('list-id')/subscriptions Yourapplication Grab “CurrentChangeToken” from list YourWebHook notificationservice endpoint POST https://{your host}/your/webhook/service Storage Queue WebJob Grab change token from DB Persis last used token per subscription SQL Azure DBPersist token per subscription
  • 24. The WebHook payload is very small Notifications are batched because processing depends on the CSOM GetChanges() call
  • 25. PATCH /_api/web/lists('list- id')/subscriptions(‘subscriptionID’) Have a background job that regularly renews the needed subscriptions (recommended model) Renew at notification time (will drop WebHook if there’s no event within the defined expiration window)
  • 26.
  • 27.
  • 28.
  • 29.
  • 30. Visual Content Intelligence By Diego Grez - Radiografía_pulmones_Francisca_Lorca.jpg, CC BY-SA 3.0, https://commons.wikimedia.org/w/index.php?curid=10302947
  • 31.
  • 32.