てもとツール
技術解説

ぼかしとモザイクの仕組みと復元耐性|文字が読まれる条件

ぼかしは周りとの重み付き平均、モザイクは区画を1色にまとめる加工です。どちらも元の画素を混ぜるだけなので、弱いと文字1個ぶんの濃淡が残り、候補との照合で読まれます。縞模様の計算で、どの強さで何が消えるかを数字で確かめます。

公開読了目安 約6分

ぼかしとモザイクの仕組みと復元耐性|文字が読まれる条件のアイキャッチ画像

この記事の要点

  • ぼかしは、近くの画素ほど重く数える重み付き平均
  • モザイクは、区画の中の画素を1色にまとめる加工
  • 細い線は弱いぼかしでも消えるが、文字1個ぶんの濃淡は残りやすい
  • 濃淡が残れば、候補の文字に同じ加工をかけて照合できる
  • 文字や番号は、照合の手がかりが残らない黒塗りで隠す
目次

ぼかしは、近くの画素ほど重く数えて平均をとる加工です。 モザイクは、決まった大きさの区画の画素を 1 色にまとめる加工です。

どちらも元の画素を「混ぜる」だけで、別の絵に置き換えるわけではありません。 そのため加工が弱いと、文字 1 個ぶんの濃淡が残り、候補の文字と照合して読まれることがあります。

モザイクをかけた名前や番号を SNS に載せる人にとって、これは他人事ではありません。 この記事では、2 つの加工が画素に何をしているかを式と数字で確かめ、どの強さで何が消えるのかを整理します。

ぼかしは「近いほど重い」平均

ぼかしは、1 つの画素の色を、周りの画素との平均で置き換えます。 ただし、全部を同じ重さで数えるのではありません。

ガウスぼかしでは、離れた画素ほど軽く数えます。 重みは、距離を d として exp(−d² / 2σ²) の形で減っていきます。

σ(シグマ)は「どのくらい遠くまで混ぜるか」を決める長さです。 ブラウザの blur() に渡す値も、この σ をピクセルで表したものです。

同じ重さで平均する「箱ぼかし」を 3 回くり返すと、ガウスぼかしにかなり近い形になります。 顔・ナンバーぼかしツールは、ブラウザの blur() が効かない環境で、この 3 回くり返しに切り替えています。

モザイクは「区画ごとに 1 色」

モザイクは、画像を正方形の区画に分け、区画ごとに 1 色で塗ります。 一般的な説明では、その 1 色は区画の中の平均です。

区画の一辺が 29px なら、29 × 29 = 841 個の画素が 1 色になります。 841 個の値から 1 つの値を作るので、元の 841 個を一意に決め直す方法はありません。

このサイトのツールは、画像を区画の数まで縮めてから、補間せずに元の大きさへ戻す方法でモザイクを作ります。 区画の色は、ブラウザが縮めるときの計算で決まります。

区画の数は、選んだ範囲の幅と高さを区画の一辺で割って丸めた数です。 そのため実際の区画は、範囲が割り切れるように少し伸び縮みします。 たとえば区画の一辺 29px で幅 100px の範囲を選ぶと、横は 3 区画に分かれ、1 区画の幅は約 33.3px になります。

この記事の図を作った環境(Chromium)では、粗いモザイクの区画が平均の灰色にならず、黒い区画が点々と残りました。 区画の中の一部の画素から色が決まっているためで、ブラウザによって見た目が変わります。

どこまで消えるかを縞模様で考える

文字の形は、細い線の並びと、文字 1 個ぶんの濃淡が重なってできています。 これを、白(255)と黒(0)のあいだをなめらかに行き来する縞に置き換えて考えます。

縞の周期を p ピクセルとすると、ガウスぼかしのあとの振れ幅は、元の exp(−2π²σ² / p²) 倍になります。 元の振れ幅は 127.5 段階なので、これに掛けた値が、ぼかしたあとに残る濃淡です。

下の表は、細い線の間隔に近い周期 8px の縞と、文字 1 個ぶんに近い周期 45px の縞について、残る振れ幅を計算したものです。 数の単位は段階です。 σ の 9・19・33 は、あとで出てくるツールの強さの値です。

σ周期 8px周期 45px
2px37123
4px0.92109
9px1.8×10⁻⁹58
19px5.6×10⁻⁴⁷3.8
33px1.7×10⁻¹⁴⁴0.0031

画像の色は、ふつう 0〜255 の整数で保存されます。 1 段階に満たない振れ幅は、整数に丸めた時点でほとんど残りません。

周期 8px の縞は、σ が 4px で 1 段階を割り、9px では計算上も取り出せない大きさになります。 細い線は、弱いぼかしでも消えるということです。

一方、周期 45px の縞は、σ が 9px でも 58 段階残ります。 線が消えても、文字 1 個ぶんの濃淡は残るのが、弱いぼかしの限界です。

残った濃淡は「照合」で読まれる

ぼかした文字から元の文字を直接計算で取り出すのは、丸めがあるかぎり難しい作業です。 ところが、読む側は元に戻す必要がありません。

候補の文字を同じ字体・同じ大きさで並べ、同じ加工をかけて、加工後どうしを比べればよいからです。 加工後の濃淡がいちばん近い候補が、元の文字の有力な候補になります。

加工と丸めは、違う入力を同じ出力にまとめることがあります。 近さの差がわずかな候補が並べば、答えは 1 つに決まらず、候補を絞り込むところまでにとどまります。

照合が成り立つのは、次の 3 つがそろうときです。

  • 候補が少ない: 数字は 1 文字あたり 10 通り。名簿のように相手の候補が決まっている場合も同じ
  • 字体と配置が分かる: スクリーンショットの文字は、同じ字体・同じ大きさでまっすぐ並ぶ
  • 加工が再現できる: ぼかしの σ やモザイクの区画の位置を、見た目から推測できる

スクリーンショットの名前や電話番号は、3 つの条件がそろいやすい題材です。 スクショで隠す場所と塗り方はスクショの名前やメールを隠す範囲と黒塗りで送る前の落とし穴にまとめました。

顔写真は、候補を同じ条件で作り直すのが難しく、照合の前提がそろいにくい題材です。 ただし、顔なら安全とも言えません。 モザイクやぼかしをかけた顔や手書きの数字を、ニューラルネットワークで見分けた研究が 2016 年に出ています。

ツールの強さを数字で見る

このサイトのツールは、ぼかしの σ とモザイクの区画を、画像の短い辺に対する割合で決めています。 短い辺が 1,179px の画像(縦長のスクリーンショットなど)なら、次の大きさになります。

  • ぼかし: 弱 9px・中 19px・強 33px(σ)
  • モザイク: 細かい 15px・標準 29px・粗い 59px(区画の一辺の目安)

モザイクの値は設定の目安で、実際の区画は前に書いたとおり選んだ範囲に合わせて少し伸び縮みします。

表と見比べると、弱いぼかし(σ 9px)では文字 1 個ぶんの濃淡が 58 段階残ります。 強いぼかし(σ 33px)なら、周期 45px の縞の振れ幅は 0.0031 段階まで縮みます。

ただし、文字が大きければ、同じ σ でも残る濃淡は増えます。 強さの名前ではなく、隠したい文字の大きさとの比で効き方が決まると考えてください。

黒塗りが照合に強い理由

黒塗りは、範囲の中の画素をすべて同じ色で置き換えます。 元の画素は 1 つも混ざらないので、範囲の中には照合に使える濃淡がありません。

残る手がかりは、塗った範囲の位置と長さだけです。 長さから文字数を読まれないように、塗る幅をそろえておくと安心です。

3 つの見た目の違いと使い分けは、ぼかし・モザイク・黒塗りの違いで扱っています。 「復元された」と言われる事例の多くが加工の外側の問題であることは、モザイクやぼかしは復元される?安全に消す手順で整理しました。

まとめ

ぼかしもモザイクも、元の画素を混ぜて見えにくくする加工です。 細い線は早く消えますが、文字 1 個ぶんの濃淡は弱い加工では残り、候補との照合で読まれる余地があります。

写真の顔のように見た目を残したい場面では、隠したい部分の大きさに対して十分に強くかけます。 文字や番号のように候補の少ない情報は、照合の手がかりを残さない黒塗りを選んでください。

参考・出典

本記事は上記の公的機関・公式情報源を参考にしています。最新の情報は各リンク先をご確認ください。

あわせて読みたい

同じテーマ・関連ツールの記事です。