--------------------------------------------------------------------
Interface 2016年12月号に掲載したプログラムと簡単な説明
--------------------------------------------------------------------

1. はじめに
自動車運転支援システムで使うことを想定した道路交通標識認識システムを
RasPi+FPGA(Digilent社Nexys4 DDR)で実装したコードの一部です.
諸事情で全てのコードが公開できなくなりました. ごめんなさい.
HSV変換部と標識認識部のPythonコードとCコードを公開します.
Python部はソフトウェアベースですので, アルゴリズムの検証と,
低速ではありますが, RasPi上で道路交通標識認識の動作確認はできます.
ノートPC上で走らせればRasPi+FPGA並みの速度で動作確認も可能です.

※注意
道路交通法では画面を注視することは禁じられています.
今回はあくまでも想定上のことですので, 実際に運転に使って画面を注視しないでください.
本ソフトウェアの使用により事故等のトラブルが発生しても責任は負いかねますので
その点をご承知おきください.

ちなみに,　私が動作確認したときはYouTubeの運転動画をテレビで表示しながら
仮想的に標識認識を行わせました.


2. 動作環境
Pythonコード: RasPi or PC のどちらでも動作します.
PC: Ubuntu 14.04 LTS + Python-opencv + numpy + USBカメラ 

※プログラムは全てUTF-8でコーディングされています。

3. ファイル構成
road_sign.py … HSV変換部と標識認識部. 低速ながら, 一応, 検証が可能.
road001.JPG～road004.JPG … 検証用のテスト画像. プログラム開発に使いました.
road_sign.c … road_sign.pyから生成したC/C++プログラム. Vivado HLSに食わせてHWを生成します.
road_sign.h … road001.JPGから生成したC/C++プログラム用のテスト入力データ.
　　　　　　　　事前にroad_sign.pyを動作させて期待値（テスト出力）を得ておいて
　　　　　　　　動作検証に用いています.
README.txt … この説明ファイル.

4. 実行方法（詳しくは紙面を見てください）
1. Pythonコードの実行.

$python road_sign.py

とタイプすると, road001.JPGの標識認識が行われます. コメントを適時外すとウインドウが起動して
描画結果が表示されます.

2. Cコードの実行.

$gcc -O3 -o road_sign road_sign.c

とタイプしてコンパイルを行った後,

$./road_sign

としてください.

5. 最後に
完全版が公開できず申し訳ございませんでした. 時期が来れば公開できると思います(たぶん…).

-----------------------------------------------------------------
中原　啓貴(東京工業大学)
-----------------------------------------------------------------