(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-04-27
(45)【発行日】2023-05-10
(54)【発明の名称】物体検出装置、船舶、および物体検出方法
(51)【国際特許分類】
G06T 7/60 20170101AFI20230428BHJP
G06T 7/00 20170101ALI20230428BHJP
H04N 7/18 20060101ALI20230428BHJP
G08G 3/00 20060101ALI20230428BHJP
【FI】
G06T7/60 200Z
G06T7/00 350B
H04N7/18 D
H04N7/18 K
G08G3/00 A
(21)【出願番号】P 2019238527
(22)【出願日】2019-12-27
【審査請求日】2022-04-25
【国等の委託研究の成果に係る記載事項】(出願人による申告)令和元年度、国立研究開発法人新エネルギー・産業技術総合開発機構、「高効率・高速処理を可能とするAIチップ・次世代コンピューティングの技術開発/革新的AIエッジコンピューティング技術の開発/ソフトテンソルプロセッサによる超広範囲センシングAIエッジ技術の研究開発」委託研究、産業技術力強化法第17条の適用を受ける特許出願
(73)【特許権者】
【識別番号】502116922
【氏名又は名称】ジャパンマリンユナイテッド株式会社
(74)【代理人】
【識別番号】110001461
【氏名又は名称】弁理士法人きさ特許商標事務所
(72)【発明者】
【氏名】天谷 一朗
(72)【発明者】
【氏名】比留井 仁
【審査官】小池 正彦
(56)【参考文献】
【文献】韓国公開特許第10-2015-0125863(KR,A)
【文献】特開2008-204384(JP,A)
【文献】米国特許第9305214(US,B1)
【文献】特開2018-206269(JP,A)
【文献】小林充,外3名,深層学習による景観画像からの船影の検出,日本船舶海洋工学会講演会論文集,日本,日本船舶海洋工学会,2018年05月22日,第26号,p121-124
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/60
G06T 7/00
H04N 7/18
G08G 3/00
(57)【特許請求の範囲】
【請求項1】
物体を含む画像を表す第1教師データを複数用いて生成された第1学習モデルを用いて、該物体を検出する物体検出装置であって、
前記物体の検出に用いられる検出用画像データによって表される画像に含まれる水平線の検出処理を行う水平線検出部と、
前記画像における水平方向と前記水平線との間の第1角度が所定角度以下になるよう、前記検出用画像データを補正する補正部と、
前記補正部による補正後の前記検出用画像データによって表される画像において、前記第1学習モデルを用いて前記物体の検出処理を行う物体検出部と、
を備える物体検出装置。
【請求項2】
前記補正部は、前記第1角度が前記所定角度より大きい場合において、該第1角度が該所定角度以下になるよう、前記水平線が検出された前記画像の前記検出用画像データを補正する、請求項1に記載の物体検出装置。
【請求項3】
前記補正部は、
前記第1角度が前記所定角度より大きい場合には、前記水平線が検出された前記画像の前記検出用画像データに対して、該第1角度が該所定角度以下になるよう、該水平線が検出された該画像の回転処理に相当する補正処理を行うと共に、補正後の該検出用画像データに割り当てるデータ量を、前記第1角度に応じて増加させる、請求項1または請求項2に記載の物体検出装置。
【請求項4】
前記物体は船舶である、請求項1~請求項3のいずれか一項に記載の物体検出装置。
【請求項5】
前記水平線検出部は、
前記検出用画像データによって表される画像においてエッジ検出処理を行い、輝度または明度の変化の度合いが急峻な部分であって、直線状に延びる該部分である直線部分を、前記水平線として検出する、請求項1~請求項4のいずれか一項に記載の物体検出装置。
【請求項6】
前記水平線検出部は、
前記検出用画像データによって表される画像において、前記直線部分が複数存在する場合には、最長の前記直線部分を前記水平線として検出する、請求項5に記載の物体検出装置。
【請求項7】
前記水平線検出部は、
前記水平線の検出処理において、海または河川を含む画像を表す第2教師データを用いて生成された第2学習モデルを用いる、請求項5または請求項6に記載の物体検出装置。
【請求項8】
前記水平線検出部は、
前記水平線が検出されなかった場合において、前記物体検出部が、前記検出用画像データが表す前記画像から、少なくとも1つの前記物体を検出した場合には、検出された該物体の喫水線の検出処理を行い、少なくとも1つの該喫水線が検出された場合には、検出された該少なくとも1つの喫水線から水平線を推定し、
前記補正部は、
推定された前記水平線の前記水平方向からの第2角度が、前記所定角度以下になるよう、該水平線が推定された前記画像の前記検出用画像データを補正し、
前記物体検出部は、
前記第2角度が前記所定角度以下になるよう補正された後の前記検出用画像データによって表される画像において、前記第1学習モデルを用いて、既に検出されている前記少なくとも1つの物体以外の、前記物体の検出処理を行う、請求項1~請求項7のいずれか一項に記載の物体検出装置。
【請求項9】
請求項1~請求項8のいずれか一項に記載の物体検出装置を備えた、船舶。
【請求項10】
物体を含む画像を表す第1教師データを複数用いて生成された第1学習モデルを用いて、該物体を検出する物体検出装置が実行する物体検出方法であって、
前記物体の検出に用いられる検出用画像データによって表される画像に含まれる水平線の検出処理を行う水平線検出ステップと、
前記画像における水平方向と前記水平線との間の第1角度が該所定角度以下になるよう、前記検出用画像データを補正する補正ステップと、
前記補正ステップにおける補正後の前記検出用画像データによって表される画像において、前記第1学習モデルを用いて前記物体の検出処理を行う物体検出ステップと、
を含む物体検出方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像から物体を検出する物体検出装置、当該物体検出装置を備えた船舶、および物体検出方法に関する。
【背景技術】
【0002】
航行中の船舶において、船員は、水面に浮かぶブイ等の浮遊物、岩礁、および他の船舶などの障害物に自船が衝突しないように、自船の周囲を監視する作業を、航行中、行う必要がある。監視作業は、船員への負担が大きく、また、障害物が見逃されると、衝突事故が発生してしまう可能性もある。船員の負担を軽減すると共に、衝突事故の防止を目的として、カメラの撮影画像から周囲の物体を自動的に検出する物体検出装置の開発が行われている。
【0003】
このような画像認識による物体検出装置の一例として、例えば、非特許文献1に記載されている装置がある。この非特許文献1に開示された装置は、畳み込みニューラルネットワークを応用した物体検出技術を、浦賀水道が撮影された景観画像に適用し、浦賀水道を航行する船舶を検出する検出処理を行う。将来、普及が予想される自律運航船において、周囲を監視するために画像認識による物体検出装置の実用化が期待されている。
【先行技術文献】
【非特許文献】
【0004】
【文献】小林充、外3名、「深層学習による景観画像からの船影の検出」日本船舶海洋工学会講演会論文集、2018年、第26号、pp.121-124
【発明の概要】
【発明が解決しようとする課題】
【0005】
上述した画像認識による検出処理においては、検出対象の物体を撮影した複数の画像を予め学習させることによって得られた学習モデルが用いられ、カメラで撮像された撮影画像に含まれる当該物体の有無の判定や、当該物体の種類の識別処理等が行われる。
【0006】
ここで、例えば、船舶に設置されたカメラによる撮影画像を用いて、他の船舶等の物体を検出する場合、当該撮影画像は、地上に固定されたカメラによって撮影される画像に比べ、傾いたものになる場合が多い。更にその傾きも一定とは限らないため、撮影画像に含まれる当該物体の傾きも様々なものになる。
【0007】
このような様々な傾きの物体を撮影した撮影画像を対象に検出処理を行う場合、学習に用いた物体の画像と比べ、傾きが大きく異なる物体の画像を対象とするケースが多くなるため、物体の検出精度が低下するという問題がある。このような場合において物体の検出精度の向上のため、あらゆる傾きで撮影された当該物体の画像が学習時に必要となりうる。多くの場合、あらゆる傾きで撮影された当該物体の画像として、例えば、ランダムに回転させた、当該物体の画像が、学習対象として追加される。しかし、この場合には、学習時における計算時間が長くなる虞がある。
【0008】
本発明は、上記課題を解決するためになされたものであり、学習時における計算時間を増加させずに、物体の検出精度を向上させる物体検出装置、当該物体検出装置を備えた船舶、および物体検出方法を提供することを目的とする。
【課題を解決するための手段】
【0009】
本発明に係る物体検出装置は、物体を含む画像を表す第1教師データを複数用いて生成された第1学習モデルを用いて、該物体を検出する物体検出装置であって、前記物体の検出に用いられる検出用画像データによって表される画像に含まれる水平線の検出処理を行う水平線検出部と、前記画像における水平方向と前記水平線との間の第1角度が所定角度以下になるよう、前記検出用画像データを補正する補正部と、前記補正部による補正後の前記検出用画像データによって表される画像において、前記第1学習モデルを用いて前記物体の検出処理を行う物体検出部と、を備える。
【0010】
本発明に係る船舶は、上記物体検出装置を備えたものである。
【0011】
本発明に係る物体検出方法は、物体を含む画像を表す第1教師データを複数用いて生成された第1学習モデルを用いて、該物体を検出する物体検出装置が実行する物体検出方法であって、前記物体の検出に用いられる検出用画像データによって表される画像に含まれる水平線の検出処理を行う水平線検出ステップと、前記画像における水平方向と前記水平線との間の第1角度が該所定角度以下になるよう、前記検出用画像データを補正する補正ステップと、前記補正ステップにおける補正後の前記検出用画像データによって表される画像において、前記第1学習モデルを用いて前記物体の検出処理を行う物体検出ステップと、を含む。
【発明の効果】
【0012】
本発明に係る物体検出装置、当該物体検出装置を備えた船舶、および物体検出方法によれば、水平線検出部が、物体の検出に用いられる検出用画像データによって表される画像に含まれる水平線を検出し、補正部が、水平方向と当該水平線との間の第1角度が所定角度以下になるよう検出用画像データを補正する。そして、物体検出部が、補正された検出用画像データについて、第1学習モデルを用いて物体の検出処理を行う。これにより、検出処理の対象である検出用画像データによって表される物体の画像の水平方向からの傾きが所定の範囲以内(所定角度以内)に抑えられる。従って、例えば、第1学習モデルの生成時に、第1教師データによって表される物体の画像の水平方向からの傾きを所定の範囲以内に抑えれば、第1教師データによって表される物体の画像と、検出用画像データによって表される物体の画像との傾きの相違が抑制される。すなわち、対象となる物体の画像について、学習対象の第1教師データと検出対象データとの一致性が高まるので、検出処理による物体の検出精度が向上する。また、水平方向から所定の範囲を越える傾きの物体を検出するために、学習時において、学習対象の画像をランダムに回転させて様々な傾きの物体の画像を生成する必要性や、回転後の膨大な画像を学習させる必要性もなくなるので、学習時における計算時間の増加を抑えることができる。
【図面の簡単な説明】
【0013】
【
図1】実施の形態1に係る物体検出装置の一構成例を示すブロック図である。
【
図2】補正前の検出用画像データによって表される画像の一例である。
【
図3】
図2に例示した画像の補正後における画像を示す図である。
【
図4】実施の形態1に係る物体検出装置による物体検出処理の一例を示すフローチャートである。
【
図5】実施の形態2に係る物体検出装置による物体検出処理の一例を示すフローチャートである。
【
図6】実施の形態2に係る物体検出装置による物体検出処理の一例を示すフローチャートである。
【発明を実施するための形態】
【0014】
以下、実施の形態に係る物体検出装置、船舶、および物体検出方法について、図面に基づき説明する。なお、以下の図面では各構成部材の大きさの関係が実際のものとは異なる場合がある。
【0015】
実施の形態1.
図1は、実施の形態1に係る物体検出装置の一構成例を示すブロック図である。物体検出装置1は、畳み込みニューラルネットワークを用いて、入力された画像データによって表される画像から物体を検出する。画像上の物体の検出に先立ち、物体検出装置1は、当該物体の検出処理に用いるための学習モデルを生成し、当該学習モデルを当該物体検出装置1または他の記憶装置等に記憶する。物体検出装置1は、入力された教師データとしての画像データを複数用いて学習を行うことにより、学習モデルを生成する。以下では、物体の検出処理に用いるための学習モデルを第1学習モデルと記載し、当該第1学習モデルを生成する際に用いる教師データを第1教師データと記載する。
【0016】
物体検出装置1は、学習処理部2と、学習処理部2による演算の結果を記憶する記憶部3と、検出処理部4とを備える。学習処理部2は、カメラ等による撮影によって得られた複数の画像データ、または、スキャナ等によって読み取られた複数の画像データ等の各々を第1教師データとして用いて第1学習モデルを生成する。以下では、当該第1学習モデルの生成において用いられる複数の画像データをデータセットと記載する場合もある。
【0017】
記憶部3は、学習処理部2が生成した第1学習モデルを記憶する。検出処理部4は、カメラ5による画像データから、検出対象の物体を検出する。なお、実施の形態1では、検出処理部4の検出対象を水上に現れている船舶であるとする。このため、学習処理部2が用いるデータセットに含まれる第1教師データとしての画像データは、様々な海または河川等において、航行または停泊等を行っている船舶を含む画像のデータであるとする。ただし、データセットには、地上における船舶を含む画像のデータが含まれていてもよい。また、検出処理部4が船舶を検出する際に用いる画像は、カメラ5の撮影により得られた画像であって、当該画像には海または河川等が含まれてもよい。当該画像には、島または砂浜等の陸地、埠頭、岸壁、および橋等のうちの少なくとも一つが含まれてもよい。以下では、検出処理部4が船舶などの検出対象の物体を検出する際に用いる画像のデータを検出用画像データと記載する場合もある。
【0018】
実施の形態1におけるカメラ5は、船舶などの移動手段に設置されていても、陸上に設置されていてもよい。カメラ5は、レンズ50と、撮像部51と、A/D変換回路52(Analog-to-Digital Converter)と、出力部53とを備える。被写体における反射光は、レンズ50に入射し、レンズ50によって撮像部51に集光される。撮像部51は、例えば、CCD(Charge Coupled Device)およびCMOS(Complementary Metal Oxide Semiconductor)イメージセンサ等であり、マトリクス状に配置された複数の受光素子を有する。撮像部51は、複数の受光素子により、光を電気信号へ変換する。
【0019】
A/D変換回路52は、撮像部51から電気信号を取得し、当該電気信号をアナログ信号からデジタル信号に変換する。出力部53は、A/D変換回路52によってデジタル信号へと変換された当該電気信号を物体検出装置1に出力する。
【0020】
検出処理部4は、カメラ5から取得した電気信号から2次元の画像を表すための画像データを生成する。当該画像データは、検出用画像データに相当する。なお、検出処理部4がカメラ5から取得する、検出用画像データの元となる電気信号も、以下では検出用画像データと記載する場合もあるとする。検出処理部4は、上記記憶部3に記憶されている第1学習モデルを用いて、当該検出用画像データによって表される画像上における船舶の検出処理を行う。
【0021】
ここで、カメラ5は、平坦な地上ではなく、船舶同士の衝突を防止するため、船舶上に設置される場合がある。船舶は、海または河川等において、波に煽られたり、水の流れに応じて動揺したりするため、当該船舶に設置されたカメラ5によって撮影される画像は、実際の水平方向から傾いたものとなりうる。この場合、当該カメラ5によって他の船舶が撮影されると、当該他の船舶が表された画像も傾いたものとなりうる。
【0022】
傾いた画像上において船舶が、検出処理によって船舶として検出されるためには、同じように傾いた船舶を表す画像データを第1教師データとして用いて生成された第1学習モデルを用いることが好ましい。第1学習モデルの生成の際に、傾いた船舶を表す画像のデータが用いられていない場合には、大きく傾いた画像上において船舶を検出できない可能性がある。
【0023】
傾いた画像における船舶などの物体を検出するため、従来の物体検出装置は、学習時において、データ増強(Data Augmentation)により、学習の対象となるデータセットにおける画像をランダムに回転させた画像を学習対象として、角度に対するロバスト性を高めていた。
【0024】
しかし、学習時におけるデータセットに、傾きを加えた画像を追加する場合には、データセットに含まれる画像データの数が大幅に増えることにより、学習時間が長期化するという問題がある。
【0025】
ここで、船舶においてカメラが固定されている場合において、当該カメラによる撮影によって得られた画像が大きく傾いている頻度は、それほど高くはないと想定される。これにより、当該画像において船舶(船舶画像)が大きく傾いている頻度は、それほど高くはないと想定される。例えば、大時化など海が大きく荒れている場合などにおいて、航行を行う船舶はそれほど多くはないと推定され、船舶に固定されたカメラによって撮影されて得られる画像上の他の船舶(船舶画像)の傾きも、予め定められた範囲内に留まるものと推定される。
【0026】
そのため、学習時間をより短くするため、実施の形態1に係る物体検出装置1は、学習時に、データセットに含まれる画像データに対して回転処理を行わず、海または河川等において航行または停泊等している船舶を被写体とした撮影画像を表す画像データをそのまま第1教師データとして使用する。また、物体検出装置1は、画像上において船舶が大きく傾いている場合においても船舶の検出精度を落とさないようにするため、船舶の検出処理の際に用いられる検出用画像データによって表される画像の傾きを、第1教師データが表す画像の傾きと一致するよう補正する。なお、第1教師データとして用いられる画像データは、地上または船舶に固定されたカメラによる撮影により得られたものとし、当該画像データによって表される画像の傾きは、例えば5°などの予め定められた所定角度以下であるとする。なお、第1教師データとして用いられる画像データには、多少傾いた船舶を表す画像データが含まれているため、検出用画像データによって表される画像の多少の傾きに対しては、ロバスト性が担保される。
【0027】
検出処理部4は、検出用画像データによって表される画像が傾いている場合において、その傾きが0°、または、例えば5°以下の所定角度以下になるよう、当該検出用画像データに対して回転処理などの補正処理を行う。具体的には、検出処理部4は、画像における水平線が、当該画像における水平方向から、傾きが0°または上記所定角度以下となるよう補正する。なお、画像における水平方向とは、画像の2次元座標系(XY座標系)におけるX方向に相当し、仮に当該画像を画面に表示した場合において、当該画面を有する機器の底面を、平坦な地面に設置した場合における当該画面の水平方向と等しい方向である。なお、物体検出装置1は、画面表示を行うための表示装置を有さなくともよく、また、画像は表示対象でなくともよい。
【0028】
画像の傾きの補正後において検出処理部4は、第1学習モデルを用いて、画像上の船舶の検出処理を行う。
【0029】
上述したような、船舶の検出処理前の処理の実行のため、検出処理部4は、検出用画像取得部40と、水平線検出部41と、補正部42と、物体検出部43とを有する。なお、
図1においては、検出用画像取得部40と水平線検出部41との間の接続関係、水平線検出部41と補正部42との間の接続関係、および、補正部42と物体検出部43との間の接続関係が示されているが、接続関係はこれに限られず、例えば、物体検出部43と水平線検出部41とが接続されていてもよい。
【0030】
検出用画像取得部40は、カメラ5と有線または無線によって通信し、カメラから検出用画像データの元となる電気信号を取得し、当該電気信号から検出用画像データを生成する。水平線検出部41は、エッジ検出処理、またはRGBの差を用いた処理等により水平線を検出する。なお、水平線検出部41は、水平線に限らず、水平線と平行に延びる、岸壁または陸地と空との境界線を検出してもよい。なお、当該境界線も、以下では水平線として記載する。
【0031】
水平線の検出処理について以下詳細に述べる。検出用画像データは、画素毎の、RGB色空間におけるR(Red)、G(Green)、B(Blue)の各値を含む。なお、画素とは、RGBの各値などの色情報と関連付けられる、画像データにおける最小の要素を指すものとし、各画素には、上述したX方向(水平方向)のX座標とY方向(鉛直方向)のY座標との組み合わせが対応づけられている。検出用画像データは、RGB色空間における当該各値に代えて、YUV色空間(YCbCr色空間)におけるY、U(Cb)、V(Cr)の各値、またはHSV色空間のH(Hue)、S(Saturation)、V(Value)の各値を、画素毎に有してもよい。なお、YUV色空間のYは輝度、U(Cb)およびV(Cr)は色差である。また、HSV色空間におけるHは色相、Sは彩度、Vは明度である。RGB色空間における各値と、YUV色空間(YCbCr色空間)における各値と、HSV色空間における各値とは、互いに変換可能である。
【0032】
水平線検出部41は、画素毎のRGB色空間における各値から、例えば、画素毎の輝度または明度等を算出し、検出用画像データによって表される画像において、輝度または明度等の変化の度合いが急峻な部分を抽出する。なお、輝度または明度等の変化の度合いが急峻な部分とは、例えば、当該輝度または明度等の変化の度合いが所定の閾値以上となる部分を指すものとする。ここで、例えば、空を表す画素と、海を表す画素とでは輝度(明度)が異なり、空を表す画素同士の輝度(明度)の変化の度合い、および、海を表す画素同士の輝度(明度)の変化の度合いに比べて、空と海との境界部分における、輝度(明度)の変化の度合いは大きいものになる。このようなことから、当該閾値は、空と海との境界部分における輝度(明度)の変化の度合い、陸地と海との境界部分における輝度(明度)の変化の度合い、および、海(または、空もしくは陸地)を表す画素同士の輝度(明度)の変化の度合い等に基づいて、予め定められているものとする。
【0033】
ここで、輝度(明度)の変化の度合いが急峻な部分のうち、水平線は、略直線を形成するものと考えられる。また、同じように輝度(明度)の変化の度合いが急峻な部分のうち、陸地において隣り合う、色彩の大きく異なる2つの建築物の境界、あるいは、空と雲または飛行物体との境界などは、水平線の検出処理において、水平線を示す部分の候補として省かれる必要がある。このため、水平線検出部41は、輝度(明度)の変化の度合いが急峻な部分であって直線状に延びる部分を、水平線の候補とする。以下では、このような、輝度(明度)の変化の度合いが急峻な部分であって直線状に延びる部分を直線部分と記載する。
【0034】
しかし、このままでは、まだ、水平線検出部41は、勾配がある陸地または岸壁等と、空との境界を、水平線として抽出してしまう可能性もある。このため、水平線検出部41は、水平線を示す部分の候補となりうる部分のうち、最長の直線部分を水平線として抽出する。ただし、検出用画像データが狭い湾内を表すものである場合などであって、水面と陸地との境が湾曲線を形成する場合、あるいは、陸地と空との境が直線部分となり、当該直線部分が水平線と平行ではなく、且つ当該直線部分が、陸または空と、海との境界線よりも長い場合において、水平線検出部41は、陸地と空との境界を水平線とするなどの誤検出を行う可能性がある。
【0035】
このような場合においても水平線検出部41が正確に水平線を検出するために、物体検出装置1の学習処理部2は、例えば、海または河川等を表す画像のデータを教師データとして学習し、海または河川等に関する学習モデルを予め生成し、記憶部3に当該海または河川等に関する学習モデルを記憶させておいて、水平線検出部41は、水平線の検出処理の際に、当該海または河川等に関する学習モデルを用いて水平線の検出を行ってもよい。以下では、当該海または河川等に関する学習モデルを第2学習モデルと記載し、当該第2学習モデルの生成に用いられる教師データを第2教師データと記載する。なお、当該第2学習モデルは、海または河川等の色に関する情報を含んでもよい。また当該海または河川等の色に関する情報は、RGBの各値、YUV(YCbCr)の各値、またはHSVの各値等を含むものでもよい。
【0036】
上述の水平線検出処理には、輝度(明度)によるエッジ検出処理が用いられているが、これ以外にも、色相(H)もしくは彩度(S)によるエッジ検出処理、または、RGBの各値の変化の度合いなどが用いられてもよい。なお、色相もしくは彩度によるエッジ検出処理が用いられる場合には、当該色相または彩度等の変化の度合いが所定の閾値以上となる部分であって、直線状に延びる部分が直線部分とされてもよい。
【0037】
補正部42は、検出された水平線を示す直線部分の、画像における水平方向からの傾きが上記所定角度を超える場合において検出用画像データを補正する。補正部42は、例えば、次のように検出用画像データを補正する。補正部42は、画像における水平方向からの水平線の傾き、または、画像における水平方向と、水平線との間の角度を算出する。以下では当該角度を第1角度と記載する。補正部42は、算出した第1角度が上述した所定角度より大きい場合には、当該傾きを0、または当該第1角度を0°など、当該第1角度が所定角度以下となるよう検出用画像データを補正する。なお、補正部42は、当該第1角度が上述した所定角度より大きい場合に限らず、全ての検出用画像データに対して回転処理を行ってもよい。
【0038】
ここで、画像に対して回転を行う場合において、元の画像サイズで出力すると、画像の端のデータなど、検出用画像データの一部が欠落する虞がある。このため、補正部42は、検出用画像データ全体を物体検出部43に出力するため、補正する傾きおよび第1角度に応じて、当該検出用画像データに割り当てるデータ量を大きくする。例えば、補正部42は、画素数を増加させてもよい。なお、当該データ量は、画面上に当該検出用画像データによる画像が表示される場合があるときには、当該画像の面積に対応するものとする。
【0039】
物体検出部43は、畳み込みニューラルネットワークによって、記憶部3に記憶されている第1学習モデルを用いて、検出用画像データによって表される画像における船舶の検出処理を行う。
【0040】
以下、
図2および
図3を参照して、水平線検出部41、補正部42、および物体検出部43による具体的な処理内容について説明する。
図2は、補正前の検出用画像データによって表される画像の一例である。
図3は、
図2に例示した画像の補正後における画像を示す図である。
図2および
図3に示す画像のXY座標系のX方向は、画像における水平方向であり、Y方向は、画像における鉛直方向に相当する。
図2および
図3において、ハッチングが施された領域Aは空を表し、他のハッチングが施された領域Bは海を表す。直線部分Cは水平線を表す。人工物Dは、建築物または船舶等を表す。
図2におけるフレームF1は、補正部42による補正前の検出用画像データに割り当てられたデータ量に対応する、当該検出用画像データによる画像の表示範囲を示す。
図2に示す画像において、水平線検出部41は、領域Aおよび人工物Dと、領域Bとの間の輝度(明度)の変化の度合いが急峻であること、またはRGBの変化の度合いが大きいことなどから、直線部分Cを、水平線を示す直線部分の候補とする。また、水平線検出部41は、当該直線部分Cが、水平線を示す直線部分の候補のうち最長であることから、当該直線部分Cを水平線として抽出する。
【0041】
補正部42は、画像における水平方向と水平線Cとの間の第1角度を算出する。当該第1角度が所定角度より大きい場合において、補正部42は、当該第1角度を所定角度以下にするために検出用画像データに対して回転による補正処理を行う。
図3に示す場合では、補正部42は、当該第1角度を0°とする回転処理を行っている。このため、水平線Cは、画像における水平方向に平行となっている。
【0042】
図3におけるフレームF2は、補正後の検出用画像データに割り当てられたデータ量に対応する、画像の表示範囲を示す。なお、このフレームF2における画像は、スクロールによって全体が示されるものであってもよい。
図3におけるフレームF2の長辺における長さL1は、
図2に示すフレームF1の長辺の長さに相当し、フレームF2の短辺のおける長さL2は、フレームF1の短辺の長さに相当する。
図3に示すように、補正後の検出用画像データは、フレームF1に対応するデータ量を割り当てられると、長さL1の長辺と、長さL2の短辺とを用いて形成される長方形以外の部分における情報が欠落する可能性がある。このような欠落を防ぐために、補正部42は、補正後の検出用画像データのX方向における範囲とY方向における範囲とを、補正前の検出用画像データから増加させ、検出用画像データにおける全画素の各色情報を全て含むことができる分のデータ量を、当該補正後の検出用画像データのデータ量として割り当てる。
【0043】
物体検出部43は、第1学習モデルに基づいて、補正後の検出用画像データによって表される画像から船舶Eを検出する。
【0044】
実施の形態1に係る物体検出装置1は、例えば、GPU(Graphics Processing Unit)またはCPU(Central Processing Unit)等のプロセッサ、ROM(Read Only Memory)、RAM(Random Access Memory)またはキャッシュメモリ等のメモリ、HDD(Hard Disk Drive)等の記憶装置、通信用のインターフェース回路、および、スキャナまたはカメラ等の入力装置を用いて構成することができる。記憶部3による機能は、記憶装置によって実現できる。学習処理部2による第1学習モデルおよび第2学習モデル等の学習モデルの生成機能は、プロセッサが、入力装置に入力されたデータセットを用いて、メモリに記憶されている学習用のプログラムを読みだして実行することにより実現できる。検出処理部4における検出用画像取得部40による機能は、通信用のインターフェース回路によって実現できる。検出処理部4における水平線検出部41、補正部42、および物体検出部43による機能は、プロセッサが、カメラ5から取得した検出用画像データを用いて、メモリに記憶されている物体検出プログラムを読み出して実行することにより実現できる。なお、上述した物体検出装置1の全部または一部の機能は専用のハードウェアによって実現されるものでもよい。
【0045】
図4は、実施の形態1に係る物体検出装置による物体検出処理の一例を示すフローチャートである。ステップS1において物体検出装置1の学習処理部2は、船舶が含まれる画像のデータセットを用いて第1学習モデルを生成し、当該第1学習モデルを記憶部3に記憶させる。
【0046】
物体検出装置1は、ステップS2においてカメラ5から検出用画像データの元となる電気信号を取得するまでの間(ステップS2:NO)、待機する。ステップS2において検出処理部4における検出用画像取得部40がカメラ5から検出用画像データの元となる電気信号を取得した場合には(ステップS2:YES)、ステップS3において検出用画像取得部40は、当該電気信号から検出用画像データを生成する。
【0047】
ステップS4において水平線検出部41は、上述したエッジ検出処理によって、あるいはRGBの各値の差を用いた処理等によって、検出用画像データによって表される画像における水平線の検出処理を行う。なお、実施の形態1においては、水平線検出部41は、画像上における直線部分のうち、最も長い直線部分を水平線として抽出するものとするが、当該水平線の検出方法に加えて、海の色などの情報であって、RGBの各値、YUV(YCbCr)の各値、またはHSVの各値等を含む情報などが水平線の検出処理の際に用いられてもよい。
【0048】
ステップS4における水平線の検出処理によって、水平線検出部41が水平線を検出した場合には(ステップS5:YES)、ステップS6において補正部42は、画像における水平方向と水平線との間の第1角度を算出する。なお、当該第1角度は、当該水平線の当該水平方向からの傾きが求まれば算出できる。
【0049】
ステップS7において補正部42は、ステップS6において算出した第1角度が所定角度より大きいか否かを判定する。所定角度は、上述したように、第1学習モデル生成の際に用いられた第1教師データにおける水平線と水平方向との間の角度の上限であり、例えば5°などである。第1角度が所定角度より大きい場合には(ステップS7:YES)、ステップS8において補正部42は、当該第1角度を所定角度以下にするため、検出用画像データを補正する。これにより画像の傾きが補正される。例えば、補正部42は、
図2に示す画像を
図3に示す画像へと補正したように、当該第1角度が0°になるように検出用画像データを補正してもよい。これ以外にも、補正部42は、当該第1角度が1°または2°等の所定角度以下の特定の角度になるよう検出用画像データを補正してもよい。あるいは、補正部42は、当該第1角度の大きさが、複数の第1教師データの各々によって表される画像における水平線と水平方向との間の角度の大きさの最頻値または平均値となるよう検出用画像データを補正してもよい。なお、当該最頻値または当該平均値は、所定角度の大きさ以下であり、予め記憶部3において記憶されていてもよい。
【0050】
なお、ステップS8において補正部42は、補正後の検出用画像データの欠損を防ぐため、当該補正後の検出用画像データのX方向における範囲とY方向における範囲とを、補正前の検出用画像データから増加させ、補正後の検出用画像データにおける全画素の各々の、X座標とY座標と色情報とを含むことができる分のデータ量を、当該補正後の検出用画像データのデータ量とする。ステップS8に続いて、ステップS9において物体検出部43は、補正後の検出用画像データによって表される画像における船舶の検出処理を実行する。なお、ステップS5において水平線が検出されなかった場合には(ステップS5:NO)、補正部42は処理を実行することなく、ステップS9において物体検出部43は、ステップS3において生成された検出用画像データによって表される画像における船舶の検出処理を実行する。また、ステップS7において第1角度が所定角度以下である場合には(ステップS7:NO)、補正部42は補正処理を実行することなく、ステップS9において物体検出部43は、ステップS3において生成された検出用画像データによって表される画像における船舶の検出処理を実行する。ステップS9における処理の後、物体検出装置1は、物体検出処理を終了する。当該物体検出処理の一例においては、補正部42は、ステップS7において第1角度が所定角度より大きいか否かを判定し、当該第1角度が所定角度より大きい場合には画像の傾きを補正しているが、補正部42は、ステップS7の処理を行わず、ステップS6の処理の後にステップS8における画像の補正処理を行ってもよい。
【0051】
実施の形態1に係る物体検出装置1は、船舶等の物体を含む画像を表す第1教師データを複数用いて生成された第1学習モデルを用いて、当該物体を検出する物体検出装置であって、水平線検出部41と補正部42と物体検出部43とを備える。水平線検出部41は、物体の検出に用いられる検出用画像データによって表される画像に含まれる水平線の検出処理を行う。補正部42は、画像における水平方向と当該水平線との間の第1角度が所定角度以下になるよう検出用画像データを補正する。物体検出部43は、補正部42による補正後の検出用画像データによって表される画像において、第1学習モデルを用いて物体の検出処理を行う。
【0052】
水平線検出部41が、物体の検出に用いるための画像において水平線を検出し、補正部42が、画像における水平方向と当該水平線との間の第1角度を所定角度以下になるよう補正することにより、検出用画像データによって表される画像の傾きが所定の範囲以内(所定角度以内)に抑えられる。これにより、検出用画像データによって表される画像に検出対象の物体がある場合において、当該物体の水平方向からの傾きも所定の範囲以内に抑えられる。従って、学習時の第1教師データによって表される、物体の画像の、水平方向からの傾きを所定の範囲以内に抑えれば、第1教師データによって表される物体の画像と、検出用画像データによって表される物体の画像との傾きの相違が抑制される。すなわち、対象となる物体の画像について、学習対象の第1教師データと検出対象データとの一致性が高まるので、検出処理による物体の検出精度が向上する。また、水平方向から所定の範囲を越える傾きの物体を検出するために、学習時において、学習対象の画像をランダムに回転させて様々な傾きの物体の画像を生成する必要性や、回転後の膨大な画像を学習させる必要性もなくなるので、学習時における計算時間の増加を抑えることができる。
【0053】
実施の形態1における補正部42は、第1角度が所定角度より大きい場合において、当該第1角度が当該所定角度以下になるよう、水平線が検出された画像の検出用画像データを補正する。すなわち、補正部42は、第1角度が所定角度より大きい場合にのみ補正処理を行って、第1角度が所定角度以下の場合には補正処理を行わない。これにより、不要な処理を抑制できるので、演算処理負荷を低減できる。
【0054】
実施の形態1における補正部42は、第1角度が所定角度より大きい場合には、水平線が検出された画像の検出用画像データに対して、第1角度が所定角度以下になるよう、当該水平線が検出された当該画像の回転処理に相当する補正処理を行う。また補正部42は、補正後の検出用画像データに割り当てるデータ量を、当該第1角度に応じて増加させる。これにより、補正後の検出用画像データに含まれる情報に欠損が生じることがなくなり、検出の取りこぼしが低減される。
【0055】
実施の形態1における第1教師データによって表される画像に水平線が含まれる場合には、当該水平線の水平方向からの角度は、所定角度以下であってもよい。これにより、第1教師データの画像に含まれる物体をあらゆる傾きとなるように、ランダムに回転させた膨大な画像を第1教師データとして用いる必要がなくなるため、第1学習モデルの学習に要する計算時間の増加を抑えることができる。そして、水平線と水平方向との間の角度が所定角度以下となる画像データのみを多く第1教師データとして用いた第1学習モデルが、補正後の検出用画像データの画像に含まれる物体の検出処理に用いられるため、学習時における計算時間の増加を抑制するとともに、物体の検出精度の向上が図られる。
【0056】
実施の形態1における検出対象の物体は、船舶である。上記検出処理を船舶の検出に用いることで、船舶は他の船舶を的確に検出することができるようになり、船舶同士の衝突事故の抑制に繋がる。
【0057】
実施の形態1における水平線検出部41は、検出用画像データによって表される画像においてエッジ検出処理を行い、輝度または明度の変化の度合いが急峻な部分であって、直線状に延びる部分である直線部分を、水平線として検出する。これにより、画像において水平線を検出できるようになる。
【0058】
実施の形態1における水平線検出部41は、検出用画像データによって表される画像において、直線部分が複数存在する場合には、最長の直線部分を水平線として検出する。これにより、水平線の検出精度が向上する。
【0059】
実施の形態1における水平線検出部41は、検出用画像データによって表される画像における、RGBの変化の度合いから水平線を検出する。これにより、画像において水平線を検出できるようになる。
【0060】
実施の形態1における水平線検出部41は、水平線の検出処理において、海または河川等に関する第2学習モデルを用いる。これにより、例えば、空と陸地との境界線、または、空と建造物との境界線等が水平線として検出される可能性が低減され、水平線検出部41は、より的確に水平線を検出可能になる。
【0061】
上記実施の形態1では、物体検出装置1が学習処理部2を備える例を示したが、必ずしも学習処理部2を備えなくてよい。例えば、学習処理部2は、外部に設けられていてもよい。
【0062】
上記実施の形態1では、検出用画像データがカメラ5から入力される場合について説明したが、検出用画像データは、データサーバ等の不図示の外部装置からネットワークを介して物体検出装置1に入力されるものでもよい。
【0063】
さらに、上記実施の形態1において説明した物体検出装置1を船舶が備えていてもよい。物体検出装置1を備える船舶は、例えば、コンテナ船、石油タンカー、自動車運搬船、客船およびLNG(Liquefied Natural Gas)運搬船等である。物体検出装置1を備える船舶の種類は限定されない。
【0064】
実施の形態2.
上述した実施の形態においては、水平線検出部41が水平線を検出できなかった場合には、補正部42等による処理もなく、船舶の検出処理が行われた。しかし、画像が大きく傾いた状態のまま、船舶が適切に検出される可能性は高くはない。また、水平線検出部41が、水平線としての候補の直線部分を複数抽出した上で、水平線を検出できない場合もありえ、その場合においても船舶の検出のために画像の傾きが修正される必要がある場合もある。実施の形態2に係る物体検出装置1は、水平線の検出がされなかった場合において、フィードバック処理を行い、再度水平線の検出処理を行うことにより、船舶の検出精度を高めるものである。実施の形態2に係る物体検出装置1の各構成要素は、
図1に示す上記実施の形態1と同様である。ただし、実施の形態2においては、
図1に示す構成要素同士の接続関係に加え、物体検出部43と水平線検出部41とが接続されているものとする。以下では、特に断りがない限り、実施の形態2に係る物体検出装置1における各構成要素の機能および動作等のうち、上記実施の形態1におけるものと相違する点のみについて記載する。
【0065】
実施の形態2における水平線検出部41は、水平線を検出しなかった場合であって、物体検出部43が船舶を少なくとも1つ検出した場合には、検出された当該船舶の喫水線の検出処理を行う。なお、喫水線とは、水に浮かんでいる船舶が水面と接している線を意味するものとする。
【0066】
水平線検出部41は、喫水線が検出された場合には、当該喫水線から水平線を推定する。水平線の方向は、多くの場合、喫水線の方向と等しい。そのため、例えば、1つの喫水線が検出された場合には、当該喫水線の方向が水平線の方向となりうる。画像の回転の際に用いるものは、水平線と水平方向との間の角度であるため、水平線の方向が推定できれば足りるため、1つの喫水線が検出された場合には、水平線検出部41は、当該喫水線と平行な任意の直線を水平線として推定してもよい。一方、水平線検出部41は、複数の喫水線が検出された場合には、これらの喫水線の水平方向からの傾きの平均値もしくは最頻値を傾きとする任意の直線、または、これらの喫水線のうちの1つと平行な任意の直線を水平線として推定してもよい。
【0067】
補正部42は、水平線検出部41が推定した水平線の水平方向からの角度である第2角度に基づいて上記同様の補正を行う。
【0068】
図5および
図6は、実施の形態2に係る物体検出装置による物体検出処理の一例を示すフローチャートである。
図5に示すステップS11~ステップS19の一連の処理における各ステップにおける処理は、上記実施の形態1におけるステップS1~ステップS9の各ステップにおける処理を同様のため、説明を省略する。ステップS19における物体検出部43による船舶の検出処理の後、ステップS20において物体検出部43は、ステップS14の処理によって既に水平線が検出されているか否かを判定する。なお、当該判定は、水平線検出部41が行ってもよい。既に水平線が検出されている場合には(ステップS20:YES)、物体検出装置1は物体検出処理を終了する。
【0069】
ステップS14における処理によって水平線が検出されていない場合には(ステップS20:NO)、ステップS21において物体検出部43は、少なくとも1つの船舶を検出したか否かを判定する。なお、当該判定は、水平線検出部41が行ってもよい。少なくとも1つの船舶が検出されていない場合には(ステップS21:NO)、物体検出装置1は物体検出処理を終了する。少なくとも1つの船舶が検出されている場合には(ステップS21:YES)、
図6におけるステップS22において水平線検出部41は、検出された船舶の喫水線の検出処理を行う。
【0070】
ステップS22において水平線検出部41は、例えば、エッジ検出処理、RGBの各値の差を用いた処理、および上記第2学習モデルを用いた処理等のうちの少なくとも1つによって、検出用画像データによって表される画像における喫水線の検出処理を行う。例えば、水平線検出部41は、検出されている船舶に着目し、画像における鉛直方向に沿って下方向においてエッジ検出処理またはRGBの各値の差を用いた処理等を行うことにより、喫水線の検出処理を行ってもよい。また、これに限定されず、水平線検出部41は、画像における水平方向に沿ってエッジ検出処理またはRGBの各値の差を用いた処理等を行うことにより、喫水線の検出処理を行ってもよい。
【0071】
ステップS22における喫水線の検出処理によって、水平線検出部41が少なくとも1つの船舶の喫水線を検出した場合には(ステップS23:YES)、ステップS24において水平線検出部41は、検出した喫水線に基づいて水平線を推定する。水平線は、検出された1以上の喫水線のうちの1つと平行な直線として推定されてもよいし、検出された複数の喫水線の各傾きの平均値等を傾きとする直線として推定されてもよい。
【0072】
ステップS24における処理後、ステップS25において補正部42は、水平方向と、ステップS24で推定した水平線との間の第2角度を算出する。ステップS26において補正部42は、ステップS25において算出した第2角度が、上述した所定角度より大きいか否かを判定する。第2角度が所定角度より大きい場合には(ステップS26:YES)、ステップS27において補正部42は、当該第2角度を所定角度以下にするため、検出用画像データを補正する。これにより画像の傾きが補正される。例えば、補正部42は、
図2に示す画像を
図3に示す画像へと補正したように、当該第2角度が0°になるように検出用画像データを補正してもよい。これ以外にも、補正部42は、当該第2角度が1°もしくは2°等の所定角度以下の特定の角度になるよう検出用画像データを補正してもよい。あるいは、補正部42は、当該第2角度の大きさが、複数の第1教師データの各々によって表される画像における水平線と水平方向との間の角度の大きさの最頻値または平均値となるよう検出用画像データを補正してもよい。なお、当該最頻値または当該平均値は、所定角度の大きさ以下であり、予め記憶部3において記憶されていてもよい。
【0073】
なお、ステップS27において補正部42は、ステップS8と同様、補正後の検出用画像データのX方向における範囲とY方向における範囲とを、補正前の検出用画像データから増加させ、補正後の検出用画像データにおける全画素の各々の、X座標とY座標と色情報とを含むことができる分のデータ量を、当該補正後の検出用画像データのデータ量とする。ステップS27に続いて、ステップS28において物体検出部43は、補正後の検出用画像データによって表される画像における船舶であって、ステップS19で検出されなかった船舶の検出処理を実行する。
【0074】
ステップS23において喫水線が検出されなかった場合には(ステップS23:NO)、補正部42は処理を実行することなく、ステップS28において物体検出部43は、ステップS13において生成された検出用画像データによって表される画像における船舶であって、ステップS19で検出されなかった船舶の検出処理を実行する。なお、ステップS23において喫水線が検出されなかった場合において、当該ステップS28における処理に代えて、物体検出装置1は、物体検出処理を終了してもよい。
【0075】
ステップS26において第2角度が所定角度以下である場合には(ステップS26:NO)、補正部42は補正処理を実行することなく、ステップS28において物体検出部43は、ステップS13において生成された検出用画像データによって表される画像における船舶であって、ステップS19で検出されなかった船舶の検出処理を実行する。なお、ステップS26において第2角度が所定角度以下である場合において、当該ステップS28における処理に代えて、物体検出装置1は、物体検出処理を終了してもよい。なお、補正部42は、必ずしもステップS26を実行しなくともよい。すなわち、補正部42は、第2角度が上述した所定角度より大きい場合に限らず、全ての検出用画像データに対して回転処理を行ってもよい。ステップS28における処理の後、物体検出装置1は、物体検出処理を終了する。
【0076】
実施の形態2における水平線検出部41は、水平線が検出されなかった場合において、物体検出部43が少なくとも1つの船舶を検出した場合には、検出された当該船舶の喫水線の検出処理を行う。そして、水平線検出部41は、少なくとも1つの喫水線が検出された場合には、検出された当該少なくとも1つの喫水線から水平線を推定する。補正部42は、推定された水平線の水平方向からの第2角度が、所定角度以下になるよう、当該水平線が推定された画像の検出用画像データを補正する。物体検出部43は、第2角度が所定角度以下になるよう補正された後の検出用画像データによって表される画像において、第1学習モデルを用いて、既に検出されている船舶以外の船舶の検出処理を行う。これにより、物体検出部43は、水平線が検出されなかった場合でも、フィードバック処理により、水平線を推定して、画像の傾きを補正することによって、画像の補正なしでは検出できなかった他の船舶を検出することができるようになり、船舶の検出精度が向上する。
【0077】
実施の形態2における補正部42は、第2角度が所定角度より大きい場合において、当該第2角度が当該所定角度以下になるよう、水平線が推定された画像の検出用画像データを補正する。すなわち、補正部42は、第2角度が所定角度より大きい場合にのみ補正処理を行って、第2角度が所定角度以下の場合には補正処理を行わない。これにより、不要な処理を抑制できるので、演算処理負荷を低減できる。
【0078】
実施の形態2における第1教師データによって表される画像に水平線または喫水線が含まれる場合には、当該水平線または当該喫水線の水平方向からの角度は、所定角度以下であってもよい。これにより、ランダムに回転させた画像の画像データを第1教師データとして用いる必要がなくなるため、学習対象の画像データに対する回転処理などの必要がなくなる。そして、水平線または喫水線と水平方向との間の角度が所定角度以下となる画像データのみを多く第1教師データとして用いた第1学習モデルが、補正後の検出用画像データを用いての物体の検出処理に用いられるため、学習時間を増加させることなく、物体の検出の精度の向上が図られる。
【0079】
なお、本実施の形態1~2において
図4~6を参照して説明した物体検出方法をコンピュータに実行させるためのプログラムは、記録媒体に記録され、当該記録媒体から物体検出装置1に読み込まれるものであっていてもよいし、ネットワークを介して物体検出装置1にインストールされるものであってもよい。なお、記録媒体は、例えば、磁気ディスクまたは光学ディスク等である。光学ディスクは、例えば、CD(Compact Disc)またはDVD(Digital Versatile Disc)である。あるいは、記録媒体は、フラッシュメモリ等の半導体メモリが搭載されたUSB(Universal Serial Bus)メモリであってもよい。
【符号の説明】
【0080】
1 物体検出装置、2 学習処理部、3 記憶部、4 検出処理部、5 カメラ、40 検出用画像取得部、41 水平線検出部、42 補正部、43 物体検出部、50 レンズ、51 撮像部、52 A/D変換回路、53 出力部、A、B 領域、C 水平線、D 人工物、E 船舶、F1、F2 フレーム、L1、L2 長さ。