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

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

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.

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

Avatar for Ryosuke Uchiyama

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 → いけそう! 採 用 採 用