Slide 1

Slide 1 text

サーバーレスで作る、動画データ管理基盤 WinTicket MediaLake/DAM — 茨木 啓瑚 (CyberAgent / WinTicket) CA DATA NIGHT #9 / 2026-05-21

Slide 2

Slide 2 text

茨木 啓瑚(いばらき けいご) CyberAgent / WinTicket バックエンド + 基盤 DAM (= MediaLake) 開発担当 AWS Community Builders / AI Engineer (2026〜) 自己紹介 CA DATA NIGHT #9 / 2026-05-21 2

Slide 3

Slide 3 text

誰に・何を — 先に登壇の立ち位置を共有します 聞いてほしい人 スポーツの映像データの管理・活用を考えている人 ひとことで言うと モデル開発の土台は基盤に任せて、 「作る」ことに集中できる 聞き終わったら 自分のチームのデータ管理も、基盤に寄せられないか考えてみてほしい 今日はこういう話をします CA DATA NIGHT #9 / 2026-05-21 3

Slide 4

Slide 4 text

TODAY'S AGENDA 1 なぜ「動画データ管理基盤」が要るのか 2 何が、どう溜まるのか 3 アーキ — AWS MediaLake OSS と拡張 4 Pipeline 設計の自由さ 5 アノテーション / 学習データ検索 6 これから — 移譲できる世界線へ CA DATA NIGHT #9 / 2026-05-21 4

Slide 5

Slide 5 text

SECTION 01 / 06 1 なぜ「動画データ管理基盤」が要るのか 2 何が、どう溜まるのか 3 アーキ — AWS MediaLake OSS と拡張 4 Pipeline 設計の自由さ 5 アノテーション / 学習データ検索 6 これから — 移譲できる世界線へ CA DATA NIGHT #9 / 2026-05-21

Slide 6

Slide 6 text

WinTicket 独自のデータとクリエイティブで、新しいスポーツ中継映像を作る WINLIVE(競輪) — 選手の体力(HP)などを ML モデルでリアル タイム可視化 ABEMA × ボクシング — パンチ数などをリアルタイム表示 映像解析・低遅延伝送・CG 描画・配信基盤を ABEMA 連携で他競技へ展開中 スポーツ映像テック事業部 CA DATA NIGHT #9 / 2026-05-21 6

Slide 7

Slide 7 text

スポーツ映像から AI モデルを作る — その土台が DAM WINLIVE 競輪などの スポーツライブ配信 ▶ 大量のスポーツ映像 試合・レースの 映像が日々たまる ▶ CV / ML モデル開発 選手検出・ トラッキング など DAM は、この「映像 → モデル開発」を支えるデータ基盤 なぜ DAM を作ったか CA DATA NIGHT #9 / 2026-05-21 7

Slide 8

Slide 8 text

映像が「ある」だけでは、良いモデルは作れない 1 大量で良質な映像 質の良い映像が、条件を満たして大 量に 2 快適に探索できる 集めた映像を、ストレスなく見て回 れる 3 集約して検索できる 学習させたいシーンを、ピンポイン トで取り出す DAM はこの 3 つをまとめて引き受ける 良いモデル開発に必要な 3 つ CA DATA NIGHT #9 / 2026-05-21 8

Slide 9

Slide 9 text

動画が、あちこちに散らばっていた ローカル PC Google Drive 個人 EC2 命名もバラバラ、所在は個人の頭の中にしかない DAM を作る前、何が起きていたか keirin_0510.mp4 編集済み_final2.mp4 IMG_4821.mp4 競輪5月/ (フォルダ) race_data_v3.mp4 untitled.mp4 /home/user/videos/ batch_03.mp4 tmp_clip.mp4 CA DATA NIGHT #9 / 2026-05-21 9

Slide 10

Slide 10 text

大量の動画を見据えると、システムでの汎用管理が要る CV/ML エンジニアの 専門性で、ここまで進められてきた でも、扱う動画はこれから一気に増える — 複数スポーツへ横展開、WINLIVE で日々蓄積 その規模でも回るよう、システムで汎用的に管理できる状態にしたい 個人の力で進められていた CA DATA NIGHT #9 / 2026-05-21 10

Slide 11

Slide 11 text

● データの収集・整理は、汎用化してシステムに任せられる ● その土台を、共通の基盤 — DAM が引き受ける ● CV/ML エンジニアは、本来のモデル開発に集中できる 何を変えたいか CA DATA NIGHT #9 / 2026-05-21 11

Slide 12

Slide 12 text

SECTION 02 / 06 2 何が、どう溜まるのか 1 なぜ「動画データ管理基盤」が要るのか 3 アーキ — AWS MediaLake OSS と拡張 4 Pipeline 設計の自由さ 5 アノテーション / 学習データ検索 6 これから — 移譲できる世界線へ CA DATA NIGHT #9 / 2026-05-21

Slide 13

Slide 13 text

大きく 4 種類のデータが DAM にそろう 元動画 mp4 本体 メタデータ CSV で柔軟に 実行履歴 Pipeline 履歴 副産物 サムネ / proxy / クリップ 「データの箱」に何が溜まる? CA DATA NIGHT #9 / 2026-05-21 13

Slide 14

Slide 14 text

WINLIVE などから入ってきた動画・ 画像が DAM のアセットとして一覧 で並ぶ コネクタごとに、どんな素材がある かを一望できる 元動画 — アセットとして一覧で見える CA DATA NIGHT #9 / 2026-05-21 14

Slide 15

Slide 15 text

撮影日 / 競技 / レース ID などの軸 を、アセットごとに DAM で確認 CSV で柔軟に持てるので、スポーツ に応じて軸を後から足せる メタデータ — アセットごとに DAM で確認 CA DATA NIGHT #9 / 2026-05-21 15

Slide 16

Slide 16 text

どのパイプラインを、いつ、どのア セットに対して回したかが記録され る すべて DAM に残るので、後から追 いかけられる 実行履歴 — いつ・何を回したか追える CA DATA NIGHT #9 / 2026-05-21 16

Slide 17

Slide 17 text

サムネ・proxy 動画・切り出しクリ ップなど、パイプラインが生成した 派生物も DAM に残る 元のアセットに紐づいて保持される ので、後から取り出しやすい 副産物 — アセットに紐づいて残る CA DATA NIGHT #9 / 2026-05-21 17

Slide 18

Slide 18 text

「整然と置く」じゃなく「DAM が整理する」 Before 「整然と置いてください」 置き方のルールを守ってもらう 命名規則・ディレクトリ階層を統一 守られないと破綻 After 「S3 のどこでも OK」 S3 の 適当な階層に置けば良い DAM が Collection で整理する 置き手の認知負荷ゼロ 置き方の発想を 1 回ひっくり返す CA DATA NIGHT #9 / 2026-05-21 18

Slide 19

Slide 19 text

入口は 2 つ、Asset になれば扱いは同じ 自動 Connectors + EventBridge S3 の各所に置くと upload を 検知 手動 Ingest Connector に無い動画も UI か ら ▶ Asset になる 入口がどちらでも 同じ Asset に ▶ Collection で整理 条件に合う Asset を 自動でまとめる DAM に溜まる入口は 2 つ CA DATA NIGHT #9 / 2026-05-21 19

Slide 20

Slide 20 text

SECTION 03 / 06 3 アーキ — AWS MediaLake OSS と拡張 1 なぜ「動画データ管理基盤」が要るのか 2 何が、どう溜まるのか 4 Pipeline 設計の自由さ 5 アノテーション / 学習データ検索 6 これから — 移譲できる世界線へ CA DATA NIGHT #9 / 2026-05-21

Slide 21

Slide 21 text

動画が入り、処理され、検索できるまで 入口 API Gateway Cognito CloudFront ▶ 取込 EventBridge Lambda ▶ パイプライン Step Functions MediaConvert ▶ 保管 S3 DynamoDB ▶ 検索 OpenSearch EC2 / RDS は不使用 — すべてサーバーレス系のマネージドサービス アーキはぜんぶサーバーレスの 5 ブロック CA DATA NIGHT #9 / 2026-05-21 21

Slide 22

Slide 22 text

AWS 公式リファレンス「Guidance for Media Lake on AWS」がベース 1 メディアを S3 にアップロードして処理を開始 2 Lambda・SQS・EventBridge がイベントを連携 3 セマンティック / キーワード検索とフィルタ 4 メタデータ・類似度で関連アセットをグルーピング 5 proxy・サムネなど派生アセットを生成 6 技術 / ユーザー定義メタデータを抽出 7 デフォルト / カスタムパイプラインで分析・変換 8 REST API・イベントで外部システムと連携 9 Lambda・EventBridge がカスタム処理を実行 10 S3・API Gateway・OpenSearch 等が基盤を構成 ベースは AWS Solutions Library の OSS CA DATA NIGHT #9 / 2026-05-21 22

Slide 23

Slide 23 text

コアはそのまま、足りないところだけ足す MediaLake OSS の素 そのまま使う Connectors / EventBridge 連携 Step Functions パイプライン基盤 OpenSearch 検索 Asset / Collection の基本機能 WinTicket 拡張 拡張ポイントだけ自社実装 手動入稿 (Ingest) スポーツ向け カスタム Pipeline ノード CVAT アノテーション連携 Collection メタデータ管理 メタデータ CSV のスキーマ自由化 クロスアカウント VPC Peering / PrivateLink WinTicket は拡張ポイントだけ自社実装した CA DATA NIGHT #9 / 2026-05-21 23

Slide 24

Slide 24 text

Model 開発に近づける機能が標準で豊富だった MediaLake アノテ連携 (CVAT 等): 組み込みやすい Semantic Search: 標準対応 Pipeline ノード化: 標準対応 AWS との統合: 公式 OSS / ネイティブ 他の映像管理 OSS / SaaS アノテ連携: 自作が多い Semantic Search: 自作 or オプション Pipeline ノード化: 限定的 AWS との統合: 別途要構築 なぜ MediaLake OSS を選んだか CA DATA NIGHT #9 / 2026-05-21 24

Slide 25

Slide 25 text

AWS 公式 OSS を選んだ理由は 3 つ AWS 公式 OSS AWS が公式に公開する OSS。信頼 性が高く、メンテナンスも続く 拡張ポイントを備える 拡張点が設計されていて、コアを フォーク改造せずに機能を足せる サーバーレス構成 EC2 / RDS レスで運用負荷が低 く、他スポーツへの横展開もしや すい 結果 — コアに手を入れないから、upstream の更新に乗り続けられる 公式 OSS だから upstream に乗り続けられる CA DATA NIGHT #9 / 2026-05-21 25

Slide 26

Slide 26 text

SECTION 04 / 06 4 Pipeline 設計の自由さ 1 なぜ「動画データ管理基盤」が要るのか 2 何が、どう溜まるのか 3 アーキ — AWS MediaLake OSS と拡張 5 アノテーション / 学習データ検索 6 これから — 移譲できる世界線へ CA DATA NIGHT #9 / 2026-05-21

Slide 27

Slide 27 text

この 3 つを、このあと具体で見ていく 1 GUI でノードを自由に組み、パイプラインを作れる コードを書かずに、編集画面で並べてつなぐ 2 成果物を実行履歴としてアセットに残せる 出力は実行単位で分かれ、同じ Asset に積み上がっていく 3 カスタムノードを Lambda 1 つで追加できる 推論コードを Lambda にすれば、そのままノードになる Pipeline 設計の「自由」は 3 つ CA DATA NIGHT #9 / 2026-05-21 27

Slide 28

Slide 28 text

パイプラインの作成・編集・デプロイまで DAM の UI で完結 動画の処理パイプラインを作成・編 集・デプロイまで DAM の UI 上で完 結 デフォルトに加えて、自分でカスタ ムのパイプラインも足していける DAM の UI でパイプラインを組める CA DATA NIGHT #9 / 2026-05-21 28 1 2 3 GUI で組み立てる

Slide 29

Slide 29 text

裏側は Step Functions、各処理がノードとして抽象化 設計思想 動画に対する処理を ノードとして表現 ノードを 並べて組み立てる 視覚的に Pipeline を構築 技術スタック Step Functions で State Machine 定義 各 State = Lambda ノード DAM UI で GUI 編集できる Pipeline = ノードの組み合わせ CA DATA NIGHT #9 / 2026-05-21 29 1 2 3 GUI で組み立てる

Slide 30

Slide 30 text

右の Available Nodes から選んでキャンバスに配置する 右の Available Nodes から使いたい ノードを選び、キャンバスに並べて つなぐ コードを書かずに、GUI でパイプラ インを組み立てられる ノードを選んで、並べて、つなぐ CA DATA NIGHT #9 / 2026-05-21 30 1 2 3 GUI で組み立てる

Slide 31

Slide 31 text

自動トリガ系 — upload をきっかけに自動で動く 1 S3 に動画を upload するだけで EventBridge → MediaConvert が自動起動 2 置いた瞬間に、サムネなどの副 産物が揃う 置くだけでサムネが揃う CA DATA NIGHT #9 / 2026-05-21 31 1 2 3 GUI で組み立てる

Slide 32

Slide 32 text

TwelveLabs の埋め込みを生成し OpenSearch に保存するカスタム例 1 TwelveLabs Marengo を Bedrock 経由で呼び、埋め込み を生成 2 生成した埋め込みを OpenSearch に保存 動画を埋め込み化して OpenSearch へ CA DATA NIGHT #9 / 2026-05-21 32 1 2 3 GUI で組み立てる

Slide 33

Slide 33 text

手動トリガ系 — タイムコードでシーンを抜き出す 1 タイムコード(開始 / 終了)を 指定して、その区間を切り出し 2 長尺動画から特定シーンだけ — 学習データや配信用クリップに 使う 指定区間をクリップに切り出す CA DATA NIGHT #9 / 2026-05-21 33 1 2 3 GUI で組み立てる

Slide 34

Slide 34 text

出力先は実行メタデータから動的に決まる 実行ごと pipeline-executions/{id}/ クリップ / フレーム / CVAT 連携 実行のたびに新しい場所へ 後から比較・追跡できる master 最新だけが正 サムネ / proxy 実行のたびに上書き 最新の 1 つで十分なもの 成果物の置き方は 2 パターン CA DATA NIGHT #9 / 2026-05-21 34 1 2 3 実行履歴で管理・蓄積

Slide 35

Slide 35 text

同じパイプラインでも成果物が実行ベースで残る Asset(元動画) に、パイプラインを回すたびに 実行 ID 単位で成果物が残る 1 pipeline-executions/exec-001/ clips/ frames/ cvat/ 1 回目の実行結果 2 pipeline-executions/exec-002/ clips/ frames/ cvat/ 2 回目の実行結果 実行ごとに別フォルダで残るから、後から実行同士を比較・追跡できる アセットに実行履歴が積み上がる 3 pipeline-executions/exec-003/ … 実行するたびに積み上がっていく CA DATA NIGHT #9 / 2026-05-21 35 1 2 3 実行履歴で管理・蓄積

Slide 36

Slide 36 text

推論コードを Lambda 関数にすれば、そのまま UI に並ぶ Lambda 関数として実装 def handler(event, context): # event からノード固有の入力を受け取る result = run_custom_logic(event) return {"output": result, "metadata": {...}} handler を 1 つ書くだけ 入出力の型はノード種別ごとに合わせる ▶ 登録 Available Nodes に追加される 他のノードと同列に並んで GUI で組める ノードの実体は Lambda 関数 1 つ CA DATA NIGHT #9 / 2026-05-21 36 1 2 3 カスタムノード追加

Slide 37

Slide 37 text

既存パイプラインに 1 ノード足すだけで実験できる 新しい AI 機能を試したいとき 既存 Pipeline いま動いてるノード列 新ノード 試したい AI 機能を Lambda として実装 追加 差し込み GUI で位置を選んで挿入 即実行 既存を壊さず新フロー を試行 CA DATA NIGHT #9 / 2026-05-21 37 1 2 3 カスタムノード追加

Slide 38

Slide 38 text

SECTION 05 / 06 5 アノテーション / 学習データ検索 1 なぜ「動画データ管理基盤」が要るのか 2 何が、どう溜まるのか 3 アーキ — AWS MediaLake OSS と拡張 4 Pipeline 設計の自由さ 6 これから — 移譲できる世界線へ CA DATA NIGHT #9 / 2026-05-21

Slide 39

Slide 39 text

良い ML モデルは、良い学習データから 溜めた動画も、そのままでは学習に使えない。学習データに変える工程が、この 2 つ。 前半 アノテーション 動画に正解ラベルを付けて学習データにする — モデルの精度を左右する工程 検索が速いほど、アノテーションも速く回る 前半 — アノテーション 後半 学習データ検索 狙ったシーンの動画を自然言語で見つけ、アノテ対象を素早く集める CA DATA NIGHT #9 / 2026-05-21 39

Slide 40

Slide 40 text

溜めた動画にラベルを付けて、初めて学習に使えるデータになる ML モデルの多くは教師あり学習。正解ラベルの付いたデータが、学習の前提になる。 溜めた動画 ラベル無し ▶ アノテーション 正解ラベルを付与 ▶ 学習データ ラベル付き ▶ ML モデル 学習に使う ここから、そのアノテーションを支える DAM の仕組みの話に入る 学習データは、アノテーションから生まれる CA DATA NIGHT #9 / 2026-05-21 40 1 2 アノテーション

Slide 41

Slide 41 text

Computer Vision Annotation Tool — 動画にラベルを付ける OSS のツール Computer Vision Annotation Tool の略 矩形・ポリゴン・キーポイントなど、用 途に応じたラベルを付けられる OSS として公開され、誰でも利用できる WinTicket のアノテーション基盤として 採用 実際の CVAT 画面 — 競輪映像のフレームに選手を矩形でラベリング CVAT — 画像・動画アノテーションの OSS ツール CA DATA NIGHT #9 / 2026-05-21 41 1 2 アノテーション

Slide 42

Slide 42 text

OSS の CVAT を、専用 AWS アカウントの EC2 にセルフホスト CVAT は EC2 にセルフホストして運用し ている DAM 本体とは 別の AWS アカウント に 分離している 専用の AWS アカウント EC2 インスタンス CVAT OSS をセルフホスト アノテーションは CVAT を使う CA DATA NIGHT #9 / 2026-05-21 42 1 2 アノテーション

Slide 43

Slide 43 text

IAM ロールとリソースポリシーで AWS アカウントを跨ぐ DAM アカウント Lambda / S3 / DynamoDB ⟷ IAM ロール + Resource Policy cross-account access の橋渡し ⟷ CVAT アカウント EC2 セルフホスト + アノテ DB クロスアカウント連携の工夫 CA DATA NIGHT #9 / 2026-05-21 43 1 2 アノテーション

Slide 44

Slide 44 text

パイプラインのノードの 1 つとして CVAT 連携が動く 1 Asset 選択 DAM UI で動画を選ぶ ▶ 2 Pipeline 起動 CVAT 連携ノードを実行 ▶ 3 CVAT Task 登録 cross-account で 自動登録 Pipeline ノードとして組み込み CA DATA NIGHT #9 / 2026-05-21 44 1 2 アノテーション

Slide 45

Slide 45 text

手動トリガ系 — 連番画像に切り出して CVAT へ 1 動画を選んでノードを起動 → 連 番画像に切り出し → CVAT に Task 自動登録 2 アノテ作業の入口が、画面 1 操 作で済む 選ぶだけで CVAT に登録される CA DATA NIGHT #9 / 2026-05-21 45 1 2 アノテーション

Slide 46

Slide 46 text

手作業での準備 → 画面 1 操作で起動 Before CV エンジニアが個人で準備していた 動画データの格納場所を確認するところか ら CVAT に手で取り込み、タスクを設定 アノテ開始までに手間がかかる After DAM UI から CVAT ノードを起動 メタデータと動画が そのまま渡る アノテーターはタスクを開くだけ 起動コストがほぼゼロに ラベリング起動コストが下がる CA DATA NIGHT #9 / 2026-05-21 46 1 2 アノテーション

Slide 47

Slide 47 text

良い ML モデルは、良い学習データから 溜めた動画も、そのままでは学習に使えない。学習データに変える工程が、この 2 つ。 後半 学習データ検索 狙ったシーンの動画を自然言語で見つけ、アノテ対象を素早く集める 検索が速いほど、アノテーションも速く回る 後半 — 学習データ検索 前半 アノテーション 動画に正解ラベルを付けて学習データにする — モデルの精度を左右する工程 CA DATA NIGHT #9 / 2026-05-21 47

Slide 48

Slide 48 text

" ゴール直前のシーンの動画が欲しい — Sheet をスクロールして探す? それは現実的じゃない 例えばこう探したい CA DATA NIGHT #9 / 2026-05-21 48 1 2 学習データ検索

Slide 49

Slide 49 text

自然言語のクエリで関連するシーン を取り出せる 「ゴール直前」のような曖昧な指定 でも、関連シーンが一覧で返ってく る 自然言語クエリで関連シーンを取り出す CA DATA NIGHT #9 / 2026-05-21 49 1 2 学習データ検索

Slide 50

Slide 50 text

Bedrock 経由で Marengo を呼んで、OpenSearch で vector 検索 自然言語 クエリ 「ゴール直前」 ▶ AWS Bedrock TwelveLabs Marengo で embedding ▶ OpenSearch knn vector 検索 (クリップ単位) ▶ 関連シーン visual / audio / transcript 別 Semantic Search は Bedrock × OpenSearch で動く CA DATA NIGHT #9 / 2026-05-21 50 1 2 学習データ検索

Slide 51

Slide 51 text

メタ付け・整理・検索を Agent に寄せていく MetaDataAgent で CSV メタデータを自動付与 動画を勝手に Collection にまとめてくれる Agent 自然言語で「あのシーン探して」→ Agent が探して持ってくる CV エンジニアの 試行回数を構造的に増やす 発見性は、人ではなく Agent に渡す CA DATA NIGHT #9 / 2026-05-21 51 1 2 学習データ検索

Slide 52

Slide 52 text

SECTION 06 / 06 6 これから — 移譲できる世界線へ 1 なぜ「動画データ管理基盤」が要るのか 2 何が、どう溜まるのか 3 アーキ — AWS MediaLake OSS と拡張 4 Pipeline 設計の自由さ 5 アノテーション / 学習データ検索 CA DATA NIGHT #9 / 2026-05-21

Slide 53

Slide 53 text

土台ができた、というところまで来ています DAM の現在地 取り込み 完了 Connectors / Ingest 整理 完了 Collections Pipeline 完了 ノード化 + 拡張性 検索 立ち上げ中 Semantic Search 本格運用 Agent これから 自動メタデータ / 自動検索 CA DATA NIGHT #9 / 2026-05-21 53

Slide 54

Slide 54 text

例:CVAT 連携 — 動画選択から Task 登録までを 1 操作に BEFORE 手作業ベース 動画ファイルをローカルに集める 連番フレームに切り出し CVAT 画面で Task を作成 フレームを個別にアップロード AFTER(DAM) DAM UI で 1 操作 Asset から動画を選ぶ CVAT 連携パイプラインを起動 連番画像化 → CVAT Task 登録まで自動 アノテーション起動コストが構造的に下がる(という狙いで作っている) 道半ば — でもここが効いてきた CA DATA NIGHT #9 / 2026-05-21 54

Slide 55

Slide 55 text

DAM 周辺の拡張ロードマップ 次にやること 検索 UI 磨き CV エンジニア以 外にも触っても らう CVAT 動線深 化 起動自動化 + 品 質チェック Model 管理接 続 学習データとモ デルのリネージ MetaDataAgent メタデータ自動付 与 構想 Collection Agent 動画を勝手にま とめる Agent 構想 CA DATA NIGHT #9 / 2026-05-21 55

Slide 56

Slide 56 text

専門性は専門に、汎用化できるところは基盤と Agent に 汎用化 → 基盤 / Agent 移譲できる仕事 動画の管理・配置 メタデータの付与 Collection への整理 アノテ起動・学習データ検索 専門性 → CV/ML エンジニア 専門性が必要な仕事 ML モデルのアーキ設計 評価指標の設計 学習データの品質判断 モデルの本番展開判断 移譲できる世界線へ CA DATA NIGHT #9 / 2026-05-21 56

Slide 57

Slide 57 text

スポーツ映像 × ML/CV、一緒に作りませんか? WINLIVE(競輪) ABEMA × ボクシング 「次に何が起こるか」への期待を可視化する技術開発を、ABEMA 連携で横展開中 スポーツ映像テック事業部 — 仲間募集中 CA DATA NIGHT #9 / 2026-05-21 57

Slide 58

Slide 58 text

ML/CV 視点の意見、ぜひ聞かせてください! ご清聴ありがとうございました CA DATA NIGHT #9 / 2026-05-21