U 1103
監視カメラの死角空間における行動予測システム Prediction System of Human Activities at Blind Spot of Surveillance Cameras
早稲田大学創造理工学部建築学科 渡辺仁史研究室 2011 年度 卒業論文 1X08A014-3 伊藤公人
2011 年度 早稲田大学 渡辺仁史研究室 卒業論文 監視カメラの死角空間における行動予測システムに関する研究
はじ めに 毎日、毎日、一日 4 時間も通学に時間を取られている。 人身事故か何かでちょっとでも電車が遅れると待ち合わせの時間には絶対に間に合 わない。 乗ってる電車が遅れるからではない。 そもそも、ホームから階段を上がったコンコースまで人で溢れていて、電車に乗る どころか、ホームに降りて行くことすら出来なかったりする。 ただでさえ、満員電車の中を我慢して通学してるのに、やっとの思いで電車に乗っ て来たのに・・・・・なのに、なんでまたここで・・・・ 電車の乗換えや遅延については電光掲示板や駅の構内放送を聞いていればわかる し、最近では携帯電話でインターネットができるから、結構リアルタイムな情報が 得られる。 しかし、本当に知りたいリアルタイムな駅構内のや電車の混雑に関する情報は手に 入れられない。 でも、電車の運行本数は限界近いから、もうこれ以上はなかなか増やせないそうだ。 ならば、せめて駅構内の混雑だけでも解消できないか? そんな思いから、渡辺仁史研究室の門を叩いた。
2011 年度 早稲田大学 渡辺仁史研究室 卒業論文 監視カメラの死角空間における行動予測システムに関する研究
目次 はじめに 目次 論文編 001
1章 研究概要
002
1-1 研究目的
003
1-2 研究概念
006
1-3 研究の流れ
007
1-4 用語の定義 2章 研究背景 2-1 鉄道利用状況に関して
009
2-1-1 駅構内の混雑
011
2-1-2 旅客行動の多様化 2-2 駅におけるモニタリングと利用者への情報提供
012
2-2-1 行動モニタリングの価値(名称仮)
014
2-2-2 情報提供 2-3 既往研究の系譜
015
2-3-1 センシング
018
2-3-2 行動予測
019
2-4 研究の位置づけ 3章 研究方法
021
3-1 調査目的
022
3-2 調査場所の選定 3-3 実施調査
023
3-2-1 実地調査の概要
025
3-2-2 想定する監視カメラの撮影範囲 3-3 調査結果 3-4 調査結果
026
3-4-1X―Y 座標への変換
028
3-4-2 座標データの結合
030
3-4-3 旅客動線の軌跡
2011 年度 早稲田大学 渡辺仁史研究室 卒業論文 監視カメラの死角空間における行動予測システムに関する研究
4章 予測モデル 033
4-1 用語の定義
034
4-2 予測モデルのフロー 4-3 予測モデルのアルゴリズム
035 039 040 042 044
4-3-1 同一人物の識別
4-3-2 判定領域からの脱出判定 4-3-3 Line の作成 4-3-4 旅客位置の予測
4-4 プログラム 5章 予測モデルの検証 5-1 断面交通量算出
046
5-1-1 検出箇所
047
5-1-2 算出手順
048
5-2 断面交通量の比較
049
5-3 検証 6章 まとめ
057
6-1 研究のまとめ
058
6-2 課題と展望
084
参考文献
086
おわりに 資料編
論文編
第1章 研究概要 1 -1 研究目的 1 -2 研究概念 1 -3 研究の流れ 1 -4 用語の定義
2011 年度 早稲田大学 渡辺仁史研究室 卒業論文 監視カメラの死角空間における行動予測システムに関する研究
1- 1 研 究 目的 駅構内における監視カメラの位置とそれに映る旅客動線の関係から、監視カメラ の死角における旅客の行動を明らかにし、駅構内全体の状態を把握するためのシス テム作成することを目的とする。
第1章 研究概要
002
2011 年度 早稲田大学 渡辺仁史研究室 卒業論文 監視カメラの死角空間における行動予測システムに関する研究
1- 2 研 究概念 本研究は以下の概念に則って進める . 駅構内の様な不特定多数の人物が、改札出口やホーム入口といった共通の目的地 を持って流動する場合、以下のような行動基準があると考える。 1.歩行者は目的地への最短経路を選択する。 2.同じ目的地を持った人物らが、集まって進む。 3.発生した動線の流れに逆行して進むことは、大きな労力が必要である。そのた め、歩行者は自身の前方を行く人物を追うような経路を選択する。
最短経路
人物
目的地に到着に掛る労力を最 小
目的地までの距離に大きな差がない場合、最短時
限にするため に、最短距離で 目
間で目的地に到着できる経路を選択する。
的地に向かう。
最短距離
最短時間
図 1-2.1 最短経路
第1章 研究概要
003
2011 年度 早稲田大学 渡辺仁史研究室 卒業論文 監視カメラの死角空間における行動予測システムに関する研究
追従特性
同じ目的地を持った者同士で群れを成して移動すれば、スムーズに進める。
図 1-2.2 追従特性
流れの方向
人の流れに逆らって進むことは、大
同じ方向に進む人物を追うように経
きな労力が必要であると同時に、よ
路を取れば、少ない労力と時間で目
り多くの時間が掛ってしまう。
的地まで辿りつける。
逆走
順行
図 1-2.3 流れの方向
歩行者は少ない労力でより効率的に目的地に到達しようするため、目的地までの 最短距離、もしくは最短時間で到達する経路を選択する。さらに、同じ目的地を持 つ者同士で群れを成し、群衆流動の流れに逆らわずに進めば、進路を妨害する障害 なしに目的地に到達することができる。以上の理由から、不特定多数の歩行者が集 うと群集となり、群集流動が生まれる。
第1章 研究概要
004
2011 年度 早稲田大学 渡辺仁史研究室 卒業論文 監視カメラの死角空間における行動予測システムに関する研究
群衆流動が発生するのは、 監視カメラの死角部分においても変わらない。そのため、 監視カメラの映像における旅客の動線を抽出することができれば、監視カメラの死角 空間の旅客の位置を把握できる。 (図 1-2.4) UP DOWN
DOWN EV DOWN UP
DOWN
DOWN D
DOWN
EV UP
DDOWN
UP
UP
DOWN
UP
UP
UP
DOWN
DOWN EV DOWN UP
DOWN
DOWN
DOWN
EV UP
U UP DOWN
DOWN EV DOWN UP
DOWN WN
DOWWN DOWN
DOWN
EV UP
UP
D DOWN
UP
図 1-2.4 研究概念
第1章 研究概要
005
2011 年度 早稲田大学 渡辺仁史研究室 卒業論文 監視カメラの死角空間における行動予測システムに関する研究
1- 3 研究の流れ 本研究は以下の流れですすめる。
既往文献・社会背景調査
研究テーマ確定
研究方法確定
システムの仕様書決定
駅構内における群衆流動の観察
映像解析による旅客座標の算出
映像解析による断面交通量算出
監視カメラの死角空間における 行動予測システムの構築
断面交通量による比較検証
分析・考察 図 1-3.1 研究のフロー
第1章 研究概要
006
2011 年度 早稲田大学 渡辺仁史研究室 卒業論文 監視カメラの死角空間における行動予測システムに関する研究
1- 3 用語の定義 用語の定義を行う。ただし、行動予測システムに関する用語については後の4章 予測モデルの 4-1 用語の定義にて、改めて定義する。 ・死角空間:監視カメラが設置された空間において、どの監視カメラも撮影するこ とができない範囲 ・群集流動:不特定多数の人物が群れを成して流れ動く様
第1章 研究概要
007
第2章 研究背景 2-1 鉄道利用状況に関して 2-1-1 駅構内の混雑 2-1-2 旅客行動の多様化 2-2 モニタリングと利用者への情報提供 2-2-1 行動モニタリングの価値 2-2-2 情報提供 2-3 既往研究の系譜 2-3-1 センシング 2-3-2 行動予測 2-4 研究の位置づけ
2011 年度 早稲田大学 渡辺仁史研究室 卒業論文 監視カメラの死角空間における行動予測システムに関する研究
2- 1 鉄 道利用状況に関して 2- 1-1 駅構内の混雑 1980 年代から問題になっていた車両の平均混雑率は年々減少を続け、2003
(文献1)長澤夏子、渡辺仁史:駅
年頃からは横ばいになった。( 図 2-1.1)( 図 2-1.2) しかし、図 2-1.2 より通勤ラッ
構内通路歩行時のストレスマネジ
シュや帰宅時のピーク時には、いまだにかなりの混雑が発生する区間があることが
メントに関する研究 ( 生理心理 , 建
分かる。以上のように、車両における混雑率の高さが問題になっていることから、
築計画 I)、学術講演梗概集 . E-1, 建
駅構内における混雑も同様に発生していることは明らかである。
築計画 I, 各種建物・地域施設 , 設計
駅構内の駅構内通路歩行時のストレスマネジメント(図 2-1.3)に関する研究(文
方法 , 構法計画 , 人間工学 , 計画基
献1)が行なわれており、唾液中のアミラーゼの濃度増減から駅構内における混雑
礎 2010, 981-982, 2010-07-20
の度合いが旅客に与えるストレスの度合いに関連があることが明らかとなった。そ の結果、駅構内においても混雑緩和がストレスフリーな駅利用のために重要な課題 であることが分かった。
図 2-1.1 東京圏の最混雑区間における平均混雑率・輸送力の推移(主要 31 区間) (出典)国土交通省
図 2-1.2 大手民鉄各社の最混雑区間における平均混雑率・輸送力の推移 (出典)日本民営鉄道協会
第 2 章 研究背景
009
2011 年度 早稲田大学 渡辺仁史研究室 卒業論文 監視カメラの死角空間における行動予測システムに関する研究
図 2-1.3 東京圏における主要区間混雑率(出典)国土交通省
第 2 章 研究背景
010
2011 年度 早稲田大学 渡辺仁史研究室 卒業論文 監視カメラの死角空間における行動予測システムに関する研究
2- 1-2 旅客行動の多様化 従来の駅は目的地に向かうための乗車と下車が行なわれるだけの空間であり、駅 構内の店舗の果たす役割は「新聞を買う。」「そばを食べる。」などの単一的な機能 のものに限られていた。 しかし、 近年では ecute (図 2-1-2.1) を始めとしたエキナカ施設が充実することで、 「エキナカのカフェでコーヒーを飲みながら友達と待ち合わせ。」や「レストランで 食事をしてデパートで買い物。 」などのように、旅客行動が多様化し、駅が単なる 目的地へ行くための手段に限られなくなった。それに伴い、さらなるサービスの向 上のために駅構内における旅客の行動モニタリングが重要なった。一方で、多様化 する旅客行動により旅客位置の把握がますます重要になった。
図 2-1-2.1 品川駅の ecute(出展)http://spot.naver.jp/1643200 より
第 2 章 研究背景
011
2011 年度 早稲田大学 渡辺仁史研究室 卒業論文 監視カメラの死角空間における行動予測システムに関する研究
2- 2 駅 におけるモニタリングと利用者への情報提供 2- 2-1 モニタリングの価値 インターネットや携帯端末の発展によって人々が得ることができる情報が膨大に (文献)富田正裕 , 藤井祐 増えた。その結果、人々の興味関心が多様化した。その多様化した興味関心の先を
輔 , 山本昌和 , 石突光隆 ,
明らかにすることは、人々の生活をより豊かにするサービスを提供する上で欠かせ
林田和人 , 渡辺仁史『群集
ない。近年では、コンビニエンスストアなどの店舗において、客の興味関心を調べ
映像の画像処理による行動
るために、監視カメラの映像から客の移動経路や何の商品の前で立ち止ったかを
解析』, 日本建築学会第 33
記録して、売上向上や店舗の質の改善に役立てる取り組みが行なわれている。(図
回情報・システム・利用・
2-2-1.1)
技術シンポジウム論文
ecute などの駅中施設の発展により、その利用目的が単に目的地に行くための乗 車、下車だけに限られなくなり、駅空間における旅客の行動が多様化した。従来の 旅客行動が改札通過→乗車→下車→改札通過であった一方で、現在は駅構内のカ フェで友人と待ち合わせやデパートで買い物、食事をするなどのように、旅客の駅 利用の形態が多様化してきた。このような空間において旅客各々が自発的かつス ムーズに行動するためには構内全体の利用状況に関する情報把握とそれに対応した サービスの提供が求められる。 また、旅客行動のモニタリングをすれば、災害が発生した瞬間の旅客の状況を把 握できるため、迅速な非難計画作成に役立てることができる。この実現のため、早 稲田大学と(財)鉄道技術総合技術研究所の共同で監視カメラも映像から実空間に おける旅客の位置座標算出とその流動を抽出する研究(文献)が行なわれている。
図 2-2-1.1 店舗における行動モニタリング ( 出展 )http://panasonic.biz/solution/factory/dousen/index.
第 2 章 研究背景
012
2011 年度 早稲田大学 渡辺仁史研究室 卒業論文 監視カメラの死角空間における行動予測システムに関する研究
図 2-2-1.2 群集映像の画像処理による行動解析(文献より)
第 2 章 研究背景
013
2011 年度 早稲田大学 渡辺仁史研究室 卒業論文 監視カメラの死角空間における行動予測システムに関する研究
2- 2-3 情報提供 構内案内や構内地図駅構内、電光掲示板により、を利用する旅客が自発的かつス
(文献) 野田直利:車両の
ムーズに目的地に辿りつけるように様々な取り組みが行なわれてきている。また、 混雑情報提供による利用 これらの案内方法では対応できないリアルタイムな情報については、構内放送や駅
者の乗車車両選択モデル
員の口頭による案内がある。最近ではスマートフォンなどの携帯端末によって運行
に関する研究、早稲田大
中の車内であっても、旅客個人がそれぞれの求める情報を検索することが可能にな
学創造理工学部建築学科
るなど、駅構内や鉄道運行状況ついての情報提供に力が入れられている。
渡辺研究室 2010 年度卒
また、 野田直利氏の車両の混雑情報提供による利用者の乗車車両選択モデルに
業論文
関する研究(文献)の乗車車両決定に関する意識調査で、車両混雑度を顧慮して乗 車する車両位置決定していなかった旅客の46%が、車両混雑度に関する情報提供 により乗車位置を変えるとアンケート調査に答えたことが明らかになった。このこ とから、駅利用状況を利用者に提供することは、駅利用者が自らの行動を自発的か つスムーズにするため有効な手段であることが明らかになった。
図 2 - 2 -3 .1 車両 の 混 雑 度 表 示 案 内 を 参考人の人数の割合(文献○より)
第 2 章 研究背景
014
2011 年度 早稲田大学 渡辺仁史研究室 卒業論文 監視カメラの死角空間における行動予測システムに関する研究
2- 3 既 往 研究の系譜 2- 3-1 セ ンシング
(文献)豊嶋 伊知郎、服部 可奈子、
□画像処理
吉田 琢史、板倉 豊和、小磯 貴史:
本研究で旅客の位置情報を扱うあたって、センシング技術用いて歩行者の位置情
多段階のパターン認識を用いた歩
報を算出することに関する研究を以下にまとめた。人物検出におもに使用されるセ
行軌跡データからの顧客行動判別、
ンシング技術は、ビデオカメラによる画像処理、ステレオカメラ、レーザースキャ
情報処理学会研究報告 . CVIM, [ コ
ナの3つに分類される。
ンピュータビジョンとイメージメ
人物検出に関してはステレオカメラやレーザースキャナなどの専用機器が主流で
ディア ] 2006(25), 173-178, 2006-
あるが、駅構内のような複雑かつ広域な空間全体に専用機器を新たに配置して、全
03-16
体の旅客の状況を把握することは現実的ではない。そこで、本研究では駅構内にす でに設置されている監視カメラの映像から旅客の位置座標を取得できることを想定 して、監視カメラの死角における旅客行動の予測システムを構築した。
(文献)豊嶋 伊知郎、服部 可奈子、 吉田 琢史、板倉 豊和、小磯 貴史: 多段階のパターン認識を用いた歩
・背景差分と色の差異を利用した人物の追跡 ( センシングコンピューティング )(文
行軌跡データからの顧客行動判別、
献)
情報処理学会研究報告 . CVIM, [ コ
熱赤外線カメラやレーザースキャナなどの高価な機材を使用せず、パソコンと
ンピュータビジョンとイメージメ
CCD カメラのみを使用して、背景差分と歩行者の服装の色相情報を用いて人物検
ディア ] 2006(25), 173-178, 2006-
出、並びに人物識別を行ない、簡易なデバイスと従来よりも少ない計算量で人物識
03-16
別をするための手法を有効性を明らかにしたしかし、制服などの同色の服を着た群 衆に対して、人物識別が正しくできないなどの問題点が明らかになった。 (文献)鈴木 直彦 平澤 宏祐 田中
・多段階のパターン認識を用いた歩行軌跡データからの顧客行動判別(文献)
健一 , 佐藤 洋一 , 野 陽三 : 人物動線
監視カメラの画像から店舗における人間の歩行軌跡データをもとに、購入検討行
データ分析による逸脱行動人物の
動、迷走行動、無目的行動などの顧客行動を判別する手法を提案した。顧客行動の
検出、報処理学会研究報告 . CVIM,
判別のためには、判断基準になるデータの作成が不可欠である。作成にあたって被
[ コ ン ピ ュ ー タ ビ ジ ョン とイメー
験者の行動を記録するが、シナリオどおりに演じてもらった場合、演じていること
ジ メ デ ィ ア ] 2007(31), 109-115,
からくる行動への影響があり、一方で、シナリオのない状態で記録した場合は、あ
2007-03-19
とから行動にラベル付けを行なうため、間違ったラベリングが発生する可能性が高 くなるなどの問題点が明らかになった。 ・人物動線データ分析による逸脱行動人物の検出(文献) 人物を直下に捕らえられるようにカメラを設置し、映像から実空間における店舗 利用者の位置座標から動線データを作成、そのデータを自動分類するシステムを構 築した。その結果、店舗利用者の動線を過去の蓄積されたデータと照らし、逸脱行 動をした人物の検出の手法を明らかにした。
第 2 章 研究背景
015
2011 年度 早稲田大学 渡辺仁史研究室 卒業論文 監視カメラの死角空間における行動予測システムに関する研究
□ステレオカメラ
(文献)榎原 孝明 馬場健二 木村明
混雑の激しい場所において、通常の監視カメラが設置される場所から映像を取得
弘:ステレオ画像処理を用いた歩行者
した場合、取得された映像には人の重なりがあり、そのままでは正確な旅客の位置
の動線計測 ( 交通における計測・一般 )
の抽出は難しい。その問題に対処するため、ステレオカメラを使用した三次元で歩
情報処理学会研究報告 . ITS, [ 高度交通
行者の位置を取得する研究が行われている。単眼レンズから得られる映像の二次元
システム ] 2007(90), 83-86, 2007-09-
情報だけでなく、左右二つのレンズから得られる被写体位置の差分より、カメラと
18
歩行者との距離を抽出することができるため、より正確な歩行者の位置情報を取得 できる。しかし、得られる映像が 2 倍になるため、データ容量の肥大化や計算量 の増大など問題点がある。
(文献)依田 育士、坂上 勝彦:ユビ キタスステレオビジョンによる安全・
・ステレオ画像処理を用いた歩行者の動線計測 ( 交通における計測・一般 )(文献)
安心のための実時間実環境ヒューマ
ステレオカメラから得られた画像の処理により歩行者の動線計測の手法と混雑し
ンセンシング、情報処理学会研究報
た場所でおきる人と人の重なりによって発生するオクルージョン(隠蔽)問題に対
告 . CVIM, [ コンピュータビジョンと
処する人間検知の手法を明らかにし、ステレオ画像処理による動線計測システムを
イメージメディア ] 2005(112), 33-38,
構築した。その結果、 混雑の激しい場所においても動線計測の手法を明らかにした。
2005-11-17
・ユビキタスステレオビジョンによる安全・安心のための実時間実環境ヒューマン センシング(文献)
( 文献)大西 正輝、依田 育士:動線の
踏み切りや駅ホーム、広域イベントホールなどのユビキタスステレオビジョンの
軌跡と滞留に着目した動作解析 ( テー
設置事例について列挙した。また、それぞれの例についてのステレオカメラの設置
マ関連セッション 8) 情報処理学会研
形態と歩行者検出の処理方法について調査し、駅のような複雑な場所な空間におけ
究報告 . CVIM, [ コンピュータビジョン
る人検出の技術はあらゆる開けた空間でも使用できる高い汎用性があることを明ら
とイメージメディア ] 2009(29), 293-
かにした。
298, 2009-03-06
・動線の軌跡と滞留に着目した動作解析 ( テーマ関連セッション 8) ステレオビジョンデバイスにより動線を自動的に軌跡と滞留に分類することで、 動作を解析する手法を提案し、実利用の観点から駅や空港における安全管理への応 用の可能性を示唆した。
第 2 章 研究背景
016
2011 年度 早稲田大学 渡辺仁史研究室 卒業論文 監視カメラの死角空間における行動予測システムに関する研究
□レーザースキャナ
(文献)尾住 秀樹、坂本 圭司、佐藤 敏
定点カメラやステレオカメラの場合、駅構内のように天井が低い場所では、直下
彦:駅改札口周辺における旅客流動の
から撮影が出来ないため、人物が重なって映ってしまう。その結果、混雑した状況
特性に関する研究 ( 鉄道駅における歩
でかつ通常の監視カメラの設置場所から人物検出を行うことが難しかった。また、
行・行動 , 建築計画 I)、学術講演梗概
照明条件などの外乱の影響を受けやすいなどの問題点がある。
集 . E-1, 建築計画 I, 各種建物・地域施設 ,
一方で、 レーザースキャナによるセンシング技術は足元付近をから照射するため、
設計方法 , 構法計画 , 人間工学 , 計画基
カメラの映像のように人物の重なりから来る誤検知少なく、正確な位置情報を取得
礎 2010, 777-778, 2010-07-20
できる。また、映像を取得しないために、プライバシーの問題も回避できる。しか し、人々の詳細な様子を捉えることができない欠点もある。 (文献)帷子 京市郎、鈴木 智之、中
・駅改札口周辺における旅客流動の特性に関する研究 ( 鉄道駅における歩行・行動 ,
村 克行、趙 卉菁、柴崎 亮介、仲川 ゆ
建築計画 I)(文献)
り:レーザスキャナを用いた群集の
レーザースキャナにより、駅構内改札付近における滞留と衝突の発生頻度を時間
追跡および流動の可視化 ( テーマ関連
帯別、場所別に調査した。その結果、時間帯では朝ラッシュ時には改札内、改札外
セッション 3)、情報処理学会研究報
両方とも発生頻度が高く、夕方のラッシュ時には改札外での発生頻度が高いことが
告 . CVIM, [ コンピュータビジョンとイ
明らかになった。また、列車到着後、最も近い自動改札機付近では旅客が集中する
メージメディア ] 2007(31), 229-236,
ため、流動変化が起こりやすいことが分かった。
2007-03-19
・レーザーセンサーを利用した駅の旅客流動解析 ( 歩行・群集流動 , 建築計画 I)(文献) 駅コンコース全体にわたり、移動する旅客の密度・速度・移動方向・混雑度合い
(文献)帷子 京市郎、鈴木 智之、中
などを解析し、旅客流動の変化に応じて検出された動線に色づけを行い、群集流動
村 克行、趙 卉菁、柴崎 亮介、仲川 ゆ
の可視化の手法を提案した。
り:レーザスキャナを用いた群集の 追跡および流動の可視化 ( テーマ関連
・レーザスキャナを用いた群集の追跡および流動の可視化 ( テーマ関連セッション
セッション 3)、情報処理学会研究報
3)(文献)
告 . CVIM, [ コンピュータビジョンとイ
レーザースキャナによる人物検出においても、人の重なりからくるオクルージョ
メージメディア ] 2007(31), 229-236,
ン(隠蔽)問題は発生する。オクルージョンによって途切れてしまった人物追跡を
2007-03-19
可能にするためには、 人物の移動方向に着目することが有効であることを明らにし、 群集流動の抽出と可視化の手法を提案した。
第 2 章 研究背景
017
2011 年度 早稲田大学 渡辺仁史研究室 卒業論文 監視カメラの死角空間における行動予測システムに関する研究
2- 3-4 行動予測 (文献)阿久澤 あずみ、田口 東:駅構
本研究に密接に寒けする行動予測に関する既往研修を以下にまとめた。
内における群集歩行シミュレーション モデルの研究、日本オペレーションズ・
・駅構内における群集歩行シミュレーションモデルの研究(文献)
リサーチ学会秋季研究発表会アブスト
歩行者や壁などにプラスやマイナスなどの電荷を与えたポテンシャルモデルと流
ラクト集 2005, 192-193, 2005-09-14
体力学的ポテンシャルモデルにより、歩行者が障害物を回避しながら最短経路で目 的地に到着するマクロ的な動きをする群衆歩行シミュレーションモデルを構築し
(文献)佐藤 和希、高橋 徹、山田 隆志、
た。
寺野 隆雄:エージェント技術に基づく 駅構内の群歩行シミュレーション ( 社
・エージェント技術に基づく駅構内の群歩行シミュレーション ( 社会システムと知
会システムと知能 )、電子情報通信学
能 )(文献)
会技術研究報告 . AI, 人工知能と知識処
緊急時の避難の様子をエージェント・ベース・シミュレーションにより再現し、
理 108(456), 81-86, 2009-02-23
緊急時の避難の問題点は滞留にあることを明らかとして、その対処として誘導が有 効な手段であることを示した。
(文献)大鋳 史男、平澤 佑城、佐藤 智 敬:マルティエージェント・セルオー
・マルティエージェント・セルオートマトン法による駅構内歩行者流動のシミュレー
トマトン法による駅構内歩行者流動の
ション(文献)
シミュレーション、日本オペレーショ
歩行者が自らの視野内に混雑を発見したら、その混雑を回避するという単純なモ
ンズ・リサーチ学会春季研究発表会ア
デルによって実在する駅構内の群集流動を再現した。
ブ ス ト ラ ク ト 集 2008, 72-73, 200803-25
第 2 章 研究背景
018
2011 年度 早稲田大学 渡辺仁史研究室 卒業論文 監視カメラの死角空間における行動予測システムに関する研究
2- 4 研 究 の位置づけ 本研究の位置付けを図 2-4.1 のように示す。
行動予測
避難シミュレーション
本研究
リアルタイム
シミュレーション 行動解析
行動モニタリング 図 2 - 4 .1 本研 究 の 位 置 付 け
第 2 章 研究背景
019
第3章 研究方法 3-1 調査の目的 3-2 調査場所の選定について 3-3 実施調査 3-3-1 調査場所の選定について 3-3-2 想定する監視カメラの撮影範囲 3-4 調査結果 3-4-1 X―Y 座標への変換 3-4-2 座標データの結合 3-4-3 旅客動線の軌跡
2011 年度 早稲田大学 渡辺仁史研究室 卒業論文 監視カメラの死角空間における行動予測システムに関する研究
3- 1 調 査 の目的 本研究は、将来的に監視カメラの映像から駅全体の旅客位置の予測を行うが、今 回はその可能性を検討する。そのため、監視カメラの死角空間における旅客の位置 座標から予測モデルの精度を検証するため、駅構内広域を俯瞰した映像の取得を目 的とした。
第 3 章 研究方法
021
2011 年度 早稲田大学 渡辺仁史研究室 卒業論文 監視カメラの死角空間における行動予測システムに関する研究
3- 2 調査場所の選定について □調査場所の選定 予測モデル検証のためにはコンコース全域俯瞰する映像を取得する必要があっ た。それが可能な調査場所の候補として、たまプラーザ駅、三鷹駅、立川駅、大宮 駅の 4 つが挙がった。 (図 3-2-2.1) (図 3-2-2.2)(図 3-2-2.3)(図 3-2-2.4)
図 3-2-2.1 たまプラーザ駅
図 3-2-2.2 三鷹駅
図 3-2-2.3 立川駅
図 3-2-2.4 大宮駅
それぞれの候補地において以下の項目について調査を行った。 ・旅客流動の分岐が分かりやすい。 ・改札や階段などの乗り越し清算機などの多くの要素を撮影できる。 ・カメラの視界を遮る障害物が少ない。 ・構内全域を俯瞰することができる。 以上の 4 点を満たし、予測モデル検証にもっとも適した調査場所としてたまプラー ザ駅を選定した。
第 3 章 研究方法
022
2011 年度 早稲田大学 渡辺仁史研究室 卒業論文 監視カメラの死角空間における行動予測システムに関する研究
3- 3 実 施調査 3- 3-1 実施調査の概要 調査場所 東京急行電鉄田園都市線 たまプラーザ駅の駅ビル三階通路より。
図 3-2-1.1 たまプラーザ駅
図 3-2-1.2 たまプラーザ駅平面図
調査日時 8 月 13 日 日曜日 13:00 ∼ 15:00 調査方法 HDD カメラ3台を使用してコンコース全体を見渡せる駅ビル 3 階の通路より、 手すりにカメラ固定用クリップ装着し、カメラを設置した。その後、HDD カメラ の時刻を合わせて同時刻より撮影を行った。撮影時のフレームレートは 10 fps に設定した。 必要機材 HDD デジタルビデオカメラ一式 (HANDYCAM HDR-SR8 SONY 製 ) カメラ固定用クリップ
図 3-2-1.3HDD デジタルビデオカメラ
図 3-2-1.4 カメラ固定用クリップ
第 3 章 研究方法
023
2011 年度 早稲田大学 渡辺仁史研究室 卒業論文 監視カメラの死角空間における行動予測システムに関する研究
□ビデオカメラの設置場所 コンコースが広域であることから、1 台のビデオカメラでコンコース全体を捉え ることが不可能であった。そのため、本実施調査においては 3 台のビデオカメラ でコンコース全体を撮影した。撮影場所については駅ビル 3 階より、手すりにカ メラ固定用クリップ装着してビデオカメラを設置した。それぞれの撮影範囲の区分、 カメラの位置については図(3-2-2.4)∼図(3-2-2.9)のように設定した。 UP DOWN
DOWN EV DOWN UP
DOWN
DOWN
DOWN
EV UP
UP
DOWN
UP
カメラ1の撮影範囲
カメラ2の撮影範囲
カメラ3の撮影範囲
図 3-2-2.4 カメラ1の撮影範囲
図 3-2-2.5 カメラ 1 の映像
UP DOWN
DOWN EV DOWN UP
DOWN
DOWN
DOWN
EV UP
UP
DOWN
UP
カメラ1の撮影範囲
カメラ2の撮影範囲
カメラ3の撮影範囲
図 3-2-2.6 カメラ 2 の撮影範囲
図 3-2-2.7 カメラ 2 の映像
UP DOWN
DOWN EV DOWN UP
DOWN
DOWN
DOWN
EV UP
UP
DOWN
UP
カメラ1の撮影範囲
カメラ2の撮影範囲
図 3-2-2.8 カメラ 3 の撮影範囲
カメラ3の撮影範囲
図 3-2-2.9 カメラ 3 の映像
第 3 章 研究方法
024
2011 年度 早稲田大学 渡辺仁史研究室 卒業論文 監視カメラの死角空間における行動予測システムに関する研究
3- 3-2 想定する監視カメラの撮影範囲 本実施調査を行なうにあたり、実際の監視カメラの映像を入手することができな かった。そのため、監視カメラの映像を入手できたと仮定して、駅構内広域を撮影 した映像の内で、実際に監視カメラ撮影しているであろう部分を切り取り、その部 分から構内全体の旅客の位置を予測した。 一般に監視カメラは犯罪抑止や犯罪発生後の証拠の収集を目的として設置されて おり、人の出入りを捉えるために、階段出入り口や改札付近、切符の販売機を撮影 範囲とするように設置されていることが多い。本研究では、図 3-2-3.1 のように撮 影範囲を階段出入り口付近2箇所、改札付近2箇所の計4か所を監視カメラの撮影 範囲と想定した。
撮影範囲
カメラ1
カメラ2
カメラ3
図 3-2-3.1 想定する監視カメラの撮影範囲
第 3 章 研究方法
025
2011 年度 早稲田大学 渡辺仁史研究室 卒業論文 監視カメラの死角空間における行動予測システムに関する研究
3- 4 調査結果 3- 4-1X―Y 座標への変換 本研究では撮影した映像における旅客の頭部の位置から、実空間における XY 座 標を算出するために、アフィン変換を行った。変換を行なうにあたって、実施調査 の段階で基準点を設け、その基準点の座標をもとに映像のひずみを算出し、実空間 における X-Y 座標へと変換した。以下 ( 図 3 - 3 - 1 . 1 ) にそのフローを示す。
第 3 章 研究方法
026
2011 年度 早稲田大学 渡辺仁史研究室 卒業論文 監視カメラの死角空間における行動予測システムに関する研究
アフィン変換の基準点 UP
基準点 ( 人 )
DOWN
DOWN EV
12,300mm DOWN
4,800mm
UP
身長 1,700mm
12,600mm
9,600mm
10,800mm
9,300mm
DOWN
DOWN
DOWN
EV UP
UP
DOWN
UP
身長 1,700m m の成人男性4人を図のように配置し、彼らの頭部をアフィン変換 のための基準点とした。
旅客位置の抽出
画像における X-Y 座標 flame
1 1 1 1 2 2 2 3 3 4 4
pixel.X
1 2 3 4 5 6 7 8 9 10 11
pixcel.Y
2 3 4 5 6 7 8 9 10 11 12
映像における旅客の頭部の位置座標をエクセルデータシートに書き出す。
アフィン変換
実空間における X-Y 座標 flame
UP DOWN
DOWN EV
12,300mm
EV UP
UP
X
12,600mm
DOWN
DOWN
4,800mm
UP
DOWN
DOWN
UP
DOWN
9,600mm
Y
10,800mm
9,300mm
1 1 1 1 2 2 2 3 3 4 4
real.X
1 2 3 4 5 6 7 8 9 10 11
real.Y
2 3 4 5 6 7 8 9 10 11 12
映像に中の旅客の位置座標をアフィン変換により、実空間における X-Y 座標 に変換する。
図 3 - 3 - 1 . 1 X―Y 座標への変換
第 3 章 研究方法
027
2011 年度 早稲田大学 渡辺仁史研究室 卒業論文 監視カメラの死角空間における行動予測システムに関する研究
3- 4-2 座標データの結合 駅構内全体を1台だけのカメラの撮影範囲では捉えきることはできなかった。そ のため、予測結果の精度を検証するためには、駅構内全体を捉えるカメラ3台のビ デオカメラよる撮影が必要であったため、3 台のビデオカメラから得られた旅客の 位置座標をアフィン変換後に同一平面にて結合した。結合するために図 3-4-2.1 の ようなフローに従い基準点を取った。
座標結合の基準点 基準点 ( 人 ) 身長 1,700mm
図のようにビデオカメラの映像の重なりが発生する場所に、身長 1,700m m の成人男性 を図のように配置し、彼らの頭部を基準点とした。
アフィン変換 基準点 ( 人 ) 身長 1,700mm
基準点 ( 人 )
UP
UP
DOWN
DOWN
DOWN
EV
EV
1
m
12,300mm
DOWN UP
10,800mm
10,800mm
DOWN
DOWN
DOWN
DOWN
EV
EV
UP
UP
DOWN
UP
カメラ1の撮影範囲
カメ
カメラ2の撮影範囲
影範囲
カメラ3の撮影範囲
カメラ1∼3より得られた基準点の座標にアフィン変換を行い、実空間における X-Y 座標へ と変換した。
第 3 章 研究方法
028
2011 年度 早稲田大学 渡辺仁史研究室 卒業論文 監視カメラの死角空間における行動予測システムに関する研究
結合 基準点 ( 人 )
重なり合うビデオカメラの撮影範囲における共通の基準点の座標をもとに、ビデオ1∼3より 得られた座標平面を結合する。
同一平面 UP
基準点 ( 人 )
DOWN
DOWN EV
12,300mm DOWN UP
10,800mm
DOWN
DOWN
DOWN
EV UP
UP
DOWN
UP
カメラ1の撮影範囲
カメラ2の撮影範囲
カメラ3の撮影範囲
3 台のカメラの座標平面を結合したことにより、予測モデルの精度検証をより広い範囲 で行なえるようになった。
図 3 - 4 - 2.1 座標データの結合のフロー
第 3 章 研究方法
029
2011 年度 早稲田大学 渡辺仁史研究室 卒業論文 監視カメラの死角空間における行動予測システムに関する研究
3- 4-3 旅客動線の軌跡 本実施調査の映像から得られた旅客動線の軌跡は図 3-4.2 の緑で示された部分に なった。
図 3-4.1 旅客動線の軌跡
第 3 章 研究方法
030
2011 年度 早稲田大学 渡辺仁史研究室 卒業論文 監視カメラの死角空間における行動予測システムに関する研究
図 3-4.1 旅客動線の軌跡
実施調査から得られた旅客動線の軌跡には、5 か所ほど旅客を検出できない空白部 分があった。青色で囲った部分は座標結合において発生した隙間である。赤色で囲っ た部分についてはビデオカメラの撮影範囲に障害物があったため、旅客を検出できな かった。 (図 3-4.3) (図 3-4.4)
図 3-4.3 カメラ2に映った障害物
図 3-4.4 カメラ3に映った障害物
第 3 章 研究方法
031
第4章 予測モデル 4-1 用語の定義 4-2 予測モデルのフロー 4-3 予測モデルのアルゴリズム 4-3-1 同一人物の識別 4-3-2 判定領域からの脱出判定 4-3-3 Line の作成 4-3-4 旅客位置の予測 4-4 プログラムの完成
2011 年度 早稲田大学 渡辺仁史研究室 卒業論文 監視カメラの死角空間における行動予測システムに関する研究
4- 1 用語の定義 予測モデルの説明を行なうにあたって、改めて用語の定義を行なう。 検出範囲 : 実際の監視カメラが捉えているいるであろう範囲 Line:検出範囲外に移動した群集が流動していくであろう検出領域間を結ぶ経路。 方向ベクトル:検出範囲外へ移動した人物の移動方向と速さ。 集合方向ベクトル:検出範囲外へ移動した群集の持つ、移動方向と速さの平均。
第 4 章 実地調査の結果と分析
033
2011 年度 早稲田大学 渡辺仁史研究室 卒業論文 監視カメラの死角空間における行動予測システムに関する研究
4- 2 予測モデルのフロー 本研究で作成した予測モデルはシミュレーションソフト artisoc にて作成した。プ ログラムの大まかな流れは、 「蓄積されたデータから動線を予測する Line 作成」と「Line と旅客の状況をもとに死角部分の予測」の二つに分けられる。以下に予測モデルのフ ローを示す。
UP DOWN
DOWN EV DOWN UP
DOWN
D DOWN
DOWN
EV UP
D DOWN
UP
UP
DOW DOWN OWN
UP
U UP
UP
DOWN
DOWN EV DOWN UP
DOWN WN DOWN
EV UP
図 4-2.1 予測モデルのフロー
第 4 章 実地調査の結果と分析
034
2011 年度 早稲田大学 渡辺仁史研究室 卒業論文 監視カメラの死角空間における行動予測システムに関する研究
4- 3 予測モデルのアルゴリズム 4- 3-1 同一人物の識別 本予測モデルでは、旅客の移動方向より検出範囲外へ移動した旅客の Line を予測 する。検出範囲内の旅客が検出範囲外に移動した後の行動の予測を行うために、同一 人物の識別によって旅客が検出範囲外へ移動した判定と、その後の経路を予測するた めにの旅客の移動方向を算出する。 □同一人物の識別 検出にあたっては、下記の手順に従って、ビデオカメラのフレームごとに得られた 旅客の位置座標から同一人物の識別(図 4-3-1-1.1)を行なった。
同一人物の識別 1フレーム後
C(c ,c)
1 フレーム後の座標と比較
B(b ,b ) 同一人物の識別のため、1フレーム後の旅客の座標 との位置を比較する。
A(a ,a)
O(o ,o 現在のフレーム
距離の比較 現在のフレームの人物 O と1フレーム後の人物 B(b ,b )
A(a ,a)
C(c ,c)
O(o ,o
{
A、人 物 B、人物 C との距離を算出。 OA OB OC
同一人物の判定 B(b ,b )
A(a ,a)
C(c ,c)
フレームレートが1秒間に10フレームと十分に 高いため、1フレーム後の旅客に位置座標と照らし 合わせて最短距離にあるものを同一人物とした。
O(o ,o
人物 O=人 物 A
図 4-3-1-1.1 同一人物識別のフロー
第 4 章 実地調査の結果と分析
035
2011 年度 早稲田大学 渡辺仁史研究室 卒業論文 監視カメラの死角空間における行動予測システムに関する研究
□エラー処理 カメラの映像から旅客の位置座標が寸分の狂いもなく得る事が可能であり、なおか つ、フレームレートの値が十分に高ければ、1フレームの間に旅客の進む距離は微小 である。そのため、同一人物の座標を識別するには 1 フレーム後に最も近い距離に ある座標を選出すればよい。 しかし、将来的には監視カメラの映像から自動的に検出された旅客座標のデータを 想定するため、実際には人物の重なりや、照度の変化、振動などからノイズ発生する。 また映像や画像はデータサイズが大きいため、フレームレートや画質を下げての検出 など、検出精度を下げる要因はいくらでもある。 今回は映像内に映る旅客を手動で捉え、実空間での旅客位置を算出した。作業は手 動なため、得られた座標の誤差を考慮して同一人物の識別を行った。その際に用いた エラー処理について述べる。
第 4 章 実地調査の結果と分析
036
2011 年度 早稲田大学 渡辺仁史研究室 卒業論文 監視カメラの死角空間における行動予測システムに関する研究
◇バッティング処理 同一人物の識別の結果、複数の旅客が次のフレームにおける1つの座標を同一人物 として選出するバッティングが発生することがある。そのため、以下にバッティング によるエラーに対処するための処理を示す。
バッティング処理 勝ち抜き D(d ,d )
複数の点が同一点を選んだ場合、距離 が近い方の点の座標を同一点とする。
C(c ,c)
{
A(a ,a) B(b ,b )
OB AB
O(o ,o 1 フレーム後の旅客の座標
人物 O=人 物 B
旅客の座標
残りで比較 D(d ,d )
残りの座標との距離を比較して、最も 距離が近いものを同一人物の座標と判
C(c ,c)
{
A(a ,a) B(b ,b )
定する。 AC AD
O(o ,o 1 フレーム後の旅客の座標 旅客の座標
人物 A=人 物 C
図 4-3-1-1.2 バッティング処理
第 4 章 実地調査の結果と分析
037
2011 年度 早稲田大学 渡辺仁史研究室 卒業論文 監視カメラの死角空間における行動予測システムに関する研究
◇閾値による処理 バッティング処理を繰り返した結果、次のフレームにおける同一人物の候補として 選出された座標が、実際には同一人物の座標ではない遠く離れた座標が選ばれるこ とがある。そこで、現在の座標と1フレーム後の座標との距離を算出し、その値が 2000 mm以上であった場合は別の人物として扱った。
図 4-3-1-1.3 閾値による処理
第 4 章 実地調査の結果と分析
038
2011 年度 早稲田大学 渡辺仁史研究室 卒業論文 監視カメラの死角空間における行動予測システムに関する研究
4-3- 2 判定領域 実際の監視カメラが捉えているであろう範囲にいる旅客の位置座標を検出して、 予測を行う。そのために、検出範囲内から検出範囲外に移動した旅客と検出範囲外か ら検出範囲内に進入する旅客の判定を行なう。図 4-3-1-2.1 のように検出範囲の縁に 判定領域を設定することで、検出範囲から、検出範囲外へ移動する旅客を明らかにす る。判定領域の幅は人の一歩を確実に捕らえるために 500 mmとした。
図 4-3-1-2.1 検出範囲と判定領域
監視カメラの撮影範囲
図 4-3-1-2.2 監視カメラの撮影範囲の配置
第 4 章 実地調査の結果と分析
039
2011 年度 早稲田大学 渡辺仁史研究室 卒業論文 監視カメラの死角空間における行動予測システムに関する研究
4-3- 3 Line の作成 本予測モデルでは、監視カメラの検出範囲の位置関係と監視カメラの検出範囲内に 発生した旅客の動線の方向から、死角部分における動線のつながり方を図 4-3-1-3.1 のように予測する。
第 4 章 実地調査の結果と分析
040
2011 年度 早稲田大学 渡辺仁史研究室 卒業論文 監視カメラの死角空間における行動予測システムに関する研究
図 4-3-1-3.1Line 作成のフロー
第 4 章 実地調査の結果と分析
041
2011 年度 早稲田大学 渡辺仁史研究室 卒業論文 監視カメラの死角空間における行動予測システムに関する研究
4-3-4 旅客位置の予測 本予測モデルでは旅客は検出範囲を出た後、4-3-3 で作成された Line を進むことで 旅客位置を予測する。旅客がどの Line に沿って歩行するかを旅客の持つ方向ベクト ルと、旅客のいる判定領域から判定する。以下に方向ベクトル算出とどの Line 沿っ て進行するかの判定について述べる。 □移動方向の算出 旅客の座標データの入力に関しては、Line 作成で行なった処理と同じ処理を行な うため、4-3-1 同一人物の識別を参照。 Line 作成は蓄積されたデータをもとに死角空間における群集流動を予測した。一 方では、本項の旅客位置の予測では、死角部分における旅客位置を予測するため、検 出範囲を出る直前の旅客の方向ベクトルの算出を行なった。算出には、(図 4-3-21.1)のように判定領域内に入った旅客の 10 フレーム前の位置座標を利用した。
方向ベクトルの算出 判定を受けた旅客位置 過去の旅客の位置 方向ベクトル 同一人物識別によって明らかになった、数 フレーム前の旅客位置から大まかの移動方 向(方向ベクトル)を算出する。
図 4-3-2-1.1 方向ベクトルの算出
第 4 章 実地調査の結果と分析
042
2011 年度 早稲田大学 渡辺仁史研究室 卒業論文 監視カメラの死角空間における行動予測システムに関する研究
□ Line の判定 検出範囲を出て行く旅客の歩行ベクトルより、旅客がどの Line 上を移動して行く のかを判定を行う。判定には閾値αを用いて、方向ベクトルと Line の成す角度が閾 値 30 度以内であれば、旅客はその Line に乗って移動すると判定した。 また検出範囲外へ移動した後の旅客の移動速度は人の平均的な移動速度を考慮して 1500mm/s とした。以下にフそのローを示す。
図 4-3-2-1.1 旅客位置予測もフロー
第 4 章 実地調査の結果と分析
043
2011 年度 早稲田大学 渡辺仁史研究室 卒業論文 監視カメラの死角空間における行動予測システムに関する研究
4-3-4 プログラム artisoc によって作成した本研究のシミュレータの出力画面(図 4-3-4.1)検出範 囲を結ぶ Line が黒の矢印で表されている。また、検出範囲内における実際の旅客 は黒丸、予測した旅客はピンクで示した。
図 4-3-4.1 シミュレータの出力画面
第 4 章 実地調査の結果と分析
044
第5章 予測モデルの検証 5-1 断面交通量算出 5-1-1 検出箇所 5-1-2 算出手順 5-2 断面交通量の比較 5-3 検証 5-4 考察
2011 年度 早稲田大学 渡辺仁史研究室 卒業論文 監視カメラの死角空間における行動予測システムに関する研究
5- 1 断 面 交通量算出 5- 1-1 検 出箇所 旅客位置の予測精度を検証するために、ビデオカメラから得られた実際の旅客の断 面交通量と予測モデルの断面交通量について検証を行った。断面交通量検出の箇所を 決定するにあたって実際の旅客座標を可視化することで、群集流動が発生している場 所を調べた。その結果、図 5-1-1.1 のように群集流動が発生していることが分かった。 可視化されたされた流動をもとに改札内コンコースにあるすべての群集流動の断面交 通量をはかるため、検出箇所は図 5-1-1.2 のようにおいた。
旅客の足跡 実際の旅客位置
図 5-1-1.1 旅客動線
断面交通量検出箇所 旅客の足跡 実際の旅客位置
図 5-1-1.1 旅客動線と断面交通量検出範囲の位置関係
第 5 章 実地調査の結果と分析
046
2011 年度 早稲田大学 渡辺仁史研究室 卒業論文 監視カメラの死角空間における行動予測システムに関する研究
5- 1-2 算 出の手順 断面交通量の算出手順について述べる。実際の旅客の断面交通量(実測値)につい ては、ビデオカメラの映像から得られた旅客の位置情報を時系列順に読み込むことに よって、断面交通量を算出した。予測モデルにおける断面交通量(予測値)の取得に ついても、断面交通量の検出箇所から取得した。
断面交通量算出 通過
カウント
滞留
断面交通量の検 出範囲を通過し た人数のみをカ ウントし、その 場に滞留してい たものはカウン トしない。
図 5-1-2.1 断面交通量算出
第 5 章 実地調査の結果と分析
047
2011 年度 早稲田大学 渡辺仁史研究室 卒業論文 監視カメラの死角空間における行動予測システムに関する研究
5-2 断面交通量の比較 artisoc を用いて映像 5 分間分の断面交通量の実測値と予測値を算出した結果を図 5-2.1 にまとめる。また予測モデルによって作成された Line と断面交通量の検出箇所 の位置関係は図 5-2.2 のようになった。
図 5-2.1 断面交通量の比較
図 5-2.2Line と断面交通量検出箇所の位置関係
第 5 章 実地調査の結果と分析
048
2011 年度 早稲田大学 渡辺仁史研究室 卒業論文 監視カメラの死角空間における行動予測システムに関する研究
5-3 考察 各検出箇所間の実測値と予測値の相関 R=0.209970 と極めて低い値となった。そ の原因として断面交通量検出の箇所 C、E の実測値と予測値が大きく異なったことが 挙げられる。以下、断面交通量検出の箇所 C、E の実測値と予測値が乖離してしまっ た原因について考察する。 □断面交通量検出箇所 C 断面交通量箇所 C の実測値と予測値に大きな差が発生してしまった原因として、 ○原因 1. 検出範囲に旅客動線の分岐が収まっていなかった。 ○原因 2. 検出箇所の位置が実地調査で取得した映像では、旅客位置が把握できな い空白部分であったため、実測値の算出が誤っていた。 以上の 2 点が考えられる。 ◇原因1について 検出範囲に確実に分岐を捉えるために検出領域を図 5-3.1 のように 1500mm 縦 に引き伸ばし改めて予測値を算出した。その結果、断面交通量検出箇所 C におけ る実測値と予測値は図 5-3.2 のようになった。
断面交通量検出箇所 旅客の足跡 実際の旅客位置 新たに設定した検出範囲
図 5-3.1 設定し直した検出範囲
第 5 章 実地調査の結果と分析
049
2011 年度 早稲田大学 渡辺仁史研究室 卒業論文 監視カメラの死角空間における行動予測システムに関する研究
図 5-3.2 断面交通量検出箇所 C における実測値と予測値再算出1 以上のように、実測値と予測値に更なる乖離が発生してしまったため、「1. 検出範 囲に旅客動線の分岐が収まっていなかった。」は断面交通量の検出箇所 C において実 測値と予測値の乖離の原因ではなかったと考えられる。
◇原因 2 について 5か所の断面交通量を検出した箇所の中で C は、実測値が著しく低かった。そ のため、実測値そのものに誤りがあったと考えられる。その原因として図 5-3.3 の 赤枠で囲まれたオブジェのため、ビデオカメラ上に死角が発生し、実測値の断面交 通量が正確に検出ができなかったと考えられる。断面交通量の検出箇所 C と旅客 の足跡の位置関係を比較すると、図 5-3.4 のようになった。
図 5-3.3 オブジェクトによる死角部分
第 5 章 実地調査の結果と分析
050
2011 年度 早稲田大学 渡辺仁史研究室 卒業論文 監視カメラの死角空間における行動予測システムに関する研究
断面交通量検出箇所 旅客の足跡 実際の旅客位置 旅客の足跡の切れ目
図 5-3.4 旅客の足跡の切れ目と断面交通量検出箇所 C の位置関係
以上を踏まえ断面交通量の検出箇所 C の位置を図 5-3.5 のように移動し、再度、断 面交通量の算出を行った結果、実測値 80、予測値 81 という結果を得た。しかし、 予測値については断面交通量検出箇所 C が、図 5-3-.7 のように赤色で示した Line に かかってしまい、検出範囲 2 と検出範囲 3 との間における断面交通量だけでなく、 検出範囲 3 と検出範囲 4 との間おける断面交通量も一部加算されてしまった。検証 を正確にするために、図 5-3.6 における予測値のは図 5-2.1 における予測値の検出箇 所 B の 57 の値を用いた。
断面交通量検出箇所 旅客の足跡 実際の旅客位置 旅客の足跡の切れ目
図 5-3.5 旅客の足跡の切れ目と断面交通量検出箇所 C の位置関係2
第 5 章 実地調査の結果と分析
051
2011 年度 早稲田大学 渡辺仁史研究室 卒業論文 監視カメラの死角空間における行動予測システムに関する研究
図 5-3.6 断面交通量の検出箇所 C における実測値と予測値再算出2
図 5-3.7 断面交通量検出箇所 C と Line の位置関係
以上の通り、実測値と予測値の乖離が小さくなったため、実測値の値に誤りがあっ たことが分かった。
□断面交通量検出箇所 E 断面交通量検出箇所 E における実測値と予測値に大きな乖離が発生した原因とし て、以下の原因が考えられる。 ○原因1検出範囲に旅客動線の分岐が収まっていなかった。 ○原因2座標結合とアフィン変換による旅客位置の誤差。 以上の二点が考えられる。
第 5 章 実地調査の結果と分析
052
2011 年度 早稲田大学 渡辺仁史研究室 卒業論文 監視カメラの死角空間における行動予測システムに関する研究
◇原因1について 原因1を検証するために、図 5-3.8 のように検出範囲を再設定し、改めて断面交通 量を算出した。また、この検出範囲の再設定により、断面交通量の検出箇所 A も影 響を受けるため、再度、断面交通量を算出した。その結果、図 5-3.9 のような結果を 得た。
断面交通量検出箇所 旅客の足跡 実際の旅客位置 新たに設定した検出範囲
図 5-3.8 設定し直した検出範囲
図 5-3.9 断面交通量検出箇所 B における実測値と予測値再算出
以上のように断面交通量の検出箇所 A、E の予測値は 37 → 48 になり、実測値に 近づいた。しかし、断面交通量の検出箇所 E については変化が見られなかった。 ◇原因2について 図 5-3.10 で示されているように断面交通量検出箇所 E を通過する動線上に座標の 結合部分があり、検出範囲 1 と検出範囲4の間における旅客の移動の相関性が薄れ てしまった。また、図 5-3.11 で示されたように断面交通量検出箇所 E 付近は映像の 最奥に位置する部分であり、アフィン変換によって旅客位置の誤差が最も増幅しやす い部分であった。よって断面交通量の検出箇所 E における実測値と予測値の乖離の 原因は旅客位置の誤差と考えられる。
第 5 章 実地調査の結果と分析
053
2011 年度 早稲田大学 渡辺仁史研究室 卒業論文 監視カメラの死角空間における行動予測システムに関する研究
断面交通量検出箇所 旅客の足跡 実際の旅客位置 座標結合のつなぎ目
図 5-3.10 座標データの結合の切れ目
断面交通量検出箇所
図 5-3.11 実映像中の断面交通量検出範囲 E の位置 本研究において、これらの要素について検証することはできなかった。そのため、 断面交通量検出箇所 E を除き、改めて相関を求めた。その結果、図 5-3.12 のように 相関 R = 0.916887、R 2= 0.840682 と高い数値を示した。
第 5 章 実地調査の結果と分析
054
2011 年度 早稲田大学 渡辺仁史研究室 卒業論文 監視カメラの死角空間における行動予測システムに関する研究
図 5-3.12 断面交通量の再算出
第 5 章 実地調査の結果と分析
055
第6章 まとめ 6 -1 研究のまとめ 6 -2 課題と展望
2011 年度 早稲田大学 渡辺仁史研究室 卒業論文 監視カメラの死角空間における行動予測システムに関する研究
6- 1 研 究 のまとめ 本研究により、以下のことが明らかとなった。 ・実地調査 映像から旅客座標を抽出し、その歩行軌跡を明らかにしたことによって、改札前 や階段出入口付近などの群集流動の分岐が起きやすい場所が明らかとなった。
・検証 駅構内の監視カメラが捉えている範囲、もしくはその付近では群衆流動の変化が 発生しやすい。そのため、監視カメラの位置とそれに映る旅客動線の関係から、監 視カメラの死角における旅客の行動を明らかにし、駅構内全体の状態を把握するこ とが十分可能であることが分かった。
第 6 章 まとめ
057
2011 年度 早稲田大学 渡辺仁史研究室 卒業論文 監視カメラの死角空間における行動予測システムに関する研究
6- 2 課題と展望 6-1 で示した通り、本研究では監視カメラによる一部分の映像から構内全体の旅客 の状態を予測することが十分可能であることを示した。これについての課題と展望 を述べる。 □課題 ・Line 本予測モデルでは検出範囲間を直線的な Line によって結ぶことによって、死角 部分における群集流動を予測した。さらに複雑な駅空間に対しても対応していくに は、障害物回避モデルなどの組み込みやオートマトンモデルなども取り入れていく 必要がある。 ・閉空間 本予測モデルでは、改札内コンコースに出入りする旅客をもれなく捉えることの できる位置に検出範囲設定し、改札内コンコースを検出範囲で閉空間した。そのた め、検出範囲間の旅客行動の予測をすれば、改札内コンコース全域の旅客の行動予 測をすることができた。しかし、改札外コンコースにおいては必ずしも全ての出入 口付近を監視カメラ捉えているわけではなく、出入口と検出範囲との間に予測でき ない空白部分が生じていしまう。今後、さらに予測できる範囲を増やすには、これ に対する対策が求められる。 ・旅客の移動速度 本予測モデルでは歩行者の平均的な歩行速度から、検出範囲から出た旅客の行動 を予測した。しかし、検出範囲における映像から旅客の移動速度を抽出し、予測に 用いることができれば、さらに予測モデルの予測精度を上げることができる。
第 6 章 まとめ
058
2011 年度 早稲田大学 渡辺仁史研究室 卒業論文 監視カメラの死角空間における行動予測システムに関する研究
□展望 ・災害時の避難誘導計画 通常時の旅客行動が明らかになれば、災害発生時の避難誘導の計画作成に役立て ることができる。本研究が少しでも多くの方の役に立てることを願う。 ・どこでも使える予測モデル 駅空間のように改札や階段、ホーム、店舗などの様々な要素が絡んだ複雑な空間 で有効な予測モデルが実現すれば、駅構内だけでなく、様々な空間に対応できる予 測モデルの実現が可能であると考える。本研究がその実現の第一歩となることを願 う。
第 6 章 まとめ
059
2011 年度 早稲田大学 渡辺仁史研究室 卒業論文 監視カメラの死角空間における行動予測システムに関する研究
参考 文献 文献1)長澤夏子、渡辺仁史:駅構内通路歩行時のストレスマネジメントに関する研究 ( 生理心理 , 建築計画 I)、 学術講演梗概集、E-1, 建築計画 I, 各種建物・地域施設 , 設計方法 , 構法計画 , 人間工学 , 計画基礎 2010, 981982, 2010-07-20 (文献 2)富田正裕 , 藤井祐輔 , 山本昌和 , 石突光隆 , 林田和人 , 渡辺仁史『群集映像の画像処理による行動解析』, 日本建築学会第 33 回情報・システム・利用・技術シンポジウム論文 (文献 3)野田直利:車両の混雑情報提供による利用者の乗車車両選択モデルに関する研究、早稲田大学創造 理工学部建築学科渡辺研究室 2010 年度卒業論文 (文献 4)豊嶋 伊知郎、服部 可奈子、吉田 琢史、板倉 豊和、小磯 貴史:多段階のパターン認識を用いた歩行 軌跡データからの顧客行動判別、情報処理学会研究報告 . CVIM, [ コンピュータビジョンとイメージメディア ] 2006(25), 173-178, 2006-03-16 (文献 5)豊嶋 伊知郎、服部 可奈子、吉田 琢史、板倉 豊和、小磯 貴史:多段階のパターン認識を用いた歩行 軌跡データからの顧客行動判別、情報処理学会研究報告 . CVIM, [ コンピュータビジョンとイメージメディア ] 2006(25), 173-178, 2006-03-16 (文献 6) 鈴木 直彦 平澤 宏祐 田中 健一 , 佐藤 洋一 , 野 陽三 : 人物動線データ分析による逸脱行動人物の検出、 報処理学会研究報告 . CVIM, [ コンピュータビジョンとイメージメディア ] 2007(31), 109-115, 2007-03-19 (文献 7)榎原 孝明 馬場健二 木村明弘:ステレオ画像処理を用いた歩行者の動線計測 ( 交通における計測・ 一般 ) 情報処理学会研究報告 . ITS, [ 高度交通システム ] 2007(90), 83-86, 2007-09-18 (文献 8)依田 育士、坂上 勝彦:ユビキタスステレオビジョンによる安全・安心のための実時間実環境ヒュー マンセンシング、情報処理学会研究報告 . CVIM, [ コンピュータビジョンとイメージメディア ] 2005(112), 33-38, 2005-11-17 ( 文献 9)大西 正輝、依田 育士:動線の軌跡と滞留に着目した動作解析 ( テーマ関連セッション 8) 情報処理 学会研究報告 . CVIM, [ コンピュータビジョンとイメージメディア ] 2009(29), 293-298, 2009-03-06 (文献 10)尾住 秀樹、坂本 圭司、佐藤 敏彦:駅改札口周辺における旅客流動の特性に関する研究 ( 鉄道駅に おける歩行・行動 , 建築計画 I)、学術講演梗概集 . E-1, 建築計画 I, 各種建物・地域施設 , 設計方法 , 構法計画 , 人間工学 , 計画基礎 2010, 777-778, 2010-07-20
084
2011 年度 早稲田大学 渡辺仁史研究室 卒業論文 監視カメラの死角空間における行動予測システムに関する研究
(文献 11)帷子 京市郎、鈴木 智之、中村 克行、趙 卉菁、柴崎 亮介、仲川 ゆり:レーザスキャナを用いた群 集の追跡および流動の可視化 ( テーマ関連セッション 3)、情報処理学会研究報告 . CVIM, [ コンピュータビジョ ンとイメージメディア ] 2007(31), 229-236, 2007-03-19 (文献 12)帷子 京市郎、鈴木 智之、中村 克行、趙 卉菁、柴崎 亮介、仲川 ゆり:レーザスキャナを用いた群 集の追跡および流動の可視化 ( テーマ関連セッション 3)、情報処理学会研究報告 . CVIM, [ コンピュータビジョ ンとイメージメディア ] 2007(31), 229-236, 2007-03-19 (文献 13)阿久澤 あずみ、 田口 東:駅構内における群集歩行シミュレーションモデルの研究、日本オペレーショ ンズ・リサーチ学会秋季研究発表会アブストラクト集 2005, 192-193, 2005-09-14 (文献 14)佐藤 和希、 高橋 徹、 山田 隆志、寺野 隆雄:エージェント技術に基づく駅構内の群歩行シミュレーショ ン ( 社会システムと知能 )、電子情報通信学会技術研究報告 . AI, 人工知能と知識処理 108(456), 81-86, 200902-23 (文献 15)大鋳 史男、平澤 佑城、佐藤 智敬:マルティエージェント・セルオートマトン法による駅構内歩行 者流動のシミュレーション、日本オペレーションズ・リサーチ学会春季研究発表会アブストラクト集 2008, 72-73, 2008-03-25
085
2011 年度 早稲田大学 渡辺仁史研究室 卒業論文 監視カメラの死角空間における行動予測システムに関する研究
おわ りに この論文を執筆にあたって、多くの方にお世話になりました。この場を借りて皆 様に感謝したいです。ありがとうございました。 まず、研究室に迎えてくださった渡辺仁史先生。八王子合宿では的確なアドバイ スと論文のタイトルをくださりありがとうございました。 プロジェクトに誘ってくださった林田先生。林田先生のからのお誘いがなければ、 いまだに研究テーマも決まらずに、あともう一年くらい学生をやっていたかもしれ ません。ありがとうございました。お中元に厚手のヒートテックを送ります。 長澤先生。建築と情報と建築計画 C の授業(めっちゃ面白かった!)がきっか けで渡辺仁史研究室に入りたいと思うようになりました。こうして研究室で素晴ら しい先輩方と過ごせたは、長澤先生のおかげです。ありがとうございました。 就職がなかなか決まらず、 卒論もプロジェクトも中途半端でいっぱいいっぱいで、 中間発表もボロクソでした。しかも、8月になって、急に研究内容を変えたにも関 わらず、怒らずに暖かく見守って下さった先輩方。河田さん、純平さん、おっちー さん、余語さん、P さん、タスけさん、木戸さん、井上さん、ししょーさん、がっ きーさん、もこさん、ありがとうございました! 藤井さん。いつもパワポやレジュメが発表の直前まで仕上がらなくて、深夜遅く に添削のお願いしてばかりでごめんなさい!そして、ありがとうございました! (@w@) 富田さん。artisoc や VBA 全くの初心者の自分に手取り足取りで教えてください ました。旅客の位置座標のデータ処理や、予測モデルのプログラミング。富田さん がいなければ、何一つできなかったと思います。本当に、本当にありがとうござい ました。研究室の伝統に則って、お礼は糖分で!! M0 のあやか、もえ、もにわ、せいじくん。一緒に卒論に取り組めて本当にいい 思い出ができた。ありがとう!!
086
資料編
資料 # 1 予測モデルのコード 資料 # 2 マクロ
2011 年度 早稲田大学 渡辺仁史研究室 卒業論文 監視カメラの死角空間における行動予測システムに関する研究
資料 # 1 予測モデルのコード Line モデル プログラムソース
□ Universe 用
Univ_Init{
dim i as integer dim k as integer dim j as integer dim m_data as string dim rangeAgt as agt
ClearConsoleScreen() OpenFile("input/map_OnTerritory.csv",00,1) for i = 0 to GetHeightSpace(universe.eki)-1 m_data = ReadFile(00) for k = 0 to GetWidthSpace(universe.eki)-1 universe.eki.map(k,(GetHeightSpace(universe.eki)-1)-i,0) = Cint(GetToken(m_data,k)) if universe.eki.map(k,(GetHeightSpace(universe.eki)-1)-i,0) == 0 then rangeAgt = CreateAgt(universe.eki.range) rangeAgt.X = k rangeAgt.Y = (GetHeightSpace(universe.eki)-1) -i rangeAgt.color = RGB(0,0,0) rangeAgt.hole = 90 AddAgt(universe.areaSet,rangeAgt) elseif universe.eki.map(k,(GetHeightSpace(universe.eki)-1)-i,0) == 1 then rangeAgt = CreateAgt(universe.eki.range) rangeAgt.X = k rangeAgt.Y = (GetHeightSpace(universe.eki)-1) -i rangeAgt.color = RGB(0,0,0) rangeAgt.hole = 90 AddAgt(universe.areaSet,rangeAgt) elseif universe.eki.map(k,(GetHeightSpace(universe.eki)-1)-i,0) > 2 then rangeAgt = CreateAgt(universe.eki.range) rangeAgt.X = k
R002
2011 年度 早稲田大学 渡辺仁史研究室 卒業論文 監視カメラの死角空間における行動予測システムに関する研究
rangeAgt.Y = (GetHeightSpace(universe.eki)-1) -i rangeAgt.color = RGB(0,0,255) rangeAgt.hole = 70 AddAgt(universe.areaSet,rangeAgt) end if next k next i CloseFile(00) // 縁取り作成 if universe.manual <> 1 then j = universe.scale for i = 0 to GetHeightSpace(universe.eki)-1 for k = 0 to GetWidthSpace(universe.eki)-1 if universe.eki.map(k,i,0) == 1 then if i == 0 then for j = 0 to universe.scale if universe.eki.map(k,i+j,0) == 1 then universe.eki.map(k,i+j,0) = 3 rangeAgt = CreateAgt(universe.eki.range) rangeAgt.X = k rangeAgt.Y = i+j rangeAgt.hole = 60 AddAgt(universe.areaSet,rangeAgt) end if next j elseif k == 0 then for j = 0 to universe.scale if universe.eki.map(k+j,i,0) == 1 then universe.eki.map(k+j,i,0) = 3 rangeAgt = CreateAgt(universe.eki.range) rangeAgt.X = k+j rangeAgt.Y = i rangeAgt.hole = 60 AddAgt(universe.areaSet,rangeAgt) end if
R003
2011 年度 早稲田大学 渡辺仁史研究室 卒業論文 監視カメラの死角空間における行動予測システムに関する研究
rangeAgt.hole = 60 AddAgt(universe.areaSet,rangeAgt) end if next j elseif k == GetWidthSpace(universe.eki)-1 then for j = 0 to universe.scale if universe.eki.map(k-j,i,0) == 1 then universe.eki.map(k-j,i,0) = 3 rangeAgt = CreateAgt(universe.eki.range) rangeAgt.X = k-j rangeAgt.Y = i rangeAgt.hole = 60 AddAgt(universe.areaSet,rangeAgt) end if next j elseif i == GetHeightSpace(universe.eki)-1 then for j = 0 to universe.scale if universe.eki.map(k,i-j,0) == 1 then universe.eki.map(k,i-j,0) = 3 rangeAgt = CreateAgt(universe.eki.range) rangeAgt.X = k rangeAgt.Y = i-j rangeAgt.hole = 60 AddAgt(universe.areaSet,rangeAgt) end if next j elseif universe.eki.map(k,i-1,0) == 0 then for j = 0 to universe.scale if universe.eki.map(k,i+j,0) == 1 then universe.eki.map(k,i+j,0) = 3 rangeAgt = CreateAgt(universe.eki.range) rangeAgt.X = k rangeAgt.Y = i+j rangeAgt.hole = 60 AddAgt(universe.areaSet,rangeAgt)
R004
2011 年度 早稲田大学 渡辺仁史研究室 卒業論文 監視カメラの死角空間における行動予測システムに関する研究
rangeAgt = CreateAgt(universe.eki.range) rangeAgt.X = k rangeAgt.Y = i+j rangeAgt.hole = 60 AddAgt(universe.areaSet,rangeAgt) end if next j elseif universe.eki.map(k-1,i,0) == 0 then for j = 0 to universe.scale if universe.eki.map(k+j,i,0) == 1 then universe.eki.map(k+j,i,0) = 3 rangeAgt = CreateAgt(universe.eki.range) rangeAgt.X = k+j rangeAgt.Y = i rangeAgt.hole = 60 AddAgt(universe.areaSet,rangeAgt) end if next j elseif universe.eki.map(k+1,i,0) == 0 then for j = 0 to universe.scale if universe.eki.map(k-j,i,0) == 1 then universe.eki.map(k-j,i,0) = 3 rangeAgt = CreateAgt(universe.eki.range) rangeAgt.X = k-j rangeAgt.Y = i rangeAgt.hole = 60 AddAgt(universe.areaSet,rangeAgt) end if next j elseif universe.eki.map(k,i+1,0) == 0 then for j = 0 to universe.scale if universe.eki.map(k,i-j,0) == 1 then universe.eki.map(k,i-j,0) = 3 rangeAgt = CreateAgt(universe.eki.range) rangeAgt.X = k
R005
2011 年度 早稲田大学 渡辺仁史研究室 卒業論文 監視カメラの死角空間における行動予測システムに関する研究
elseif universe.eki.map(k,i+1,0) == 0 then for j = 0 to universe.scale if universe.eki.map(k,i-j,0) == 1 then universe.eki.map(k,i-j,0) = 3 rangeAgt = CreateAgt(universe.eki.range) rangeAgt.X = k rangeAgt.Y = i-j rangeAgt.hole = 60 AddAgt(universe.areaSet,rangeAgt) end if next j end if end if next k next i end if }
Univ_Step_Begin{ dim i as integer dim k as integer dim unitAgt as agt
if StrComp(Universe.mode, "Line Simulation") == 0 Then if GetCountStep() == 1 then CellSetUp () CreateNextPoint () CreateLine () universe.trafficlog = "real" & "," & "sim" end if Locus() else Locus() end if }
R006
2011 年度 早稲田大学 渡辺仁史研究室 卒業論文 監視カメラの死角空間における行動予測システムに関する研究
end if }
sub Locus() {
dim i as integer dim k as integer dim j as integer dim d as integer dim sX as double dim sY as double dim gX as double dim gY as double dim del as agt dim del2 as agt dim sAgt as agt dim gAgt as agt dim nextAgt as agt dim foot as agt dim footSet as agtset dim linkcost as integer dim s_data as string dim g_data as string dim line_data as string dim XY as string dim SG as string dim IO as string dim PD as string dim InOut_data as string dim L as string
i = GetCountStep() ClearAgtSet(universe.candidateAgtSet) if (OpenFile("data/"&CStr(i+1)&".csv",i+1,1)) then if GetCountStep() == 1 then
R007
2011 年度 早稲田大学 渡辺仁史研究室 卒業論文 監視カメラの死角空間における行動予測システムに関する研究
OpenFile("data/"&CStr(i)&".csv",i,1) do while ( IsEofFile(i) == False) s_data = ReadFile(i) sX = CDbl(GetToken(s_data,0)) sY = CDbl(GetToken(s_data,1)) if universe.eki.map(Int(sX),Int(sY),0) >= universe.territory then sAgt = createAgt(universe.eki.startAgt) sAgt.X = sX sAgt.Y = sY sAgt.startUnit = universe.eki.map(Int(sX),Int(sY),0) sAgt.memory = CStr(sX) & "," & CStr(sY) end if loop else for each nextAgt in universe.tergetSet sAgt = CreateAgt(universe.eki.startAgt) sAgt.X = nextAgt.X sAgt.Y = nextAgt.Y sAgt.memory = nextAgt.memory sAgt.startUnit = nextAgt.startUnit if sAgt.startUnit > 0 then sAgt.memory = sAgt.memory & "," & CStr(nextAgt.X) & "," & CStr(nextAgt.Y) else sAgt.memory = CStr(nextAgt.X) & "," & CStr(nextAgt.Y) sAgt.startUnit = universe.eki.map(Int(sAgt.X),Int(sAgt.Y),0) end if if StrComp(Universe.mode, "Line 抽出 ") == 0 Then if universe.log == 1 Then universe.eki.p_grid(Int(sAgt.X),Int(sAgt.Y),0) = universe.eki.p_grid(Int(sAgt.X),Int(sAgt.Y),0) -1 end if end if next nextAgt do until (CountAgtSet(universe.tergetSet) == 0) del2 = GetAgt(universe.tergetSet,0) TerminateAgt(del2)
R008
2011 年度 早稲田大学 渡辺仁史研究室 卒業論文 監視カメラの死角空間における行動予測システムに関する研究
TerminateAgt(del2) loop ClearAgtSet(universe.tergetSet) end if do while ( IsEofFile(i+1) == False) g_data = ReadFile(i+1) gX = CDbl(GetToken(g_data, 0)) gY = CDbl(GetToken(g_data, 1)) if universe.eki.map(Int(gX),Int(gY),0) >= universe.territory then gAgt = createAgt(universe.eki.goalAgt) gAgt.X = gX gAgt.Y = gY gAgt.color = 70 AddAgt(universe.tergetSet,gAgt) if StrComp(Universe.mode, "Line 抽出 ") == 0 Then if universe.log == 1 Then universe.eki.p_grid(Int(gAgt.X),Int(gAgt.Y),0) = universe.eki.p_grid(Int(gAgt.X),Int(gAgt.Y),0) +1 end if end if end if loop CloseFile(i+1) CloseFile(i) else beep() if universe.log == 1 then if StrComp(Universe.mode, "Line 抽出 ") == 0 Then OpenFile("output/Line.csv",i+2,2) for j = 0 to CountToken(universe.lineSG) -1 step 2 XY = GetToken(universe.lineXY,j) & "," & GetToken(universe.lineXY,j+1) SG =GetToken(universe.lineSG,j) & "," & GetToken(universe.lineSG,j+1) line_data = XY & "," & SG WriteLnFile(i+2,line_data) next j closefile(i+2)
R009
2011 年度 早稲田大学 渡辺仁史研究室 卒業論文 監視カメラの死角空間における行動予測システムに関する研究
closefile(i+2) OpenFile("output/InOut.csv",i+3,2) for k = 0 to CountToken(universe.InOutPD) -1 step 4 IO = GetToken(universe.InOutXY,k) & "," & GetToken(universe.InOutXY,k+1) & "," & GetToken(universe. InOutXY,k+2) & "," & GetToken(universe.InOutXY,
k+3) PD = GetToken(universe.InOutPD,k) & "," & GetToken(universe.InOutPD,k+1) & "," & GetToken(universe.
InOutPD,k+2) & "," & GetToken(universe.InOutPD,k+3) InOut_data = IO & "," & PD WriteLnFile(i+3,InOut_data) next k Closefile(i+3) end if end if if universe.log == 1 then if StrComp(Universe.mode, "Line Simulation") == 0 Then OpenFile("output/TrafficLog.csv",000,2) for i = 0 to Counttoken(universe.trafficlog) -1 step 2 L = i *10 &","&GetToken(universe.trafficlog,i) &","&GetToken(universe.trafficlog,i+1) WriteLnFile(000,L) next i Closefile(000) end if if universe.footprint == 1 then if StrComp(Universe.mode, "Line 抽出 ") == 0 Then ScreenShotJPG("eki","pic/footprint_all.png") end if end if end if ExitSimulation() end if }
sub CellSetUp () {
dim i as integer
R010
2011 年度 早稲田大学 渡辺仁史研究室 卒業論文 監視カメラの死角空間における行動予測システムに関する研究
dim i as integer dim ct as integer dim discrim as agt dim f_loca as agt dim s_loca as agt dim cells as agt dim masscell as agt dim allSet as agtset dim cellSet as agtset
MakeAgtSetSpace(allSet,universe.eki) DelAgtSet(allSet,universe.areaSet) for each discrim in allSet discrim.cellnum = universe.eki.map(int(discrim.X),int(discrim.Y),0) next discrim ct = 0 SortAgtSet(allSet,"cellnum",true) for i = 0 to CountAgtSet(allSet) -1 cells = CreateAgt(universe.eki.cellAgt) f_loca = GetAgt(allSet,i) AddAgt(cells.aggreSet,f_loca) AddAgt(cellSet,f_loca)
if i <> CountAgtSet(allSet)-1 then s_loca = GetAgt(allSet,i+1) if SpecifyAgtType(f_loca) <> SpecifyAgtType(s_loca) then masscell = CreateAgt(universe.eki.masscellAgt) masscell.num = ct JoinAgtSet(masscell.set,cellSet) JoinAgtSet(universe.allPointSet,cellSet) ClearAgtSet(cellSet) ct = ct + 1 end if else masscell = CreateAgt(universe.eki.masscellAgt)
R011
2011 年度 早稲田大学 渡辺仁史研究室 卒業論文 監視カメラの死角空間における行動予測システムに関する研究
masscell.num = ct JoinAgtSet(masscell.set,cellSet) JoinAgtSet(universe.allPointSet,cellSet) ClearAgtSet(cellSet) ct = ct + 1 end if next i }
sub CreateNextPoint () {
dim j as integer dim i as integer dim count as integer dim pulasD as double dim vectorAgt as agt dim n_vector as agt dim s_vector as agt dim inout as agt dim setset as agtSet dim vectorSet as agtset dim vector_data as string dim m_num as integer
OpenFile("output/InOut.csv",1,1) do while ( IsEofFile(1) == False) vector_data = ReadFile(1) vectorAgt = CreateAgt(universe.eki.vector) vectorAgt.s_point = CInt(GetToken(vector_data,4)) vectorAgt.e_point = CInt(GetToken(vector_data,5)) vectorAgt.direction = CInt(GetToken(vector_data,6)) AddAgt(vectorSet,vectorAgt) loop closefile(1)
R012
2011 年度 早稲田大学 渡辺仁史研究室 卒業論文 監視カメラの死角空間における行動予測システムに関する研究
pulasD = 0 count = 0 SortAgtSet(vectorSet,"e_point",true) for i = 0 to CountAgtSet(vectorSet)-1 n_vector = GetAgt(vectorSet,i)
m_num = n_vector.e_point Mod 8 if m_num == 5 or m_num == 6 then if n_vector.Direction > 180 then n_vector.Direction = n_vector.Direction - 360 end if end if
pulasD = pulasD + n_vector.direction if n_vector.e_point <> 1 And n_vector.s_point <> 2 then count = count + 1 if i <> CountAgtSet(vectorSet)-1 then s_vector = GetAgt(vectorSet,i+1) if s_vector.e_point <> n_vector.e_point then setset = universe.eki.cellAgt(n_vector.e_point -3).aggreSet inout = GetAgt(setset,0) inout.Direction = pulasD / count inout.outPeople = count pulasD = 0 count = 0 end if else setset = universe.eki.cellAgt(n_vector.e_point -3).aggreSet inout = GetAgt(setset,0) inout.Direction = pulasD / count inout.outPeople = count pulasD = 0 count = 0 end if
R013
2011 年度 早稲田大学 渡辺仁史研究室 卒業論文 監視カメラの死角空間における行動予測システムに関する研究
end if next i
SortAgtSet(vectorSet,"s_point",true) for j = 0 to CountAgtSet(vectorSet)-1 n_vector = GetAgt(vectorSet,j) if n_vector.s_point <> 1 And n_vector.s_point <> 2 then count = count + 1 if j <> CountAgtSet(vectorSet)-1 then s_vector = GetAgt(vectorSet,j+1) if s_vector.s_point <> n_vector.s_point then setset = universe.eki.cellAgt(n_vector.s_point -3 ).aggreSet inout = GetAgt(setset,0) inout.inPeople = count count = 0 end if else setset = universe.eki.cellAgt((n_vector.s_point) -3).aggreSet inout = GetAgt(setset,0) inout.inPeople = count count = 0 end if end if next j
}
sub CreateLine () {
dim i as integer dim j as integer dim k as integer dim memoryAB as double dim dAB as double dim A as Agt
R014
2011 年度 早稲田大学 渡辺仁史研究室 卒業論文 監視カメラの死角空間における行動予測システムに関する研究
dim AA as agt dim B as Agt dim allSet as agtset dim point as double dim nextDirection as double
k=0 for i = 0 to CountAgtSet(universe.allPointSet) -1 memoryAB = 100 A = GetAgt(universe.allPointSet,i) joinAgtSet(allSet,universe.allPointSet) DelAgtSet(allSet,universe.eki.masscellAgt(k).set) for j = 0 to CountAgtSet(allSet) -1 B = GetAgt(allSet,j) nextDirection = GetDirection(A.X, A.Y, B.X, B.Y, Universe.eki) if B.InPeople > 0 And A.OutPeople > 0 then if abs(A.Direction - nextDirection) <= universe.theta then dAB = Sqr((A.X-B.X)^2 + (A.Y-B.Y)^2) if dAB < memoryAB then ClearAgtSet(A.nextpointSet) memoryAB = dAB AddAgt(A.nextpointSet, B) point = GetDirection(A.X, A.Y, B.X, B.Y, Universe.eki) end if end if end if next j if i <> CountAgtSet(universe.allPointSet) -1 then AA = GetAgt(universe.allPointSet,i+1) if SpecifyAgtType(A) <> SpecifyAgtType(AA) then k = k+1 end if end if ClearAgtSet(allSet) next i
R015
2011 年度 早稲田大学 渡辺仁史研究室 卒業論文 監視カメラの死角空間における行動予測システムに関する研究
}
Univ_Step_End{
dim gAgtSet as agtset dim cAgtSet as agtset dim sAgt as agt dim gAgt as agt dim nAgt as agt dim foot as agt dim i as integer dim k as integer dim gUnit as string dim zero as string dim framenum as integer dim beforeX as double dim beforeY as double dim releaseAgt as agt dim inXY as string dim outXY as string dim nDirection as double dim stepnum as integer dim unit_data as string dim walkAgt as agt
MakeAgtSet(gAgtSet, universe.eki.goalAgt) cAgtSet = universe.candidateAgtSet SortAgtSet(cAgtSet,"distance",true) do until (CountAgtSet(cAgtSet) == 0) nAgt = GetAgt(cAgtSet,0) sAgt = GetUniqueID(universe.eki.startAgt,nAgt.nowID) gAgt = GetUniqueID(universe.eki.goalAgt,nAgt.nextID) if GetAgtEntry(gAgtSet,gAgt) <> -1 then if universe.footprint == 1 then foot = CreateAgt(universe.eki.footprint)
R016
2011 年度 早稲田大学 渡辺仁史研究室 卒業論文 監視カメラの死角空間における行動予測システムに関する研究
foot.X = sAgt.X foot.Y = sAgt.Y AddAgt(foot.nextAgtSet,gAgt) end if gAgt.color = 0 DelAgtSet(cAgtSet,sAgt.massAgtSet) DelAgtSet2(gAgtSet,gAgt) gAgt.memory = sAgt.memory gAgt.startUnit = sAgt.startUnit if universe.log == 1 then if universe.eki.map(Int(sAgt.X),Int(sAgt.Y),0) == 0 then if universe.eki.map(Int(gAgt.X),Int(gAgt.Y),0) == 1 then universe.realtraffic = universe.realtraffic + 1 end if end if end if if universe.eki.map(Int(sAgt.X),Int(sAgt.Y),0) == 2 then if universe.eki.map(Int(gAgt.X),Int(gAgt.Y),0) > 2 then gAgt.memory = gAgt.memory & "," & gAgt.X &","& gAgt.Y gUnit = universe.eki.map(Int(gAgt.X),Int(gAgt.Y),0) if CountToken(gAgt.memory) > (universe.beforeFrame*2) then framenum = CountToken(gAgt.memory) - universe.beforeFrame*2 beforeX = CDbl(GetToken(gAgt.memory,framenum)) beforeY = CDbl(GetToken(gAgt.memory,framenum+1)) nDirection = GetDirection(beforeX,beforeY,gAgt.X,gAgt.Y,universe.eki) if StrComp(Universe.mode, "Line 抽出 ") == 0 Then inXY = GetToken(gAgt.memory,0) & "," & GetToken(gAgt.memory,1) outXY = CStr(gAgt.X) & "," & CStr(gAgt.Y) if CountToken(universe.lineSG) == 0 then universe.lineXY = gAgt.memory universe.lineSG = CStr(gAgt.startUnit) & "," & CStr(gUnit) universe.InOutXY = inXY & "," & outXY universe.InOutPD = CStr(gAgt.startUnit) & "," & CStr(gUnit) & "," & CStr(nDirection) & ",0" for i = 0 to CountToken(gAgt.memory)-3 step 2
R017
2011 年度 早稲田大学 渡辺仁史研究室 卒業論文 監視カメラの死角空間における行動予測システムに関する研究
universe.InOutXY = inXY & "," & outXY universe.InOutPD = CStr(gAgt.startUnit) & "," & CStr(gUnit) & "," & CStr(nDirection) & ",0" for i = 0 to CountToken(gAgt.memory)-3 step 2 universe.lineSG = universe.lineSG & "," & CStr(gAgt. startUnit) & "," & CStr(gUnit) next i else universe.lineXY = universe.lineXY &","& gAgt.memory universe.InOutXY = universe.InOutXY & "," & inXY & "," & outXY universe.InOutPD = universe.InOutPD & "," & CStr(gAgt.startUnit) & "," & CStr(gUnit) & "," & CStr(nDirection) & ",0" for i = 0 to CountToken(gAgt.memory) -1 step 2 universe.lineSG = universe.lineSG & "," & CStr(gAgt. startUnit) & "," & CStr(gUnit) next i end if elseif StrComp(Universe.mode, "Line Simulation") == 0 Then walkAgt = CreateAgt(universe.eki.walk) walkAgt.X = gAgt.X walkAgt.Y = gAgt.Y walkAgt.direction = nDirection walkAgt.cellnum = CInt(gUnit) -3 gAgt.memory = "" end if end if end if end if else DelAgtSet2(cAgtSet,nAgt) end if KillAgt(nAgt) KillAgt(sAgt) loop if universe.log == 1 Then
R018
2011 年度 早稲田大学 渡辺仁史研究室 卒業論文 監視カメラの死角空間における行動予測システムに関する研究
end if KillAgt(nAgt) KillAgt(sAgt) loop if universe.log == 1 Then stepnum = GetCountStep() Mod 10 if stepnum == 0 then if StrComp(Universe.mode, "Line 抽出 ") == 0 Then OpenFile("output/real_unit_freme"& CStr(GetCountStep()) &".csv",10,2) for i = 0 to GetHeightSpace(universe.eki)-1 for k = 0 to GetWidthSpace(universe.eki)-1 if k == 0 then if universe.eki.map(k,GetHeightSpace(universe.eki)-1-i,0) < 1 then unit_data = CStr(universe.eki.p_grid(k,GetHeightSpace(universe.eki)1-i,0)) else unit_data = "," end if else if universe.eki.map(k,GetHeightSpace(universe.eki)-1-i,0) < 1 then unit_data
= unit_data & "," & CStr(universe.eki.p_
grid(k,GetHeightSpace(universe.eki)-1-i,0)) else unit_data = unit_data & "," end if end if next k WriteLnFile(10,unit_data) next i closefile(10) elseif StrComp(Universe.mode, "Line Simulation") == 0 Then universe.trafficlog = universe.trafficlog & "," & universe.realtraffic & "," & universe.simtraffic universe.realtraffic = 0 universe.simtraffic = 0 end if
R019
2011 年度 早稲田大学 渡辺仁史研究室 卒業論文 監視カメラの死角空間における行動予測システムに関する研究
universe.simtraffic = 0 end if end if end if }
Univ_Finish{ }
□ Agt 用
- 実座標 - startAgt
Agt_Init{
}
Agt_Step{ dim surround as agtset dim nearAgt as agt dim d as double dim nearInfo as string dim i as integer dim linkAgt as agt
if SpecifyKillAgt(my) == false then MakeOneAgtSetAroundOwn(surround,5, Universe.eki.goalAgt, False) If CountAgtSet(surround) > 0 Then for i = 0 to CountAgtSet(surround) -1 linkAgt = CreateAgt(universe.eki.linkAgt) nearAgt = GetAgt(surround,i) d = Sqr((my.X-nearAgt.X)^2 + (my.Y-nearAgt.Y)^2) linkAgt.distance = d linkAgt.nextID = nearAgt.ID linkAgt.nowID = my.ID
R020
2011 年度 早稲田大学 渡辺仁史研究室 卒業論文 監視カメラの死角空間における行動予測システムに関する研究
AddAgt(my.massAgtSet,linkAgt) next i joinAgtSet(universe.candidateAgtSet,my.massAgtSet) else KillAgt(My) end if end if }
- 予測 Agt- walkAgt
Agt_Init{ my.ct = 0 }
Agt_Step{
dim aggreAgt as agt dim nextAgt as agt dim setset as agtset dim X_X as double dim Y_Y as double
if my.ct == 0 then setset = universe.eki.cellAgt(my.cellnum).aggreSet aggreAgt = GetAgt(setset,0) if CountAgtSet(aggreAgt.nextpointSet) <> 0 then nextAgt = GetAgt(aggreAgt.nextpointSet,0) my.XX = nextAgt.X my.YY = nextAgt.Y my.Direction = GetDirection(my.X, my.Y, my.XX, my.YY, Universe.eki) else DelAgt(my) end if else
R021
2011 年度 早稲田大学 渡辺仁史研究室 卒業論文 監視カメラの死角空間における行動予測システムに関する研究
X_X = my.X Y_Y = my.Y forward(0.2) if universe.log == 1 Then if universe.eki.map(int(X_X),int(Y_Y),0) == 0 then if universe.eki.map(int(my.X),int(my.Y),0) == 1 then universe.simtraffic = universe.simtraffic +1 end if end if end if if Abs(my.X - my.XX) < 0.5 And Abs(my.Y - my.YY) < 0.5 then DelAgt(my) end if end if my.ct = my.ct +1
R022
2011 年度 早稲田大学 渡辺仁史研究室 卒業論文 監視カメラの死角空間における行動予測システムに関する研究
資料 # 2 マクロ Sub WRITE_TextFile5()
Dim GYO As Long
' 収容するセルの行
Dim GYOMAX As Long
' データが収容された最終行
Dim i As Long Dim s As Long Dim k As Long Dim j As Long Dim myPath As String
Columns("D:E").Select Range("D2").Activate Selection.Copy Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Range("E3").Select Selection.End(xlDown).Select Range(Selection, Selection.End(xlToLeft)).Select Range(Selection, Selection.End(xlUp)).Select Application.CutCopyMode = False ActiveWorkbook.Worksheets(" 座標変換 ").Sort.SortFields.Clear ActiveWorkbook.Worksheets(" 座標変換 ").Sort.SortFields.Add Key:=Range("A3:A51650") _ , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal With ActiveWorkbook.Worksheets(" 座標変換 ").Sort .SetRange Range("A2:E51650") .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With Range(Selection, Selection.End(xlUp)).Select Range("E3").Select Selection.End(xlDown).Select
R023
2011 年度 早稲田大学 渡辺仁史研究室 卒業論文 監視カメラの死角空間における行動予測システムに関する研究
Range("F51650").Select ActiveCell.FormulaR1C1 = "=(RC[-2]+30352.7027)/500" Range("G51650").Select ActiveCell.FormulaR1C1 = "=(RC[-2]+17166.8919)/500" Range("F51650:G51650").Select Selection.AutoFill Destination:=Range("F3:G51650"), Type:=xlFillDefault Range("F3:G51650").Select Selection.Copy Range("B3").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False
GYO = 2 j=1 GYOMAX = Cells.SpecialCells(xlCellTypeLastCell).Row
Do Until GYO = GYOMAX - 1
If Cells(GYO, 1).Value < Cells(GYO + 1, 1).Value Or GYO = 2 Then
i = GYO s = GYO + 1
Do Until Cells(s, 1).Value < Cells(s + 1, 1).Value
If s = GYOMAX Then Exit Do Else s=s+1 End If
Loop
R024
2011 年度 早稲田大学 渡辺仁史研究室 卒業論文 監視カメラの死角空間における行動予測システムに関する研究
k = Cells(i, 1).Value 'Do Until k = 10 Application.ScreenUpdating = False Workbooks.Add ActiveWorkbook.Sheets(1).Range("A1", "B" & s - i).Value = ThisWorkbook.Sheets(1).Range("B" & i + 1, "C" & s).Value myPath = ThisWorkbook.Path ActiveWorkbook.SaveAs myPath & "\linedata\" & j & ".csv", FileFormat:=xlCSV ActiveWorkbook.Close SaveChanges:=True Application.ScreenUpdating = True
GYO = s
Else GYO = GYO + 1
End If j=j+1
Loop
End Sub
R025