(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0022】
以下、図面を参照しつつ、本発明の一実施形態に係るゴルフスイングの分析システム、プログラム及び方法について説明する。
【0023】
<1.ゴルフスイングの分析システムの概略>
図1に、本実施形態に係るゴルフスイングの分析システム100を示す。分析システム100は、ゴルフスイングを動画として撮影し、これを画像処理することで、ゴルファーによるゴルフスイングを分析するためのシステムである。分析システム100は、主として、携帯電話1と、携帯電話1からインターネット6を介して接続可能なサーバ2とから構成される。携帯電話1には、カメラ10が搭載されている。ユーザは、このカメラ10を用いてゴルフスイングを動画として撮影し、サーバ2は、これを携帯電話1から受け取り、分析する。なお、ここでいうユーザとは、ゴルフスイングの分析結果を必要とするゴルファーやインストラクター等の総称である。以下、携帯電話1及びサーバ2のハードウェア構成について説明した後、これらの動作について説明する。
【0024】
<2.携帯電話のハードウェア構成>
本実施形態における携帯電話1は、カメラ機能付きのスマートフォンであり、ゴルフスイングの分析用のプログラム1Aがインストールされている。このプログラム1Aは、サーバ2と通信しながら、携帯電話1に後述する動作を実行させるためのアプリケーションソフトウェアであり、インターネット6を介してダウンロード可能である。
【0025】
携帯電話1は、カメラ10の他、表示部11、入力部12、記憶部13、制御部14、及び通信部15を有しており、これらの部10〜15は、バス線16を介して相互に通信可能である。表示部11は、液晶ディスプレイ等で構成され、後述する画面等をユーザに対し表示する。入力部12は、タッチパネルや操作ボタン等で構成され、ユーザからの操作を受け付ける。記憶部13は、内蔵型のフラッシュメモリや取り外し可能なSDカード等で構成されており、上述のプログラム1Aは、ここに格納されている。通信部15は、携帯電話通信網を介しての他の電話との音声通信や、インターネット6を介しての各種サーバ(サーバ2を含む)とのデータ通信を可能にする他、専用のケーブルを介しての他の情報端末との通信も可能にする。制御部14は、CPU、ROMおよびRAM等で構成されており、記憶部13内に格納されているプログラム1Aを読み出して実行することにより、仮想的に撮影案内部14A及びサイズ調整部14Bとして動作する。各部14A,14Bの動作については、後述する。
【0026】
<3.サーバのハードウェア構成>
サーバ2は、ゴルフスイングの分析用のプログラム2Aがインストールされたアプリケーションサーバである。このプログラム2Aは、携帯電話1と通信しながら、サーバ2に後述する動作を実行させるためのアプリケーションソフトウェアであり、CD−ROM等のコンピュータで読み取り可能な記録媒体20からインストール可能である。
【0027】
サーバ2は、表示部21、入力部22、記憶部23、制御部24、及び通信部25を有しており、これらの部21〜25は、バス線26を介して相互に通信可能である。表示部21は、液晶ディスプレイ等で構成され、必要な画面等をユーザに対し表示する。入力部22は、マウスやキーボード、タッチパネル等で構成され、ユーザからの操作を受け付ける。記憶部23は、ハードディスク等で構成されており、上述のプログラム2Aは、ここに格納されている。通信部25は、インターネット6を介しての他の情報端末(携帯電話1を含む)とのデータ通信を可能にする。制御部24は、CPU、ROMおよびRAM等で構成されている。制御部24は、記憶部23内に格納されているプログラム2Aを読み出して実行することにより、仮想的に像ブレ補正部24A、差分導出部24B、特徴検出部24C、特定部24D及び診断部24Eとして動作する。各部24A〜24Eの動作については、後述する。
【0028】
<4.ゴルフスイング分析処理>
以下、
図2を参照しつつ、携帯電話1及びサーバ2によるゴルフスイング分析処理について説明する。
まず、ユーザは、ゴルフ練習場等においてゴルフスイングを改善したいと考えたときに、携帯電話1上でこれを支援するためのプログラム1Aを起動する(ステップS1)。これを受けて、携帯電話1の撮影案内部14Aは、表示部11上に、
図3に示すような撮影画面W1を表示させる(ステップS2)。撮影画面W1内には、カメラ10が捉えるスルー画像が表示されるとともに、このスルー画像に重ねて2つの案内枠W2,W3が表示される。中央の案内枠W2は、アドレス時にゴルファー70の握るゴルフクラブ7のグリップ71を捉えるべき領域を示す枠でありであり、右下の案内枠W3は、アドレス時にゴルフクラブ7のヘッド72及びボールを捉えるべき領域を示す枠である。従って、ユーザは、これらの案内枠W2,W3を参考にすることで、カメラ10の撮像範囲内においてゴルファー70を捉えるべき凡その位置やアングルを容易に理解することができる。これらの案内枠W2,W3は、カメラ10を縦長に持った上で、カメラ10の撮像範囲内の所定の位置(本実施形態では、中央付近)でゴルファー70を捉えるように案内する。また、撮影画面W1上には、案内枠W2,W3に加え、これらの意味するところを示す情報、例えば、「中央の枠内にプレイヤーの手元を写し、右下の枠内にゴルフクラブのヘッドを写してください。」と言ったメッセージが表示されてもよい。
【0029】
続いて、ユーザは、以上のガイダンスに従って、カメラ10の撮像範囲内の適切な位置でゴルファー70を捉えた後、カメラ10でゴルフスイングを写す動画を撮影する(ステップS3)。このとき、ユーザは、手に持ったカメラ10を極力動かさないように注意しながら、アドレスからフィニッシュまでの一連の動作を撮影する。なお、ゴルフスイングは、一般に、アドレス、腕水平、トップ、切り返し、インパクト、フィニッシュの順に進む。
図4は、これらの6つの状態を捉えたフレームの例を示している。アドレスとは、ゴルフクラブ7のヘッド72をボール近くに配置した初期の状態であり、アドレスからゴルフクラブ7がテイクバックされる。テイクバック中、左腕が水平になる状態が、腕水平であり、最もヘッド72が振り上げられた状態が、トップである。トップの後、ダウンスイングが開始される。切り返しとは、このダウンスイングの開始点であり、切り返しからゴルフクラブ7が振り下ろされる。そして、その後、ヘッド72がボールと衝突した瞬間の状態が、インパクトであり、フィニッシュとは、インパクトの後、ゴルフクラブ7を前方へ振り抜いた状態である。撮影された動画は、記憶部13内に保存される。
【0030】
撮影が終わると、携帯電話1のサイズ調整部14Bは、必要に応じて、撮影された動画の画像サイズを縮小する(ステップS4)。具体的には、サイズ調整部14Bは、撮影された動画のアスペクト比を判断し、アスペクト比が所定値と異なると判断される場合(例えば、縦16:横9である場合)には、アスペクト比が所定値(本実施形態では、縦4:横3)となるように、動画に含まれる各フレームの上下方向(長手方向)の端辺から所定%の領域を切り取る。画像サイズが一定以上の比率で縦長である場合には、各フレームの上下の所定%の領域には、ゴルファー70やゴルフクラブ7が写っていないと考えられるからである。さらに、サイズ調整部14Bは、以上の動画のピクセル数を判断し、これが所定値よりも大きいと判断される場合(例えば、縦1440×横1080である場合)には、これを所定値(本実施形態では、縦640×横480)となるように、動画に含まれる各フレームを圧縮する。なお、このとき、圧縮後の画素値に小数点が生じないよう、内挿処理にて、各色成分(R,G,B)に関し画素値を整数化することが好ましい。
【0031】
続いて、携帯電話1の通信部15は、以上の動画をインターネット6を介してサーバ2に送信する(ステップS5)。一方、サーバ2側では、通信部25がこれを受信し、その後、像ブレ補正部24Aが、携帯電話1から送られてきたこの動画に対し像振れ補正を実行する(ステップS6)。像振れ補正のアルゴリズムとしては、様々なものが公知であるため、ここでは詳細な説明を省略する。この像ブレ補正により、動画に含まれるフレーム間の像ブレが解消される。
【0032】
動画の像振れ補正が終了すると、サーバ2の差分導出部24B、特徴検出部24C及び特定部24Dが協働して、像振れ補正後の動画の中から特定のタイミングでのフレームを自動的に抽出する(ステップS7)。具体的には、アドレス、腕水平、トップ、切り返し、インパクト及びフィニッシュの6枚のフレームが、自動的に抽出される。このようなタイミングは、ゴルフスイングを診断するためのチェックポイントとなる。これらのチェックポイントのフレームの抽出処理の詳細については、後述する。
【0033】
その後、診断部24Eは、チェックポイントのフレームを用いて、ゴルフスイングの診断を行う(ステップS8)。例えば、チェックポイントのフレーム内に写るゴルファー70やゴルフクラブ7のシルエットを自動抽出し、伸ばすべきところで腕が曲がっていないか、顔が正しい方向を向いているか、ゴルフクラブの向きが正しいか等のチェック項目について診断がされる。このようなチェック項目は、インストラクターの知見に基づいて作成され得る。また、プロがゴルフスイングを行った時のチェックポイントでのフレームを用意しておき、これをユーザによるチェックポイントでのフレームと比較することもできる。なお、ゴルフスイングの診断のアルゴリズムについては、様々なものが公知であるため、ここでは詳細な説明を省略する。
【0034】
以上の診断の結果は、サーバ2の通信部25から携帯電話1の通信部15に送信され(ステップS9)、携帯電話1の表示部11上に表示される(ステップS10)。従って、ユーザは、診断の結果を確認し、正しいスイングフォームの習得に役立てることができる。なお、診断の結果は、スイングの点数、長所・短所、ゴルファー70に見合った練習メニュー等として表現され得る。また、チェックポイントのフレームそのものを診断の結果としてもよい。
【0035】
<5.チェックポイントのフレームの抽出処理>
次に、
図5を参照しつつ、チェックポイントのフレームの抽出処理について説明する。以下では、携帯電話1から送られてき、上述の像ブレ補正が施された後の動画に含まれる複数のフレームを、時間軸に沿って順に、F
1,F
2,・・・,F
n(nは、フレームの枚数)と表す。本処理では、まず、動画の中からインパクトフレームF
Iが抽出され(ステップS21)、続いて、アドレスフレームF
Aが抽出される(ステップS22)。インパクトフレームF
I及びアドレスフレームF
Aの抽出処理については、後述する。
【0036】
次に、動画の中からトップフレームF
Tが抽出される(ステップS23)。ここでは、インパクトのタイミングを基準にして、トップフレームF
Tが探索される。具体的には、トップは、インパクトの前に生じるため、インパクトフレームF
IのN1枚前からN2枚前のフレームF
I-N1,・・・,F
I-N2間で、トップフレームF
Tが探索される。動画のFPS(Frame per second)が30fpsであれば、例えば、N1=15かつN2=4とすることができる。
【0037】
探索のアルゴリズムとしては、差分導出部24Bが、上記探索期間i=(I−N1)〜(I−N2)において順次、隣接フレームF
i-1,F
i間で差分処理を実行する。差分処理とは、フレーム間差分値を算出する処理である。本実施形態では、フレーム間差分値として、差分絶対値和(SAD)が算出される。すなわち、差分導出部24Bは、各画素について、フレームF
iにおける画素値からフレームF
i-1における画素値を減算した値をその画素の画素値とする差分画像を作成する。なお、ここでの画素値の計算は、色成分(R,G,B)毎に行われる。そして、差分導出部24Bは、この差分画像に含まれる全画素の全色成分に関する画素値の絶対値の合計値(SAD)を算出する。特定部24Dは、上記探索期間i=(I−N1)〜(I−N2)における差分処理の後、フレーム間差分値が最小となるi=Tを特定し、このときのフレームF
Tをトップフレームとする。なお、ステップS23における差分処理は、動画の画面全体を対象として実行される。
【0038】
次に、動画の中から腕水平フレームF
Hが抽出される(ステップS24)。ここでは、アドレスのタイミングを基準にして、腕水平フレームF
Hが探索される。具体的には、腕水平は、アドレスの後に生じるため、アドレスフレームF
AのN3枚後からN4枚後のフレームF
A+N3,・・・,F
A+N4間で、腕水平フレームF
Hが探索される。動画のFPSが30fpsであれば、例えば、N3=10かつN4=45とすることができる。
【0039】
探索のアルゴリズムとしては、差分導出部24Bが、上記探索期間i=(A+N3)〜(A+N4)において順次、フレームF
iとアドレスフレームF
Aとの差分画像を作成する。この差分画像は、様々な方法で作成し得るが、例えば、各画素について、HSV色空間内での色相、彩度及び明度に関するF
i,F
A間の距離を適当に重み付して足し合わせた値(以下、色距離)をその画素の画素値とする画像を生成し、さらにこれを二値化した画像とすることができる。この二値化では、所定の閾値よりも大きな色距離を有する画素の画素値を1(黒)とし、それ以外の画素の画素値を0(白)とする。また、このとき、ノイズの影響を小さくするため、黒が連続する領域が所定の大きさに満たない場合には、その領域内の画素の画素値を0(白)に変換することもできる。
【0040】
続いて、特徴検出部24Cが、上記探索期間i=(A+N3)〜(A+N4)において順次、ハフ変換により以上の差分画像上でゴルフクラブ7のシャフト73に対応する直線を検出する。なお、探索時刻のフレームF
iとアドレスフレームF
Aとの差分画像には、アドレス時のシャフト73と、探索時刻でのシャフト73が写ることになる。また、
図4を参照すると分かるように、ボールの飛行方向に対し後方からゴルフスイングを撮影した場合においては、腕水平時のシャフト73の直線は、アドレス時のシャフト73よりも長く、かつ、少なくともここでの探索期間においては最大の長さを有することになる。従って、特定部24Dは、上記探索期間i=(A+N3)〜(A+N4)において最大の投票数を得た直線、すなわち、腕水平時のシャフト73に対応する直線が存在するi=Hを特定し、このときのフレームF
Hを腕水平フレームF
Hとする。なお、腕水平時におけるシャフト73の角度は、ある程度決まっているため、直線の探索に当たっては、直線を表すパラメータθを所定の範囲(例えば、−5°〜−85°)内に設定しておくことが好ましい。
【0041】
次に、特定部24Dは、インパクトのタイミングを基準にして、動画の中から切り返しフレームF
Sを抽出し(ステップS25)、さらに、フィニッシュフレームF
Fを抽出する(ステップS26)。具体的には、特定部24Dは、インパクトフレームF
IのN5枚前のフレームを切り返しフレームF
Sとし、インパクトフレームF
IのN6枚後のフレームをフィニッシュフレームF
Fとする。動画のFPSが30fpsであれば、例えば、N5=3かつN6=15とすることができる。
【0042】
<5−1.インパクトフレームの抽出処理>
次に、
図6を参照しつつ、インパクトフレームF
Iの抽出処理について説明する。以下では、フレームF
iにおける案内枠W3内の部分画像を、G
iと表す。部分画像G
iは、上記のとおり、アドレス及びインパクト時にゴルフクラブ7のヘッド72及びボールの周辺が写る領域の画像である。
【0043】
まず、差分導出部24Bが、i=2,3,・・・,n−N7(動画のFPSが30fpsであれば、例えば、N7=10)に対し順次、案内枠W3内の領域において隣接フレームF
i-1,F
i間で差分処理を実行する(ステップS31)。すなわち、差分導出部24Bは、i=2,3,・・・,n−N7に対し順次、部分画像G
i-1,G
i間で差分処理を実行する。なお、i=(n−N7+1)〜nまでの区間についての差分処理を省略するのは、このような期間にインパクトが存在することはないからである。本実施形態における差分処理とは、上記のとおり、フレーム間差分値として、差分絶対値和(SAD)を算出する処理である。従って、ここでは、差分導出部24Bは、各画素について、部分画像G
iにおける画素値から部分画像G
i-1における画素値を減算した値をその画素の画素値とする差分画像を作成する。なお、ここでの画素値の計算は、色成分(R,G,B)毎に行われる。そして、差分導出部24Bは、この差分画像に含まれる全画素の全色成分に関する画素値の絶対値の合計値(SAD)を算出する。従って、ステップS31では、SAD(2),SAD(3),・・・SAD(n−N7)が得られる。なお、SAD(i)とは、部分画像G
i-1,G
i間でのSADである。
【0044】
ところで、ステップS31で算出されたSADとは、微小時間の間に案内枠W3内に生じた変化を表す指標である。また、上記のとおり、案内枠W3は、アドレス及びインパクト時にゴルフクラブ7のヘッド72及びボールの周辺を写す領域を囲む枠である。従って、案内枠W3内の部分画像G
iは、主としてアドレス及びインパクトの前後の短い期間以外においては、あまり変化がない。よって、ステップS31で算出されたSADの値は、インパクトの山51とアドレスの山53とが現れる
図7に示すようなグラフを描くと予想される。しかしながら、しばしば、ボールやティー等の動きにより、
図8に示すように、インパクトの後にもSADの山54が現れる場合がある。ただし、このような場合においては、インパクトの山51とノイズの山54との間の谷55の幅は、インパクトの山51とアドレスの山53との間の谷52の幅に比べて短くなる。
【0045】
そこで、続くステップS32〜S37では、特徴検出部24Cは、ステップS31で算出されたSADの値が時間軸に沿って以上のような出現パターンで特徴的に出現する区間を検出する。具体的には、特徴検出部24Cは、所定の閾値D
1(本実施形態では、D
1=5000)以上のSADの第1の山と、第1の山の直前に位置する所定の閾値D
1よりも小さいSADの谷とを検出する。本実施形態では、山の幅については特に問われないが、谷については、所定の長さD
2(動画のFPS=30fpsであれば、例えば、D
2=フレーム10枚分)以上の幅を有するものが検出対象となる。ここでは、このような特徴を有するSADの出現パターンを検出し、第1の山をインパクトの山51と決定することで、インパクトの後のノイズの山54をインパクトの山51と誤検出してしまうことを防ぐことができる。
【0046】
以上の出現パターンは、SAD(2),SAD(3),・・・SAD(n−N7)の値を時間軸に沿って逆送りでスキャンしてゆくことにより検出される。特徴検出部24Cは、スキャンの開始時点を設定すべく、パラメータiにn−N7を代入する(ステップS32)。
【0047】
続いて、特徴検出部24Cは、閾値D
1以上のSADが検出されるまで、時間軸に沿って1つ前のSADの値を順次調べてゆく(ステップS33)。そして、閾値D
1以上のSADが検出されると、特徴検出部24Cは、今度は閾値D
1よりも小さいSADが検出されるまで、時間軸に沿って1つ前のSADの値を順次調べてゆく(ステップS34)。従って、ステップS33,S34では、閾値D
1以上のSADが連続する山が検出される。この山は、インパクトの山51の候補となる。
【0048】
ステップS34で閾値D
1よりも小さいSADが検出されると、すなわち、山の終わりと谷の始まりが検出されると、特徴検出部24Cは、谷の幅を計測するためのカウンタcntに初期値1を設定する(ステップS35)。そして、特徴検出部24Cは、カウンタcntを用いて、当該谷が長さD
2以上の幅を有しているかを判断する(ステップS36,S37)。具体的には、ステップS36では、閾値D
1よりも小さいSADが検出される限り、時間軸に沿って1つ前のSADの値を順次調べてゆく。このとき、特徴検出部24Cは、cntの値をインクリメントしながら、閾値D
1よりも小さいSADが連続する谷の幅をカウントする。
【0049】
また、特徴検出部24Cは、ステップS36で閾値D
1よりも小さいSADが検出され、cntの値がインクリメントされる度に、現在のcntの値、すなわち、谷の幅をチェックする(ステップS37)。そして、特徴検出部24Cは、この谷の幅が所定の長さD
2以上であると判断される場合には、直前のステップS34でインパクトの山51の候補として検出された山を、最終的にインパクトの山51として決定する。続いて、特徴検出部24Cは、このインパクトの山51に対応する1又は複数のフレームの中から、インパクトフレームF
Iを特定する(ステップS38)。具体的には、直前のステップS34で検出された山の中で、SAD(i)の値が最大となるi=Iを特定し、このときのフレームF
Iをインパクトフレームとする。
【0050】
一方、ステップS36,S37において谷の幅が所定の長さD
2よりも短いと判断される場合(カウンタcntの値がD
2に達する前に、閾値D
1以上のSADが検出され、谷の終わりが検出された場合)には、特徴検出部24Cは、処理をステップS34に戻す。すなわち、直前のステップS34でインパクトの山51の候補として検出された山を、最終的にはノイズの山54と判断し、同様のスキャンを続けてゆく。なお、
図6から分かるとおり、本処理では、インパクトの山51の後にノイズの山54がいくつあろうとも、それらを全てノイズの山として検出することができる。
【0051】
<5−2.アドレスフレームの抽出処理>
次に、
図9を参照しつつ、アドレスフレームF
Aの抽出処理について説明する。本処理では、特徴検出部24Cは、ステップS31で算出されたSADの値を流用して、これらのSADの値が時間軸に沿って所定の出現パターンで特徴的に出現する区間を検出する。
【0052】
具体的に説明すると、
図7には現れていないが、アドレスの山53は、詳細に見ると、
図10に示すように、複数の山からなる場合がある。これは、ゴルファーが、アドレスの前に位置決めのためにゴルフクラブ7を左右に揺らしたり、また、アドレスの後に同じくゴルフクラブ7を左右に揺らすワッグル動作を行うためである。しかしながら、真のアドレス時には、ゴルファーは、少しの間静止する。従って、SADのグラフ上のアドレスに対応する部分は、所定の長さ以上の谷531を挟んで前後に山532〜534が(少なくとも谷531の後に山533が)現れるような形状になると予想される。
【0053】
そこで、特徴検出部24Cは、所定の閾値D
3(本実施形態では、閾値D
1と同様にD
3=5000)以上のSADの第1の山と、第1の山の直前に位置する所定の閾値D
3よりも小さいSADの谷と、この谷の直前に位置する所定の閾値D
3以上のSADの第2の山とを検出する。本実施形態では、山の幅については特に問われないが、谷については、所定の長さD
4(動画のFPS=30fpsであれば、例えば、D
4=フレーム5枚分)以上の幅を有するものが検出対象となる。ここでは、このような特徴を有するSADの出現パターンを検出し、第1の山を真のアドレスの山533と決定することで、ノイズの山534を真のアドレスの山533と誤検出してしまうことを防ぐことができる。
【0054】
以上の出現パターンは、SAD(2),SAD(3),・・・SAD(I−N8)(動画のFPS=30fpsであれば、例えば、N8=5)の値を時間軸に沿って逆送りでスキャンしてゆくことにより検出される。なお、i=(I−N8+1)〜nまでの期間についての差分処理を省略するのは、このような期間にアドレスが存在することはないからである。特徴検出部24Cは、スキャンの開始時点を設定すべく、パラメータiにI−N8を代入する(ステップS41)。
【0055】
続いて、特徴検出部24Cは、閾値D
3以上のSADが検出されるまで、時間軸に沿って1つ前のSADの値を順次調べてゆく(ステップS42)。そして、閾値D
3以上のSADが検出されると、特徴検出部24Cは、今度は閾値D
3よりも小さいSADが検出されるまで、時間軸に沿って1つ前のSADの値を順次調べてゆく(ステップS43)。従って、ステップS42,S43では、閾値D
3以上のSADが連続する山が検出される。この山は、真のアドレスの山533の候補となる。なお、特徴検出部24Cは、ステップS42,S43において、SAD(2)まで調べても目的のSADが検出されなかった場合には、最初のフレームF
1をアドレスフレームF
Aとして特定する(ステップS48)。
【0056】
ステップS43で閾値D
3よりも小さいSADが検出されると、すなわち、山の終わりと谷の始まりが検出されると、特徴検出部24Cは、谷の幅を計測するためのカウンタcntに初期値1を設定する(ステップS44)。そして、特徴検出部24Cは、次に閾値D
3以上のSADが検出されるまで、時間軸に沿って1つ前のSADの値を順次調べてゆく(ステップS45)。このとき、特徴検出部24Cは、cntの値をインクリメントしながら、閾値D
3よりも小さいSADが連続する谷の幅をカウントする。
【0057】
そして、ステップS45で閾値D
3以上のSADが検出されると、すなわち、谷の終わりと新たな山の始まりが検出されると、特徴検出部24Cは、現在のcntの値、すなわち、直前の谷の幅をチェックする(ステップS46)。そして、特徴検出部24Cは、この谷の幅が所定の長さD
4以上であると判断される場合には、直前のステップS43で真のアドレスの山533の候補として検出された山を、最終的に真のアドレスの山533として決定する。続いて、特徴検出部24Cは、この真のアドレスの山533に対応する1又は複数のフレームの中から、アドレスフレームF
Aを特定する(ステップS47)。具体的には、直前のステップS43で検出された山に対応するiの値のうち、時間軸に沿って最も前のi=Aを特定し、このときのフレームF
Aをアドレスフレームとする。なお、特徴検出部24Cは、ステップS45においてSAD(2)まで調べても閾値D
3以上のSADが検出されなかった場合にも、処理をステップS47に進める。
【0058】
一方、ステップS46において直前の谷の幅が所定の長さD
4よりも短いと判断される場合には、特徴検出部24Cは、処理をステップS43に戻す。すなわち、直前のステップS43で真のアドレスの山533の候補として検出された山を、最終的にはノイズの山534と判断し、同様のスキャンを続けてゆく。なお、
図9から分かるとおり、本処理では、真のアドレスの山533の後にノイズの山534がいくつあろうとも、それらを全てノイズの山として検出することができる。
【0059】
<6.特徴>
上記実施形態では、動画に含まれるアドレスフレームF
A及びインパクトフレームF
Iを特定すべく、動画に基づいてフレーム間差分値(SAD)が順次導出され、これらの値が時間軸に沿って特徴的な出現パターンで出現する区間が検出される。すなわち、単に特徴的な一点(例えば、フレーム間差分値が最大又は最小となる点等)を見つけるのではなく、特徴的な区間を見つけ、これに基づいてアドレスフレームF
A及びインパクトフレームF
Iが特定される。その結果、ノイズの影響等により誤判定が生じる可能性が低減される。従って、上記実施形態によれば、計算負荷を抑えつつ、アドレスフレームF
A及びインパクトフレームF
Iを精度よく抽出することができる。
【0060】
<7.変形例>
以上、本発明の一実施形態について説明したが、本発明は上記実施形態に限定されるものではなく、その趣旨を逸脱しない限りにおいて、種々の変更が可能である。例えば、以下の変更が可能である。また、以下の変形例の要旨は、適宜組み合わせることができる。
【0061】
<7−1>
上記実施形態では、ゴルフスイングの撮影、及び画像サイズの縮小が携帯電話1側で実行され、像振れ補正、チェックポイントのフレームの抽出、及びゴルフスイングの診断がサーバ2側で実行されるようになっていた。しかしながら、これらの処理を実行する主体は、携帯電話1とサーバ2とに適宜振り分けることができる。例えば、携帯電話1側で撮影から像振れ補正までが実行されるようにしてもよいし、撮影のみを携帯電話1で行った後、縮小前の動画を携帯電話1からサーバ2に送信し、サーバ2側で画像サイズの縮小を行ってもよい。或いは、サーバ2を省略し、携帯電話1において撮影から診断処理までが全て実行されるようにしてもよい。
【0062】
<7−2>
分析システム100のハードウェア構成は、上記したものに限られない。例えば、携帯電話のようなインターネット通信機能を有するカメラ以外のカメラで撮影し、これをパーソナルコンピュータ(以下、PC)に取り込んで、PCからサーバ2に送信するようにしてもよい。また、PCにサーバ2と同様のプログラムをインストールしておき、PCで分析するようにしてもよい。
【0063】
<7−3>
携帯電話1やサーバ2の処理能力が十分に高い場合等には、ステップS4における上下領域の切り取り処理及び/又は圧縮の処理は、適宜、省略可能である。
【0064】
<7−4>
上記実施形態では、フレーム間差分値としてSADを算出したが、フレーム間の差分を適切に評価できる限り、別の指標を用いることができる。例えば、フレーム間差分値として差分二乗値和(SSD)を算出してもよい。或いは、差分画像において画素値の絶対値が所定値以上となる画素数を算出してもよい。
【0065】
<7−5>
上記実施形態では、インパクト検出時において、第1の山、谷及び第2の山を検出するための閾値を全て同じ値D
1としたが、これらの閾値を適宜異なる値としてもよい。アドレス検出時の閾値D
3についても同様である。また、D
1=D
3でなくてもよい。
【0066】
<7−6>
上記実施形態では、インパクト及びアドレス検出時において、SADの出現パターンを検出すべく逆送りでスキャンしたが、スキャンの順番はこれに限られず、例えば、前からスキャンしてもよい。
【0067】
<7−7>
上記実施形態では、アドレス検出時において、所定の長さ以上の谷の後に第2の山が検出されたことを以って、第1の山が真のアドレスの山と判断された。しかしながら、第2の山の検出を省略し、第1の山の後、所定の長さ以上の谷が検出されたことを以って、第1の山を真のアドレスの山と判断してもよい。また、インパクトの検出時において、所定の長さ以上の谷の後に第2の山が検出されたことを以って、第1の山をインパクトの山と判断してもよい。
【0068】
<7−8>
上記実施形態では、真のアドレスの山533に対応するフレーム群のうち最も前のフレームをアドレスフレームF
Aとしたが、真のアドレスの山533の別の箇所から、アドレスフレームF
Aを検出してもよいし、谷531に対応するフレームをアドレスフレームF
Aとしてもよい。また、インパクトの山51のうちSAD(i)が最大とならない箇所で、インパクトフレームF
Iを検出してもよい。
【0069】
<7−9>
上記実施形態のステップS31において、隣接フレーム間ではなく、探索時刻のフレームと所定の基準フレームとの間で差分処理を実行するようにしてもよい。このときの基準フレームは、例えば、案内枠W3内にゴルフクラブ7が写っていないタイミングの画像とすることができる。