ソロモンOCRとは?|バーコードリーダーで文字を読み取る?

この記事の目次
ソロモンOCRとは?
バーコードリーダーでOCR読み取りを可能にするプラグイン・ソフト?
ソロモンOCRはHoneywell製バーコードリーダーで文字の読み取りを可能にするプラグイン・ソフトです。バーコードリーダーにインストールして使います。
*バーコードエンジン搭載のハンディーターミナルやPDA(業務用スマートフォン)にもインストール可能
2011年に初代ソロモンOCRがリリースされて以降、国内外でソロモンOCRを搭載したバーコードリーダーが使用されており、2020年2月現在1万9000を越える機器でご利用いただいております。

さまざまな現場で使用可能
ソロモンOCRは業界を問わず、さまざまな現場で使用可能です。倉庫では出荷前の段ボールに印字された賞味期限やLOT番号、出荷指示書についた管理番号の読み取り、工場では製造製品のシリアル番号やバーコード印字のないカンバンの作業番号の読み取り、空港ではチェックインカウンターや免税店でパスポートの読み取り、薬局などの医療現場では医薬品の使用期限の読み取りに、オフィス業務では帳票番号の読み取りや最近ではマイナンバーカードの読み取りに採用されています。
ソロモンOCRの由来は?
ソロモンOCRの命名の由来は古代イスラエルを治めていたソロモンが大天使ミカエルから受け取ったとされる指輪、通称ソロモンの指輪(King Solomon’s Ring)から取っています。さまざまな効力があったとされるソロモンの指輪ですが、その一つに【身につけることで動物の言葉が分かるようになり会話ができる】といった話が古典に出てきます。

ソロモンOCRは一度印刷されてしまったことでパソコンのデータとして使えなくなってしまった文字をパソコンが使えるデータとして復活させる=パソコンと会話するという想いをもとに命名しました。

開発者のつぶやき:他にも候補があり熟考したうえでソロモンOCRを候補としてあげましたが、周囲の反応はあっさりとしており「何でもいいよ」の回答に拍子抜けしました。
ソロモンOCR開発の経緯
開発当初はカスタマイズのみだった?
ソロモンOCRの前身となるそれまでのOCRプラグイン・ソフトは、案件ベースで開発依頼を受けて専用にカスタマイズしたものでした。一番初めの開発案件は【プロッターにペンを装着し、基盤に書いた文字の読み取りを行いたい】というもので、7セグ文字に近い特殊フォントの読み取りアルゴリズムの開発でした。そのため現在のソロモンOCRのように多様なフォントの読み取りには対応せず、専用フォント以外は読み取ることができませんでした。

苦難の連続?バーコードリーダーならではの大きな制約
開発当初はPCスペック・レベルでの開発を前提としたOCRに関する研究論文などを参考にした読み取りアルゴリズムでしたが、正しいプログラムであるにも関わらず読み取り時間には数秒かかり実用的と呼べるOCRリーダーからは程遠いものでした。

その最大の理由がバーコードリーダーならではの大きな制約でした。1つ目がバーコードリーダーのもつメモリ容量が極端に小さいということ、2つ目がバーコードリーダーから取得できる画像の画素数がOCR解析を行うにはとても十分とは言えないこと。現在では他社メーカーが参入できない大きな障壁ともなっている2つの制約ですが、当時は開発難航が予想されるOCRプラグインに注力するか、すでに開発済であったソロモンDPM(ダイレクト・パーツ・マーキング向け読み取りプラグイン・ソフト)の改良に注力すべきか、悩む日々が続きました。

開発者のつぶやき:教科書通りのOCRアルゴリズムでは、バーコードリーダーの小さなメモリ容量にはとても収まらず、プログラムサイズの大幅な削減が必要となりました。様々な工夫を凝らした結果、どうにかスキャナーに搭載できるサイズのプログラムにできたものの、今度はアルゴリズムの計算量が多すぎて読み取りに秒単位の時間がかかるなど、まるで実用にならないレスポンスとなりました。そもそも、ソロモンOCRをインストールして使用するXenon1900の本来の使用目的はバーコードや2次元コードの読み取りで、搭載されたCPUやメモリー容量はそれらを読み取るために最低限必要なものでした。バーコードや2次元コードの読み取りと比較して圧倒的に計算量の多いOCRにとっては十分なハードウェアリソースとは言い難いのが実情でした。
ソロモンOCRのリリース|最初に採用されたkNN法
開発当初の苦難を乗り越え、Honeywell製バーコードリーダーXenon1900向けの汎用OCRプラグイン・ソフト【ソロモンOCR】が市場にリリースされたのは2011年の8月でした。初期のソロモンOCRで採用された文字識別のアルゴリズムとしてkNN(k-Nearest Neighbor Algorithm)法をベースにしたものでした。日本で一般的なMS明朝体・MSゴシック体とパスポートや免許証に使われるOCR-Bフォントを同時に読み取ることができるものでした。

ソロモンOCRの転機|万能タイプのSVM法
初代ソロモンOCRに採用されたkNN法は、印刷の条件よって文字に【太り】や【細り】が生じると読み取り精度が急激に低下するといったデメリット(kNN法の特徴)がありました。またOCR-B、MSゴシック、MS明朝の3つのフォントのみを読み取り対象としたものだったため、製造メーカーなどの印字フォントを選択できるユーザーには良かったものの、フォントの指定のできないユーザーの要望に答えるためにはより多くのフォントに対応する必要がありました。そこで2015年6月にリリースされたのがソロモンOCR・バージョン2、SVM(Support Vector Machine)法を採用した新アルゴリズムのソロモンOCRでした。リリースから5年が経つソロモンOCR・SVMは現在でも開発が進められすでに70以上の改良バージョンがリリースされています。

ソロモンOCRの今後
新アルゴリズム|特殊フォントからLOGO読み取りまで可能に
2次元バーコードリーダーで世界的なシェアを持つHoneywell Xenonシリーズの最新機、Xenon1950のハードウェアリソースを最大限に活かした【ソロモンOCR User Font Teaching】をリリースいたしました。高度な形状認識が可能となり、今まで読み取りが出来なかった特殊フォントやロゴなどの読み取りに対応いたしました。セミカスタマイズの位置づけでソロモンOCRをご利用いただけます。
