Upgrade to Pro — share decks privately, control downloads, hide ads and more …

画像を用いた論文解説の可能性

Elith
July 29, 2023

 画像を用いた論文解説の可能性

画像の中のFigureを用いて論文解説ができる手法についての紹介

Elith

July 29, 2023
Tweet

More Decks by Elith

Other Decks in Programming

Transcript

  1. 自己紹介 2 2 高橋 将生 JOY Elith 機械学習スペシャリスト 東京大学大学院 在学

    松尾研究所 所属 @wwwsoccerwww 大森 一祥 もっさん Elith MLOpsスペシャリスト データサイエンティスト @oriki111
  2. 2. 背景 • AIエンジニアは素早くキャッチアップする必要がある • 翻訳サイトだけでは完全な理解が難しい ◦ 完璧ではなく英文も一部読む必要あり ◦ ネイティブに比べて読解が遅くなる

    • 重要な文章を探すのが手間 • 重要情報は図表で示される ➡図、表の説明をして欲しい!! 7 論文で重要な点を早くきちんと理解したい 論文読む時間が 足りない〜
  3. 2. 背景 8 既存ツールで図などの説明ができないか? ChatPDF ・画像の説明ができないことがある ・画像情報は理解していない   ・画像のキャプションを取得できない ChatGPT with

    Link Reader ・ChatGPTでPDFを読み込むためのプラグイン ・Link Readerではグラフなどの図は説明できない Link Readerの失敗例 ChatPDFの失敗例
  4. 2. 背景 9 PDFファイルを扱う難しさ 画像取得 ・PyMuPDFでは画像が細切れになる キャプション取得 図とキャプションの 関係が定義されていない ・図とキャプションの関係が定義されていない

      ・図の位置から予測   ・キャプションのテキスト情報抽出     ・キャプションの ・キャプションの多様性(Fig. Figureなど)
  5. 4. 画像情報を用いた論文解説 13 全体アーキテクチャー テキスト 物体検出 vector DB 図 キャプション

    テキスト テキスト 要約 Figure1: XXX YOLOv8 pytesseract LangChain Function Calling 画像
  6. 4. 画像情報を用いた論文解説 • 論文をアノテーション ◦ 学習65枚 ◦ テスト10枚 • YOLOv8で学習

    • Figureが92%、captionが90%で検出可能 • Figureとcaptionのセットは、最適輸送問題を 解くことでペアを見つける 14 画像とキャプションの取得
  7. 4. 画像情報を用いた論文解説 15 画像情報の利用法の模索 画像キャプション ・画像の簡単な説明文 ・この情報を詳しく説明させると図を理解できる 画像 ・解説してほしい対象 ・OCRによる文字起こし

      ・グラフなどの構造データを理解できない ・イメージキャプショニングによる説明文付与   ・グラフなどの数値は読み取ってくれない   ・変な文章を生成することもある キャプション
  8. 4. 画像情報を用いた論文解説 Google開発のPix2StructモデルDePlotを利用 • チャートをテーブル(テキスト)に変換 • 技術は、OCR、Object Detection、Key Pointなどを組み合わせたモデル 16

    チャートの読み取り DePlot論文*のFigure1抜粋 *Fangyu Liu et al. “DePlot: One-shot visual language reasoning by plot-to-table translation”
  9. 4. 画像情報を用いた論文解説 pytesseractによる事前学習モデルを使用 • Google’s Tesseract-OCR Engine(C++)のラッパー • 文字認識精度は98%程度 17

    キャプション画像のOCR(optional character recognition) https://static.googleusercontent.com/media/research.google.com/ja//pubs/archive/33418.pdf TABLE Ⅱ:Results of Q3, Q4, amd Q5 画像 テキスト
  10. 4.1 Function callingによる引数のフォーマット 18 2: 関数の分類(今回は未使用) • 入力した文字列から、予め定義した関数を選択する 関数の定義:①set_alarm_function, ②delete_alarm_function,

    ③check_alarm_function 入力:"7時にアラームを設定して" 出力:{"name": "set_alarm_function"} 1: 関数に必要な引数の作成 • 入力した文字列から、引数を引き出す 関数の引数:figure, number 入力:"画像1を解説してください" 出力:{"Figure": "1"} 文字列に応じて特定の関数を呼び出すことができるGPT機能 関数の分類と、関数に必要な引数の作成という2つを同時に実行
  11. 7. 今後の動き • フローチャートを解説したい ◦ 現状LLMが画像を理解できない ◦ 入出力関係をLLMで理解させたい ◦ 論文専用のキャプション生成をしたい

    24 • 論文解説記事の自動生成したい ◦ 論文の画像の取得ができると、記事に画像を貼り付けられる • 参考文献を考慮した論文解説をしたい ◦ 1つの論文は主観が入る ◦ 複数の文献を読んだ上で俯瞰的に解説するモデルを作りたい