Upgrade to Pro — share decks privately, control downloads, hide ads and more …

数独ではじめるアルゴリズム 第三章 OCR

数独ではじめるアルゴリズム 第三章 OCR

Ryosuke Uchiyama

December 09, 2020
Tweet

More Decks by Ryosuke Uchiyama

Other Decks in Programming

Transcript

  1. グラフ構造と深さ優先探索(DFS) 0 1 2 3 4 11 5 8 6

    7 9 10 12 13 14 前 回 の あ ら す じ
  2. 入れられる数字の選択肢が少ないマスから埋めていく 3 6 5 4 8 7 9 4 5

    1 9 7 3 5 6 8 9 6 5 4 4 6 5 5 6 5 3 5 3 4 5 6 5 3 4 4 4 6 5 5 5 4 4 5 5 5 4 4 5 5 5 4 7 3 3 4 3 4 4 5 6 4 4 5 6 5 4 4 6 4 5 7 7 4 6 7 7 5 6 6 8 問題 入れられる数字の残数 ここから処理するよりも… この辺から処理した方が速い! 前 回 の あ ら す じ
  3. 一意に決まるマスはあらかじめ埋めておく 3 6 5 4 8 7 9 4 5

    1 9 7 3 5 6 8 9 問題 5 8 3 6 5 4 8 7 5 9 4 6 5 9 1 5 9 7 3 5 6 8 5 9 5 前処理後の問題 前 回 の あ ら す じ
  4. Text = "3", BoundingBox = [ (115, 16), (133, 17),

    (132, 39), (114, 38)] どのマスにどの数字が 入るんだ……? 数独のマスも検出する必要があった!
  5. どんなフレームワークが使えるか 案1 Azure Cognitive Servicesの既存モデルを活用 案2 Custom Visionに独自モデルをデプロイ 案3 画像解析ライブラリで交点検出

    「数独のマスを検出するAPI」があるわけないので却下。 学習(データ採取)が面倒くさすぎるので却下。 PythonとOpenCVで似たようなことをやったことがあるな? 1)Harrisのコーナー検出 → 精度イマイチ 2)Shi-Tomasiのコーナー検出 → 精度イマイチ 3)Canny → いけそう! 採 用 採 用