JP2019106012A - 判定プログラム、判定方法および情報処理装置 - Google Patents
判定プログラム、判定方法および情報処理装置 Download PDFInfo
- Publication number
- JP2019106012A JP2019106012A JP2017238084A JP2017238084A JP2019106012A JP 2019106012 A JP2019106012 A JP 2019106012A JP 2017238084 A JP2017238084 A JP 2017238084A JP 2017238084 A JP2017238084 A JP 2017238084A JP 2019106012 A JP2019106012 A JP 2019106012A
- Authority
- JP
- Japan
- Prior art keywords
- pixels
- edge
- pixel
- determination
- straight line
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Image Analysis (AREA)
Abstract
【課題】画像に含まれる直線判定の精度を高めること。【解決手段】情報処理装置10は、画像データを取得し、取得した画像データに含まれる複数の画素それぞれの周囲に位置する画素に対応付けられた画素値に基づき、複数の画素それぞれに応じた領域内での画素値の変化の方向を、複数の画素それぞれに対応付ける分布情報を生成し、生成した分布情報に基づき、複数の画素のうち、対応付けられた方向の類似度が基準を満たす複数の画素の連続性に基づき、該複数の画素に対応する位置に直線が存在するか否かの判定を行う。【選択図】図2
Description
本発明は、判定プログラム、判定方法および情報処理装置に関する。
画像の中から直線を検出する技術の一例として、画像ごとに作成されたエッジのヒストグラム間の距離に基づいて画像の類似性を判定する画像処理装置が提案されている。この画像処理装置では、ヒストグラムの作成時に線分の検出が行われる。すなわち、画像処理装置は、画像を部分領域としてのブロックに分割し、そのブロックに存在する方向成分ごとの線分の数をビンとすることでヒストグラムを作成する。例えば、0度方向のときは、行ごとに0度方向のエッジがどれだけ含まれているかが計数される。その上で、全て0度方向のエッジであればブロックの行が線分であるとみなされると共に、途中で0度方向のエッジが検出されない画素がいくつか存在する場合であっても一定の割合以上で0度方向のエッジがあれば線分とみなされる。
しかしながら、上記の技術では、画像に含まれる直線判定の精度を高めることができない場合がある。すなわち、上記の画像処理装置では、同一方向のエッジの数の多寡によって線分が検出される。それ故、同一方向のエッジが局所的に密集する場合、エッジが密集する箇所が直線以外の文字列や円弧などのノイズに対応する場合であっても、エッジが密集する箇所が直線と誤判定されてしまう。
1つの側面では、本発明は、画像に含まれる直線判定の精度を高めることができる判定プログラム、判定方法および情報処理装置を提供することを目的とする。
一態様では、判定プログラムは、画像データを取得し、取得した前記画像データに含まれる複数の画素それぞれの周囲に位置する画素に対応付けられた画素値に基づき、前記複数の画素それぞれに応じた領域内での画素値の変化の方向を、前記複数の画素それぞれに対応付ける分布情報を生成し、生成した前記分布情報に基づき、前記複数の画素のうち、対応付けられた方向の類似度が基準を満たす複数の画素の連続性に基づき、該複数の画素に対応する位置に直線が存在するか否かの判定を行う、処理をコンピュータに実行させる。
画像に含まれる直線判定の精度を高めることができる。
以下に添付図面を参照して本願に係る判定プログラム、判定方法および情報処理装置について説明する。なお、この実施例は開示の技術を限定するものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
図1は、実施例1に係るシステム構成の一例を示す図である。図1には、直線判定のユースケースのあくまで一例として、企業システム等のシステム1に収容される情報処理装置10A〜10Cのランサムウェア感染を検知するために、情報処理装置10A〜10C上で動作する監視プログラムによってデスクトップ画面の画像データから直線が検出される例が示されている。
図1に示すように、システム1には、情報処理装置10A〜10Cと、管理者端末30とが含まれる。以下では、情報処理装置10A〜10Cのことを総称する場合に「情報処理装置10」と記載する場合がある。なお、図1には、3つの情報処理装置10A〜10Cを図示したが、システム1に収容される情報処理装置10の数は任意の数であってかまわない。
これら情報処理装置10および管理者端末30の間は、ネットワークNWを介して相互に通信可能に接続される。かかるネットワークNWには、有線または無線を問わず、インターネットやLAN(Local Area Network)、VPN(Virtual Private Network)などの任意の種類の通信網を採用できる。
情報処理装置10は、企業等の組織に所属するエンドユーザによって使用されるコンピュータである。例えば、情報処理装置10には、パーソナルコンピュータやワークステーションなどのデスクトップ型のコンピュータなどが対応する。このようなデスクトップ型のコンピュータに限定されず、ラックトップ型のコンピュータや携帯端末装置、ウェアラブル端末などの任意のコンピュータであってかまわない。
管理者端末30は、企業等の組織に所属するシステム管理者によって使用されるコンピュータである。例えば、管理者端末30では、エンドユーザが使用する情報処理装置10とは異なるアカウント、すなわち管理者権限を有するアカウントが使用される。このラベルはあくまで機能の一面からの分類であってコンピュータの種類やそのハードウェア構成が特定のものに限定される訳ではなく、上記の情報処理装置10と同様、任意のコンピュータであってかまわない。
ここで、情報処理装置10には、ランサムウェアへの感染を監視する機能を実現する監視プログラムがインストールされる。この監視プログラムは、ランサムウェア対策専用のソフトウェアであってもよいし、情報漏洩対策としてインストールされたソフトウェアにランサムウェアへの感染を監視する機能がアドオンされたものであってもかまわない。
一側面として、情報処理装置10上で動作する監視プログラムは、デスクトップ画面がキャプチャされた画像データに構造判定および単語判定の2つの判定を行うことにより、情報処理装置10がランサムウェアに感染中であるか否かを判定する。ここで言う「構造判定」とは、デスクトップ画面の直線検出結果から直線またはその組合せを要素とする画面の構造モデルを作成し、あらかじめ登録されたランサムウェアの構造モデルと類似するか否かを判定する処理を指す。また、「単語判定」とは、デスクトップ画面の文字認識結果として得られた単語の中にランサムウェア感染中に表示される画面に頻出する単語が含まれるか否かを判定する処理を指す。
そして、上記の監視プログラムは、デスクトップ画面の構造モデルとランサムウェアの構造モデルとが類似し、かつデスクトップ画面に含まれる単語の中にランサムウェア感染時に表示される画面に頻出する単語が含まれる場合、ランサムウェアに感染中のリスクありと判定する。この場合、上記の監視プログラムは、所定のアラートを管理者端末30へ出力する。例えば、上記の監視プログラムは、当該監視プログラムが動作する情報処理装置10の識別情報と共にランサムウェアへの感染が検知されたデスクトップ画面の画像データをアラートとして管理者端末30へ出力したり、ランサムウェアへの感染を通知する画像や音声のメッセージを管理者端末30へ出力したりすることができる。
[情報処理装置10の構成]
図2は、実施例1に係る情報処理装置10の機能的構成の一例を示すブロック図である。図2に示すように、情報処理装置10は、通信I/F(InterFace)部11と、記憶部13と、制御部15とを有する。図2には、データの授受の関係を表す実線が示されているが、説明の便宜上、最小限の部分について示されているに過ぎない。すなわち、各処理部に関するデータの入出力は、図示の例に限定されず、図示以外のデータの入出力、例えば処理部及び処理部の間、処理部及びデータの間、並びに、処理部及び外部装置の間のデータの入出力が行われることとしてもかまわない。
図2は、実施例1に係る情報処理装置10の機能的構成の一例を示すブロック図である。図2に示すように、情報処理装置10は、通信I/F(InterFace)部11と、記憶部13と、制御部15とを有する。図2には、データの授受の関係を表す実線が示されているが、説明の便宜上、最小限の部分について示されているに過ぎない。すなわち、各処理部に関するデータの入出力は、図示の例に限定されず、図示以外のデータの入出力、例えば処理部及び処理部の間、処理部及びデータの間、並びに、処理部及び外部装置の間のデータの入出力が行われることとしてもかまわない。
通信I/F部11は、他の装置、例えば管理者端末30等との間で通信制御を行うインタフェースである。
一実施形態として、通信I/F部11には、LANカードなどのネットワークインタフェースカードなどが対応する。例えば、通信I/F部11は、管理者端末30から遠隔操作等のコマンドを受信したり、遠隔操作のコマンドに対応する処理の実行結果を管理者端末30へ送信したりすることができる。また、通信I/F部11は、ランサムウェア感染のアラートを管理者端末30へ送信することもできる。この他、通信I/F部11は、図示しないサーバ装置等から情報処理装置10にインストールする監視プログラムをダウンロードすることもできる。
記憶部13は、制御部15で実行されるOS(Operating System)を始め、上記の監視プログラム、例えばアプリケーションプログラムやミドルウェアなどの各種プログラムに用いられるデータを記憶する記憶デバイスである。
一実施形態として、記憶部13は、情報処理装置10における補助記憶装置として実装することができる。例えば、記憶部13には、HDD(Hard Disk Drive)、光ディスクやSSD(Solid State Drive)などを採用できる。なお、記憶部13は、必ずしも補助記憶装置として実装されずともよく、情報処理装置10における主記憶装置として実装することもできる。この場合、記憶部13には、各種の半導体メモリ素子、例えばRAM(Random Access Memory)やフラッシュメモリを採用できる。
記憶部13は、制御部15で実行されるプログラムに用いられるデータの一例として、分布情報13aと、ランサムウェア情報13bとを記憶する。これらのデータ以外にも、記憶部13には、他の電子データが記憶されることとしてもかまわない。例えば、記憶部13は、情報処理装置10を使用するユーザに付与されたアカウント情報なども併せて記憶することもできる。なお、分布情報13aおよびランサムウェア情報13bの説明は、各データの生成または参照が行われる制御部15の説明と合わせて行うこととする。
制御部15は、情報処理装置10の全体制御を行う処理部である。
一実施形態として、制御部15は、CPU(Central Processing Unit)やMPU(Micro Processing Unit)などのハードウェアプロセッサにより実装することができる。ここでは、プロセッサの一例として、CPUやMPUを例示したが、汎用型および特化型を問わず、任意のプロセッサ、例えばGPU(Graphics Processing Unit)やDSP(Digital Signal Processor)の他、GPGPU(General-purpose computing on graphics processing units)により実装することができる。この他、制御部15は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などのハードワイヤードロジックによって実現されることとしてもかまわない。
制御部15は、図示しない主記憶装置として実装されるDRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)などのRAMのワークエリア上に、上記の監視プログラムを展開することにより、下記の処理部を仮想的に実現する。
制御部15は、図2に示すように、取得部15aと、エッジ点検出部15bと、エッジ方向算出部15cと、生成部15dと、探索部15eと、直線判定部15fと、ランサムウェア判定部15gとを有する。
取得部15aは、画像を取得する処理部である。
一実施形態として、取得部15aは、情報処理装置10の表示部に表示されるデスクトップ画面の画像データを保存するフレームバッファから、デスクトップ画面の画像データを取得する。このようにデスクトップ画面の画像データを取得する契機の例として、前回にデスクトップ画面の画像データが取得されてから所定の時間、例えば10秒間が経過することを条件とすることができる。このような時間的な条件の他、情報処理装置10のプロセッサが実行するOSやアプリケーションにより新たなウィンドウが生成されるイベントを条件とすることもできる。
エッジ点検出部15bは、画像からエッジ点を検出する処理部である。
一実施形態として、エッジ点検出部15bは、取得部15aによりデスクトップ画面の画像データが取得される度に、次のような処理を実行する。すなわち、エッジ点検出部15bは、取得部15aにより取得されたデスクトップ画面の画像データをビットマップ形式のカラー画像からグレースケール画像へ変換する。これにより、一例として、画像データの各画素の画素値が8ビットの階調値で表される0〜255の濃淡値へ変換される。続いて、エッジ点検出部15bは、画像データに含まれる画素のうち画素を1つ選択する。例えば、エッジ点検出部15bは、ラスタースキャン等の手順にしたがって画素を選択することができる。以下では、画像データに含まれる画素の中から選択された画素をそれ以外の画素と区別する観点から「選択中の画素」と記載する場合がある。
そして、エッジ点検出部15bは、選択中の画素の周囲に位置する画素の画素値に基づいて、選択中の画素のエッジ成分を横方向および縦方向ごとに算出する。このようにエッジ成分を算出する場合、選択中の画素の周囲に位置する画素として、選択中の画素の8近傍、すなわち選択中の画素の上の画素から時計回りの順に上、右上、右、右下、下、左下、左および左上の8画素を用いることができる。例えば、エッジ点検出部15bは、下記の式(1)にしたがって横方向のエッジ成分を算出することができる。また、エッジ点検出部15bは、下記の式(2)にしたがって縦方向のエッジ成分を算出することができる。その後、エッジ点検出部15bは、下記の式(3)にしたがって横方向のエッジ成分および縦方向のエッジ成分から選択中の画素のエッジ量を算出する。
横方向のエッジ成分=(左上の画素値−右上の画素値)/4+(左の画素値−右の画素値)/2+(左下の画素値−右下の画素値)/4・・・(1)
縦方向のエッジ成分=(左上の画素値−左下の画素値)/4+(上の画素値−下の画素値)/2+(右上の画素値−右下の画素値)/4・・・(2)
エッジ量=sqrt{(縦方向のエッジ成分)2+(横方向のエッジ成分)2}・・・(3)
縦方向のエッジ成分=(左上の画素値−左下の画素値)/4+(上の画素値−下の画素値)/2+(右上の画素値−右下の画素値)/4・・・(2)
エッジ量=sqrt{(縦方向のエッジ成分)2+(横方向のエッジ成分)2}・・・(3)
図3は、エッジ量の算出方法の一例を示す図である。図3には、選択中の画素とその周囲に位置する8近傍とが示されると共に、8近傍の各画素の中には画素値が記入されている。図3示す例では、選択中の画素の横方向のエッジ成分は、「(255−0)/4+(255−0)/2+(255−0)/4」の計算により、「255」と算出される。また、選択中の画素の縦方向のエッジ成分は、「(255−255)/4+(0−0)/2+(0−0)/4」の計算により、「0」と算出される。このため、選択中の画素のエッジ量は、「sqrt{(0)2+(255)2}」の計算により、「255」と算出される。
このように選択中の画素のエッジ量が算出された後、エッジ点検出部15bは、選択中の画素のエッジ量が所定の閾値Th1以上であるか否かを判定する。この閾値Th1には、一例として、背景および前景を分離できる値が設定される。例えば、カラーの画像データにおいて白地の背景および黒地の前景を分離する場合には、おおよそ180程度の値を閾値Th1として設定できる。また、カラーの画像データにおいて黄色の背景および赤色の前景を分離する場合、おおよそ80程度の値を閾値Th1として設定できる。このような閾値Th1の設定は、次のような処理によって自動化できる。例えば、グレースケールに変換されたデスクトップ画面の画像データに含まれる画素ごとに当該画素が持つ画素値に対応する階級値の度数をインクリメントすることによりヒストグラムを生成する。続いて、ヒストグラムから度数が最高である第1のピークと第1のピークの次に度数が高い第2のピークとを検出する。その上で、第1のピークと第2のピークとの中間にある階級値を閾値Th1として設定する。これによって、第1のピークに対応する可能性が高い背景と、第2のピークに対応する可能性が高い前景とを識別できる閾値Th1を設定することが可能になる。
ここで、選択中の画素のエッジ量が閾値Th1以上である場合、エッジ点検出部15bは、当該選択中の画素を「エッジ点」として検出する。一方、選択中の画素のエッジ量が閾値Th1未満である場合、当該選択中の画素は「エッジ点」として検出されない。
エッジ方向算出部15cは、エッジ方向を算出する処理部である。
一実施形態として、エッジ方向算出部15cは、エッジ点検出部15bによりエッジ点として検出された画素を対象に、当該画素のエッジ方向を算出する。例えば、エッジ方向算出部15cは、エッジ点における横方向および縦方向のエッジ成分の符号の組合せに応じて下記の式(4)〜下記の式(7)のうちいずれか1つを選択してエッジ点におけるエッジ方向を算出する。すなわち、横方向のエッジ成分および縦方向のエッジ成分の両方の符号が「正」である場合(ケース1)、エッジ方向の算出に下記の式(4)が用いられる。また、横方向のエッジ成分の符号が「負」であり、かつ縦方向のエッジ成分の符号が「正」である場合(ケース2)、エッジ方向の算出に下記の式(5)が用いられる。また、横方向のエッジ成分および縦方向のエッジ成分の両方の符号が「負」である場合(ケース3)、エッジ方向の算出に下記の式(6)が用いられる。また、横方向のエッジ成分の符号が「正」であり、かつ縦方向のエッジ成分の符号が「負」である場合(ケース4)、エッジ方向の算出に下記の式(7)が用いられる。なお、ここでは、エッジ点として検出された画素に絞ってエッジ方向を算出する場合を例示したが、全ての画素のエッジ方向を算出することとしてもかまわない。
<ケース1>
(縦方向のエッジ成分/(横方向のエッジ成分+縦方向のエッジ成分))*90・・・(4)
<ケース2>
((−横方向のエッジ成分)/((−横方向のエッジ成分)+縦方向のエッジ成分))*90+90・・・(5)
<ケース3>
((−縦方向のエッジ成分)/((−横方向のエッジ成分)+(−縦方向のエッジ成分)))*90+180・・・(6)
<ケース4>
(横方向のエッジ成分/(横方向のエッジ成分+(−縦方向のエッジ成分)))*90+270・・・(7)
(縦方向のエッジ成分/(横方向のエッジ成分+縦方向のエッジ成分))*90・・・(4)
<ケース2>
((−横方向のエッジ成分)/((−横方向のエッジ成分)+縦方向のエッジ成分))*90+90・・・(5)
<ケース3>
((−縦方向のエッジ成分)/((−横方向のエッジ成分)+(−縦方向のエッジ成分)))*90+180・・・(6)
<ケース4>
(横方向のエッジ成分/(横方向のエッジ成分+(−縦方向のエッジ成分)))*90+270・・・(7)
例えば、図3に示す選択中の画素がエッジ点として検出された場合、横方向のエッジ成分および縦方向のエッジ成分の符号はいずれも「正」であるので、エッジ方向の算出には上記の式(4)が用いられる。すなわち、エッジ方向は、「(0/(255+0))*90」の計算により、「0」と算出される。
ここで、上記の式(4)〜上記の式(7)によりエッジ方向が算出される場合、所定の方向に対する相対角度によって表される。図4は、エッジ方向の一例を示す図である。図4に示すように、エッジ方向θは、左方向を0度とし、そこから時計回りに360度までの値が上記の式(4)〜上記の式(7)により算出される。
生成部15dは、画像データに含まれる複数の画素それぞれに対応する分布情報を生成する処理部である。
一実施形態として、生成部15dは、エッジ方向算出部15cによりエッジ点におけるエッジ方向が算出される度に、当該選択中の画素に対応付けてエッジ方向を記憶部13に保存する。これによって、エッジ点の画素ごとに当該画素におけるエッジ方向が対応付けられた分布情報13aが生成される。
このようなエッジ点の検出、エッジ方向の算出および分布情報の生成は、デスクトップ画面の画像データに含まれる全ての画素が選択されるまで繰り返し実行される。
探索部15eは、エッジ点からエッジ点のエッジ方向と交差する方向へ向かって画素を探索する処理部である。
一実施形態として、探索部15eは、記憶部13に記憶された分布情報13aに含まれるエッジ点の中からエッジ点を1つ選択する。以下では、分布情報13aに含まれるエッジ点の中から選択されたエッジ点をそれ以外のエッジ点と区別する観点から「選択中のエッジ点」と記載する場合がある。続いて、探索部15eは、選択中のエッジ点におけるエッジ方向θから当該エッジ方向θと直交する方向、すなわちθ±90度を探索方向として算出する。その上で、探索部15eは、選択中のエッジ点を探索の開始地点とし、そこから探索方向に存在する画素を選択中のエッジ点から近い位置の画素から順に探索する。すなわち、探索部15eは、選択中のエッジ点の探索方向に存在する画素のうちエッジ点に1番近い画素を探索する。その後、選択中のエッジ点におけるエッジ方向と類似するエッジ方向の画素が探索される限り、探索が継続される。すなわち、探索部15eは、選択中のエッジ点の探索方向に存在する画素のうち1回前に探索された画素の次に選択中のエッジ点に近い画素を繰り返し探索する。
図5は、探索方法の一例を示す図である。図5には、選択中のエッジ点の周囲に位置する8近傍の画素と、探索方向との対応関係が示されている。図5に示すように、エッジ点のエッジ方向θ±90度により算出された探索方向が335度〜360度または0度〜25度の第1の区間に該当する場合、選択中のエッジ点から左方向へ向かって画素が探索される。また、探索方向が20度〜70度の第2の区間に該当する場合、選択中のエッジ点から左上方向へ向かって画素が探索される。これら第1の区間および第2の区間は、その一部、すなわち20度〜25度が重複する。このように第1の区間および第2の区間が重複する区間に探索方向が該当する場合、選択中のエッジ点から左方向へ向かっての画素の探索、並びに、選択中のエッジ点から左上方向へ向かっての画素の探索の2方向の探索を併せて実行する。
また、探索方向が65度〜115度の第3の区間に該当する場合、選択中のエッジ点から上方向へ向かって画素が探索される。これら第2の区間および第3の区間は、その一部、すなわち65度〜70度が重複する。このように第2の区間および第3の区間が重複する区間に探索方向が該当する場合、選択中のエッジ点から左上方向へ向かっての画素の探索、並びに、選択中のエッジ点から上方向へ向かっての画素の探索の2方向の探索を併せて実行する。さらに、探索方向が110度〜160度の第4の区間に該当する場合、選択中のエッジ点から右上方向へ向かって画素が探索される。これら第3の区間および第4の区間は、その一部、すなわち110度〜115度が重複する。このように第3の区間および第4の区間が重複する区間に探索方向が該当する場合、選択中のエッジ点から上方向へ向かっての画素の探索、並びに、選択中のエッジ点から右上方向へ向かっての画素の探索の2方向の探索を併せて実行する。
また、探索方向が155度〜205度の第5の区間に該当する場合、選択中のエッジ点から右方向へ向かって画素が探索される。これら第4の区間および第5の区間は、その一部、すなわち155度〜160度が重複する。このように第4の区間および第5の区間が重複する区間に探索方向が該当する場合、選択中のエッジ点から右上方向へ向かっての画素の探索、並びに、選択中のエッジ点から右方向へ向かっての画素の探索の2方向の探索を併せて実行する。さらに、探索方向が200度〜250度の第6の区間に該当する場合、選択中のエッジ点から右下方向へ向かって画素が探索される。これら第5の区間および第6の区間は、その一部、すなわち200度〜205度が重複する。このように第5の区間および第6の区間が重複する区間に探索方向が該当する場合、選択中のエッジ点から右方向へ向かっての画素の探索、並びに、選択中のエッジ点から右下方向へ向かっての画素の探索の2方向の探索を併せて実行する。
また、探索方向が245度〜295度の第7の区間に該当する場合、選択中のエッジ点から下方向へ向かって画素が探索される。これら第6の区間および第7の区間は、その一部、すなわち245度〜250度が重複する。このように第6の区間および第7の区間が重複する区間に探索方向が該当する場合、選択中のエッジ点から右下方向へ向かっての画素の探索、並びに、選択中のエッジ点から下方向へ向かっての画素の探索の2方向の探索を併せて実行する。さらに、探索方向が290度〜340度の第8の区間に該当する場合、選択中のエッジ点から左下方向へ向かって画素が探索される。これら第7の区間および第8の区間は、その一部、すなわち290度〜295度が重複する。このように第7の区間および第8の区間が重複する区間に探索方向が該当する場合、選択中のエッジ点から下方向へ向かっての画素の探索、並びに、選択中のエッジ点から左方向へ向かっての画素の探索の2方向の探索を併せて実行する。加えて、第1の区間および第8の区間は、その一部、すなわち335度〜340度が重複する。このように第1の区間および第8の区間が重複する区間に探索方向が該当する場合、選択中のエッジ点から左方向へ向かっての画素の探索、並びに、選択中のエッジ点から左下方向へ向かっての画素の探索の2方向の探索を併せて実行する。
直線判定部15fは、エッジ点から探索方向へ向かって画素が探索された探索エリアが直線であるか否かを判定する処理部である。
一実施形態として、直線判定部15fは、探索部15eにより画素が探索される度に、選択中のエッジ点におけるエッジ方向と、探索部15eにより探索された画素におけるエッジ方向とが類似するか否かを判定する。例えば、直線判定部15fは、選択中のエッジ点におけるエッジ方向と、探索部15eにより探索された画素におけるエッジ方向との差の二乗値が所定の閾値Th2、例えば「20」未満であるか否かを判定する。なお、ここでは、エッジ方向の差の二乗値を用いる例を示したが、エッジ方向に関する他の値、例えばエッジ方向の差の絶対値などを代わりに用いることもできる。
ここで、両者のエッジ方向の差の二乗値が閾値Th2未満である場合、直線判定部15fは、選択中のエッジ点との間でエッジ方向が類似する画素が探索方向に連続する個数を1つインクリメントする。以下では、選択中のエッジ点との間でエッジ方向が類似する画素が探索方向に連続する個数のことを「連続数」と記載する場合がある。この連続数は、一例として、直線判定部15fが参照することができるレジスタ等に保持することができる。このように連続数が更新される場合、探索部15eによる探索が継続される。
一方、両者のエッジ方向の差の二乗値が閾値Th2以上である場合、選択中のエッジ点との間でエッジ方向が類似する画素が今回に探索された画素で途切れる。この場合、直線判定部15fは、レジスタ等に保持された連続数が所定の閾値Th3以上であるか否かを判定する。例えば、ランサムウェア感染の検知精度を高める側面から、閾値Th3には、ランサムウェアへの感染時に表示されるウィンドウに含まれる部品のフレーム等を形成する線画として出現する最小のサイズよりも大きいサイズを採用することができる。また、直線の誤判定を抑制する側面から、閾値Th3には、文字列等を直線と誤判定するのを避ける観点から、1文字の幅または高さのサイズよりも大きい画素数を採用することができる。
このとき、レジスタに保持された連続数が閾値Th3未満である場合、ランサムウェアへの感染時に表示されるウィンドウに含まれる部品の輪郭等に対応する可能性が低く、さらに、文字列等に対応する余地が残ることがわかる。この場合、上記の探索エリアは、直線と判定されない。一方、レジスタに保持された連続数が閾値Th3以上である場合、ランサムウェアへの感染時に表示されるウィンドウに含まれる部品の輪郭等に対応する可能性が高まり、さらに、文字列等に対応する可能性が低まることがわかる。この場合、直線判定部15fは、上記の探索エリアを直線と判定する。
このような探索方向への画素の探索および直線の判定は、分布情報13aに含まれる全てのエッジ点が選択されるまで繰り返し実行される。
図6は、デスクトップ画面の一例を示す図である。図6には、一例として、デスクトップ画面500がキャプチャされた画像が示されている。図6に示すように、デスクトップ画面500には、フレーム510が含まれると共に、フレーム510内には、文字列「あいうえお」が含まれる。このようなデスクトップ画面500から上記の構造判定によってランサムウェア感染を検知する場合、ウィンドウ内に含まれる部品の外形形状やウィンドウ内で部品が配置される位置や大きさなどの特徴が直線やその組合せを要素として抽出される。このため、ランサムウェア感染の検知には、フレーム510の輪郭を形成する直線510A〜510Dが有用である。その一方で、フレーム510に含まれる文字列「あいうえお」やその一部が直線として誤検出されると、ランサムウェア感染の検知への阻害要因となることがある。それ故、直線510A〜510Dが直線として検出される一方で、文字列「あいうえお」やその一部を直線として誤検出されない直線判定の実現が上記の構造判定の精度を高めるアプローチとなる。
図7は、画素値の一例を示す模式図である。図7には、図6に示すデスクトップ画面500で文字「お」の一部を含む領域520が画素のレベルにまで拡大された状態でピックアップされると共に、各画素に当該画素が有する画素値が模式的に示されている。図7に示すように、領域520に含まれる画素のうち文字「お」の要素に対応する画素は、黒に対応する画素値「255」を有する一方で、それ以外の部分の画素は、背景、この場合は白に対応する画素値「0」を有する。このような領域520の上から5つ目の行は、文字「お」の要素が直線に類似する形状を持ち、画素値「255」の画素が6つ集中すると共にそこから得られるエッジ方向も類似している。このため、上記の背景技術に記載の画像処理装置では、文字「お」の一部の要素を直線と誤検出するおそれがある。これとは対照的に、本実施例では、探索方向への画素の探索、エッジ方向の類似性の判定および類似エッジ方向の連続数の判定などによって上記の誤検出を抑制することができる。
図8A及び図8Bは、エッジ量およびエッジ方向の一例を示す模式図である。図8A及び図8Bには、図7に示す領域520の各画素が有する画素値から算出されたエッジ量が画素ごとに示されている。さらに、エッジ量が閾値Th1「180」以上であるエッジ点に対応する画素には、水平および垂直のエッジ成分から算出されたエッジ方向が括弧書きで示されている。言い換えれば、括弧書きでエッジ方向の値の記入がない画素はエッジ方向には対応しない。
図8Aに示すように、エッジ点のうち上から4行目および左から3列目のエッジ点、図中の反転表示が選択された場合、当該エッジ点におけるエッジ方向は「270度」であるので、探索方向は「180度」および「360度」となる。このため、図8Aにハッチングで示す通り、図5に示す探索方向の決定方法にしたがって選択中のエッジ点から左方向および右方向へ画素が探索される。このうち、選択中のエッジ点から左方向へ探索された場合、選択中のエッジ点と、上から4行目および左から2列目の画素との間でエッジ方向が類似しているか否かが判定される。この場合、エッジ方向の差の二乗値は、(270−240)2の計算により「900」と求まる。これは、閾値Th2を上回るので、左方向への探索は1つ目の画素で終了する。一方、選択中のエッジ点から右方向へ探索された場合、選択中のエッジ点と、上から4行目および左から4列目の画素との間でエッジ方向が類似しているか否かが判定される。この場合、エッジ方向の差の二乗値は、(270−300)2の計算により「900」と求まる。これも、閾値Th2を上回るので、右方向への探索も1つ目の画素で終了する。このため、連続数は初期値である「1」から変化がなく、閾値Th3、例えば「7」未満となるので、直線とは判定されない。
図8Bに示すように、エッジ点のうち上から4行目および左から4列目のエッジ点、図中の反転表示が選択された場合、当該エッジ点におけるエッジ方向は「300度」であるので、探索方向は「220度」および「30度(=390度)」となる。このため、図8Bにハッチングで示す通り、図5に示す探索方向の決定方法にしたがって選択中のエッジ点から左上方向および右下方向へ画素が探索される。このうち、選択中のエッジ点から左上方向へ探索された場合、1つ目の探索画素に対応する上から3行目および左から3列目の画素は、そもそもエッジ点でないので、左上方向への探索は1つ目の画素で終了する。一方、選択中のエッジ点から右下方向へ探索された場合にも、1つ目の探索画素に対応する上から5行目および左から5列目の画素は、そもそもエッジ点でないので、右方向への探索も1つ目の画素で終了する。このため、連続数は初期値である「1」から変化がなく、閾値Th3、例えば「7」未満となるので、直線とは判定されない。
ここでは、一例として、エッジ点のうち上から4行目および左から3列目のエッジ点、および、上から4行目および左から4列目のエッジ点が選択される場合を抜粋して説明したが、領域520においてこれ以外の他のエッジ点が選択された場合にも、類似エッジ方向の連続数の判定で閾値Th3以上の連続数となる条件を満たさないので、直線は検出されない。それ故、文字「お」の一部の要素を直線と誤検出するのを抑制できる。さらに、領域520の画素のうちエッジ点に絞って探索が実行されると共に、エッジ点におけるエッジ方向と交差する方向に探索方向が絞り込まれるので、探索回数も削減できる。
図9は、画素値の一例を示す模式図である。図6には、図6に示すデスクトップ画面500でフレーム510を形成する直線510Cの一部を含む領域530が画素のレベルにまで拡大された状態でピックアップされると共に、各画素に当該画素が有する画素値が模式的に示されている。図9に示すように、領域530に含まれる画素のうち直線510Cに対応する画素は、黒に対応する画素値「255」を有する一方で、それ以外の部分の画素は、背景、この場合は白に対応する画素値「0」を有する。このようにウィンドウ内に含まれる部品の外形形状やウィンドウ内で部品が配置される位置や大きさなどの特徴が現れる直線510Cはランサムウェア感染の検知に有用であるので、検出漏れを抑制するのが好ましい。
図10A及び図10Bは、エッジ量およびエッジ方向の一例を示す模式図である。図10A及び図10Bには、図9に示す領域530の各画素が有する画素値から算出されたエッジ量が画素ごとに示されている。さらに、エッジ量が閾値Th1「180」以上であるエッジ点に対応する画素には、水平および垂直のエッジ成分から算出されたエッジ方向が括弧書きで示されている。言い換えれば、括弧書きでエッジ方向の値の記入がない画素はエッジ方向には対応しない。
図10Aに示すように、エッジ点のうち上から2行目および左から1列目のエッジ点、図中の反転表示が選択された場合、当該エッジ点におけるエッジ方向は「270度」であるので、探索方向は「180度」および「360度」となる。このため、図10Aにハッチングで示す通り、図5に示す探索方向の決定方法にしたがって選択中のエッジ点から左方向および右方向へ画素が探索される。このうち、選択中のエッジ点から右方向へ探索された場合、選択中のエッジ点と、上から2行目および左から2列目の画素との間でエッジ方向が類似しているか否かが判定される。この場合、エッジ方向の差の二乗値は、(270−270)2の計算により「0」と求まる。これは、閾値Th2未満であるので、連続数がインクリメントされると共に、右方向への探索は継続される。上から2行目の他の列、すなわち3列目〜8列目においても同様に、エッジ方向の差の二乗値は、同値、すなわち「0」であり、閾値Th2未満であるので、連続数がインクリメントされると共に、右方向への探索は継続される。この右方向の探索は、図示は省略するが、直線510Cの右端まで継続される。一方、選択中のエッジ点から左方向へ探索された場合、選択中のエッジ点と、図中に点線で示したエッジ点の左側に隣接する画素との間でエッジ方向が類似しているか否かが判定される。この場合、エッジ方向の差の二乗値は、(270−270)2の計算により「0」と求まる。これは、閾値Th2以下であるので、連続数がインクリメントされると共に、左方向への探索は継続される。この左方向の探索も図示は省略するが、直線510Cの左端まで継続される。このように左方向および右方向へと探索された結果、連続数は、閾値Th3、例えば「7」以上となるので、図10Aにハッチングで示す画素の列を含む直線510Cの上側が直線と判定される。
図10Bに示すように、エッジ点のうち上から4行目および左から1列目のエッジ点、図中の反転表示が選択された場合、当該エッジ点におけるエッジ方向は「90度」であるので、探索方向は「0度」および「180度」となる。このため、図10Bにハッチングで示す通り、図5に示す探索方向の決定方法にしたがって選択中のエッジ点から左方向および右方向へ画素が探索される。このうち、選択中のエッジ点から右方向へ探索された場合、選択中のエッジ点と、上から4行目および左から2列目の画素との間でエッジ方向が類似しているか否かが判定される。この場合、エッジ方向の差の二乗値は、(90−90)2の計算により「0」と求まる。これは、閾値Th2未満であるので、連続数がインクリメントされると共に、右方向への探索は継続される。上から4行目の他の列、すなわち3列目〜8列目においても同様に、エッジ方向の差の二乗値は、同値、すなわち「0」であり、閾値Th2未満であるので、連続数がインクリメントされると共に、右方向への探索は継続される。この右方向の探索は、図示は省略するが、直線510Cの右端まで継続される。一方、選択中のエッジ点から左方向へ探索された場合、選択中のエッジ点と、図中に点線で示したエッジ点の左側に隣接する画素との間でエッジ方向が類似しているか否かが判定される。この場合、エッジ方向の差の二乗値は、(90−90)2の計算により「0」と求まる。これは、閾値Th2以下であるので、連続数がインクリメントされると共に、左方向への探索は継続される。この左方向の探索も図示は省略するが、直線510Cの左端まで継続される。このように左方向および右方向へと探索された結果、連続数は、閾値Th3、例えば「7」以上となるので、図10Bにハッチングで示す画素の列を含む直線510Cの下側が直線と判定される。
このように、文字「お」の一部の要素を直線と誤検出するのを抑制できると共に、ウィンドウ内に含まれる部品の外形形状やウィンドウ内で部品が配置される位置や大きさなどの特徴が現れる直線510Cの検出漏れを抑制できる。この結果、本実施例では、直線判定の精度を向上させることができる。さらに、領域520および領域530の画素のうちエッジ点に絞って探索が実行されると共に、エッジ点におけるエッジ方向と交差する方向に探索方向が絞り込まれるので、探索回数も削減できる。
図2の説明に戻り、ランサムウェア判定部15gは、情報処理装置10のランサムウェアへの感染を判定する処理部である。
一実施形態として、ランサムウェア判定部15gは、デスクトップ画面がキャプチャされた画像データに構造判定および単語判定の2つの判定を行うことにより、情報処理装置10がランサムウェアに感染中であるか否かを判定する。
より詳細には、ランサムウェア判定部15gは、デスクトップ画面の直線検出結果から直線またはその組合せを要素とする画面の構造モデルを作成する。図11は、構造モデルの抽出例を示す図である。図11に示すように、ランサムウェア判定部15gは、直線判定部15fによりデスクトップ画面600の画像データから判定された直線の検出結果から、ウィンドウ内に含まれる部品の外形形状やウィンドウ内で部品が配置される位置や大きさなどの特徴が現れる直線またはその組合せを要素とする画面の構造モデル700を作成する。例えば、ランサムウェア判定部15gは、直線判定部15fにより検出された直線を、左右方向の線、上下方向の線、矩形を形成する上下左右の4辺の計6パターンの要素に分類された分類結果を構造モデルとして作成する。
このようにデスクトップ画面から作成された構造モデルは、ランサムウェア判定部15gによってランサムウェアの構造モデルと比較される。このランサムウェアの構造モデルは、あらかじめランサムウェア情報13bの一部として記憶部13に登録される。例えば、記憶部13には、ランサムウェアの種類ごとに当該種類のランサムウェアに感染された場合に表示されるウィンドウから作成された画面の構造モデルがランサムウェア情報13bとして登録される。
例えば、ランサムウェア判定部15gは、デスクトップ画面から作成された構造モデルと、ランサムウェアの構造モデルとの間で類似度をランサムウェアの種類ごとに算出する。より具体的には、ランサムウェア判定部15gは、ランサムウェアの構造モデルに含まれる要素ごとに、当該要素と同一の分類に属する要素をデスクトップ画面の構造モデルから検索する。そして、ランサムウェア判定部15gは、検索結果として、ランサムウェアの構造モデルの要素との距離が近い位置にデスクトップ画面の構造モデルの要素が得られるほど高いスコアを算出する。これと共に、ランサムウェア判定部15gは、検索結果として、ランサムウェアの構造モデルの要素のサイズ、例えば長さと近いデスクトップ画面の構造モデルの要素が得られるほど高いスコアを算出する。その後、ランサムウェア判定部15gは、要素ごとに算出されるスコアに統計処理、例えば合計、平均や重み付けなどを実行することにより、デスクトップ画面から作成された構造モデルとランサムウェアの構造モデルとの間の総合の類似度を算出する。
ここで、ランサムウェアの構造モデルとの間で所定値以上の類似度が算出された場合、ランサムウェア判定部15gは、上記の単語判定を実行する。すなわち、ランサムウェア判定部15gは、デスクトップ画面の画像データにOCR(Optical Character Reader)等の文字認識処理を実行する。その上で、ランサムウェア判定部15gは、デスクトップ画面の文字認識結果として得られた単語の中に、ランサムウェア感染中に表示される画面に頻出する単語が含まれるか否かを判定する。この頻出単語は、一例として、あらかじめランサムウェア情報13bの一部として記憶部13に登録しておくことができる。例えば、ランサムウェア感染時に表示される警告画面に記載されている文章から一般的なサイトで出現しにくい単語をtf−idf法などで評価した上で上位所定数、例えば20個の単語を抽出することにより、頻出単語、例えば暗号化、復元、回復などを取得することができる。
そして、デスクトップ画面の文字認識結果として得られた単語の中にランサムウェア感染中に表示される画面の頻出単語が含まれる場合、ランサムウェアに感染中のリスクがあると判断できる。この場合、ランサムウェア判定部15gは、所定のアラートを管理者端末30へ出力する。例えば、ランサムウェア判定部15gは、当該監視プログラムが動作する情報処理装置10の識別情報と共にランサムウェアへの感染が検知されたデスクトップ画面の画像データをアラートとして管理者端末30へ出力したり、ランサムウェアへの感染を通知する画像や音声のメッセージを管理者端末30へ出力したりすることができる。
[処理の流れ]
図12は、実施例1に係るランサムウェア検知処理の手順を示すフローチャートである。この処理は、一例として、取得部15aによりデスクトップ画面の画像データが取得される度に繰り返し実行される。
図12は、実施例1に係るランサムウェア検知処理の手順を示すフローチャートである。この処理は、一例として、取得部15aによりデスクトップ画面の画像データが取得される度に繰り返し実行される。
図12に示すように、デスクトップ画面の画像データが取得されると(ステップS101)、エッジ点検出部15b、エッジ方向算出部15c、生成部15d、探索部15eおよび直線判定部15fにより、ステップS101で取得されたデスクトップ画面の画像データから直線を判定する「直線判定処理」が実行される(ステップS102)。なお、上記の「直線判定処理」は、図12を用いて後述することとする。
その後、ランサムウェア判定部15gは、ステップS102におけるデスクトップ画面の直線検出結果から直線またはその組合せを要素とする画面の構造モデルを作成する(ステップS103)。続いて、ランサムウェア判定部15gは、デスクトップ画面から作成された構造モデルと、ランサムウェアの構造モデルとを比較することにより、両者の類似度をランサムウェアの種類ごとに算出する(ステップS104)。
そして、ランサムウェアの構造モデルとの間で所定値以上の類似度が算出された場合(ステップS105Yes)、ランサムウェア判定部15gは、ステップS101で取得されたデスクトップ画面の画像データにOCR等の文字認識処理を実行する(ステップS106)。
その上で、ランサムウェア判定部15gは、ステップS106でデスクトップ画面の文字認識結果として得られた単語の中に、ランサムウェア感染中に表示される画面に頻出する単語が含まれるか否かを判定する(ステップS107)。
ここで、デスクトップ画面の文字認識結果として得られた単語の中にランサムウェア感染中に表示される画面の頻出単語が含まれる場合(ステップS108Yes)、ランサムウェアに感染中のリスクがあると判断できる。この場合、ランサムウェア判定部15gは、所定のアラートを管理者端末30へ出力し(ステップS109)、処理を終了する。
なお、ランサムウェアの構造モデルとの間で所定値以上の類似度が算出されない場合、あるいはデスクトップ画面の文字認識結果として得られた単語の中にランサムウェア感染中に表示される画面の頻出単語が含まれない場合(ステップS105NoまたはステップS108No)、アラートを管理者端末30へ出力せずにそのまま処理を終了する。
図13は、実施例1に係る直線判定処理の手順を示すフローチャートである。この処理は、図12に示すステップS102の処理に対応する。図13に示すように、エッジ点検出部15bは、ステップS101で取得されたデスクトップ画面の画像データをビットマップ形式のカラー画像からグレースケール画像へ変換する(ステップS301)。続いて、エッジ点検出部15bは、グレースケールに変換後の画像データに含まれる画素のうち画素を1つ選択する(ステップS302)。
そして、エッジ点検出部15bは、ステップS302で選択された画素の周囲に位置する画素の画素値に基づいて、選択中の画素のエッジ成分を横方向および縦方向ごとに算出する(ステップS303)。その後、エッジ点検出部15bは、ステップS303で算出された横方向のエッジ成分および縦方向のエッジ成分から選択中の画素のエッジ量を算出する(ステップS304)。
続いて、エッジ点検出部15bは、選択中の画素のエッジ量が所定の閾値Th1以上であるか否かを判定する(ステップS305)。このとき、選択中の画素のエッジ量が閾値Th1以上である場合(ステップS305Yes)、当該選択中の画素が「エッジ点」として検出される。この場合、エッジ方向算出部15cは、選択中の画素における横方向のエッジ成分および縦方向のエッジ成分から当該選択中の画素のエッジ方向をさらに算出する(ステップS306)。なお、選択中の画素のエッジ量が閾値Th1以上でない場合(ステップS305No)、ステップS306の処理をスキップすることができる。
その後、デスクトップ画面の画像データに含まれる全ての画素が選択されるまで(ステップS307No)、上記のステップS302から上記のステップS306までの処理を繰り返し実行する。これによって、エッジ点の画素ごとに当該画素におけるエッジ方向が対応付けられた分布情報13aが生成される。
そして、デスクトップ画面の画像データに含まれる全ての画素が選択された場合(ステップS307Yes)、探索部15eは、記憶部13に記憶された分布情報13aに含まれるエッジ点の中からエッジ点を1つ選択する(ステップS308)。
続いて、探索部15eは、選択中のエッジ点におけるエッジ方向θから当該エッジ方向θと直交する方向、すなわちθ±90度を探索方向として算出する(ステップS309)。その上で、探索部15eは、選択中のエッジ点を探索の開始地点とし、そこから探索方向に存在する画素を選択中のエッジ点から近い位置の画素から順に探索する(ステップS310)。そして、直線判定部15fは、選択中のエッジ点におけるエッジ方向と、ステップS310で探索された画素におけるエッジ方向とが類似するか否かを判定する(ステップS311)。
このとき、両者のエッジ方向が類似する場合(ステップS311Yes)、選択中のエッジ点とエッジ方向が類似する画素が探索方向に連続する連続数が1つインクリメントされた後、上記のステップS310の画素の探索が改めて実行される。
また、両者のエッジ方向が類似しない場合(ステップS311No)、選択中のエッジ点との間でエッジ方向が類似する画素が今回に探索された画素で途切れる。この場合、直線判定部15fは、レジスタ等に保持された連続数が所定の閾値Th3以上であるか否かを判定する(ステップS312)。
ここで、レジスタに保持された連続数が閾値Th3以上である場合(ステップS312Yes)、ランサムウェアへの感染時に表示されるウィンドウに含まれる部品の輪郭等に対応する可能性が高まり、さらに、文字列等に対応する可能性が低まることがわかる。この場合、直線判定部15fは、上記の探索エリアを直線と判定する(ステップS313)。なお、レジスタに保持された連続数が閾値Th3以上でない場合(ステップS312No)、上記のステップS313の処理はスキップされる。
その後、分布情報13aに含まれる全てのエッジ点が選択されるまで(ステップS314No)、上記のステップS308から上記のステップS313までの処理が繰り返し実行される。そして、分布情報13aに含まれる全てのエッジ点が選択されると(ステップS314Yes)、処理を終了する。
なお、図13には、全ての画素を選択してエッジ点が検出された後にエッジ点を選択して画素探索や直線判定を実行する場合を例示したが、エッジ点が検出される度に画素探索や直線判定を実行することとしてもよい。この場合、必ずしもラスタスキャン等の順序通りにエッジ点の検出が実行されない場合があるが、探索時に探索画素に関するエッジ点の検出を行うこととすればよい。
[実施例1の効果の一側面]
上述してきたように、本実施例に係る情報処理装置10は、デスクトップ画面等の画像データに含まれる画素ごとに当該画素の周辺の画素から画素値が変化する方向を求め、方向の類似度が基準を満たす複数の画素の連続性に基づいて要素が直線か否か判定する。したがって、本実施例に係る情報処理装置10によれば、画像に含まれる直線判定の精度を高めることが可能になる。
上述してきたように、本実施例に係る情報処理装置10は、デスクトップ画面等の画像データに含まれる画素ごとに当該画素の周辺の画素から画素値が変化する方向を求め、方向の類似度が基準を満たす複数の画素の連続性に基づいて要素が直線か否か判定する。したがって、本実施例に係る情報処理装置10によれば、画像に含まれる直線判定の精度を高めることが可能になる。
さて、これまで開示の装置に関する実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。
[クライアントサーバシステム]
上記の実施例1では、図12や図13に示す処理が情報処理装置10で実行される場合を例示したが、図12や図13に示す処理は、複数の情報処理装置10が接続されるサーバ装置等のコンピュータで実行されることとしてもかまわない。この場合、サーバ装置は、デスクトップ画面の画像データを情報処理装置10ごとに取得し、図12や図13に示す処理を情報処理装置10ごとに並列して実行することができる。この他、シンクライアント端末の仮想マシンが物理マシン上で実行される場合にも、仮想マシンごとに図12や図13に示す処理を並列して実行することができる。
上記の実施例1では、図12や図13に示す処理が情報処理装置10で実行される場合を例示したが、図12や図13に示す処理は、複数の情報処理装置10が接続されるサーバ装置等のコンピュータで実行されることとしてもかまわない。この場合、サーバ装置は、デスクトップ画面の画像データを情報処理装置10ごとに取得し、図12や図13に示す処理を情報処理装置10ごとに並列して実行することができる。この他、シンクライアント端末の仮想マシンが物理マシン上で実行される場合にも、仮想マシンごとに図12や図13に示す処理を並列して実行することができる。
[ユースケース]
上記の実施例1では、直線判定のユースケースのあくまで一例として、ランサムウェア感染を検知するために直線検出が実行される場合を例示したが、他のユースケースで直線検出が実行される場合にも、図12や図13に示す処理を適用することができる。
上記の実施例1では、直線判定のユースケースのあくまで一例として、ランサムウェア感染を検知するために直線検出が実行される場合を例示したが、他のユースケースで直線検出が実行される場合にも、図12や図13に示す処理を適用することができる。
[分散および統合]
また、図示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されておらずともよい。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、取得部15a、エッジ点検出部15b、エッジ方向算出部15c、生成部15d、探索部15e、直線判定部15fまたはランサムウェア判定部15gを情報処理装置10の外部装置としてネットワーク経由で接続するようにしてもよい。また、取得部15a、エッジ点検出部15b、エッジ方向算出部15c、生成部15d、探索部15e、直線判定部15fまたはランサムウェア判定部15gを別の装置がそれぞれ有し、ネットワーク接続されて協働することで、上記の情報処理装置10の機能を実現するようにしてもよい。
また、図示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されておらずともよい。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、取得部15a、エッジ点検出部15b、エッジ方向算出部15c、生成部15d、探索部15e、直線判定部15fまたはランサムウェア判定部15gを情報処理装置10の外部装置としてネットワーク経由で接続するようにしてもよい。また、取得部15a、エッジ点検出部15b、エッジ方向算出部15c、生成部15d、探索部15e、直線判定部15fまたはランサムウェア判定部15gを別の装置がそれぞれ有し、ネットワーク接続されて協働することで、上記の情報処理装置10の機能を実現するようにしてもよい。
[判定プログラム]
また、上記の実施例で説明した各種の処理は、予め用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、図14を用いて、上記の実施例と同様の機能を有する判定プログラムを実行するコンピュータの一例について説明する。
また、上記の実施例で説明した各種の処理は、予め用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、図14を用いて、上記の実施例と同様の機能を有する判定プログラムを実行するコンピュータの一例について説明する。
図14は、実施例1及び実施例2に係る判定プログラムを実行するコンピュータのハードウェア構成例を示す図である。図14に示すように、コンピュータ100は、操作部110aと、スピーカ110bと、カメラ110cと、ディスプレイ120と、通信部130とを有する。さらに、このコンピュータ100は、CPU150と、ROM160と、HDD170と、RAM180とを有する。これら110〜180の各部はバス140を介して接続される。
HDD170には、図14に示すように、上記の実施例1で示した取得部15a、エッジ点検出部15b、エッジ方向算出部15c、生成部15d、探索部15e、直線判定部15f及びランサムウェア判定部15gと同様の機能を発揮する判定プログラム170aが記憶される。この判定プログラム170aは、図2に示した取得部15a、エッジ点検出部15b、エッジ方向算出部15c、生成部15d、探索部15e、直線判定部15f及びランサムウェア判定部15gの各構成要素と同様、統合又は分離してもかまわない。すなわち、HDD170には、必ずしも上記の実施例1で示した全てのデータが格納されずともよく、処理に用いるデータがHDD170に格納されればよい。
このような環境の下、CPU150は、HDD170から判定プログラム170aを読み出した上でRAM180へ展開する。この結果、判定プログラム170aは、図14に示すように、判定プロセス180aとして機能する。この判定プロセス180aは、RAM180が有する記憶領域のうち判定プロセス180aに割り当てられた領域にHDD170から読み出した各種データを展開し、この展開した各種データを用いて各種の処理を実行する。例えば、判定プロセス180aが実行する処理の一例として、図12や図13に示す処理などが含まれる。なお、CPU150では、必ずしも上記の実施例1で示した全ての処理部が動作せずともよく、実行対象とする処理に対応する処理部が仮想的に実現されればよい。
なお、上記の判定プログラム170aは、必ずしも最初からHDD170やROM160に記憶されておらずともかまわない。例えば、コンピュータ100に挿入されるフレキシブルディスク、いわゆるFD、CD−ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に判定プログラム170aを記憶させる。そして、コンピュータ100がこれらの可搬用の物理媒体から判定プログラム170aを取得して実行するようにしてもよい。また、公衆回線、インターネット、LAN、WANなどを介してコンピュータ100に接続される他のコンピュータまたはサーバ装置などに判定プログラム170aを記憶させておき、コンピュータ100がこれらから判定プログラム170aを取得して実行するようにしてもよい。
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)画像データを取得し、
取得した前記画像データに含まれる複数の画素それぞれの周囲に位置する画素に対応付けられた画素値に基づき、前記複数の画素それぞれに応じた領域内での画素値の変化の方向を、前記複数の画素それぞれに対応付ける分布情報を生成し、
生成した前記分布情報に基づき、前記複数の画素のうち、対応付けられた方向の類似度が基準を満たす複数の画素の連続性に基づき、該複数の画素に対応する位置に直線が存在するか否かの判定を行う、
処理をコンピュータに実行させることを特徴とする判定プログラム。
取得した前記画像データに含まれる複数の画素それぞれの周囲に位置する画素に対応付けられた画素値に基づき、前記複数の画素それぞれに応じた領域内での画素値の変化の方向を、前記複数の画素それぞれに対応付ける分布情報を生成し、
生成した前記分布情報に基づき、前記複数の画素のうち、対応付けられた方向の類似度が基準を満たす複数の画素の連続性に基づき、該複数の画素に対応する位置に直線が存在するか否かの判定を行う、
処理をコンピュータに実行させることを特徴とする判定プログラム。
(付記2)前記判定を行う処理は、対応付けられた方向の類似度が基準を満たし、かつ前記画素値の変化の方向と交差する方向に位置する、前記複数の画素の連続性に基づき、該複数の画素に対応する位置に直線が存在するか否かの判定を行う、ことを特徴とする付記1に記載の判定プログラム。
(付記3)前記判定を行う処理は、対応付けられた方向の類似度が基準を満たし、かつ前記画素値の変化の方向と直交する方向に位置する、前記複数の画素の連続性に基づき、該複数の画素に対応する位置に直線が存在するか否かの判定を行う、ことを特徴とする付記2に記載の判定プログラム。
(付記4)前記複数の画素それぞれに応じた領域内での画素値の変化の方向は、前記画像データに含まれる複数の画素それぞれの周囲に位置する画素に対応付けられた画素値を用いて水平および垂直の方向ごとに算出されたエッジ成分に基づいて算出される、ことを特徴とする付記1、2または3に記載の判定プログラム。
(付記5)画像データを取得し、
取得した前記画像データに含まれる複数の画素それぞれの周囲に位置する画素に対応付けられた画素値に基づき、前記複数の画素それぞれに応じた領域内での画素値の変化の方向を、前記複数の画素それぞれに対応付ける分布情報を生成し、
生成した前記分布情報に基づき、前記複数の画素のうち、対応付けられた方向の類似度が基準を満たす複数の画素の連続性に基づき、該複数の画素に対応する位置に直線が存在するか否かの判定を行う、
処理をコンピュータが実行することを特徴とする判定方法。
取得した前記画像データに含まれる複数の画素それぞれの周囲に位置する画素に対応付けられた画素値に基づき、前記複数の画素それぞれに応じた領域内での画素値の変化の方向を、前記複数の画素それぞれに対応付ける分布情報を生成し、
生成した前記分布情報に基づき、前記複数の画素のうち、対応付けられた方向の類似度が基準を満たす複数の画素の連続性に基づき、該複数の画素に対応する位置に直線が存在するか否かの判定を行う、
処理をコンピュータが実行することを特徴とする判定方法。
(付記6)前記判定を行う処理は、対応付けられた方向の類似度が基準を満たし、かつ前記画素値の変化の方向と交差する方向に位置する、前記複数の画素の連続性に基づき、該複数の画素に対応する位置に直線が存在するか否かの判定を行う、ことを特徴とする付記5に記載の判定方法。
(付記7)前記判定を行う処理は、対応付けられた方向の類似度が基準を満たし、かつ前記画素値の変化の方向と直交する方向に位置する、前記複数の画素の連続性に基づき、該複数の画素に対応する位置に直線が存在するか否かの判定を行う、ことを特徴とする付記6に記載の判定方法。
(付記8)前記複数の画素それぞれに応じた領域内での画素値の変化の方向は、前記画像データに含まれる複数の画素それぞれの周囲に位置する画素に対応付けられた画素値を用いて水平および垂直の方向ごとに算出されたエッジ成分に基づいて算出される、ことを特徴とする付記5、6または7に記載の判定方法。
(付記9)画像データを取得する取得部と、
取得した前記画像データに含まれる複数の画素それぞれの周囲に位置する画素に対応付けられた画素値に基づき、前記複数の画素それぞれに応じた領域内での画素値の変化の方向を、前記複数の画素それぞれに対応付ける分布情報を生成する生成部と、
生成した前記分布情報に基づき、前記複数の画素のうち、対応付けられた方向の類似度が基準を満たす複数の画素の連続性に基づき、該複数の画素に対応する位置に直線が存在するか否かの判定を行う判定部と、
を有することを特徴とする情報処理装置。
取得した前記画像データに含まれる複数の画素それぞれの周囲に位置する画素に対応付けられた画素値に基づき、前記複数の画素それぞれに応じた領域内での画素値の変化の方向を、前記複数の画素それぞれに対応付ける分布情報を生成する生成部と、
生成した前記分布情報に基づき、前記複数の画素のうち、対応付けられた方向の類似度が基準を満たす複数の画素の連続性に基づき、該複数の画素に対応する位置に直線が存在するか否かの判定を行う判定部と、
を有することを特徴とする情報処理装置。
(付記10)前記判定部は、対応付けられた方向の類似度が基準を満たし、かつ前記画素値の変化の方向と交差する方向に位置する、前記複数の画素の連続性に基づき、該複数の画素に対応する位置に直線が存在するか否かの判定を行う、ことを特徴とする付記9に記載の情報処理装置。
(付記11)前記判定部は、対応付けられた方向の類似度が基準を満たし、かつ前記画素値の変化の方向と直交する方向に位置する、前記複数の画素の連続性に基づき、該複数の画素に対応する位置に直線が存在するか否かの判定を行う、ことを特徴とする付記10に記載の情報処理装置。
(付記12)前記複数の画素それぞれに応じた領域内での画素値の変化の方向は、前記画像データに含まれる複数の画素それぞれの周囲に位置する画素に対応付けられた画素値を用いて水平および垂直の方向ごとに算出されたエッジ成分に基づいて算出される、ことを特徴とする付記9、10または11に記載の情報処理装置。
1 システム
10 情報処理装置
11 通信I/F部
13 記憶部
13a 分布情報
13b ランサムウェア情報
15 制御部
15a 取得部
15b エッジ点検出部
15c エッジ方向算出部
15d 生成部
15e 探索部
15f 直線判定部
15g ランサムウェア判定部
30 管理者端末
10 情報処理装置
11 通信I/F部
13 記憶部
13a 分布情報
13b ランサムウェア情報
15 制御部
15a 取得部
15b エッジ点検出部
15c エッジ方向算出部
15d 生成部
15e 探索部
15f 直線判定部
15g ランサムウェア判定部
30 管理者端末
Claims (6)
- 画像データを取得し、
取得した前記画像データに含まれる複数の画素それぞれの周囲に位置する画素に対応付けられた画素値に基づき、前記複数の画素それぞれに応じた領域内での画素値の変化の方向を、前記複数の画素それぞれに対応付ける分布情報を生成し、
生成した前記分布情報に基づき、前記複数の画素のうち、対応付けられた方向の類似度が基準を満たす複数の画素の連続性に基づき、該複数の画素に対応する位置に直線が存在するか否かの判定を行う、
処理をコンピュータに実行させることを特徴とする判定プログラム。 - 前記判定を行う処理は、対応付けられた方向の類似度が基準を満たし、かつ前記画素値の変化の方向と交差する方向に位置する、前記複数の画素の連続性に基づき、該複数の画素に対応する位置に直線が存在するか否かの判定を行う、ことを特徴とする請求項1に記載の判定プログラム。
- 前記判定を行う処理は、対応付けられた方向の類似度が基準を満たし、かつ前記画素値の変化の方向と直交する方向に位置する、前記複数の画素の連続性に基づき、該複数の画素に対応する位置に直線が存在するか否かの判定を行う、ことを特徴とする請求項2に記載の判定プログラム。
- 前記複数の画素それぞれに応じた領域内での画素値の変化の方向は、前記画像データに含まれる複数の画素それぞれの周囲に位置する画素に対応付けられた画素値を用いて水平および垂直の方向ごとに算出されたエッジ成分に基づいて算出される、ことを特徴とする請求項1、2または3に記載の判定プログラム。
- 画像データを取得し、
取得した前記画像データに含まれる複数の画素それぞれの周囲に位置する画素に対応付けられた画素値に基づき、前記複数の画素それぞれに応じた領域内での画素値の変化の方向を、前記複数の画素それぞれに対応付ける分布情報を生成し、
生成した前記分布情報に基づき、前記複数の画素のうち、対応付けられた方向の類似度が基準を満たす複数の画素の連続性に基づき、該複数の画素に対応する位置に直線が存在するか否かの判定を行う、
処理をコンピュータが実行することを特徴とする判定方法。 - 画像データを取得する取得部と、
取得した前記画像データに含まれる複数の画素それぞれの周囲に位置する画素に対応付けられた画素値に基づき、前記複数の画素それぞれに応じた領域内での画素値の変化の方向を、前記複数の画素それぞれに対応付ける分布情報を生成する生成部と、
生成した前記分布情報に基づき、前記複数の画素のうち、対応付けられた方向の類似度が基準を満たす複数の画素の連続性に基づき、該複数の画素に対応する位置に直線が存在するか否かの判定を行う判定部と、
を有することを特徴とする情報処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017238084A JP2019106012A (ja) | 2017-12-12 | 2017-12-12 | 判定プログラム、判定方法および情報処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017238084A JP2019106012A (ja) | 2017-12-12 | 2017-12-12 | 判定プログラム、判定方法および情報処理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2019106012A true JP2019106012A (ja) | 2019-06-27 |
Family
ID=67061449
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017238084A Pending JP2019106012A (ja) | 2017-12-12 | 2017-12-12 | 判定プログラム、判定方法および情報処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2019106012A (ja) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0218681A (ja) * | 1988-07-07 | 1990-01-22 | Nissan Motor Co Ltd | 線分検出方法 |
JPH09167232A (ja) * | 1995-12-15 | 1997-06-24 | Yamaha Motor Co Ltd | 線分抽出方法 |
JPH11307428A (ja) * | 1998-04-22 | 1999-11-05 | Horon:Kk | 描画パターン検査装置および記録媒体 |
JP2011030140A (ja) * | 2009-07-29 | 2011-02-10 | Hitachi Automotive Systems Ltd | 外界認識装置 |
-
2017
- 2017-12-12 JP JP2017238084A patent/JP2019106012A/ja active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0218681A (ja) * | 1988-07-07 | 1990-01-22 | Nissan Motor Co Ltd | 線分検出方法 |
JPH09167232A (ja) * | 1995-12-15 | 1997-06-24 | Yamaha Motor Co Ltd | 線分抽出方法 |
JPH11307428A (ja) * | 1998-04-22 | 1999-11-05 | Horon:Kk | 描画パターン検査装置および記録媒体 |
JP2011030140A (ja) * | 2009-07-29 | 2011-02-10 | Hitachi Automotive Systems Ltd | 外界認識装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11643076B2 (en) | Forward collision control method and apparatus, electronic device, program, and medium | |
WO2020140698A1 (zh) | 表格数据的获取方法、装置和服务器 | |
JP6240199B2 (ja) | 画像における対象物の識別方法及び装置 | |
CN108875723B (zh) | 对象检测方法、装置和系统及存储介质 | |
WO2019057067A1 (zh) | 图像质量评估方法及装置 | |
JP4738469B2 (ja) | 画像処理装置、画像処理プログラムおよび画像処理方法 | |
US20110311100A1 (en) | Method, Apparatus and Computer Program Product for Providing Object Tracking Using Template Switching and Feature Adaptation | |
CN108875531B (zh) | 人脸检测方法、装置、系统及计算机存储介质 | |
JP6352695B2 (ja) | 文字検出装置、方法およびプログラム | |
US8442327B2 (en) | Application of classifiers to sub-sampled integral images for detecting faces in images | |
JP2014059875A5 (ja) | ||
CN111738225B (zh) | 人群聚集检测方法、装置、设备及存储介质 | |
US20190332858A1 (en) | Method and device for identifying wrist, method for identifying gesture, electronic equipment and computer-readable storage medium | |
JP5847062B2 (ja) | 画像処理装置 | |
US12020510B2 (en) | Person authentication apparatus, control method, and non-transitory storage medium | |
US20140126827A1 (en) | Motion image region identification device and method thereof | |
US20150139547A1 (en) | Feature calculation device and method and computer program product | |
JP2016095701A (ja) | 画像処理装置、画像処理方法、及び、プログラム | |
US10872423B2 (en) | Image detection device, image detection method and storage medium storing program | |
JP7078295B2 (ja) | 変状検出装置、変状検出方法、及びプログラム | |
JP2019106012A (ja) | 判定プログラム、判定方法および情報処理装置 | |
CN108875467B (zh) | 活体检测的方法、装置及计算机存储介质 | |
CN113762027B (zh) | 一种异常行为的识别方法、装置、设备及存储介质 | |
US9292763B2 (en) | System, method, and medium for image object and contour feature extraction | |
JP5911122B2 (ja) | 直線検出装置および直線検出方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200911 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20210910 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20210928 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20220329 |