コンテンツにスキップ

自動運転の論文用の図を描く

自動運転の論文を書いていて、運転シーンの図が欲しい。Prediction のレーン合流コーナーケース、Planner の保護なし左折、Perception 評価用の歩行者横断シーンなど。投稿先がワークショップでも IEEE ジャーナルでも arXiv プレプリントでも、要件はだいたい共通しています。

  • 見やすいこと — 余計な背景がなく、シミュレータのスクリーンショット臭がしない。
  • 拡大して破綻しないこと — ピクセル絵ではなくベクター。
  • 後から直しやすいこと — レビュアーから「B 車がブレーキする側のケースも見せて」と言われたとき、ゼロから描き直さずに済む。

drawtonomy はこのあたりが得意なツールの 1 つです。

どのツールもそれぞれの目的でとてもよくできていて、論文の図はそれぞれで日々たくさん作られています。drawtonomy は「レーン・車両・歩行者をシェイプとして持つドメイン特化キャンバスで、リビジョンに強い」という組み合わせを担当しています。

  • PowerPoint / Keynote は分野を問わず使われる定番で、論文の図もここから多く生まれています。汎用ツールなので、道路ジオメトリはレーンの意味づけではなくプリミティブな図形から組み立てることになります。
  • Excalidraw / tldraw は UX のよい優れたホワイトボードで、汎用作図にフォーカスしています。ドメイン特化シェイプではないので、レーン方向・接続・破線の標示などは手で描き起こすのが普通です。
  • CARLA / SUMO のスクリーンショット は「実際に走らせたシミュレータの絵を見せたい」とき、たとえば「このシーンで評価した」という付録の図には自然な選択肢です。シミュレータの絵作りが乗るので、メイン本文の概念図とは目的が少し違うことがあります。
  • TikZ は LaTeX ネイティブで完全に正確な図を作る定番で、美しい図がたくさん生まれています。トレードオフは編集サイクル — 1 枚あたり「直して compile」を回すので、直接操作のキャンバスより時間がかかります。

drawtonomy はスライドツールと TikZ の中間あたりに位置する道具で、レーン・車両・歩行者を最初からシェイプとして持っています。既存のワークフローでうまく図が出ているならそのままで十分。drawtonomy は「ドメインを知ってるシェイプ」と「同じファイルで何度でも編集」を 1 つにまとめたいときに役立ちます。

  1. レーンを下書きする。Lane Tool で中心線をクリックすると、左右の境界が自動で引かれます。合流のように複数レーンが絡む場合は、合流する側のレーンを別途引き、Next Lane で前後関係を明示します。
  2. 登場物を配置する。ツールバーから車両・歩行者・信号・横断歩道などをキャンバスに drag します。
  3. 動きを示す。Path 矢印で意図する軌道を示します。すっきり見せたい本文用には Arrow スタイル、回廊を強調したい説明には Band スタイルが便利です。
  4. グレースケールに耐える色にする。グレースケール印刷の媒体もまだあるので、AttributePanel で色・透明度・線の太さを別々に調整し、白黒変換で潰れない配色を選びます。
  5. .drawtonomy.svg(drawtonomy 独自の SVG 形式)で保存する。これがおすすめのデフォルトです。通常の SVG として LaTeX、ブラウザ、GitHub、Markdown、スライドでそのままプレビューでき、しかも drawtonomy で開き直せば再編集できます。レビュアーから「車線数を 2 から 3 にした版も見せて」と言われたら、保存したファイルを開いて 2 ヶ所だけ変えて出し直せます。
  6. 必要に応じてラスタも書き出す。投稿先が PNG しか受け付けない場合や、サムネが欲しい場合は同じシーンから高 DPI で PNG を書き出します。編集可能なソースは .drawtonomy.svg のまま残しておきます。

.drawtonomy.svg ファイルは追加メタデータ付きの正規 SVG なので、他の SVG で動く LaTeX 経路がそのまま使えます。実務的な注意点をいくつか挙げておきます。

  • svg パッケージで \includegraphics{} する\includegraphics[width=\linewidth]{your-figure.drawtonomy.svg} のように直接指定できます。svg パッケージ + inkscape の組み合わせは CI 環境で詰まることがあるので、ビルドを安定させたいなら手元で 1 度 PDF に変換(inkscape --export-type=pdf your-figure.drawtonomy.svg)してから PDF を取り込むのが堅実です。
  • フォント。SVG の中にフォントが入っているなら xelatex を選ぶか、SVG にはテキストを入れずキャプション側に書く運用が無難です。
  • 投稿時のパッケージング。投稿先が .pdf.eps を要求することが多いので、投稿時点ではこれらに変換します。リポジトリには .drawtonomy.svg を編集可能なソースとして残しておけば、リバイズ対応が楽です。

論文とスライドの両方に使う場合:

  • 単一のソースとして .drawtonomy.svg を残しておきます。論文側はビルドの都合で .pdf に書き出し直し、スライド側は透過背景の .png を書き出します。次のリバイズも同じ .drawtonomy.svg から再開できます。
  • 写実的な図(センサーの可視化結果、ニューラルレンダリングの出力など)はシミュレータの出力やレンダラのスクショを使ってください。
  • 密度の高い都市網は drawtonomy だとつらくなります。HD マップの専用ツールを検討するのが妥当です。
  • デザイン性の高いイラスト(表紙絵、マーケティング素材など)は Illustrator や Affinity の方が書体まわりまで作り込めます。