(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-06-30
(45)【発行日】2025-07-08
(54)【発明の名称】ライン抽出方法
(51)【国際特許分類】
G06T 7/60 20170101AFI20250701BHJP
G06T 7/187 20170101ALI20250701BHJP
【FI】
G06T7/60 200G
G06T7/187
(21)【出願番号】P 2021152662
(22)【出願日】2021-09-17
【審査請求日】2024-02-12
(73)【特許権者】
【識別番号】000003207
【氏名又は名称】トヨタ自動車株式会社
(74)【代理人】
【識別番号】100147485
【氏名又は名称】杉村 憲司
(74)【代理人】
【識別番号】230118913
【氏名又は名称】杉村 光嗣
(74)【代理人】
【識別番号】100187078
【氏名又は名称】甲原 秀俊
(74)【代理人】
【識別番号】100176728
【氏名又は名称】北村 慎吾
(72)【発明者】
【氏名】上野 洋輔
【審査官】藤原 敬利
(56)【参考文献】
【文献】特開2020-113200(JP,A)
【文献】特開平02-171981(JP,A)
【文献】特開平01-119875(JP,A)
【文献】布田 寿康,大町 真一郎,阿曽 弘具,連結成分追跡による文書画像中の折れ線グラフの認識,電子情報通信学会論文誌,日本,社団法人電子情報通信学会,2003年06月01日,第J86-D-II巻,第6号,第825-835頁
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00- 7/90
G06V 10/00-20/90
(57)【特許請求の範囲】
【請求項1】
1本以上の線を含む画像から、少なくとも1本の線を抽出するライン抽出方法であって、
前記1本以上の線のいずれかの点を表すピクセルの指定をユーザから受け付け、指定されたピクセルを選択するか、又は前記画像の隅のピクセルから前記画像を探索して、前記1本以上の線のいずれかの点を表すピクセルを検出するまで、探索範囲を1ピクセルずつ広げていき、検出したピクセルを選択することで、前記画像に含まれる複数のピクセルの中から、前記1本以上の線のいずれかの点を表すピクセルを選択することと、
前記画像において、選択されたピクセルを中心ピクセルとする一定の範囲を第1時点のフィルタとして設定することと、
第1時点以降の各時点を第i時点としたとき、第i時点のフィルタにおいて、第i時点以前のフィルタの中心ピクセル以外で、前記1本以上の線のいずれかの点を表すピクセルである近傍ピクセルがある場合に、当該近傍ピクセルを中心ピクセルとする一定の範囲を次の時点のフィルタとして設定することと、
第1時点以降のフィルタの中心ピクセルをつなげて得られる線を数値化することと
を含み、
前記設定することは、第1時点以降のいずれかの時点である第j時点のフィルタにおいて、2つ以上の近傍ピクセルがある場合には、当該2つ以上の近傍ピクセルのそれぞれを中心ピクセルとする一定の範囲を次の時点のフィルタとして設定し、第j時点以前のフィルタの中心ピクセルをつなげて得られる第1線と、当該2つ以上の近傍ピクセルのそれぞれについて、第j時点の次の時点以降のフィルタの中心ピクセルをつなげて得られる第2線とのパターン、太さ、濃淡、又は色を比較して、前記第1線とつなげる第2線を決定することを含むライン抽出方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ライン抽出方法に関する。
【背景技術】
【0002】
特許文献1には、画像として入力されたグラフ上で格子を有する窓センサを移動させ、窓センサの格子とグラフとの交点を抽出し、抽出された交点からグラフを認識するデータ読取り装置が開示されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
従来技術では、線の重なり、又はコメントなどのノイズの影響により、グラフを認識する際の認識精度が低下するおそれがある。
【0005】
本開示の目的は、画像から線を抽出する際の抽出精度を向上させることである。
【課題を解決するための手段】
【0006】
本開示に係るライン抽出方法は、
1本以上の線を含む画像から、少なくとも1本の線を抽出するライン抽出方法であって、
前記画像に含まれる複数のピクセルの中から、前記1本以上の線のいずれかの点を表すピクセルを選択することと、
前記画像において、選択されたピクセルを中心ピクセルとする一定の範囲を第1時点のフィルタとして設定することと、
第1時点以降の各時点を第i時点としたとき、第i時点のフィルタにおいて、第i時点以前のフィルタの中心ピクセル以外で、前記1本以上の線のいずれかの点を表すピクセルである近傍ピクセルがある場合に、当該近傍ピクセルを中心ピクセルとする一定の範囲を次の時点のフィルタとして設定することと、
第1時点以降のフィルタの中心ピクセルをつなげて得られる線を数値化することと
を含み、
前記設定することは、第1時点以降のいずれかの時点である第j時点のフィルタにおいて、2つ以上の近傍ピクセルがある場合には、当該2つ以上の近傍ピクセルのそれぞれを中心ピクセルとする一定の範囲を次の時点のフィルタとして設定し、第j時点以前のフィルタの中心ピクセルをつなげて得られる第1線と、当該2つ以上の近傍ピクセルのそれぞれについて、第j時点の次の時点以降のフィルタの中心ピクセルをつなげて得られる第2線とのパターン、太さ、濃淡、又は色を比較して、前記第1線とつなげる第2線を決定することを含む。
【発明の効果】
【0007】
本開示によれば、画像から線を抽出する際の抽出精度が向上する。
【図面の簡単な説明】
【0008】
【
図1】本開示の実施形態に係るライン抽出手順を示す図である。
【
図2】本開示の実施形態に係る画像処理装置の構成を示す図である。
【
図5】
図3に示した画像に第1時点のフィルタを適用する例を示す図である。
【
図6】
図3に示した画像に第2時点のフィルタを適用する例を示す図である。
【
図7】
図3に示した画像に第3時点のフィルタを適用する例を示す図である。
【
図10】破線のパターンを検出する例を示す図である。
【
図11】一点鎖線のパターンを検出する例を示す図である。
【
図12】二点鎖線のパターンを検出する例を示す図である。
【発明を実施するための形態】
【0009】
以下、本開示の一実施形態について、図を参照して説明する。
【0010】
各図中、同一又は相当する部分には、同一符号を付している。本実施形態の説明において、同一又は相当する部分については、説明を適宜省略又は簡略化する。
【0011】
図1及び
図2を参照して、本実施形態の概要を説明する。
【0012】
ステップS1において、PDFファイルなどの文書が画像処理装置20に入力される。「PDF」は、Portable Document Formatの略語である。画像処理装置20は、例えば、携帯電話機、スマートフォン、若しくはタブレットなどのモバイル機器、PC、又は専用機器である。「PC」は、personal computerの略語である。
【0013】
ステップS2において、ステップS1で入力された文書の中の領域が指定される。
【0014】
ステップS3において、ステップS2で指定された領域に含まれるグラフ11からユーザが抽出したい線が選択される。
図1に示した例では、グラフ11が2つの波形を含む波形グラフである。この例では、ユーザが読みたい波形が指定される。
【0015】
ステップS4において、画像処理装置20は、ステップS3で選択された線を数値化する。
図1に示した例では、画像処理装置20は、ステップS3で指定された波形を数値化する。
【0016】
図2を参照して、画像処理装置20の構成を説明する。
【0017】
画像処理装置20は、制御部21と、記憶部22と、通信部23と、入力部24と、出力部25とを備える。
【0018】
制御部21は、少なくとも1つのプロセッサ、少なくとも1つのプログラマブル回路、少なくとも1つの専用回路、又はこれらの任意の組合せを含む。プロセッサは、CPU若しくはGPUなどの汎用プロセッサ、又は特定の処理に特化した専用プロセッサである。「CPU」は、central processing unitの略語である。「GPU」は、graphics processing unitの略語である。プログラマブル回路は、例えば、FPGAである。「FPGA」は、field-programmable gate arrayの略語である。専用回路は、例えば、ASICである。「ASIC」は、application specific integrated circuitの略語である。制御部21は、画像処理装置20の各部を制御しながら、画像処理装置20の動作に関わる処理を実行する。
【0019】
記憶部22は、少なくとも1つの半導体メモリ、少なくとも1つの磁気メモリ、少なくとも1つの光メモリ、又はこれらの任意の組合せを含む。半導体メモリは、例えば、RAM又はROMである。「RAM」は、random access memoryの略語である。「ROM」は、read only memoryの略語である。RAMは、例えば、SRAM又はDRAMである。「SRAM」は、static random access memoryの略語である。「DRAM」は、dynamic random access memoryの略語である。ROMは、例えば、EEPROMである。「EEPROM」は、electrically erasable programmable read only memoryの略語である。記憶部22は、例えば、主記憶装置、補助記憶装置、又はキャッシュメモリとして機能する。記憶部22には、画像処理装置20の動作に用いられるデータと、画像処理装置20の動作によって得られたデータとが記憶される。
【0020】
通信部23は、少なくとも1つの通信用インタフェースを含む。通信用インタフェースは、例えば、LANインタフェース、LTE、4G規格、若しくは5G規格などの移動通信規格に対応したインタフェース、又はBluetooth(登録商標)などの近距離無線通信規格に対応したインタフェースである。「LAN」は、local area networkの略語である。「LTE」は、Long Term Evolutionの略語である。「4G」は、4th generationの略語である。「5G」は、5th generationの略語である。通信部23は、画像処理装置20の動作に用いられるデータを受信し、また画像処理装置20の動作によって得られるデータを送信する。
【0021】
入力部24は、少なくとも1つの入力用インタフェースを含む。入力用インタフェースは、例えば、物理キー、静電容量キー、ポインティングデバイス、ディスプレイと一体的に設けられたタッチスクリーン、カメラ、LiDAR、又はマイクロフォンである。「LiDAR」は、light detection and rangingの略語である。入力部24は、画像処理装置20の動作に用いられるデータを入力する操作を受け付ける。入力部24は、画像処理装置20に備えられる代わりに、外部の入力機器として画像処理装置20に接続されてもよい。接続用インタフェースとしては、例えば、USB、HDMI(登録商標)、又はBluetooth(登録商標)などの規格に対応したインタフェースを用いることができる。「USB」は、Universal Serial Busの略語である。「HDMI(登録商標)」は、High-Definition Multimedia Interfaceの略語である。
【0022】
出力部25は、少なくとも1つの出力用インタフェースを含む。出力用インタフェースは、例えば、ディスプレイ又はスピーカである。ディスプレイは、例えば、LCD又は有機ELディスプレイである。「LCD」は、liquid crystal displayの略語である。「EL」は、electro luminescenceの略語である。出力部25は、画像処理装置20の動作によって得られるデータを出力する。出力部25は、画像処理装置20に備えられる代わりに、外部の出力機器として画像処理装置20に接続されてもよい。接続用インタフェースとしては、例えば、USB、HDMI(登録商標)、又はBluetooth(登録商標)などの規格に対応したインタフェースを用いることができる。
【0023】
画像処理装置20の機能は、本実施形態に係るプログラムを、制御部21としてのプロセッサで実行することにより実現される。すなわち、画像処理装置20の機能は、ソフトウェアにより実現される。プログラムは、画像処理装置20の動作をコンピュータに実行させることで、コンピュータを画像処理装置20として機能させる。すなわち、コンピュータは、プログラムに従って画像処理装置20の動作を実行することにより画像処理装置20として機能する。
【0024】
プログラムは、非一時的なコンピュータ読取り可能な媒体に記憶しておくことができる。非一時的なコンピュータ読取り可能な媒体は、例えば、フラッシュメモリ、磁気記録装置、光ディスク、光磁気記録媒体、又はROMである。プログラムの流通は、例えば、プログラムを記憶したSDカード、DVD、又はCD-ROMなどの可搬型媒体を販売、譲渡、又は貸与することによって行う。「SD」は、Secure Digitalの略語である。「DVD」は、digital versatile discの略語である。「CD-ROM」は、compact disc read only memoryの略語である。プログラムをサーバのストレージに格納しておき、サーバから他のコンピュータにプログラムを転送することにより、プログラムを流通させてもよい。プログラムをプログラムプロダクトとして提供してもよい。
【0025】
コンピュータは、例えば、可搬型媒体に記憶されたプログラム又はサーバから転送されたプログラムを、一旦、主記憶装置に格納する。そして、コンピュータは、主記憶装置に格納されたプログラムをプロセッサで読み取り、読み取ったプログラムに従った処理をプロセッサで実行する。コンピュータは、可搬型媒体から直接プログラムを読み取り、プログラムに従った処理を実行してもよい。コンピュータは、コンピュータにサーバからプログラムが転送される度に、逐次、受け取ったプログラムに従った処理を実行してもよい。サーバからコンピュータへのプログラムの転送は行わず、実行指示及び結果取得のみによって機能を実現する、いわゆるASP型のサービスによって処理を実行してもよい。「ASP」は、application service providerの略語である。プログラムは、電子計算機による処理の用に供する情報であってプログラムに準ずるものを含む。例えば、コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータは、「プログラムに準ずるもの」に該当する。
【0026】
画像処理装置20の一部又は全ての機能が、制御部21としてのプログラマブル回路又は専用回路により実現されてもよい。すなわち、画像処理装置20の一部又は全ての機能が、ハードウェアにより実現されてもよい。
【0027】
以下では、画像処理装置20の動作を説明する。この動作は、本実施形態に係るライン抽出方法に相当する。
【0028】
ステップS1において、画像処理装置20の制御部21は、通信部23又は入力部24を介して、文書の入力をユーザから受け付ける。
【0029】
ステップS2において、制御部21は、通信部23又は入力部24を介して、ステップS1で入力された文書の中の領域の指定をユーザから受け付ける。
【0030】
ステップS3において、制御部21は、通信部23又は入力部24を介して、ステップS2で指定された領域に含まれるグラフ11中の少なくとも1本の線の選択をユーザから受け付ける。
【0031】
ステップS4において、制御部21は、グラフ11をピクセル化することで、
図3に示すような画像12を生成する。画像12は、グラフ11中の線に対応する1本以上の線を含む。グラフ11は、本実施形態では2次元グラフであるが、2次元地図など、他の種類の2次元データ、又は3次元CAD若しくは3次元地図などの3次元データに置き換えられてもよい。「CAD」は、computer-aided designの略語である。制御部21は、生成した画像12から、ステップS3で選択された少なくとも1本の線をオリジナルラインとして抽出する。
【0032】
ステップS4の前に、画像処理装置20の制御部21は、通信部23又は入力部24を介して、グラフ11の縦軸と横軸との位置及び方向の指定をユーザから受け付けてもよい。あるいは、制御部21は、ステップS2で指定された領域の中から縦軸と横軸とを検出して、縦軸と横軸との位置及び方向を特定してもよい。縦軸と横軸との方向が傾いている場合は、制御部21は、縦軸と横軸との方向がそれぞれ縦方向及び横方向になるようにグラフ11を回転させてもよい。
【0033】
ステップS4の処理の具体例を説明する。
図3に示した例では、同系色の波形W1,W2がグラフ11に含まれ、波形W1がステップS3で選択されたとする。
【0034】
画像処理装置20の制御部21は、画像12に含まれる複数のピクセルの中から、画像12に含まれる1本以上の線のいずれかの点を表すピクセルを選択する。具体的には、制御部21は、通信部23又は入力部24を介して、点を表すピクセルの指定をユーザから受け付け、指定されたピクセルを選択する。あるいは、制御部21は、左上のピクセルから下方向に画像12を探索して、点を表すピクセルを検出し、検出したピクセルを選択する。制御部21は、点を表すピクセルを検出するまで、探索範囲を右方向に1ピクセルずつ広げていく。点を表すピクセルをユーザが指定するモードと、点を表すピクセルを自動的に検出するモードとを選択できるようにしてもよい。
図3に示した例では、上から3番目、左から2番目のピクセルが選択されるとする。
【0035】
画像処理装置20の制御部21は、画像12において、選択されたピクセルを中心ピクセルC1とする一定の範囲を第1時点のフィルタF1として設定する。制御部21は、第1時点以降の各時点を第i時点としたとき、近傍ピクセルNiがある場合に、近傍ピクセルNiを中心ピクセルとする一定の範囲を次の時点のフィルタとして設定する。近傍ピクセルNiは、第i時点のフィルタFiにおいて、第i時点以前のフィルタの中心ピクセル以外で、画像12に含まれる1本以上の線のいずれかの点を表すピクセルである。フィルタ形状は、任意の形状でよいが、
図4に示した例では正方形である。フィルタサイズは、任意のサイズでよいが、
図4に示した例では、縦5ピクセル、横5ピクセルの合計25ピクセルである。第i時点のフィルタFiにおいて、上から2番目、左から4番目のピクセルPi[2,4]など、中心ピクセルCi以外のピクセルは、評価対象ピクセルである。中心ピクセルCiは、任意のピクセル数でよいが、
図4に示した例では1ピクセルである。
【0036】
図3に示した例に、
図4に示した例を適用すると、画像処理装置20の制御部21は、各時点のフィルタの中心ピクセルと近傍ピクセルとの連続性から波形を読み取る処理を実行する。すなわち、
図5に示すように、第1時点のフィルタF1では、上から4番目、左から5番目のピクセルP1[4,5]が近傍ピクセルN1に該当する。そのため、制御部21は、近傍ピクセルN1を第2時点のフィルタF2の中心ピクセルC2として設定する。
図6に示すように、第2時点のフィルタF2では、上から3番目、左から5番目のピクセルP2[3,5]が近傍ピクセルN2に該当する。そのため、制御部21は、近傍ピクセルN2を第3時点のフィルタF3の中心ピクセルC3として設定する。
図7に示すように、第3時点のフィルタF3では、上から2番目、左から5番目のピクセルP3[2,5]が近傍ピクセルN3に該当する。そのため、制御部21は、近傍ピクセルN3を第4時点のフィルタF4の中心ピクセルC4として設定する。同様に、第4時点のフィルタF4では、上から1番目、左から5番目のピクセルP4[1,5]が近傍ピクセルN4に該当する。そのため、制御部21は、近傍ピクセルN4を第5時点のフィルタF5の中心ピクセルC5として設定する。第5時点のフィルタF5では、近傍ピクセルN5がない。そのため、波形を読み取る処理が終了する。
【0037】
画像処理装置20の制御部21は、第1時点以降のフィルタの中心ピクセルをつなげて得られる線を数値化することで、オリジナルラインを抽出する。
図3に示した例では、制御部21は、中心ピクセルC1,C2,C3,C4,C5をつなげて得られる線を数値化することで、波形W1をオリジナルラインとして抽出する。
【0038】
図3に示した例とは異なり、
図8に示した例では、ユーザが読みたい波形に他の波形との交点13があるため、連続性の判断が困難である。そのため、画像処理装置20の制御部21は、
図9に示すように、波形パターンを解析し、得られた解析結果に基づいて連続性を決定する。
図9において、「B」は黒、「W」は白を表す。例えば、連続するパターンから2サイクルを標本化し、波形パターンを検出する方法を用いることができる。
図10、
図11、及び
図12は、それぞれ破線、一点鎖線、及び二点鎖線を検出する例を示している。波形パターンを評価することで、線種が同一であるかどうかを判定することができる。
【0039】
具体的には、画像処理装置20の制御部21は、第1時点以降のいずれかの時点である第j時点のフィルタFjにおいて、2つ以上の近傍ピクセルがある場合には、当該2つ以上の近傍ピクセルのそれぞれを中心ピクセルとする一定の範囲を次の時点のフィルタとして設定する。制御部21は、第j時点以前のフィルタの中心ピクセルをつなげて得られる第1線と、当該2つ以上の近傍ピクセルのそれぞれについて、第j時点の次の時点以降のフィルタの中心ピクセルをつなげて得られる第2線とのパターンを比較して、第1線とつなげる第2線を決定する。
【0040】
図8に示した例では、ユーザが読みたい波形として、実線L1a及び実線L2aの組合せがステップS3で選択されたとする。この場合、制御部21は、第1時点から第j時点までのフィルタを用いて、実線L1aを第1線として検出する。第j時点のフィルタFjでは、実線L2aの点を表すピクセルと、破線L2bの点を表すピクセルとのそれぞれが近傍ピクセルに該当する。そのため、制御部21は、これら2つの近傍ピクセルのそれぞれを第j時点の次の時点のフィルタの中心ピクセルとして設定し、残りの波形を読み取る処理を別々に実行する。その結果、制御部21は、実線L2a及び破線L2bをそれぞれ第2線として検出する。実線L1aと破線L2bとのパターンが異なるのに対し、実線L1aと実線L2aとのパターンが同じであるため、制御部21は、実線L2aを、第1線とつなげる第2線に決定する。
【0041】
上述したように、本実施形態では、画像処理装置20の制御部21は、グラフ11を画像12として取得する。制御部21は、線種によるプロットパターンの差を認識して、グラフ11中の線を読み取る。よって、本実施形態によれば、グラフ11中の線を高精度に読み取ることができる。すなわち、画像12から線を抽出する際の抽出精度が向上する。例えば、任意波形の連続性を考慮し、検出率を向上させることができる。
【0042】
本実施形態では、空間内の任意の線のみを抽出したい場合に、線に重なる他の線、又はコメントなど、空間に含まれるノイズの影響を受けにくくなり、抽出率が向上する。
図8に示した例において、仮に連続値の傾きの変化からのみ連続性を検出したとする。その場合、交点13以降、実線L2aと破線L2bとのそれぞれの実線L1aに対する傾きを見ていくと、破線L2bのほうが傾きが少ないため、実線L1aが破線L2bにつながっていくと誤って判定されてしまう。しかし、本実施形態によれば、線種を見ることで、実線L1aが実線L2aにつながっていくと正確に判定することができる。
【0043】
本実施形態の一変形例として、線の太さ、濃淡、又は色で連続性が判断されてもよい。すなわち、画像処理装置20の制御部21は、第j時点のフィルタFjにおいて、2つ以上の近傍ピクセルがある場合には、第1線と第2線とのパターンに代えて、若しくは第1線と第2線とのパターンとともに、第1線と第2線との太さ、濃淡、色、又はこれらの任意の組合せを比較して、第1線とつなげる第2線を決定してもよい。
【0044】
本実施形態の一変形例として、線の太さで連続性が判断されてもよい。すなわち、画像処理装置20の制御部21は、第j時点のフィルタFjにおいて、2つ以上の近傍ピクセルがある場合には、第1線と第2線とのパターンに代えて、又は第1線と第2線とのパターンとともに、第1線と第2線との太さを比較して、第1線とつなげる第2線を決定してもよい。例えば、
図13に示すような、太さの異なる波形W3,W4,W5のうち、任意の波形のみを抽出したい場合に、ノイズの影響を受けにくくなり、抽出率が向上する。
【0045】
本実施形態の一変形例として、線の濃淡で連続性が判断されてもよい。すなわち、画像処理装置20の制御部21は、第j時点のフィルタFjにおいて、2つ以上の近傍ピクセルがある場合には、第1線と第2線とのパターン、太さ、若しくはその両方に代えて、又は第1線と第2線とのパターン、太さ、若しくはその両方とともに、第1線と第2線との濃淡を比較して、第1線とつなげる第2線を決定してもよい。例えば、
図14に示すような、濃淡の異なる波形W6,W7,W8のうち、任意の波形のみを抽出したい場合に、ノイズの影響を受けにくくなり、抽出率が向上する。
【0046】
本実施形態の一変形例として、線の色で連続性が判断されてもよい。すなわち、画像処理装置20の制御部21は、第j時点のフィルタFjにおいて、2つ以上の近傍ピクセルがある場合には、第1線と第2線とのパターン、太さ、濃淡、若しくはこれらの任意の組合せに代えて、又は第1線と第2線とのパターン、太さ、濃淡、若しくはこれらの任意の組合せとともに、第1線と第2線との色を比較して、第1線とつなげる第2線を決定してもよい。その場合も、ノイズの影響を受けにくくなり、抽出率が向上する。
【0047】
本開示は上述の実施形態に限定されるものではない。例えば、ブロック図に記載の2つ以上のブロックを統合してもよいし、又は1つのブロックを分割してもよい。フローチャートに記載の2つ以上のステップを記述に従って時系列に実行する代わりに、各ステップを実行する装置の処理能力に応じて、又は必要に応じて、並列的に又は異なる順序で実行してもよい。その他、本開示の趣旨を逸脱しない範囲での変更が可能である。
【符号の説明】
【0048】
11 グラフ
12 画像
13 交点
20 画像処理装置
21 制御部
22 記憶部
23 通信部
24 入力部
25 出力部