概要

iiif-prezi3を使って、動画にアノテーションを付与する方法に関する備忘録です。

アノテーションの付与

Amazon Rekognitionのlabel detectionを用います。

https://docs.aws.amazon.com/rekognition/latest/dg/labels.html?pg=ln&sec=ft

以下などでサンプルコードが公開されています。

https://docs.aws.amazon.com/ja_jp/rekognition/latest/dg/labels-detecting-labels-video.html

特に、GetLabelDetectionにおける集計をSEGMENTSにすることで、StartTimestampMillisEndTimestampMillisを得ることができます。

ただし、以下の点に注意が必要です。

SEGMENTS による集計の場合、境界ボックス付きの検出されたインスタンスに関する情報は返されません。

使用するデータ

『県政ニュース 第1巻』(県立長野図書館)を使用します。

https://www.ro-da.jp/shinshu-dcommons/library/02FT0102974177

マニフェストファイルへの反映

以下の記事などを参考に、マニフェストファイルが作成済みであるとします。

以下のようなスクリプトにより、マニフェストファイルにvttファイルを追加します。

f#cr|loamesxsddipeeioIffiriftilwmramlwclaacfowr_foiaedaaiaannaouiepCatntdnbtnbnnnrtttrldhiu_iehveoovphuei_mfrlfllal__ailsenaaaufrzemoaenae_oassppsatnannnto.ninapnsbsppbaa.ibadmnnn_pw3tneitmetaee==gganereooopero:infaltnleenlt=_imtb}_aaniuif(e=n_=h(_ml_nr=i=doaopnt(ttmemsislsaai=oa==ld=trdanhoeppsatMfes=aenbdtnalAaigygou(uotn_aegebgieAagllba=nnve="""e=tmtr(ijnsmlfefl=nteaaebnnat{tvf.pa_tsfsitef"l=e_ni(bblefoot=yaoafunpeeofn.{_ssfoolee[l"t_icplrd"tiaMlsnetlspjte"tnell"[{aioaeumd{_ftafts(oeas.g{asns[E"atdnn"ea_spehn,_=tsaltoi[ct.(["nLni,=v:"tieasip(edfhnt"aialiSdano"a:"tlttfmaj*l_.,.eLnopa]tTbonts":efh.eats*fmilmavnpbaie_(a.Tnm.,jsnhom,an"osbaPeermlpgiea"(isti,nanpra[esanlte"agdxmtn"o,f.nmiu"d0l.gdsTs]giteepwne"liaft)(]sie()it[en+u,xu"(Asrofne_f"d(a)ma"_gatt)int"aeisda)]}in:emNi""l/_nn_)dsftis/dnspad,#Bpdadop(te(rp=ot"m}tolisetaaf_sm}faa_a]e/=darnats)jta/:gnpm"a"yi}ftths_noenap/]{"n/:=i)fopiu1og"i+,"m2o::naft"_e]1},a)n)tepp)0"sn)Phsua/0tia)ttg0rfg:__e1(eepl_0ss,aai0tttbd0a_Ahe)rln)ltan_)bosete+lag_t."sij,eos"gno.,n+j"sRsoetnsr"o(uerncde)I,tem,config,HomepageItem,KeyValueString

以下のようなマニフェストファイルが作成されます。

https://d1u7hq8ziluwl9.cloudfront.net/sdcommons_npl-02FT0102974177/manifest_label_seg.json

{}""""}"}"]"]@itl,r,h,icdya"]e"}"}o{}{}t{}o"pbjql,vm,en:eea"ua"]a"]e"""}"""}m""""""]"]t"l"ibjljpitlitlsithwdi,ae":":rea"ua"adya"]dya"]"dyeiut{}n{}xh:el"Ae"g"pbj"pbj:"pidrentt"[d":t":e:eea":eea":egtam"""]o"""]"tM{S:t:""l""l"["hhtsitititi:pat[r[:":":":":":t"i"dyt{}adyt{}{}{}sn a{i{h:h:h":o:"pet"pe,,":itb[t"[t"[t":n:em""""}"i:em""""}"""""}"""""}"h/f1eutT{tT{tC6"["sitmb,to"sitmb,titmb,titmb,tt/emt pepepa44:":"dyoo""""""an":"dyoo"""adyoo"""adyoo"""atds"eisxsxsn80h:"ptdithwdfrsh:"ptdtvfr"ptdtvfr"ptdtvfrp1tno1:t:t":0,6t":eiydyeiuog"t":eiyyaog:eiyyaog:eiyyaog:u"tn/"/"/a,1tA["v""pidrre:tA["v"plre"v"plre"v"plre/7,""/,/,/s9pn":a::egtamtpn":a:eumt":a:eumt":a:eumt/h:wjd".snht"hhta"[snht"ea"ht"ea"ht"ea"iqwp1,6:t"i{":t"it::t"i{:"t:t"i{:"t:t"i{:"t:i8{wsu1ttAoh":o"ttAo:"tAo:"tAo:"iz.e79/apnnt":n:"/apnn":"pnn":"pnn":"firah6dtsn"tV6"hdtsn"T"hsn"T"hsn"T"h.lorq21i::pi44:"t1i::eT"t::eA"t::eS"tiu-c8,uotsd80vtuotxetttxdtttxnttowdhz7n/a":e0,6ip7n/a"txep/a"tvep/a"toep/la.ihPdtp/,1dshPdttutxsdttuexsdttuwxsa9.glqa1ia"9e:qa1iaa"t:1iaart:1iaa"t:p.jou8guoid,.o/8guogl,//uoglt//uogl,//icp.wze7nn16//ze7ngBp/7ngBip/7ngBp//l"/"jli"h"tu1mdi"h"ioldh"iosldh"ioldposp9l,q,i79p1l,q,nda1q,ndea1q,nda1ruh/.u8nh64uu8gyiu8gymiu8gyiuediicwzgq2"7wz""n7z""en7z""n7sfntlli"8,hli,,"hi,,n"hi,,"herseo9l,zq9lqltqlqnohmu.ui8.u8u"8u8tnu/dcwlzcwzw,zwzat-sflluillililit.ddro9wlo9l9l9linccou.luu.u.u.uoeoondc9wdcwcwcwntmmtfl.lfllllll//mm.roc9ro9o9o93soonoul.ou.u.u./dnnendocndcdcdcccssttfultflflfloo/_/.rdo.rororonmlnsnofunouououtmipdenrdendndndeoblcttofttftftfxnr-o/.nr/.r.r.rtsa0msntosnonono._r2mde.ndenenenjnyFoctntcttttttsp/Tno/e.o/././.ol00smstnmsnsnsnn-21_md/emdedede"0F0nocstoctctct,2T2pnod/no/o/o/F09lsmcssmsmsmsT17-_mod_mdmdmd0040nomcnocococ1212pnmopnonono097Flsomlsmsmsm277T-_nm-_m_m_m94"00nso0nonono71,12p_n2pnpnpn470FlnsFlslsls172T-p_T-_-_-_7"900ln00n0n0n7,712-p12p2p2p/40F0l0FlFlFlm12T2-2T-T-T-a790F09000000n771T27121212i/400F40F0F0Ffc121T12T2T2Tea79007909090sn77217717171tv/490/404040.ac172c121212jsa749a797979s"n717n777777o,v/74v/4/4/4nac71ac1c1c1"sa/7sa7a7a7,/nv7/n7n7n7pvi/pv/v/v/aadcaacacacgseagsasasae/one/n/n/n"p.v1pvpvpv,ama"aaaaaagps,gsgsgse4"e#e#e#/"1t1t1ta,/=/=/=na0a8a6n0.1.11o"0"016t,,,03.a3891t.,"8i59,2o0.,n306""01,96".182"

ビューアでの表示例

ビューアでの表示例は以下です。

https://d1u7hq8ziluwl9.cloudfront.net/mirador/index.html?manifest=https://d1u7hq8ziluwl9.cloudfront.net/sdcommons_npl-02FT0102974177/manifest_label_seg.json

東大デジタル人文学の「IIIF動画アノテーション」で公開されているソースコードを利用しています。

https://dh.l.u-tokyo.ac.jp/activity/iiif/video-annotation

参考

なお、Amazon RekognitionでのGetLabelDetectionにおける集計をTIMESTAMPにすることで、一部のアノテーションについては、BoundingBoxが得られます。

これを利用することで、以下のように、矩形とともにアノテーションを表示することができました。

まとめ

IIIFを用いた動画ファイルへのアノテーションの付与にあたり、参考になりましたら幸いです。