IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 富士通テン株式会社の特許一覧

特開2025-40144画像処理装置、画像処理方法、プログラム、および、画像処理システム
<>
  • 特開-画像処理装置、画像処理方法、プログラム、および、画像処理システム 図1
  • 特開-画像処理装置、画像処理方法、プログラム、および、画像処理システム 図2
  • 特開-画像処理装置、画像処理方法、プログラム、および、画像処理システム 図3
  • 特開-画像処理装置、画像処理方法、プログラム、および、画像処理システム 図4
  • 特開-画像処理装置、画像処理方法、プログラム、および、画像処理システム 図5A
  • 特開-画像処理装置、画像処理方法、プログラム、および、画像処理システム 図5B
  • 特開-画像処理装置、画像処理方法、プログラム、および、画像処理システム 図5C
  • 特開-画像処理装置、画像処理方法、プログラム、および、画像処理システム 図5D
  • 特開-画像処理装置、画像処理方法、プログラム、および、画像処理システム 図6
  • 特開-画像処理装置、画像処理方法、プログラム、および、画像処理システム 図7
  • 特開-画像処理装置、画像処理方法、プログラム、および、画像処理システム 図8A
  • 特開-画像処理装置、画像処理方法、プログラム、および、画像処理システム 図8B
  • 特開-画像処理装置、画像処理方法、プログラム、および、画像処理システム 図9
  • 特開-画像処理装置、画像処理方法、プログラム、および、画像処理システム 図10
  • 特開-画像処理装置、画像処理方法、プログラム、および、画像処理システム 図11
  • 特開-画像処理装置、画像処理方法、プログラム、および、画像処理システム 図12
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2025040144
(43)【公開日】2025-03-24
(54)【発明の名称】画像処理装置、画像処理方法、プログラム、および、画像処理システム
(51)【国際特許分類】
   G06T 7/00 20170101AFI20250314BHJP
   G06V 10/94 20220101ALI20250314BHJP
   G06T 1/40 20060101ALI20250314BHJP
   G06N 3/0464 20230101ALI20250314BHJP
【FI】
G06T7/00 350C
G06V10/94
G06T1/40
G06N3/0464
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2023146878
(22)【出願日】2023-09-11
(71)【出願人】
【識別番号】000237592
【氏名又は名称】株式会社デンソーテン
(74)【代理人】
【識別番号】110001933
【氏名又は名称】弁理士法人 佐野特許事務所
(72)【発明者】
【氏名】山埜 啓輔
(72)【発明者】
【氏名】岡田 康貴
(72)【発明者】
【氏名】関 竜介
【テーマコード(参考)】
5B057
5L096
【Fターム(参考)】
5B057BA02
5B057CH09
5B057DA06
5B057DB02
5B057DB09
5L096BA02
5L096CA04
5L096DA02
5L096DA03
5L096EA45
5L096FA02
5L096FA69
5L096HA11
5L096JA11
5L096JA13
(57)【要約】      (修正有)
【課題】画像処理の処理精度の低下を抑制するとともに、計算量を削減する画像処理装置、画像処理方法、プログラム及び画像処理システムを提供する。
【解決手段】ニューラルネットワーク221を用いて、画像200の画像処理を行う画像処理装置であって、ニューラルネットワークは、複数の畳み込み層2211を含む。畳み込み層は、入力画像の局所的な特徴を抽出する役割を担い、1層目の畳み込み層(第1畳み込み層)は、入力画像に対して畳み込み処理を行い特徴マップを得る。2層目(第2畳み込み層)以降の畳み込み層は、前層で得られた特徴マップを入力として畳み込み処理を行い、新たな特徴マップを得る。出力層2212は、複数回の畳み込み処理により得られた特徴量を利用した処理を実行して画像処理結果を出力する。特徴マップは、畳み込み演算によって出力されるテンソルデータであり、畳み込み演算で抽出した特徴量を含むデータである。
【選択図】図4
【特許請求の範囲】
【請求項1】
ニューラルネットワークを用いて対象物体の画像処理を行う画像処理装置であって、
前記画像処理は、
入力データの縦方向および横方向の画素列を間引く第1の間引処理を行って、基本間引処理データを生成し、
前記入力データから間引かれた画素のデータに対して、前記対象物体の形状特性に応じて縦方向および横方向の画素列を間引く第2の間引処理を行って、前記基本間引処理データと縦横同サイズの追加間引処理データを生成し、
前記基本間引処理データと前記追加間引処理データに対して、フィルタを用いた畳み込み演算を行う、
画像処理装置。
【請求項2】
前記第1の間引処理または前記第2の間引処理は、縦方向および横方向の画素列を、一定列おきに間引く処理である、請求項1に記載の画像処理装置。
【請求項3】
前記追加間引処理データは、前記入力データにおいて前記基本間引処理データ部分に対して前記物体の形状特性に応じて定まる方向に並ぶデータである、請求項2に記載の画像処理装置。
【請求項4】
前記物体の形状特性が縦長形状の場合、前記物体の形状特性に応じて定まる方向は横方向である、請求項3に記載の画像処理装置。
【請求項5】
前記物体の形状特性が横長形状の場合、前記物体の形状特性に応じて定まる方向は縦方向である、請求項3に記載の画像処理装置。
【請求項6】
前記畳み込み演算は、ストライドが「1」の畳み込みである、請求項1から5のいずれか1項に記載の画像処理装置。
【請求項7】
前記画像処理は、画像分類または物体検出である、請求項1から5のいずれか1項に記載の画像処理装置。
【請求項8】
ニューラルネットワークを用いて対象物体の画像処理を行う方法であって、
入力データの縦方向および横方向の画素列を間引く第1の間引処理を行って、基本間引処理データを生成し、
前記入力データから間引かれた画素のデータに対して、前記対象物体の形状特性に応じて縦方向および横方向の画素列を間引く第2の間引処理を行って、前記基本間引処理データと縦横同サイズの追加間引処理データを生成し、
前記基本間引処理データと前記追加間引処理データに対して、フィルタを用いた畳み込み演算を行う、
画像処理方法。
【請求項9】
ニューラルネットワークを用いて対象物体の画像処理を行う方法をコンピュータに実現させるプログラムであって、
前記コンピュータを、
入力データの縦方向および横方向の画素列を間引く第1の間引処理を行って、基本間引処理データを生成することと、
前記入力データから間引かれた画素のデータに対して、前記対象物体の形状特性に応じて縦方向および横方向の画素列を間引く第2の間引処理を行って、前記基本間引処理データと縦横同サイズの追加間引処理データを生成することと、
前記基本間引処理データと前記追加間引処理データに対して、フィルタを用いた畳み込み演算を行うことと、
を行う手段として機能させる、プログラム。
【請求項10】
カメラと、
前記カメラで撮影された画像を入力され、ニューラルネットワークを用いて対象物体の画像処理を行う画像処理装置と、
前記画像処理の結果に応じた処理を行う制御装置と、
を備え、
前記画像処理は、
入力データの縦方向および横方向の画素列を間引く第1の間引処理を行って、基本間引処理データを生成し、
前記入力データから間引かれた画素のデータに対して、前記対象物体の形状特性に応じて縦方向および横方向の画素列を間引く第2の間引処理を行って、前記基本間引処理データと縦横同サイズの追加間引処理データを生成し、
前記基本間引処理データと前記追加間引処理データに対して、フィルタを用いた畳み込み演算を行う、
画像処理システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ニューラルネットワークを用いた画像処理の技術に関する。
【背景技術】
【0002】
従来、画像処理において、畳み込みニューラルネットワークが利用される。一般的な畳み込みニューラルネットワークでは、畳み込み処理が複数回繰り返され、特徴マップのサイズを縮小しながらチャネル数を増やしていく(例えば特許文献1参照)。
【0003】
畳み込み処理の際に、フィルタ(カーネル)を縦および横にずらす幅であるストライドを大きくすると、特徴マップのサイズを小さくすることができる。ただし、ストライドを大きくすると、畳み込み時に失われる情報量が増えるために、計算量が減る代わりに処理精度が低下する。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】国際公開2019/216404号
【発明の概要】
【発明が解決しようとする課題】
【0005】
例えば、ストライドが「2」の畳み込みを、「Space to Depth」とストライドが「1」の畳み込みとの組み合わせに置き換えることが知られる。「Space to Depth」では、入力データ(特徴マップ)のサイズの縮小と、サイズの縮小に伴い削除される画素のチャネル方向への追加とが行われる。チャネル方向への画素の追加によって情報が保持される。すなわち、上記置き換え手法によれば、特徴マップのサイズをストライドが「2」の畳み込みと同じとできると共に、ストライドが「2」の畳み込みの場合に比べて処理精度を向上することができる。
【0006】
しかしながら、上記置き換え手法の場合、チャネル方向に画素を追加したために、畳み込み処理時の計算量が増加するといった問題がある。
【0007】
本発明は、上記の点に鑑み、画像処理の処理精度の低下を抑制するとともに、計算量を削減することができる技術を提供することを目的とする。
【課題を解決するための手段】
【0008】
例示的な本発明の画像処理装置は、ニューラルネットワークを用いて対象物体の画像処理を行う画像処理装置であって、前記画像処理は、入力データの縦方向および横方向の画素列を間引く第1の間引処理を行って、基本間引処理データを生成し、前記入力データから間引かれた画素のデータに対して、前記対象物体の形状特性に応じて縦方向および横方向の画素列を間引く第2の間引処理を行って、前記基本間引処理データと縦横同サイズの追加間引処理データを生成し、前記基本間引処理データと前記追加間引処理データに対して、フィルタを用いた畳み込み演算を行う。
【発明の効果】
【0009】
例示的な本発明によれば、画像処理の処理精度の低下を抑制するとともに、計算量を削減することができる。
【図面の簡単な説明】
【0010】
図1】画像処理システムの概略の構成を示す図
図2】画像処理システムの動作例を示すフローチャート
図3】画像処理装置の概略の構成を示す図
図4】画像処理部により実行される画像処理の概要を示す図
図5A】ストライド「2」の畳み込みについて説明するための模式図
図5B】ストライド「2」の畳み込みについて説明するための模式図
図5C】ストライド「2」の畳み込みについて説明するための模式図
図5D】ストライド「2」の畳み込みについて説明するための模式図
図6】Space to Depthについて説明するための模式図
図7】Space to Depthに続いて行われるストライド「1」の畳み込みについて説明するための模式図
図8A】パディングについて説明するための図
図8B】パディングについて説明するための図
図9】物体の形状特性を考慮した畳み込み手法における入力データIDの並べ替えについて説明するための模式図
図10図9に示す並べ替え後に行われるストライド「1」の畳み込みについて説明するための模式図
図11】物体の形状特性が横長形状である場合の、物体の形状特性を考慮した畳み込み手法について説明するための図
図12】並べ替えによりデータの縦横のサイズが1/3とされる場合の例を示す図
【発明を実施するための形態】
【0011】
以下、本発明の例示的な実施形態について、図面を参照しながら詳細に説明する。
【0012】
<1.画像処理システム>
図1は、本発明の実施形態に係る画像処理システム100の概略の構成を示す図である。図1に示すように、画像処理システム100は、カメラ1と、画像処理装置2と、制御装置3と、を備える。画像処理システム100は、詳細には、カメラ1によって撮像された画像を防犯に利用する防犯システムである。ただし、画像処理システム100は、防犯システム以外に適用されてもよい。画像処理システム100は、カメラ1で撮影された画像を画像処理して得られる画像中の物体情報に応じて特定の処理を実行するシステムに対して広く適用することができる。画像処理システム100は、ホーム用、オフィス用、工場用、車載用等、様々な用途に適用可能である。
【0013】
カメラ1は、画像処理装置2と有線又は無線により通信可能に設けられる。カメラ1は、撮影した画像(詳細には画像データ。以下についても同様。)を画像処理装置2へ出力する。カメラ1は、例えば、特定の場所を時系列に沿って連続的に撮影する。特定の場所は、例えば不審者が侵入する可能性がある場所である。カメラ1の数は、単数でも複数でもよい。
【0014】
画像処理装置2は、カメラ1で撮影された画像を入力される。画像処理装置2は、特定の物体を対象としてニューラルネットワークを用いた画像処理を行う。特定の物体は、本実施系では「人」である。ただし、特定の物体は、「人」以外であってもよい。ニューラルネットワークは、詳細には、畳み込みニューラルネットワークである。画像処理は、詳細には、画像分類または物体検出である。例えば、画像処理が画像分類である場合、画像中に人が存在するか否かを判定することができる。また、例えば、画像処理が物体検出である場合、画像中に写る人を、その位置を含めて検出することができる。位置を検出することができるために、時系列に沿って連続的に撮影される画像を利用することにより、人の行動を監視することができる。画像処理装置2の詳細、および、ニューラルネットワークを用いた画像処理の詳細については、後述する。
【0015】
なお、画像処理装置2は、家庭や施設等に個別に配置される装置でもよいが、インターネット等の通信回線を利用して特定のユーザにサービスを提供するサーバ装置であってもよい。
【0016】
制御装置3は、画像処理装置2と有線又は無線により通信可能に設けられる。制御装置3は、画像処理装置2における画像処理の結果を取得する。制御装置3は、画像処理の結果に応じた処理を行う。例えば、制御装置3は、画像処理の結果を用いて侵入者が存在するか否かを判定する。そして、侵入者が存在すると判定された場合に、制御装置3は、侵入者の存在を防犯システムのユーザに知らせる報知処理を行う。報知処理は、例えば、ユーザが所有する携帯端末(スマートフォン等)へのメール送信や、報知装置に警報を発報させる処理等であってよい。報知装置は、音声出力装置、表示装置、或いは、発光装置等であってよい。また、例えば、制御装置3は、画像処理の結果から侵入者が検出された場合に、当該侵入者の追跡処理を開始してもよい。また、例えば、制御装置3は、画像処理の結果から侵入者が検出された場合に、カメラ1で撮影される映像の保存を開始してもよい。
【0017】
なお、制御装置3は、コントローラとメモリとを備えるコンピュータ装置であってよい。また、制御装置3は、家庭や施設等に個別に配置される装置でもよいが、サーバ装置であってもよい。また、制御装置3は、画像処理装置2と兼用される装置でもよい。
【0018】
図2は、本発明の実施形態に係る画像処理システム100の動作例を示すフローチャートである。図2に示すフローは、画像処理システム(防犯システム)100を構成する各種の装置の電源がオンされた場合や、ユーザによるシステムの動作指示が行われた場合等に開始される。
【0019】
ステップS1では、画像処理装置2がカメラ1から画像を取得したか否かを判定する。なお、カメラ1は、周期的に画像処理装置2へ画像を送信する。画像処理装置2は、カメラ1から送信される画像を順次取得する。画像が取得されている場合(ステップS1でYes)、次のステップS2へ処理が進められる。画像が取得されていない場合(ステップS2でNo)、ステップS1の処理が続けられる。なお、画像が取得されない状態が長く続く場合、故障等の不具合が生じている可能性があるために、ユーザへ向けてエラー通知を行ってよい。
【0020】
ステップS2では、画像処理装置2が畳み込みニューラルネットワークを用いた画像処理を実行する。画像処理により、予め設定されている対象物(特定の物体)に関わる推論結果が出力される。本実施形態では、対象物は「人」である。画像処理により、例えば、画像中に人が写っているか否かの推論結果が出力される。画像処理が行われると、次のステップS3へ処理が進められる。
【0021】
ステップS3では、制御装置3が画像処理装置2から画像処理の結果を取得したか否かを判定する。画像処理の結果が取得されている場合(ステップS3でYes)、次のステップS4へ処理が進められる。画像処理の結果が取得されていない場合(ステップS3でNo:画像処理が未完了(推論結果の出力前))、ステップS3の処理が続けられる。なお、画像処理の結果が取得されない状態が長く続く場合、通信障害や故障等の不具合が生じている可能性があるために、ユーザへ向けてエラー通知を行ってよい。
【0022】
ステップS4では、制御装置3が画像処理の結果に応じた制御処理を行う。制御装置3は、例えば、画像処理の結果が「画像中に人が存在する」である場合、当該画像中の人が侵入者であるか否かを判定する。制御装置3は、画像に写る人が、例えば、予めメモリ等に登録される人物と同じであるか否かを判定することにより侵入者であるか否かを判定する。当該比較判定は、例えばパターンマッチング等の公知の技術を用いて行われてよい。制御装置3は、侵入者であると判定した場合、例えばユーザへのメール送信等の通知処理や報知処理を行う。画像中に人が存在しない場合、および、画像中に写る人が侵入者でないと判定された場合には、制御装置3は、ユーザに対する通知処理等は行わない。画像処理の結果に応じた処理が行われると、次のステップS5へ処理が進められる。
【0023】
ステップS5では、画像処理装置2が図2に示すフローを終了する事由(終了事由)が生じているか否かを判定する。終了事由は、例えば、ユーザからの動作終了指令や、故障等の不具合の発生が挙げられる。終了事由が生じている場合(ステップS5でYes)、図2に示すフローが終了される。終了事由が生じていない場合(ステップS5でNo)、ステップS1に戻って、ステップS1以降の処理が行われる。なお、ステップS5からステップS1へ戻った場合、処理対象となる画像は、先に処理した画像の次に取得された画像である。
【0024】
<2.画像処理装置>
図3は、本発明の実施形態に係る画像処理装置2の概略の構成を示す図である。なお、図3においては、本実施形態の特徴を説明するために必要な構成要素が示されており、一般的な構成要素についての記載は省略されている。
【0025】
図3に示すように、画像処理装置2は、コントローラ21とメモリ22とを備える。画像処理装置2は、詳細にはコンピュータ装置である。コントローラ21は、演算処理を行う演算回路を含んで構成される。演算回路は、詳細にはプロッセで構成される。プロセッサは、例えばCPU(Central Processing Unit)やGPU(Graphics Processing Unit)を含んで構成される。コントローラ21は、1つのプロセッサで構成されてもよいし、複数のプロセッサで構成されてもよい。複数のプロセッサで構成される場合には、それらのプロセッサは互いに通信可能に設けられる。
【0026】
メモリ22は、揮発性メモリおよび不揮発性メモリを含んで構成される。揮発性メモリは、詳細にはRAM(Random Access Memory)である。不揮発性メモリは、詳細にはROM(Read Only Memory)である。不揮発性メモリは、その他、フラッシュメモリ、又は、ハードディスドライブ等であってもよい。不揮発性メモリには、コンピュータによって読み取り可能なプログラムおよびデータが格納される。
【0027】
図3に示すように、コントローラ21は、その機能として、画像取得部211と、画像処理部212と、出力部213とを備える。コントローラ21の機能は、メモリ22に記憶されるプログラムに従った演算処理をプロセッサが実行することによって実現される。コントローラ21の機能を実現するプログラムの数は、単数でも複数でもよい。
【0028】
なお、メモリ22に記憶されるプログラムは、コントローラ21(換言すると画像処理装置2)の機能をコンピュータに実現させるコンピュータプログラムである。そのようなコンピュータプログラムは、例えば、コンピュータ読取り可能な不揮発性記録媒体により提供されてよい。不揮発性記録媒体は、例えば、上述の不揮発性メモリの他、光記録媒体(例えば光ディスク)、光磁気記録媒体(例えば光磁気ディスク)、USBメモリ、又は、SDカード等であってよい。別の例として、コンピュータプログラムは、インターネット等の通信回線を介してプログラム提供用サーバから提供されるもの、所謂ダウンロードにより提供されるものであってもよい。
【0029】
また、各機能部211~213は、1つのプログラムにより実現されてもよいが、例えば、機能部ごとに別々のプログラムにより実現される構成としてもよい。また、各機能部211~213は、上述のように、プロセッサにプログラムを実行させること、すなわちソフトウェアにより実現されてよいが、他の手法により実現されてもよい。各機能部211~213は、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等を用いて実現されてもよい。すなわち、各機能部211~213は、専用のIC等を用いてハードウェアにより実現されてもよい。また、各機能部211~213は、ソフトウェアおよびハードウェアを併用して実現されてもよい。また、各機能部211~213は、概念的な構成要素である。1つの構成要素が実行する機能が、複数の構成要素に分散されてよい。また、複数の構成要素が有する機能が1つの構成要素に統合されてもよい。
【0030】
画像取得部211は、外部から画像(データ)を取得する。詳細には、画像取得部211は、カメラ1から周期的に送信される画像を順次取得する。
【0031】
画像処理部212は、画像取得部211により取得した画像を順次処理する。画像処理部212における画像処理には、メモリ22に格納されるニューラルネットワーク221が利用される。ニューラルネットワーク221は、画像処理をコンピュータに実現させるプログラムである。本実施形態では、ニューラルネットワーク221を用いた画像処理により、画像分類または物体検出が行われる。
【0032】
なお、ニューラルネットワーク221は、詳細には、ディープラーニングによる学習済みの畳み込みニューラルネットワークである。学習済みのニューラルネットワーク221は、例えば、教師データの集合体である学習データセットを用いて、誤差逆伝播法等の公知の学習手法により学習を行うことによって得られる。メモリ22には、学習済みのニューラルネットワーク221の構造およびパラメータ、並びに、ニューラルネットワーク221を実行するコード命令が記憶される。
【0033】
図4は、画像処理部212により実行される画像処理の概要を示す図である。図4において、画像200は、ニューラルネットワーク221に入力される入力画像である。図4に示すように、ニューラルネットワーク221は、複数の畳み込み層2211を含む。図4に示す変数nは「2」以上である。なお、図4においては、図示を省略しているが、各畳み込み層2211の後には、プーリング層が配置される。すなわち、ニューラルネットワーク221は、畳み込み層2211とプーリング層とを複数回繰り返して深い層を形成する。
【0034】
畳み込み層2211は、入力画像200の局所的な特徴を抽出する役割を担う。1層目の畳み込み層(第1畳み込み層)2211は、入力画像200に対して畳み込み処理を行い、特徴マップを得る。そして、2層目(第2畳み込み層)以降の畳み込み層2211は、前層で得られた特徴マップを入力として畳み込み処理を行い、新たな特徴マップを得る。特徴マップは、畳み込み演算によって出力されるテンソルデータであり、畳み込み演算によって抽出された特徴量を含むデータである。
【0035】
なお、畳み込み処理の詳細については後述する。また、上述のプーリング層は、畳み込み層2211から出力された特徴マップをまとめ上げ、縮小する役割を担う。プーリング層によるプーリング処理は、公知の、最大値を選ぶ最大プ―リングや、平均値を選ぶ平均プーリングであってよい。
【0036】
また、図4において、各畳み込み層2211内に記載される破線の図は、畳み込み処理により得られた結果物(特徴マップの束)を示す。符号「Wm」および符号「Hm」は、特徴マップのサイズを示す。詳細には、符号「Wm」は、特徴マップの幅(横方向のサイズ)を示す。符号「Hm」は、特徴マップの高さ(縦方向のサイズ)を示す。符号「Cm」は、チャネル数を示す。図4において、チャネル数は、特徴マップの数に相当する。図4に示す例では、畳み込み層2211による畳み込み処理が繰り返されることにより、特徴マップのサイズが縮小されると共に、チャネル数が増えている。
【0037】
出力層2212は、複数回の畳み込み処理により得られた特徴量を利用した処理を実行して画像処理結果を出力する。出力層2212は、例えば全結合層を用いて構成される。全結合層には、最後の畳み込み層(第n畳み込み層)2211における畳み込み処理後に得られる特徴マップ(詳細にはプーリング後の特徴マップ)が入力される。特徴マップは二次元情報であるために、一次元情報に展開されて全結合層に入力される。全結合層では、重み付き結合を計算し、正規化線形関数(Rectified Linear Unit: ReLU)等の活性化関数によりユニット(ニューロン)の値が求められる。出力層2212は、例えば、画像処理結果として、画像中に「人」が存在するか否かを出力する。
【0038】
なお、出力層2212は、必ずしも全結合層を用いて構成されなくてもよい。また、出力層2212には、最後の畳み込み処理後に得られる特徴量(特徴マップ)だけでなく、それ以前に行われた畳み込み処理により得られた特徴量が入力されてもよい。このような構成を実現する構成として、例えばYOLO等の公知の物体検出アリゴリズムが利用されてよい。
【0039】
例えばYOLOが利用される場合、画像処理結果として、予め特定された検出対象(物体)の位置(領域)、および、検出対象の存在確率を示す信頼度スコアが出力される。信頼度スコアは、例えば、0以上1以下の数値であり、その値が「1」に近づくほど信頼度が高いことを示す。本実施形態では、対象物体は「人」であるために、画像処理が物体検出である場合には、画像処理結果として、人の位置、および、人の存在確率を示す信頼度スコアが出力されることになる。
【0040】
図3に戻って、出力部213は、画像処理部212で得られた画像処理結果を、外部へ出力する。本実施形態では、出力部213は、制御装置3へ画像処理結果を出力する。制御装置3は、上述のように、取得された画像処理結果に応じて、防犯のために必要な処理を適宜行う。
【0041】
<3.畳み込み手法(方法)>
次に、本実施形態で利用される畳み込み手法について説明する。上述のように、本実施形態においては、ニューラルネットワーク221を用いた画像処理は、複数の畳み込み処理を含む。複数の畳み込み処理の少なくとも一部において、対象物(詳細には「人」)となる物体の形状特性を考慮した畳み込み手法が実行される。物体の形状特性を考慮した畳み込み手法が全ての畳み込み処理で実行されない場合、残りの畳み込み処理には、例えば、以下に説明する、ストライドが「2」の畳み込みや、Space to Depthを用いた畳み込み等が利用されてよい。物体の形状特性を考慮した畳み込み手法について説明する前に、その比較例となる2つの畳み込み手法について説明する。
【0042】
[3-1.比較例の畳み込み手法]
(3-1-1.ストライドが「2」の畳み込み)
まず、ストライドが「2」の畳み込み(ストライド「2」の畳み込み)について、図5A図5Dを参照して説明する。なお、図5A図5Dは、ストライド「2」の畳み込みについて説明するための模式図である。図中の符号IDは、入力データであり、詳細には画像または特徴マップである。また、符号FIは、畳み込み演算に用いるフィルタ(カーネル)である。また、符号ODは、入力データIDに対してフィルタFIを用いた畳み込み演算をすることにより得られる出力データであり、詳細には特徴マップである。
【0043】
図5A図5Dに示す例では、入力データIDのサイズは、横(幅)方向が「6」ピクセル(画素)、縦(高さ)方向が「6」ピクセル(画素)である。換言すると、入力データIDのサイズは「6×6」である。同様に、フィルタFIのサイズは「2×2」である。出力データODのサイズは「3×3」である。なお、出力データODのサイズは、入力データIDおよびフィルタFIのサイズ、および、ストライドの大きさによって決まる。また、入力データID、フィルタFI、および、出力データODにおける各要素(画素)中の数字は、説明のために便宜的に設定したデータ値である。なお、入力データIDについては、本来は入力画像に対応した値である(異なった画素に対して同じ値となる場合がある)が、説明を分かりやすくするために、各ピクセル(画素)位置を示す値(各々が異なった値)に設定している。
【0044】
なお、上述の入力データID等のサイズは例示であり、それらのサイズは適宜変更されてよい。また、ここでは、入力データIDの数(チャネル数)は1つとして説明するが、チャネル数は通常複数である。チャネル数が複数である場合には、チャネルごとにフィルタFIが設定される。フィルタFIのデータ値は、学習(ディープラーニング)により求められた値である。換言すると、フィルタFIのデータ値は、学習時には学習により変動するパラメータである。
【0045】
図5Aに示すように、まず、入力データIDの左上からフィルタFIと同じサイズ(2×2)が抽出される。なお、図5A図5Dにおいて、入力データIDのグレーが施された部分が、抽出される領域(抽出領域ER)に該当する。最初の抽出領域ERは、データ値が「1」、「2」、「7」、および、「8」の4つの部分である。この抽出領域ERと、フィルタFIとを使って、畳み込み演算が行われる。そして、当該演算によって得られた値が、出力データODの左上の部分(グレーが施された部分)のデータ値となる。畳み込み演算は、入力データIDの抽出領域ERと、フィルタFIとの同じ場所にある要素同士のデータ値を掛け算し、各掛け算の結果を合計することにより得られる。図5Aに示す例の場合、出力データODの左上の部分の値「9」は、以下の式のように求まる。
9=1×1+2×0+7×0+8×1 (式)
【0046】
続いて、図5Bに示すように、入力データIDの抽出領域ERが右にずらされて、フィルタFIと同じサイズ(2×2)が抽出される。ここで、本例では、フィルタFIとの演算を行うための抽出領域ERをずらす幅(フィルタ基準で表現すると、フィルタをずらす幅)であるストライドが「2」である。このために、図5Bにおいては、入力データIDの、最初の抽出領域ER(図5A参照)から右に2つ分(2画素分)ずらした部分が、次の抽出領域ERとされる。この、次の抽出領域ERは、データ値が「3」、「4」、「9」、および、「10」の4つの部分である。この抽出領域ERと、フィルタFIとを使って、畳み込み演算が行われる。そして、当該演算によって得られた値が、出力データODの左上部分から右に1つ(1画素分)ずらした部分(グレーが施された部分)のデータ値となる。畳み込み演算の仕方は、先と同様であり、その値は「13(=3×1+4×0+9×0+10×1)」となる。
【0047】
同様にして、入力データIDの抽出領域ERが、更に右に2つ分ずらされて、フィルタFIと同じサイズ(2×2)が抽出される。この抽出領域ERと、フィルタFIとを使った上記と同様の畳み込み演算により、出力データODの右上部分の値「17」(図5C参照)が求まる。
【0048】
入力データIDの左上から、ストライド「2」で右にずらす処理を2回行った後においては、次に右に2つ分ずらすと、抽出すべき領域がないことになる。このために、図5Cに示すように、一旦左端に戻って、抽出領域ERを下方に2つ分(ストライド「2」に該当)ずらして得られる部分が、次の抽出領域ERとされる。この、次の抽出領域ERは、データ値が「13」、「14」、「19」、および、「20」の4つの部分である。この抽出領域ERと、フィルタFIとを使った上記と同様の畳み込み演算により、出力データODの右端の真ん中部分(グレーが施された部分)の値「33」が求まる。
【0049】
以上のように抽出領域ERをストライド「2」でずらして畳み込み演算を実行することを繰り返すことにより、図5Cに示すような、サイズが「3×3」の出力データOD(特徴マップ)が得られる。
【0050】
なお、畳み込み演算では、必要に応じてバイアスを加算する処理が行われる。また、畳み込み演算で得られた値は、例えば正規化線形関数(ReLU)、シグモイド関数、或いは、tanh関数等の活性化関数に与えられる。そして、活性化関数の出力が特徴マップの値とされて、次の層に引き継がれる。これらの点、後述の、Space to Depthを用いた畳み込み、および、物体の形状特性を考慮した畳み込みでも同様である。
【0051】
また、各畳み込み層において、入力データIDが複数である(入力チャネルが複数である)場合には、各入力データID(各入力チャネル)について、入力チャネルごとに設定されたフィルタFIを用いた上記の畳み込み演算が行われる。そして、入力チャネルごとに得られた出力データODの同じ要素位置同士のデータ値が足し算されて1つの特徴マップが得られる。出力される特徴マップのチャネル(アウトプットチャネル)が複数とされる場合には、入力データID(入力チャネル)ごとに設定されるフィルタFIの組が複数組設定される。フィルタ組ごとに1つの特徴マップが得られ、フィルタ組と同数の特徴マップが出力される。これらの点、後述の、Space to Depthを用いた畳み込み、および、物体の形状特性を考慮した畳み込みでも同様である。
【0052】
(3-1-2.Space to Depthを用いた畳み込み)
上述のストライド「2」の畳み込みは、特徴マップのサイズを縮小することができるが、ストライド「1」の畳み込みと比較して処理が粗くなり、情報量の損失が生じる。Space to Depthを用いた畳み込みは、この情報量の損失を抑制する手法である。以下、上述したストライド「2」の畳み込みに対して置き換えられる「Space to Depth+ストライド「1」」の畳み込みについて説明する。
【0053】
図6は、本例のSpace to Depthについて説明するための模式図である。なお、図6に示す入力データIDは、図5A等に示す入力データIDと同じである。図5Aにおいて二次元で示される入力データIDを、図6では厚みを持たせて三次元であるかのように示しているが、これは単に説明のために便宜的に用いた手法に過ぎない。
【0054】
Space to Depthでは、図6に示すように、入力データIDの並べ替えが行われる。なお、図6において、白抜きの矢印の左側は並び替え前の状態を示し、白抜きの矢印の右側は並び替え後の状態を示す。当該並べ替えは、入力データIDを間引くこと(間引き処理)と、間引かれたデータをチャネル方向(矢印Cで示される)に追加すること(追加処理)とで構成される。並べ替えにより、縦横のサイズが縮小された中間データMD(特徴マップと言える)が複数得られる。複数の中間データMDはチャネル方向に並ぶ。間引かれたデータをチャネル方向へ追加することは、特徴マップの数を増やすことと言うことができる。
【0055】
間引き処理では、入力データに対してストライド「2」の畳み込みにおいて抽出領域ERをずらす際に飛ばされることになる画素が間引かれる。間引き処理は、起点画素から決められた間引き間隔で間引く処理である。図6に示す例では、間引処理の起点画素が画素「1」で間引間隔がストライドと同じ「2」であって、白色で示す画素が、間引くことなく残される画素である。間引かれる画素列は、白色で示す画素を含まない縦横の画素列である。図6において、当該間引かれる画素列は、データ値が「2」、「4」、および、「6」の画素を含む各縦列、並びに、データ値が「7」、「19」、および、「31」の画素を含む各横列である。間引き処理により、縦横のサイズが「6×6」から「3×3」に変更される。すなわち、間引き処理により、縦横のサイズが半分に縮小される。
【0056】
そして、間引かれた画素列の左上側にある画素(最初の間引き処理の起点画素に隣接する画素)を起点とするストライド「2」の畳み込みにおいて抽出領域ERをずらす際に飛ばされることになる画素が間引かれる。なお、当該間引き処理において起点とする画素は、ストライドに応じて変化する。当該間引き処理により間引くことなく残される画素群(図6の場合、データ値が「2」、「7」、「8」のそれぞれを起点とするストライド「2」の各畳み込みにおいて抽出領域ERをずらす際に飛ばされない画素からなる各画素群)がチャネル方向への追加されるデータとなる。換言すれば、起点画素が画素「2」、「7」、および「8」で間引間隔がストライドと同じ「2」である間引処理を行って生成される各画素群が、チャネル方向への追加されるデータとなる。チャネル方向への追加されるデータの縦横のサイズは、間引き処理の際に残されたデータの縦横のサイズと同じである。また、チャネル方向への追加に際して、各チャネルのデータ配列(画素配列)は、入力データIDにおける位置関係を維持するように追加される。縦方向および横方向に1つおきに並ぶ3種類のデータ組が、チャネル方向に並べられる。図6において、3種類のデータ組は、グレーが施された画素の組、斜め格子柄のハッチングが施された画素の組、および、縦線柄のハッチングが施された画素の組である。これら3種類のデータ組のチャネル方向の並び順は、特に限定されず、図6に示す順番から変更されてもよい。
【0057】
図6に示す例では、データ値が「1」、「2」、「7」、「8」の画素が、この順番でチャネル方向に並ぶ。データ値が「3」、「4」、「9」、「10」の画素が、この順番でチャネル方向に並ぶ。データ値が「5」、「6」、「11」、「12」の画素が、この順番でチャネル方向に並ぶ。データ値が「13」、「14」、「19」、「20」の画素が、この順番でチャネル方向に並ぶ。データ値が「15」、「16」、「21」、「22」の画素が、この順番でチャネル方向に並ぶ。データ値が「17」、「18」、「23」、「24」の画素が、この順番でチャネル方向に並ぶ。データ値が「25」、「26」、「31」、「32」の画素が、この順番でチャネル方向に並ぶ。データ値が「27」、「28」、「33」、「34」の画素が、この順番でチャネル方向に並ぶ。データ値が「29」、「30」、「35」、「36」の画素が、この順番でチャネル方向に並ぶ。図6に示す例では、中間データMDが4つ(4チャネル)得られる。
【0058】
図7は、Space to Depthに続いて行われるストライド「1」の畳み込みについて説明するための模式図である。本例では、上述したストライド「2」の畳み込みと同様に、畳み込み演算に用いるフィルタFIのサイズは「2×2」である。チャネル方向に並ぶ4つの中間データMDのそれぞれについて、同じフィルタFIを用いた畳み込み演算が行われる。ただし、ここでは、畳み込み演算のストライドは、「2」ではなく「1」である。4つのチャネル(中間データMD)のそれぞれについて畳み込み演算を行って得られたデータ(サイズ「3×3」のデータ)の、同じ要素位置同士のデータ値が足し算されて、1つの出力データODが得られる。
【0059】
出力データODは、サイズ「3×3」の特徴マップである。すなわち、「Space to Depth+スタライド「1」」の畳み込みによって、ストライドが「2」の畳み込みと同じサイズの特徴マップが得られる。ただし、同じサイズの特徴マップを得るに際して、ストライド「2」の畳み込みでは失われる情報をチャネル方向に追加して畳み込み演算を行うために、ストライド「2」の畳み込みが行われる場合に比べて画像処理の結果の精度を向上することができる。
【0060】
本例においては、ストライド「1」の畳み込みは、Space to Depthで得られた中間データMDの縦横サイズを維持する(変化させない)ように行われる。これを実現するに際して、パディング(詳細には、いわゆるハーフパディング)が利用されている。当該パディングについて、図8Aおよび図8Bを用いて説明しておく。なお、図8Aおよび図8Bは、パディングについて説明するための図である。
【0061】
図8Aは、パディングが利用されない場合について説明するための図である。図8Aは、フィルタFIとの演算を行う抽出領域ERが、ストライド「1」で変更される場合の、抽出領域ERの位置の推移を示す。図8Aにおいて、抽出領域ERは、グレーを施した部分である。ストライドが「1」であるために、右方向にずらすことが出来る場合には、抽出領域は右に1つ分(1画素分)ずらされる。右方向にずらすことが出来ない場合には、抽出領域ERは、左端に戻って下に1つ分(1画素分)ずらされる。
【0062】
図8Aに示すように、パディングが利用されない場合、抽出領域ERをストライド「1」でずらして得られる位置のパターンが4つしか得られないために、出力データのサイズは「2×2」となる。すなわち、パディングを利用しない場合、Space to Depthで得られた中間データMDの縦横サイズを維持するように畳み込み演算を行うことができない。
【0063】
図8Bは、パディング(ハーフパディング)が利用された場合について説明するための図である。図8Bにおいても、図8Aと同様に、フィルタFIとの演算を行う抽出領域ER(グレーで示す)が、ストライド「1」で変更される場合の、抽出領域ERの位置の推移が示されている。図8Bでは、破線で示す画素が、上述の中間データMDに対して追加されている。詳細には、中間データMDの右端と下端とを囲むように、逆L字状に一定の値を有する画素が7個追加されている。一定の値は、例えば「0」である。
【0064】
図8Bでは、パディングにより画素の追加が行われいるために、抽出領域ERをストライド「1」でずらして得られる位置のパターンが9つ得られる。すなわち、出力データのサイズは「3×3」となる。パディングの利用により、Space to Depthで得られた中間データMDの縦横サイズを維持するように畳み込み演算を行うことができる。
【0065】
[3-2.物体の形状特性を考慮した畳み込み手法]
次に、本実施形態における物体(画像処理の対象物)の形状特性を考慮した畳み込み手法について説明する。本実施形態では、画像処理の対象物は「人」である。このために、物体の形状特性は、「人」の形状特性である。「人」は、高さ(縦)方向に長く、幅(横)方向は短いという形状特性を有する。すなわち、本実施形態において、物体の形状特性は縦長形状である。なお、本実施形態の物体の形状特性を考慮した畳み込みは、形状特性が縦長形状である物体に対して広く適用でき、対象物は「人」以外であってもよく、その種類も複数であってよい。
【0066】
本実施形態の物体の形状特性を考慮した畳み込み手法においても、Space to Depthを用いた畳み込みの場合と同様に、入力データIDの並べ替えが行われる。図9は、物体の形状特性を考慮した畳み込み手法における入力データIDの並べ替えについて説明するための模式図である。図9において、白抜きの矢印の左側は並び替え前の状態を示し、白抜きの矢印の右側は並び替え後の状態を示す。
【0067】
図9に示すように、本畳み込み手法においては、入力データIDの縦方向および横方向の画素列を間引くと共に、間引かれた画素のうち物体の形状特性に応じて決まる一部の画素をチャネル方向に追加する並べ替えが行われる。
【0068】
当該並べ替えにおいて、縦方向および横方向の画素列は、一定列おきに間引かれる。すなわち、上述のSpace to Depthと同様の間引き処理(第1の間引き処理)が行われる。図9における並べ替えにおいては、上述のSpace to Depthと同様に、ストライドの大きさに応じて抽出領域ERをずらす際に飛ばされることになる画素列が間引かれる。
【0069】
図9に示す例では、ストライドが「2」である場合に抽出領域ERをずらす際に飛ばされることになる画素列を想定して、間引き処理が行われている。間引かれる画素列は、白色で示す残される画素を含まない縦横の画素列である。図9において、当該間引かれる画素列は、データ値が「2」、「4」、および、「6」の画素を含む各縦列、並びに、データ値が「7」、「19」、および、「31」の画素を含む各横列である。間引き処理により、縦横のサイズが「6×6」から「3×3」に変更される。すなわち、間引き処理により、縦横のサイズが半分に縮小される。この点、上述の図6に示すSpace to Depthの場合と同じである。なお、この間引き処理(第1の間引き処理)により縦横のサイズが縮小された画素群データは、本発明の基本間引処理データの一例である。
【0070】
本畳み込み手法では、上述のSpace to Depthのように先の間引き処理で間引いた全ての画素をチャネル方向に追加するのではなく、一部の画素をチャネル方向に追加する。そして、当該一部の画素は、画像処理の対象物(物体)の形状特性に応じて決められる。換言すると、入力データから間引かれた画素のデータに対して、対象物体の形状に応じて縦方向および横方向の画素列を間引く第2の間引き処理が行われる。第2の間引き処理で間引かれることなく残ったデータ(画素)がチャネル方向に追加される。前述の物体の形状特性に応じて決まる一部の画素(第2の間引き処理で間引かれることなく残される画素)は、入力データIDのうち間引かれることなく残された画素の縦方向または横方向に並ぶ画素である。これにより、形状特性として縦長形状や横長形状を有する物体に適した並び替えを行うことができる。なお、形状特性の判定については、例えば、画像処理システム100における検出対象物種別や、カメラ等の設置状況等に応じて、システム設計者や管理者、あるいはユーザがスイッチ等で設定した設定値(ディップスィッチの状態や、設定値記憶用メモリに記憶されたデータ)を読み取ること等により、判定を行ってよい。
【0071】
上述のように、本実施形態では、物体の形状特性は縦長形状である。このような場合、物体の形状特性に応じて決まる一部の画素は、入力データIDのうち間引かれることなく残された画素の横方向に並ぶ画素である。すなわち、間引かれた画素であって、入力データIDから間引かれることなく残された画素の横方向に並ぶ画素が、チャネル方向に追加される。当該チャネル方向に追加される画素群データは、本発明の追加間引処理データの一例である。なお、間引かれた画素であって、入力データIDから間引かれることなく残された画素の横方向に並ばない画素は、第2の間引き処理で間引かれる。並べ替えによりデータの縦横のサイズが縮小される場合、形状特性として縦長形状を有する物体では、縦方向よりも横方向の方が縮小に伴う情報量の損失の影響が大きくなると考えられる。また、縦方向に関しては、縮小に伴う情報量の損失の影響が比較的小さいと考えられる。すなわち、本実施形態によれば、情報量の損失の影響が大きくなると考えられる画素については、削除することなく残し、情報量の損失の影響が比較的小さいと考えられる画素については削除することができる。
【0072】
詳細には、図9に示す例では、白色の画素が間引き処理で間引かれることなく残される画素である。そして、グレーの画素が、間引かれることなく残された画素の横方向に並ぶ画素である。当該グレーの画素の組が、チャネル方向に1つだけ追加される。チャネル方向へ追加される画素の組のデータサイズは、間引き処理の際に残された画素の組と同じである。すなわち、基本間引処理データと追加間引処理データとの縦横サイズは同じである。また、チャネル方向への追加に際して、データ配列(画素配列)は、入力データIDにおける位置関係を維持するように追加される。並べ替えにより、縦横のサイズが縮小されたサイズ「3×3」の中間データMDが2つ(2チャネル)得られる。
【0073】
図9に示す例では、データ値が「1」、「2」の画素が、この順番でチャネル方向に並ぶ。データ値が「3」、「4」の画素が、この順番でチャネル方向に並ぶ。データ値が「5」、「6」の画素が、この順番でチャネル方向に並ぶ。データ値が「13」、「14」の画素が、この順番でチャネル方向に並ぶ。データ値が「15」、「16」の画素が、この順番でチャネル方向に並ぶ。データ値が「17」、「18」の画素が、この順番でチャネル方向に並ぶ。データ値が「25」、「26」の画素が、この順番でチャネル方向に並ぶ。データ値が「27」、「28」の画素が、この順番でチャネル方向に並ぶ。データ値が「29」、「30」の画素が、この順番でチャネル方向に並ぶ。そして、それら以外の画素のデータ、ここでは画素「7」~「12」、「19」~「24」、「31」~「36」のデータは、チャネル方向に追加されることなく、間引かれることになる。
【0074】
本実施形態の物体の形状特性を考慮した畳み込み手法では、上述の並べ替え後に、フィルタFIを用いた畳み込み演算が行われる。この点、上述のSpace to Depthを用いた畳み込みの場合と同様である。詳細には、畳み込み演算は、ストライドが「1」の畳み込みである。
【0075】
図10は、図9に示す並べ替え後に行われるストライド「1」の畳み込みについて説明するための模式図である。本例では、上述したSpace to Depthを用いた畳み込みの場合と同様に、畳み込み演算に用いるフィルタFIのサイズは「2×2」である。チャネル方向に並ぶ2つの中間データMD(基本間引処理データと追加間引処理データ)のそれぞれについて、同じフィルタFIを用いたストライド「1」の畳み込み演算が行われる。2つのチャネル(中間データMD)のそれぞれについて畳み込み演算を行って得られたデータ(サイズ「3×3」のデータ)の、同じ要素位置同士のデータ値が足し算されて、1つの出力データOD(サイズ「3×3」の特徴マップ)が得られる。
【0076】
なお、本例でも、中間データMDの縦横サイズを維持するようにパディングが利用されている。
【0077】
物体の形状特性を考慮した畳み込み手法では、情報量の損失の影響が大きいと考えられる情報は削除せずチャネル方向に残すために、Space to Depthを用いた畳み込みと同様に、ストライド「2」の畳み込み対する優位性を発揮することができる。そして、情報量の損失の影響が少ないと考えられる情報はチャネル方向に残すことなく削除するために、Space to Depthを用いた畳み込みに比べて計算量を低減することができる。
【0078】
<4.変形例>
[4-1.第1変形例]
以上では、画像処理の対象となる物体の形状特性が縦長形状であったが、物体の形状特性が横長形状である場合にも、本発明の物体の形状特性を考慮した畳み込み手法は適用可能である。なお、画像処理の対象となる、形状特性が横長形状である物体の種類数は、単数でも複数でもよい。形状特性が横長形状である物体としては、例えば、信号機やナンバープレート等が挙げられる。
【0079】
物体の形状特性が横長形状である場合も、入力データの縦方向および横方向の画素列を間引くと共に、間引かれた画素のうち物体の形状特性に応じて決まる一部の画素をチャネル方向に追加する並べ替えが行われる。ただし、物体の形状特性に応じて決まる一部の画素をチャネル方向に追加する際の追加の仕方が、上述の形状特性が縦長形状である場合と異なる。
【0080】
図11は、物体の形状特性が横長形状である場合の、物体の形状特性を考慮した畳み込み手法について説明するための図である。図11において、白抜きの矢印の左側に示す図は、上述の図9の場合と同様に入力データIDである。また、図11において、白抜きの矢印の左側は並び替え前の状態を示し、白抜きの矢印の右側は並び替え後の状態を示す。
【0081】
入力データIDの縦方向および横方向の画素列を間引く処理の仕方は、上述の図9の場合と同様である。図11において、白色で示す残される画素を含まない縦横の列が間引かれる。詳細には、データ値が「2」、「4」、および、「6」の画素を含む各縦列、並びに、データ値が「7」、「19」、および、「31」の画素を含む各横列が間引かれる。間引き処理により、縦横のサイズが「6×6」から「3×3」に縮小される。
【0082】
図11に示すように、物体の形状特性が横長形状である場合には、物体の形状特性に応じて決まる一部の画素(チャネル方向に追加する画素)は、入力データIDのうち間引かれることなく残された画素の縦方向に並ぶ画素である。すなわち、間引かれた画素であって、入力データIDから間引かれることなく残された画素の縦方向に並ぶ画素が、チャネル方向に追加される。並べ替えによりデータの縦横のサイズが縮小される場合、形状特性として横長形状を有する物体では、横方向よりも縦方向の方が縮小に伴う情報量の損失の影響が大きくなると考えられる。また、横方向に関しては、縮小に伴う情報量の損失の影響が比較的小さいと考えられる。すなわち、本変形例によれば、情報量の損失の影響が大きくなると考えられる画素については、削除することなく残し、情報量の損失の影響が比較的小さいと考えられる画素については削除することができる。
【0083】
詳細には、図11に示す例では、白色の画素が間引き処理で間引かれることなく残される画素である。そして、斜め格子柄のハッチングが施された画素が、間引かれることなく残された画素の縦方向に並ぶ画素である。当該斜め格子柄のハッチングが施された画素の組が、チャネル方向に1つだけ追加される。また、チャネル方向への追加に際して、データ配列(画素配列)は、入力データIDにおける位置関係を維持するように追加される。チャネル方向へ追加される画素の組のデータサイズは、間引き処理の際に残された画素の組と同じである。並べ替えにより、縦横のサイズが縮小されたサイズ「3×3」の中間データMDが2つ(2チャネル)得られる。
【0084】
図11に示す例では、データ値が「1」、「7」の画素が、この順番でチャネル方向に並ぶ。データ値が「3」、「9」の画素が、この順番でチャネル方向に並ぶ。データ値が「5」、「11」の画素が、この順番でチャネル方向に並ぶ。データ値が「13」、「19」の画素が、この順番でチャネル方向に並ぶ。データ値が「15」、「21」の画素が、この順番でチャネル方向に並ぶ。データ値が「17」、「23」の画素が、この順番でチャネル方向に並ぶ。データ値が「25」、「31」の画素が、この順番でチャネル方向に並ぶ。データ値が「27」、「33」の画素が、この順番でチャネル方向に並ぶ。データ値が「29」、「35」の画素が、この順番でチャネル方向に並ぶ。
【0085】
本変形例の場合も、並べ替え後にストライド「1」の畳み込み演算(パディング含む)が行われるが、これについては、上述した物体の形状特性が縦長形状の場合と同様であるために、説明は省略する。
【0086】
[4-2.第2変形例]
以上では、物体の形状特性を考慮した畳み込み手法における並べ替えにより得られるデータ(例えば図9等の中間データMD参照)の縦横のサイズが、入力データの縦横のサイズの半分となる構成とした。しかし、これは例示であり、並べ替えにより縮小される縦横のサイズは、半分(1/2)以外であってもよい。例えば、1/3や1/4等であってもよい。
【0087】
図12は、並べ替えによりデータの縦横のサイズが1/3とされる場合の例を示す図である。図12において、白抜きの矢印の左側に示す図は、入力データIDである。また、図12において、白抜きの矢印の左側は並び替え前の状態を示し、白抜きの矢印の右側は並び替え後の状態を示す。
【0088】
本変形例でも、入力データの縦方向および横方向の画素列を間引く間引き処理が行われる。間引き処理の仕方は、上述の図9等と概ね同様であるが、縦横のサイズの縮小率が大きいために、上述の図9等に比べて間引かれる画素列の数が増える。図12において、白色で示す残される画素を含まない縦横の列が間引かれる。詳細には、データ値が「2」、「3」、「5」、および、「6」の画素を含む各縦列、並びに、データ値が「7」、「13」、「25」、および、「31」の画素を含む各横列が間引かれる。間引き処理により、縦横のサイズが「6×6」から「2×2」の1/3に縮小される。
【0089】
また、本変形例でも、間引かれた画素のうち一部の画素がチャネル方向に追加される。図12に示す例では、物体の形状特性が縦長形状である場合を想定している。このために、入力データIDのうち間引かれることなく残された画素の横方向に並ぶ画素がチャネル方向に追加される画素となる。具体的には、図12に示すグレーの画素がチャネル方向に追加される画素となる。データ値が「2」、「3」のそれぞれを起点とするストライド「3」の各畳み込みにおいて抽出領域ERをずらす際に飛ばされない画素からなる各画素群)がチャネル方向への追加されるデータとなる。なお、ストライドに応じて、第2の間引き処理の起点は異なる。本例のように物体の形状特性が縦長形状であってストライド「3」の場合は、第1の間引き処理(基本間引処理データ)の間引きの起点画素(データ値が「1」の画素)の横2つの画素が第2の間引き処理(追加間引処理データ)の起点となる。
【0090】
チャネル方向への追加される画素組のデータの縦横のサイズは、間引き処理の際に残された画素組の縦横のサイズと同じである。また、チャネル方向への追加に際して、各チャネルのデータ配列(画素配列)は、入力データIDにおける位置関係を維持するように追加される。
【0091】
図12に示す例では、データ値が「1」、「2」、「3」の画素が、この順番でチャネル方向に並ぶ。データ値が「4」、「5」、「6」の画素が、この順番でチャネル方向に並ぶ。データ値が「19」、「20」、「21」の画素が、この順番でチャネル方向に並ぶ。データ値が「22」、「23」、「24」の画素が、この順番でチャネル方向に並ぶ。図12に示す例では、中間データが3つ(3チャネル)得られる。
【0092】
本変形例の場合も、並べ替え後にストライドが「1」の畳み込み演算(パディング含む)が行われる。当該畳み込み演算は、上述した並べ替えにより縦横のサイズが半分とされる場合と同様であるために、説明は省略する。
【0093】
<5.留意事項等>
本明細書の、発明を実施するための形態に開示される種々の技術的特徴は、その技術的創作の主旨を逸脱しない範囲で種々の変更を加えることが可能である。また、本明細書の、発明を実施するための形態に開示される複数の実施形態および変形例は可能な範囲で組み合わせて実施されてよい。
【0094】
以上では、画像処理装置が、学習済みのニューラルネットワークを使って、本発明の物体の形状特性を考慮した畳み込み手法を実行する構成とした。ただし、画像処理装置は、ディープラーニングを行う学習装置であってもよい。すなわち、学習時に設定されるニューラルネットワークが、本発明の物体の形状特性を考慮した畳み込み手法を実行する構成であってもよい。学習は、多数の教師ありデータ(画像)を用いて行われてよく、教師ありデータの画像処理を行う際に、本発明の物体の形状特性を考慮した畳み込み手法が利用されてよい。
【符号の説明】
【0095】
1・・・カメラ
2・・・画像処理装置
3・・・制御装置
221・・・ニューラルネットワーク
FI・・・フィルタ
ID・・・入力データ
図1
図2
図3
図4
図5A
図5B
図5C
図5D
図6
図7
図8A
図8B
図9
図10
図11
図12