{"reference_analysis":{"checked_at":"2026-10-08","provider":"Viam","about_url":"https://www.viam.com/about","source_access":{"en":"Official About and Python SDK references read on 2026-10-08. The main Vision guide could not be retrieved, so this guide uses the published SDK contract; verify compatibility with your installed SDK/runtime/module versions.","zh-TW":"於 2026-10-08 讀取官方 About 與 Python SDK 參考。主要 Vision 指南無法擷取，因此以已發布 SDK 契約為依據；需核對已安裝 SDK／runtime／模組版本相容性。"},"selection_basis":{"en":"Ten documented interfaces, operations or tools selected by integration task; not an official ranking or ten separate SDKs.","zh-TW":"依整合任務挑選十個文件記載的介面、操作或工具；不是官方排名或十個獨立 SDK。"},"about":[{"label":{"en":"Origins","zh-TW":"起源"},"value":{"en":"Viam states it was founded in 2020 by MongoDB co-founder Eliot Horowitz.","zh-TW":"Viam 自述於 2020 年由 MongoDB 共同創辦人 Eliot Horowitz 創立。"}},{"label":{"en":"Positioning","zh-TW":"定位"},"value":{"en":"A software platform for building, deploying and managing robotics applications and fleets.","zh-TW":"用於建立、部署及管理機器人應用與機群的軟體平台。"}},{"label":{"en":"Company footprint","zh-TW":"公司據點"},"value":{"en":"The company identifies New York City as its headquarters and robotics-lab location, with an international team.","zh-TW":"公司指出總部及機器人實驗室位於紐約，團隊分布海外。"}},{"label":{"en":"Our fit assessment","zh-TW":"本站適配評估"},"value":{"en":"A candidate for connecting inspection cameras, model services and fleet data; actual models, processing location and quality depend on configuration.","zh-TW":"適合評估串聯巡檢相機、模型服務及機群資料；實際模型、處理位置與品質取決於設定。"}}],"items":[{"id":"connection","name":"RobotClient connection","kind":"Python client","url":"https://python.viam.dev/autoapi/viam/robot/client/index.html","audience":{"en":"Edge / robotics backend engineer","zh-TW":"邊緣／機器人後端工程師"},"capability":{"en":"Connect to a machine and discover its named resources.","zh-TW":"連接機器並探索具名資源。"},"io":{"en":"Machine address and credentials → resource connection","zh-TW":"機器位址及憑證 → 資源連線"},"runtime":{"en":"Client-to-machine communication via Viam runtime.","zh-TW":"客戶端透過 Viam runtime 連接機器。"},"constraint":{"en":"The right credential can still target the wrong machine; retain machine identity.","zh-TW":"正確憑證仍可能連到錯誤機器，需保留機器識別。"},"validation":{"en":"Verify resource names, disconnected behavior and connection cleanup.","zh-TW":"核對資源名稱、斷線行為與連線釋放。"}},{"id":"camera","name":"Camera acquisition","kind":"Camera API","url":"https://python.viam.dev/autoapi/viam/components/camera/index.html","audience":{"en":"Camera integrator / image pipeline","zh-TW":"相機整合／影像管線"},"capability":{"en":"Retrieve named images and capture metadata from a configured camera.","zh-TW":"從設定相機取得具名影像與擷取中繼資料。"},"io":{"en":"Camera source selection → images and metadata","zh-TW":"相機來源選擇 → 影像及中繼資料"},"runtime":{"en":"Configured camera driver and Viam runtime.","zh-TW":"設定相機驅動與 Viam runtime。"},"constraint":{"en":"Multiple images can represent different imagers, not a temporal video sequence.","zh-TW":"多張影像可能來自不同感測器，不是時間序列影片。"},"validation":{"en":"Validate source identity, timestamp, resolution and capture failures.","zh-TW":"驗證來源識別、時間、解析度與擷取失敗。"}},{"id":"properties","name":"Vision capabilities","kind":"Capability query","url":"https://python.viam.dev/autoapi/viam/services/vision/index.html#viam.services.vision.VisionClient.get_properties","audience":{"en":"Integration architect","zh-TW":"整合架構師"},"capability":{"en":"Query supported vision operations.","zh-TW":"查詢支援的視覺操作。"},"io":{"en":"Service → capability flags","zh-TW":"服務 → 能力旗標"},"runtime":{"en":"Configured service.","zh-TW":"設定服務。"},"constraint":{"en":"Do not enable a UI action just because a method exists in the SDK.","zh-TW":"不可僅因 SDK 存在方法便啟用介面操作。"},"validation":{"en":"Use a classifier-only fixture and verify detection is unavailable.","zh-TW":"以僅分類服務樣本確認偵測操作不可用。"}},{"id":"detections","name":"Image detections","kind":"Vision operation","url":"https://python.viam.dev/autoapi/viam/services/vision/index.html#viam.services.vision.VisionClient.get_detections","audience":{"en":"Inspection UI developer","zh-TW":"巡檢介面工程師"},"capability":{"en":"Return labels, scores and boxes for an image.","zh-TW":"回傳影像標籤、分數及框線。"},"io":{"en":"Image → detections","zh-TW":"影像 → 偵測結果"},"runtime":{"en":"Configured detector.","zh-TW":"設定偵測器。"},"constraint":{"en":"Our adapter must choose pixel or normalized units explicitly.","zh-TW":"本站 adapter 必須明確選擇像素或正規化單位。"},"validation":{"en":"Check frame identity, box bounds and absence of unintended actuations.","zh-TW":"檢查影格識別、框線範圍及無未預期致動。"}},{"id":"classification","name":"Image classifications","kind":"Vision operation","url":"https://python.viam.dev/autoapi/viam/services/vision/index.html#viam.services.vision.VisionClient.get_classifications","audience":{"en":"Visual triage / ML integrator","zh-TW":"視覺初篩／ML 整合者"},"capability":{"en":"Return requested image classifications.","zh-TW":"回傳指定數量的影像分類。"},"io":{"en":"Image and count → classes and scores","zh-TW":"影像及數量 → 類別及分數"},"runtime":{"en":"Configured classifier.","zh-TW":"設定分類器。"},"constraint":{"en":"A class result alone cannot locate a defect or justify machine control.","zh-TW":"僅分類結果不能定位缺陷或直接作為機器控制依據。"},"validation":{"en":"Compare known categories and keep unfamiliar samples for review.","zh-TW":"比較已知類別，陌生樣本保留覆核。"}},{"id":"capture","name":"Combined camera capture","kind":"Vision operation","url":"https://python.viam.dev/autoapi/viam/services/vision/index.html#viam.services.vision.VisionClient.capture_all_from_camera","audience":{"en":"Live visualisation developer","zh-TW":"即時視覺化工程師"},"capability":{"en":"Request images and selected vision outputs together.","zh-TW":"一併請求影像及選定視覺輸出。"},"io":{"en":"Camera and return flags → optional result fields","zh-TW":"相機及回傳旗標 → 選填結果欄位"},"runtime":{"en":"Configured camera/service.","zh-TW":"設定相機／服務。"},"constraint":{"en":"Preserve unrequested null fields separately from requested empty arrays.","zh-TW":"未請求的 null 欄位與已請求的空陣列需分開。"},"validation":{"en":"For every frame verify requested flags and matching overlay data.","zh-TW":"逐影格核對請求旗標及對應框線資料。"}},{"id":"tensor","name":"MLModel tensor inference","kind":"Model-service API","url":"https://python.viam.dev/autoapi/viam/services/mlmodel/index.html","audience":{"en":"ML deployment engineer","zh-TW":"ML 部署工程師"},"capability":{"en":"Read model metadata and pass named tensors for inference.","zh-TW":"讀取模型中繼資料並傳入具名 tensor 推論。"},"io":{"en":"Input tensor map → output tensor map","zh-TW":"輸入 tensor 對應 → 輸出 tensor 對應"},"runtime":{"en":"Selected ML model service implementation.","zh-TW":"選定 ML 模型服務實作。"},"constraint":{"en":"Shape, dtype, channel order and normalization must match model metadata.","zh-TW":"形狀、dtype、通道順序及正規化需符合模型中繼資料。"},"validation":{"en":"Use a fixed tensor fixture and reject a deliberately wrong shape before rollout.","zh-TW":"使用固定 tensor 樣本，上線前拒絕刻意錯誤形狀。"}},{"id":"media","name":"ViamImage media adapter","kind":"Image representation","url":"https://python.viam.dev/autoapi/viam/media/video/index.html","audience":{"en":"Media / backend engineer","zh-TW":"媒體／後端工程師"},"capability":{"en":"Represent image bytes, MIME type and dimensions.","zh-TW":"表示影像位元組、MIME 類型及尺寸。"},"io":{"en":"Encoded bytes and MIME → ViamImage","zh-TW":"編碼位元組與 MIME → ViamImage"},"runtime":{"en":"Python media representation.","zh-TW":"Python 媒體表示。"},"constraint":{"en":"A declared MIME type does not validate corrupted bytes or color order.","zh-TW":"宣告 MIME 不代表已驗證毀損位元組或色彩順序。"},"validation":{"en":"Decode a known image and compare dimensions and orientation before detection.","zh-TW":"解碼已知影像，偵測前比較尺寸及方向。"}},{"id":"data","name":"DataClient retrieval","kind":"Cloud data API","url":"https://python.viam.dev/autoapi/viam/app/data_client/index.html","audience":{"en":"Data engineering / fleet analytics","zh-TW":"資料工程／機群分析"},"capability":{"en":"Filter and paginate stored binary data and metadata.","zh-TW":"篩選及分頁取得已儲存二進位資料與中繼資料。"},"io":{"en":"Bounded filter and cursor → records and next cursor","zh-TW":"有限範圍篩選與游標 → 紀錄及下一游標"},"runtime":{"en":"Viam cloud data access; distinct from direct camera inference.","zh-TW":"Viam 雲端資料存取，與直接相機推論不同。"},"constraint":{"en":"Empty filters can be broad; downloads and metadata-only reads have different cost and exposure.","zh-TW":"空篩選可能範圍過大；下載與僅中繼資料讀取在成本及揭露上不同。"},"validation":{"en":"Start with machine/time filters and metadata-only; verify pagination has no skipped records.","zh-TW":"從機器／時間篩選及僅中繼資料開始，驗證分頁無漏筆。"}},{"id":"module","name":"Custom resource module","kind":"Runtime extension","url":"https://python.viam.dev/autoapi/viam/module/module/index.html","audience":{"en":"Edge platform / custom model developer","zh-TW":"邊緣平台／自訂模型工程師"},"capability":{"en":"Run custom resources as a module service.","zh-TW":"將自訂資源作為模組服務執行。"},"io":{"en":"Resource implementation → registered runtime service","zh-TW":"資源實作 → 已註冊 runtime 服務"},"runtime":{"en":"Module process beside the Viam runtime.","zh-TW":"Viam runtime 旁的模組程序。"},"constraint":{"en":"A loaded process is not proof that hardware or weights are ready.","zh-TW":"程序已載入不代表硬體或權重已就緒。"},"validation":{"en":"Exercise startup readiness, missing weights, reconfiguration and clean shutdown.","zh-TW":"測試啟動就緒、缺少權重、重新設定與正常關閉。"}}],"supporting_references":[{"id":"sdk","name":"Viam Python SDK","url":"https://python.viam.dev/","audience":{"en":"Platform engineer: installation, runtime and connection prerequisites.","zh-TW":"平台工程師：安裝、runtime 與連線條件。"},"validation":{"en":"Pin SDK/runtime/module versions and check target OS transport support; SDK installation alone does not configure cameras or models.","zh-TW":"固定 SDK／runtime／模組版本，核對目標 OS 傳輸支援；僅安裝 SDK 不會設定相機或模型。"}},{"id":"primary-docs","name":"Primary developer documentation","url":"https://python.viam.dev/autoapi/viam/services/vision/index.html","audience":{"en":"Engineers choosing the supported API and installed version.","zh-TW":"選擇支援 API 與安裝版本的工程師。"},"validation":{"en":"Match the operation and version to the specific references above before implementation. The illustrative output is an internal application contract.","zh-TW":"實作前將操作與版本對應至上述具體文件；示意輸出是內部應用契約。"}}]},"content_coverage":{"reference_guide":true,"developer_starter":false,"expected_results":true,"integration_test":"not-run","updated_at":"2026-10-08"},"developer_starter":{"version":"1.0.0","verification":"illustrative-contract-only;live-provider-not-run","filename":"ViamVision-expected-results.json","format":"json-example","scope":{"en":"Illustrative camera-inspection result only; no connection, image capture, inference or physical action was performed.","zh-TW":"僅相機巡檢結果示意；未連線、擷取、推論或執行實體動作。"},"setup":{"en":"Before implementation identify the machine, camera, vision service, model revision and permitted data path. This JSON is an internal expected envelope, not Viam’s native response. Coordinate and confidence values are invented fixtures.","zh-TW":"實作前確認機器、相機、vision service、模型修訂及允許資料流。此 JSON 是內部預期格式，不是 Viam 原生回應；座標及分數為示例。"},"code":"{\n  \"schema_version\": \"1.0.0\",\n  \"provider\": \"Viam\",\n  \"status\": \"ok\",\n  \"example\": true,\n  \"contract_origin\": \"Smart Tools illustrative internal contract; not a provider response\",\n  \"input\": {\n    \"machine_ref\": \"example-cell-A\",\n    \"camera_ref\": \"example-camera-1\",\n    \"service_ref\": \"example-detector\",\n    \"frame_ref\": \"example-frame-101\",\n    \"image_size_pixels\": [\n      640,\n      480\n    ],\n    \"requested\": [\n      \"image\",\n      \"detections\"\n    ]\n  },\n  \"data\": {\n    \"frame_ref\": \"example-frame-101\",\n    \"detections\": [\n      {\n        \"label\": \"surface_mark\",\n        \"score\": 0.88,\n        \"box_xyxy_pixels\": [\n          64,\n          48,\n          192,\n          144\n        ]\n      }\n    ],\n    \"classifications\": null,\n    \"actuation_requested\": false\n  },\n  \"error\": null\n}","decisions":[[{"en":"Input requirements","zh-TW":"輸入條件"},{"en":"Require authorized machine access, valid camera/service names, supported detection capability and a decodable frame.","zh-TW":"需要授權機器存取、有效相機／服務名稱、支援偵測能力及可解碼影格。"}],[{"en":"Expected success","zh-TW":"預期成功"},{"en":"Return detections with frame identity and explicit coordinate units; preserve the configured model revision separately.","zh-TW":"回傳含影格識別與明確座標單位的偵測，另保留設定模型修訂。"}],[{"en":"Expected empty","zh-TW":"預期空值"},{"en":"Requested detections=[] is a valid empty result; classifications=null means not requested in this contract.","zh-TW":"已請求 detections=[] 是有效空結果；此契約 classifications=null 表示未請求。"}],[{"en":"Expected failure","zh-TW":"預期失敗"},{"en":"Camera offline, unsupported capability, bad credentials or deadline failure return status=error and data=null.","zh-TW":"相機離線、不支援能力、憑證錯誤或逾時回傳 status=error、data=null。"}],[{"en":"Acceptance","zh-TW":"驗收"},{"en":"For a 640×480 fixture validate box bounds, frame correlation and the distinction among empty, unrequested and failed results.","zh-TW":"640×480 樣本需驗證框線範圍、影格對應，並區分空值、未請求與失敗。"}],[{"en":"Limitations","zh-TW":"限制"},{"en":"No measured accuracy or latency. A surface-mark label is not a certified defect, and this contract sends no actuation command.","zh-TW":"未實測準確率或延遲；表面痕跡標籤不是認證缺陷，此契約不發送致動指令。"}],[{"en":"Data and runtime","zh-TW":"資料與執行環境"},{"en":"Inspect module implementation to establish where inference happens; data-cloud capture/sync is a separate configuration decision.","zh-TW":"檢查模組實作以確認推論位置；雲端資料擷取／同步是另外的設定決策。"}]],"expected_results":[{"scenario":{"en":"Known marked frame","zh-TW":"已知痕跡影格"},"input":{"en":"A 640×480 fixture with a declared service and frame ID.","zh-TW":"640×480 樣本，具指定服務與影格 ID。"},"output":{"en":"ok; one bounded box and matching frame_ref.","zh-TW":"ok；一個範圍內框線及相符 frame_ref。"},"acceptance":{"en":"No cross-frame overlay or implicit unit conversion.","zh-TW":"無跨影格框線或隱含單位轉換。"}},{"scenario":{"en":"Valid empty detection","zh-TW":"有效空偵測"},"input":{"en":"Detector succeeds on a no-target fixture.","zh-TW":"偵測器成功處理無目標樣本。"},"output":{"en":"ok; detections=[]; unrequested classifications=null.","zh-TW":"ok；detections=[]；未請求 classifications=null。"},"acceptance":{"en":"Empty remains distinct from not requested and unavailable.","zh-TW":"空值與未請求、不可用皆可區分。"}},{"scenario":{"en":"Camera offline","zh-TW":"相機離線"},"input":{"en":"Configured camera cannot deliver a frame.","zh-TW":"設定相機無法提供影格。"},"output":{"en":"error; data=null; camera_unavailable.","zh-TW":"error；data=null；camera_unavailable。"},"acceptance":{"en":"No stale frame silently treated as current success.","zh-TW":"不將舊影格默默當本次成功。"}},{"scenario":{"en":"Wrong capability","zh-TW":"能力不符"},"input":{"en":"Request detections from a classification-only service.","zh-TW":"向僅分類服務要求偵測。"},"output":{"en":"error; data=null; unsupported_capability.","zh-TW":"error；data=null；unsupported_capability。"},"acceptance":{"en":"Validate capabilities before scheduling repeated requests.","zh-TW":"排程重複請求前先驗證能力。"}}]},"schema_version":"1.0.0","type":"development-proposal","product_id":"industrial-api:ViamVision","name":"Viam Vision Service","provider":"Viam","url":"https://smart-tools.ai/product/ViamVision","localized_urls":{"en":"https://smart-tools.ai/product/ViamVision","zh-TW":"https://smart-tools.ai/zh-tw/product/ViamVision"},"category":"vision","capability_id":"cap:computer-vision","technology_hub":"https://smart-tools.ai/industrial-ai/computer-vision","interface_kind":"API / SDK","deployment":"hybrid","official_documentation":"https://python.viam.dev/autoapi/viam/services/vision/index.html","sources":["https://python.viam.dev/autoapi/viam/services/vision/index.html","https://www.viam.com/about","https://python.viam.dev/autoapi/viam/robot/client/index.html","https://python.viam.dev/autoapi/viam/components/camera/index.html","https://python.viam.dev/autoapi/viam/services/vision/index.html#viam.services.vision.VisionClient.get_properties","https://python.viam.dev/autoapi/viam/services/vision/index.html#viam.services.vision.VisionClient.get_detections","https://python.viam.dev/autoapi/viam/services/vision/index.html#viam.services.vision.VisionClient.get_classifications","https://python.viam.dev/autoapi/viam/services/vision/index.html#viam.services.vision.VisionClient.capture_all_from_camera","https://python.viam.dev/autoapi/viam/services/mlmodel/index.html","https://python.viam.dev/autoapi/viam/media/video/index.html","https://python.viam.dev/autoapi/viam/app/data_client/index.html","https://python.viam.dev/autoapi/viam/module/module/index.html","https://python.viam.dev/"],"source_review":{"level":"P1","status":"official-source-reviewed","checked_at":"2026-10-08"},"provider_summary":{"en":"Return detections, classifications or point-cloud objects from camera data.","zh-TW":"把相機資料轉為偵測、分類或點雲物件。"},"proposed_product":{"en":"Camera perception adapter","zh-TW":"相機感知結果轉接器"},"feasibility":{"tier":"integration","rationale":{"en":"Validate runtime, schemas or hardware together before estimating a deployable product.","zh-TW":"估算可交付產品前，需共同驗證執行環境、資料結構或硬體。"},"basis":"development-judgment;not-traffic-ranked"},"proposed_inputs":{"en":"A small authorized image dataset, task definition and reference annotations.","zh-TW":"少量經授權影像、任務定義與參考標註。"},"proposed_deliverable":{"en":"A reviewable result with image references, labels or annotation state; keep original files.","zh-TW":"可審核的影像引用、標籤或標註狀態；保留原始檔案。"},"acceptance_criterion":{"en":"Compare the supported operation against a labeled sample; report errors and missing results separately.","zh-TW":"用已標註樣本比對支援的操作；錯誤與缺漏結果分開呈現。"},"dependencies":{"en":"Dataset access, image rights and a supported model or annotation project.","zh-TW":"資料集存取、影像使用權與支援的模型或標註專案。"},"integration_condition":null,"proposed_adapter_envelope":{"provider":"Viam","operation":"chosen-documented-operation","source_url":"https://python.viam.dev/autoapi/viam/services/vision/index.html","captured_at":"ISO-8601 timestamp","status":"ok|pending|unknown|failed","data":"provider response mapped by the team","evidence":"source references","errors":"explicit error details"},"adapter_envelope_status":"proposed-internal-contract;not-a-provider-response","development_status":"concept-specification","integration_test":"not-run","pricing_status":"provider-terms-review-required","estimate_status":"requires-access-and-sample-validation","traffic_status":"not-measured-in-this-assessment","measurement_events":["product_view","product_to_docs","product_to_spec","bridge_to_industrial_ai"]}