自動運転面接必須の15問:知覚・計画・制御のフルチェーン網羅
自動運転面接高頻度15問:3D検出/BEV知覚/マルチセンサ融合、行動予測/運動計画/Lattice Planner、MPC/PID制御、高精地図/シミュレーションテスト、各問題に評価ポイントと回答方向付き
背景紹介
私は以前から従来のコンピュータビジョンに携わっていましたが、昨年自動運転分野に転向しました。EVスタートアップ、伝統的な自動車メーカーの自動運転部門、L4スタートアップなど、自動運転に取り組む5〜6社の面接を受けました。正直に言うと、自動運転の面試はカバー範囲が非常に広く、知覚から計画、制御まで、各モジュールで単独の面接問題セットが作れるほどです。面接官が最も好んで出題する知識ポイントを網羅した15の高頻度必須問題をまとめました。準備中の方の助けになれば幸いです。
面接プロセスの振り返り
自動運転ポジションの面接プロセスは一般的に:履歴書選考→技術一次面接(基礎+知覚)→技術二次面接(計画+制御)→技術三次面接(システム設計またはプロジェクト深掘り)→HR面接です。非常に明らかな特徴は、面接官があなたの背景に基づいて的確に質問することです。例えば、履歴書に3D物体検出と書いてあれば、BEV知覚からマルチセンサ融合まで質問が続きます。計画と書いてあれば、行動予測から運動計画、時空間統合最適化まで質問されます。履歴書に書いた内容は深掘りに耐えうる必要があります。ある友人は二次面接で「あなたの3D検出は夜間シナリオで性能がどれくらい低下し、どう解決したか」と聞かれ、準備不足で言葉に詰まりました。
問題コレクション
1. 知覚(5問)
1. 3D物体検出の主流な方法は?PointPillarsとCenterPointの違いは?
評価ポイント:3D検出の技術ルートと代表的な方法を理解しているか。
回答方向:3D検出は主に点群方法とマルチモーダル方法に分かれます。点群方法はさらにボクセルベース(PointPillars、VoxelNet)とポイントベース(PointNet++、CenterPoint)に分かれます。PointPillarsは点群を柱状ボクセル(pillar)に分割し、PointNetで特徴を抽出して擬似画像に展開し、2D検出ヘッドを適用します。利点は高速で、リアルタイムデプロイに適しています。CenterPointはまずバックボーンネットワークでBEV特徴を抽出し、CenterHeadで物体中心点と他の属性を予測し、キーポイントヒートマップで検出します。CenterPointの利点はNMSが不要(中心点は一意であるため)で精度が高いですが、速度はやや遅いです。実際のデプロイではPointPillarsがより一般的で、CenterPointは学術ベンチマークで優れています。
2. BEV知覚とは?なぜ現在の主流アプローチなのか?
評価ポイント:鳥瞰図知覚の動機と利点を理解しているか。
回答方向:BEV知覚は複数カメラ画像を統一された鳥瞰図空間に変換して知覚を行います。主流になった理由:統一表現、複数カメラの特徴がBEV空間で自然に整列し、後融合が不要;下流タスクに適している、計画と制御はどちらもBEV空間で動作し、知覚結果が直接利用可能;時系列融合が容易、BEV空間では異なる時刻の特徴の整列が簡単。主流アプローチはLSSベース(Lift-Splat-Shoot、深度分布を明示的に予測して3D投影)とTransformerベース(BEVFormer、交差注意で特徴クエリ)に分かれます。BEVFormerは精度が高いが計算量が多く、LSSシリーズはより軽量です。テスラのOccupancy NetworkもBEV知覚の拡張です。
3. マルチセンサ融合の方法は?前融合と後融合の違いは?
評価ポイント:センサ融合の戦略と選択を理解しているか。
回答方向:融合方法はレベル別に:前融合(データレベル)、生データを直接融合、情報保持は最も完全だが整合性要件が高い;特徴融合、各センサが特徴を抽出後に中間層で融合、現在の主流アプローチ;後融合(オブジェクトレベル)、各センサが独立に検出後に結果を融合、実装は簡単だが情報損失が大きい。時間別に:早期融合(入力時)と後期融合(出力時)。現在のトレンドは特徴レベル融合で、BEVFusionのようにLiDAR点群とカメラ画像をBEV特徴空間で融合します。前融合は情報量が最大だがキャリブレーションと同期の要件が極めて高く、後融合は最も簡単だが補完情報を失います。
4. 車線線検出はどうやる?課題は?
評価ポイント:車線線検出の方法と難点を理解しているか。
回答方向:車線線検出方法:セグメンテーション方法(車線線ピクセルをセグメント、例:SCNN);検出方法(車線線パラメータを直接回帰、例:PolyLaneNet);アンカーベース方法(例:LineCNNが行アンカーを使用);Transformer方法(例:CLRNetが交差注意で車線線を精製)。主な課題:遮蔽(前車遮蔽、カーブ遮蔽);摩耗(古い車線線が不明瞭);複雑なトポロジー(合流・分流、交差点);照明変化(逆光、夜間、雨雪)。現在の業界ではパラメトリック表現(例:3次多項式やベジェ曲線)で車線線をモデリングする傾向があり、ピクセルレベルのセグメンテーションよりロバストです。
5. 多目標追跡(MOT)の主流な方法は?
評価ポイント:物体追跡の技術ルートを理解しているか。
回答方向:MOTは検出ベース追跡(DBT)と統合検出追跡(JDT)に分かれます。DBTは先に検出してから関連付け、代表的な方法にSORT/DeepSORT(カルマンフィルタ+ハンガリアンアルゴリズムでデータ関連付け)があります。JDTは検出と追跡をエンドツーエンドで行い、代表的な方法にTrackFormer、MOTR(DETRアーキテクチャで統合検出追跡)があります。現在の自動運転ではDBTが主流で、エンジニアリング的に制御しやすいためです。関連付けアルゴリズムの核心は特徴マッチング(外観特徴+運動特徴)で、DeepSORTはReID特徴で外観マッチング、ByteTrackは検出スコアで階層的関連付けを行います。3D MOTでは3D位置と速度情報も関連付けに考慮する必要があります。
2. 計画(5問)
6. 行動予測はどうやる?どのような不確実性がある?
評価ポイント:軌跡予測の方法と不確実性モデリングを理解しているか。
回答方向:行動予測は決定論的予測と確率的予測に分かれます。決定論的予測は1本の軌跡を出力し、確率的予測は複数の可能な軌跡(マルチモーダル)を出力します。主流方法:符号化-相互作用-復号フレームワーク、まずベクトルエンコーダで道路とエージェント特徴を抽出し、相互作用モジュールでエージェント間関係をモデリングし、最後にデコーダで軌跡を生成します。代表的な方法:MultiPath(アンカー+オフセット)、CoverNet(カバー集合)、MotionFormer(Transformerアーキテクチャ)。不確実性の源泉:認識論的不確実性(モデル自身の不確実性、アンサンブルで推定可能)と偶発的不確実性(環境自体のランダム性、例:歩行者の意図は予測不可能)。業界ではマルチモーダル予測(top-K軌跡と確率を出力)で不確実性に対応することが一般的です。
7. 運動計画の方法は?動的障害物の処理は?
評価ポイント:運動計画のコアアルゴリズムと動的シーン処理を理解しているか。
回答方向:運動計画は探索方法(A*、Hybrid A*)と最適化方法(二次計画、非線形最適化)に分かれます。探索方法は配置空間で経路を探索し、複雑な制約のあるシーンに適しています;最適化方法は初期解の周りで反復最適化し、高速ですが初期解に依存します。動的障害物の処理:時空間計画(x-y-t 3D空間で計画、空間と時間を同時に考慮);予測+計画(まず動的障害物の軌跡を予測し、予測結果に基づいて計画);インタラクティブ計画(自車の行動が他車に与える影響を考慮し、ゲーム理論的計画)。業界では階層アーキテクチャが一般的:行動計画(決定)→運動計画(軌跡生成)→制御(追従)。
8. Lattice Plannerの原理は?
評価ポイント:Lattice Plannerの仕組みを理解しているか。
回答方向:Lattice Plannerの核心的なアイデアは終点空間でサンプリングし、候補終点のセットを生成し、各終点に対して多項式(通常5次多項式)で始点と終点を接続して候補軌跡を生成し、候補軌跡をコスト評価(快適性、安全性、効率などを考慮)して、コスト最小の軌跡を選択します。Lattice Plannerの利点:リアルタイム性が良い(サンプリング+評価の計算量が制御可能);解釈性が高い(コスト関数の重みを調整可能);制約を追加しやすい(コスト関数に直接ペナルティ項を追加)。欠点:サンプリング密度と計算量のトレードオフ(粗すぎると良い軌跡を見逃し、密すぎると計算量が増大);終点空間の設計に敏感(終点サンプリング戦略が計画品質に直接影響)。
9. 決定木は自動運転でどう使う?
評価ポイント:行動決定の方法を理解しているか。
回答方向:決定木は自動運転の行動決定層で使用され、自車がどの行動を実行すべきか(追従、車線変更、譲歩など)を決定します。実装方法:ルールベース決定木(専門家の経験に基づいてif-elseルールを構築、シンプルだが全シナリオをカバー困難);POMDP(部分観測マルコフ決定過程、不確実性をモデリング可能だが計算複雑度が高い);強化学習(エンドツーエンドで決定方策を学習、汎化性は良いが安全性の保証が困難)。業界では現在ルール+状態機械が主流で、一部の学習方法を補助的に使用。ルール決定木の核心的な課題はシナリオカバレッジとルールの競合で、ルールベースを完成させるために大量のテストと反復が必要です。
10. 時空間統合計画とは?分離式計画より何が良い?
評価ポイント:時空間統合最適化の利点を理解しているか。
回答方向:従来の分離式計画はまず経路計画(s-l空間)を行い、次に速度計画(s-t空間)を行う2段階の分離です。時空間統合計画はx-y-t 3D空間で経路と速度を同時に最適化します。統合計画の利点:より良い解(分離式計画の2つの部分問題はどちらも大域最適でない可能性があるが、統合計画はより良い解を見つけられる);動的シーンの処理がより自然(動的障害物は時空間で「障害物柱」として現れ、統合計画は自然に回避可能);より滑らか(経路と速度を同時に最適化し、軌跡がより滑らかで快適)。欠点:計算量が大きい(3D最適化空間は2Dよりはるかに大きい);求解がより困難(非凸最適化問題がより複雑)。実際には粗計画+精密最適化の戦略がよく使われます:まず探索方法で時空間の粗い解を見つけ、最適化方法で精製します。
3. 制御(3問)
11. MPCは自動運転でどう使う?PIDとの違いは?
評価ポイント:モデル予測制御の原理と利点を理解しているか。
回答方向:MPCの核心的なアイデアは各時刻で有限ホライズンの最適制御問題を解き、最初の制御入力のみを実行し、ローリング最適化を行うことです。MPCの利点:制約を処理可能(速度制約、加速度制約、道路境界制約など);未来を予測可能(モデルに基づいて未来の状態を予測し、制御動作を事前に計画);多目的最適化可能(快適性、安全性、追従精度などの重み付き最適化)。PIDとの違い:PIDはフィードバック制御で現在の誤差のみを見る;MPCは予測制御で未来ホライズン内の誤差を見る。MPCはよりスマートだが計算量が多く、PIDはよりシンプルだが制約を処理できない。自動運転では縦方向制御にMPCが一般的(車間距離制約の処理)、横方向制御はMPCとPIDの両方がある。
12. PID制御のパラメータ調整方法は?コツは?
評価ポイント:PIDチューニングの実践的な経験を理解しているか。
回答方向:PIDチューニングの基本順序:まずPを調整(比例ゲイン、Pを大きくすると応答が速くなるが発振の可能性);次にDを調整(微分ゲイン、Dを大きくすると発振を抑制するがノイズを増幅する可能性);最後にIを調整(積分ゲイン、定常誤差を消除するがオーバーシュートを引き起こす可能性)。実用的なコツ:インクリメンタルチューニング(一度に1つのパラメータのみ調整し、効果を観察);周波数領域分析(ボード線図で安定余裕を分析);適応PID(異なる速度/曲率で異なるパラメータを使用、ルックアップテーブル法);アンチワインドアップ(積分制限を追加してワインドアップを防止)。自動運転でのPIDチューニングの難点は異なる工況で異なるパラメータが必要なことで、高速と低速、直線とカーブで最適パラメータが大きく異なり、通常パラメータスケジューリングが必要です。
13. 軌跡追従の誤差の原因は?どう減らす?
評価ポイント:軌跡追従の精度問題と改善方法を理解しているか。
回答方向:誤差の原因:モデル誤差(車両ダイナミクスモデルが不正確、例:タイヤコーナリング剛性の推定が不正確);遅延誤差(センサ遅延、計算遅延、アクチュエータ遅延、総遅延は100-200msに達する可能性);離散化誤差(計画軌跡は連続だが、制御は離散的に実行);外乱(路面勾配、風力、荷重変動など)。誤差削減方法:遅延補償(制御計算時に遅延時間後の車両状態を予測して現在の状態とする);モデル改善(より正確な車両モデルを使用、例:タイヤ非線形性を考慮したモデル);フィードフォワード制御(参照軌跡の曲率に基づいてフィードフォワード操舵角を計算し、追従誤差を削減);適応制御(モデルパラメータをオンライン推定し、コントローラをリアルタイム調整)。
4. システム(2問)
14. 高精地図の自動運転での役割は?地図なし方案は可能?
評価ポイント:高精地図の価値と地図なし化のトレンドを理解しているか。
回答方向:高精地図は事前環境情報を提供:車線レベルのトポロジー、道路幾何、交通標識の位置など。役割は知覚負荷の軽減、視野外情報の提供、位置推定の支援です。高精地図の問題:鮮度維持(道路変更後に地図をタイムリーに更新する必要があり、コストが極めて高い);カバレッジ(採集済みエリアのみカバー、新都市ですぐに使用不可);規制リスク(測量資格の制限)。地図なし方案のアプローチ:オンラインマップ構築(車載センサでリアルタイムに局所高精地図を構築、例:StreamMapNet);エンドツーエンド(地図をスキップして知覚から計画へ、テスラの方案など)。現在の業界トレンドは「軽地図」方案:トポロジー情報を保持し幾何詳細を削除、車載知覚で補完。完全な地図なしはL2+で可能だが、L4では地図の支援が必要です。
15. 自動運転のシミュレーションテストはどうやる?指標は?
評価ポイント:シミュレーションテストの方法と評価体系を理解しているか。
回答方向:シミュレーションテストはSoftware-in-the-Loop(SIL)、Hardware-in-the-Loop(HIL)、Vehicle-in-the-Loop(VIL)に分かれます。SILは最も軽量で純粋なソフトウェアシミュレーション;HILは実際のECUを接続してソフトウェア・ハードウェア統合をテスト;VILは閉鎖テスト場で実際の車両+仮想シナリオを使用。シミュレーションプラットフォーム:CARLA(オープンソース、学術で一般的)、VTD、PreScan、WaymoのSimulation City。主要指標:衝突率(最も基本的な安全指標);通過率(シナリオ完了の割合);快適性指標(加速度jerk、横加速度など);効率指標(到着時間、通行効率)。シミュレーションの核心的な課題はSim2Real Gapで、センサモデル、環境モデル、車両モデルの不正確さがすべてシミュレーション結果と実際のパフォーマンスの不一致を引き起こします。
心得とアドバイス
自動運転面接の最大の特徴はシステム性が非常に強いことです。自分のモジュールを理解するだけでなく、上流と下流のモジュールがどう連携するかも理解する必要があります。例えば、知覚を担当していれば「あなたの検出結果は計画にどう使われるか、フォーマットは何か、レイテンシ要件はどれくらいか」と聞かれます。計画を担当していれば「知覚結果に誤検出があったらどう処理するか」と聞かれます。面接準備ではフルチェーン思考が必要です。
2つ目のアドバイスはプロジェクトの詳細が追及に耐えうるようにすることです。面接官は特に「なぜこの方案を別の方案ではなく選んだのか」「このモジュールの性能ボトルネックはどこで、どう最適化したのか」と聞くのが好きです。APIを呼んだだけで原理を説明できないと、簡単に詰まってしまいます。
3つ目のアドバイスは業界動向に注目することです。自動運転技術の反復は速く、BEV知覚、エンドツーエンド、Occupancy Networkなどの新技術は面接官がよく聞きます。面接前に過去半年の各社の技術ブログと論文を読むことをお勧めします。
FAQ
Q:自動運転面接にC++は必要?
A:基本的に必須です。自動運転のエンジニアリング実装はほぼすべてC++で、面接で簡単なアルゴリズム実装を手書きさせられる可能性があります。Pythonもデータ処理とモデル訓練に必要です。
Q:自動運転経験なしでどう転職する?
A:自分の元の方向から入ることができます。CVの人は知覚に、最適化の人は計画に、制御の人は直接マッチします。重要なのは領域知識を補うことで、例えば知覚をやる人は3Dビジョンと点群処理を学ぶ必要があります。
Q:面接で不慣れなモジュールを聞かれたら?
A:理解が浅いと正直に言い、自分の理解を共有しましょう。面接官は何でも知っていることより、新しい分野を素早く理解できるかを重視します。
Q:どの論文を読むべき?
A:知覚:PointPillars、CenterPoint、BEVFormer、BEVFusion。計画:MultiPath、CoverNet、MotionFormer。制御:MPC関連の教科書。システム:CARLAシミュレーション関連。各方向で少なくとも3-5編の代表的な論文を読んでください。
Q:エンドツーエンド自動運転はモジュール化方案に取って代わる?
A:短期的にはありません。エンドツーエンドはL2+シナリオで進展(テスラなど)していますが、L4の安全性と解釈性の要件により、モジュール化方案が依然として主流です。将来はモジュール化+エンドツーエンドのハイブリッド方案になる可能性があります。