\documentclass[a4paper,titlepage]{jsarticle}
\usepackage[dvips]{graphicx}
\usepackage{verbatim}
\pagestyle{empty}
\西暦
\setlength{\textheight}{240mm}
\setlength{\topmargin}{-10mm}
\setlength{\textwidth}{165mm}
\setlength{\oddsidemargin}{-5mm}
\setlength{\evensidemargin}{-5mm}
\hyphenation{front-end}

\title{画像処理を用いた駐輪場混雑度判別システムの開発}
\date{}%ここはブランク
\author{06H073 服部広太郎}

\begin{document}
\maketitle\pagestyle{empty}

% 目次
\tableofcontents
\clearpage

\pagestyle{plain}
\setcounter{page}{1}

\begin{abstract}
自動二輪車で通学する学生にとって駐輪場は欠かせないものである。
本学では駐輪場は複数あり多数の自動二輪車を駐車できるが、それぞれが離れており、
空車状況が判らないなど利便性に欠ける面が目立つ。
そこで、Web上で混雑度を確認できれば移動の無駄や無理な駐車による混雑を
回避できると考え、自動二輪車用駐輪場の混雑度をWebで確認できるシステムの
開発した。本システムは、設置したカメラから取得した画像をエッジ検出により
処理することで台数を算出し、結果をHTMLで記述しWeb上に配信するものである。
実験の結果、実台数と処理結果の誤差を完全に無くす事はできなかったが、
空車情報の提供という点においては、約70\%の正答率を得ることができた。
今後の課題として、車両検出精度の向上、明暗の変化に対する強化、携帯電話などの
モバイル機器への情報の提供を図る。
\end{abstract}

\section{はじめに}
自動二輪車で通学する学生にとって駐輪場は欠かせないものである。
本学では駐輪場は複数あり多数の自動二輪車を駐車できるが、
それぞれが離れており、空車状況が分からないなど利便性に欠ける面が目立つ。
そこで、駐輪場の混雑度を判別するシステムの開発を考えた。
駐輪場間での移動や通学などの際にあらかじめ駐輪場の混雑度が分かれば、
移動の無駄や無理な駐車による混雑を回避できると考えたからである。
また、一般的なゲートやセンサーによる台数管理ではなく、
カメラで駐輪場を撮影し画像処理により台数を把握する方法を取る事により、
低コストなシステムの実現を試みた。

\subsection{既存のシステム}
商業施設の駐車場やコインパーキングでは台数管理をするために、
出入り口にゲートバーを設置したゲート方式や、
各駐車スペースにフラップ板を設置したロック方式を採用している。
また、一部ではカメラを利用した駐車場の混雑度判別システムを利用している
例\cite{pic1}もある。

\subsection{研究の目的}
本研究では本学の自動二輪車用駐輪場の混雑度をWeb上で確認できるシステムの
開発を目的とした。また、駐輪場が既に使用されている点、
コスト面から上記のような大掛かりな設備を設置できない点から、
カメラと画像処理を利用した低コストなシステムの開発も目的とした。
今回の研究では本学に複数ある駐輪場のうち、私が最もよく利用する15号館裏の
駐輪場を対象とした。

\clearpage

\section{システムの構造}
\subsection{システムの概要}
本研究では、駐輪場の混雑度を判定しWeb上で閲覧できるシステムを開発した。
設置したカメラから画像を取得し、本システムで画像処理を行う。
処理結果をログに書き込み、過去1時間分の結果と共にHTMLとして出力する。

\subsection{開発環境}
\begin{itemize}
  \item ハードウェア(IBM-PC/AT互換機)
       \begin{itemize}
        \item CPU:Intel(R) Celeron(R) CPU 2.80GHz
	\item Cache Memory:256KB
       \end{itemize}
  \item OS：Vine Linux 4.2 
  \item 開発言語:C言語 / シェルスクリプト
  \item ネットワークカメラ(CG-WLNCMNGV2)
       \begin{itemize}
        \item 解像度:640x480(VGA),320x240(CIF),160x120(QCIF)
        \item 画像圧縮方式:JPEG
       \end{itemize}
 \end{itemize}
\clearpage

\subsection{システムの動作}
cron\footnote{cronとはUnix系OSにおいて、コマンドの定時実行のスケジュール
管理を行うために用いられるコマンドである。}
で設定した時間帯に5分毎に設置したカメラで撮影した画像を取得し、
画像処理にて車両の有無を判定する。判定の結果をログに書き込み、
HTMLとして出力する。車両の判定にはエッジ抽出を用いた。
エッジ抽出を行い、指定した領域内のエッジの比率により駐車の有無を判定する。

画像処理による結果をログに書き込み、結果をHTMLに出力する。
過去1時間分のデータを表示させ、
現在までの混雑度の推移がわかるようにした。
システムの処理の流れを{\bf 図~\ref{flow}}に示す。
\begin{figure}[!h]
 \centering
 \includegraphics[width=10cm]{flow.eps}
 \caption{システムの流れ}
 \label{flow}
\end{figure}
\clearpage

\subsection{画像処理}
\subsubsection{画像変換}
撮影された原画像はカラー画像のため、エッジ抽出の前に濃淡画像へ変換する。
濃淡画像に変換することで、路面と区別しにくい色の車両を認識しやすくする。
原画像を{\bf 図~\ref{ori}}に示す。
\begin{figure}[!h]
 \centering
 \includegraphics[width=7cm]{test1000.eps}
 \caption{原画像}
 \label{ori}
\end{figure}

次に画像を補正するため、変換された濃淡画像に対し対数変換を行う。
これは影などによる明るさのムラを減らすためである。
対数変換を行った場合画像の暗い部分が補正され、画像が強調される。
{\bf 図~\ref{grey}}と{\bf 図~\ref{tone}}に、
変換前と変換後の画像をそれぞれ示す。
\begin{figure}[!h]
 \begin{minipage}[t]{0.49\textwidth}
  \begin{center}
   \includegraphics[width=7cm]{grey.eps}
  \end{center}
 \caption{濃淡画像}
 \label{grey}
 \end{minipage}
 \begin{minipage}[t]{0.49\textwidth}
  \begin{center}
   \includegraphics[width=7cm]{tone.eps}
  \caption{対数変換画像}
  \label{tone}
  \end{center}
 \end{minipage}
\end{figure}
\clearpage

次に変換された対数画像に対し、エッジ抽出\cite{pic2}を行う。
エッジ抽出にはラプラシアン2フィルタ\footnote{ラプラシアン2フィルタとは、
着目画素の近傍の画素を2次微分値を係数倍して着目画素から引くことにより、
画像をシャープにするフィルタである。}\cite{pic3}を使用した。
更に車両のエッジ部分だけを抽出するため、二値化処理を行う。
車両のエッジが最も検出される120から235の間を閾値とし、
条件を満たすピクセルを白(0xff)、それ以外を黒(0x00)とした。
{\bf 図~\ref{edge2}}に、二値化画像を示す。
\begin{figure}[!h]
 \centering
 \includegraphics[width=7cm]{edge2.eps}
 \caption{二値化画像}
 \label{edge2}
\end{figure}

\subsection{テンプレート画像の作成}
本システムでは、画像内の駐車区域を判別するためにテンプレート画像を
用いる。これは撮影した画像を編集し、
判定処理の際に駐車区域のエッジだけを識別させるものである。
{\bf 図~\ref{back}}の黒い部分が駐車領域として指定している部分である。
\begin{figure}[!h]
 \centering
 \includegraphics[width=7cm]{back2.eps}
 \caption{テンプレート画像}
 \label{back}
\end{figure}

\subsection{初期値の設定}
本システムではエッジ検出の際にノイズを完全に除去するのが不可能なため、
空車時の画像を処理した際の数値を初期値として設定する。
空車時の画像は、既に運用されている駐輪場から撮影するのは困難なため、
フリーの画像編集ソフトを用いて作成した。

次に、車両が多く駐車されている時の画像を処理して1台あたりの平均ピクセル数を
求めて判定処理時の基準値とする。

\subsection{判定処理}
テンプレート画像の駐車区域内でエッジ検出されたピクセル数をカウントする。
カウンタの数値から初期値を引き、1台あたりの平均ピクセル数で割る事で
台数を算出する。
更に満車時の台数で割る事でパーセンテージを算出する。
ここでの満車時とは厳密な台数ではなく、混雑時の台数からおおよその
駐車上限を予想したものである。

\subsection{ログ書込}
画像処理により出た結果をログに書き込む。

\subsection{HTML出力}
ログを読み込んでHTMLとして出力する。
過去5分毎、1時間分の結果を出力することで、現在までの混雑度の推移が
分かるようにした。
出力画面を{\bf 図~\ref{camera}}に示す。
\begin{figure}[!ht]
 \centering
 \includegraphics[width=17cm]{camera.eps}
 \caption{出力画面}
 \label{camera}
\end{figure}
\clearpage

\section{結果と考察}
\subsection{結果}
実権を行うに当たり、以下の条件を設定し、
雲の出ている晴れの日に10:00時から17:00時までシステムを稼動した。
\begin{itemize}
  \item 初期値を3500とする。
  \item 1台当たりのピクセル数を250とする。 
  \item 誤差は±3台までとする。
  \item 最大台数を5台とする。
\end{itemize}
10:00時から17:00時までの30分毎の結果を{\bf 図~\ref{results}}に示す。
\begin{figure}[!ht]
 \centering
 \includegraphics[width=10cm]{results.eps}
 \caption{結果}
 \label{results}
\end{figure}
\clearpage

\subsection{考察}
これらの結果から、システムの利点と問題点を考察する。

\subsubsection{利点}
\begin{itemize}
\item{Web上で混雑度を確認できる}

今回の実験では、特定の時間帯において正確な混雑度の判定は出来なかったが、
ユーザーにとって重要である現在駐車できるかできないかにおいては
ある程度正確な情報を提供できると考える。\\

\item{コストの安さ}

今回実験で使用したのは室内用のWebカメラとカメラを固定するスタンドのみである。\\

\item{コンパクトなシステム}

カメラを固定できればどこでもシステムを実装できるため、必要な
面積が小さい。\\

\end{itemize}

\subsubsection{欠点}
\begin{itemize}
\item{明暗の変化に対する脆弱性}

影が生じると、影とそうでない部分の境がエッジとして検出されてしまい、
それが車両として認識される。結果として誤認識を生んでしまう。
また本システムは駐輪場に照明装置が設置されていないため、
夜間に対応していないが、学生の最も利用する時間帯ではない事から、
それほど問題ではないと考える。\\

\end{itemize}
\clearpage

\section{まとめ}
本研究では、駐輪場の混雑度を判別するシステムを開発した。
これにより駐輪場の混雑度をWeb上で確認することができるようになった。
車両検出精度はまだ完全とは言えないが、空車情報をユーザーに提供する点
においては、ある程度は達成できたと考える。

\subsection{今後の課題}
\begin{itemize}
\item 車両認識精度の向上
\item 明暗の変化に対する強化
\item 携帯電話などのモバイル機器への情報の提供
\end{itemize}
\clearpage

\section*{謝辞}
本研究を行うにあたり、御指導及び御協力頂いた大垣 斉講師、藤井 信夫教授、
情報安全工学実験室のメンバー(特に東川諒央)及び卒業生の方々、
その他見守ってくださった方々に深く感謝の意を表します。

% 参考文献
\begin{thebibliography}{99}
 \bibitem{pic1}画像処理による照明変動等にロバストな駐車状況判定法,
                http://ci.nii.ac.jp/naid/110003495135
 \bibitem{pic2}画像研究入門,
                http://image.onishi-lab.jp/index.html
 \bibitem{pic3}MSDNアカデミックアライアンス,
                http://msdn.microsoft.com/ja-jp/academic/cc998604.aspx

\end{thebibliography}
URIの全て2009年1月19日のもの

\clearpage

\appendix
\section{付録1ソースコード}
\subsection{main.c}
\verbatiminput{main.c}
\clearpage

\subsection{html.c}
\verbatiminput{html.c}
\clearpage

\subsection{picget.sh}
\verbatiminput{picget.sh}

\end{document}
