JIS 規格「OCR-K」を味わおう (JIS X 9003)

最終更新日

規格を嗜むインダストリアルな大人のための記事.

これが仕様書

実は馴染み深い “カタカナ OCR フォント”

「OCR-K なんて知らないよ」と思ってるあなた!きっと知ってますよ!ほら,ときどき銀行から,こんな感じのカタカナが印字された葉書が届いたりしませんか?角ばってて妙に記号っぽいカタカナ.これが実は JIS (Japanese Industrial Standards: 日本産業規格) に規格が定められてる「OCR-K」というフォントなんです!やっぱり見たことあるでしょ!

[出典] “オフィス ノー・ホールズ・バード”公式ブログ : 平成19年分国税還付金振込通知書&個人事業移転

規格の正式名称は JIS X 9003.このサイトで規格の仕様書の本文を見れるんだけど,本文しか見れなくて肝心の画像が見れないんだよね… 一応 JISC (Japanese Industrial Standards Committee) のサイトで全文見れるんだけど, (1) 要登録,かつ (2) ダウンロード不可 (閲覧のみ) という制約がある.なんでこんなに不自由なんだ!

規格の仕様書なんか著作権で保護してどうすんのさ…🤦

工業規格として字形を定義

「OCR フォント」というのは,ソフトウェアによる OCR (Optical Character Recognition: 光学文字認識) がしやすいように設計されたフォント.人間にとっての読みやすさよりも,機械にとっての読みやすさが優先されてるから少し特殊な字形になっていて,それが魅力にもなっている.

OCR-A のタイプフェイス

おそらく最初に OCR フォントを工業規格として定義したのは1968年の ANSI (American National Standards Institute: 米国国家規格協会) で,それは OCR-A というフォントにもなってる.OCR-A はのちの1976年に ISO (International Organization for Standardization: 国際標準化機構) によっても標準の工業規格として採用された (ISO 1073-1).

日本語の文字はアルファベットに比べて図形的に複雑だから,コンピュータに文字認識させるのは相対的に難しいかもしれないね.しかし難しいからと言って,日本語文字の文字認識の実現を諦めるわけにも行きませんわな.そこでアルファベットに少し遅れて1980年に工業規格として定義されたのが,カタカナの OCR フォント「OCR-K」というわけです!

OCR-K を味わおう! – (1)

規格に準拠して描いた (書いた) タ

OCR-K では,基準点の座標で字形が定義されてる.下表はカタカナ「タ」の基準点 (単位は [mm]).ちなみに座標原点は字枠の左下で,X 軸は右が正,Y 軸は上が正ですよ (字枠については後述).

基準点XYR
1(-0.49)(2.15)0.90
2(1.38)(2.15)0.16
3(-0.48)(1.96)2.02
4(0.00)(-0.22)1.72
110.001.40
120.402.31
211.382.31
221.542.15
231.541.96
240.000.00
310.681.36
321.500.62
OCR-K | U+30BF

基準点は2種類あって,「心線の円弧の曲率中心」または「心線の端点」.名前が数字1桁の基準点は「心線の円弧の曲率中心」で,「心線の端点」と違って半径 R のフィールドを持ってるね.あと X と Y も,この場所に心線が存在するわけではないことを示すためか,括弧書きで値が記載されてる.

名前が数字2桁の基準点は「心線の端点」.2桁の数字は整然としていて,1桁目は画の番号,2桁目は画の中の基準点の番号.例えば「タ」なら,2画目は4個の基準点で構成されていて,21 → 22 → 23 → 24 と基準点を辿って2画目が完成するようになってる (詳しく言えば 12 → 21 という線も要るけどね).

OCR-K を味わおう! – (2)

どの文字にも共通する前提となる仕様もきちんと定義されてる.例えば,字枠は幅 1.54 mm / 高さ 2.40 mm で,線の太さは大文字 0.35 mm / 小文字 0.31 mm (小文字とは ァィゥェォャュョッ のこと).線の端点に,直径が線の太さと等しい円を置く (= 画の端点を角丸とする,という意味).…みたいな感じ.よく出来てますねえ!

OCR-B と OCR-K の混植

規格では OCR-A や OCR-B (OCR-A より読みやすい) との混植も定義されてる.上の画像は実際に OCR-B と混植してみたもの.OCR-A との混植では OCR-A の数字のみが,OCR-B との混植では OCR-B の数字と大文字アルファベットと一部の記号 (厳密に言うと,JIS X 9001 で定義する OCR-B のサブセット2) のみが,OCR-K との混植を許容されてる.

厳密に言うと,上の画像は OCR-K を定義する規格 JIS X 9003 に準拠していない.OCR-B のサブセット2には ()@: も含まれておらず,OCR-K との混植について規格が無いからね (/ はサブセット2に含まれてます).まあこれは個人ブログのお遊びですから,そのへんはご愛嬌!

OCR-K を味わおう! – (3)

OCR-K は規格ががっちり定義されてるから,誰が実装しても同じになる.しかし面白いことに,OCR-K は複数の企業 (軽く調べて3社) から発売されていて,しかもそれぞれ値段が違う.さらに驚いたことに,OCR-K を (おそらく) 個人で実装して,CC0 のライセンスで配布している奇特な人までいた!

販売フォント名税込価格 [円]参考
カルチ不明 (商品名: OCR-A/B/K パック)16,500
富士通OCR-B+ FJ 10cpi17,930参考
リコーHGOCR-BK19,800参考
Force4uOCR-BKxStd0
OCR-K を購入できる

無償で配布してる人もいるのに,2万円弱もの高額な OCR-K を買う人っているのかな…?規格の仕様書は誰でも見ることができるから,実際のところ OCR-K のフォントは誰でも作ることができるし,規格品なので誰が作っても基本的には同じだ.もうこうなればオープンソースの精神で,仕様もろともフォントを GitHub にホストさせたいとか思っちゃう.

僕はオープンソースの文化が大好き.オープンソースフォントというものも実在しているし,OCR-K もオープンソースフォントとして誰もが気軽に無償で使えるものになればいいのにね.実際,できるよね?手始めに僕も Force4u 氏の OCR-BKxStd を自前ホストして CC0 でミラー配布してみよう — [ダウンロード]

規格準拠なフォント. 工業製品らしい洗練された興趣!

フォントって通常なら著作権保護の対象となるもので,つまり「思想又は感情を創作的に表現したものであって、文芸、学術、美術又は音楽の範囲に属するもの」.ところが OCR-K を含む OCR フォントというのは,標準化団体によって標準化された規格があって,ただそれに準拠するように実装されたフォントなんだよね.ここには思想も感情も創作も表現も無い,すっかり無機質な “工業製品” の趣がある!これって堪らなく工業的で都会的で文明的で,めちゃめちゃクールだと思いません?!!!

どこでネジを買ってもしっかり締まるし,どんな貨物船と港もコンテナを扱えるし,適当に買った UBS 機器も挿せばすぐに使える.こういう利便性は全然「当たり前」ではない.工業規格がしっかりと定められていて,それにみんなが準拠して初めて実現できる,掛け替えのないことだ.

(…世界標準たる SI 単位系 (ISO 80000-1) や ISO 8601 を蹂躙し,人々の利便を脅かし,生産性を毀損し,文明の叡智に楯突かんとする “ヤードポンド” や “和暦” がいかに愚かしいか,規格の意義を深く理解する皆さんには言うまでもありませんね!…)

[出典] Chart: Only Three Countries in the World (Officially) Still Use the Imperial System | Statista

「規格で何でもかんでも統一しては,文化の多様性を守れない」のような反論もあるでしょう (Rebuild ep. 309 が記憶に新しい).でも工業規格がなければ,人類の文明の進歩はもっともっと遅かったに違いない.コンピュータ技術なんかは無数の規格の上に成り立っているものの代表格で,もし標準規格を欠けばあらゆるデータは 0 と 1 の退屈な羅列に成り下がる.データが画像や動画や文章として「0 と 1 の単なる羅列」以上の価値を持ちうるのは,それぞれのデータの符号化方式が規格として整備されているからに他ならない.

…と,規格の素晴らしさを語る話に傾倒しすぎた.言いたいことはそうではなくて,「OCR-K が規格製品でかっこいい!」ということ!ぜひみなさんも仕様書を眺めて,その文明的な興趣を堪能してね!下の画像はオマケです…!

プログラミングっぽいもの.美しいね

1件のコメント

コメントを残す

%d人のブロガーが「いいね」をつけました。