(58)【調査した分野】(Int.Cl.,DB名)
前記映像のボールが前記第1の直線と第2の直線との間を通過しないとき、前記非打撃処理部は、前記第1の直線に最も近接するボールのサイズを前記平均サイズに設定する請求項1に記載の野球ゲームシステム。
前記非打撃処理部は、前記第1の直線に近接するボールのサイズ変化量及び前記最も近接するボールと前記第1の直線との間の距離のうち少なくとも一つに基づいて、前記第1の直線と前記第2の直線との間で前記ボールの平均サイズを推定する請求項5に記載の野球ゲームシステム。
前記非打撃処理部は、前記身長入力部に入力された身長に基づいて、前記上限値、前記下限値、及び前記ストライクゾーンの高さを調節する請求項8に記載の野球ゲームシステム。
前記座標変換部は、前記映像に表示されたボールのサイズを、前記最大の透視角の領域の基準面の座標に基づいて決められたボールのサイズで除して座標変換率を演算する割合演算部を含む請求項11に記載の野球ゲームシステム。
前記座標変換部は、前記座標変換率と前記最大の透視角の領域の基準面のいずれか一辺の長さを乗じた値を、前記撮影部の最大の透視角によるTanの値で除して前記ボールのZ座標を演算する座標演算部をさらに含む請求項12に記載の野球ゲームシステム。
前記軌道演算部は、前記ボールの3次元座標と前記複数の映像の時間差を用いて、一定時間の間、ボールの移動距離を計算し、前記時間差と前記移動した距離を用いて前記ボールの速度を計算する請求項15に記載の野球ゲームシステム。
前記軌道演算部は、前記ボールの3次元座標と前記ボールの速度を用いて、打撃されたボールのファウル、アウト、ヒット、2塁打、3塁打、及びホームランなどの結果値を判定する請求項16に記載の野球ゲームシステム。
前記撮影部からの映像に基づいて、前記ストライクゾーンの両側に位置する打席のいずれかに位置するユーザーの野球のバットのスイング可否を判断するスイング判断部を含み、
前記スイング判断部は、
映像の変化程度に基づいて打者が位置した打席を検出し、検出された打席及び野球のバットの端部の軌道に基づいて、前記野球のバットのスイング可否を判断する請求項1に記載の野球ゲームシステム。
前記スイング判断部からの判断結果及び前記非打撃処理部からの検出結果に基づいて、ボール及びストライクを判定する判定部をさらに含む請求項18に記載の野球ゲームシステム。
【発明を実施するための形態】
【0043】
本発明の利点及び特徴、そしてそれらを達成する方法は,添付する図面と一緒に詳細に後述する実施例を参照すると、明確になるであろう。しかしながら、本発明は、以下に開示する実施例に限定されるものではなく、互いに異なる多様な形態で具現されるものであり、ただ本実施例は、本発明の開示を完全なものとし、本発明が属する技術分野で通常の知識を有する者に発明の範疇を完全に知らせるために提供するものであり、本発明は、請求項の範疇によって定義されるだけである。したがって、いくつかの実施例において、周知の工程ステップ、周知の素子構造及び周知の技術について、本発明が曖昧に解釈されることを避けるために具体的に説明されない。明細書の全体にわたって同一の参照符号は、同一の構成要素を示す。
【0044】
図面において、複数の層及び領域を明確に表現するために厚さを拡大して示した。明細書の全体を通じて類似した部分については同一の符号を付けた。層、膜、領域、板なある部分が他の部分の「上に」あるとするとき、これは他の部分の「真上に」ある場合だけでなく、その中間に他の部分がある場合も含む。逆に、ある部分が他の部分の「真上に」あるとするときは、中間に他の部分がないことを意味する。また、層、膜、領域、板なある部分が他の部分の「下に」あるとするとき、これは他の部分の「真下に」ある場合だけでなく、その中間に他の部分がある場合も含む。逆に、ある部分が他の部分の「真下に」あるとするときは、中間に他の部分がないことを意味する。
【0045】
空間的に相対的な用語である「下(below)」、「下(beneath)」、「下部(lower)」、「上(above)」、「上部(upper)」などは、図面に示されているように、一つの素子または構成要素ともう一つの素子または構成要素との相関関係を容易に記述するために使用することができる。空間的に相対的な用語は、図面に示す方向に加えて使用時または動作時、素子の互いに異なる方向を含む用語として理解されるべきである。例えば、図面に示す素子を逆さまにする場合、他の素子の「下(below)」または「下(beneath)」と記述された素子は、もう一つの素子の「上(above)」に配設することができる。したがって、例示的な用語である「下」は、下と上の方向のいずれも含むことができる。素子は、他の方向にも配向することができ、これにより、空間的に相対的な用語は、配向によって解釈することができる。
【0046】
本明細書では、ある部分が他の部分と連結されているとしたとき、これは直接的に連結されている場合だけではなく、その真ん中に他の素子を間に置いて、電気的に連結されている場合も含む。また、ある部分がある構成要素を含むとしたとき、これは特に反対の記載がない限り、他の構成要素を除外するのではなく、他の構成要素をさらに含むことができることを意味する。
【0047】
本明細書において、第1、第2、第3などの用語は、様々な構成要素を説明するために使用することができるが、これらの構成要素は、前記用語によって限定されるものではない。前記用語は、一つの構成要素を他の構成要素から区別するために使用される。例えば、本発明の権利範囲から逸脱することなく、第1の構成要素が、第2または第3の構成要素などと命名されることがあり、同様に、第2または第3の構成要素も交互に命名することができる。
【0048】
他の定義がなければ、本明細書で使用されるすべての用語(技術及び科学的用語を含む)は、本発明が属する技術分野で通常の知識を有する者に共通して理解することができる意味で使用することができるだろう。また、一般に使用される辞典に定義されている用語は、明らかに特別に定義されていない以上、理想的にまたは過度に解釈されない。
【0049】
本発明の利点及び特徴、そしてそれらを達成する方法は,添付する図面と一緒に詳細に後述する実施例を参照すると、明確になるであろう。しかしながら、本発明は、以下に開示する実施例に限定されるものではなく、互いに異なる多様な形態で具現されるものであり、ただ本実施例は、本発明の開示を完全なものとし、本発明が属する技術分野で通常の知識を有する者に発明の範疇を完全に知らせるために提供するものであり、本発明は、請求項の範疇によって定義されるだけである。したがって、いくつかの実施例において、周知の工程ステップ、周知の素子構造及び周知の技術について、本発明が曖昧に解釈されることを避けるために具体的に説明されない。明細書の全体にわたって同一の参照符号は、同一の構成要素を示す。
【0050】
空間的に相対的な用語である「下(below)」、「下(beneath)」、「下部(lower)」、「上(above)」、「上部(upper)」などは、図面に示されているように、一つの素子または構成要素ともう一つの素子または構成要素との相関関係を容易に記述するために使用することができる。
【0051】
本明細書では、ある部分が他の部分と連結されているとしたとき、これは直接的に連結されている場合だけではなく、その真ん中に他の素子を間に置いて、電気的に連結されている場合も含む。また、ある部分がある構成要素を含むとしたとき、これは特に反対の記載がない限り、他の構成要素を除外するのではなく、他の構成要素をさらに含むことができることを意味する。
【0052】
本明細書において、第1、第2、第3などの用語は、様々な構成要素を説明するために使用することができるが、これらの構成要素は、前記用語によって限定されるものではない。前記用語は、一つの構成要素を他の構成要素から区別するために使用される。例えば、本発明の権利範囲から逸脱することなく、第1の構成要素が、第2または第3の構成要素などと命名されることがあり、同様に、第2または第3の構成要素も交互に命名することができる。
【0053】
他の定義がなければ、本明細書で使用されるすべての用語(技術及び科学的用語を含む)は、本発明が属する技術分野で通常の知識を有する者に共通して理解することができる意味で使用することができるだろう。また、一般に使用される辞典に定義されている用語は、明らかに特別に定義されていない以上、理想的にまたは過度に解釈されない。
【0054】
以下、
図1〜
図30を参照して本発明による野球ゲームシステムを詳細に説明すると、次の通りである。
【0055】
図1は、本発明の一実施例に係る野球ゲームシステムの概略的な斜視図であり、
図2は、
図1の側面図である。
【0056】
本発明に係る野球ゲームシステム100は、
図1及び
図2に示すように、ピッチング部700、撮影部430、プロジェクター555、位置検出部666、第1の打席241、第2の打席242、ホームプレート230、及びスイング判断部644を含む。
【0057】
ピッチング部700は、第1の打席241と第2の打席242との間に位置する判定領域340に向かってボール888を投げる。
【0058】
判定領域340は、ストライクゾーン333を含む。つまり、判定領域340の一部は、ストライクゾーン333である。判定領域340は、例えば、第1の打席241と第2の打席242との間に位置することができる。
【0059】
判定領域340の幅は、第1の打席241と第2の打席242との間の間隔として定義することができ、判定領域340の長さは、ホームプレート230とこれより上に位置する仮想の辺との間の間隔として定義することができる。ここで、仮想の辺は、ストライクゾーン333の上辺よりも高いところに位置する。
【0060】
ピッチング部700は、スクリーン780とピッチングマシン760とを含む。
【0061】
スクリーン780は、判定領域340とピッチングマシン760との間に位置する。スクリーン780は、プロジェクター555から投影された映像を表示する。映像は、スクリーン780の表示面に表示される。
図2に示すように、スクリーン780は、少なくとも一つのホール768を含む。
【0062】
ピッチングマシン760は、スクリーン780の後方に位置する。つまり、ピッチングマシン760は、スクリーン780の表示面の反対側に位置する。ピッチングマシン760は、ボール888を投球する。ピッチングマシン760から投球されたボール800は、スクリーン780のホール768を通過して判定領域340に向かって進行する。
【0063】
撮影部430は、ピッチング部700からのボール888が感知領域805に進入する瞬間に、これを感知して撮影を開始する。例えば、撮影部460は、ボール888が感知領域805に進入した瞬間からボール888を含むすべての動く物体に対する追跡(tracking)を開始する。そのために、撮影部430は、ボール888が感知領域805に進入した瞬間から毎秒数十ないし数百フレームの割合で連続的な撮影を行うことができる。撮影部430は、超高速カメラを含むことができる。
【0064】
撮影部430は、判定領域340の上部に位置する。例えば、撮影部430は、
図2に示すように、判定領域340の真上ではなく、その対角線方向に位置することができる。
【0065】
位置検出部666は、撮影部430から撮影された映像に基づいてボール888の位置を検出する。撮影部430から提供された映像は、複数のフレーム映像を含む。位置検出部666は、フレーム映像を分析して判定領域340でのボール888の座標(XY座標)を検出することができる。このため、位置検出部666は、例えば、撮影部430からの各フレームの映像をこの撮影照度に基づいて2値化(binarization)してブラック−ホワイト画像(black−white image)を生成し、そのブラック− ホワイト画像を上下方向及び左右方向にスキャンして映像における被写体(例えば、ボール)の基本輪郭(例えば、ボールの輪郭)を抽出し、その輪郭線から被写体の中心位置を判別し、その中心位置及び被写体の軌道(例えば、ボールの軌道)に基づいて、被写体の位置(例えば、ボール)を検出することができる。
【0066】
位置検出部666は、非打撃処理部666aと打撃処理部666bを含む。
【0067】
非打撃処理部666aは、撮影部430から撮影された映像に基づいて、非打撃されたボール888の位置を検出し、打撃処理部は、撮影部430から撮影された映像に基づいて打撃されたボール888の位置を検出する。
【0068】
非打撃処理部666aから検出されたボールの座標情報は、判定部(図示せず)に送信される。判定部は、その検出されたボールの座標が判断領域でストライクゾーン333に位置するかを判断する。その判断結果、ボール888がストライクゾーン333の内部またはその境界に位置することが確認されたとき、判定部は、ストライクを宣言する。その反面、判断結果、ボールがストライクゾーン300を外れた判定領域340に位置することが確認されたとき、判定部は、ボールを宣言する。一方、判定部は、後述するスイング判断部677からの判断結果及び非打撃処理部666aからの検出結果に基づいて最終的なボール及びストライクを判定する。
【0069】
図3は、撮影部430から撮影された映像を示す図である。
図3のストライクゾーン300は、前述した
図1のストライクゾーン333の映像であり、
図3の第1の打席221は、前述した
図1の第1の打席241の映像であり、
図3の第2の打席222は、前述した
図1の第2の打席242の映像である。
【0070】
非打撃処理部666aは、撮影部430から撮影された映像に基づいて、ストライクゾーン300を設定する。例えば、ストライクゾーン300は、4つの仮想の直線(L1、L2、L3、L4)によって囲まれた領域として定義することができる。
【0071】
第1の直線L1と第2の直線L2は、対向し、第3の直線L3は、第4の直線L4と対向する。第1の直線L1と第2の直線L2は、平行に配置することができる。
【0072】
第1の直線L1は、ストライクゾーン300の下辺S1を定義し、第2の直線L2は、ストライクゾーン300の上辺S2を定義し、第3の直線L3は、ストライクゾーン300の左辺S3を定義し、第4の直線L4は、ストライクゾーン300の右辺S4を定義する。
【0073】
撮影部430は、ストライクゾーン300の真上ではなく、その対角線方向からそのストライクゾーン300を撮影するところ、このような撮影角度による遠近現象が反映されるようにストライクゾーン300は、台形形状に設定される。例えば、ストライクゾーン300は、
図3に示すように、台形形状を有することができる。ストライクゾーン300の上辺S2は、これの下辺S1より撮影部430に相対的に近く位置するので、上辺S2は、下辺S1よりも長い長さを有する。
【0074】
遠近現象によって映像におけるボールは、撮影部430に近いほど、より大きなサイズを有する。つまり、映像におけるボール(
図4aの800)のサイズは、そのボール800が地面(またはホームプレート230)からどれほど高いところに位置しているかを示してくれる。つまり、映像におけるボール800のサイズからそのボール800の垂直位置が把握されることができる。
【0075】
非打撃処理部666aは、予め設定された基準値を用いて、ボール800のサイズを把握することができる。基準値は、下限値と上限値を含むことができる。
【0076】
ストライクゾーン300の下辺S1を定義する第1の直線L1は、そのストライクゾーン300で最も低いボール800の位置を示し、ストライクゾーン300の上辺S2を定義第2の直線L2は、そのストライクゾーン300で最も高いボール800の位置を示す。
【0077】
ボール800が第1の直線L1上に位置するときのサイズ(以下、下限値)と第2の直線L2上に位置するときのサイズ(以下、上限値)は、予め知られている値に設定することができる。下限値は上限値よりも小さい。下限値と上限値は、外部から入力されることもできる。
【0078】
以下、非打撃処理部666aの動作を詳細に説明すると、次の通りである。
【0079】
図4a〜
図4cは、非打撃処理部666aの動作を説明するための図であり、
図5は、
図4a〜
図4cの非打撃処理部666aの動作手順を示すフローチャートである。一方、
図4aのボール800は、前述した
図1のボール888の映像である。
図4a〜
図4cに、説明の便宜上、第1の打席221及び第2の打席222は、省略された。
【0080】
まず、連続的に撮影された複数の映像におけるボール800が、
図4aに示すような軌道で判定領域340を通過すると仮定する。
【0081】
非打撃処理部666aは、連続的に撮影された複数の映像から第1の直線L1と第2の直線L2との間に位置するボール800を選択し、そのボール800の平均サイズを算出する(501)。一例として、
図4aに示すように、第1の直線L1と第2の直線L2との間に4つのボール(800;斜線で強調される)が位置するところ、4つのボール800がすべて異なるサイズを有する。つまり、ボール800は、第2の直線L2に近いほど、より小さなサイズを有する。非打撃処理部666aは、この4つのボール800のそれぞれの直径を個別に求めた後、その直径に対する平均サイズを算出する。一方、第1の直線L1と第2の直線L2との間のボールは、第1の直線L1または第2の直線L2と交差するボールを含むことができる。
【0082】
以後、
図4bに示すように、非打撃処理部666aは、平均サイズに基づいて判定領域340におけるボール800の垂直位置を検出する(502)。つまり、非打撃処理部666aは、2次元の平面形状を有する判定領域340におけるボールのY座標を検出する。
【0083】
このため、非打撃処理部666aは、例えば、平均サイズと予め設定された基準値を比較することにより、ボール800の垂直位置を検出することができる。基準値は、前述した下限値と上限値を含む。
【0084】
図4bの図番16は、下限値に対応するボールのサイズを意味し、図番17は、上限値に対応するボールのサイズを意味し、図番18は、前述したボールの平均サイズを意味するものであって、それらは、実際の映像に示されることもあり、そうでないこともある。
【0085】
このように非打撃処理部666aは、平均サイズ、上限値及び下限値を比較し、その比較結果に基づいて、第3の直線L3上におけるボール800の垂直位置を示す点の座標を算出することができる。これを具体的に説明すると、次の通りである。
【0086】
例えば、非打撃処理部666aは、下限値の位置と上限値の位置に基づいて、第3の直線L3を複数の区間に等分する。このとき、その区間の間の境界に位置する点のいずれかが前述した下限値の位置に対応され、その境界の点のうち、他の一つは、前述した上限値の位置に対応するように、第3の直線L3が複数の区間に等分されることができる。
【0087】
各点に互いに異なる位置値が付与される。各位置値は、下限値と上限値の比によって決定される。位置値は、Y軸に沿って増加する傾向を有する。
【0088】
非打撃処理部666aは、平均サイズと一致するか、これに最も近いサイズを有する位置値を探して、その位置値が付与された点(P1;以下、第1の点)を選択する。この選択された第1の点P1のY座標が第3の直線L3上におけるボール800の垂直位置を意味する。
【0089】
このような方式により非打撃処理部666aは、第4の直線L4上におけるボールの垂直位置を示す点の座標を算出することができる。これを具体的に説明すると、次の通りである。
【0090】
例えば、非打撃処理部666aは、下限値の位置と上限値の位置に基づいて、第4の直線L4を複数の区間に等分する。このとき、その区間の間の境界に位置する点のいずれかが前述した下限値の位置に対応し、その境界の点のうち、他の一つは、前述した上限値の位置に対応するように、第4の直線L4が複数の区間に等分されることができる。
【0091】
各点に互いに異なる位置値が付与される。各位置値は、下限値と上限値の比によって決定される。位置値は、Y軸に沿って増加する傾向を有する。
【0092】
非打撃処理部666aは、平均サイズと一致するか、これに最も近いサイズを有する位置値を探して、その位置値が付与された点(P2;以下、第2の点)を選択する。この選択された第2の点P2のY座標が第4の直線L4上におけるボール800の垂直位置を意味する。
【0093】
ボール800の高さを示す第1の点P1のY座標値と第2の点P2のY座標値は、同一でありうる。
【0094】
図4bに示された例のように、平均サイズが下限値よりも大きく、上限値よりも小さい場合、第1の点P1は、ストライクゾーン300の左辺S3上に位置し、第2の点P2は、ストライクゾーン300の右辺S4上に位置する。
【0095】
次に、非打撃処理部666aは、第1の点P1と第2の点P2を通過する第5の直線L5を設定する(503)。
【0096】
次に、非打撃処理部666aは、
図4cに示すように、ボール800の軌道に基づいて、第6の直線L6を設定する(504)。
【0097】
以後、非打撃処理部666aは、第6の直線L6と前記第5の直線L5が出会う点(P3;以下、第3の点)の座標に基づいて、判定領域340におけるボール800の水平位置を算出する(505)。第3の点P3の座標は、第6の直線L6の方程式と第5の直線L5の方程式によって計算することができる。第3の点P3のXY座標は、判定領域340におけるボール800の位置である(506)。
【0098】
図4cに示すように、第3の点P3がストライクゾーン300内に位置するとき、判定部は、ボールのバットのスイング可否にかかわらず、これをストライクと判定する(507)。
【0099】
一方、判定部の判定結果に基づいて、プロジェクター555は、規格化されたストライクゾーンにおけるボールの位置を画面に表示することができる。これを
図6を参照して具体的に説明する。
【0100】
図6は、規格化されたストライクゾーンでのボールの位置を示す図である。
【0101】
プロジェクター555は、
図6に示すような映像をスクリーン780に投射することができる。
図6の映像は、ストライクゾーン444、打者618、及びボール803に対する映像を含む。
図6におけるボール803の位置は、前述した第3の点P3のXY座標に対応する。
【0102】
図6に示されたストライクゾーン444は、長方形の形状を有する。
図6のストライクゾーンの下辺(S11)、上辺(S22)、左辺(S33)及び右辺(S44)は、前述した
図3のストライクゾーン300の下辺S1、上辺S2、左辺(S3)、及び右辺S4にそれぞれ対応する。
【0103】
一方、ストライクゾーン444は、互いに交差する水平グリッド線61と垂直グリッド線62を含むことができる。水平グリッド線61と垂直グリッド線61は、ストライクゾーン444を多数の領域に分割する。水平グリッド線61と垂直グリッド線62によってストライクゾーン444におけるボールの大まかな位置が容易に把握されることができる。
【0104】
図7a〜
図7cは、非打撃処理部666aの動作を説明するための他の図である。一方、
図7aにおけるボール800は、前述した
図1のボール888の映像である。
図7a〜
図7cにおいて、説明の便宜上、第1の打席221と第2の打席222は、省略された。
【0105】
まず、連続的に撮影された複数の映像におけるボール800が、
図7aに示すような軌道で判定領域340を通過すると仮定する。
【0106】
非打撃処理部666aは、連続的に撮影された複数の映像から第1の直線L1と第2の直線L2との間に位置するボール800を選択し、そのボール800に対する平均サイズを算出する。一例として、
図7aに示すように、第1の直線L1と第2の直線L2との間に4つのボール(800;斜線で強調される)が位置するところ、4つのボール800がすべて異なるサイズを有する。つまり、ボール800は、第2の直線L2に近いほど、より大きなサイズを有する。非打撃処理部666aは、この4つのボール800のそれぞれの直径を個別に求めた後、その直径に対する平均サイズを算出する。一方、第1の直線L1と第2の直線L2との間のボールは、第1の直線L1または第2の直線L2と交差するボールを含むことができる。
【0107】
以後、
図7bに示すように、非打撃処理部666aは、平均サイズに基づいて判定領域340におけるボール800の垂直位置を検出する。つまり、非打撃処理部666aは、2次元の平面形状を有する判定領域340におけるボールのY座標を検出する。
【0108】
このため、非打撃処理部666aは、例えば、平均サイズと予め設定された基準値を比較することにより、ボール800の垂直位置を検出することができる。基準値は、前述した下限値と上限値を含む。
【0109】
図7bの図番16は、下限値に対応するボールのサイズを意味し、図番17は、上限値に対応するボールのサイズを意味し、図番19は、前述したボールの平均サイズを意味するもので、これらは実際の映像に示されることもあり、そうでないこともある。
【0110】
このように、非打撃処理部666aは、平均サイズ、上限値及び下限値を比較し、その比較結果に基づいて、第3の直線L3上におけるボールの垂直位置を示す点の座標を算出することができる。これを具体的に説明すると、次の通りである。
【0111】
例えば、非打撃処理部666aは、下限値の位置と上限値の位置に基づいて、第3の直線L3を複数の区間に等分する。このとき、その区間の間の境界に位置する点のいずれかが前述した下限値の位置に対応し、その境界点のうち、もう一つは、前述した上限値の位置に対応するように、第3の直線L3が複数の区間に等分されることができる。
【0112】
各点に互いに異なる位置値が付与される。各位置値は、下限値と上限値の比によって決定される。位置値は、Y軸に沿って増加する傾向を有する。
【0113】
非打撃処理部666aは、平均サイズと一致するか、これに最も近いサイズを有する位置値を探して、その位置値が付与された点(P1;以下、第1の点)を選択する。この選択された第1の点P1のY座標が第3の直線L3上におけるボール800の垂直位置を意味する。
【0114】
このような方式で第4の直線L4上におけるボールの垂直位置を示す点の座標を算出することができる。これを具体的に説明すると、次の通りである。
【0115】
例えば、非打撃処理部666aは、下限値の位置と上限値の位置に基づいて、第4の直線L4を複数の区間に等分する。このとき、その区間の間の境界に位置する点のいずれかが前述した下限値の位置に対応し、その境界の点のうち、他の一つは、前述した上限値の位置に対応するように、第4の直線L4が複数の区間に等分されることができる。
【0116】
各点に互いに異なる位置値が付与される。各位置値は、下限値と上限値の比によって決定される。位置値は、Y軸に沿って増加する傾向を有する。
【0117】
非打撃処理部666aは、平均サイズと一致するか、これに最も近いサイズを有する位置値を探して、その位置値が付与された点(P2;以下、第2の点)を選択する。この選択された第2の点P2のY座標が第4の直線L4上におけるボール800の垂直位置を意味する。
【0118】
ボール800の高さを示す第1の点P1のY座標値と第2の点P2のY座標値は、同一でありうる。
【0119】
図7bに示された例のように、平均サイズが上限値よりも大きい場合、第1の点P1は、ストライクゾーン300の上辺S2よりも高いところで第3の直線L3上に位置し、第2の点P2は、ストライクゾーン300の上辺S2よりも高いところで第4の直線L4上に位置する。
【0120】
次に、非打撃処理部666aは、第1の点P1と第2の点P2を通過する第5の直線L5を設定する。
【0121】
次に、非打撃処理部666aは、
図7cに示すように、ボール800の軌道に基づいて、第6の直線L6を設定する。
【0122】
以後、非打撃処理部666aは、第6の直線L6と前記第5の直線L5が出会う点(P3;以下、第3の点)の座標に基づいて、判定領域340におけるボール800の水平位置を算出する(505)。第3の点P3の座標は、第6の直線L6の方程式と第5の直線L5の方程式によって算出されることができる。第3の点P3のXY座標は、判定領域340におけるボール800の位置である。
【0123】
図7cに示すように、第3の点P3がストライクゾーン300の外部に位置し、野球のバットのスイングが行われていない場合、判定部は、これをボールと判定する。一方、
図7cに示すように、第3の点P3がストライクゾーン300の外部に位置し、野球のバットのスイングが行われたとき、判定部は、これをストライクと判定する。
【0124】
図8a〜
図8cは、非打撃処理部666aの動作を説明するためのもう一つの図である。一方、
図8aのボール800は、前述した
図1のボール888の映像である。
図8a〜
図8cに、説明の便宜上、第1の打席221及び第2の打席222は、省略された。
【0125】
まず、連続的に撮影された複数の映像におけるボールが、
図8aに示すような軌道で判定領域340に向かって進行し、打撃によってその進行方向が変更されたと仮定する。このような場合、ボールは、判定領域340を通過しない。つまり、第1の直線L1と第2の直線L2との間にボールが存在しない。
【0126】
非打撃処理部666aは、打撃されたボールに対してもその打撃前のボールの軌道を介して判定領域340におけるそのボールの位置を予測または推定することができる。このため、非打撃処理部666aは、第1の直線L1に最も近いボールのサイズを、前述した平均サイズに設定する。例えば、非打撃処理部666aは、
図8aにおいて斜線で強調されたボール801の直径をその平均サイズに設定することができる。これとは異なり、非打撃処理部666aは、第1の直線L1に最も近いボール801及びこのボール801に近接して位置するいくつかのボール(802、803)の直径をその平均サイズに設定することもできる。例えば、非打撃処理部666aは、
図8aに示された3つのボール801、802、803に対する平均サイズを、前述した平均サイズに設定することができる。
【0127】
一方、より正確なサイズを算出するため、非打撃処理部666aは、第1の直線L1に次第に近接するボール801、802、803のサイズ変化量及び第1の直線L1とこれに最も近いボールとの距離の少なくとも一つに基づいて平均サイズを推定することができる。つまり、非打撃処理部666aは、第1の直線L1に次第に近接するボール801、802、803のサイズ変化量及び第1の直線L1とこれに最も近いボールとの距離の少なくとも一つに基づいて平均サイズを補正することができる。
【0128】
例えば、ボール801、802、803のサイズ変化量が次第に増加する方向であるとき、非打撃処理部666aは、平均サイズを補正するための補正値を増加させることができる。一方、ボール801、802、803のサイズ変化量が次第に減少する方向であるとき、非打撃処理部666aは、平均サイズを補正するための補正値を減少させることができる。
【0129】
また、例えば、第1の直線L1とこの第1の直線L1に最も近いボール801との距離が近いとき、非打撃処理部666aは、平均サイズを補正するための補正値を減少させることができる。一方、第1の直線L1とこの第1の直線L1に最も近いボール801との距離が遠いとき、非打撃処理部666aは、平均サイズを補正するための補正値を増加させることができる。
【0130】
このような補正作業は、省略することもできる。
【0131】
以後、
図8bに示すように、非打撃処理部666aは、平均サイズに基づいて判定領域340におけるボール800の垂直位置を検出する。つまり、非打撃処理部666aは、2次元の平面形状を有する判定領域340におけるボールのY座標を検出する。
【0132】
このため、非打撃処理部666aは、例えば、平均サイズと予め設定された基準値を比較することにより、ボール800の垂直位置を検出することができる。基準値は、前述した下限値と上限値を含む。
【0133】
図8bの図番16は、下限値に対応するボールのサイズを意味し、図番17は、上限値に対応するボールのサイズを意味し、図番20は、前述したボールの平均サイズを意味するもので、これらは、実際の映像に図示されることもあり、そうでないこともある。
【0134】
このように、非打撃処理部666aは、平均サイズ、上限値、及び下限値を比較し、その比較結果に基づいて、第3の直線L3上におけるボールの垂直位置を示す点の座標を算出することができる。これを具体的に説明すると、次の通りである。
【0135】
例えば、非打撃処理部666aは、下限値の位置と上限値の位置に基づいて、第3の直線L3を複数の区間に等分する。このとき、その区間の間の境界に位置する点のいずれかが前述した下限値の位置に対応し、その境界の点のうち、他の一つは、前述した上限値の位置に対応するように、第3の直線L3が複数の区間に等分されることができる。
【0136】
各点に互いに異なる位置値が付与される。各位置値は、下限値と上限値の比によって決定される。位置値は、Y軸に沿って増加する傾向を有する。
【0137】
非打撃処理部666aは、平均サイズと一致するか、これに最も近いサイズを有する位置値を探して、その位置値が付与された点(P1;以下、第1の点)を選択する。この選択された第1の点P1のY座標が第3の直線L3上におけるボール800の垂直位置を意味する。
【0138】
このような方式で非打撃処理部666aは、第4の直線L4上におけるボールの垂直位置を示す点の座標を算出することができる。これを具体的に説明すると、次の通りである。
【0139】
例えば、非打撃処理部666aは、下限値の位置と上限値の位置に基づいて第4の直線L4を複数の区間に等分する。このとき、その区間の間の境界に位置する点のいずれかが前述した下限値の位置に対応し、その境界の点のうち、他の一つは、前述した上限値の位置に対応するように、第4の直線L4が複数の区間に等分されることができる。
【0140】
各点に互いに異なる位置値が付与される。各位置値は、下限値と上限値の比によって決定される。位置値は、Y軸に沿って増加する傾向を有する。
【0141】
非打撃処理部666aは、平均サイズと一致するか、これに最も近いサイズを有する位置値を探して、その位置値が付与された点(P2;以下、第2の点)を選択する。この選択された第2の点P2のY座標が第4の直線L4上におけるボール800の垂直位置を意味する。
【0142】
ボール800の高さを示す第1の点P1のY座標値と第2の点P2のY座標値は同一でありうる。
【0143】
図8bに示された例のように、平均サイズが下限値よりも大きく、上限値よりも小さい場合、第1の点P1は、ストライクゾーン300の左辺S3上に位置し、第2の点P2は、ストライクゾーン300の右辺S4上に位置する。
【0144】
次に、非打撃処理部666aは、第1の点P1と第2の点P2を通過する第5の直線L5を設定する。
【0145】
次に、非打撃処理部666aは、
図8cに示すように、ボール801、802、803の軌道に基づいて、第6の直線L6を設定する。
【0146】
以後、非打撃処理部666aは、第6の直線L6と前記第5の直線L5が出会う点(P3;以下、第3の点)の座標に基づいて、判定領域340におけるボールの水平位置を算出する。第3の点P3の座標は、第6の直線L6の方程式と第5の直線L5の方程式によって計算することができる。第3の点P3のXY座標は、判定領域340におけるボールの位置である(506)。
【0148】
本発明の野球ゲームシステム100は、
図9に示すように、身長入力部987をさらに含むことができる。
【0149】
身長入力部987に打者の身長が入力されるため、そのために、身長入力部987は、表示窓911と入力手段912を含むことができる。
【0150】
入力手段912は、例えば、キーパッドでありうる。入力手段912によって入力された数値は、表示窓911に表示される。
図9には、175.7cmの身長が入力された例が示されている。
【0151】
非打撃処理部666aは、身長入力部987に入力された身長に基づいて上限値と下限値を調整し、この調整された上限値と下限値を持つストライクゾーン300の高さを設定する。例えば、非打撃処理部666aは、内部にルックアップテーブル(lookup table)を含むことができるため、このルックアップテーブルに身長による上限値、下限値、及びストライクゾーン300の高さが予め保存されることができる。非打撃処理部666aは、入力された身長に対応する上限値、下限値、及びストライクゾーン300の高さをルックアップテーブルから探し、その探した数値で上限値、下限値、及びストライクゾーン300の高さを設定する。
【0152】
図10は、人体感知部の動作を説明するための図である。
【0153】
本発明の野球ゲームシステム100は、
図10に示すように、人体感知部111をさらに含むことができる。
【0154】
人体感知部111は、第1の打席221及び第2の打席222のうちの少なくとも一つの打席上に位置することができる。人体感知部111は、第1の打席221及び第2の打席222にレーザーを照射して、ユーザー(633;以下、打者)の存在の有無を判断する。
【0155】
人体感知部111は、第1の打席221及び第2の打席222に位置する打者633の身長を検出する動作をさらに行うことができる。このような場合、人体感知部111は、前述した身長入力部987を代わりにすることもできる。
【0156】
非打撃処理部666aは、人体感知部111から検出された打者633の身長に基づいて下限値、上限値、及びストライクゾーン300の高さを調節する。このとき、非打撃処理部666aは、前述したルックアップテーブルを含むことができる。
【0157】
一方、非打撃処理部666aは、ボール800が第1の直線L1に最も近接したときの時間とボールが第2の直線L2に最も近接したときの時間をさらに検出することができる。非打撃処理部666aは、この時間に基づいてボールの速度を算出することができる。
【0158】
図11は、
図1の他の側面として、撮影部430の最大の透視角を説明するための図である。
図12は、撮影部の最大の透視角に基づいてボールを撮影する場面を示す斜視図である。
図13〜
図15は、座標変換部の動作を示す図である。
【0159】
図11〜
図13を参照すると、撮影部430は、最大の透視角の領域431を撮影して複数の映像を伝送する。
図12において撮影部430の最大の透視角は、2θである。つまり、撮影部430は、野球ゲームシステムが設けられる場所に応じて最大の透視角を自由に設定することができ、設定された最大の透視角に基づいて撮影部430が撮影できる最大の透視角の領域431が決まる。撮影部430は、最大の透視角の領域431内に進入したボール888を撮影することができる。
【0160】
打撃処理部666bは、複数の映像に基づいてボール888の位置を検出する。打撃処理部666bは、座標変換部667と軌道演算部668を含む。
【0161】
座標変換部667は、複数の映像のいずれかの映像から、最大の透視角の領域431の基準面110の座標に基づいて決められたボールのサイズ、映像に表示されたボールのサイズ、映像に表示されたボールのXY座標、及び撮影部430の最大の透視角を用いてボールの3次元座標を演算する。
【0162】
軌道演算部667は、複数の映像を分析して、ボールの最終的な位置を演算する。
【0163】
まず、座標変換部667がボールの3次元座標を演算する過程を具体的に説明する。
【0164】
座標変換部667は、比率演算部667aと座標演算部667bを含む。
【0165】
比率演算部667aは、映像に表示されたボールのサイズを最大の透視角の領域431の基準面110の座標に基づいて決められたボールのサイズで除して座標変換率を演算する。
【0166】
座標演算部667bは、座標変換率と最大の透視角の領域431の基準面110のいずれか一辺の長さを乗じた値を撮影部430の最大の透視角に応じたTanの値で除して ボールのZ座標を演算する。また、座標演算部667bは、座標変換率と映像に表示されたボールのXY座標を乗じて、ボールのXY座標を演算する。
【0167】
図13を参照すると、まず、Z座標の基準点0は、撮影部430と定義する。また、基準点0は、基準面110の中心と重畳する。これとは異なり、ボールの打撃が行われる実際の底面をZ座標の基準点として設定することもできる。最大の透視角の領域431の基準面110は、実際の野球のシステムが適用された空間の底面であってもよい。これとは異なり、基準面110は、他の高さの仮想の面で設定することができる。ボール880の実際の3次元座標のうちZ座標を基準に基準面110と平行に設定された面を撮影面120と定義する。したがって、撮影面120に位置するボール880の3次元座標が、実際に求めようとするボールの3次元座標である。
【0168】
基準面110に位置する場合、ボールのZ座標は、Z1となり、撮影面120に位置する場合、ボールのZ座標は、Z2となる。撮影部430の最大の透視角は、2θである。基準面110は、実際の底面であるため、基準面110の一辺の長さt1を測定することができる。基準面110の一辺の半分に相当する長さt2も測定された一辺の長さt1を介して知ることができる。
【0169】
したがって、Z1は、三角関数の法則に基づいて、下式1のように決まる。
【0170】
[式1]
Z1=基準面の一辺の長さ/2/Tanθ= t2/Tanθ
【0171】
一方、撮影部430に撮影された映像のボール880、890のサイズは、実際に位置する高さに応じて変わる。つまり、撮影部430から遠く離れるほど映像に撮影されたボール880、890のサイズは、小さくなる。例えば、
図14に示された第1の映像11は、
図13の基準面110に位置するボール880を示した映像である。
図15に示された第2の映像21は、撮影面120に位置するボール890を示した映像である。基準面110に位置するボール880が撮影面120に位置するボールよりも撮影部430から離れて位置するので、基準面110に位置するボール880が第1の映像11で第2の映像21のボール890よりもサイズが小さい。
【0172】
したがって、映像に撮影されたボール880、890のサイズに応じて、実際のボール880、890の高さ、すなわち、Z座標を知ることができる。例えば、映像に現れたボールのサイズが、
図14の第1の映像11に現れたボール880のサイズと同じであれば、映像に現れたボールのZ座標は、第1の映像11に現れたボール880のZ座標と同じである。これにより、基準面11の座標に基づいて、第1の映像11に撮影されたボール880のサイズは基準値となり、撮影部430によって撮影されたボール890のサイズを基準値と比較して座標変換率を演算する。座標変換率は、下記の通りである。
【0173】
座標変換率=映像に表示されたボールのサイズ/基準値=映像に表示されたボールのサイズ/基準面の座標に基づいて決められたボールのサイズ
【0174】
例えば、
図14と
図15を参考すれば、座標変換率は、第2の映像のボールのサイズ/第1の映像のボールのサイズとなる。一方、ボールのサイズは、例えば、ボールの直径により判断することができる。
【0175】
したがって、基準面11の座標に基づいて決められたボール880のサイズと映像に表示されボール890のサイズを用いて、座標変換率を演算した後、式1に座標変換率を乗ずると、実際のボールのZ座標を下記のように式2を用いて求めることができる。
【0176】
[式2]
Z2=Z1*座標変換率
=t2/Tanθ*座標変換率
=t2/Tanθ*映像に表示されたボールのサイズ/基準面の座標に基づいて決められたボールのサイズ
=t2/Tanθ*映像に表示されたボールの直径/基準面の座標に基づいて決められたボールの直径
【0177】
このように、比率演算部667aは、最大の透視角の領域431の基準面110の座標に基づいて決められたボールのサイズと映像に表示されたボールのサイズを用いて、座標変換率を演算する。そして、座標演算部667bは、座標変換率、撮影部430の最大の透視角、基準面110に位置する場合のボールのZ座標Z1、及び最大の透視角領域の基準面110の一辺の長さt1を用いて、ボールのZ座標Z2を演算する。一方、基準点0を底面に設定する場合、ボールのZ座標は、Z3を活用することもできる。
【0178】
一方、ボール890のXY座標は、第2の映像21を用いて演算することができる。まず、第2の映像21の中央を基準点0に設定する。設定された基準点0に基づいて、第2の映像21に表示されたボール890のXY座標をボール890の中心を基準に判断する。例えば、
図15に示すように、ボール890のXY座標は(5、−5)となる。
【0179】
このように、第2の映像21を介して求められたボール890のXY座標に、前述した座標変換率を下記のように適用すると、ボール890の実際のXY座標を求めることができる。第2の映像21に表示されたボール890のXY座標は、実際との差があり、先に求めた座標変換率を適用する場合、第2の映像21に表示されたボール890の実際のXY座標を求めることができる。
【0180】
実際のX座標=X*座標変換率=X*映像に表示されたボールのサイズ/基準面の座標に基づいて決められたボールのサイズ
【0181】
実際のY座標=Y*座標変換率=Y*映像に表示されたボールのサイズ/基準面の座標に基づいて決められたボールのサイズ
【0182】
このように、本発明は、撮影部430の最大の透視角と座標変換率を用いて、ボール890の3次元座標をより正確に演算することができる。本発明の3次元座標を求めるアルゴリズムは、下記の通りである。
【0183】
[アルゴリズム]
float Tan= Mathf.Tan(arcOption.fieldOfview/2*Mathf.PI/180);
float w=imgWidth/2;
float h=imgHeight/2;
foreach(ARC_TARGET at in list)
{
float r=arcOption.balldiameter/at.size;
if(r>1)r=1; if(r<0)r=0;
float d=r/tan
float x= (at.pos.x-w)*r;
float y= (at.pos.y-h)*r;
float z=-d*w;
at.pos3D= new Vector3(x、y、x);
}
【0184】
以下、
図16〜
図19を参照して、軌道演算部の動作を説明する。
【0185】
図16〜
図19は、軌道演算部の動作を示す図である。
【0186】
図16〜
図19を参照すると、軌道演算部(668、
図12に図示)は、複数の映像を分析して、ボールの最終的な位置を演算する。例えば、
図16は、時間差をおいて撮影された計9つの映像を重畳させた図である。中心0に近いボール891が先に撮影されたボール891であり、中心0と遠く離れたボール892が時間的に後に撮影されたボール892である。先に撮影されたボール891よりも後に撮影されたボール892の直径がより大きい場合に軌道演算部668は、ボールが上昇していると判断する。一方、
図17に示すように、先に撮影されたボール893よりも後に撮影されたボール894の直径がより小さい場合に軌道演算部668は、ボールが下降していると判断する。
【0187】
また、
図18及び
図19を参照すると、軌道演算部668は、ボールの3次元座標と複数の映像の時間差を用いて、一定時間の間、ボールが移動した距離を計算し、時間差と移動した距離を用いて、ボールの速度を計算する。
【0188】
つまり、前述したように、座標変換部667は、それぞれのボール895、896、897、898の3次元座標を演算する。軌道演算部668は、演算されたボール895、896、897、898の3次元座標と各映像の時間差を用いて、一定時間の間、ボールが移動した距離dを計算する。そして、軌道演算部668は、各映像の時間差と移動した距離dを用いて、ボールの速度を計算する。また、軌道演算部668は、ボールの3次元座標とボールの速度を用いて、打撃されたボールのファウル、アウト、ヒット、2塁打、3塁打、及びホームランなどの結果値を判定する。
【0189】
図20は、打撃処理部666bの動作手順を示すフローチャートである。
【0190】
図20を参照すると、本発明の野球ゲームシステムは、映像に表示されたボールのサイズを検出する(511)。領域の基準面の座標に基づいて決められたボールのサイズと映像に表示されたボールのサイズを比較して、座標変換率を算出する(512)。座標変換率と撮影部の最大の透視角を用いて、ボールのZ座標を検出する(514)。ボールの移動距離と速度を算出する(515)。ボールの最終位置と結果を判定する(516)。
【0191】
図21は、
図1の他の側面図であって、スイング判断部644の動作を説明するための図である。
【0192】
スイング判断部677は、撮影部430で撮影された映像に基づいて野球のバット777のスイング可否を判断する。撮影部430から提供された映像は、複数のフレーム映像を含む。スイング判断部677は、この複数のフレーム映像に基づいて映像の特定の部分での変化の程度を検出することができる。例えば、スイング判断部677は、映像の変化程度に基づいて打者608が位置した打席を検出し、その検出された打席と野球のバット777の端部の軌道に基づいて野球のバット777のスイング可否を判断する。このため、スイング判断部677は、例えば、撮影部430からの各フレームの映像をこれの撮影照度に基づいて2値化(binarization)してブラック−ホワイト画像(Black−White image)を生成し、 、そのブラック−ホワイト画像を上下方向と左右方向にスキャンして映像における被写体(例えば、打者608と野球のバット777)の基本的な輪郭線(例えば、打者608と野球のバット777の各輪郭線)を抽出し、その輪郭線から被写体の中心位置を判別し、その中心位置に基づいて、被写体の位置を検出することができる。また、スイング判断部677は、その被写体の中心位置の変化から被写体の動きや移動方向を検出することができ、これにより映像の変化程度を算出することができる。
【0193】
図22は、撮影部430で撮影された映像を示す図である。
図22のストライクゾーン300は、前述した
図1のストライクゾーン333の映像であり、
図22の第1の打席221は、前述した
図1の第1の打席241の映像であり、
図22の第2の打席222は、前述した
図1の第2の打席242の映像であり、
図22のボール800は、
図1のボール888の映像であり、
図22の打者618は、
図1の打者608の映像であり、
図22の野球のバット321は、
図1の野球のバット777の映像である
【0194】
スイング判断部677は、撮影部430で撮影された映像に基づいてストライクゾーン300を設定する。例えば、ストライクゾーン300は、4つの辺(S1、S2、S3、S4)によって囲まれた領域として定義することができる。
【0195】
下辺S1は、上辺S2と対向し、左辺S3は、右辺S4と対向する。下辺S1と上辺S2は、平行に配置することができる。
【0196】
撮影部430は、ストライクゾーン300の真上ではなく、その対角線方向でそのストライクゾーンを撮影するため、このような撮影角度に応じた遠近現象が反映されるようにストライクゾーン300は、台形形状に設定される。例えば、ストライクゾーン300は、
図22に示すような台形形状であってもよい。ストライクゾーン300の上辺S2は、その下辺S1より撮影部430に相対的に近く位置するので、上辺S2は、下辺S1よりも長い長さを有する。
【0197】
遠近現象によって映像でのボール800は、撮影部430に近いほど、より大きなサイズを有する。つまり、映像でのボール800のサイズは、そのボール800が地面(またはホームプレート230)からどれだけ高いところに位置しているのかを示す。つまり、映像でのボール800のサイズから、そのボール800の垂直位置が把握されることができる。
【0198】
打者618によって野球のバット321がスイングすると、
図3に示すような曲線(例えば、弧(arch))形状を有するスイング軌道が形成される。
【0199】
図22のような映像に基づいてスイング判断部677の動作を詳細に説明すると、次の通りである。
【0200】
図23a及び
図23bは、
図22の映像によるスイング判断部の動作を説明するための図であり、
図24は、
図23a及び
図23bでのスイング判断部の動作順序を示すフローチャートである。
図23a及び
図23bでは、説明の便宜上、第1の打席221及び第2の打席222は、省略された。
【0201】
まず、スイング判断部677は、
図22の映像に基づいて打者618が位置した打席を検出する(521)。
図22のような映像で、第2の打席222に比べて、第1の打席221での映像の変化程度が大きい。これは、第1の打席221に打者618が位置するからである。このような映像の変化程度の差に基づいて、スイング判断部677は、打者618がどの打席に位置しているかを判断する。つまり、第1の打席221での映像変化程度が第2の打席222での映像変化程度に比べて、より大きいので、スイング判断部677は、第1の打席221に打者618が位置したものと判断する。これにより、スイング判断部677によって第1の打席221が検出される。
【0202】
次に、
図23aに示すように、スイング判断部677は、時間的に隣接する2つの端部(322;野球のバットの端部)を連結する第1のベクトルV1を設定する(522)。例えば、
図23aに示すように、14個の端部322が一つのスイング軌道をなしている場合、隣接する2つの端部322を結ぶ13個の第1のベクトルV1が設定される。
【0203】
第1のベクトルV1の長さは、隣接する端部322との間の距離に比例する。第1のベクトルV1の方向は、相対的に先に撮影された端部322から、その以後に撮影された端部322に向かう。例えば、
図23aに示すように、時間順序上、n−1番目に撮影された端部(以下、n−1番目の端部)とn番目に撮影された端部(以下、n番目の端部)が存在するとき、このn−1番目の端部とn番目の端部を結ぶ第1のベクトルV1は、n−1番目の端部からn番目の端部に向かう矢印を有する。
【0204】
次に、
図23bに示すように、スイング判断部677は、第1のベクトルV1と垂直に、この第1のベクトルV1の中心点から延長された第2のベクトルV2を設定する(523)。このとき、スイング判断部677は、スイング軌道をなす曲線状に基づいて、第2のベクトルV2の延長方向を設定することができる。例えば、スイング判断部677は、最初の端部と最後の端部を結ぶ線分を設定し、その線分と交差する方向に第2のベクトルV2を延長させることができる。さらに他の例として、スイング判断部677は、曲線の凸面から凹面方向に第2のベクトルV2を延長させることもできる。
【0205】
次に、スイング判断部677は、第2のベクトルV2のうち検出された打席221を向けたり、またはその検出された打席221を通過する第2のベクトルV2の数が第1の基準範囲に位置するのかを判断する。
【0206】
以後、スイング判断部677は、第2のベクトルV2の平均の長さが第2の基準範囲に位置するかを判断する。第2のベクトルV2の長さは、野球のバットの端部322の速度に関連したもので、その長さが長いほど端部322の速度が速いことを意味する。
【0207】
スイング判断部677は、このような2つの判断に基づいて野球のバット777のスイング可否を判断する(524)。例えば、第2のベクトルV2のうち検出された打席221を向けたり、またはその検出された打席221を通過する第2のベクトルV2の数が第1の基準範囲に位置し、また、第2のベクトルV2の平均の長さが第2の基準範囲に位置するとき、スイング判断部677は、野球のバット321がスイングされたものと判断する。
【0208】
もし、第2のベクトルV2のうち検出された打席221を向けたり、またはその検出された打席221を通過する第2のベクトルV2の数が第1の基準範囲を外れたり、または第2のベクトルV2の平均の長さが第2の基準範囲を外れた場合、スイング判断部677は、そのような軌道をなす端部322をノイズ(noise)と判断する。つまり、このような場合、スイング判断部677は、野球のバット321がスイングされないものと判断する。
【0209】
このようにスイング判断部677は、端部322の軌道と速度に基づいて、野球のバット777のスイング可否を判断する。
【0210】
一方、スイング判断部677は、チェックスイング(check swing)を選別するため、第1のベクトルV1の長さをさらに判断することができる。例えば、スイング判断部677は、第1のベクトルV1の長さの合計が第3の基準範囲に位置するかをさらに判断することができる。このような場合、第2のベクトルV2のうち検出された打席221を向けたり、またはその検出された打席221を通過する第2のベクトルV2の数が第1の基準範囲に位置し、第2のベクトルV2の平均の長さが第2の基準範囲に位置し、また、第1のベクトルV1の長さの合計が第3の基準範囲に位置するとき、スイング判断部677は、野球のバット321がスイングされたものと判断する。
【0211】
図22、
図23a及び
図23bにおいて第1及び第2のベクトルV1、V2は、前述した第1〜第3の基準範囲に適合する特性を有するため、このような場合、スイング判断部677は、野球のバット321がスイングされたものと判断する。
【0212】
図25は、チェックスイング時の野球のバットの軌道を示す図である。
【0213】
図25に示すように、野球のバット321が正常にスイングされないとき、スイング判断部677は、これをチェックスイングと判断する。つまり、スイング判断部677は、これをスイングと判断しない。
【0214】
図25の第1のベクトルV1の長さの合計は、第3の基準範囲を外れる。例えば、第1のベクトルV1の長さの合計が予め設定されたしきい値よりも小さいとき、スイング判断部677は、これをチェックスイングと判断することができる。
【0215】
図26は、
図1の野球ゲームシステムに使用される野球のバットの斜視図であり、
図27は、
図1のI−I’に沿って切った断面図である。
【0216】
ノイズによる影響を最小化するため、
図26及び
図27に示すように、野球のバット777は、標識パターン788をさらに含むことができる。
【0217】
標識パターン788は、
図26に示すように、野球のバット777の端部に位置することができる。
【0218】
図27に示すように、標識パターン788は、その野球のバット777の端部を囲む形状を有することができる。
【0219】
前述したブラック−ホワイト映像生成時、野球のバット777の端部が明確に表示されるように、標識パターン788は、明るい色を持つことができる。例えば、表示パターン788は、野球のバット777よりも明るい色を持つことができる。
【0220】
図28は、非打撃処理部に適用されたアルゴリズムを示す図であり、
図29は、打撃処理部に適用されたアルゴリズムを示す図であり、また、
図30はスイング判断部に適用されたアルゴリズムを示す図である。
【0221】
非打撃処理部は、
図28のアルゴリズムを介して判定領域でのボールの座標を検出することができ、打撃処理部は、
図29または前述したアルゴリズム(3次元座標を求めるためのアルゴリズム)を介して打撃されたボールの座標を検出することができ、また、スイング判断部は、
図30のアルゴリズムを介してスイング可否を判断することができる。
【0222】
以上で説明した本発明は、前述した実施例及び添付図面に限定されるものではなく、本発明の技術的思想を逸脱しない範囲内で様々な置換、変形及び変更が可能であることが、本発明が属する技術分野で通常の知識を有する者にとって明らかであろう。