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

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

▶ 日本電信電話株式会社の特許一覧 ▶ 学校法人慶應義塾の特許一覧

特開2022-78887画像処理装置、画像処理方法、および、画像処理プログラム
<>
  • 特開-画像処理装置、画像処理方法、および、画像処理プログラム 図1
  • 特開-画像処理装置、画像処理方法、および、画像処理プログラム 図2
  • 特開-画像処理装置、画像処理方法、および、画像処理プログラム 図3
  • 特開-画像処理装置、画像処理方法、および、画像処理プログラム 図4
  • 特開-画像処理装置、画像処理方法、および、画像処理プログラム 図5
  • 特開-画像処理装置、画像処理方法、および、画像処理プログラム 図6
  • 特開-画像処理装置、画像処理方法、および、画像処理プログラム 図7
  • 特開-画像処理装置、画像処理方法、および、画像処理プログラム 図8
  • 特開-画像処理装置、画像処理方法、および、画像処理プログラム 図9
  • 特開-画像処理装置、画像処理方法、および、画像処理プログラム 図10
  • 特開-画像処理装置、画像処理方法、および、画像処理プログラム 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022078887
(43)【公開日】2022-05-25
(54)【発明の名称】画像処理装置、画像処理方法、および、画像処理プログラム
(51)【国際特許分類】
   G06M 7/00 20060101AFI20220518BHJP
   G06T 7/60 20170101ALI20220518BHJP
   G06T 7/246 20170101ALI20220518BHJP
【FI】
G06M7/00 301B
G06T7/60 110
G06T7/246
【審査請求】未請求
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2020189851
(22)【出願日】2020-11-13
(71)【出願人】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(71)【出願人】
【識別番号】899000079
【氏名又は名称】慶應義塾
(74)【代理人】
【識別番号】110002147
【氏名又は名称】特許業務法人酒井国際特許事務所
(72)【発明者】
【氏名】岸本 康成
(72)【発明者】
【氏名】八木 哲志
(72)【発明者】
【氏名】若月 駿尭
(72)【発明者】
【氏名】陳 寅
(72)【発明者】
【氏名】三上 量弘
(72)【発明者】
【氏名】中澤 仁
【テーマコード(参考)】
5L096
【Fターム(参考)】
5L096CA04
5L096FA52
5L096HA03
5L096HA05
(57)【要約】
【課題】映像を用いて、ゴミ収集車に投入されたゴミ袋の数を計数する際の処理負荷を軽減する。
【解決手段】画像処理装置10は、事前検出部122と、本検出部123とを備える。事前検出部122は、映像にゴミ袋が映る際には少なくともm個連続したフレームに映る映像のフレーム群から、所定のフレームを選択する。そして、事前検出部122は、選択したフレームにゴミ袋が映っているかを判定するゴミ袋の検出処理を行い、当該フレームにゴミ袋が映っていなかった場合、当該フレームから最大でm-1個のスキップした位置のフレームに対し、ゴミ袋の検出処理を行うことを繰り返す。そして、本検出部123は、事前検出部122によりゴミ袋が映っていると判定されたフレームについて、当該フレームから所定のフレーム数遡った位置のフレームから順にゴミ袋の検出処理を行う。
【選択図】図2
【特許請求の範囲】
【請求項1】
映像にゴミ袋が映る際には少なくともm個連続したフレームに映る映像のフレーム群から、所定のフレームを選択し、前記選択したフレームにゴミ袋が映っているかを判定するゴミ袋の検出処理を行い、前記フレームにゴミ袋が映っていなかった場合、当該フレームから最大でm-1個のスキップした位置のフレームに対し、前記ゴミ袋の検出処理を行うことを繰り返す事前検出部と、
前記事前検出部によりゴミ袋が映っていると判定されたフレームから所定のフレーム数遡った位置のフレームから順に前記ゴミ袋の検出処理を行う本検出部と、
を備えることを特徴とする画像処理装置。
【請求項2】
前記事前検出部は、
前記フレームにゴミ袋が映っていなかった場合、スキップするフレームの数を、擬似乱数を用いた確率により決定する
ことを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記画像処理装置は、
前記本検出部による各フレームのゴミ袋の検出処理の結果に基づき、前記映像におけるゴミ袋それぞれの追跡処理を行う追跡部と、
前記ゴミ袋それぞれの追跡処理の結果に基づき、ゴミ収集車に投入されたゴミ袋の数を計数する計数部と
をさらに備えることを特徴とする請求項1に記載の画像処理装置。
【請求項4】
前記事前検出部が、初回のゴミ袋の検出処理で選択する所定のフレームは、
前記フレーム群における最新のフレームである
ことを特徴とする請求項1に記載の画像処理装置。
【請求項5】
映像にゴミ袋が映る際には少なくともm個連続したフレームに映る映像のフレーム群から、所定のフレームを選択し、前記選択したフレームにゴミ袋が映っているかを判定するゴミ袋の検出処理を行い、前記フレームにゴミ袋が映っていなかった場合、当該フレームから最大でm-1個のスキップした位置のフレームに対し、前記ゴミ袋の検出処理を行うことを繰り返す事前検出ステップと、
前記事前検出ステップによりゴミ袋が映っていると判定されたフレームから所定のフレーム数遡った位置のフレームから順に前記ゴミ袋の検出処理を行う本検出ステップと、
を含むことを特徴とする画像処理方法。
【請求項6】
映像にゴミ袋が映る際には少なくともm個連続したフレームに映る映像のフレーム群から、所定のフレームを選択し、前記選択したフレームにゴミ袋が映っているかを判定するゴミ袋の検出処理を行い、前記フレームにゴミ袋が映っていなかった場合、当該フレームから最大でm-1個のスキップした位置のフレームに対し、前記ゴミ袋の検出処理を行うことを繰り返す事前検出ステップと、
前記事前検出ステップによりゴミ袋が映っていると判定されたフレームから所定のフレーム数遡った位置のフレームから順に前記ゴミ袋の検出処理を行う本検出ステップと、
をコンピュータに実行させるための画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理装置、画像処理方法、および、画像処理プログラムに関する。
【背景技術】
【0002】
例えば、ゴミ収集車の後方に設置された車載カメラで撮影された映像を用いて、当該ゴミ収集車に投入されたゴミ袋の数を計測する技術が提案されている(非特許文献1~4参照)。当該技術では、車載カメラで撮影された映像の個々のフレームを画像認識して、ゴミ袋を検出する。そして、時間的に連続したフレーム間で、検出されたゴミ袋の領域が重複していれば、それらは同じゴミ袋であると判断する。このようにすることで、映像上で個々のゴミ袋を追跡し、最終的にゴミ収集車に投入されたゴミ袋の数を計測する。
【先行技術文献】
【非特許文献】
【0003】
【非特許文献1】地域IoTとオープンデータ分析の研究、[online]、[2020年10月7日検索]、インターネット<https://www.sic.ecl.ntt.co.jp/mt_assets/04_nakazawa.pdf>
【非特許文献2】Kazuhiro Mikami, Yin Chen, Jin Nakazawa, "Poster Abstract:Using Deep Learning to Count Garbage Bags", In Proceedings of the 16th ACM Conference on Embedded Networked Sensor Systems, ACM, New York, NY, USA, pp. 329-330, 2018.
【非特許文献3】Kazuhiro Mikami, Yin Chen, Jin Nakazawa, Yasuhiro Iida, Yasunari Kishimoto, Yu Oya, "DeepCounter: Using Deep Learning to Count Garbage Bags", In The 24th IEEE International Conference on Embedded and Real-Time Computing Systems and Applications, 2018.
【非特許文献4】三上 量弘、陳 寅、中澤 仁、"DeepCounter:深層学習を用いた細粒度なゴミ排出量データ収集手法"、情報処理学会論文誌、 Vol 61、 No 1、 36-48、2020
【発明の概要】
【発明が解決しようとする課題】
【0004】
上記の技術において、各フレームからゴミ袋を検出するためには、例えば、深層学習等を用いた画像認識が必要であり、計算量が多大である。また、ゴミ袋の追跡を行うためには前後のフレーム間でゴミ袋の領域の重複を検出する必要があるが、映像のフレームレートが低いと前後で領域の重複がなくなってしまう。よって、ゴミ袋の追跡の精度を上げるためにはなるべく高いフレームレートが望ましい。また、ゴミ袋の検出の精度向上のためには個々のフレームの解像度が高い方が望ましい。しかし、フレームレートや個々のフレームの解像度を上げると計算量がさらに多大となる。このように計算量が増えると、計算機の計算処理が追い付かなくなるため、未処理のフレームが蓄積されてしまい、最終的には計算資源を使い果たしてしまうという問題がある。
【0005】
また、ゴミ袋の検出対象となる映像には市中の人々等も映り込むことが不可避であり、プライバシー保護的な観点から映像データはネットワークには送信しないという要件が当該システムには求められる。この要件を満たすために当該システムでは車載計算機を用いて前述のアルゴリズムを実行し、検出されたゴミ袋の数のみをGPS(Global Positioning System)による位置情報や時刻と共にネットワークに送信する。このため当該システムは、車載計算機という限られた計算資源で映像データの計算処理を行う必要があり、映像データの計算処理の負荷軽減は重要な課題である。
【0006】
そこで、本発明は、前記した問題を解決し、映像を用いて、ゴミ収集車に投入されたゴミ袋の数を計数する際の処理負荷を軽減することを課題とする。
【課題を解決するための手段】
【0007】
前記した課題を解決するため、本発明は、映像にゴミ袋が映る際には少なくともm個連続したフレームに映る映像のフレーム群から、所定のフレームを選択し、前記選択したフレームにゴミ袋が映っているかを判定するゴミ袋の検出処理を行い、前記フレームにゴミ袋が映っていなかった場合、当該フレームから最大でm-1個のスキップした位置のフレームに対し、前記ゴミ袋の検出処理を行うことを繰り返す事前検出部と、前記事前検出部によりゴミ袋が映っていると判定されたフレームから所定のフレーム数遡った位置のフレームから順に前記ゴミ袋の検出処理を行う本検出部と、を備えることを特徴とする。
【発明の効果】
【0008】
本発明によれば、映像を用いて、ゴミ収集車に投入されたゴミ袋の数を計数する際の処理負荷を軽減することができる。
【図面の簡単な説明】
【0009】
図1図1は、画像処理装置の動作の一例を説明する図である。
図2図2は、画像処理システムの構成例を示す図である。
図3図3は、画像処理装置における事前検出処理の例を説明する図である。
図4図4は、画像処理装置における事前検出処理の例を説明する図である。
図5図5は、画像処理装置における追跡処理の例を説明する図である。
図6図6は、画像処理システムの処理手順の例を示すフローチャートである。
図7図7は、画像処理システムの処理手順の例を示すフローチャートである。
図8図8は、画像処理装置における事前検出処理の変形例を説明する図である。
図9図9は、画像処理装置における事前検出処理の変形例を説明する図である。
図10図10は、画像処理装置における各フレームの処理速度の推移の一例を示すグラフである。
図11図11は、画像処理プログラムを実行するコンピュータの一例を示す図である。
【発明を実施するための形態】
【0010】
以下、図面を参照しながら、本発明を実施するための形態(実施形態)について説明する。本発明は、以下に示す実施形態に限定されない。
【0011】
[動作の一例]
まず、図1を用いて本実施形態の画像処理装置の動作の一例を説明する。画像処理装置は、例えば、ゴミ収集車の後方に設置された車載カメラで撮影された映像を用いて、当該ゴミ収集車に投入されたゴミ袋の数を計数する。なお、画像処理装置が処理対象とする映像のフレームレートは、λ(fps)とする。また、前提条件として、映像にゴミ袋が映る場合は、少なくともm個以上のフレームに連続して映るものとする。
【0012】
ここで、画像処理装置は、ゴミ収集車に投入されたゴミ袋の数を計数するため、映像を構成する各フレームにゴミ袋が映っているかを検出する必要がある。
【0013】
このため、画像処理装置は、映像を構成するフレームのうち、所定のフレーム(例えば、最新のフレーム)に対しゴミ袋の検出処理を行い、ゴミ袋が映っていなかった場合、当該フレームから最大でm-1個のスキップした位置のフレームに対し、ゴミ袋の検出処理を行う(事前検出処理を行う)。そして、事前検出処理によりゴミ袋が検出されると、画像処理装置は、ゴミ袋が検出されたフレームから、所定数遡ったフレームから順にゴミ袋の検出処理を行う(本検出処理を行う)。なお、フレームからのゴミ袋の検出処理は、例えば、YOLO(You Look Only Onse)、SSD(Single Shot multibox Detector)、M2Det等の物体検出技術を用いる。
【0014】
車載カメラは、当該車載カメラが撮影した映像から、事前指定された最大バッファ数の映像フレーム(フレーム)を画像処理装置へ出力する(図1のS1:バッファ出力)。画像処理装置は、S1で出力されたフレームに対し、事前検出処理を行う(S2)。例えば、画像処理装置は、フレームA(最新フレーム)に対しゴミ袋の検出処理を行う。
【0015】
また、画像処理装置は、フレームAから事前設定された遡上期間だけ先頭側にずれたフレームBより古いフレームを破棄する。その結果、フレームBがバッファの先頭となる。なお、遡上期間よりバッファ長が短い場合、バッファの先頭をそのまま先頭とする。
【0016】
画像処理装置は、S2の事前検出処理でゴミ袋が検出されなかった場合、事前検出処理のフレームスキップ数を1増加させる(S3)。そして、画像処理装置は、事前検出処理のフレームスキップ数だけフレームをスキップし(S4)、再度、事前検出処理を行う(S2)。例えば、画像処理装置は、フレームAからバッファの末尾側に上記のフレームスキップ数(例えば、3)スキップした位置にあるフレームA´に対し、再度、事前検出処理を行う。
【0017】
なお、上記の事前検出処理のフレームスキップ数は、例えば、1つずつ増加させ、最大でn個まで増加させたらそれ以降は増加させない等が考えられる。ここでnの値が大きいほど、ゴミ袋の検出に要する計算量を減少させることができるが、nの値はm-1以下に設定する。これにより、事前検出処理におけるゴミ袋の検出の取りこぼしを防ぐことができる。
【0018】
一方、画像処理装置は、S2の事前検出処理でゴミ袋が検出された場合、バッファの先頭のフレームから1フレームずつ順に、ゴミ袋の本検出処理を行い(S5)、フレーム間のゴミ袋の追跡処理を行い(S6)、ゴミ袋の数の計数処理(S7)を行う。なお、本検出処理(S5)を行ったフレームはバッファから削除され、その次のフレームがバッファの先頭になる。
【0019】
画像処理装置は、上記のS5~S7の処理を、バッファ位置がA(図1のフレームA)よりも後になり、かつ、処理対象フレームでゴミ袋が検出されなくなるまで実行する。つまり、S5~S7の処理の後、バッファ位置(バッファの先頭)がAよりも後になっていなかった場合、または、処理対象フレームでゴミ袋が検出された場合(S8でNo)、画像処理装置はS5~S7の処理を行う。一方、バッファ位置がAよりも後になり、かつ、処理対象フレームでゴミ袋が検出されなくなった場合(S8でYes)、画像処理装置は、バッファ位置を処理対象フレーム(例えば、図1のフレームC)の直後に移動させ(S9)、S2に戻る。
【0020】
このようにすることで、画像処理装置は、映像を用いてゴミ収集車に投入されたゴミ袋の数を計数する際の処理負荷を軽減することができる。
【0021】
[構成例]
次に、図2を用いて画像処理システムの構成例を説明する。画像処理システム1は、画像処理装置10と、車載カメラ20とを備える。
【0022】
車載カメラ20は、例えば、ゴミ収集車の後部にゴミ袋が投入される様子を撮影する。車載カメラ20は、例えば、撮影した映像のフレームを画像処理装置10に出力する。画像処理装置10は、車載カメラ20から出力された映像を用いてゴミ収集車に投入されたゴミ袋の数を計数する。この画像処理装置10は、例えば、車載カメラ20が設置されるゴミ収集車の車載計算機である。なお、画像処理システム1に含まれる、画像処理装置10、車載カメラ20の台数は図2に示す台数に限定されない。
【0023】
画像処理装置10は、例えば、入出力部11と、制御部12と、記憶部13とを備える。入出力部11は、各種データの入出力を司り、例えば、車載カメラ20等から映像のフレームの入力を受け付ける。また、入出力部11は、制御部12により検出されたゴミ袋の数を出力する。例えば、入出力部11は、制御部12により検出されたゴミ袋の数を、GPSによる位置情報、時刻と共にネットワーク経由で送信する。
【0024】
制御部12は、画像処理装置10全体の制御を司る。制御部12は、例えば、検出用バッファ処理部121と、事前検出部122と、本検出部123と、追跡部124と、計数部125とを備える。
【0025】
検出用バッファ処理部121は、車載カメラ20から出力されたフレームのうち、事前設定された最大バッファ数の分のフレームを保持する。
【0026】
事前検出部122は、検出用バッファ処理部121により保持されるバッファのうち、所定位置のフレーム(例えば、最新のフレーム)を先頭とするフレーム群を対象に、事前検出処理を行う。
【0027】
例えば、事前検出部122は、上記の最新のフレームをスタート位置としてゴミ袋の検出処理を行い、ゴミ袋が検出できなかった場合、ゴミ袋が検出できなかったフレームから、事前検出処理のフレームスキップ数だけスキップした位置のフレームに対し、再度ゴミ袋の検出処理を行う。
【0028】
上記のフレームスキップ数は、例えば、フレームからゴミ袋の検出ができなかった度に増加させ、最大でn個まで増加させたらそれ以降は増加させない等が考えられる。このnの値は、例えば、m-1以下に設定する。
【0029】
このことを図3および図4を用いて説明する。例えば、フレームスキップ数=0の場合、事前検出部122は、図3に示すフレームのうち、バッファ位置Aの直後のフレームであるA´にゴミ袋の検出処理を行う。
【0030】
ここで、A´のフレームはゴミ袋が映っていないフレームなので、事前検出部122は、フレームスキップ数を増加させ、フレームスキップ数=1でゴミ袋の検出処理を行う。つまり、事前検出部122は、A´からフレームを1つスキップしたA´´でゴミ袋の検出処理を行う。A´´のフレームにはゴミ袋が映っているので、事前検出部122は事前検出処理を終了する。
【0031】
ここで、事前検出部122は、上記の事前検出処理におけるフレームスキップ数の最大値を大きくするほど、ゴミ検出に要する計算量を低減することができる。しかし、フレームスキップ数の最大値を大きくすると、ゴミ検出の取りこぼしが発生する可能性がある。そこで、映像にゴミ袋が映る場合は、少なくともm個以上連続してフレームに映る場合、事前検出部122は、事前検出処理におけるフレームスキップ数を最大でm-1とすることで、ゴミ検出の取りこぼしを避けつつ、ゴミ検出に要する計算量を低減する。
【0032】
例えば、図4に示すように、映像にゴミ袋が映る場合は、少なくとも3個以上連続してフレームに映る場合、事前検出部122は、事前検出処理におけるフレームスキップ数を最大で「2」とする。これにより、事前検出部122は、映像からのゴミ検出の取りこぼしを避けつつ、ゴミ検出に要する計算量を低減することができる。
【0033】
図2の説明に戻る。本検出部123は、事前検出部122による事前検出処理によりゴミ袋が検出されると、バッファの先頭フレームから順にゴミ袋の検出処理(本検出処理)を行う。なお、バッファの先頭フレームからゴミ袋の事前検出を行ったフレームまでのフレーム数が所定数より大きい場合は、事前検出を行ったフレームから所定数のフレームを遡ったフレームを新たなバッファの先頭フレームとし、それ以前のフレームはバッファから削除する。
【0034】
そして、本検出処理で、フレームからゴミ袋が検出された場合、本検出部123は、当該フレームの画像上におけるゴミ袋の位置(領域)を、追跡部124に入力する。一方、フレームからゴミ袋が検出されなかった場合、本検出部123は、当該フレームの次のフレームを対象に本検出処理を行う。なお、本検出部123は、本検出処理後のフレームをバッファ上から削除する。
【0035】
追跡部124は、各フレームに映ったゴミ袋の追跡処理を行う。例えば、追跡部124は、本検出部123により入力されたゴミ袋の領域が、前フレームにおけるゴミ袋の領域と重複するか否かを判定する。ここで、追跡部124が、本検出部123により入力されたゴミ袋の領域が、前フレームにおけるゴミ袋の領域と重複すると判定した場合、重複する面積を算出する。
【0036】
そして、重複する面積が所定の閾値未満である場合、追跡部124は、本検出部123により入力されたゴミ袋の領域を新規のゴミ袋の領域と判定する。そして、追跡部124は、当該ゴミ袋のゴミ袋IDとして、新規のゴミ袋IDを作成し、記憶部13のゴミ袋情報に、当該ゴミ袋ID、当該ゴミ袋の映ったフレームの時刻、当該フレームの画像上における当該ゴミ袋の領域を記録する。
【0037】
一方、重複する面積が閾値以上だった場合、追跡部124は、当該フレームに映ったゴミ袋が前フレームに映ったゴミ袋と同じであると判定する。そして、追跡部124は、記憶部13のゴミ袋情報に、前フレームに映ったゴミ袋のゴミ袋IDと同じゴミ袋IDと、当該フレームの時刻と、当該フレームの画像上における当該ゴミ袋の領域とを記録する。そして、追跡部124は、計数部125に当該ゴミ袋IDを入力する。追跡部124は、上記の処理を繰り返すことにより、各フレームに映ったゴミ袋の追跡処理を行う。
【0038】
計数部125は、映像に映ったゴミ袋の数を計数する。例えば、計数部125は、入力されたゴミ袋IDを指定して、ゴミ袋情報から当該ゴミ袋IDが付与されたレコードを取得する。例えば、計数部125は、図5に示す、符号101に示すフレームのレコードと、符号102に示すフレームのレコードとを取得する。なお、符号101に示すフレームは、符号102に示すフレームの1つ前のフレームである。
【0039】
例えば、計数部125は、図5に示すように前フレームでのゴミ袋の領域上の1点(例えば、ゴミ袋の領域を示すバウンディングボックスの左端と右端の中心にあり、かつ、バウンディングボックスの下端から上端までの間の下端側から20%の位置にある1点)が、各フレーム間で共通する直線(例えば、フレームの下部10%の位置に相当する水平線等)の上側に位置し、現在のフレームでのゴミ袋の領域上の1点が上記の直線の下側に位置する場合、計数成功と判断し、ゴミ袋の数を1増加させる。そして、ゴミ袋の計数成功時には、計数部125は、当該ゴミ袋のゴミ袋IDに対応するレコードをゴミ袋情報から削除する。計数部125は、上記の処理を繰り返すことにより、ゴミ収集車に投入されたゴミ袋の数を計数する。
【0040】
[処理手順]
次に、図6および図7を用いて、画像処理装置10の処理手順の例を説明する。なお、ここでも、映像にゴミ袋が映る場合は、少なくともm個以上連続してフレームに映るものとする。
【0041】
まず、画像処理装置10の検出用バッファ処理部121は、車載カメラ20から出力された映像のフレームを取得し(図6のS11)、事前設定された最大バッファ数のフレームを保持する(S12)。その後、画像処理装置10が処理の停止指示を受け付けた場合(S13でYes)、処理を終了し、処理の停止指示を受け付けなかった場合(S13でNo)、S11へ戻る。
【0042】
また、画像処理装置10は、図6に示した処理とは独立に、以下の処理を行う。例えば、画像処理装置10の事前検出部122は、検出用バッファ処理部121で保持されるフレームについて、上述の事前検出処理を行う(図7のS21)。ここで、S21の事前検出処理の結果、フレームからゴミ袋が検出されず(S22でNo)、かつ、現在設定されているフレームスキップ数がm-1に達していなければ(S31でNo)、事前検出部122は、事前検出処理のフレームスキップ数を増加させる(S32)。例えば、事前検出部122は、現在設定されている事前検出処理のフレームスキップ数がaであった場合、フレームスキップ数を1増加させ、a+1にする。そして、事前検出部122は、当該フレームスキップ数のフレームをスキップし(S33)、スキップ後のフレームを対象に、事前検出処理を行う(S21)。
【0043】
一方、現在設定されているフレームスキップ数が既にm-1に達していれば(S31でYes)、事前検出部122は、当該フレームスキップ数(つまり現在設定されているフレームスキップ数であるm-1個)のフレームをスキップし(S33)、スキップ後のフレームを対象に、事前検出処理を行う(S21)。
【0044】
一方、S21の事前検出処理の結果、ゴミ袋が検出された場合(S22でNo)、本検出部123は、検出用バッファで保持されるフレームについて、ゴミ袋が検出されたフレームから所定数のフレームを遡ったフレームを先頭フレームとし、当該先頭フレームから順に本検出処理を行う(S23)。なお、バッファの先頭フレームからゴミ袋の事前検出を行ったフレームまでのフレーム数が所定数より大きい場合、本検出部123は、事前検出を行ったフレームから所定数のフレームを遡ったフレームを新たなバッファの先頭フレームとし、それよりも前のフレームはバッファから削除する。この本検出処理の結果、フレームからゴミ袋が検出された場合(S24でYes)、本検出部123は、追跡部124に対し、当該ゴミ袋の画像上の領域を出力する(S25)。
【0045】
S25の後、追跡部124は、S25で出力されたゴミ袋の画像上の領域に基づき、ゴミ袋の追跡処理を行う(S26)。例えば、追跡部124は、現フレームの画像上におけるゴミ袋の領域が、前フレームにおけるゴミ袋の領域と所定値以上重複しているか否かにより、現フレームに映ったゴミ袋が前フレームに映ったゴミ袋と同じであるか否かを判定する。そして、追跡部124は、当該判定結果に基づき、フレームごとに当該フレームにおけるゴミ袋の領域について、当該ゴミ袋の領域がどのゴミ袋の領域かをゴミ袋情報に記録する。すなわち、追跡部124は、重複するゴミ袋の領域の面積が所定値未満であった場合は新規のゴミ袋と判定し、閾値以上だった場合は前フレームと同じゴミ袋と判定する。そして、追跡部124は、新規のゴミ袋と判定した場合、ゴミ袋IDを新規に作成し、ゴミ袋情報にゴミ袋ID、時刻、領域を記録し、前フレームと同じゴミ袋と判定した場合、当該ゴミ袋に既に付与されているゴミ袋IDと時刻、領域をゴミ袋情報に記録する。そして、追跡部124は、前フレームと同じゴミ袋を現フレームから検出した場合、計数部125に当該ゴミ袋のゴミ袋IDを入力する。
【0046】
S26の後、計数部125は、S26におけるゴミ袋の追跡処理の結果を用いて、ゴミ袋の数の計数処理を行う(S27)。例えば、計数部125は、S26までの処理で得られたゴミ袋情報から、追跡部124により入力されたゴミ袋IDのレコードを取得する。そして、計数部125は、取得したレコードに基づき、当該ゴミ袋IDのゴミ袋がゴミ収集車に投入されたか否かを判定する。例えば、計数部125は、前フレームでの当該ゴミ袋IDのゴミ袋の領域上の1点(例えば、ゴミ袋の領域を示すバウンディングボックスの左端と右端の中心にあり、かつ、バウンディングボックスの下端から上端までの間の下端側から20%の位置にある1点)がフレーム上の所定の直線(例えば、フレームの下部10%の位置に相当する水平線)の上側に位置し、現在のフレームでの当該ゴミ袋IDのゴミ袋の領域上の1点が上記の直線の下側に位置する場合、計数成功と判断し、ゴミ袋の数を1増加させる。
【0047】
S27の後、バッファ位置がフレーム位置A(事前検出処理の開始時における最新のフレーム位置)より後になり、かつ、処理対象フレームでゴミ袋が検出されなかった場合(S28でYes)、本検出部123は、処理対象フレームの次のフレームをバッファの先頭にする(S29)。また、本検出部123は、当該フレームを新たなフレーム位置A(事前検出処理を開始するフレーム)とする。そして、S21へ戻る。
【0048】
一方、S28において、バッファ位置がまだフレーム位置A(事前検出処理の開始時における最新のフレーム位置)より後ではない場合、または、処理対象フレームでゴミ袋が検出された場合(S28のNo)、S23へ戻る。
【0049】
このようにすることで、画像処理装置10は、映像を用いてゴミ収集車に投入されたゴミ袋の数を計数することができる。
【0050】
[その他の実施形態]
また、事前検出部122によるフレームスキップ数の決定方法は、上記以外の方法でもよい。例えば、事前検出部122は、以下に示す、確率的な手法によりフレームスキップ数を決定してもよい。なお、ここでも、映像にゴミ袋が映る場合は、少なくともm個以上連続してフレームに映るものとする。
【0051】
確率的な手法では、例えば、事前検出部122は、事前検出処理で、あるフレーム(例えば、フレームA)でゴミ袋が検出できない場合、以下の式(1)に示す確率pで、次のフレームに対する事前検出処理を行う。すなわち、事前検出部122は、1-pの確率で次のフレームをスキップする。なお、確率pは、例えば、コンピュータにより擬似乱数を発生させることにより計算することができる。
【0052】
確率p=max(λ-i,μ)/λ…式(1)
【0053】
なお、上記の式(1)におけるμはλ以下の任意の正の実数値である。また、iは0から始まり、事前検出処理でフレームからゴミ袋が検出できなかった度に1ずつ増加するものとする。pの下限値はμ/λなので、pが下限値を取るときの事前検出処理のフレームレートの期待値はμとなる。μの値が小さいほど、ゴミ袋の検出に要する計算量を減少させることができるが、ゴミ袋の検出の取りこぼしを防ぐため、λ/m以上に設定する。
【0054】
例えば、事前検出部122が、図8に示すフレームのうち、Aを開始位置とし、事前検出処理を行う場合を考える。ここで、事前検出部122は、ゴミ袋の検出ができない場合、1-pの確率でフレームをスキップするものとする。なお、λ=10fpsであり、μ=10/3fpsであるものとする。
【0055】
この場合、事前検出部122は、例えば、計算した確率pが9/10であり、当該確率で試行した結果が「フレームをスキップしない」であった場合、Aの直後のフレームであるA´のゴミ袋の検出処理を行う。ここで、A´のフレームにはゴミ袋が映っていないので、事前検出部122は、再度、確率pを計算する。ここで計算した確率pが8/10であり、当該確率pで試行した結果が「フレームをスキップする」であった場合、A´から1つフレームをスキップしたA´´に処理を移動させる。そして事前検出部122は、再度、確率pを計算する。ここで計算した確率pが8/10であり、当該確率pで試行した結果が「スキップしない」であった場合、A´´の直後のフレームのゴミ袋の検出処理を行う。検出処理の結果、当該フレームにはゴミ袋が映っているので、事前検出部122は事前検出処理を終了する。
【0056】
ここで、事前検出部122は、上記の確率p=max(λ-i,μ)/λにおいて、μの値が小さいほど、ゴミ袋の検出に要する計算量を減少させることができるが、ゴミ袋の検出の取りこぼしを防ぐためλ/m以上に設定する。
【0057】
例えば、m=3、μ=λ/3の場合、事前検出部122は、上記の確率pに基づき、次のフレームに対する事前検出処理を行う。この場合、確率pの下限値は1/3になる。これにより、画像処理装置10は、映像からのゴミ検出の取りこぼしを避けつつ、ゴミ検出に要する計算量を低減することができる(図9参照)。
【0058】
次に、図10のグラフを用いて画像処理装置10における各フレームの処理速度の推移の一例を示す。図10において縦軸はProcessing rate(計算処理速度)を示し、横軸はTime(時間)を示す。
【0059】
Processing capacityは、画像処理装置10の最大計算処理速度であり、Processing Lower boundは、画像処理装置10において定常的に動作しているタスク(ゴミ袋の事前検出処理)をリアルタイムに処理するのに必要な計算処理速度の下限値である。また、Data rateは、画像処理装置10が映像のすべてのフレームに対して、ゴミ袋の検出、追跡および計数をリアルタイムに処理するのに必要な計算処理速度を示す。
【0060】
図10に示すグラフにおける実線は、ゴミ袋の事前検出処理を行う場合における、ゴミ袋の検出、追跡および計数をリアルタイムに処理するのに必要な計算処理速度(以下、第1の計算処理速度と称す)を示す。さらに、グラフのハッチング部分は、映像のすべてのフレームに対してゴミ袋の検出、追跡および計数をリアルタイムで処理する際に、画像処理装置10で不足している計算処理量(=計算処理速度×計算処理時間)を示す。
【0061】
画像処理装置10における第1の計算処理速度が、図10に示すように推移した場合を考える。この場合、画像処理装置10は、図10のハッチング部分に相当するデータについては、リアルタイムでの処理が間に合わない。
【0062】
ここで、画像処理装置10における第1の計算処理速度は、映像からゴミ袋が未検出の期間には線形的に減少し、ゴミ袋が検出されると、最高値(Data rate)まで増加する。そこで、画像処理装置10は、映像中、ゴミ袋の未検出の期間が終了し、最初にゴミ袋を検出した時刻(符号901参照)から所定時間(事前設定された遡上期間)遡った時刻からのフレームをバッファして、本検出処理を行う。このようにすることで、画像処理装置10は、限られた計算資源を用いて、映像からゴミ袋を検出する処理を行うことができる。
【0063】
上記のとおり、画像処理装置10は、映像のフレームに常時ゴミ袋が含まれているわけではないという性質を利用し、比較的計算処理量の大きいゴミ袋の検出処理(本検出処理)について間欠的に行うことで、ゴミ袋の検出処理に要する計算処理負荷を低減することができる。また、画像処理装置10は、上記の本検出処理を行う際、映像のフレーム群のうち、事前検出処理でゴミ袋が検出されたフレームから、所定期間遡った位置のフレームから本検出処理を行う。これにより、画像処理装置10は、例えば、計算処理に余裕のある時間も利用して本検出処理を行うことができる。その結果、画像処理装置10は、限られた計算資源を有効活用して映像からゴミ袋を検出することができる。
【0064】
[システム構成等]
また、図示した各部の各構成要素は機能概念的なものであり、必ずしも物理的に図示のように構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。さらに、各装置にて行われる各処理機能は、その全部又は任意の一部が、CPU及び当該CPUにて実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【0065】
また、前記した実施形態において説明した処理のうち、自動的に行われるものとして説明した処理の全部又は一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部又は一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【0066】
[プログラム]
前記した画像処理装置10は、パッケージソフトウェアやオンラインソフトウェアとしてプログラムを所望のコンピュータにインストールさせることによって実装できる。例えば、上記のプログラムを情報処理装置に実行させることにより、情報処理装置を各実施形態の画像処理装置10として機能させることができる。ここで言う情報処理装置には、デスクトップ型又はノート型のパーソナルコンピュータが含まれる。また、その他にも、情報処理装置にはスマートフォン、携帯電話機やPHS(Personal Handyphone System)等の移動体通信端末、さらには、PDA(Personal Digital Assistant)等の端末等がその範疇に含まれる。
【0067】
また、画像処理装置10は、ユーザが使用する端末装置をクライアントとし、当該クライアントに上記の処理に関するサービスを提供するサーバ装置として実装することもできる。この場合、サーバ装置は、Webサーバとして実装することとしてもよいし、アウトソーシングによって上記の処理に関するサービスを提供するクラウドとして実装することとしてもかまわない。
【0068】
図11は、画像処理プログラムを実行するコンピュータの一例を示す図である。コンピュータ1000は、例えば、メモリ1010、CPU1020を有する。また、コンピュータ1000は、ハードディスクドライブインタフェース1030、ディスクドライブインタフェース1040、シリアルポートインタフェース1050、ビデオアダプタ1060、ネットワークインタフェース1070を有する。これらの各部は、バス1080によって接続される。
【0069】
メモリ1010は、ROM(Read Only Memory)1011及びRAM1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、ハードディスクドライブ1090に接続される。ディスクドライブインタフェース1040は、ディスクドライブ1100に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ1100に挿入される。シリアルポートインタフェース1050は、例えばマウス1110、キーボード1120に接続される。ビデオアダプタ1060は、例えばディスプレイ1130に接続される。
【0070】
ハードディスクドライブ1090は、例えば、OS1091、アプリケーションプログラム1092、プログラムモジュール1093、プログラムデータ1094を記憶する。すなわち、上記の画像処理装置10が実行する各処理を規定するプログラムは、コンピュータにより実行可能なコードが記述されたプログラムモジュール1093として実装される。プログラムモジュール1093は、例えばハードディスクドライブ1090に記憶される。例えば、画像処理装置10における機能構成と同様の処理を実行するためのプログラムモジュール1093が、ハードディスクドライブ1090に記憶される。なお、ハードディスクドライブ1090は、SSDにより代替されてもよい。
【0071】
また、上述した実施形態の処理で用いられる各データは、プログラムデータ1094として、例えばメモリ1010やハードディスクドライブ1090に記憶される。そして、CPU1020が、メモリ1010やハードディスクドライブ1090に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出して実行する。
【0072】
なお、プログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1090に記憶される場合に限らず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ1100等を介してCPU1020によって読み出されてもよい。あるいは、プログラムモジュール1093及びプログラムデータ1094は、ネットワされたーク(LAN(Local Area Network)、WAN(Wide Area Network)等)を介して接続他のコンピュータに記憶されてもよい。そして、プログラムモジュール1093及びプログラムデータ1094は、他のコンピュータから、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。
【符号の説明】
【0073】
10 画像処理装置
11 入出力部
12 制御部
13 記憶部
121 検出用バッファ処理部
122 事前検出部
123 本検出部
124 追跡部
125 計数部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11