見出し画像

パワーアップした「ドライブ記録」のスコアエンジン開発裏話

はじめまして。Yahoo!カーナビのエンジニアをしている、あざみ です。

前回の記事では、「ドライブ記録」のプロジェクト担当のふがねより、リニューアルのポイントやYahoo!カーナビが考える安全運転に対する思いを伝えてもらいました。

この記事を担当する私はエンジニアですので、この「ドライブ記録」に採用された新しいスコアエンジン(*)の開発裏話をご紹介しようと思います。

(*) ここでは「運転時の加速、減速などの運転特性を、スマホのセンサー情報を利用して『得点(スコア)』に置き換えるプログラム」のことを指します。

評価項目について

画像10


新しいスコアエンジンでは、「加速の安定性」「減速の安定性」「旋回の安定性」「直進の安定性」の4項目について評価しています。

加速の安定性:車のアクセルを踏み込むと車は加速しますが、「加速の安定性」とは、その加速の大きさを評価し、大きな加速が多いほどスコアが低くなります。

減速の安定性:逆に、車のブレーキを踏むと車は減速しますが、その減速の大きさを評価し、大きな減速が多いほどスコアが低くなるのが「減速の安定性」です。

旋回の安定性:車のハンドルを左右どちらかに回すと車は旋回していきますが、「旋回の安定性」とは、その時感じる遠心力(車の横方向にかかる加速度に相当)の大きさを評価し、大きな遠心力が多いほどスコアが低くなります。

直進の安定性:最後の「直進の安定性」は、イメージしづらいですが、急ハンドルを評価し、その際に感じる遠心力が大きく、さらに多いほどスコアが低くなります。

急ハンドルと直進がどう関係するか、と疑問に思う方が多いと思いますが、私たちはつぎのように考えました。

急ハンドルを切ると文字通り急に曲がりますが、これは直前まで直進が期待されるにもかかわらず、急なハンドル操作によって直進しなくなった状態である。つまり、直進の安定性が崩された状態と解釈できます。いかがですか?

「加速」と「減速」は相反している関係にあります。また、「加速」は前に進むというイメージですので、スコア表示の上に「加速の安定性」を配置し、逆の「減速の安定性」を下に配置しています。残った「旋回の安定性」は、とりあえずスコア表示の右に配置しました。そこで「旋回」と相反するものはなんだろうと検討した結果「直進」となり、「直進の安定性」を左に配置したのです。配置場所に関しても、このような背景があります。

実は、当初は「旋回」を「コーナリング」、「直進」を「ハンドリング」という言葉を使っていましたが、漢字で統一することにしました。

これらの評価項目は、前回のnote記事でも紹介していますが、安全運転へ直接つながるものであり、スコアの高い運転を目指すことで自動車事故を減らす効果があると考えています。

スコア計算の仕組み

さて、ここで「加速(減速)の大きさ」、「遠心力の大きさ」という言葉が出てきましたが、どうやってそれらを求めているのでしょうか?

Yahoo!カーナビは、スマホのアプリですから、スマホが持っている情報からこれらを求める必要があります。この難題を解決するのが最初の壁でした。まず思い浮かぶのは、加速度センサーです。ほとんどのスマホには加速度センサーが搭載されています。この情報を利用すれば、何とかなるのではないかと。

しかし、物事はそう簡単にはいきません。上で述べた「加速(減速)の大きさ」は、車が真っすぐ前に進む方向の加速度(下図のZ軸方向)であり、「遠心力の大きさ」は、車の真横方向の加速度(下図のY軸方向)に対応しています。また、車の真下から真上に貫く軸をX軸とすると、下図のようなXYZの3次元空間が設定できます。これを「車の座標系」と呼びます。

画像10

一方、スマホの加速度センサー情報は、上図のようなスマホの3次元座標系からなる3次元情報(加速度のx, y, zの値)で得られます。こちらは「スマホの座標系」といいます。このように、車の座標系とスマホの座標系は異なるため、スマホの座標系による情報からどのように車の座標系の情報に落とし込むかが問題になる訳です。

画像10

もし、上図のように車の座標系とスマホの座標系の軸が平行であれば、話は簡単になり、車が真っすぐに進む方向の加速度は、スマホの加速度センサーのzの値そのものであり、車の真横方向の加速度は、スマホの加速度センサーのyの値そのものになります。(ただし、このケースの場合、符号は逆転しています。)

しかし、一般には車に対してスマホがどのような姿勢で設置されているかは人、もとい、スマホそれぞれ千差万別です。つまり、スマホから見て、車の進行方向はあっちで、横方向はこっちでという位置関係をスマホそれぞれでその時々で求める必要があります。(ただし、1秒ごとなど短時間ごとにその位置関係を求めているのではなく、1回の運転で固定されているのを前提にしていますので、運転中はスマホを動かさないようにお願いします。)

画像8

これは専門用語で、スマホの座標系と車の座標系の変換式を求めることに該当します。上図は、青をスマホの座標系、赤を車の座標系で表していますが、黒で示した一つのベクトルは、それぞれの座標系で異なる座標値をとることになります。この変換式がわかれば、スマホの加速度センサーのx, y, zの値を車の座標系のX, Y, Zにすぐさま変換して、車の進行方向の加速度や真横方向の加速度(遠心力に相当)が導出できる訳です。

画像9

では、どのようにこの2つの座標系の変換式を求めているのでしょうか?

これが新スコアエンジンのコア技術であり、特許(特許第6159453号)も取得している技術ですが、詳細はここでは述べません。興味のある方はぜひ調べてみてください。少しだけヒントをお教えすると、

・地球上の物体には常に重力が働いていますが、その重力加速度は車の座標系のX軸方向であること
・道路の交差点の多くが十字の形をしていること

という特性を利用しています。

このようにして、スマホの加速度センサーを利用して車の進行方向や横方向の加速度を求められることが分かりました。厳密には、GPS(衛星利用測位システム)のGPS速度も利用しています。

車が真っすぐ前に加速している間、皆さんはどういう力を感じますか? シートに押さえつけられる力を感じますよね。つまり、車が加速する時は、スマホも含めた車の中の物体には、車の前方方向ではなく、後ろの方向へ加速度が発生します。つまり、Z値は負です。従って、「加速の安定性」ではZ値が負の時のみ、その大きさを評価しています。

画像10

車が減速しているときは、その逆になりますのでZ値は正です。従って、「減速の安定性」ではZ値が正の時のみ、その大きさを評価しています。

左右の旋回時は、どんな力が左右どちらに働くかはもうおわかりですね。右方向に曲がろうとすると左方向に遠心力がかかるのでY値は負であり、左方向に曲がろうとすると右方向に遠心力がかかるのでY値は正です。

「旋回の安定性」と「直進の安定性」は左右どちらに曲がるかは区別していませんので、Y値の絶対値の大きさを評価しています。「直進の安定性」は、Y値の絶対値が “突然” 大きくなった時、という条件をさらにつけています。

どの評価項目も加速度が大きく、さらに、その回数が多いと、減点されていく仕組みになっています。

自分のスコアはいいの、わるいの?

ドライブ記録のスコアは出たものの、これって他の人に比べていいのか、わるいのか気になりませんか?

お客様からの同意を得て取得した加速度センサー情報などのログのうち、84人分をシミュレーションしてスコアを計算してみました。下図は、評価項目を100点満点としたときの得点分布です。実際のアプリは25点満点で表示していますのでご自分のスコアを4倍した点数のところを比較してください。

図のように70点〜80点ぐらいのところにピークがあるのが分かります。どうですか? あなたのスコアは他の人に比べて思ったより良かったですか?

画像1

ここで、各項目のスコアの平均値を紹介します。下図のように25点満点で18点前後になっていることが分かります。総合スコアの平均は71.5点となりました。実は、偶然こうなったわけではなく、評価式をあれこれ検討して同じような平均点になるようにしているのです。

画像2

次に、あなたのスコアは100人中何番目になるか? という情報を提供したいと思います。下図を御覧ください。これは、総合スコアが100点の時は1位、95点の時は4位、90点の時は12位、・・・、0点の時は100位、ということを示しています。どうですか? あなたは何位でしたか?

画像3

安全運転する人が多くなると、ここで掲載した個別スコアの分布や総合スコアと順位の関係は、大きく変化します。個別スコアの分布については、山が高得点側にシフトしていき、総合スコアと順位の関係は、高得点側でさらに急に立ち上がる棒グラフになると思われます。そうなったら、改めてスコア計算の計算式を変更することになるかもしれません。

おわりに

ここでは、Yahoo!カーナビに新しく導入したドライブスコアエンジンについて紹介してきました。

高得点のスコアを目指すことで安全運転につながり、自動車事故が少ない社会になったらいいなと本当に思っています。最初のリリースですので、まだまだ改良の余地があるかもしれません。こんな機能があれば、もっと事故が減らせるんじゃないか、など、ご意見・ご感想を下記のリンクよりぜひお寄せください。
Yahoo!カーナビ - お問い合わせフォーム

↓Yahoo!カーナビで「ドライブ記録」を使ってみましょう↓

カーナビ

・機能および画面デザインは、今後の改善により変更になる場合があります。
・実際の交通ルールに従って運転してください。
・運転中の操作および画面注視は大変危険ですのでおやめください。
・必ず安全な場所に停止してから操作および画面を注視してください。


※記事の内容は公開時点での情報です。最新状況とは異なる場合がありますのでご了承ください。