Ignitarium-logo
Ignitarium-logo

  2021.08.18

コンピュータビジョンとAIベースの踏切検出

I過去40年間で、米国の踏切で22,000人以上が死亡しました*。 しかし、データによると、踏切にゲートとライトを設置、信号機のタイミング調整、公教育の強化で、時間の経過とともに踏切は安全になっています。 機械学習技術や人工ニューラルネットワークに基づくコンピュータービジョンアプリケーションのなどのテクノロジーを採用している有名企業や新興企業がこれらの問題に取り組んでいます。

この記事では、線路の安全性向上に不可欠なアプリケーションであるAIを利用した踏切の検出について説明します。

Fig 1: 踏切の検出, Source: Operation Lifesaver, a nonprofit focused on railroad crossing safety

踏切

鉄道の交差点は、車道が線路と交差する場所です。 この定義は、通行権または予約済みの線路がある鉄道を道路が交差する場合も適用されます。鉄道の交差点の名前は、railway level crossing(踏切), grade crossing, road through railroad, criss-cross, railroad crossing, train crossing などです。鉄道の交差点の概要については、Railroad Intersection を参照下さい。

Image Source

道路検出

道路、車線、レールの検出に、画像処理 [Image Processing on Road Detection] と深層学習ベースの手法 [Road detection based on simultaneous deep learning approaches] の両方を使用した、多くの方法が使用されます。 ただし、鉄道と道路が混在するこの状況に適用できる単一のソリューションについては言及されていません。 したがって、このユースケースに対処する方法は、踏切のレール部分を効率的に検出できる単一の手法を使用することです。

Image Source

データの準備

データ準備は、処理と分析の前に生データをクリーンアップして変換するプロセスです。 これは処理前の重要なステップで、データのラベル付け、データの再フォーマット、データの修正、データセットを組み合わせてデータを充実させることが含まれます。 この場合、データはいくつかの鉄道ビデオからフレームをダンプし収集します。 次に、対象領域(ROI)内の道路部分に、ラベル付けツールを使用してラベル付けします。 これにはいくつかのラベリングツールが利用可能です。 ラベリングツールの1つに [LabelMe] があります。

セマンティックセグメンテーション

セマンティックセグメンテーションは、画像内のピクセルを事前定義されたクラスに分類するタスクです。 セマンティックセグメンテーションには、道路標識の検出、自動運転車の運転可能エリアの検出など、多くのアプリケーションがあります。ケラスセマンティックセグメンテーションの概要は、Semantic SegmentationA Beginner’s guide to Deep Learning based Semantic Segmentation using Keras にあります。

セマンティックセグメンテーションネットワークは、エンコーダデコーダアーキテクチャに従います。 よって最初のステップは、問題の定義ごとに適切なエンコーダーとデコーダーのネットワークを選択することです。 通常ベースネットワークにはResNet、VGG、MobileNetなどの標準モデルが選択されます。 モデルがセマンティックセグメンテーションのタスク用にトレーニングされると、エンコーダーはオブジェクト、およびその形状とサイズの情報を含むテンソルを出力します。 デコーダーはこの情報を取得し、セグメンテーションマップを作成します。 セマンティックセグメンテーションネットワークのさまざまなモデルアーキテクチャに関する詳細はこちらにあります。 A Simple Guide to Semantic Segmentation

ベースネットワークを選択したら、適切なセグメンテーションアーキテクチャを選択する必要があります。 FCN、SegNet、UNet、PSPNetなど、いくつかのセグメンテーションアーキテクチャをセマンティックセグメンテーションに使用できます。

SegNet

SegNetは、エンコーダデコーダアーキテクチャに従います。 エンコーダーには、VGG-16の13の畳み込み層があります。 2×2の最大プーリングを実行している間、対応する最大プーリングインデックスが保存されます。 そしてデコーダーはこれを使用して非線形アップサンプリングを実行します。

Image Source

FCN (Fully Convolutional Network) 

FCNネットワークはCNNのエクステンションです。 通常のCNNでは任意のサイズの画像を撮影することはできませんが、 この制限はFCNで克服されます。 FCNには、任意のサイズの入力で予測を行う機能を提供する畳み込み層とプーリング層のみがあります。3つのバリアントは、FCN8、FCN16、FCN32です。 FCN8とFCN16は、スキップ接続が使用されます。 FCNネットワークの詳細については、Fully Convolutional Network を参照してください。

Image Source

実装

セマンティックセグメンテーションネットワークのトレーニングとテストは、Kerasライブラリを使用します。 Kerasセグメンテーションには、必要なユーティリティがあります。

ROIの生成

私達は対象領域(ROI)内での検出に焦点を合わせています。 ROIはマウスインタラクションOpenCvを使用して、画像に4点変換を適用することで描画できます。 前述のように、LabelMeを使用して、ROI内の鉄道交差点のコンクリート部分にラベルを付けます。 結果は json ファイルで出力されます。

トレーニングとテスト

LabelMeの json を使用してマスク画像が生成します。これらのマスク画像はさらなるトレーニングに使用されます。 resnet50_segnet、mobilenet_unet、resnet50_unetなどのいくつかの事前トレーニング済みエンコーダ-デコーダネットワークが利用可能であり、要件に基づいて選択できます。 カスタムベースモデルは、これらのマスク画像から特徴ベクトルを効率的に生成し、これらの特徴は、リザルトベクトル生成のためにカスタムデコーダーネットワークに提供されます。 カスタムモデルを使用してテストしている間、出力は道路部分に対応するマスクになり、これらの予測されたマスク画像は、OpenCv を使用して元の画像にマッピングできます。

精度

私たちのカスタムセマンティックセグメンテーションネットワークは、99%の精度で鉄道交差点の道路部分を効率的に検出します。

結論

説明したシステムは、鉄道の交差点エリアの道路部分を効率的に検出します。 得られた結果は、検出率の点で非常に有望であり、推論時間も短くなっています。 鉄道網が世界中に広がるにつれて、交差点、ジャンクション、踏切の数が増え、潜在的な安全上の問題が発生します。 このブログで紹介されているAIベースのモジュールは、踏切の安全性を向上させるのに役立ちます。

英語ページ

e-Book

eBookの無料ダウンロード

DNNモデルのハードウェア・アクセラレーションに
FPGAを選択する6つの理由