概要

IIIF画像に対して、多角形のアノテーションを付与するツールを作成しました。

https://next-fb-anno.vercel.app/

本記事では、このツールについて説明します。

使い方

以下がトップ画面です。IIIFマニフェストファイルのURLを入力します。「入力例を使用」からもお試しいただけます。『百鬼夜行図』(東京大学総合図書館所蔵)を使用しています。

以下のようなアノテーション登録画面が表示されます。

画面右上のログインボタンからログインできます。

アノテーション付与の方法は、以下の動画を参考にしてください。

https://youtu.be/9RMqaXTaOzE

開発した背景

以下の記事で説明したように、Mirador 3の mirador-annotations プラグイン向けに、Firestore用のアダプタを開発しました。

このmirador-annotations プラグインについて、多角形のアノテーション付与を行いづらいという意見がありました。

そこで、主に多角形のアノテーション付与を支援するために、本ツールを開発しました。また、アノテーション付与を実装するためのライブラリであるAnnotoriousについて、Reactライブラリが公開されていたので、この調査も兼ねて実装しました。

https://annotorious.dev/react/openseadragon-iiif/

さらに、上記の記事で紹介したmirador-annotations プラグインのFirestore用のアダプタを流用することで、同じFirebaseのサービス(AuthenticationとFirestore)を使用するようにしました。

そのため、本ツールの右上のボタンに、Miradorへのリンクを付与しました。

これにより、本ツールで編集を行い、IIIFマニフェストファイルのメタデータを含む、情報の表示にはMiradorを使用する、といった使い方が可能になるかと思います。

多角形のアノテーションを付与するための既存ツール

IIIF画像に対してアノテーションを付与する機能を持つ既存ツールは数多く存在します。ここでは、IIIF画像に対して多角形のアノテーションを付与する機能を有するツールと、本ツールとの差分を紹介します。

ここでは、国立国会図書館で公開されている「和泉国絵図」を例とします。

Omeka Classic + IIIF Toolkit

以下の記事でセットアップ方法や使い方を紹介しています。

https://zenn.dev/nakamura196/books/2a0aa162dcd0eb

IIIF Toolkitでは、Mirador 2が使用されており、ポリゴンアノテーションが提供されています。

今回にニーズに対しては、多角形アノテーションではなくポリゴンアノテーションである点と、Omeka Classicのセットアップ(サーバの準備や維持)が必要になる点が課題として挙げられます。

Recogito

Recogitoでは傾斜したボックス形式のアノテーションを付与することはできましたが、多角形のアノテーション付与はできないようでした。

また、以下のように、pctを用いてIIIF画像にアクセスするようで、画像が表示できないケースが多くありました。

Glycerine: Image Annotation Workbench

本ツールが最も今回のニーズに合致していました。

https://glycerine.io/

おそらく本ツールと同じ「Annotorious(のver.2)」が使用されており、多角形によるアノテーションのほか、複数人による共同作業も可能でした。

唯一の課題として、登録したアノテーションの一括登録機能が提供されていませんでした。この点に対して、今回開発したツールでは、読み込んだIIIFマニフェストファイルに対して、ログインユーザが登録したユーザが付与したアノテーションを一括エクスポートする機能を設けました。

これにより、本ツールで付与したアノテーションを一括エクスポートし、他の可視化ツールで使用する、といった使い方が容易になります。

なお、以下の記事で紹介したように、Mirador 3の mirador-annotations プラグインにも付与したアノテーションをダウンロードする機能が提供されています。しかい、この機能はCanvasごとにダウンロードする仕様となっており、複数ページから構成される場合には、ページごとにダウンロードする必要がありました。

工夫点および開発メモ

本ツールの開発にあたり、工夫した点などを紹介します。

入力するIIIFマニフェストのv2およびv3対応

入力するIIIFマニフェストファイルはv2とv3、どちらでも対応できるようにしました。この実現にあたり、以下の記事で紹介した@iiif/parserを使用しました。

v2のIIIFマニフェストファイルが入力された場合、本ライブラリでv3のマニフェストファイルに変換することで、ツール内では、v3のマニフェストファイルを対象とした処理に統一しました。

IIIFの型

TypeScriptを用いた開発にあたり、以下を使用した。IIIFの型を利用することができ、便利に感じました。

https://www.npmjs.com/package/@iiif/presentation-3

AnnotriousのFormatAdapter

当初Annotriousを使用していた際、Annotrious独自のフォーマットでアノテーションが作成され、Mirador 3の mirador-annotations プラグインに対応したアノテーションへの変換にあたり、難しく感じる点が多かったです。

この点について、以下の記事にあるように、W3CImageFormatといったFormatAdapterを適用することで、アノテーションの記述形式を変更することができました。

https://annotorious.dev/api-reference/format-adapter/

このW3CImageFormatを用いることで、変換作業のコストが下がりました。一例として、以下のようにNext.jsから使用しました。

iic)c)i}e}mmo;o;nxppn{n{ttopr)oosseopioe;rrtstsrotnrt<tt=s=sfliftud/D>rD>ra:oori<dd{y:y:cnUfnvDiyninie"sruydta<DvnWamfamfr:ln(cnrodDy>a3mpampaVesclaaoayconmCioliolicO,tamwlpnlpaiIcrscrsetpisii=taatmcmOteOtewaeoscn{emsiiap(p(ennnNOgtrisocfge"}e"}rgSapEo=cNnOren@n@PleVmeno{OaspoFSaSareaienalWpm=emoeneno"de=Sb3ee{nrananprw"elCn=oS"mdodos|aefaeIS"penartrtgrlddmeataetaoao{"o(er="aabidxgrgrpn{xa{rgdsort}oioio.-gteerona/nonolOt1oocFalsgdfAuVuyponotogu}oyrnsisgtorAlarotnnone/oilennmneAamrwrno,ln!gaVnmteee"nao=ltiini"aarasott=e(enoc@tcc|;pia""wst"aot=ttvtu}"eea;nr""uieon)rttn)d)no"rd}-oo=.y.dn>e0rttntesf">odhahfiryemei}ninninn:eoa(c(edum(((dV}simm;i/cooea(ddwn))enro==Pt>>roormmpioosodd)u..sOO{"pp;eennSSeeaaddrraaggoonnAVnineowteart)o,r),

まとめ

IIIF画像に対して、長方形のアノテーションを付与するツールは、よいものが数多く存在しますが、多角形については適切なものが見つからず、今回紹介したツールを開発しました。同様のツール開発の参考になりましたら幸いです。

なお、本ツールの提供期間は未定のため、もしご使用される際には、本記事でも紹介した「エクスポート」機能を使用し、付与したアノテーションをローカルに保存するようにしてください。