{"id":842,"date":"2026-04-16T09:05:04","date_gmt":"2026-04-16T09:05:04","guid":{"rendered":"https:\/\/www.devopsschool.com\/tutorials\/oracle-cloud-vision-tutorial-architecture-pricing-use-cases-and-hands-on-guide-for-analytics-and-ai\/"},"modified":"2026-04-16T09:05:04","modified_gmt":"2026-04-16T09:05:04","slug":"oracle-cloud-vision-tutorial-architecture-pricing-use-cases-and-hands-on-guide-for-analytics-and-ai","status":"publish","type":"post","link":"https:\/\/www.devopsschool.com\/tutorials\/oracle-cloud-vision-tutorial-architecture-pricing-use-cases-and-hands-on-guide-for-analytics-and-ai\/","title":{"rendered":"Oracle Cloud Vision Tutorial: Architecture, Pricing, Use Cases, and Hands-On Guide for Analytics and AI"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Category<\/h2>\n\n\n\n<p>Analytics and AI<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">1. Introduction<\/h2>\n\n\n\n<p>Vision is an Oracle Cloud (OCI) <strong>Analytics and AI<\/strong> service for analyzing images (and, in some configurations, documents) using machine learning. It\u2019s designed to help you extract meaning from visual content\u2014such as identifying objects, reading text (OCR), and classifying images\u2014without having to build and train deep learning models from scratch.<\/p>\n\n\n\n<p>In simple terms: <strong>you send an image to Vision, and it returns structured results<\/strong> (labels, bounding boxes, confidence scores, detected text, and related metadata). You can use those results to automate business processes (e.g., content moderation, inventory checks), enrich analytics, or drive downstream workflows (e.g., routing, alerting, tagging).<\/p>\n\n\n\n<p>Technically, Vision is delivered as a <strong>managed API service<\/strong> within Oracle Cloud Infrastructure. You call the service through the OCI Console, REST APIs, or OCI SDKs. Vision supports <strong>prebuilt models<\/strong> for common computer vision tasks and (depending on the current product capabilities in your region\/tenancy) may support <strong>custom model training<\/strong> for tasks like image classification and object detection. Always confirm exact feature availability and limits in the official docs for your region.<\/p>\n\n\n\n<p><strong>What problem it solves:<\/strong> turning unstructured visual data (images, scans, photos, screenshots) into structured information that systems can search, analyze, and act on\u2014without operating GPU infrastructure or managing model lifecycles end-to-end yourself.<\/p>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">2. What is Vision?<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Official purpose (what Vision is for)<\/h3>\n\n\n\n<p>Vision is Oracle Cloud\u2019s managed computer vision service under the <strong>Analytics and AI<\/strong> portfolio. Its purpose is to provide <strong>API-driven image understanding<\/strong> so teams can add visual intelligence to applications and workflows.<\/p>\n\n\n\n<p>Because Oracle product pages and console labels can evolve, you may see the service referred to as <strong>\u201cVision\u201d<\/strong>, <strong>\u201cOCI Vision\u201d<\/strong>, or <strong>\u201cAI Vision\u201d<\/strong> in various places. The core service is the same; <strong>verify the latest naming and feature set in the official documentation<\/strong>:\n&#8211; Docs home (Vision): https:\/\/docs.oracle.com\/en-us\/iaas\/vision\/vision\/<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Core capabilities (high level)<\/h3>\n\n\n\n<p>Common Vision capabilities include (confirm current availability in your region):\n&#8211; <strong>Image classification<\/strong> (categorize an image into labels)\n&#8211; <strong>Object detection<\/strong> (find and locate objects with bounding boxes)\n&#8211; <strong>Text detection \/ OCR<\/strong> (extract printed text from images)\n&#8211; <strong>Asynchronous jobs<\/strong> for longer-running analyses (where supported)\n&#8211; <strong>Custom model workflows<\/strong> (project\/dataset\/model lifecycle) where supported<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Major components (what you interact with)<\/h3>\n\n\n\n<p>Depending on your workflow, you\u2019ll typically use:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Vision API \/ SDK<\/strong>\n   &#8211; The runtime endpoint you call to analyze images (and possibly documents).<\/li>\n<li><strong>OCI Identity and Access Management (IAM)<\/strong>\n   &#8211; Policies controlling who can call Vision, create projects, and access datasets.<\/li>\n<li><strong>Object Storage (common companion service)<\/strong>\n   &#8211; Frequently used to store images and training datasets.<\/li>\n<li><strong>Projects \/ Datasets \/ Models (for custom vision, where available)<\/strong>\n   &#8211; Resource containers and lifecycle objects for training and managing custom models.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">Service type<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Managed AI service (API-driven)<\/strong>: You don\u2019t manage model servers, scaling groups, or GPU drivers for prebuilt inference.<\/li>\n<li>If you use custom training\/hosting features (where available), you still consume them as managed workflows rather than building the entire ML platform yourself.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Scope: regional vs global<\/h3>\n\n\n\n<p>Vision is an OCI service that is typically <strong>regional<\/strong> (most OCI services are). That means:\n&#8211; You select a <strong>region<\/strong> in the Console.\n&#8211; Vision resources and endpoints are associated with that region.\n&#8211; Data residency, latency, and service availability vary by region.<\/p>\n\n\n\n<p>Always confirm region support:\n&#8211; OCI Regions: https:\/\/www.oracle.com\/cloud\/public-cloud-regions\/<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">How Vision fits into the Oracle Cloud ecosystem<\/h3>\n\n\n\n<p>Vision commonly integrates with:\n&#8211; <strong>Object Storage<\/strong> for image storage and dataset management\n&#8211; <strong>Functions<\/strong> for event-driven automation\n&#8211; <strong>Events<\/strong> (and\/or Notifications) for pipeline orchestration\n&#8211; <strong>API Gateway<\/strong> for exposing controlled endpoints to external callers\n&#8211; <strong>Logging &amp; Audit<\/strong> for governance and traceability\n&#8211; <strong>Data Science<\/strong> when you need deeper customization than managed Vision features provide<\/p>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">3. Why use Vision?<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Business reasons<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Automate manual review<\/strong>: reduce human effort for tagging, sorting, and reading information from images.<\/li>\n<li><strong>Speed up operations<\/strong>: process large image volumes consistently (e.g., quality checks, documentation intake).<\/li>\n<li><strong>Improve search and discovery<\/strong>: turn image content into searchable metadata.<\/li>\n<li><strong>Enable new product features<\/strong>: visual search, automated compliance checks, and intelligent routing.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Technical reasons<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>API-first<\/strong>: integrate into apps with REST\/SDK calls.<\/li>\n<li><strong>No GPU ops for prebuilt inference<\/strong>: you avoid managing scaling, patching, and inference servers.<\/li>\n<li><strong>Structured outputs<\/strong>: bounding boxes, labels, confidence scores support deterministic downstream logic.<\/li>\n<li><strong>Composable with OCI<\/strong>: pairs well with Object Storage, Functions, Streaming, and Observability.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Operational reasons<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Managed service<\/strong>: reduces operational burden compared to self-hosting OpenCV + OCR + deep learning stacks.<\/li>\n<li><strong>IAM-driven access<\/strong>: centralized access control through OCI policies.<\/li>\n<li><strong>Auditability<\/strong>: API calls can be captured via OCI Audit (verify exact event coverage in your tenancy).<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Security\/compliance reasons<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>OCI IAM policies<\/strong>: enforce least privilege.<\/li>\n<li><strong>Encryption<\/strong>: OCI services generally support encryption at rest and in transit; verify service-specific details.<\/li>\n<li><strong>Data residency<\/strong>: regional service behavior helps meet locality requirements (confirm per region).<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Scalability\/performance reasons<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Elastic scaling for API workloads<\/strong> (within service limits).<\/li>\n<li><strong>Batch patterns<\/strong> using asynchronous jobs and Object Storage can scale better than synchronous single-image calls in high-throughput pipelines.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">When teams should choose Vision<\/h3>\n\n\n\n<p>Choose Vision when you want:\n&#8211; Quick integration of computer vision features\n&#8211; Managed inference for common tasks (classification\/detection\/OCR)\n&#8211; Strong alignment with OCI-native pipelines and governance<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">When teams should not choose Vision<\/h3>\n\n\n\n<p>Consider alternatives when:\n&#8211; You need <strong>very specialized models<\/strong> (medical imaging, niche industrial vision) and managed features aren\u2019t sufficient\n&#8211; You require <strong>full control<\/strong> over model architectures, training regimes, and inference runtimes\n&#8211; You must run fully <strong>on-prem<\/strong> or in an environment without OCI connectivity\n&#8211; Your workload depends on a feature that isn\u2019t available in your region\/edition (verify in docs)<\/p>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">4. Where is Vision used?<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Industries<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Retail and e-commerce (catalog tagging, counterfeit detection support)<\/li>\n<li>Manufacturing (visual QA, defect detection\u2014often custom)<\/li>\n<li>Logistics (label reading, package inspection images)<\/li>\n<li>Financial services (document intake augmentation\u2014often combined with specialized document services)<\/li>\n<li>Media and advertising (content tagging, brand detection workflows)<\/li>\n<li>Public sector (archival digitization, compliance processing)<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Team types<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Application developers adding visual intelligence<\/li>\n<li>Data\/ML teams wanting a managed baseline before custom ML<\/li>\n<li>Platform teams building shared AI services for internal consumers<\/li>\n<li>Security teams building content review pipelines<\/li>\n<li>Operations teams automating inspection workflows<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Workloads<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Real-time API calls from web\/mobile apps (with careful latency considerations)<\/li>\n<li>Batch processing for large image sets (preferred for cost and throughput predictability)<\/li>\n<li>Event-driven pipelines triggered by object creation in Object Storage<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Architectures<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Serverless pipelines<\/strong>: Object Storage \u2192 Events \u2192 Functions \u2192 Vision \u2192 results to DB\/Search<\/li>\n<li><strong>Microservices<\/strong>: API service calls Vision and enriches metadata stored in a database<\/li>\n<li><strong>Data lake enrichment<\/strong>: Vision output stored as JSON alongside images for analytics<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Production vs dev\/test usage<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Dev\/test<\/strong>: validate accuracy, tune thresholds, design workflows, and estimate cost drivers.<\/li>\n<li><strong>Production<\/strong>: implement retry logic, backpressure controls, audit logging, and clear data retention policies.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">5. Top Use Cases and Scenarios<\/h2>\n\n\n\n<p>Below are realistic scenarios where Vision typically fits well. Exact outputs and supported feature sets depend on the model type and your region\u2014verify with the official docs.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1) Product catalog auto-tagging (retail)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Problem:<\/strong> Thousands of product photos need consistent tags for search and recommendations.<\/li>\n<li><strong>Why Vision fits:<\/strong> Image classification\/object detection can produce metadata at scale.<\/li>\n<li><strong>Example:<\/strong> Upload new product images to Object Storage; a function calls Vision and stores labels in a product DB.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">2) Warehouse inventory spot checks<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Problem:<\/strong> Manual auditing of shelf images is slow and inconsistent.<\/li>\n<li><strong>Why Vision fits:<\/strong> Object detection can detect items and count approximate instances (with caution).<\/li>\n<li><strong>Example:<\/strong> Daily camera snapshots are analyzed; discrepancies trigger a ticket.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">3) OCR for labels and signage<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Problem:<\/strong> Extract text from shipping labels, shelf tags, or safety signage.<\/li>\n<li><strong>Why Vision fits:<\/strong> Text detection (OCR) returns extracted strings and locations.<\/li>\n<li><strong>Example:<\/strong> A mobile app captures a label photo; the backend calls Vision OCR and validates formatting.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">4) Content moderation support (basic)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Problem:<\/strong> You need to reduce exposure to disallowed or sensitive imagery.<\/li>\n<li><strong>Why Vision fits:<\/strong> Classification can assist moderation workflows (often as a first pass).<\/li>\n<li><strong>Example:<\/strong> User uploads go to a review queue if Vision assigns certain risk labels (ensure human review for edge cases).<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">5) Brand\/logo detection workflows (marketing ops)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Problem:<\/strong> Find brand presence across media assets.<\/li>\n<li><strong>Why Vision fits:<\/strong> Object detection or custom models can help identify specific logos (custom often required).<\/li>\n<li><strong>Example:<\/strong> Marketing scans event photos and tags those containing a sponsor\u2019s logo.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">6) Insurance claim intake enrichment<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Problem:<\/strong> Photos submitted for claims need triage and categorization.<\/li>\n<li><strong>Why Vision fits:<\/strong> Classification + object detection can route claims to the right team.<\/li>\n<li><strong>Example:<\/strong> Damage photos are classified by type; a rules engine assigns a claim category.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">7) Manufacturing visual inspection (custom model path)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Problem:<\/strong> Defect patterns are specific to your production line.<\/li>\n<li><strong>Why Vision fits:<\/strong> If custom model workflows are available, you can train for your defect classes.<\/li>\n<li><strong>Example:<\/strong> Operators capture images; Vision detects defect regions and returns bounding boxes for QA review.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">8) Document scan pre-processing (paired with document services)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Problem:<\/strong> You receive mixed scans (forms, IDs, receipts) and want to route them.<\/li>\n<li><strong>Why Vision fits:<\/strong> Basic OCR and classification can act as a router before deeper document extraction.<\/li>\n<li><strong>Example:<\/strong> Vision extracts key text; routing logic selects a specialized document understanding step (verify OCI service fit).<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">9) Security operations: camera snapshot triage<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Problem:<\/strong> Review too many camera snapshots and false alarms.<\/li>\n<li><strong>Why Vision fits:<\/strong> Object detection can identify people\/vehicles in snapshots (accuracy varies; validate thoroughly).<\/li>\n<li><strong>Example:<\/strong> Only images with detected person\/vehicle objects are escalated.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">10) Accessibility and alt-text generation support<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Problem:<\/strong> Need baseline descriptions\/tags to help generate alt-text or metadata.<\/li>\n<li><strong>Why Vision fits:<\/strong> Classification results can seed human-reviewed alt-text.<\/li>\n<li><strong>Example:<\/strong> Vision tags images; a content team approves and publishes descriptive metadata.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">11) Duplicate and near-duplicate media triage (supporting feature)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Problem:<\/strong> Storing many similar images drives cost and complicates discovery.<\/li>\n<li><strong>Why Vision fits:<\/strong> Vision isn\u2019t primarily a dedup tool, but consistent tagging can help cluster assets for review.<\/li>\n<li><strong>Example:<\/strong> Combine Vision tags with perceptual hashing in your app to find candidates for deduplication.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">12) Compliance archiving metadata enrichment<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Problem:<\/strong> Large archives of images are unsearchable.<\/li>\n<li><strong>Why Vision fits:<\/strong> Batch classification\/OCR produces metadata to power search and retrieval.<\/li>\n<li><strong>Example:<\/strong> Nightly job processes new archives, storing tags and extracted text in a searchable index.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">6. Core Features<\/h2>\n\n\n\n<blockquote>\n<p>Note: Vision capabilities can vary by region, model type, and service updates. Confirm exact capabilities and quotas in the official docs: https:\/\/docs.oracle.com\/en-us\/iaas\/vision\/vision\/<\/p>\n<\/blockquote>\n\n\n\n<h3 class=\"wp-block-heading\">Feature: Prebuilt image classification<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>What it does:<\/strong> Assigns one or more labels\/categories to an image.<\/li>\n<li><strong>Why it matters:<\/strong> Useful for tagging, routing, and search metadata.<\/li>\n<li><strong>Practical benefit:<\/strong> You can build auto-tagging and content organization quickly.<\/li>\n<li><strong>Caveats:<\/strong> Labels are only as good as the prebuilt taxonomy; validate accuracy on your domain data.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Feature: Prebuilt object detection<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>What it does:<\/strong> Detects objects and returns bounding boxes and confidence scores.<\/li>\n<li><strong>Why it matters:<\/strong> Enables locating items within images, not just labeling the image.<\/li>\n<li><strong>Practical benefit:<\/strong> Supports inspection, counting (approximate), and UI overlays.<\/li>\n<li><strong>Caveats:<\/strong> Small\/occluded objects and domain-specific objects may perform poorly without customization.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Feature: Text detection (OCR)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>What it does:<\/strong> Detects and extracts text from images; often returns text locations.<\/li>\n<li><strong>Why it matters:<\/strong> Converts printed text into machine-readable content.<\/li>\n<li><strong>Practical benefit:<\/strong> Automates data entry and indexing of scanned images.<\/li>\n<li><strong>Caveats:<\/strong> Low-quality images, handwriting, rotated text, or unusual fonts can reduce accuracy. Verify language support.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Feature: Asynchronous processing (where supported)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>What it does:<\/strong> Submits longer-running analysis as a job and retrieves results later.<\/li>\n<li><strong>Why it matters:<\/strong> Better for batch and high-volume workflows; avoids client timeouts.<\/li>\n<li><strong>Practical benefit:<\/strong> Supports pipelines that process thousands of images reliably.<\/li>\n<li><strong>Caveats:<\/strong> Requires job orchestration and result polling\/notification.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Feature: Custom model training (where supported)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>What it does:<\/strong> Lets you train models on your labeled images for classification or detection.<\/li>\n<li><strong>Why it matters:<\/strong> Improves accuracy for domain-specific objects and classes.<\/li>\n<li><strong>Practical benefit:<\/strong> Tailors the model to your products, defects, logos, or specialized categories.<\/li>\n<li><strong>Caveats:<\/strong> Requires labeled data, evaluation discipline, and governance; costs and limits differ from prebuilt inference.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Feature: Project\/dataset\/model resource management (custom workflows)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>What it does:<\/strong> Organizes training data, model versions, and lifecycle states.<\/li>\n<li><strong>Why it matters:<\/strong> Enables repeatable ML operations with traceability.<\/li>\n<li><strong>Practical benefit:<\/strong> Supports promotion from dev \u2192 staging \u2192 production models.<\/li>\n<li><strong>Caveats:<\/strong> Ensure IAM and compartments are structured for separation of duties.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Feature: REST API + OCI SDK support<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>What it does:<\/strong> Provides programmatic access using signed requests and official SDKs.<\/li>\n<li><strong>Why it matters:<\/strong> Enables automation and integration into CI\/CD and microservices.<\/li>\n<li><strong>Practical benefit:<\/strong> You can build reliable pipelines using standard OCI auth mechanisms.<\/li>\n<li><strong>Caveats:<\/strong> Keep SDK versions current; watch for API version changes (check release notes).<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Feature: OCI IAM integration<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>What it does:<\/strong> Uses OCI policies for authorization and compartment scoping.<\/li>\n<li><strong>Why it matters:<\/strong> Centralized governance and least privilege.<\/li>\n<li><strong>Practical benefit:<\/strong> You can restrict access by group, compartment, and verb (read\/use\/manage).<\/li>\n<li><strong>Caveats:<\/strong> Policy resource types must match Vision\u2019s current IAM vocabulary\u2014verify in docs.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Feature: OCI Audit visibility (governance)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>What it does:<\/strong> Captures control-plane API events for compliance and investigations.<\/li>\n<li><strong>Why it matters:<\/strong> Helps answer \u201cwho did what, when.\u201d<\/li>\n<li><strong>Practical benefit:<\/strong> Supports regulated environments.<\/li>\n<li><strong>Caveats:<\/strong> Confirm which events are logged and retention requirements in your org.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">7. Architecture and How It Works<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">High-level service architecture<\/h3>\n\n\n\n<p>At a high level:\n1. Your application (or script) authenticates with OCI (user principal, instance principal, or resource principal).\n2. You call Vision\u2019s API endpoint in your region.\n3. Vision runs the selected model(s) and returns structured results.\n4. Your application stores results (JSON) and triggers downstream actions.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Request\/data\/control flow (typical patterns)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Synchronous<\/strong> (simple, low-volume):<\/li>\n<li>Client \u2192 Vision API \u2192 immediate response<\/li>\n<li><strong>Asynchronous\/batch<\/strong> (preferred for scale):<\/li>\n<li>Upload to Object Storage \u2192 submit job \u2192 poll job status \/ receive event \u2192 fetch results \u2192 store outputs<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Integrations with related OCI services<\/h3>\n\n\n\n<p>Common integrations include:\n&#8211; <strong>Object Storage<\/strong>: store images and datasets; control access via IAM.\n&#8211; <strong>Functions<\/strong>: run event-driven analysis when a new object is uploaded.\n&#8211; <strong>Events + Notifications<\/strong>: route job completions and operational alerts.\n&#8211; <strong>API Gateway<\/strong>: secure frontend for external callers (rate limiting, auth).\n&#8211; <strong>Streaming<\/strong>: decouple ingestion and processing for high throughput.\n&#8211; <strong>Autonomous Database \/ Oracle Database<\/strong>: store metadata and results.\n&#8211; <strong>OpenSearch (self-managed) or search layer<\/strong>: index extracted labels\/text.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Dependency services (most common)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>OCI IAM (users, groups, policies)<\/li>\n<li>Object Storage (optional but common)<\/li>\n<li>Observability (Audit; optionally Logging\/Monitoring where applicable)<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Security\/authentication model<\/h3>\n\n\n\n<p>Vision uses standard OCI request authentication:\n&#8211; <strong>API signing keys<\/strong> (users)\n&#8211; <strong>Instance principals<\/strong> (workloads running on OCI compute)\n&#8211; <strong>Resource principals<\/strong> (some managed services)\n&#8211; <strong>Dynamic groups + policies<\/strong> to authorize workloads without long-lived keys<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Networking model<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Vision is consumed via OCI regional endpoints over HTTPS.<\/li>\n<li>If you need private network egress control, you typically route calls through controlled NAT\/proxy patterns from private subnets.<\/li>\n<li>For strict environments, verify whether Vision supports private endpoints or service gateway patterns in your region. If not certain, <strong>verify in official docs<\/strong> and plan accordingly.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Monitoring\/logging\/governance considerations<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Audit<\/strong>: capture API calls for governance.<\/li>\n<li><strong>Application logs<\/strong>: log request IDs, latency, and error codes.<\/li>\n<li><strong>Retries<\/strong>: implement exponential backoff for throttling and transient errors.<\/li>\n<li><strong>Tagging<\/strong>: apply cost-center and environment tags to supporting resources (buckets, functions, etc.).<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Simple architecture diagram (Mermaid)<\/h3>\n\n\n\n<pre><code class=\"language-mermaid\">flowchart LR\n  A[User \/ App] --&gt;|HTTPS + OCI Auth| B[Vision API (Regional)]\n  B --&gt; C[Analysis Result (JSON)]\n  C --&gt; D[(App DB \/ Metadata Store)]\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Production-style reference architecture (Mermaid)<\/h3>\n\n\n\n<pre><code class=\"language-mermaid\">flowchart TB\n  subgraph Ingestion\n    U[Users \/ Devices] --&gt; APIGW[API Gateway]\n    APIGW --&gt; UP[Upload Service]\n    UP --&gt; OS[(Object Storage Bucket)]\n  end\n\n  subgraph Processing\n    EV[Events] --&gt; FN[Functions: Vision Orchestrator]\n    OS --&gt; EV\n    FN --&gt;|Analyze Image| VSN[Vision API (Regional)]\n    VSN --&gt; FN\n    FN --&gt; META[(Database for Results)]\n    FN --&gt; IDX[(Search Index)]\n  end\n\n  subgraph Ops_and_Gov\n    AUD[OCI Audit]\n    LOG[App Logging]\n    MON[Monitoring\/Alarms]\n  end\n\n  APIGW -.-&gt; AUD\n  FN -.-&gt; LOG\n  FN -.-&gt; MON\n  VSN -.-&gt; AUD\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">8. Prerequisites<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Tenancy\/account requirements<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>An active <strong>Oracle Cloud<\/strong> tenancy with permission to use <strong>Analytics and AI<\/strong> services.<\/li>\n<li>Access to a compartment where you can create and manage required resources.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Permissions \/ IAM roles<\/h3>\n\n\n\n<p>You typically need:\n&#8211; Permission to call Vision APIs and (optionally) manage Vision resources (projects\/datasets\/models).\n&#8211; Permission to read images from Object Storage if you use Object Storage as input.<\/p>\n\n\n\n<p>Policy syntax and resource types can evolve; <strong>verify the exact IAM policy statements in the official Vision documentation<\/strong>. As a starting point to discuss with your OCI admin, policies often look like:<\/p>\n\n\n\n<pre><code class=\"language-text\">Allow group &lt;group-name&gt; to use ai-service-vision-family in compartment &lt;compartment-name&gt;\nAllow group &lt;group-name&gt; to read object-family in compartment &lt;compartment-name&gt;\n<\/code><\/pre>\n\n\n\n<p>If you will create buckets\/objects:<\/p>\n\n\n\n<pre><code class=\"language-text\">Allow group &lt;group-name&gt; to manage object-family in compartment &lt;compartment-name&gt;\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Billing requirements<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Vision is generally a paid OCI service with usage-based charges.<\/li>\n<li>Even if you use an Always Free tenancy or trial credits, confirm whether Vision is included in free allocations in your region. <strong>Verify in official pricing.<\/strong><\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Tools<\/h3>\n\n\n\n<p>Any of the following works:\n&#8211; OCI Console (browser)\n&#8211; OCI Cloud Shell (recommended for labs; includes OCI CLI and common tooling)\n&#8211; OCI CLI (optional)\n&#8211; OCI SDK for Python\/Java\/Go\/Node\/.NET (for automation)<\/p>\n\n\n\n<p>OCI Cloud Shell docs:\n&#8211; https:\/\/docs.oracle.com\/en-us\/iaas\/Content\/API\/Concepts\/cloudshellintro.htm<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Region availability<\/h3>\n\n\n\n<p>Vision may not be available in every OCI region.\n&#8211; Check service availability and endpoints in the Vision docs and your OCI Console region selector.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Quotas\/limits<\/h3>\n\n\n\n<p>Expect limits around:\n&#8211; Requests per second (throttling)\n&#8211; Max image size \/ resolution\n&#8211; Supported file types\n&#8211; Job concurrency (for asynchronous workflows)<\/p>\n\n\n\n<p>Do not assume numbers\u2014<strong>verify in official docs<\/strong> for your region and tenancy.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Prerequisite services (for this tutorial)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Object Storage (bucket + an uploaded image)<\/li>\n<li>Cloud Shell (or local Python environment) to call Vision programmatically<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">9. Pricing \/ Cost<\/h2>\n\n\n\n<blockquote>\n<p>Pricing changes over time and can be region- and contract-dependent. Use official sources to confirm current SKUs and rates.<\/p>\n<\/blockquote>\n\n\n\n<h3 class=\"wp-block-heading\">Current pricing model (typical dimensions)<\/h3>\n\n\n\n<p>Vision is typically priced based on one or more of:\n&#8211; <strong>Number of images analyzed<\/strong> (per image or per 1,000 images)\n&#8211; <strong>Type of analysis<\/strong> (classification vs detection vs OCR; may have different SKUs)\n&#8211; <strong>Asynchronous\/batch job usage<\/strong> (if priced differently)\n&#8211; <strong>Custom model training<\/strong> (often billed by training time\/compute usage where supported)\n&#8211; <strong>Model hosting\/inference for custom models<\/strong> (may have separate charges where applicable)<\/p>\n\n\n\n<p>Confirm the current Vision pricing here:\n&#8211; Oracle Cloud price list (AI services section): https:\/\/www.oracle.com\/cloud\/price-list\/\n&#8211; Oracle Cloud Pricing Calculator: https:\/\/www.oracle.com\/cloud\/costestimator.html<\/p>\n\n\n\n<p>If the pricing page lists \u201cAI Services\u201d and then \u201cVision\u201d SKUs, use those entries. If you cannot find Vision listed, search within the price list for \u201cVision\u201d and \u201cAI Services,\u201d and <strong>verify in official docs<\/strong>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Free tier<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>OCI free tier offerings vary. Vision may or may not include a free allotment.<\/li>\n<li>Do not assume free usage. Verify on:<\/li>\n<li>https:\/\/www.oracle.com\/cloud\/free\/<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Primary cost drivers<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Volume of images analyzed per day\/month<\/li>\n<li>Whether you run multiple features per image (e.g., OCR + object detection)<\/li>\n<li>Re-processing frequency (retries, re-analysis after model updates)<\/li>\n<li>Data preparation and storage (Object Storage size + requests)<\/li>\n<li>Egress\/data transfer (if you move images\/results out of OCI regions)<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Hidden\/indirect costs to plan for<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Object Storage costs<\/strong> (stored images, lifecycle policies, replication)<\/li>\n<li><strong>Requests to Object Storage<\/strong> (PUT\/LIST\/GET can add up at scale)<\/li>\n<li><strong>Outbound network egress<\/strong> if results are exported to external systems<\/li>\n<li><strong>Operational tooling<\/strong> (Logging storage, alarms, SIEM export)<\/li>\n<li><strong>Serverless\/compute<\/strong> costs if you orchestrate via Functions or Compute instances<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Network\/data transfer implications<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Calls to Vision stay within OCI endpoints, but your client location matters:<\/li>\n<li>On-OCI workloads usually have lower latency and avoid some egress patterns.<\/li>\n<li>Off-OCI callers may incur internet egress on their side and higher latency.<\/li>\n<li>Moving large images across regions can increase costs; prefer regional locality.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">How to optimize cost<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Use <strong>batch\/asynchronous<\/strong> patterns for large volumes (reduces retries\/timeouts).<\/li>\n<li>Avoid calling multiple Vision features unless needed (e.g., don\u2019t run OCR if you only need object detection).<\/li>\n<li>Downscale images responsibly if your use case allows (while maintaining accuracy).<\/li>\n<li>Cache results; don\u2019t re-process unchanged images.<\/li>\n<li>Apply Object Storage lifecycle rules (archive or delete old inputs).<\/li>\n<li>Use tags and budgets to attribute and control spend.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Example low-cost starter estimate (no fabricated numbers)<\/h3>\n\n\n\n<p>A realistic starter design:\n&#8211; Store a handful of test images in Object Storage.\n&#8211; Run a small number of Vision analyses per day during development.\n&#8211; Use Cloud Shell and a simple script (no always-on compute).<\/p>\n\n\n\n<p>To estimate accurately:\n1. Determine expected <strong>images\/day<\/strong> and <strong>features\/image<\/strong>.\n2. Look up the Vision SKU rates on the official price list for your region.\n3. Add Object Storage monthly cost for stored test images (usually minimal for small volumes).\n4. Add any orchestration compute (Functions) if used.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Example production cost considerations (what to model)<\/h3>\n\n\n\n<p>For production, model:\n&#8211; Peak and average image ingestion rate\n&#8211; Error rate and retry overhead\n&#8211; Multi-feature calls per image\n&#8211; Storage retention period and replication\n&#8211; Cross-region or cross-cloud export\n&#8211; Monitoring\/log retention<\/p>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">10. Step-by-Step Hands-On Tutorial<\/h2>\n\n\n\n<p>This lab uses <strong>Object Storage + Vision<\/strong> to analyze an image with a prebuilt feature (such as object detection or text detection). It is designed to be safe, beginner-friendly, and relatively low cost.<\/p>\n\n\n\n<p>Because SDK class names and API versions can change, this tutorial prioritizes <strong>OCI Cloud Shell + OCI Python SDK<\/strong> and includes guidance on how to validate against official docs.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Objective<\/h3>\n\n\n\n<p>Upload an image to Oracle Cloud Object Storage and call <strong>Vision<\/strong> to analyze that image, then review structured results and clean up resources.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Lab Overview<\/h3>\n\n\n\n<p>You will:\n1. Create an Object Storage bucket and upload an image.\n2. Use Cloud Shell to authenticate and run a Python script.\n3. Call Vision to analyze the image using its Object Storage location.\n4. Validate the output.\n5. Clean up the bucket and object.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 1: Create a bucket and upload a test image (Console)<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Sign in to the <strong>Oracle Cloud Console<\/strong>.<\/li>\n<li>Select the <strong>region<\/strong> where Vision is available for your tenancy.<\/li>\n<li>Go to <strong>Storage \u2192 Object Storage &amp; Archive Storage \u2192 Buckets<\/strong>.<\/li>\n<li>Choose your <strong>compartment<\/strong>.<\/li>\n<li>Click <strong>Create Bucket<\/strong>.\n   &#8211; Bucket name: <code>vision-lab-bucket-&lt;unique&gt;<\/code>\n   &#8211; Default settings are fine for a lab (unless your org requires encryption keys or specific policies).<\/li>\n<li>Open the bucket and click <strong>Upload<\/strong>.<\/li>\n<li>Upload a small test image:\n   &#8211; For OCR testing: a screenshot containing clear printed text.\n   &#8211; For object detection: a photo with common objects.<\/li>\n<\/ol>\n\n\n\n<p><strong>Expected outcome:<\/strong> You have a bucket with one uploaded image object.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 2: Capture the Object Storage details you\u2019ll need<\/h3>\n\n\n\n<p>You need:\n&#8211; <strong>Namespace<\/strong>\n&#8211; <strong>Bucket name<\/strong>\n&#8211; <strong>Object name<\/strong>\n&#8211; <strong>Region<\/strong>\n&#8211; <strong>Compartment OCID<\/strong> (sometimes required by service calls)<\/p>\n\n\n\n<p>How to get them:\n1. In Object Storage, find <strong>Namespace<\/strong> in the console (often shown in bucket details or tenancy details).\n2. Copy:\n   &#8211; Bucket name\n   &#8211; Object name (including any prefix\/folder path)<\/p>\n\n\n\n<p><strong>Expected outcome:<\/strong> You have values for namespace, bucket, object, and region.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 3: Open Cloud Shell and confirm authentication<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>In the OCI Console, click the <strong>Cloud Shell<\/strong> icon.<\/li>\n<li>In Cloud Shell, confirm the region and identity context.<\/li>\n<\/ol>\n\n\n\n<p>Run:<\/p>\n\n\n\n<pre><code class=\"language-bash\">oci iam region list --query \"data[?contains(name,'')].{name:name,key:key}\" --output table\n<\/code><\/pre>\n\n\n\n<p>Then check your current CLI setup:<\/p>\n\n\n\n<pre><code class=\"language-bash\">oci session validate\n<\/code><\/pre>\n\n\n\n<p>If <code>oci session validate<\/code> is not available in your CLI version, run a simple command such as:<\/p>\n\n\n\n<pre><code class=\"language-bash\">oci iam availability-domain list --output table\n<\/code><\/pre>\n\n\n\n<p><strong>Expected outcome:<\/strong> CLI commands work without configuring API keys manually (Cloud Shell is pre-authenticated to your user session).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 4: Install\/upgrade the OCI Python SDK (Cloud Shell)<\/h3>\n\n\n\n<p>Cloud Shell often has Python and SDK available, but versions differ. Upgrade in your user environment:<\/p>\n\n\n\n<pre><code class=\"language-bash\">python3 -m pip install --upgrade --user oci\n<\/code><\/pre>\n\n\n\n<p>Confirm:<\/p>\n\n\n\n<pre><code class=\"language-bash\">python3 -c \"import oci; print(oci.__version__)\"\n<\/code><\/pre>\n\n\n\n<p><strong>Expected outcome:<\/strong> The OCI Python SDK imports successfully.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 5: Run a Vision analysis script (Python)<\/h3>\n\n\n\n<p>Create a file named <code>vision_analyze.py<\/code>:<\/p>\n\n\n\n<pre><code class=\"language-bash\">cat &gt; vision_analyze.py &lt;&lt;'PY'\nimport sys\nimport json\nimport oci\n\n# -------------------------\n# User inputs (edit these)\n# -------------------------\nNAMESPACE = sys.argv[1]\nBUCKET = sys.argv[2]\nOBJECT_NAME = sys.argv[3]\n\n# Optional: feature selection (choose one)\nFEATURE = sys.argv[4] if len(sys.argv) &gt; 4 else \"OBJECT_DETECTION\"\n# Other common values you may try (verify in docs): IMAGE_CLASSIFICATION, TEXT_DETECTION\n\n# -------------------------\n# OCI config and client\n# -------------------------\nconfig = oci.config.from_file()  # In Cloud Shell, this typically works.\nsigner = oci.signer.Signer(\n    tenancy=config[\"tenancy\"],\n    user=config[\"user\"],\n    fingerprint=config[\"fingerprint\"],\n    private_key_file_location=config[\"key_file\"],\n    pass_phrase=config.get(\"pass_phrase\")\n)\n\n# The Vision client module\/class naming can evolve across SDK versions.\n# As of recent OCI SDK patterns, Vision is under oci.ai_vision with AIServiceVisionClient.\n# If this import fails, verify the latest SDK docs for Vision.\nfrom oci.ai_vision import AIServiceVisionClient\nfrom oci.ai_vision.models import (\n    AnalyzeImageDetails,\n    ObjectStorageImageDetails,\n    ObjectStorageLocation,\n    ImageClassificationFeature,\n    ObjectDetectionFeature,\n    TextDetectionFeature\n)\n\nclient = AIServiceVisionClient(config=config, signer=signer)\n\n# -------------------------\n# Build request payload\n# -------------------------\nimage = ObjectStorageImageDetails(\n    object_storage_location=ObjectStorageLocation(\n        namespace_name=NAMESPACE,\n        bucket_name=BUCKET,\n        object_name=OBJECT_NAME\n    )\n)\n\nif FEATURE == \"IMAGE_CLASSIFICATION\":\n    features = [ImageClassificationFeature()]\nelif FEATURE == \"TEXT_DETECTION\":\n    features = [TextDetectionFeature()]\nelse:\n    features = [ObjectDetectionFeature()]\n\ndetails = AnalyzeImageDetails(\n    image=image,\n    features=features\n)\n\n# -------------------------\n# Call Vision\n# -------------------------\nresp = client.analyze_image(analyze_image_details=details)\nprint(json.dumps(oci.util.to_dict(resp.data), indent=2))\nPY\n<\/code><\/pre>\n\n\n\n<p>Now run it (replace placeholders):<\/p>\n\n\n\n<pre><code class=\"language-bash\">python3 vision_analyze.py &lt;namespace&gt; &lt;bucket_name&gt; &lt;object_name&gt; OBJECT_DETECTION\n<\/code><\/pre>\n\n\n\n<p>Examples:\n&#8211; Object detection:\n  <code>bash\n  python3 vision_analyze.py mynamespace vision-lab-bucket-123 photo.jpg OBJECT_DETECTION<\/code>\n&#8211; OCR\/text detection:\n  <code>bash\n  python3 vision_analyze.py mynamespace vision-lab-bucket-123 screenshot.png TEXT_DETECTION<\/code><\/p>\n\n\n\n<p><strong>Expected outcome:<\/strong> You receive a JSON response containing detected objects or detected text with confidence scores and (for detection) bounding box coordinates.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 6: Interpret results and store them (optional)<\/h3>\n\n\n\n<p>For a quick lab, you can save the JSON:<\/p>\n\n\n\n<pre><code class=\"language-bash\">python3 vision_analyze.py &lt;namespace&gt; &lt;bucket_name&gt; &lt;object_name&gt; TEXT_DETECTION &gt; vision_result.json\nls -lh vision_result.json\nhead -n 40 vision_result.json\n<\/code><\/pre>\n\n\n\n<p><strong>Expected outcome:<\/strong> You have a local <code>vision_result.json<\/code> artifact you can use in downstream steps.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Validation<\/h3>\n\n\n\n<p>Use this checklist:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>API call succeeded<\/strong> (no authentication or authorization errors).<\/li>\n<li>JSON output includes:\n   &#8211; A list of detections\/labels\/text lines (structure depends on feature).\n   &#8211; Confidence scores (typically floats).<\/li>\n<li>Results make sense for your test image.\n   &#8211; For OCR: confirm expected text appears.\n   &#8211; For detection: confirm detected object labels and rough bounding locations.<\/li>\n<\/ol>\n\n\n\n<p>If you need deeper validation:\n&#8211; Repeat with a second image.\n&#8211; Compare OCR results against known ground truth.\n&#8211; Measure false positives and confidence thresholds.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Troubleshooting<\/h3>\n\n\n\n<p>Common issues and fixes:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\n<p><strong><code>ModuleNotFoundError: No module named 'oci.ai_vision'<\/code><\/strong>\n   &#8211; Fix: upgrade SDK again:\n     <code>bash\n     python3 -m pip install --upgrade --user oci<\/code>\n   &#8211; If it still fails, your Cloud Shell image may be pinned. Use a virtual environment or consult the current SDK docs. <strong>Verify in official docs<\/strong>:<\/p>\n<ul>\n<li>SDK docs: https:\/\/docs.oracle.com\/en-us\/iaas\/Content\/API\/SDKDocs\/overview.htm<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><strong>401 Unauthorized \/ signing errors<\/strong>\n   &#8211; In Cloud Shell, auth should work, but if you use a local machine:<\/p>\n<ul>\n<li>Ensure <code>~\/.oci\/config<\/code> and API key are configured.<\/li>\n<li>Ensure the key file path is correct and readable.<\/li>\n<li>Consider using instance principals for OCI compute workloads.<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><strong>403 Forbidden<\/strong>\n   &#8211; IAM policy issue. Ensure you have permissions to:<\/p>\n<ul>\n<li>Use Vision<\/li>\n<li>Read the object in Object Storage<\/li>\n<li>Work with your admin to validate policies for your compartment.<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><strong>404 Object not found<\/strong>\n   &#8211; Check <code>namespace<\/code>, <code>bucket<\/code>, and <code>object_name<\/code> exactly (case-sensitive).\n   &#8211; Confirm the object exists and is in the same region.<\/p>\n<\/li>\n<li>\n<p><strong>Throttling \/ rate limit errors<\/strong>\n   &#8211; Implement retries with exponential backoff.\n   &#8211; Reduce concurrency.\n   &#8211; Use async\/batch patterns for high volume (verify job APIs in docs).<\/p>\n<\/li>\n<li>\n<p><strong>Unexpected\/low-quality detection<\/strong>\n   &#8211; Use a clearer image (higher resolution, less blur).\n   &#8211; Try a different feature (classification vs detection).\n   &#8211; Consider custom training (if supported and justified).<\/p>\n<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">Cleanup<\/h3>\n\n\n\n<p>To avoid ongoing storage charges:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>In the OCI Console, go to your bucket.<\/li>\n<li>Delete the uploaded image object.<\/li>\n<li>Delete the bucket.<\/li>\n<\/ol>\n\n\n\n<p>If you created any additional resources (functions, policies, or databases), remove them according to your organization\u2019s change process.<\/p>\n\n\n\n<p><strong>Expected outcome:<\/strong> No lab resources remain that could incur ongoing costs.<\/p>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">11. Best Practices<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Architecture best practices<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Prefer <strong>event-driven pipelines<\/strong> (Object Storage \u2192 Events \u2192 Functions) for scalable ingestion.<\/li>\n<li>Separate concerns:<\/li>\n<li>Ingestion service<\/li>\n<li>Vision analysis worker<\/li>\n<li>Results store + downstream actions<\/li>\n<li>Store raw images and analysis results separately; retain only what you need.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">IAM\/security best practices<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Use <strong>least privilege<\/strong> policies:<\/li>\n<li>Allow only required compartments.<\/li>\n<li>Use <code>use<\/code> rather than <code>manage<\/code> where possible.<\/li>\n<li>Prefer <strong>dynamic groups + instance principals<\/strong> for OCI workloads instead of long-lived user keys.<\/li>\n<li>Control Object Storage access tightly; treat images as potentially sensitive data.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Cost best practices<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Don\u2019t run multiple Vision features unless required.<\/li>\n<li>Batch and cache results; avoid re-processing.<\/li>\n<li>Use Object Storage lifecycle rules to expire or archive old images.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Performance best practices<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Keep processing regional to minimize latency.<\/li>\n<li>Use asynchronous patterns for throughput and resilience.<\/li>\n<li>Apply reasonable image preprocessing (crop\/resize) if it improves accuracy and reduces payload sizes.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Reliability best practices<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Add retries with exponential backoff.<\/li>\n<li>Implement idempotency in your pipeline (same object shouldn\u2019t produce duplicate DB writes).<\/li>\n<li>Use dead-letter patterns for failures (queue or table of failed objects).<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Operations best practices<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Log request IDs and correlation IDs for support.<\/li>\n<li>Monitor error rates, latency, and queue depth (if using streaming\/queues).<\/li>\n<li>Track model\/version changes (for custom workflows) and re-validate accuracy after updates.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Governance\/tagging\/naming best practices<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Use consistent resource naming:<\/li>\n<li><code>env-app-purpose-region<\/code><\/li>\n<li>Apply tags:<\/li>\n<li><code>costCenter<\/code><\/li>\n<li><code>environment<\/code> (dev\/test\/prod)<\/li>\n<li><code>dataClassification<\/code><\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">12. Security Considerations<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Identity and access model<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Vision uses <strong>OCI IAM<\/strong> for authentication\/authorization.<\/li>\n<li>Prefer workload identities (instance\/resource principals) over user keys in production.<\/li>\n<li>Ensure Object Storage access is scoped:<\/li>\n<li>Only the bucket(s) needed<\/li>\n<li>Only read access when possible<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Encryption<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Data in transit: HTTPS.<\/li>\n<li>Data at rest: Object Storage supports encryption at rest; for Vision\u2019s internal handling, confirm service-specific statements in official docs.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Network exposure<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>If calling Vision from private subnets:<\/li>\n<li>Use controlled egress (NAT gateway, firewalls\/proxies).<\/li>\n<li>If exposing an API to the internet:<\/li>\n<li>Put API Gateway in front, use auth (JWT\/OAuth\/custom authorizers), and rate limiting.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Secrets handling<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Do not store OCI keys in code repositories.<\/li>\n<li>Use OCI Vault for secrets if you must store credentials (though instance principals are better).<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Audit\/logging<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Enable and monitor <strong>OCI Audit<\/strong>.<\/li>\n<li>Forward logs to a SIEM if required by your compliance program.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Compliance considerations<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Images may contain PII\/PHI.<\/li>\n<li>Implement:<\/li>\n<li>Data minimization<\/li>\n<li>Retention limits<\/li>\n<li>Access logging<\/li>\n<li>Encryption controls<\/li>\n<li>Confirm regional processing requirements with legal\/compliance.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Common security mistakes<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Overbroad IAM policies (e.g., tenancy-wide manage permissions)<\/li>\n<li>Public buckets or overly permissive pre-authenticated requests<\/li>\n<li>Storing extracted text (OCR) without classification\/retention controls<\/li>\n<li>Shipping images out of region without approval<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Secure deployment recommendations<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Use private buckets.<\/li>\n<li>Apply least privilege IAM.<\/li>\n<li>Keep processing in-region.<\/li>\n<li>Store only required outputs; redact sensitive extracted text where possible.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">13. Limitations and Gotchas<\/h2>\n\n\n\n<p>Because limits evolve, treat these as categories to validate in official docs:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Image limits<\/strong>: maximum file size, resolution, and supported formats (verify exact values).<\/li>\n<li><strong>Language support<\/strong> (OCR): not all languages\/scripts may be supported equally.<\/li>\n<li><strong>Accuracy variability<\/strong>: performance depends on lighting, angle, blur, occlusion, and domain similarity.<\/li>\n<li><strong>Throttling<\/strong>: API rate limits can impact high-concurrency designs.<\/li>\n<li><strong>Regional availability<\/strong>: not all OCI regions support Vision features equally.<\/li>\n<li><strong>Cost surprises<\/strong>:<\/li>\n<li>Reprocessing images<\/li>\n<li>Running multiple features per image<\/li>\n<li>Storing large image archives long-term<\/li>\n<li><strong>Custom model constraints<\/strong> (if used):<\/li>\n<li>Data labeling effort<\/li>\n<li>Training time and evaluation requirements<\/li>\n<li>Model lifecycle governance<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">14. Comparison with Alternatives<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">In Oracle Cloud (nearest alternatives)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>OCI Data Science<\/strong>: when you want full control over model building\/training and custom pipelines.<\/li>\n<li><strong>Specialized document services<\/strong> (if your primary need is form\/receipt extraction rather than general OCR): verify current OCI service lineup in your region.<\/li>\n<li><strong>Custom self-managed inference on OCI GPU compute<\/strong>: for highly specialized workloads.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">In other clouds<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>AWS Rekognition<\/strong><\/li>\n<li><strong>Google Cloud Vision API<\/strong><\/li>\n<li><strong>Azure AI Vision (Computer Vision)<\/strong><\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Open-source \/ self-managed<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>OpenCV<\/strong> for classical CV and preprocessing<\/li>\n<li><strong>Tesseract OCR<\/strong> for text extraction<\/li>\n<li><strong>YOLO \/ Detectron2 \/ Segment Anything<\/strong> (self-managed) for detection\/segmentation<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">Comparison table<\/h4>\n\n\n\n<figure class=\"wp-block-table\"><table>\n<thead>\n<tr>\n<th>Option<\/th>\n<th>Best For<\/th>\n<th>Strengths<\/th>\n<th>Weaknesses<\/th>\n<th>When to Choose<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>Oracle Cloud Vision<\/strong><\/td>\n<td>OCI-native vision APIs with IAM\/governance<\/td>\n<td>Managed service, integrates with OCI, reduces ops burden<\/td>\n<td>Feature availability varies by region; less control than self-managed ML<\/td>\n<td>You\u2019re on OCI and want managed classification\/detection\/OCR quickly<\/td>\n<\/tr>\n<tr>\n<td><strong>OCI Data Science<\/strong><\/td>\n<td>Custom ML end-to-end<\/td>\n<td>Full flexibility, notebooks, pipelines<\/td>\n<td>More engineering\/ops; you manage model serving choices<\/td>\n<td>You need custom architectures, bespoke training, and full control<\/td>\n<\/tr>\n<tr>\n<td><strong>AWS Rekognition<\/strong><\/td>\n<td>Vision features in AWS ecosystems<\/td>\n<td>Mature integrations, broad adoption<\/td>\n<td>Tied to AWS; cost model differs<\/td>\n<td>Your platform is primarily AWS<\/td>\n<\/tr>\n<tr>\n<td><strong>Google Cloud Vision API<\/strong><\/td>\n<td>OCR and vision with Google ecosystem<\/td>\n<td>Strong OCR reputation (validate for your use case)<\/td>\n<td>Tied to GCP; pricing and limits vary<\/td>\n<td>You\u2019re on GCP and need deep OCR\/vision features<\/td>\n<\/tr>\n<tr>\n<td><strong>Azure AI Vision<\/strong><\/td>\n<td>Microsoft ecosystem integration<\/td>\n<td>Good integration with Azure services<\/td>\n<td>Tied to Azure<\/td>\n<td>Your apps\/data are on Azure<\/td>\n<\/tr>\n<tr>\n<td><strong>OpenCV + Tesseract + self-hosted models<\/strong><\/td>\n<td>Maximum control \/ offline environments<\/td>\n<td>Full control, no vendor lock-in<\/td>\n<td>High ops burden, scaling and maintenance<\/td>\n<td>You need on-prem\/offline or custom models with full control<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">15. Real-World Example<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Enterprise example: Insurance claims photo triage<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Problem:<\/strong> An insurer receives thousands of claim photos daily and needs to route them quickly.<\/li>\n<li><strong>Proposed architecture:<\/strong><\/li>\n<li>Mobile\/web uploads \u2192 Object Storage<\/li>\n<li>Events \u2192 Functions orchestrator<\/li>\n<li>Functions call Vision (classification\/detection\/OCR as needed)<\/li>\n<li>Results stored in a database and indexed for adjusters<\/li>\n<li>Audit + logging for governance<\/li>\n<li><strong>Why Vision was chosen:<\/strong> Managed inference reduces time-to-market and operational complexity; OCI IAM aligns with enterprise governance.<\/li>\n<li><strong>Expected outcomes:<\/strong><\/li>\n<li>Faster routing and reduced manual triage workload<\/li>\n<li>Consistent metadata tagging<\/li>\n<li>Better search and reporting over claims imagery<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Startup\/small-team example: Marketplace auto-moderation support<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Problem:<\/strong> A small marketplace team needs to identify risky uploads without a large moderation staff.<\/li>\n<li><strong>Proposed architecture:<\/strong><\/li>\n<li>Upload API \u2192 Object Storage<\/li>\n<li>Serverless function calls Vision classification<\/li>\n<li>Items above a threshold go to manual review; others proceed<\/li>\n<li><strong>Why Vision was chosen:<\/strong> Fast integration, minimal ops, pay-per-use economics.<\/li>\n<li><strong>Expected outcomes:<\/strong><\/li>\n<li>Reduced moderation queue volume<\/li>\n<li>Faster listing approvals<\/li>\n<li>Clear audit trail for moderation decisions (when combined with app logs)<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">16. FAQ<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">1) Is Vision the same as \u201cOCI Vision\u201d or \u201cAI Vision\u201d?<\/h3>\n\n\n\n<p>They typically refer to the same Oracle Cloud service for computer vision. Naming can differ across console, docs, and SDK modules. Always confirm the current service naming in Oracle\u2019s official documentation.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">2) Does Vision require me to manage GPUs?<\/h3>\n\n\n\n<p>For prebuilt inference APIs, you generally do not manage GPUs or inference servers. If you use custom training\/hosting features (where available), the service may manage infrastructure behind the scenes while charging for the associated usage.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">3) Can Vision read text from images (OCR)?<\/h3>\n\n\n\n<p>Vision commonly supports text detection\/OCR. Language coverage, accuracy, and limits vary\u2014verify supported languages, image constraints, and output schema in official docs.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">4) Can I analyze images stored in Object Storage?<\/h3>\n\n\n\n<p>Yes, Object Storage is a common pattern. You provide the bucket\/object location (subject to IAM permissions) or upload image bytes inline, depending on the API.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">5) What IAM permissions do I need?<\/h3>\n\n\n\n<p>You need permissions to call Vision and to read input images (often in Object Storage). The exact IAM policy resource types should be verified in Vision IAM documentation for your tenancy.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">6) How do I keep image data private?<\/h3>\n\n\n\n<p>Use private buckets, least privilege IAM, and avoid public access mechanisms unless required. For external ingestion, use authenticated uploads and short-lived access patterns.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">7) Does Vision support asynchronous\/batch jobs?<\/h3>\n\n\n\n<p>Many vision services provide async options for scale. If you need that, confirm the current Vision APIs for job submission and result retrieval in the official docs.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">8) How do I estimate costs?<\/h3>\n\n\n\n<p>Identify your monthly image volume and which features you\u2019ll call per image, then use the official AI services price list and OCI cost estimator. Add Object Storage and data transfer costs.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">9) What\u2019s the difference between image classification and object detection?<\/h3>\n\n\n\n<p>Classification assigns labels to the overall image; object detection finds and localizes objects with bounding boxes. Detection is usually more informative but may be more computationally intensive.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">10) Is Vision suitable for real-time mobile apps?<\/h3>\n\n\n\n<p>It can be, but you must test latency, payload sizes, and error handling. For mobile, you may want a backend proxy (API Gateway + service) rather than calling Vision directly from the device.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">11) Can I train a custom model?<\/h3>\n\n\n\n<p>Vision may support custom model training in some regions\/tenancies. This typically requires labeled datasets and a project\/model lifecycle. Verify the current custom model feature set in official docs.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">12) How do I handle throttling?<\/h3>\n\n\n\n<p>Implement retries with exponential backoff, respect service limits, and use queues\/async jobs for high-volume pipelines. Monitor error rates and request patterns.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">13) Where should I store analysis results?<\/h3>\n\n\n\n<p>Store results as JSON in a database or object store. For search, index key fields (labels, confidence thresholds, extracted text) in a search engine or database text index.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">14) How do I troubleshoot low accuracy?<\/h3>\n\n\n\n<p>Use better-quality images, refine preprocessing (crop\/resize), adjust confidence thresholds, and evaluate whether your domain requires custom models. Always measure against a labeled test set.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">15) Does Vision integrate with OCI Observability?<\/h3>\n\n\n\n<p>Control-plane actions are typically visible in OCI Audit. For metrics and logs, you\u2019ll usually rely on application-level instrumentation; verify whether Vision publishes service metrics in your region.<\/p>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">17. Top Online Resources to Learn Vision<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table>\n<thead>\n<tr>\n<th>Resource Type<\/th>\n<th>Name<\/th>\n<th>Why It Is Useful<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Official documentation<\/td>\n<td>Vision docs home: https:\/\/docs.oracle.com\/en-us\/iaas\/vision\/vision\/<\/td>\n<td>Canonical feature set, limits, tutorials, and API details<\/td>\n<\/tr>\n<tr>\n<td>API reference<\/td>\n<td>OCI API Reference (Vision): https:\/\/docs.oracle.com\/en-us\/iaas\/api\/#\/en\/vision\/<\/td>\n<td>Endpoint schemas, request\/response models, auth requirements<\/td>\n<\/tr>\n<tr>\n<td>Pricing<\/td>\n<td>Oracle Cloud Price List: https:\/\/www.oracle.com\/cloud\/price-list\/<\/td>\n<td>Official SKU-based pricing (region\/contract dependent)<\/td>\n<\/tr>\n<tr>\n<td>Cost estimation<\/td>\n<td>OCI Cost Estimator: https:\/\/www.oracle.com\/cloud\/costestimator.html<\/td>\n<td>Build a scenario-based estimate using official inputs<\/td>\n<\/tr>\n<tr>\n<td>Free tier<\/td>\n<td>Oracle Cloud Free Tier: https:\/\/www.oracle.com\/cloud\/free\/<\/td>\n<td>Check whether Vision or related services have free allocations<\/td>\n<\/tr>\n<tr>\n<td>SDKs<\/td>\n<td>OCI SDK docs: https:\/\/docs.oracle.com\/en-us\/iaas\/Content\/API\/SDKDocs\/overview.htm<\/td>\n<td>Language SDK usage patterns and authentication guidance<\/td>\n<\/tr>\n<tr>\n<td>Cloud Shell<\/td>\n<td>Cloud Shell intro: https:\/\/docs.oracle.com\/en-us\/iaas\/Content\/API\/Concepts\/cloudshellintro.htm<\/td>\n<td>Pre-authenticated environment for running labs quickly<\/td>\n<\/tr>\n<tr>\n<td>Architecture references<\/td>\n<td>OCI Solutions \/ Architecture Center: https:\/\/docs.oracle.com\/en\/solutions\/<\/td>\n<td>Patterns for event-driven pipelines, storage, and governance<\/td>\n<\/tr>\n<tr>\n<td>Videos (official)<\/td>\n<td>Oracle Cloud Infrastructure YouTube: https:\/\/www.youtube.com\/@OracleCloudInfrastructure<\/td>\n<td>Product walkthroughs and service updates (search for Vision\/AI services)<\/td>\n<\/tr>\n<tr>\n<td>Samples<\/td>\n<td>Oracle OCI GitHub org: https:\/\/github.com\/oracle<\/td>\n<td>Look for official SDK samples and reference implementations (verify Vision-specific repos)<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">18. Training and Certification Providers<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table>\n<thead>\n<tr>\n<th>Institute<\/th>\n<th>Suitable Audience<\/th>\n<th>Likely Learning Focus<\/th>\n<th>Mode<\/th>\n<th>Website URL<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>DevOpsSchool.com<\/td>\n<td>DevOps engineers, cloud engineers, architects<\/td>\n<td>OCI fundamentals, automation, platform practices around cloud services<\/td>\n<td>Check website<\/td>\n<td>https:\/\/www.devopsschool.com\/<\/td>\n<\/tr>\n<tr>\n<td>ScmGalaxy.com<\/td>\n<td>Beginners to intermediate engineers<\/td>\n<td>DevOps\/SCM foundations, tooling, and delivery practices that complement OCI workloads<\/td>\n<td>Check website<\/td>\n<td>https:\/\/www.scmgalaxy.com\/<\/td>\n<\/tr>\n<tr>\n<td>CLoudOpsNow.in<\/td>\n<td>Cloud operations and platform teams<\/td>\n<td>Cloud ops, reliability, operationalizing services<\/td>\n<td>Check website<\/td>\n<td>https:\/\/cloudopsnow.in\/<\/td>\n<\/tr>\n<tr>\n<td>SreSchool.com<\/td>\n<td>SREs, operations, platform engineers<\/td>\n<td>Reliability engineering, monitoring, incident response patterns applicable to OCI services<\/td>\n<td>Check website<\/td>\n<td>https:\/\/sreschool.com\/<\/td>\n<\/tr>\n<tr>\n<td>AiOpsSchool.com<\/td>\n<td>Ops + AI\/automation practitioners<\/td>\n<td>AIOps concepts, automation, operational analytics<\/td>\n<td>Check website<\/td>\n<td>https:\/\/aiopsschool.com\/<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">19. Top Trainers<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table>\n<thead>\n<tr>\n<th>Platform\/Site<\/th>\n<th>Likely Specialization<\/th>\n<th>Suitable Audience<\/th>\n<th>Website URL<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>RajeshKumar.xyz<\/td>\n<td>DevOps\/cloud training content<\/td>\n<td>Engineers seeking practical training resources<\/td>\n<td>https:\/\/rajeshkumar.xyz\/<\/td>\n<\/tr>\n<tr>\n<td>devopstrainer.in<\/td>\n<td>DevOps tooling and practices<\/td>\n<td>Beginners to advanced DevOps learners<\/td>\n<td>https:\/\/devopstrainer.in\/<\/td>\n<\/tr>\n<tr>\n<td>devopsfreelancer.com<\/td>\n<td>Freelance DevOps services\/training platform<\/td>\n<td>Teams seeking hands-on guidance<\/td>\n<td>https:\/\/devopsfreelancer.com\/<\/td>\n<\/tr>\n<tr>\n<td>devopssupport.in<\/td>\n<td>DevOps support and enablement<\/td>\n<td>Ops\/DevOps teams needing implementation support<\/td>\n<td>https:\/\/devopssupport.in\/<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">20. Top Consulting Companies<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table>\n<thead>\n<tr>\n<th>Company<\/th>\n<th>Likely Service Area<\/th>\n<th>Where They May Help<\/th>\n<th>Consulting Use Case Examples<\/th>\n<th>Website URL<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>cotocus.com<\/td>\n<td>Cloud\/DevOps consulting<\/td>\n<td>Architecture, implementation, CI\/CD, operational readiness<\/td>\n<td>Building event-driven pipelines, IaC rollout, governance setup<\/td>\n<td>https:\/\/cotocus.com\/<\/td>\n<\/tr>\n<tr>\n<td>DevOpsSchool.com<\/td>\n<td>Training + consulting<\/td>\n<td>Delivery enablement, automation, DevOps transformation<\/td>\n<td>Setting up secure OCI automation, building platform playbooks<\/td>\n<td>https:\/\/www.devopsschool.com\/<\/td>\n<\/tr>\n<tr>\n<td>DEVOPSCONSULTING.IN<\/td>\n<td>DevOps consulting<\/td>\n<td>Deployment automation, observability, cloud operations<\/td>\n<td>Production hardening, monitoring strategy, incident process<\/td>\n<td>https:\/\/devopsconsulting.in\/<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">21. Career and Learning Roadmap<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">What to learn before Vision<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>OCI fundamentals:<\/li>\n<li>Compartments, IAM users\/groups\/policies<\/li>\n<li>Regions and networking basics<\/li>\n<li>Object Storage basics:<\/li>\n<li>Buckets, objects, lifecycle policies<\/li>\n<li>API fundamentals:<\/li>\n<li>REST concepts, authentication, request\/response handling<\/li>\n<li>Basic ML concepts:<\/li>\n<li>Classification vs detection vs OCR<\/li>\n<li>Precision\/recall and confidence thresholds<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">What to learn after Vision<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Event-driven architectures:<\/li>\n<li>OCI Events, Functions, Notifications<\/li>\n<li>Data persistence and search:<\/li>\n<li>Databases for metadata and JSON<\/li>\n<li>Indexing strategies for extracted text<\/li>\n<li>MLOps (if you move into custom models):<\/li>\n<li>Dataset management, labeling, evaluation<\/li>\n<li>Model versioning and rollout strategies<\/li>\n<li>Security:<\/li>\n<li>OCI Vault<\/li>\n<li>Security zones (if used in your org)<\/li>\n<li>Audit and compliance reporting<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Job roles that use Vision<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Cloud engineer (building pipelines and integrations)<\/li>\n<li>Solutions architect (designing AI-enriched systems)<\/li>\n<li>DevOps\/SRE (operationalizing AI services)<\/li>\n<li>Data engineer (metadata enrichment pipelines)<\/li>\n<li>ML engineer (when using custom training workflows)<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Certification path (if available)<\/h3>\n\n\n\n<p>Oracle certification programs change over time. Use Oracle University and OCI certification listings to find current tracks that cover AI services:\n&#8211; Oracle University: https:\/\/education.oracle.com\/\n&#8211; OCI certifications overview (verify current page): https:\/\/education.oracle.com\/oracle-cloud-infrastructure-certification<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Project ideas for practice<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Serverless pipeline: Object Storage \u2192 Function \u2192 Vision \u2192 DB<\/li>\n<li>OCR indexer: extract text and index into a searchable store<\/li>\n<li>Moderation workflow: threshold-based review queue with audit logging<\/li>\n<li>Cost dashboard: track images processed and estimate monthly spend by tags<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">22. Glossary<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Compartment (OCI):<\/strong> A logical container for organizing and isolating cloud resources with IAM policies.<\/li>\n<li><strong>IAM Policy:<\/strong> Text-based rules that define who can do what in OCI (e.g., \u201cAllow group X to use Y in compartment Z\u201d).<\/li>\n<li><strong>Object Storage Namespace:<\/strong> A tenancy-scoped identifier used in Object Storage addressing.<\/li>\n<li><strong>Image Classification:<\/strong> Assigning labels to an entire image.<\/li>\n<li><strong>Object Detection:<\/strong> Identifying and locating objects in an image, typically with bounding boxes.<\/li>\n<li><strong>OCR (Optical Character Recognition):<\/strong> Extracting text from images.<\/li>\n<li><strong>Confidence Score:<\/strong> A numeric value indicating the model\u2019s estimated likelihood that a prediction is correct.<\/li>\n<li><strong>Bounding Box:<\/strong> Coordinates defining the rectangle around a detected object or text region.<\/li>\n<li><strong>Synchronous Inference:<\/strong> A request\/response call where results return immediately.<\/li>\n<li><strong>Asynchronous Job:<\/strong> A submitted task that completes later; results are retrieved after completion.<\/li>\n<li><strong>Least Privilege:<\/strong> Security principle of granting only the minimum permissions necessary.<\/li>\n<li><strong>Instance Principal:<\/strong> OCI authentication method for workloads running on OCI compute without embedding user keys.<\/li>\n<li><strong>Dynamic Group:<\/strong> A set of OCI resources (instances, functions) grouped for IAM policies.<\/li>\n<li><strong>Egress:<\/strong> Outbound network traffic leaving a region or cloud environment.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">23. Summary<\/h2>\n\n\n\n<p>Vision on <strong>Oracle Cloud<\/strong> is a managed <strong>Analytics and AI<\/strong> service that analyzes images via APIs to return structured results such as labels, detected objects, and extracted text. It fits well when you want to add computer vision capabilities quickly without operating your own inference infrastructure, and when you want tight integration with OCI services like Object Storage, Functions, and IAM.<\/p>\n\n\n\n<p>Cost is primarily driven by how many images you analyze and which features you run per image, plus storage and data transfer. Security depends on least-privilege IAM, private storage, careful handling of sensitive images\/OCR outputs, and governance via Audit and logging.<\/p>\n\n\n\n<p>Use Vision for OCI-native image understanding and scalable pipelines; consider OCI Data Science or self-managed alternatives when you need deep customization and full control. Next, deepen your skills by productionizing the lab into an event-driven pipeline and validating accuracy\/cost with real workload data.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Analytics and AI<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[66,62],"tags":[],"class_list":["post-842","post","type-post","status-publish","format-standard","hentry","category-analytics-and-ai","category-oracle-cloud"],"_links":{"self":[{"href":"https:\/\/www.devopsschool.com\/tutorials\/wp-json\/wp\/v2\/posts\/842","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devopsschool.com\/tutorials\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devopsschool.com\/tutorials\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/tutorials\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/tutorials\/wp-json\/wp\/v2\/comments?post=842"}],"version-history":[{"count":0,"href":"https:\/\/www.devopsschool.com\/tutorials\/wp-json\/wp\/v2\/posts\/842\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.devopsschool.com\/tutorials\/wp-json\/wp\/v2\/media?parent=842"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devopsschool.com\/tutorials\/wp-json\/wp\/v2\/categories?post=842"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devopsschool.com\/tutorials\/wp-json\/wp\/v2\/tags?post=842"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}