基於深度縮放的十億畫素影像標註
以 DZI 與 IIIF Image API 3.0 兩種協議提供同一份瓦片金字塔,並可在源圖完整解析度下繪製畫筆掩碼,不存在紋理尺寸上限。
對於大到無法作為單個檔案傳送給瀏覽器的影像——航拍測繪、拼接的顯微鏡影像、掃描地圖——依然可以用框、多邊形與掩碼進行標註,並且在任意放大倍率下都能工作。 Potato 會提供一份瓦片金字塔,並把標註畫布疊加在其上。
annotation_schemes:
- annotation_type: image_annotation
name: structures
description: "Mark every structure."
source_field: image
viewer: deepzoom # 預設值為 `fabric`
tools: [bbox, polygon, brush, eraser]
labels:
- {name: building, color: "#c0392b"}瓦片路由從 media_directory 讀取資料;你的資料檔案中的路徑相對於該目錄。
可執行示例:examples/image/deep-zoom/。
兩種協議,同一份金字塔
同一份瓦片金字塔會同時以 DZI 與 IIIF Image API 3.0 的形式提供。IIIF 對文化遺產與數位人文工作尤為重要,因為相關機構既有的檢視器與引用規範本就以它為前提。渲染由 OpenSeadragon 負責,並與其他所有資源一樣隨原始碼本地提供。
完整解析度下的掩碼
畫筆掩碼可在瓦片化影像上以源圖的完整解析度工作,因為掩碼緩衝區索引的是影像畫素而非 GPU 紋理。這裡不存在會撞上的紋理尺寸上限。
這一點值得謹慎表述,因為該說法的早期版本是錯的,後來做了更正。其他平臺同樣支援在瓦片化影像上繪製掩碼,V7 就是其中之一。這裡特別之處在於緩衝區的設計,而不是"有沒有這項能力"。
這些緩衝區是稀疏且分塊的,這正是它在成本上可行的原因:在一張 1200 萬畫素的影像上標註十個類別,佔用從約 458 MB 降到約 46 MB,並且掩碼資料不再隨影像面積增長,無論解析度如何都穩定在 16 KB。
Potato 不適合的場景
具體到數字病理,QuPath(桌面端、開源、該領域的事實標準)與 Cytomine(網頁端、開源、支援多使用者盲標)都是為此專門打造的,而 Potato 不讀取 SVS、DICOM 或 NIfTI。當你的影像很大但並非臨床專用格式,或者你需要在其之上疊加 Potato 的一致性與工作流能力時,再考慮用 Potato。