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

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

▶ 関西電力株式会社の特許一覧

(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024110170
(43)【公開日】2024-08-15
(54)【発明の名称】情報処理装置
(51)【国際特許分類】
   G06T 7/00 20170101AFI20240807BHJP
   E02B 5/08 20060101ALI20240807BHJP
   E02B 9/04 20060101ALI20240807BHJP
   G06V 10/70 20220101ALI20240807BHJP
【FI】
G06T7/00 610B
G06T7/00 350B
E02B5/08 101Z
E02B9/04 E
G06V10/70
【審査請求】未請求
【請求項の数】17
【出願形態】OL
(21)【出願番号】P 2023014582
(22)【出願日】2023-02-02
(71)【出願人】
【識別番号】000156938
【氏名又は名称】関西電力株式会社
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】田中 良英
(72)【発明者】
【氏名】平塚 優作
(72)【発明者】
【氏名】小野 俊二
(72)【発明者】
【氏名】米澤 拓孝
(72)【発明者】
【氏名】本田 修平
【テーマコード(参考)】
5L096
【Fターム(参考)】
5L096AA06
5L096BA02
5L096CA02
5L096EA02
5L096FA06
5L096FA53
5L096FA60
5L096FA64
5L096FA66
5L096FA67
5L096FA69
5L096GA34
5L096GA51
5L096HA11
5L096KA04
5L096MA07
(57)【要約】
【課題】気象条件による影響を受けにくく、かつ、比較的通信状況が悪い環境下でもスクリーンへの塵芥の付着状況を判定できる技術を提供する。
【解決手段】情報処理方法は、スクリーンが設置された取水口を撮影するカメラから静止画像200を取得するステップS1と、静止画像200において、水面が写る領域R1と、塵芥が写る1以上の領域R2と、スクリーンが写る領域R3とを検知するステップS2と、領域R1および1以上の領域R2の合成領域R4と領域R3との境界の端点PTa,PTbを特定するステップS3と、端点PTa,PTbを結ぶ線分を輪郭の一部として有し、合成領域R4側に凸となるスクリーン近傍領域RAを設定するステップS4と、1以上の領域R2のうちスクリーン近傍領域RA内に位置する領域R2に基づいて、スクリーンへの塵芥の付着状況を判定するステップS5とを備える。
【選択図】図7
【特許請求の範囲】
【請求項1】
スクリーンが設置された取水口を有する水路のうち前記取水口が設けられた場所を撮影するカメラから静止画像を取得する取得部と、
前記静止画像において、水面が写る第1領域と、塵芥が写る1以上の第2領域と、前記スクリーンが写る第3領域とを検知する領域検知部と、
前記第1領域および前記1以上の第2領域の合成領域と前記第3領域との境界の第1端点および第2端点を特定する特定部と、
前記第1端点と前記第2端点とを結ぶ第1線分を輪郭の一部として有し、前記合成領域側に凸となるスクリーン近傍領域を設定する設定部と、
前記1以上の第2領域のうち前記スクリーン近傍領域内に位置する第2領域に基づいて、前記スクリーンへの前記塵芥の付着状況を判定する判定部とを備える、情報処理装置。
【請求項2】
前記特定部は、
前記合成領域を膨張させ、
前記第3領域を膨張させ、
膨張された前記合成領域と膨張された前記第3領域とが重なり合う第4領域を抽出し、
前記第4領域に基づいて前記第1端点および前記第2端点を特定する、請求項1に記載の情報処理装置。
【請求項3】
前記カメラから取得された事前準備用画像に対するユーザ入力に応じて、第1~第4基準座標を登録する登録部を備え、
前記第1基準座標は、高さが第1レベルである前記水面と前記スクリーンとの交線の、前記水路の上流側から前記スクリーンを見たときの左端の写る画素の座標であり、
前記第2基準座標は、高さが前記第1レベルである前記水面と前記スクリーンとの前記交線の、前記水路の上流側から前記スクリーンを見たときの右端の写る画素の座標であり、
前記第3基準座標は、高さが前記第1レベルと異なる第2レベルである前記水面と前記スクリーンとの交線の、前記水路の上流側から前記スクリーンを見たときの左端の写る画素の座標であり、
前記第4基準座標は、高さが前記第2レベルである前記水面と前記スクリーンとの前記交線の、前記水路の上流側から前記スクリーンを見たときの右端の写る画素の座標であり、
前記特定部は、
前記第4領域のうち、前記第1基準座標の点と前記第3基準座標の点とを結ぶ第1端線上の点を前記第1端点として特定し、
前記第4領域のうち、前記第2基準座標の点と前記第4基準座標の点とを結ぶ第2端線上の点を前記第2端点として特定する、請求項2に記載の情報処理装置。
【請求項4】
前記特定部は、
前記取得部が前記静止画像を取得するたびに、前記静止画像に対して前記第1端点および前記第2端点を特定し、
最新の静止画像において前記第4領域と前記第1端線とが交わらないことに応じて、前回の静止画像に対して特定された前記第1端点を、前記最新の静止画像における前記第1端点として特定し、
前記最新の静止画像において前記第4領域と前記第2端線とが交わらないことに応じて、前記前回の静止画像に対して特定された前記第2端点を、前記最新の静止画像における前記第2端点として特定する、請求項3に記載の情報処理装置。
【請求項5】
前記特定部は、
前記合成領域の少なくとも一部に属する各点の座標と第1ラベルとを示す第1正解データと、前記第3領域の少なくとも一部に属する各点の座標と第2ラベルとを示す第2正解データとを用いた機械学習を行なうことにより、座標の入力を受けて、前記第1ラベルおよび前記第2ラベルのいずれかを出力する線形分類モデルの分離直線を求め、
前記第4領域に属する複数の点を前記分離直線上に射影することにより得られる複数の射影点のうち、両端に位置する2つの射影点を前記第1端点および前記第2端点として特定する、請求項2に記載の情報処理装置。
【請求項6】
前記カメラから取得された事前準備用画像に対するユーザ入力に応じて、第1基準座標および第2基準座標を登録する登録部を備え、
前記第1基準座標は、前記水面と前記スクリーンとの交線の、前記水路の上流側から前記スクリーンを見たときの左端の写る画素の座標であり、
前記第2基準座標は、前記交線の、前記水路の上流側から前記スクリーンを見たときの右端の写る画素の座標であり、
前記特定部は、
前記複数の射影点のうち、前記第2基準座標の点との距離が最大となる射影点を前記第1端点として特定し、
前記複数の射影点のうち、前記第1基準座標の点との距離が最大となる射影点を前記第2端点として特定する、請求項5に記載の情報処理装置。
【請求項7】
前記特定部は、
前記取得部が前記静止画像を取得するたびに、前記静止画像に対して前記第1端点および前記第2端点を特定し、
最新の静止画像に対して特定した前記第1端点と前記第2端点とを結ぶ第2線分の長さと、前記第1基準座標の点と前記第2基準座標の点とを結ぶ第3線分の長さとの差が第1閾値以上であること、および、前記第2線分と前記第3線分とのなす角度が第2閾値以上であることの少なくとも一方を満たすことに応じて、前記最新の静止画像に対して特定された前記第1端点および前記第2端点を、前回の静止画像に対して前記スクリーン近傍領域を設定するために用いた前記第1端点および前記第2端点と同一となるように補正し、
前記設定部は、前記第1端点および前記第2端点が補正された場合、補正後の前記第1端点および補正後の前記第2端点を用いて、前記スクリーン近傍領域を設定する、請求項6に記載の情報処理装置。
【請求項8】
前記特定部は、
前記分離直線と前記静止画像の端との2つの交点のうち、前記第3領域の重心から見て右側の交点を第1基準点として設定し、前記重心から見て左側の交点を第2基準点として設定し、
前記複数の射影点のうち、前記第1基準点との距離が最小となる射影点、または、前記第2基準点との距離が最大となる射影点を前記第1端点として特定し、
前記複数の射影点のうち、前記第1基準点との距離が最大となる射影点、または、前記第2基準点との距離が最小となる射影点を前記第2端点として特定する、請求項5に記載の情報処理装置。
【請求項9】
前記カメラから取得された事前準備用画像に対するユーザ入力に応じて、第1~第4基準座標を登録する登録部を備え、
前記第1基準座標は、高さが第1レベルである前記水面と前記スクリーンとの交線の、前記水路の上流側から前記スクリーンを見たときの左端の写る画素の座標であり、
前記第2基準座標は、高さが前記第1レベルである前記水面と前記スクリーンとの交線の、前記水路の上流側から前記スクリーンを見たときの右端の写る画素の座標であり、
前記第3基準座標は、高さが前記第1レベルと異なる第2レベルである前記水面と前記スクリーンとの交線の、前記水路の上流側から前記スクリーンを見たときの左端の写る画素の座標であり、
前記第4基準座標は、高さが前記第2レベルである前記水面と前記スクリーンとの交線の、前記水路の上流側から前記スクリーンを見たときの右端の写る画素の座標であり、
前記特定部は、
前記合成領域の少なくとも一部に属する各点の座標と第1ラベルとを示す第1正解データと、前記第3領域の少なくとも一部に属する各点の座標と第2ラベルとを示す第2正解データと、を用いた機械学習を行なうことにより、座標の入力を受けて、前記第1ラベルおよび前記第2ラベルのいずれかを出力する線形分離モデルの分離直線を求め、
前記分離直線と、前記第1基準座標の点と前記第3基準座標の点とを結ぶ第1端線との交点を前記第1端点として特定し、
前記分離直線と、前記第2基準座標の点と前記第4基準座標の点とを結ぶ第2端線との交点を前記第2端点として特定する、請求項1に記載の情報処理装置。
【請求項10】
前記特定部は、
前記取得部が前記静止画像を取得するたびに、前記静止画像に対して前記第1端点および前記第2端点を特定し、
最新の静止画像において前記分離直線と前記第1端線とが交わらないことに応じて、前回の静止画像に対して特定された前記第1端点を、前記最新の静止画像における前記第1端点として特定し、
前記最新の静止画像において前記分離直線と前記第2端線とが交わらないことに応じて、前記前回の静止画像に対して特定された前記第2端点を、前記最新の静止画像における前記第2端点として特定する、請求項9に記載の情報処理装置。
【請求項11】
前記特定部は、
前記取得部が前記静止画像を取得するたびに、前記静止画像に対して前記第1端点および前記第2端点を特定し、
最新の静止画像に対して特定された前記第1端点および前記第2端点の第1中点と、前回の静止画像に対して設定された前記スクリーン近傍領域の前記第1線分の第2中点との距離が第3閾値以上であることに応じて、前記最新の静止画像に対して特定された前記第1端点および前記第2端点を、前記前回の静止画像に対して前記スクリーン近傍領域を設定するために用いた前記第1端点および前記第2端点と同一となるように補正し、
前記設定部は、前記第1端点および前記第2端点が補正された場合、補正後の前記第1端点および補正後の前記第2端点を用いて、前記スクリーン近傍領域を設定する、請求項1~3,請求項5,請求項6,請求項8および請求項9のいずれか1項に記載の情報処理装置。
【請求項12】
前記特定部は、前記静止画像のうちの一部である、前記第1基準座標の点と前記第2基準座標の点とを含む所定サイズの範囲を設定し、
前記第1正解データは、前記合成領域のうち前記範囲内の各点の座標を示し、
前記第2正解データは、前記第3領域のうち前記範囲内の各点の座標を示す、請求項6または9に記載の情報処理装置。
【請求項13】
前記スクリーン近傍領域は、前記第1線分を長径とする半楕円形状を有する、請求項1から10のいずれか1項に記載の情報処理装置。
【請求項14】
前記設定部は、前記第1線分を長径とし、前記第2端点から前記第1端点まで時計回り方向に描かれる楕円弧と、前記第1線分とで囲まれた領域を前記スクリーン近傍領域として設定する、請求項3,請求項6,請求項8および請求項9のいずれか1項に記載の情報処理装置。
【請求項15】
カメラと、サーバ装置と、端末装置とを備えた監視システムであって、
前記カメラは、スクリーンが設置された取水口を有する水路のうち前記取水口が設けられた場所を撮影し、撮影により得られた静止画像を前記サーバ装置に送信し、
前記サーバ装置は、
前記カメラから前記静止画像を受信し、
前記静止画像において、水面が写る第1領域と、塵芥が写る1以上の第2領域と、前記スクリーンが写る第3領域とを検知し、
前記第1領域および前記1以上の第2領域の合成領域と前記第3領域との境界の第1端点および第2端点を特定し、
前記第1端点と前記第2端点とを結ぶ線分を輪郭の一部として有し、前記合成領域側に凸となるスクリーン近傍領域を設定し、
前記1以上の第2領域のうち前記スクリーン近傍領域内に位置する第2領域に基づいて、前記スクリーンへの前記塵芥の付着状況を判定し、
判定結果を前記端末装置に送信し、
前記端末装置は、前記判定結果を前記サーバ装置から受信し、前記判定結果を表示する、監視システム。
【請求項16】
1以上のプロセッサが、スクリーンが設置された取水口を有する水路のうち前記取水口が設けられた場所を撮影するカメラから静止画像を取得するステップと、
前記1以上のプロセッサが、前記静止画像において、水面が写る第1領域と、塵芥が写る1以上の第2領域と、前記スクリーンが写る第3領域とを検知するステップと、
前記1以上のプロセッサが、前記第1領域および前記1以上の第2領域の合成領域と前記第3領域との境界の第1端点および第2端点を特定するステップと、
前記1以上のプロセッサが、前記第1端点と前記第2端点とを結ぶ線分を輪郭の一部として有し、前記合成領域側に凸となるスクリーン近傍領域を設定するステップと、
前記1以上のプロセッサが、前記1以上の第2領域のうち前記スクリーン近傍領域内に位置する第2領域に基づいて、前記スクリーンへの前記塵芥の付着状況を判定するステップとを備える、情報処理方法。
【請求項17】
情報処理装置を制御するプログラムであって、
スクリーンが設置された取水口を有する水路のうち前記取水口が設けられた場所を撮影するカメラから静止画像を取得するステップと、
前記静止画像において、水面が写る第1領域と、塵芥が写る1以上の第2領域と、前記スクリーンが写る第3領域とを検知するステップと、
前記第1領域および前記1以上の第2領域の合成領域と前記第3領域との境界の第1端点および第2端点を特定するステップと、
前記第1端点と前記第2端点とを結ぶ線分を輪郭の一部として有し、前記合成領域側に凸となるスクリーン近傍領域を設定するステップと、
前記1以上の第2領域のうち前記スクリーン近傍領域内に位置する第2領域に基づいて、前記スクリーンへの前記塵芥の付着状況を判定するステップとを、前記情報処理装置のプロセッサに実行させる、プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、情報処理装置、監視システム、情報処理方法、およびプログラムに関する。
【背景技術】
【0002】
小水力発電所の水路の周囲には落葉広葉樹が多く、秋になると大量の葉などの塵芥が水路に流れ込む。水路に設けられた取水口のスクリーンに塵芥が付着すると、水路の詰まりが発生する。そのため、作業員は、水路の詰まりが発生したタイミングで塵芥を除去することが好ましい。
【0003】
特開2022-17900号公報(特許文献1)は、取水口を撮影するカメラからの動画像に対して密なオプティカルフローを適用し、流動している塵芥と滞留している塵芥とを判別する情報処理装置を開示している。特許文献1に開示の情報処理装置は、滞留している塵芥とスクリーンの位置とに基づき、スクリーンへの塵芥の付着状況を判定する。作業員は、この判定結果から、水路の詰まりが発生したタイミングを把握できる。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2022-17900号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1の手法では、動画像に対して密なオプティカルフローが適用される。しかしながら、気象条件(例えば日光の入射角度、明るさなど)の影響により、密なオプティカルフローによって、流動している塵芥と滞留している塵芥とを精度よく判別できない可能性がある。
【0006】
また、無線方式を用いてカメラから動画像を取得する場合、カメラが設置される場所の通信状況によっては、カメラから動画像を取得できない、あるいは、カメラから取得した動画像に基づいてスクリーンへの塵芥の付着状況を精度良く判定できない可能性がある。一般に、動画像を送信する場合、一定時間で必要なデータ(前フレームとの差分を示すデータ)を伝送する必要がある。通信状況が悪く、必要なデータを伝送できない場合、データを間引く処理が実行される。その結果、一部が欠損したデータが伝送されることになり、動画像にブロックノイズが発生する。ブロックノイズが発生した動画像を用いると、スクリーンへの塵芥の付着状況を精度良く判定できない。
【0007】
本開示は、上記のような問題点に鑑みてなされたものであり、その目的は、気象条件による影響を受けにくく、かつ、比較的通信状況が悪い環境下でもスクリーンへの塵芥の付着状況を判定できる技術を提供することである。
【課題を解決するための手段】
【0008】
本開示のある局面に従う情報処理装置は、取得部と、領域検知部と、特定部と、設定部と、判定部とを備える。取得部は、スクリーンが設置された取水口を有する水路のうち取水口が設けられた場所を撮影するカメラから静止画像を取得する。領域検知部は、静止画像において、水面が写る第1領域と、塵芥が写る1以上の第2領域と、スクリーンが写る第3領域とを検知する。特定部は、第1領域および1以上の第2領域の合成領域と第3領域との境界の第1端点および第2端点を特定する。設定部は、第1端点と第2端点とを結ぶ第1線分を輪郭の一部として有し、合成領域側に凸となるスクリーン近傍領域を設定する。判定部は、1以上の第2領域のうちスクリーン近傍領域内に位置する第2領域に基づいて、スクリーンへの塵芥の付着状況を判定する。
【0009】
本開示の他の局面に従う監視システムは、カメラと、サーバ装置と、端末装置とを備える。カメラは、スクリーンが設置された取水口を有する水路のうち取水口が設けられた場所を撮影し、撮影により得られた静止画像をサーバ装置に送信する。サーバ装置は、カメラから静止画像を受信する。サーバ装置は、静止画像において、水面が写る第1領域と、塵芥が写る1以上の第2領域と、スクリーンが写る第3領域とを検知する。サーバ装置は、第1領域および1以上の第2領域の合成領域と第3領域との境界の第1端点および第2端点を特定する。サーバ装置は、第1端点と第2端点とを結ぶ線分を輪郭の一部として有し、合成領域側に凸となるスクリーン近傍領域を設定する。サーバ装置は、1以上の第2領域のうちスクリーン近傍領域内に位置する第2領域に基づいて、スクリーンへの塵芥の付着状況を判定し、判定結果を端末装置に送信する。端末装置は、判定結果をサーバ装置から受信し、判定結果を表示する。
【0010】
本開示のさらに他の局面に従う情報処理方法は、第1~第5のステップを備える。第1のステップは、1以上のプロセッサが、スクリーンが設置された取水口を有する水路のうち取水口が設けられた場所を撮影するカメラから静止画像を取得するステップである。第2のステップは、1以上のプロセッサが、静止画像において、水面が写る第1領域と、塵芥が写る1以上の第2領域と、スクリーンが写る第3領域とを検知するステップである。第3のステップは、1以上のプロセッサが、第1領域および1以上の第2領域の合成領域と第3領域との境界の第1端点および第2端点を特定するステップである。第4のステップは、1以上のプロセッサが、第1端点と第2端点とを結ぶ線分を輪郭の一部として有し、合成領域側に凸となるスクリーン近傍領域を設定するステップである。第5のステップは、1以上のプロセッサが、1以上の第2領域のうちスクリーン近傍領域内に位置する第2領域に基づいて、スクリーンへの塵芥の付着状況を判定するステップである。
【0011】
本開示のさらに他の局面に従うプログラムは、上記の第1~第5のステップを、情報処理装置のプロセッサに実行させる。
【発明の効果】
【0012】
本開示の技術によれば、気象条件による影響を受けにくく、かつ、比較的通信状況が悪い環境下でもスクリーンへの塵芥の付着状況を判定できる。
【図面の簡単な説明】
【0013】
図1】水路を説明するための図である。
図2】監視システムのシステム構成を説明するための図である。
図3図1および図2に示した取水口における塵芥の状態を表した模式図である。
図4】カメラによって撮影された静止画像の一例を示す図である。
図5】サーバ装置のハードウェア構成を説明するための図である。
図6】サーバ装置の機能構成の一例を示す図である。
図7】運用フェーズにおけるサーバ装置の処理の流れの概要を示すフローチャートである。
図8】第1実施例における登録情報を説明する図である。
図9】第1実施例の処理の流れの前半を示すフローチャートである。
図10】第1実施例の処理の流れの後半を示すフローチャートである。
図11図9に示すステップS12~S17を説明する図である。
図12図10に示すステップS18,S21,S24を説明する図である。
図13図10に示すステップS20,S23を説明する図である。
図14図10に示すステップS29の処理内容を説明する図である。
図15】静止画像から抽出された滞留塵芥領域の一例を示す図である。
図16】長さLsを説明するための図である。
図17】本実施の形態において設定されたスクリーン近傍領域の一例を示す図である。
図18】第2実施例の処理の流れの前半を示すフローチャートである。
図19】第2実施例の処理の流れの後半を示すフローチャートである。
図20】ステップS44の処理を説明する図である。
図21】散布図として見なされる範囲と分離直線との関係を示す図である。
図22】ステップS45~S49の処理を説明する図である。
図23】第3実施例の処理の流れの前半を示すフローチャートである。
図24】第3実施例の処理の流れの後半を示すフローチャートである。
図25】ステップS61~S67を説明する図である。
図26】第4実施例の処理の流れの前半を示すフローチャートである。
図27】第4実施例の処理の流れの後半を示すフローチャートである。
図28】ステップS71~S74を説明する図である。
【発明を実施するための形態】
【0014】
以下、図面を参照しつつ、本発明の実施の形態に係る監視システムについて説明する。以下の説明では、同一の部材には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
【0015】
また、以下では、水路に浮遊する塵芥(浮遊性塵芥)の例として、落ち葉を挙げて説明する。ただし、塵芥は、落ち葉に限定されるものではない。
【0016】
<水路>
図1は、水路を説明するための図である。図1に示す例では、水路50は、河川40から分岐した水路である。水路50を流れる水は、小水力発電所100に供給される。小水力発電所100では、この水は発電設備の発電用水として利用される。その後、水は、河川40に放流される。なお、典型的には、10000kW以下が「小水力」と称される。
【0017】
河川40の流域は、通常、落葉広葉樹が多い。それゆえ、秋になると大量の落ち葉が、河川40に流れ込む。流れ込んだ落ち葉(すなわち、塵芥)は、小水力発電所100用の水路50にも流れ込む。塵芥は、取水口70のスクリーン60に付着して詰まりを起こすため、発電量低下(「溢水」とも称される)の原因となっている。なお、スクリーン60は、典型的には金属製の柵である。
【0018】
<監視システム>
図2は、監視システムのシステム構成を説明するための図である。図2に示されるように、監視システム1は、サーバ装置10と、端末装置20と、カメラ30とを備える。カメラ30とサーバ装置10とは、有線方式または無線方式に従って、通信可能に接続される。以下では、カメラ30とサーバ装置10との間の通信回線の一部に無線方式が含まる場合について説明する。端末装置20は、ネットワークを介して通信可能にサーバ装置10に接続されている。
【0019】
端末装置20は、例えば、デスクトップ型のPC(Personal Computer)である。しかしながら、端末装置20は、デスクトップ型のPCに限定されるものではなく、例えば、ラップトップ型のPC、タブレット端末、またはスマートフォンであってもよい。
【0020】
カメラ30は、水路50を撮影するために水路50の傍に設置される。具体的には、カメラ30は、水路50のうち取水口70の付近に設置される。取水口70には、一定形状をした大きな異物(流木等)が発電設備に流れ込まないように、スクリーン60が設けられる。カメラ30は、水路50の上流側から水面およびスクリーン60を撮影するように設置される。
【0021】
カメラ30による撮影によって得られた静止画像は、サーバ装置10に送られる。カメラ30は、例えばTCP(Transmission Control Protocol)/IP(Internet Protocol)を用いて、静止画像のデータをサーバ装置10に送信する。TCP/IPでは、カメラ30とサーバ装置10との間の通信状況が比較的悪くても、静止画像のデータの全てが正常に伝送されるまで、再送が繰り返される。さらに、TCP/IPでは、データの送信元と受信先とが、データの授受が正しく実行されたか否かをお互いに確認し合う。そのため、カメラ30とサーバ装置10との間の通信状況が比較的悪くても、静止画像のデータは、画質が劣化することなく、カメラ30からサーバ装置10へ送信される。
【0022】
サーバ装置10は、カメラ30によって撮影された静止画像を利用した処理を実行する情報処理装置である。詳しくは、サーバ装置10は、静止画像における、スクリーン60の近傍に滞留している塵芥の写る領域に基づいて、スクリーン60への塵芥の付着状況を判定する。サーバ装置10は、判定結果を端末装置20に通知する。例えば、サーバ装置10は、判定結果を含むメールを端末装置20に送信してもよいし、判定結果へアクセスするためのアドレスが記述されたメールを端末装置20に送信してもよい。
【0023】
端末装置20は、判定結果をサーバ装置10から受信し、判定結果を表示する。
小水力発電所100の作業者は、端末装置20に表示された判定結果に基づいて、取水口70に塵芥が詰まったタイミングで、塵芥の除去作業を行なうことができる。そのため、作業者が行きにくい場所の取水口70を監視対象とすることにより、監視システム1の利便性が増す。なお、水路50は、発電所用のものに限定されない。水路50は、大きな規模の発電所用の水路、あるいは農業用水路等の発電目的以外の水路であってもよい。
【0024】
<塵芥の付着状態>
図3は、図1および図2に示した取水口における塵芥の状態を表した模式図である。図3に示されるように、水路50に流れこんだ塵芥80は、水底から水面まで拡がって浮遊している。なお、本例では、「浮遊」は、滞留状態での浮遊と、流動状態での浮遊とを含む。水面で浮遊する塵芥80もあれば、水面下(水中)で浮遊する塵芥80もある。
【0025】
水路を浮遊する塵芥80の一部は、水の流れの向き(矢印A1の向き)に流される。そのうちの一部の塵芥80は、スクリーン60に付着する。塵芥80は、スクリーン60を通過する水の流れによって、既に塵芥80が付着している場所を避けてスクリーン60に付着する。図の例では、塵芥80は、矢印A2の方向ではなく、矢印A3の方向に流される。
【0026】
図4は、カメラによって撮影された静止画像の一例を示す図である。カメラ30から出力される静止画像は、カメラ30の座標系によって表される。カメラ30の座標系は、カメラ30の視野の左上を原点Oとし、視野の横方向をX軸、視野の縦方向をY軸とするXY座標系である。そのため、静止画像の各画素は、XY座標によって表される。
【0027】
図4において、(A)には、スクリーン60に付着する塵芥80が少ないときの静止画像201が示される。(B)には、スクリーン60全体に塵芥80が付着したときの静止画像202が示される。
【0028】
図4に示されるように、塵芥80は、既に塵芥80が付着している部分に重ならず、隙間によって水の流れが生じている箇所に付着する。これにより、塵芥80は、スクリーン60に対して、水面から水底まで薄く、かつ万遍なく付着していく。
【0029】
<ハードウェア構成>
図5は、サーバ装置のハードウェア構成を説明するための図である。図5に示されるように、サーバ装置10は、主たる構成要素として、プログラムを実行するプロセッサ151と、データを不揮発的に格納するROM(Read Only Memory)152と、プロセッサ151によるプログラムの実行により生成されたデータ、又は入力されたデータを揮発的に格納するRAM(Random Access Memory)153と、データを不揮発的に格納するHDD(Hard Disk Drive)154と、通信IF(Interface)155と、入力装置156と、電源回路157と、ディスプレイ158とを含む。各構成要素は、相互にデータバスによって接続されている。なお、通信IF155は、他の機器と間における通信を行なうためのインターフェイスである。
【0030】
サーバ装置10における処理は、各ハードウェアおよびプロセッサ151により実行されるソフトウェア(プログラム)によって実現される。このようなソフトウェアは、HDD154に予め記憶されている場合がある。また、ソフトウェアは、その他の記憶媒体に格納されて、プログラムプロダクトとして流通している場合もある。あるいは、ソフトウェアは、いわゆるインターネットに接続されている情報提供事業者によってダウンロード可能なプログラムプロダクトとして提供される場合もある。このようなソフトウェアは、読取装置によりその記憶媒体から読み取られて、あるいは、通信IF155等を介してダウンロードされた後、HDD154に一旦格納される。そのソフトウェアは、プロセッサ151によってHDD154から読み出され、RAM153に実行可能なプログラムの形式で格納される。プロセッサ151は、そのプログラムを実行する。
【0031】
同図に示されるサーバ装置10を構成する各構成要素は、一般的なものである。したがって、本発明の本質的な部分は、RAM153、HDD154、記憶媒体に格納されたソフトウェア、あるいはネットワークを介してダウンロード可能なソフトウェアであるともいえる。なお、サーバ装置10の各ハードウェアの動作は周知であるので、詳細な説明は繰り返さない。
【0032】
なお、端末装置20は、サーバ装置10と同様な構成を備えるため、端末装置20のハードウェア構成については、繰り返し説明しない。
【0033】
<サーバ装置の機能構成>
図6は、サーバ装置の機能構成の一例を示す図である。図6に示されるように、サーバ装置10は、取得部110と、領域検知部111と、特定部112と、設定部113と、判定部114と、通知部115と、登録部116と、記憶部120とを備える。領域検知部111、特定部112、設定部113、判定部114、および登録部116は、図5に示すプロセッサ151がプログラムを実行することにより実現される。また、取得部110および通知部115は、図5に示す通信IF155と、プログラムを実行するプロセッサ151とによって実現される。記憶部120は、図5に示すRAM153またはHDD154によって実現される。
【0034】
サーバ装置10の処理は、事前準備フェーズの処理と、運用フェーズの処理とを含み得る。事前準備フェーズの処理は、監視システム1を構成する各装置の設置が完了した後、運用フェーズの処理の開始前に実行される。運用フェーズの処理は、事前準備フェーズの処理の後に実行される。
【0035】
取得部110は、事前準備フェーズおよび運用フェーズの両者において動作する。領域検知部111、特定部112、設定部113、判定部114、および通知部115は、運用フェーズにおいて動作する。登録部116は、事前準備フェーズにおいて動作する。
【0036】
取得部110は、事前準備フェーズにおいて、入力装置156(図5参照)が受けたユーザ入力に応じて、カメラ30から事前準備用の静止画像(以下、「事前準備用画像」と称する)を取得(受信)し、取得した事前準備用画像を登録部116に出力する。
【0037】
取得部110は、運用フェーズにおいて、周期的(例えば5分または10分間隔)にカメラ30から静止画像を取得(受信)し、取得した静止画像を領域検知部111に出力する。
【0038】
登録部116は、取得部110から受けた事前準備用画像をディスプレイ158(図5参照)に表示させ、入力装置156へのユーザ入力に応じて、特定部112の処理に使用され得る登録情報を生成する。登録部116は、生成した登録情報を記憶部120に格納する。
【0039】
領域検知部111は、取得部110から受けた静止画像において、水面が写る第1領域(以下、「領域R1」と称する)と、塵芥80が写る1以上の第2領域(以下、「領域R2」と称する)と、スクリーン60が写る第3領域(以下、「領域R3」と称する)とを検知する。具体的には、領域検知部111は、学習済モデル420を用いて、静止画像の各画素に対して、水面,塵芥,スクリーンまたはその他であることを示すラベルを付けるセマンティックセグメンテーションを行なう。領域検知部111は、水面を示すラベルが付与された画素塊を領域R1として検知する。領域検知部111は、塵芥を示すラベルが付与された各画素塊を領域R2として検知する。領域検知部111は、スクリーン60を示すラベルが付与された画素塊を領域R3として検知する。
【0040】
学習済モデル420は、典型的には、ディープニューラルネットワーク構造と、パラメータとで構成される。学習済モデル420は、典型的には、逆誤差伝搬法を用いて生成される。学習済モデル420は、サーバ装置10で生成されてもよいし、他の装置で生成されてもよい。
【0041】
学習済モデル420は、学習用データを用いて予め生成される。学習用データは、複数の静止画像データと、各静止画像データに対して、画素単位で水面,塵芥80,スクリーン60またはその他であることを示すラベルとを含む。ラベル付けがされた静止画像データを学習することにより、学習済モデル420が生成される。
【0042】
特定部112は、領域R1および1以上の領域R2の合成領域R4と、領域R3との境界の第1端点(以下、「端点PTa」と称する)および第2端点(以下、「端点PTb」と称する)を特定する。特定部112は、特定した端点PTaの座標(以下、「第1端点座標」と称する)と、特定した端点PTbの座標(以下、「第2端点座標」と称する)を示す端点情報を記憶部120に格納する。特定部112は、端点PTa,PTbを特定するたびに端点情報を更新する。
【0043】
後述するように、特定部112は、記憶部120が記憶する登録情報を用いて端点PTa,PTbを特定してもよいし、登録情報を用いずに端点PTa,PTbを特定してもよい。特定部112が登録情報を用いずに端点PTa,PTbを特定する場合、登録部116は省略される。
【0044】
設定部113は、端点PTaと端点PTbとを結ぶ線分を輪郭の一部として有し、合成領域R4側に凸となるスクリーン近傍領域RAを設定する。スクリーン近傍領域RAの形状は、特に限定されず、半楕円形状、矩形状などを取り得る。ただし、後述するように、スクリーン近傍領域RAは、オープンソースのコンピュータビジョン向けライブラリを用いることにより容易に描画可能である半楕円形状であることが好ましい。
【0045】
判定部114は、1以上の領域R2のうちスクリーン近傍領域RA内に位置する領域R2に基づいて、スクリーン60への塵芥80の付着状況を判定する。
【0046】
通知部115は、判定部114による判定結果を端末装置20に通知する。これにより、判定結果は、端末装置20に表示される。あるいは、通知部115は、判定結果をディスプレイ158に表示してもよい。
【0047】
<サーバ装置の処理の流れの概要>
図7は、運用フェーズにおけるサーバ装置の処理の流れの概要を示すフローチャートである。
【0048】
図7に示されるように、まず、取得部110として動作するプロセッサ151は、カメラ30から静止画像200を取得する(ステップS1)。
【0049】
次に、領域検知部111として動作するプロセッサ151は、静止画像200において、水面が写る領域R1と、塵芥80が写る1以上の領域R2と、スクリーン60が写る領域R3とを検知する(ステップS2)。
【0050】
次に、特定部112として動作するプロセッサ151は、領域R1および1以上の領域R2の合成領域R4と、領域R3との境界の端点PTa,PTbを特定する(ステップS3)。
【0051】
次に、設定部113として動作するプロセッサ151は、端点PTaと端点PTbとを結ぶ線分を輪郭の一部として有し、合成領域R4側に凸となるスクリーン近傍領域RAを設定する(ステップS4)。
【0052】
次に、判定部114として動作するプロセッサ151は、1以上の領域R2のうちスクリーン近傍領域RA内に位置する領域R2に基づいて、スクリーン60への塵芥80の付着状況を判定する(ステップS5)。最後に、通知部115として動作するプロセッサ151は、判定結果を端末装置20に通知する(ステップS6)。
【0053】
<ステップS1~S6の具体的な実施例>
以下に、図7に示すステップS1~S6の具体的な実施例の詳細について説明する。
【0054】
(第1実施例)
第1実施例では、事前準備フェーズにおいて、登録部116は、カメラ30から取得された事前準備用画像に対するユーザ入力に応じて、第1~第4基準座標を示す登録情報を記憶部120に格納する。
【0055】
図8は、第1実施例における登録情報を説明する図である。登録部116は、取得部110から受けた事前準備用画像250をディスプレイ158に表示し、4つの基準画素PX1~PX4の指定を受け付ける。
【0056】
基準画素PX1は、水面の高さが第1レベル(例えば、低レベル)であるときに、水面とスクリーン60との交線の、水路50の上流側からスクリーン60を見たときの左端の写る画素である。登録部116は、基準画素PX1の座標を第1基準座標として登録する。
【0057】
基準画素PX2は、水面の高さが第1レベル(例えば、低レベル)であるときに、水面とスクリーン60との交線の、水路50の上流側からスクリーン60を見たときの右端の写る画素である。登録部116は、基準画素PX2の座標を第2基準座標として登録する。
【0058】
基準画素PX3は、水面の高さが第1レベルと異なる第2レベル(例えば、高レベル)であるときに、水面とスクリーン60との交線の、水路50の上流側からスクリーン60を見たときの左端の写る画素である。登録部116は、基準画素PX3の座標を第3基準座標として登録する。
【0059】
基準画素PX4は、水面の高さが第2レベル(例えば、高レベル)であるときに、水面とスクリーン60との交線の、水路50の上流側からスクリーン60を見たときの右端の写る画素である。登録部116は、基準画素PX4の座標を第4基準座標として登録する。
【0060】
なお、登録部116は、事前準備フェーズにおいて取得部110から受けた複数の事前準備用画像の中から、水面の高さが第1レベルであるときの事前準備用画像の指定を促し、指定された事前準備用画像をディスプレイ158に表示してもよい。そして、登録部116は、表示された事前準備用画像において、基準画素PX1および基準画素PX2の指定を受け付けてもよい。
【0061】
同様に、登録部116は、複数の事前準備用画像の中から、水面の高さが第2レベルであるときの事前準備用画像の指定を促し、指定された事前準備用画像をディスプレイ158に表示してもよい。そして、登録部116は、表示された事前準備用画像において、基準画素PX3および基準画素PX4の指定を受け付けてもよい。
【0062】
図9は、第1実施例の処理の流れの前半を示すフローチャートである。図10は、第1実施例の処理の流れの後半を示すフローチャートである。図9図10において、ステップS12は図7のステップS1に対応し、ステップS13は図7のステップS2に対応し、ステップS11,S14~S28は図7のステップS3に対応し、ステップS29は図7のステップS4に対応し、ステップS30は図7のステップS5,S6に対応する。
【0063】
まず、特定部112として動作するプロセッサ151は、予め登録された第1~第4基準座標を読み込む(ステップS11)。ステップS11の後、ステップS12~S17が実行される。
【0064】
図11を参照して、ステップS12~S17の詳細について説明する。図11は、図9に示すステップS12~S17を説明する図である。
【0065】
ステップS12において、取得部110として動作するプロセッサ151は、カメラ30から静止画像200を取得する(図11の(a)参照)。
【0066】
次にステップS13において、領域検知部111として動作するプロセッサ151は、学習済モデル420を用いて、静止画像200から、水面が写る領域R1、塵芥が写る1以上の領域R2およびスクリーン60の写る領域R3を検知する(図11の(b)参照)。
【0067】
次にステップS14において、特定部112として動作するプロセッサ151は、領域R1,R2を残りの領域から分離し、領域R1,R2を合成することにより合成領域R4を生成する(図11の(c)参照)。ステップS14の後、処理はステップS15に移る。
【0068】
ステップS15において、プロセッサ151は、例えば5×5のカーネル(Kernel)を用いて、合成領域R4を膨張させる(図11の(d)参照)。
【0069】
さらに、ステップS14,S15と並行して、ステップS16が実行される。ステップS16において、プロセッサ151は、領域R3を残りの領域から分離し(図11の(e)参照)、例えば5×5のカーネル(Kernel)を用いて、領域R3を膨張させる(図11の(f)参照)。
【0070】
ステップS15およびステップS16の後、処理はステップS17に移る。ステップS17において、プロセッサ151は、膨張された合成領域R4と膨張された領域R3とが重なり合う第4領域(以下、「境界領域R5」と称する)を他の領域から分離する(図11の(g)参照)。すなわち、プロセッサ151は、膨張された合成領域R4と膨張された領域R3とのAND処理を行なうことにより、境界領域R5を抽出する。ステップS17の後、ステップS18~S28が実行される。
【0071】
図12および図13を参照して、ステップS18~S28の詳細について説明する。図12は、図10に示すステップS18,S21,S24を説明する図である。図13は、図10に示すステップS20,S23を説明する図である。
【0072】
ステップS18において、プロセッサ151は、境界領域R5を示す画像上に、第1基準座標の点(以下、「基準点PT1」と称する)と第3基準座標の点(以下、「基準点PT3」と称する)とを結ぶ第1端線(以下、「端線La」と称する)を描画する(図12参照)。さらに、プロセッサ151は、境界領域R5を示す画像上に、第2基準座標の点(以下、「基準点PT2」と称する)と第4基準座標の点(以下、「基準点PT4」と称する)とを結ぶ第2端線(以下、「端線Lb」と称する)を描画する。
【0073】
次のステップS19において、プロセッサ151は、端線Laと境界領域R5とが交わるか否かを判断する。
【0074】
端線Laと境界領域R5とが交わらない場合(ステップS19でNO)、プロセッサ151は、端点情報によって示される第1端点座標(すなわち、前回の静止画像に対するフローのステップS28において保存された端点PTaの座標)の点を端点PTaとして特定する(ステップS20)。
【0075】
図13に示す例では、夜間に撮影された静止画像200であるため、静止画像200から検出された領域R3の形状が、スクリーン60の本来の形状から小さくなっている。そのため、膨張された合成領域R4と膨張された領域R3とが重なり合う境界領域R5は、端線Laと交わらない。このような場合に、端点情報によって示される第1端点座標の点が端点PTaとして特定される。
【0076】
なお、運用フェーズの開始直後では、端点情報がnullを示す。この場合、ステップS20において、プロセッサ151は、第1基準座標によって示される点(基準点PT1)を端点PTaとして特定する。
【0077】
端線Laと境界領域R5とが交わる場合(ステップS19でYES)、ステップS21において、プロセッサ151は、境界領域R5と端線Laとの交点、すなわち、境界領域R5のうち、端線La上の点(画素)を端点PTaとして特定する(図12参照)。なお、境界領域R5は、複数画素分の幅を有する線状領域となり得る。この場合、境界領域R5のうち端線La上の点(画素)が複数存在する。境界領域R5のうち端線La上の点が複数存在する場合、プロセッサ151は、当該複数の点のうちのいずれかの点(例えば、X座標およびY座標が最大の点)を端点PTaとして特定してもよいし、当該複数の点の重心を端点PTaとして特定してもよい。
【0078】
上述したように、事前準備画像において、第1基準座標および第3基準座標は、それぞれ水面の高さが第1レベルおよび第2レベルであるときに、水面とスクリーン60との交線の、水路50の上流側からスクリーン60を見たときの左端の座標である。そのため、基準点PT1,PT3を結ぶ端線Laと境界領域R5との交点である端点PTaは、静止画像200において、水面とスクリーン60との交線のうち、水路50の上流側からスクリーン60を見たときの左端の点に対応する。
【0079】
さらに、ステップS19~S21と並行して、ステップS22~S24が実行される。ステップS22において、プロセッサ151は、端線Lbと境界領域R5とが交わるか否かを判断する。
【0080】
端線Lbと境界領域R5とが交わらない場合(ステップS22でNO)、プロセッサ151は、端点情報によって示される第2端点座標(すなわち、前回の静止画像に対するフローのステップS28において保存された端点PTbの座標)の点を端点PTbとして特定する(ステップS23)。図13に示す例では、膨張された合成領域R4と膨張された領域R3とが重なり合う境界領域R5は、端線Lbと交わらない。そのため、端点情報によって示される第2端点座標の点が端点PTbとして特定される。
【0081】
なお、運用フェーズの開始直後では、端点情報がnullを示す。この場合、ステップS23において、プロセッサ151は、第2基準座標によって示される点を端点PTbとして特定する。
【0082】
端線Lbと境界領域R5とが交わる場合(ステップS22でYES)、ステップS24において、プロセッサ151は、境界領域R5と端線Lbとの交点、すなわち、境界領域R5のうち、端線Lb上の点(画素)を端点PTbとして特定する(図12参照)。なお、境界領域R5のうち端線Lb上の点(画素)が複数存在する場合、プロセッサ151は、当該複数の点のうちのいずれかの点(例えば、X座標およびY座標が最大の点)を端点PTbとして特定してもよいし、当該複数の点の重心を端点PTbとして特定してもよい。
【0083】
上述したように、事前準備画像において、第2基準座標および第4基準座標は、それぞれ水面の高さが第1レベルおよび第2レベルであるときに、水面とスクリーン60との交線の、水路50の上流側からスクリーン60を見たときの右端の座標である。そのため、基準点PT2,PT4を結ぶ端線Lbと境界領域R5との交点である端点PTbは、静止画像200において、水面とスクリーン60との交線のうち、水路50の上流側からスクリーン60を見たときの右端の点に対応する。
【0084】
ステップS20またはステップS21と、ステップS23またはステップS24とが完了すると、処理はステップS25に移る。ステップS25において、プロセッサ151は、特定された端点PTa,PTbの中心と、端点情報によって示される第1,第2端点座標の中心(すなわち、前回の静止画像に対して特定された端点PTa,PTbの中心)との距離を計算する。
【0085】
次のステップS26において、プロセッサ151は、計算された距離が予め定められた閾値Th1以上であるか否かを判断する。
【0086】
一般に、水路50の水面の高さは急変しない。そのため、計算された距離が閾値Th1以上である場合(ステップS26でYES)、ステップS12において取得された静止画像200において、水面とスクリーン60との交線の端点と大きく異なる点が端点PTa,PTbとして特定されている可能性が高い。そこで、ステップS26でYESの場合、ステップS27において、プロセッサ151は、特定された端点PTa,PTbを、端点情報によって示される第1,第2端点座標の点にそれぞれ補正する。端点情報によって示される第1,第2端点座標の点はそれぞれ、前回の静止画像に対してスクリーン近傍領域RAを設定するために用いた端点PTa,PTbである。そのため、プロセッサ151は、最新の静止画像200に対して特定された端点PTa,PTbを、前回の静止画像に対してスクリーン近傍領域RAを設定するために用いた端点PTa,PTbと同一となるように補正する。これにより、静止画像200における水面とスクリーン60との交線の端点と大きく異なる点が端点PTa,PTbとして特定されることを防止できる。
【0087】
なお、運用フェーズの開始直後では、端点情報がnullを示す。端点情報がnullを示す場合(すなわち、運用フェーズの開始直後の1回目のフローの場合)、ステップS25~S27が省略される。
【0088】
ステップS27の後、または、ステップS26でNOの場合、処理はステップS28に移る。ステップS28において、プロセッサ151は、特定した端点PTaの座標(第1端点座標)と、特定した端点PTbの座標(第2端点座標)とを示すように端点情報を更新する。なお、ステップS27において端点PTa,PTbが補正されている場合、プロセッサ151は、補正後の端点PTa,PTbの座標を示すように端点情報を更新する。
【0089】
ステップS28の後のステップS29において、設定部113として動作するプロセッサ151は、更新された端点情報によって示される座標の端点PTa,PTbを結ぶ線分を輪郭の一部として有し、合成領域R4側に凸となるスクリーン近傍領域RAを設定する。
【0090】
図14は、図10に示すステップS29の処理内容を説明する図である。図14の下部に示されるように、プロセッサ151は、端点PTaと端点PTbとを結ぶ線分85を長径aとし、端点PTbから端点PTaまで時計回り方向に描かれる楕円弧86と、線分85とで囲まれた領域をスクリーン近傍領域RAとして設定する。このようなスクリーン近傍領域RAは、オープンソースのコンピュータビジョン向けライブラリであるOpenCV(Open Source Computer Vision Library)を用いて描画可能である。
【0091】
図14の上部には、楕円を描画する関数cv2.ellipse()が示される。関数cv2.ellipse()を用いて楕円を描画するためには、画像(img)、楕円の中心座標(center)、楕円の長径および短径(Axes)、楕円の回転角度(angle)、開始角度、終了角度、色、および幅が設定される。
【0092】
プロセッサ151は、画像(img)として、ステップS12において取得された静止画像200を設定する。
【0093】
プロセッサ151は、特定された端点PTa,PTbの座標を用いて、楕円の中心座標(center)、楕円の長径および短径(Axes)および楕円の回転角度(angle)を算出する。具体的には、プロセッサ151は、端点PTa,PTbの中点Mの座標を楕円の中心座標(center)として算出する。プロセッサ151は、端点PTaと端点PTbとを結ぶ線分85の長さを楕円の長径aとして算出し、長径aと予め定められた係数(例えば0.3)との積を楕円の短径bとして算出する。プロセッサ151は、X軸の正方向の向きを有する単位ベクトルV0と、中点Mを始点とし、端点PTbを終点とするベクトルV1とのなす角度θを回転角度(angle)として算出する。角度θは、時計回りを正とする値によって表される。
【0094】
上述したように、端点PTa,PTbはそれぞれ、静止画像200において、水面とスクリーン60との交線のうち、水路50の上流側からスクリーン60を見たときの左端,右端の点に対応する。そのため、端点PTa,PTbを結ぶ線分を輪郭の一部として有し、合成領域R4側に凸となる半楕円は、中点Mを中心として、端点PTbから端点PTaに向かって時計回り方向に描かれる。したがって、関数cv2.ellipse()において、開始角度および終了角度は、それぞれ「0°」,「180°」に設定される。
【0095】
さらに、描画される半楕円の色として、予め定められた値(例えば、「255」)が設定される。さらに、半楕円を塗りつぶすため、幅として「-1」が設定される。
【0096】
このように、開始角度、終了角度、色および幅として、固定値を予め設定することができる。
【0097】
このようにして関数cv2.ellipse()を設定することにより、端点PTaと端点PTbとを結ぶ線分85を長径aとし、端点PTbから端点PTaまで時計回り方向に描かれる楕円弧86と、線分85とで囲まれたスクリーン近傍領域RAが描画される。
【0098】
ステップS29の後のステップS30において、判定部114として動作するプロセッサ151は、1以上の領域R2のうちスクリーン近傍領域RA内に位置する領域R2を、スクリーン60によって滞留している塵芥80の領域(以下、「滞留塵芥領域R0」と称する)として抽出する。具体的には、プロセッサ151は、各領域R2の重心を求め、重心がスクリーン近傍領域RA内に位置する領域R2を滞留塵芥領域R0として抽出する。そして、プロセッサ151は、滞留塵芥領域R0に基づいて、スクリーン60への塵芥80の付着状況を判定する。さらに、通知部115として動作するプロセッサ151および通信IF155は、判定結果を端末装置20に通知する。ステップS30の後、処理はステップS12に戻る。
【0099】
図15および図16を参照して、ステップS30の詳細について説明する。図15は、静止画像から抽出された滞留塵芥領域の一例を示す図である。図15において、(A)は、図4の(A)の静止画像201から抽出された滞留塵芥領域R0を示し、(B)は、図4の(B)の静止画像202から抽出された滞留塵芥領域R0を示す。
【0100】
図15の(A)に示されるように、スクリーン60に付着する塵芥80が少ないときの静止画像201では、滞留塵芥領域R0における、端点PTaと端点PTbとを結ぶ線分に沿った長さ(以下、「長さLs」と称する)は短い。線分85は、スクリーン60と水面との交線に対応する。長さLsは、線分85の方向に並んだ滞留塵芥領域R0の長さを累積した長さである。一方、図15の(B)に示されるように、スクリーン60全体に塵芥80が付着したときの静止画像202では、長さLsは長くなる。
【0101】
静止画像201,202には、水底も撮影できている。このような静止画像201,202から、「線分85に沿った滞留塵芥領域R0の当該交線の方向の長さ(水平方向の長さの累積)がスクリーン60全体の塵芥の付着状況に比例する」ことが判断できる。
【0102】
図16は、長さLsを説明するための図である。図16において、矢印は、線分85の方向を示している。長さLsは、線分85に沿って並んだ滞留塵芥領域R0の各長さL1~Lnの総和である。なお、nは、滞留塵芥領域R0の数である。このように、長さLsは、滞留塵芥領域R0の各長さL1~Lnを累積したものである。
【0103】
プロセッサ151は、スクリーン60への塵芥80の付着状況の判定結果として、長さLsを線分85の長さで割った比率を算出してもよい。あるいは、プロセッサ151は、スクリーン60への塵芥80の付着状況の判定結果として、当該比率と予め定められた閾値との比較結果を出力してもよい。
【0104】
図17は、本実施の形態において設定されたスクリーン近傍領域の一例を示す図である。図17において、上部には、水面の高さ(水位)が中レベルであるときの静止画像200と、当該静止画像200から検知された領域R2と、スクリーン近傍領域RAとが示される。下部には、水面の高さが高レベルであるときの静止画像200と、当該静止画像200から検知された領域R2と、スクリーン近傍領域RAとが示される。
【0105】
図17に示されるように、水面の高さに応じて、スクリーン60と水面との交線の位置が変化する。具体的には、水面が高くなるにつれて、基準点PT1,PT2(高さが低レベルである水面とスクリーン60との交線の端が写る画素に対応する2点)を結ぶ線分L0と、スクリーン60と水面との交線との距離が長くなる。
【0106】
本実施の形態によれば、水面の高さに応じてスクリーン60と水面との交線の位置が変化したとしても、当該交線の近傍に、スクリーン近傍領域RAが自動的に設定される。これにより、スクリーン近傍領域RA内に重心が位置する領域R2が滞留塵芥領域R0として抽出され、滞留塵芥領域R0に基づいて、スクリーン60への塵芥80の付着状況が精度良く判定される。
【0107】
(第2実施例)
第2実施例では、事前準備フェーズにおいて、登録部116として動作するプロセッサ151は、カメラ30から取得された事前準備用画像に対するユーザ入力に応じて、第1,第2基準座標を示す登録情報を記憶部120に格納する。上述したように、第1基準座標は、水面とスクリーン60との交線の、水路50の上流側からスクリーン60を見たときの左端の写る画素の座標である。第2基準座標は、当該交線の、水路50の上流側からスクリーン60を見たときの右端の写る画素の座標である。
【0108】
図18は、第2実施例の処理の流れの前半を示すフローチャートである。図19は、第2実施例の処理の流れの後半を示すフローチャートである。図18図19において、ステップS12は図7のステップS1に対応し、ステップS13は図7のステップS2に対応し、ステップS14~S17,S25~S28,S41~S51は図7のステップS3に対応し、ステップS29は図7のステップS4に対応し、ステップS30は図7のステップS5,S6に対応する。
【0109】
図18図19に示されるように、第2実施例の処理は、第1実施例の処理と比較して、ステップS42~S44を含むとともに、ステップS11の代わりにステップS41を含み、かつ、ステップS18~S24の代わりにステップS45~S51を含む点で相違する。そのため、ステップS41~S51について以下に説明する。
【0110】
ステップS41において、特定部112として動作するプロセッサ151は、予め登録された第1基準座標および第2基準座標を読み込む。
【0111】
ステップS41の後のステップS42において、プロセッサ151は、第1基準座標および第2基準座標に基づいて、基準長さおよび基準角度を計算する。基準長さは、第1基準座標の点(基準点PT1)と第2基準座標の点(基準点PT2)とを結ぶ線分の長さである。基準角度は、X軸の正方向の向きを有する単位ベクトルV0と、基準点PT1を始点とし、基準点PT2を終点とするベクトルとのなす角度である。ステップS42の後にステップS12が実行される。
【0112】
ステップS43は、ステップS17の後に実行される。ステップS43において、プロセッサ151は、境界領域R5に属する複数の点の座標を取得する。例えば、プロセッサ151は、境界領域R5の輪郭上の各点の座標を取得する。
【0113】
ステップS44は、ステップS14~S17,S43と並行して実行される。ステップS44において、プロセッサ151は、合成領域R4とスクリーン60の写る領域R3とを分離する分離直線を特定する。
【0114】
図20は、ステップS44の処理を説明する図である。従来、機械学習を用いて生成される線形分類モデル(線形分類器とも称される)が知られている。線形分類モデルは、1種以上の特徴量の線形結合の値に基づいて、各データを2以上のクラスのいずれかに分類する。図20の右側に示されるように、入力データを2クラスに分類する線形2クラス分類モデルは、入力データがプロットされる散布図において、2クラスを分類するための分離直線190を示す。散布図の横軸および縦軸は、2種類の特徴量に対応する。
【0115】
第2実施例では、ステップS12において取得された静止画像200に対して、線形2クラス分類の技術を適用する。すなわち、図20の左側に示されるように、プロセッサ151は、ステップS12において取得された静止画像200を散布図と見なし、合成領域R4と領域R3とを分類するための分離直線90を求める。具体的には、プロセッサ151は、合成領域R4に属する各画素のX座標およびY座標とラベル「R4」とを示す第1正解データと、領域R3に属する各画素のX座標およびY座標とラベル「R3」とを示す第2正解データとを用いた機械学習を行なう。プロセッサ151は、当該機械学習により、X座標およびY座標の入力を受けて、ラベル「R3」,「R4」のいずれかを出力する線形分類モデルの分離直線90を求める。
【0116】
図20に示されるように、分離直線90は、合成領域R4と領域R3との境界線と略一致する。
【0117】
図20に示す例では、静止画像200の全体を散布図として見なし、当該全体に対して線形2クラス分類の技術が適用されている。しかしながら、静止画像200の一部のみを散布図として見なし、当該一部に対して線形2クラス分類の技術を適用してもよい。
【0118】
図21は、散布図として見なされる範囲と分離直線との関係を示す図である。図21の(A)には、静止画像200の全体を散布図として見なしたときの分離直線90が示される。
【0119】
一方、図21の(B)に示されるように、プロセッサ151は、静止画像200のうちの一部である、第1基準座標の点(基準点PT1)と第2基準座標の点(基準点PT2)とを含む所定サイズの範囲92を設定する。所定サイズは、例えば、静止画像200の数分の1のサイズであり、予め定められる。そして、プロセッサ151は、範囲92を散布図として見なしたときの分離直線90を求める。図21の(B)には、合成領域R4のうち範囲92内の各点のX座標およびY座標を示す第1正解データと、領域R3のうち範囲92内の各点のX座標およびY座標を示す第2正解データとを用いた機械学習によって生成された線形分類モデルの分離直線90が示される。
【0120】
基準点PT1および基準点PT2は、上述したように、事前準備用画像250において、水面とスクリーン60との交線の、水路50の上流側からスクリーン60を見たときの左端および右端の写る画素に対応する。そのため、図21に示されるように、基準点PT1,PT2を含む範囲92のみを散布図として見なすことにより、合成領域R4と領域R3との境界線と略一致する分離直線90を取得しやすくなる。
【0121】
なお、範囲92は、事前準備フェーズにおいて、ユーザ入力に応じて予め登録されてもよい。
【0122】
図18および図19に示されるように、ステップS43およびステップS44の両者が実行された後、ステップS45~S49が順に実行される。
【0123】
図22を参照して、ステップS45~S49の処理を説明する。図22は、ステップS45~S49の処理を説明する図である。図22には、境界領域R5を拡大した画像が示される。
【0124】
図22に示されるように、境界領域R5は、歪んだ形状を取りうる。特に、反射光の条件によってスクリーン60の領域R3の端部が著しく歪むことがあり、その影響を受けて境界領域R5が歪む。
【0125】
これに対し、線形2クラス分類の技術を適用することにより得られた分離直線90は、スクリーン60の領域R3の端部の歪みの影響を受けにくい。そこで、境界領域R5の歪みの影響を軽減するために、ステップS45において、プロセッサ151は、ステップS43において取得された座標の点(例えば、境界領域R5の輪郭上の各点)を分離直線90に射影する。図22において、P1~Pnは、境界領域R5の輪郭上の点を分離直線90に射影することにより得られる射影点を示す。
【0126】
次のステップS46において、プロセッサ151は、第1基準座標の基準点PT1と各射影点P1~Pnとの距離D1を計算する。さらに、ステップS47において、プロセッサ151は、第2基準座標の基準点PT2と各射影点P1~Pnとの距離D2を計算する。
【0127】
次のステップS48において、プロセッサ151は、距離D2が最大となる射影点を端点PTaとして特定する。図22に示す例では、射影点P1が端点PTaとして特定される。さらに、ステップS49において、プロセッサ151は、距離D1が最大となる射影点を端点PTbとして特定する。図22に示す例では、射影点Pnが端点PTbとして特定される。
【0128】
上述したように、第1基準座標は、事前準備用画像において、水面とスクリーン60との交線の、水路50の上流側からスクリーン60を見たときの左端の写る画素の座標である。そのため、第1基準座標の基準点PT1からの距離D1が最大となる射影点(端点PTb)は、水面とスクリーン60との交線のうち、水路50の上流側からスクリーン60を見たときの右端の点に対応する。
【0129】
一方、第2基準座標は、事前準備用画像において、水面とスクリーン60との交線の、水路50の上流側からスクリーン60を見たときの右端の写る画素の座標である。そのため、第2基準座標の基準点PT2からの距離D2が最大となる射影点(端点PTa)は、水面とスクリーン60との交線のうち、水路50の上流側からスクリーン60を見たときの左端の点に対応する。
【0130】
次のステップS50において、プロセッサ151は、端点PTa(つまり、距離D2が最大となる射影点)と端点PTb(つまり、距離D1が最大となる射影点)とを結ぶ線分の長さと、X軸の正方向を向く単位ベクトルV0に対する当該線分の角度とを計算する。当該線分の角度は、X軸の正方向を向く単位ベクトルV0と、端点PTaを始点とし、端点PTbを終点とするベクトルV2とのなす角度である。
【0131】
次のステップS51において、プロセッサ151は、ステップS50において計算した長さおよび角度と、ステップS42において計算した基準長さおよび基準角度との差異が閾値以上であるか否かを判断する。プロセッサ151は、ステップS50において計算した長さと基準長さとの差異が閾値Th2以上であること、および、ステップS50において計算した角度と基準角度との差異が閾値Th3以上であることの少なくとも一方を満たす場合、ステップS51でYESと判断する。ステップS51でNOの場合、処理はステップS25に移る。
【0132】
カメラ30の座標系における、水面とスクリーン60との交線の長さおよび姿勢は、水面の高さに応じて変動する。しかしながら、当該変動量はわずかである。そのため、ステップS51でYESの場合、静止画像200において、水面とスクリーン60との交線の端点と大きく異なる点が端点PTa,PTbとして特定されている可能性が高い。そこで、ステップS51でYESの場合、処理はステップS27に移る。これにより、水面とスクリーン60との交線の端点と大きく異なる点が端点PTa,PTbとして特定されることを防止できる。
【0133】
(第3実施例)
第3実施例では、端点PTa,PTbの特定のために登録情報が利用されない。そのため、登録部116が省略されてもよい。
【0134】
図23は、第3実施例の処理の流れの前半を示すフローチャートである。図24は、第3実施例の処理の流れの後半を示すフローチャートである。図23図24において、ステップS12は図7のステップS1に対応し、ステップS13は図7のステップS2に対応し、ステップS14~S17,S25~S28,S43~S49,S61~S67は図7のステップS3に対応し、ステップS29は図7のステップS4に対応し、ステップS30は図7のステップS5,S6に対応する。
【0135】
図23図24に示されるように、第3実施例の処理は、第2実施例の処理と比較して、ステップS41,S42,S50,S51が省略され、ステップS61~S67を含む点で相違する。そのため、図25を参照して、ステップS61~S67について以下に説明する。図25は、ステップS61~S67を説明する図である。
【0136】
ステップS61は、ステップS13の後、ステップS16の前に実行される。ステップS61において、プロセッサ151は、スクリーン60の領域R3の重心SCを特定する。
【0137】
ステップS62は、ステップS44の後に実行される。ステップS62において、プロセッサ151は、ステップS42において求められた分離直線90と静止画像200の端(画像端)との2つの交点Pc1,Pc2を特定する。
【0138】
ステップS63は、ステップS62およびステップS43が完了した後に実行される。ステップS63において、プロセッサ151は、重心SCから分離直線90に下したす垂線の足である点PT0を特定する。
【0139】
次のステップS64において、プロセッサ151は、点PTOから見て、重心SCの方向と交点Pc1の方向とのなす角度θ1と、重心SCの方向と交点Pc2の方向とのなす角度θ2とを計算する。なお、角度θ1,θ2は、-180°から180°までの値をとる。点PTOを中心として、重心SCから交点Pc1に向かう方向が時計回りであるとき、角度θ1は正の値をとり、重心SCから交点Pc1に向かう方向が反時計回りであるとき、角度θ1は負の値をとる。同様に、点PTOを中心として、重心SCから交点Pc2に向かう方向が時計回りであるとき、角度θ2は正の値をとり、重心SCから交点Pc2に向かう方向が反時計回りであるとき、角度θ2は負の値をとる。図25に示す例では、角度θ1は負の値であり、角度θ2は正の値である。
【0140】
次のステップS65において、プロセッサ151は、角度θ1<0を満たすか否かを判断する。
【0141】
ステップS65でYESの場合、ステップS66において、プロセッサ151は、交点Pc1を基準点PT1として設定し、交点Pc2を基準点PT2として設定する。
【0142】
ステップS65でNOの場合、ステップS67において、プロセッサ151は、交点Pc2を基準点PT1として設定し、交点Pc1を基準点PT2として設定する。
【0143】
ステップS63~S67によって、プロセッサ151は、分離直線90と静止画像200の端との2つの交点Pc1,Pc2のうち、領域R3の重心SCから見て右側の交点を基準点PT1として設定でき、重心SCから見て左側の交点を基準点PT2として設定できる。
【0144】
ステップS66またはステップS67の後、ステップS45~S49が順に実行される。そして、ステップS49の後、ステップS25が実行される。
【0145】
第3実施例によれば、分離直線90と静止画像200の端との2つの交点Pc1,Pc2のうち、領域R3の重心SCから見て右側の交点が基準点PT1として、重心SCから見て左側の交点が基準点PT2として自動的に設定される。そのため、第1基準座標および第2基準座標を登録する事前準備が不要となる。
【0146】
そして、自動的に設定された基準点PT1,PT2を用いてステップS46~S49が実行される。これにより、境界領域R5の輪郭の点を分離直線90に射影することにより得られる複数の射影点のうち、水路50の上流側から見て左端の射影点が端点PTaとして特定され、右端の射影点が端点PTbとして特定される。その結果、プロセッサ151は、ステップS29において、図14に示す関数cv2.ellipse()を用いて、端点PTa,PTbを結ぶ線分を輪郭の一部として有し、合成領域R4側に凸となる半楕円のスクリーン近傍領域RAを容易に設定できる。
【0147】
なお、第3実施例では、静止画像200の端(画像端)上の点が基準点PT1,PT2として設定される。そのため、ステップS48において、プロセッサ151は、基準点PT1との距離D1が最小となる射影点を端点PTaとして特定してもよい。同様に、ステップS49において、プロセッサ151は、基準点PT2との距離D2が最小となる射影点を端点PTbとして特定してもよい。これによっても、境界領域R5の輪郭の点を分離直線90に射影することにより得られる複数の射影点のうち、水路50の上流側から見て左端の射影点が端点PTaとして特定され、右端の射影点が端点PTbとして特定される。
【0148】
(第4実施例)
図26は、第4実施例の処理の流れの前半を示すフローチャートである。図27は、第4実施例の処理の流れの後半を示すフローチャートである。図26図27において、ステップS12は図7のステップS1に対応し、ステップS13は図7のステップS2に対応し、ステップS11,S14~S18,S20,S23,S25~S28,S71~S74は図7のステップS3に対応し、ステップS29は図7のステップS4に対応し、ステップS30は図7のステップS5,S6に対応する。
【0149】
図26図27に示されるように、第4実施例の処理は、第1実施例の処理と比較して、第2実施例と同様のステップS44を含むとともに、ステップS19,S21,S22,S24の代わりにステップS71~S74を含む点で相違する。そのため、図28を参照して、ステップS71~S74について以下に説明する。図28は、ステップS71~S74を説明する図である。
【0150】
ステップS18の後のステップS71において、プロセッサ151は、端線Laと分離直線90とが交わるか否かを判断する。
【0151】
端線Laと分離直線90とが交わる場合(ステップS19でYES)、ステップS72において、プロセッサ151は、端線Laと分離直線90との交点を端点PTaとして特定する(図28参照)。なお、端線Laと分離直線90とが交らない場合(ステップS19でNO)、上記のステップS20が実行され、端点情報によって示される第1端点座標(すなわち、前回の静止画像に対するフローのステップS28において保存された端点PTaの座標)の点が端点PTaとして特定される。
【0152】
さらに、ステップS71,S72,S20と並行して、ステップS73,S74,S23が実行される。ステップS73において、プロセッサ151は、端線Lbと分離直線90とが交わるか否かを判断する。
【0153】
端線Lbと分離直線90とが交わる場合(ステップS73でYES)、ステップS74において、プロセッサ151は、端線Lbと分離直線90との交点を端点PTbとして特定する(図28参照)。なお、端線Lbと分離直線90とが交らない場合(ステップS73でNO)、上記のステップS23が実行され、端点情報によって示される第2端点座標(すなわち、前回の静止画像に対するフローのステップS28において保存された端点PTbの座標)の点が端点PTbとして特定される。
【0154】
<変形例>
上記の説明において、運用フェーズの開始直後では端点情報がnullを示すものとした。しかしながら、プロセッサ151は、事前準備フェーズにおいて、登録情報に基づいて、端点情報を暫定的に設定してもよい。
【0155】
例えば、登録情報が第1~第4基準座標を示す場合、プロセッサ151は、第1基準座標の点(基準点PT1)と第3基準座標の点(基準点PT3)とを結ぶ端線La上の点(例えば、基準点PT1から端線Laの長さの1/4だけ離れた点)の座標を第1端点座標として暫定的に設定する。さらに、プロセッサ151は、第2基準座標の点(基準点PT2)と第4基準座標の点(基準点PT4)とを結ぶ端線Lb上の点(例えば、基準点PT2から端線Lbの長さの1/4だけ離れた点)の座標を第2端点座標として暫定的に設定する。
【0156】
登録情報が第1,第2基準座標を示す場合、プロセッサ151は、第1,第2基準座標を第1,第2端点座標として暫定的にそれぞれ設定する。
【0157】
あるいは、登録情報が登録されない第3実施例の場合、プロセッサ151は、運用フェーズの開始直後の1回目のフロー(図23および図24参照)のステップS48において、特定した端点PTaの座標を第1端点座標として暫定的に設定してもよい。さらに、プロセッサ151は、運用フェーズの開始直後の1回目のフローのステップS49において、特定した端点PTbの座標を第2端点座標として暫定的に設定してもよい。
【0158】
<利点>
以上のように、本実施の形態のサーバ装置10は、取得部110と、領域検知部111と、特定部112と、設定部113と、判定部114とを備える。取得部110は、スクリーン60が設置された取水口70を有する水路50のうち取水口70が設けられた場所を撮影するカメラ30から静止画像200を取得する。領域検知部111は、静止画像200において、水面が写る領域R1と、塵芥80が写る1以上の領域R2と、スクリーン60が写る領域R3とを検知する。特定部112は、領域R1および1以上の領域R2の合成領域R4と領域R3との境界の端点PTa,PTbを特定する。設定部113は、端点PTa,PTbを結ぶ線分を輪郭の一部として有し、合成領域R4側に凸となるスクリーン近傍領域RAを設定する。判定部114は、1以上の領域R2のうちスクリーン近傍領域RA内に位置する領域R2に基づいて、スクリーン60への塵芥80の付着状況を判定する。
【0159】
塵芥80は、水面または水中に存在する。そのため、合成領域R4と領域R3との境界は、スクリーン60と水面との交線に対応する。従って、合成領域R4と領域R3との境界の端点PTa,PTbを用いて設定されるスクリーン近傍領域RAは、スクリーン60と水面との交線から上流側に凸となる領域となる。これにより、スクリーン近傍領域RA内に位置する領域R2に基づいて、スクリーン60への塵芥80の付着状況を精度良く判定できる。
【0160】
スクリーン近傍領域RAは、静止画像から特定された、合成領域R4と領域R3との境界の端点PTa,PTbを用いて自動的に設定される。すなわち、動画像に対するオプティカルフローの技術を用いる必要がない。特許文献1に記載の密なオプティカルフローのような動体検知の手法では、例えば強風に起因する水面の波の影響により、静動マップの精度が低下し、滞留塵芥領域を精度良く判定できない可能性がある。しかしながら、本実施の形態では、動画像に対するオプティカルフローの技術を用いる必要がないため、オプティカルフローのように風波など気象条件による影響を受けにくく、かつ、比較的通信状況が悪い環境下でもスクリーンへの塵芥の付着状況を判定できる。
【0161】
第1~第3実施例では、特定部112は、合成領域R4を膨張させるとともに、領域R3を膨張させる。そして、特定部112は、膨張された合成領域R4と膨張された領域R3とが重なり合う境界領域R5を抽出し、境界領域R5に基づいて端点PTa,PTbを特定する。
【0162】
上述したように、合成領域R4と領域R3との境界は、スクリーン60と水面との交線に対応する。そのため、境界領域R5には当該交線が含まれる。これにより、スクリーン60と水面との交線の両端を端点PTa,PTbとして特定することができる。また、境界領域R5は、膨張された合成領域R4と膨張された領域R3とのAND処理により容易に抽出される。
【0163】
第1実施例では、サーバ装置10は、カメラ30から取得された事前準備用画像に対するユーザ入力に応じて、第1~第4基準座標を登録する登録部116を備える。第1,第2基準座標はそれぞれ、高さが第1レベルである水面とスクリーン60との交線の、水路50の上流側からスクリーン60を見たときの左端,右端の写る画素の座標である。第3,第4基準座標はそれぞれ、高さが第1レベルと異なる第2レベルである水面とスクリーン60との交線の、水路50の上流側からスクリーン60を見たときの左端,右端の写る画素の座標である。特定部112は、境界領域R5のうち、第1基準座標の点と第3基準座標の点とを結ぶ端線La上の点を端点PTaとして特定する。さらに、特定部112は、境界領域R5のうち、第2基準座標の点と第4基準座標の点とを結ぶ端線Lb上の点を端点PTbとして特定する。
【0164】
これにより、静止画像200において、水面とスクリーン60との交線のうち、水路50の上流側からスクリーン60を見たときの左端,右端の点が端点PTa,PTbとしてそれぞれ特定される。
【0165】
なお、特定部112は、取得部110が静止画像200を取得するたびに、静止画像200に対して端点PTa,PTbを特定する。特定部112は、最新の静止画像において境界領域R5と端線Laとが交わらないことに応じて、前回の静止画像に対して特定された端点PTaを、最新の静止画像における端点PTaとして特定すればよい。同様に、特定部112は、最新の静止画像において境界領域R5と端線Lbとが交わらないことに応じて、前回の静止画像に対して特定された端点PTbを、最新の静止画像における端点PTbとして特定すればよい。
【0166】
これにより、境界領域R5と端線La,Lbとが交わらない場合であっても、塵芥の付着状況を暫定的に判定できる。
【0167】
第2~第4実施例では、特定部112は、合成領域R4の少なくとも一部に属する各点のX座標およびY座標とラベル「R4」とを示す第1正解データと、領域R3の少なくとも一部に属する各点のX座標およびY座標とラベル「R3」とを示す第2正解データとを用いた機械学習を行なうことにより、X座標およびY座標の入力を受けて、ラベル「R4」,「R3」のいずれかを出力する線形分類モデルの分離直線90を求める。
【0168】
これにより、合成領域R4と領域R3との境界線と略一致する分離直線90を容易に得ることができる。
【0169】
そして、第2,第3実施例では、特定部112は、境界領域R5に属する複数の点(例えば、境界領域R5の輪郭上の点)を分離直線90上に射影することにより得られる複数の射影点のうち、両端に位置する2つの射影点を端点PTa,PTbとして特定する。
【0170】
図22に示されるように、境界領域R5は、歪んだ形状を取りうる。しかしながら、分離直線90上に境界領域R5に属する各点を射影することにより得られる複数の射影点の両端を端点PTa,PTbを特定することにより、水面とスクリーン60との交線の両端により近い点を端点PTa,PTbとして特定しやすくなる。
【0171】
第2実施例では、サーバ装置10は、カメラ30から取得された事前準備用画像に対するユーザ入力に応じて、第1基準座標および第2基準座標を登録する登録部116を備える。第1,第2基準座標はそれぞれ、水面とスクリーン60との交線の、水路50の上流側からスクリーン60を見たときの左端,右端の写る画素の座標である。特定部112は、複数の射影点のうち、第2基準座標の点(基準点PT2)との距離D2が最大となる射影点を端点PTaとして特定し、第1基準座標の点(基準点PT1)との距離D1が最大となる射影点を端点PTbとして特定する。
【0172】
これにより、静止画像200において、水面とスクリーン60との交線のうち、水路50の上流側からスクリーン60を見たときの左端,右端の点が端点PTa,PTbとしてそれぞれ特定される。
【0173】
なお、特定部112は、最新の静止画像200に対して特定した端点PTa,PTbを結ぶ線分の長さと基準長さ(基準点PT1,PT2を結ぶ線分の長さ)との差が閾値Th2以上であるという第1条件を満たすか否かを判断する。さらに、特定部112は、最新の静止画像200に対して特定した端点PTa,PTbを結ぶ線分と、基準点PT1,PT2を結ぶ線分とのなす角度が閾値Th3以上であるという第2条件を満たすか否かを判断する。端点PTa,PTbを結ぶ線分と、基準点PT1,PT2を結ぶ線分とのなす角度は、ステップS50において計算された角度と、ステップS42において計算された基準角度との差である。特定部112は、第1条件および第2条件の少なくとも一方を満たすことに応じて、最新の静止画像に対して特定された端点PTa,PTbを、前回の静止画像に対してスクリーン近傍領域RAを設定するために用いた端点PTa,PTbと同一となるように補正する。そして、設定部113は、端点PTa,PTbが補正された場合、補正後の端点PTa,PTbを用いて、スクリーン近傍領域RAを設定する。
【0174】
これにより、水面とスクリーン60との交線の端点と大きく異なる点が端点PTa,PTbとして特定されることを防止できる。
【0175】
第3実施例では、特定部112は、分離直線90と静止画像200の端との2つの交点Pc1,Pc2のうち、領域R3の重心SCから見て右側の交点を基準点PT1として設定し、重心SCから見て左側の交点を基準点PT2として設定する。そして、特定部112は、複数の射影点のうち、基準点PT1との距離D1が最小となる射影点、または、基準点PT2との距離D2が最大となる射影点を端点PTaとして特定する。さらに、特定部112は、複数の射影点のうち、基準点PT1との距離D1が最大となる射影点、または、基準点PT2との距離D2が最小となる射影点を端点PTbとして特定する。
【0176】
これにより、静止画像200において、水面とスクリーン60との交線のうち、水路50の上流側からスクリーン60を見たときの左端,右端の点が端点PTa,PTbとしてそれぞれ特定される。また、第3実施例では、登録情報を予め登録しておく必要がない。
【0177】
第4実施例では、特定部112は、分離直線90と、第1基準座標の点(基準点PT1)と第3基準座標の点(基準点PT3)とを結ぶ端線Laとの交点を端点PTaとして特定する。さらに、特定部112は、分離直線90と、第2基準座標の点(基準点PT2)と第4基準座標の点(基準点PT4)とを結ぶ端線Lbとの交点を端点PTbとして特定する。
【0178】
これにより、静止画像200において、水面とスクリーン60との交線のうち、水路50の上流側からスクリーン60を見たときの左端,右端の点が端点PTa,PTbとしてそれぞれ特定される。
【0179】
なお、特定部112は、最新の静止画像において分離直線90と端線Laとが交わらないことに応じて、前回の静止画像に対して特定された端点PTaを、最新の静止画像における端点PTaとして特定すればよい。同様に、特定部112は、最新の静止画像において分離直線90と端線Lbとが交わらないことに応じて、前回の静止画像に対して特定された端点PTbを、最新の静止画像における端点PTbとして特定すればよい。
【0180】
これにより、分離直線90と端線La,Lbとが交わらない場合であっても、塵芥の付着状況を暫定的に判定できる。
【0181】
特定部112は、最新の静止画像に対して特定された端点PTa,PTbの中点と、前回の静止画像に対して設定されたスクリーン近傍領域RAの線分85の中点M(図14参照)との距離が閾値Th1以上であることに応じて、端点PTa,PTbを補正する。具体的には、特定部112は、最新の静止画像に対して特定された端点PTa,PTbを、前回の静止画像に対してスクリーン近傍領域RAを設定するために用いた端点PTa,PTbと同一となるように補正する。そして、設定部113は、端点PTa,PTbが補正された場合、補正後の端点PTa,PTbを用いて、スクリーン近傍領域RAを設定する。
【0182】
これにより、水面とスクリーン60との交線の端点と大きく異なる点が端点PTa,PTbとして特定されることを防止できる。
【0183】
第2,第4実施例において、特定部112は、静止画像200のうちの一部であり、第1基準座標の点(基準点PT1)と第2基準座標の点(基準点PT2)とを含む所定サイズの範囲92を設定することが好ましい。そして、第1正解データは、合成領域R4のうち、範囲92内の各点のX座標およびY座標を示す。さらに、第2正解データは、領域R3のうち当該範囲92内の各点のX座標およびY座標を示す。
【0184】
これにより、合成領域R4と領域R3との境界線と略一致する分離直線90を取得しやすくなる。
【0185】
設定部113は、線分85(図14参照)を長径とし、端点PTbから端点PTaまで時計回り方向に描かれる楕円弧86と、線分85とで囲まれた領域をスクリーン近傍領域RAとして設定する。
【0186】
これにより、OpenCVの関数cv2.ellipse()を用いて、スクリーン近傍領域RAを容易に設定することができる。
【0187】
今回開示された実施の形態は全ての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内での全ての変更が含まれることが意図される。
【符号の説明】
【0188】
1 監視システム、10 サーバ装置、20 端末装置、30 カメラ、40 河川、50 水路、60 スクリーン、70 取水口、80 塵芥、85,L0 線分、86 楕円弧、90,190 分離直線、92 範囲、100 小水力発電所、110 取得部、111 領域検知部、112 特定部、113 設定部、114 判定部、115 通知部、116 登録部、120 記憶部、151 プロセッサ、153 RAM、155 通信IF、156 入力装置、157 電源回路、158 ディスプレイ、200,201,202 静止画像、250 事前準備用画像、420 学習済モデル、La,Lb 端線、M 中点、P1~Pn 射影点、PT1,PT2,PT3,PT4 基準点、PTa,PTb 端点、PX1,PX2,PX3,PX4 基準画素、Pc1,Pc2 交点、R0 滞留塵芥領域、R1,R2,R3 領域、R4 合成領域、R5 境界領域、RA スクリーン近傍領域。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24
図25
図26
図27
図28