画像のハッシュ値を計算して類似する画像をあぼ〜んする
背景や動機
ここ数ヶ月、掲示板にグロテスクな画像のURLが繰り返し書き込まれています。
スレッドの話題と無関係で望まぬ暴力・残虐なイメージは精神衛生上良くないため対策を考えています。
現状のJDimでは画像URLを右クリックして非表示にすることはできますが、一度表示しないとグロであるか判別できません。
さらに、同じ画像でもURLを変えて書き込まれているためURLのあぼ〜んでは対応が困難となっています。
同じ画像を繰り返し貼り付ける特徴があるため、画像の特徴をハッシュ値として計算してNG登録し、
その後、登録したハッシュ値と比較を行い判定基準を超えた類似画像をあぼ〜んする機能を提案します。
解決方法
以下の機能を基本システムとして実装します。
-
画像を読み込んで表示するときにハッシュ値を計算する。
計算したハッシュ値とNG登録したハッシュ値を比較して判定基準を超えた場合はあぼ〜んする。
ハッシュ値の計算と比較は全体設定でon/offを切り替えることができる。
-
画像のプロパティに計算したハッシュ値を表示する。
また、ハッシュ値をNG 画像ハッシュに追加する仕組みを実装する。
-
メニューバーの設定(C)>あぼ〜ん(A)>全体あぼ〜ん設定(対象: スレビュー)(V)にNG 画像ハッシュのタブを追加する。
この設定は掲示板全体に適用される。
タブには以下のUIを配置する。
- ハッシュ値の計算と比較を有効・無効にするためのオプション
- あぼ〜んにする判定基準(しきい値)の初期設定値とリセットボタン
- 登録したNG 画像ハッシュに対する操作
- NG設定の削除
- 判定基準(しきい値)の変更
- 設定をクリップボードにコピー
- 登録したNG 画像ハッシュの一覧
一覧にはハッシュ値、判定基準(しきい値)、最後にマッチした日時、およびハッシュ値を計算した画像のURLを表示します。
- 判定基準、日時、URLで一覧項目の並び替え(ソート)を可能にします。
- 一覧の項目は選択可能にして上記の設定削除や設定値変更の操作を行います。
ハッシュ値の比較は高速ですが設定が増え過ぎると一覧の項目が長くなり確認しにくくなるため
最後にマッチした日時を記録して使われていないハッシュ値が分かるようにすることで設定削除の参考にします。
最近では画像を加工してハッシュ値やパターンがマッチしないように対策されているため
加工された画像に対応するには判断基準(しきい値)の拡大が必要になっています。
また、加工された画像をハッシュ値にして比較するとマッチしない可能性が高くなります。
そこで私が調べられた範囲で無加工のグロ画像のハッシュ値をデフォルト設定に追加したいと思います。
代替案
上記の基本システムに加えていくつかアイデアがあります。
追加の情報
荒らし対策の機能としてはアルゴリズムを非公開にしてNGの回避を困難にするのが望ましいと思いますがJDimはソースコードの公開が必要です。
画像のハッシュ値を計算するアルゴリズムは秘匿できませんが
ユーザーが目にするGUIなどからアルゴリズムの情報を除くなどして分かりにくくしたいと思います。
画像のハッシュ値を計算して類似する画像をあぼ〜んする
背景や動機
ここ数ヶ月、掲示板にグロテスクな画像のURLが繰り返し書き込まれています。
スレッドの話題と無関係で望まぬ暴力・残虐なイメージは精神衛生上良くないため対策を考えています。
現状のJDimでは画像URLを右クリックして非表示にすることはできますが、一度表示しないとグロであるか判別できません。
さらに、同じ画像でもURLを変えて書き込まれているためURLのあぼ〜んでは対応が困難となっています。
同じ画像を繰り返し貼り付ける特徴があるため、画像の特徴をハッシュ値として計算してNG登録し、
その後、登録したハッシュ値と比較を行い判定基準を超えた類似画像をあぼ〜んする機能を提案します。
解決方法
以下の機能を基本システムとして実装します。
画像を読み込んで表示するときにハッシュ値を計算する。
計算したハッシュ値とNG登録したハッシュ値を比較して判定基準を超えた場合はあぼ〜んする。
ハッシュ値の計算と比較は全体設定でon/offを切り替えることができる。
画像のプロパティに計算したハッシュ値を表示する。
また、ハッシュ値をNG 画像ハッシュに追加する仕組みを実装する。
メニューバーの
設定(C)>あぼ〜ん(A)>全体あぼ〜ん設定(対象: スレビュー)(V)にNG 画像ハッシュのタブを追加する。この設定は掲示板全体に適用される。
タブには以下のUIを配置する。
一覧にはハッシュ値、判定基準(しきい値)、最後にマッチした日時、およびハッシュ値を計算した画像のURLを表示します。
ハッシュ値の比較は高速ですが設定が増え過ぎると一覧の項目が長くなり確認しにくくなるため
最後にマッチした日時を記録して使われていないハッシュ値が分かるようにすることで設定削除の参考にします。
最近では画像を加工してハッシュ値やパターンがマッチしないように対策されているため
加工された画像に対応するには判断基準(しきい値)の拡大が必要になっています。
また、加工された画像をハッシュ値にして比較するとマッチしない可能性が高くなります。
そこで私が調べられた範囲で無加工のグロ画像のハッシュ値をデフォルト設定に追加したいと思います。
代替案
上記の基本システムに加えていくつかアイデアがあります。
マウスオーバーしたときに出るポップアップにあぼ〜んの情報を表示する。
→ あぼ〜んした理由が分かると画像やスレッドの状態を判断しやすくなります。
ハッシュ値を比較したときに結果を保存すれば実現できそうです。
edit(2024-05-26): Record abone reason for NG image hash and show it on dialog or popup #1397
→ グロ画像は色彩のインパクトがあるため単色にするとショックが軽減できるかもしれません。
ハッシュ値の計算で使う機能を流用できそうです。
edit(2024-06-01): Implement grayscale display for mosaic images #1398
→ ハッシュ値の特性で誤判定をゼロにすることは難しいため気になるときは見れると使い勝手が良くなるかもしれません。
あぼ〜んやモザイク処理との調整が必要です。
edit(2024-06-01): Implement force mosaic mode for image abone #1399
IMAGE::Preferences: Add note property for abone reason #1400
→ 背景や動機で挙げた画像荒らしはワードサラダ(意味が通じない文章)が一緒に書き込まれるケースが多く、
NGできると閲覧の助けになると思います。
連続投稿のIDをあぼ〜んする機能をベースに作れないか考えています。
→ 画像荒らしは掲示板全体に及んでいるため細かく分ける需要は高くないと思います。
今のところは考えていません。
→ 画像荒らしは特定のサービスを利用しておりNG 画像ハッシュの対象を限定できると誤判定を少なくできると思います。
urlreplace.confに追加する形を構想しています。
NG 画像ハッシュを使っていて誤判定が多いときは追加を考えます。
追加の情報
荒らし対策の機能としてはアルゴリズムを非公開にしてNGの回避を困難にするのが望ましいと思いますがJDimはソースコードの公開が必要です。
画像のハッシュ値を計算するアルゴリズムは秘匿できませんが
ユーザーが目にするGUIなどからアルゴリズムの情報を除くなどして分かりにくくしたいと思います。