情報処理学会 インタラクション 2020
IPSJ Interaction 2020

2B-28
2020/3/9

麻雀牌検出器構築のための視覚情報処理を考慮した
学習データ生成について
鈴木 涼介†1,a)

大囿 忠親†1,b)

新谷 虎松†1,c)

概要：物体検出器の構築における課題の 1 つに，大規模データセットの構築が挙げられる．解決方法の 1
つに，CG を用いたシミュレーションに基づくデータ生成がある．しかし，現実のデータをシミュレーションすることは容易でない．検出器が十分な精度を得るために，生成データを現実のデータに適切に近似する必要がある．そこで本研究では，人間の視覚情報処理に基づき現実のデータを CG で再現可能なデータに変換する．具体的には，輪郭検出処理を適用する．物体検出器の応用領域として，麻雀牌検出タスクに取り組む．本稿では変換した生成データを学習して麻雀牌検出器を構築する手法について述べる．

1. はじめに決する手法の一つとして，ラベル付きの人工的な画像データ（合成データ）を生成することが挙げられるが，課題も拡張現実感技術のような現実空間におけるインタラク残されている．ラベル付けされた画像データを生成する事

ティブなシステムのための情報処理において，物体検出器で，画像データの収集およびラベル付け作業を自動化するが有効である．物体検出器とは，画像中の物体の位置と種ことが可能になり，また低頻度の事象に対する画像データ類を検出するシステムである．機械学習器による物体検出も容易に取得可能になるという利点がある．しかし，画像器の構築には，応用領域に適した大量の学習データを必要

データの生成には，様々なパラメータの設定が必要となる．とするという問題がある．本問題を解決するために，コン正確なシミュレーションは難しく，実環境を撮影したデーピュータグラフィクス（CG）による学習データ生成手法

タ（実データ）と酷似したデータを生成することは容易でが知られている．しかし，CG の質が物体検出器の精度にない．実環境を完全に再現するような合成データが得られ反映され，かつ CG による現実空間の完全な模倣の困難さないため，結果として合成データから構築した物体検出器が課題である．本研究では，本課題を克服するための手法は，実データを適切に処理できない．

を開発中である [1]．具体的には，物体検出対象の画像を，

本研究では，実データと合成データの差異を減少させる

CG による再現が容易な，何らかの理想的な状態に変換す手法として，合成データと実データの両方に輪郭検出処理る処理を導入することを試みており，この理想的な状態おを適用する方法を検討する．機械学習器による物体検出器よびそのための画像処理を探求している．そのために，人にはニューラルネットワークの利用を考える．機械学習の間の視覚情報処理を考慮する．本稿では，輪郭検出処理の一分野であるニューラルネットワークは，人間の脳内を模有効性について報告する．本手法により，CG のみで構築倣し表現したものである．そのため，人間の視覚情報処理した物体検出器の精度向上が期待できる．に基づきデータを変換することで，検出器に都合の良い物体検出器の構築のための学習データは，画像中におけデータが得られると考えられる．応用領域として，実環境る物体の位置と，種類（物体名などのクラス）がラベル付の麻雀牌検出をタスクとして取り挙げる．本稿では，撮影けされた画像から構成される．大規模な画像データセットした麻雀牌の画像に対して輪郭検出処理を行うことで，CGを保有している場合，クラウドソーシングを利用した大人による再現が容易なデータに変換し，合成データを学習し数によるラベル付け作業が可能であるが，金銭的コストとた検出器を適用する．

ラベルの信頼性の保証が課題となる．このような課題を解†1a)b)c)

現在，名古屋工業大学
Presently with Nagoya Institute of Technology
suzuri@toralab.org
ozono@toralab.org
tora@toralab.org© 2020 Information Processing Society of Japan

本稿の以降の構成を示す．2. では，麻雀牌検出タスクについて説明し，3. でタスクを解決するために必要な合成データの生成及びデータの抽象化手法について具体的に説明する．4. では評価実験を示し考察する．最後に 5. で本稿をまとめる．

603

情報処理学会 インタラクション 2020
IPSJ Interaction 2020

2. 麻雀牌検出
本稿では，実環境の麻雀牌検出をタスクとして取り挙げ

2B-28
2020/3/9

ラメータを D とし，保有するパラメータを次に定義する．

• tilei = ⟨Stile , Ptile , Dtile ⟩• table = ⟨Stable , Ptable , Dtable ⟩る．先行研究として，麻雀における得点計算を支援するた• lighti = ⟨ Plight , Dlight , energy = 200W ⟩め，麻雀牌の認識を行うシステムを開発している [2]．並• camera = ⟨Pcam , Dcam , f ocal length = 30.83mm⟩

んだ麻雀牌を切り抜く矩形検出器と，切り抜いた画像を分

麻 雀 牌 は 全 部 で 34 種 類（ 萬 子 ，筒 子 ，索 子 9 種 類 ず類する分類器をカスケード接続することで軽量な麻雀牌

つ ，字 牌 7 種 類 ）あ り ，そ れ ぞ れ 4 つ ず つ 作 成 す る ．

認識を可能にした．しかし，矩形検出精度及び分類精度がStile = H26mm × W 20mm × D16mm である．直方体場合により低下することが欠点として挙げられる．特に矩を面取りし，表面にそれぞれの種類に応じたテクスチャ形検出器が環境に頑健でない．矩形検出器は，検出時の特を貼り付ける．雀卓は，Stable = H0.65m × W 0.65m の平徴量として麻雀牌の輪郭を使用している．輪郭の中でも特面で，表面にテクスチャを貼り付ける．貼り付けるテクスに麻雀牌の境目の輪郭は撮影時の角度や環境光によってチャは，所有する麻雀セットをカメラで撮影したものであ見た目が変わるため，検出が不安定であった．そこで本稿る．準備負担が軽微であることに加え，麻雀牌の表面が学では，表面に描かれた文字や図形も特徴量として用いる．

習データと認識対象で同一ソースとなるため，検出結果にそれらの特徴量は環境に左右されにくく，環境に頑健な検有利に働くと考えられる．光源は上方 2m の位置に 1 つ，出器を構築することができると期待できる．加えて，後述その光源を中心として 1 辺 4m の正方形を形作るように等するフィルタ処理を行うことで，強固な特徴量のみを検出間隔で 8 つの光源が並ぶ．カメラの焦点距離はテクスチャに用いる．検出器として，機械学習を用いた検出器であるなどの実データを撮影したカメラと同様の焦点距離としてSingle Shot Multibox Detector（SSD）[3] を用いる．機械いる．

学習には，多様な状況を網羅した大量の学習データが必要

データを生成する際，オブジェクトの位置や方向が重要とされる．既存のデータセットが存在せず，またデータのとなる．先に定義した麻雀牌とカメラの可変パラメータに収集やラベル付けのコストがかかる．簡易にデータセット関して，経験的に値を設定する．一例として，カメラを雀を構築するため，データの生成を行う．データ生成の手法

卓の下に配置することができるが，そのデータには何もとして，CG を用いてデータセットを生成する．CG を用写っているものが無いため除外する必要がある．得点計算

いて様々な環境をシミュレーションすることにより，環境などのために手牌付近を撮影することが想定されるため，に頑健な検出器を構築する．また，このシステムはオフラ位置や向きを制限することができる．麻雀牌はレンダリン

イン環境下におけるモバイル端末での実装を目的としていグされる度に再配置されるため，様々な状態の画像を生成る．そのため，複雑性が低く，処理が軽量な検出器が必要することができる．プレイヤが綺麗に麻雀牌を並べるとはとなる．画像入力を大きくするに従い検出器は複雑性を増限らないため，位置や向きにノイズを加える．

し計算量が増加するため，小さな画像で検出できることが設定したパラメータを元に，ラベル情報を生成する．

望ましい．小さな画像において，麻雀牌の識別は困難なタ

Blender でレンダリングする際に内部で行なっている，物スクである．麻雀牌の萬子は表面に描かれた 2 文字のう体の表示・非表示の判定が取得できない．レンダリング範

ち，1 文字が異なるだけであり似通っている．また，字牌囲内の麻雀牌の表面が表示・非表示か判定する必要があ

は画数が多く，遠くから撮影した場合には文字が潰れてしる．麻雀牌の表面の中心座標と，外側向きの法線ベクトル

まう．他の種類の牌にも見た目が似通っているものや，潰を取得する．カメラから表面の中心へのベクトルと，法れて見えないものがある．このような特徴を持っている麻線ベクトルの交差する角度を θ とする．この時，面が見雀牌が隣接して密集するため，麻雀牌の検出は困難なタスえるのは π2 < θ < 23 π である．厳密には θ が π2 付近ではクであることが予想される．

表面の情報を識別することは難しいため， 59 π < θ < 139 π

3. 合成データを用いた検出器構築
3.1 CG によるデータ生成とする．2 つのベクトルの内積から計算し，それぞれの麻雀牌の表面の表示・非表示判定を得る．レンダリング範囲内かつ表示判定の麻雀牌の表面座標を，クラス名と共にはじめに，本研究における CG を用いた合成データの生xml 形式でデータ化する．データ構造は大規模画像デー成手法について述べる．レンダリングエンジンに Blender，タセット PASCAL VOC と同様とする．ラベル情報の生レンダラーに EeVee を用いる．Blender はスクリプトによ成を再現可能にするため，擬似コードを Algorithm 1 に示る操作が可能であるため画像データ及びラベルデータ生成

す．initialize() は前述したオブジェクトを生成・固定パを自動化できる．生成するオブジェクトは麻雀牌 (tilei )136

ラメータをセットし，オブジェクト群を返す関数である．

個，雀卓 (table)，光源 (lighti )9 個，カメラ (camera) であarrange tiles and camera(random) は乱数（random）をる．大きさのパラメータを S ，位置パラメータを P ，方向パ受け取り，その値を元に雀卓上に山・手牌・鳴き牌，捨て牌，© 2020 Information Processing Society of Japan604

情報処理学会 インタラクション 2020
IPSJ Interaction 2020

2B-28
2020/3/9

カメラを配置し，配置した麻雀牌のリストを返す関数であAlgorithm 1 Generate dataset by Blenderる．obtain render pos(tiles) は配置された麻雀牌のリスト

1: objects = initialize()2: number of render = 1000, i ← 0
3: while i < number of render do
4:tiles = arrange tiles and camera(random)
5:
rendered tiles = obtain render pos(tiles)
6:
annottion xml = create annotation(rendered tiles)
7:
image = render(objects)8:
save(annotation xml, image)
9:i←i+1
10: end whiletiles を受け取り，レンダリング範囲に入っている麻雀牌のリストを返す関数である．create annotation() はレンダリング時に表示判定がある麻雀牌のリスト rendering tilesを取り，xml データを返す関数である．render(objects) はオブジェクト群の情報をもとに，レンダリングする関数である．最後に，作成した xml とレンダリングした画像を保存する．この操作を決められた回数 (number of render)だけ繰り返す．今回は number of render を 1000，後述する実験では 1000 から 5000 まで変化させている．レンダリングする画像の解像度を 300px×300px とする．1 枚あたりのレンダリングに 3 秒程度を要する．
カメラのパラメータによって，レンダリング範囲に雀卓の外が映る場合がある．本研究では，デフォルト設定のまま，灰色の背景を描画するようにしている．背景の再現は様々なパターンが考えられ，シミュレーションすることが困難である．先行研究において，背景に実環境とは関係のない単色のテクスチャを学習データに使った場合，検出するバウンディングボックスが背景を含まないよう少し小さくなることが分かっている [4]．雀卓の表面や，その他の背景のシミュレーションは検出精度に悪い影響を与えないと

図 1 CG 画像と現実の画像の比較考えられる．

視認しやすいと感じる値に設定している．合成データ，実3.2 視覚情報処理を考慮した画像変換
本稿では合成データと実データの差異を減少させるフィルタ処理を画像に適応する．合成データと実データの双方に前処理として多種のフィルタを適用し，変換したデータを用いて検出器を学習させ，検出する．フィルタは，視覚情報処理を考慮して選択する．視覚情報は低次である輪郭データ，それらに各フィルタを適用した画像を図 1 に示す．
それぞれの合成データを SSD に学習させ，麻雀牌検出器を構築する．

4. 評価実験
4.1 実験設定や色などの情報から，高次である意味情報を含んだ物体の合成データで学習した検出器の精度を測り，実用性を評情報などに分けることができる．ニューラルネットワーク

価する．また，学習データを 1000 から 5000 枚まで 1000

でも同様に，入力層に近い部分は低次，出力層に近い部分枚ごとに評価し，検出器構築にかかるコストを評価する．

は高次の役割を担うように設計されている．低次の部分の学習用のデータを Blender で生成し，データに対して各種処理である輪郭の認識，また低次と高次の間では低次で選フィルタを適用した．学習データとテストデータを 8：2択された視覚情報の特徴量を元に，実環境をイラストのよの割合で分割した．50epoch，重み減衰は 0.9 で学習した．

うに認識しているのではないかと仮定する．特徴量の選択

重みは ImageNet で事前学習されたものを用いた．学習時，を明示的に行なうことで，どのような処理が精度に影響す

20epoch 程度で損失は減少しなくなったため，過学習されるのかを調査する．ていると考えられる．

フ ィ ル タ と し て ウ ェ ー ブ レ ッ ト 分 解 及 び eXtended

ここで，予備実験としてカメラと被写体の距離に関して

Diﬀerence-of-Gaussians（xDoG）[5] の 2 種類の輪郭検出調査した．図 2 はデータに xDoG を適用した検出結果の一手法を用いる．ウェーブレット分解は画素を周波数ごとに例である．検出した矩形に信頼度の値が記述されている．

分解する．高周波数を取り出すことで，有用な特徴量と考左の図が成功例，右の図が失敗例である．左の図と右の図えられる輪郭のみを抽出できる．輪郭検出は人間の視覚処

では対象物とカメラの距離が異なる．被写体の中心から，理における低次の役割である．xDoG はガウシアンフィル

左の図は 29cm，右の図は 34cm である．麻雀牌の大きさタの差分から輪郭を抽出し，更に画像をインクイラスト化

によって結果が異なり，特に 30cm 程度より離れると大きする．

く検出率が低下することが分かる．実環境下では，手牌やハイパーパラメータは麻雀牌やその表面の文字や図形を© 2020 Information Processing Society of Japan

鳴き牌などの得点計算などに必要である重要な牌は近くで605

情報処理学会 インタラクション 2020
IPSJ Interaction 2020

2B-28
2020/3/9

撮影することが容易いため，問題は発生しない．しかし，被写体の近くで撮影するようにユーザに注意を促す必要がある．実験では，左図と同様の 29cm の距離，つまりプレイヤが得点計算や捨牌を選ぶことを目的に撮影する場面を模倣してテストデータの撮影を行なった．1 つの画像に 14個の麻雀牌が映っている．ラベル付けに麻雀牌 1 つあたり5 秒程度の時間を要し，麻雀牌が 14 個映っている場合 70秒かかる．テストデータと大量に生成するのは困難である
ため，今回は 50 枚とした．麻雀牌の個数は計 700 である．

図 2 検出の成功例と失敗例

評価指標に F 値を用いる．F 値は検出器が検出する矩形領域から計算する．麻雀牌検出において，同じクラスの麻雀牌が隣接し，検出した矩形領域が両方に重なる場合がある．
この時，最近傍の物体を検出したとみなす．
検出器が検出する矩形領域の信頼度に対して域値を設けた．矩形領域の域値に関して，SSD がデフォルトで採用している 0.6 を採用した．域値の値に対して精度と再現率はトレードオフの関係であり，域値を高くするほど精度が上昇し再現率が低下する．また，SSD では検出する矩形の数を指定し，その数になるまで検出した矩形を統合する．矩形の数を想定する麻雀牌の数 14 個よりも充分に大きい 50とすることで，精度を厳密に計測した．

4.2 実験結果及び考察
図 3 データ数による F 値の変化

実験結果を図 3 に示す．横軸が検出器が学習したデータの個数，縦軸がテストデータに対する F 値である．ウェー

データの変換手法については，人間の視覚情報処理に基づブレット分解及び xDoG により，元画像よりも F 値が向上

き，輪郭検出フィルタを適用した．具体的には，ウェーブした．また，ウェーブレット分解と xDoG の間に差は見らレット分解及び xDoG を適用した．検出器には SSD を利れなかった．xDoG のインクイラスト化は結果に寄与せず，用し，変換した合成データを学習させた．実験結果から，またどちらのフィルタも有する輪郭検出の処理が F 値を向これらの輪郭検出が精度の向上に有効であることが分かっ上させたと考えられる．データ数に関して，数と精度は比た．計算量は検出にかかる演算に比べれば非常に少ないた

例しなかった．1000 枚で過学習もしくは精度が飽和してめ，輪郭検出フィルタを積極的に用いるべきである．

いる状態であるため，検出器構築には 1000 枚で充分である．一方，精度が向上しないのは，個々の麻雀牌の解像度

謝 辞 本 研 究 の 一 部 は JSPS 科 研 費 JP16K00420,19K12097, 19K12266 の助成を受けたものです.

が低いことが原因であると考えられる．そこで，実データを検出器の入力サイズにリサイズするのではなく，入力サイズに分割すればよい．モデルの複雑性は変わらないが，参考文献[1]

元の画像に対する計算量は増加するため，タスクに応じて実用的な分割サイズを調査する必要がある．また，本稿では実データで学習した検出器を評価していない．どれほど[2]の実データを用意すれば今回の実験と同程度の精度を得られるのかを調査することで，本手法の有用性を正確に示すことができる．これらを今後の課題とする．

5. おわりに[3][4]

本稿では，CG によって多様な合成データを生成し，麻雀牌検出のための検出器の学習データとして利用した．合成データと実データの間には差異があるため，実データをCG で再現可能なデータに変換する手法について述べた．

© 2020 Information Processing Society of Japan[5]

鈴木涼介, 大囿忠親, 新谷虎松. “抽象化された学習デー
タを利用した麻雀牌検出器構築手法について”. 信学技報,vol.119, No.317, pp.7-12, 2019.
R. Suzuki, T. Ozono, T. Shintani, “An Oﬄine Mahjong
Support System Based on Augmented Reality with
Context-aware Image Recognition”. ESKM2019, IEEE,pp.127-132, 2019.
W. Liu, D. Anguelov, D. Erhan, C. Szegedy, S. Reed, C.
Fu, and A C. Berg. “SSD: Single Shot MultiBox Detector”. ECCV, pp.21-37, 2016.
鈴木涼介, 大囿忠親, 新谷虎松, “AR 環境における記号理解のための学習データ生成手法の検討”. 信学技報, Vol.119,No.139, AI2019-6, pp.83-88, 2019.
H. WinnemoLler, J. E. Kyprianidis, and S. C. Olsen.
“Xdog: an extended diﬀerence-of-gaussians compendium
including advanced image stylization”. Comput. Graphics, vol.36, no.6, pp.740–753, 2012.

606