! 画像の文字認識 (:ocr_text)
宣言
認識結果, 結果詳細 = 画像:ocr_text([ エンジンオプション, 二値化オプション ])
引数
-
エンジンオプション
省略可能なテーブル型の引数。認識言語と認識エンジンの選択に使用します引数の構造
{
-- engine フィールドを "apple" に設定すると、iOS 13 以降に搭載された Apple の Vision.framework で認識します
-- image.vision_supported_recognition_languages() 関数を使用すると、Vision.framework が対応する OCR モデルの一覧を取得できます
-- engine フィールドを "paddle" に設定すると、Paddle-Lite エンジンで認識します。lang でモデルを指定できます
-- たとえば lang = "ppocr_ch" とすると、モデル /var/mobile/Media/1ferver/models/ppocr_ch を使用します
-- Paddle-Lite エンジンは *.nb 形式の Slim モデルに対応しています
engine = "apple" | "paddle" | "tesseract",
lang = "zh-Hans",
}各 iOS バージョンに搭載された Vision.framework が対応する OCR モデルの一覧
{ -- iOS 13
[1] = "en-US",
}
{ -- iOS 14~15
[1] = "en-US",
[2] = "fr-FR",
[3] = "it-IT",
[4] = "de-DE",
[5] = "es-ES",
[6] = "pt-BR",
[7] = "zh-Hans",
[8] = "zh-Hant",
}
{ -- iOS 16
[ 1] = "en-US",
[ 2] = "fr-FR",
[ 3] = "it-IT",
[ 4] = "de-DE",
[ 5] = "es-ES",
[ 6] = "pt-BR",
[ 7] = "zh-Hans",
[ 8] = "zh-Hant",
[ 9] = "yue-Hans",
[10] = "yue-Hant",
[11] = "ko-KR",
[12] = "ja-JP",
[13] = "ru-RU",
[14] = "uk-UA",
} -
二値化オプション
実数型。二値化のしきい値です。画像の自動二値化を参照してください
テーブル型。カスタム二値化の色差です。画像の手動二値化を参照してください
文字列型。カスタム二値化の色差です。画像の手動二値化を参照してください
戻り値
-
認識結果
文字列型。認識された文字列 -
結果詳細
テーブル型OCR の認識結果の詳細構造
{
{
["y"] = number_value,
["x"] = number_value,
["w"] = number_value,
["h"] = number_value,
["confidence"] = number_value(0.0000 ~ 1.0000),
["text"] = string_value,
},
...
}
説明
画像内の文字を認識します。領域を指定する引数が不要である点を除き、その他は 画面領域の文字認識 (screen.ocr_text) と同じです
ソフトウェアバージョン 1.3.8 以降で使用できます
PaddleLite 簡体字中国語標準版モデル(解凍が必要)
PaddleLite 簡体字中国語フル版モデル(解凍が必要)
PaddleLite 繁体字中国語認識モデル(解凍が必要)
PaddleLite 日本語認識モデル(解凍が必要)
PaddleLite 韓国語認識モデル(解凍が必要)
PaddleLite 英数字認識モデル(解凍が必要)
PaddleOCR モデル一覧から対応するモデルをダウンロードし、det_opt.nb、cls_opt.nb、rec_opt.nbに変換してから、対応するdict.txtと組み合わせて使用することもできます
使用例
-- 1.3.8 以降の使用例
local img = image.load_file(XXT_SCRIPTS_PATH..'/1.png')
txt, info = img:ocr_text("en-US") -- iOS 13 以降では、Apple に搭載された en-US モデルで英数字を認識できます
sys.toast("识别结果:"..txt:atrim())
txt, info = img:ocr_text("zh-Hans") -- iOS 14 以降では、Apple に搭載された zh-Hans モデルで簡体字中国語を認識できます
sys.toast("识别结果:"..txt:atrim())
txt, info = img:ocr_text({
engine = "apple", -- Apple エンジンを使用
lang = "zh-Hans" -- 簡体字中国語認識モデルを使用
}, "9D5D39-0F1F26,D3D3D2-2C2C2D")
sys.toast("识别结果:"..txt:atrim())
txt, info = img:ocr_text({
engine = "paddle", -- PaddleLite OCR エンジンを使用
lang = "ppocr_ch", -- ppocr_ch モデルを使用
})
sys.toast("识别结果:"..txt:atrim())
注:上記のコードでは、この章以外の関数 sys.toast、string.atrim を使用しています
旧バージョンからの使用例(非推奨)
local img = image.load_file(XXT_SCRIPTS_PATH..'/1.png')
-- 使用例 1:
local txt = img:ocr_text() -- デフォルト設定では、tesseract エンジンの英数字モードで文字を認識します
sys.toast("识别结果:"..txt:atrim())
--
-- 使用例 2:
local txt = img:ocr_text("eng", "9D5D39-0F1F26,D3D3D2-2C2C2D") -- 色差による二値化を使用して認識
sys.toast("识别结果:"..txt:atrim())
--
-- 使用例 3:
local txt = img:ocr_text("eng", { {0x9D5D39, 0x0F1F26}, {0xD3D3D2, 0x2C2C2D} }) -- 色差による二値化を使用して認識。上記と同じです
sys.toast("识别结果:"..txt:atrim())
--
-- 使用例 4:
local txt = img:ocr_text({
lang = "chi_sim", -- tesseract エンジンの簡体字中国語ライブラリで認識します(簡体字中国語ライブラリは内蔵されていません)
white_list = "你我他", -- ホワイトリストを "你我他" に設定
})
sys.toast("识别结果:"..txt:atrim())
--
-- 使用例 5:
local txt = img:ocr_text({
lang = "eng",
white_list = "1234567890", -- カスタムホワイトリストを使用して、数字のみを認識するように制限
}, "9D5D39-0F1F26,D3D3D2-2C2C2D") -- 色差による二値化を使用して認識
sys.toast("识别结果:"..txt:atrim())
注:上記のコードでは、この章以外の関数 sys.toast、string.atrim を使用しています