芝・インコースの荒れ具合を画像処理によって数値化し、トラックバイアスの指標にする
馬場の荒れ具合を数値化し、レースに影響があるか分析してみます。
競馬アプリとサイト「pakara」を作っています。
基本無料で使えるので一度使ってみてください。
馬場状態を表す指標
馬場の荒れ具合を表す指標としては、
良、稍、重、不
があります。
前回、馬場状態ごとの荒れやすさを分析した結果、レースの荒れやすさと相関がありそうなことが分かりました。
馬場状態をもっと具体的な数値化ができたら予想に役立つ可能性があるので検証してみます。
含水率、クッション値は使えるのか
馬場状態を表す指標としては地面がどれぐらい水を含んでいるかを示す含水率と、地面の柔らかさを示すクッション値というものがあります。
これは馬場状態をより細かく分析するのには使えそうですが、含水率は開催地ごとに影響が異なるためまた今度分析します。
クッション値に関しては前回軽く触れました。
インコースの荒れ具合
馬場状態や含水率、クッション値などの指標は、基本的にはレースを走る馬にとっては同じ条件です。
今回インコースの荒れ具合に着目する理由としては、馬ごとに条件が異なるため、有利不利の影響がありそうなので分析してみます。
画像処理により芝の馬場状態を数値化
芝のインコースの馬場状態を数値化できれば、何か影響はないか分析できそうです。
JRA公式より毎週馬場状態の写真が公開されているので、こちらの画像を処理して、地面と芝の割合を色から数値化してみます。
OpenCVで色の割合を取り出す
画角の関係上なるべく画像下の方、真ん中よりをトリミングして、色の割合を調べます。
エリアのサイズは130*130ピクセルです。
厳密にいうとカメラを構える角度と芝の高さによっては地面が見える割合は変わるとは思います。
水平線の位置からある程度補正することもできそうですが、だいたい同じような画角なので今回はパス。
pythonとOpenCVで画像処理
当初はkmeansというクラスタリング手法で手っ取り早く分類しようと思いましたが、うまく地面の色を分類できなかったので、シンプルに特定の色をカウントする方法にしました。
OpenCVによる画像処理の流れ
画像の判定エリアをトリミング
hsvに変換し、特定の色相範囲内のピクセルをカウント
カウント数から割合の数値に
hsvに変換するのは、明るさにより色味が変わるので、ある程度の色の範囲に幅をもたせて判定するのに便利だからです。
hsvは通常、h:0~360、s:0~100、v:0~100の範囲ですが、
OpenCVだと、h:0~180、s:0~255、v:0~255の範囲になります。
hsvが(66/2,20/100*255,30/100*255)~(168/2,255,255)の範囲を取り出すと
わかりやすく画像全体に処理しています。
hsvが(20/2,20/100*255,30/100*255)~(50/2,100/100*255,100/100*255)の範囲を取り出すと
芝部分と地面部分をだいたい分離できていると思います。
これを特定の範囲でトリミングした画像に対して行い、ピクセル数をカウントして割合を出します。
最初の画像で処理すると
緑(芝) : 8558px
茶(地面): 1808px
となり、それぞれの合計値に対して割合にすると
緑(芝) : 82.6%
茶(地面): 17.4%
インコースは17.4%ほど馬場が荒れているということになります。
トリミングエリアのサイズは130*130で16900px、本来であれば全体ピクセル数に対する割合を出すところですが、影の影響でどちらともとれない領域がでてくるので、検出できた緑と茶の割合にしました。
他の画像でも検証してみる
ほかの画像ではどうなるか検証してみます。
計測する場所によって値は変わりそうですが、概ね馬場状態の荒れ具合に近いような気がします。
計測ポイントを増やして平均化することで、計測ポイントによる誤差は小さくできそうです。
トラックバイアスを示す指標になるか分析
次にこのデータからレースに何か関係があるか分析してみます。
画像は過去1年間分の151枚です。
数値の補正
JRAが公開する馬場画像は、開催2~3日前の写真です。
馬場はレースを重ねるごとに悪くなるので、レースが進むほど数値を補正していきます。
また馬場状態が悪ければより馬場は荒れやすくなると思うので、馬場状態ごとに補正値を求めていきます。
数値の変化具合を確認
何回芝のレースがあったか馬場状態別に集計
不良馬場の方がよりインコースの状態は悪化するようですが、柵の移動で対処され値の変化が正しくとれる機会が少ないです。
開催地ごとにそこまで傷みやすさに大きな違いがなっかたのと、そもそものデータが少ないので馬場状態のみで補正します。
1レースごとに
良 : +0.01%
稍 : +0.05%
重 : +0.1%
不 : +1%
芝が傷むということにします。
芝の状態と脚質の関係
芝状態と勝利した馬の脚質を、芝の荒れ率別で集計しました。
*注意
全ての開催地、距離による集計ですので、有利不利を判断するにはむきません。
芝の荒れ率によってどう変化するかに着目するべきです。
5%刻みで集計し、最後は25%以上です。
距離や開催地によっては結果が変わりそうですが、データ数が少ないためまとめてあります。
荒れ率15%~20%ぐらいまでは逃げ・先行傾向で、芝状態が悪くなると差し・追込が増えるる傾向があるかもしれません。
芝の状態と枠番の関係
芝状態と勝利した馬の枠番を、芝の荒れ率別で集計しました。
*注意
全ての開催地、距離による集計ですので、有利不利を判断するにはむきません。
芝の荒れ率によってどう変化するかに着目するべきです。
件数が少ないので傾向があるか判断に迷うところです。
一般的にはインコースの芝状態がいいと内枠の先行有利、芝状態が悪くなると外枠の差し有利と言われています。
あきらかに内側が荒れている場合、騎手も避ける選択はできるので、内側に閉じ込められない限りは不利な状況は避けられると思います。
参考までに10%、15%、20%の状態の芝画像です。
まとめ
画像処理した数値から有利不利の傾向があるか判断するには、件数が少なくなんとも言えない感じです。
より正確に判断するならコーナー順位から内枠を実際に走った馬を集計するべきかもしれません。
過去の馬場写真が1年分しかないため、もう1年分データがたまったらまた集計してみます。
数値化自体は、AIに学習させれたりとメリットがあるので、今後もまだ数値化されていないデータがあったら分析してみたいと思います。
競馬の予想で大事なことは、まだ誰も見つけていないようなレースの結果に影響を与える要素を見つけ、予想に正しく取り入れることにあります。
この記事が気に入ったらサポートをしてみませんか?