学ぶ

2024.08.02

Akira

OpenCV を用いた、マップデータから施設形状のポリゴンを自動抽出するプログラムの開発/ unerryインターンレポートvol.9

OpenCV を用いた、マップデータから施設形状のポリゴンを自動抽出するプログラムの開発/ unerryインターンレポートvol.9

データサイエンスを学びながら働く 貴重なインターンシップの機会

みなさん、こんにちは!Akiraです。東京大学システム情報学の修士2年生で、unerry の AI & データサイエンスチームで長期インターンシップを行っています。

Akira「記事を見つけていただきありがとうございます」

今日は、unerry の魅力の一つである長期インターンシップ制度についてご紹介します。大学生活の中で、長期のインターンシップの機会は非常に貴重な経験です。特に、自分の専門分野と関連する企業での実践的な経験は、将来のキャリアを考える上で大切な示唆を得ることができます。私もそんな貴重な機会を得るために、先輩の紹介で unerry でのインターンシップに参加することを決めました。

unerry のインターンシップ環境

unerry は行動ビッグデータの活用に特化した素晴らしい雰囲気のあるテクノロジー企業です。私はある施設への来訪や滞在したユーザーを判別するアルゴリズムを改善するプロジェクトに参加しました。始めた頃は、先輩たちが BigQuery の使い方、SQL の書き方、そして様々な可視化ツールを使って分析結果を示す方法など、多くのことを熱心に教えてくれました。ここでの仕事環境はとてもリラックスして集中できメンバーたちは皆親切で助け合い、立場に関係なく意見を表明して議論に参加することができます。仕事において成長しやすい環境が整っています。

膨大な地理情報の整理を Python と OpenCV で自動化

施設(POI / Point of Interest)の情報を整備する仕事に取り組んでいたときのお話です。

POI の中心の緯度と経度の情報を取得し、次に地図上でその POI の輪郭を手作業で描き、最終的にそのPOIの地理的なポリゴン情報を得る必要がありました。この仕事は非常に興味深いものでしたが人間が手作業で建物のポリゴンをマッピングするため、誤差が避けられず、また数百から数千の建物をマッピングする必要がある場合、非常に反復的で時間のかかる作業となります。

ある日、私は約200のPOIの地理的なポリゴンをマッピング(作成)する作業に合計で約4時間も費やし、そして少なくともまだ400以上のPOIが残っていることに愕然としました。他のメンバーも頻繁にPOIのポリゴンの作成を行っていることが分かり、この多数のポリゴンをいかに効率的かつ正確に作成する方法を見つけるかが、私が直面した最大の課題となりました。

まず、ポリゴンの作成作業には多くの反復的なステップが存在するためマッピング作業のフローチャートを作成しました。

 

各プロセスをいかに自動化して効率化できるかどうかを考え導き出した結論が、Python と OpenCV を使って自動的にPOIの敷地・建物形状を判定し、緯度軽度として抽出するプログラムです。大まかなプロセスは以下の通りです。

  • ● データベースからPOIの緯度と経度のリストを呼び出す。
  • ● 地図上でPOIを中心とした位置を指定し、地図サービスのAPIを使用してPOI周辺の地図を画像としてキャプチャする。
  • ● 画像認識のアルゴリズムでPOIの敷地・建物形状のポリゴンの境界を検出する。
  • ● 頂点の緯度と経度は、キャプチャした画像のズームレベルに基づいて各ピクセルが対応する地理的な距離を計算し、逆算してポリゴンの頂点の緯度と経度を求める。
  • こうすることで完全に自動化されたPOIポリゴン識別プログラムのフレームワークを構築できます。

    困難を乗り越え、プログラムを実装

     

    このアイデアを先輩たちに相談したところ賛同頂き、過去の類似した試みの資料やアドバイスをもらいながら開発を始めました。

    しかし、予期しなかったいくつかの問題に直面しました。例えば、異なる地理データベース間の微小な違いによって OpenCV の境界判定が乱れることや、地図上の文字などの干渉情報による認識エラー、画像のズームレベルの誤りによる建物の輪郭の欠落といった問題には特に悩まされました。こうした時に、中々一人では解決しきれず非力さや視野の狭さを痛感しました。一人で一日中悩んだ問題も、先輩たちとの議論を通じてすぐに解決できることが多々ありました。

    最終的に、先輩たちの絶え間ない支援と助けを借りて、このプログラムはBigQueryのリモート関数として実装され、全社的に使われることとなり非常に感動しました。

    自動認識したポリゴン ※実際は衛星画像ではなくシンプルな形状レイヤーで認識させます(地図データ: ©2024 Google、画像 ©2024 Airbus, Maxer Technologies)

    しかしながら、この機能にはまだいくつかの欠陥があり、例えば、他のPOIと隣接しているPOIや、複数の建物で構成されている施設では正確に識別できない場合があり、さらに改良が必要です。

    他のPOIと隣接しているPOI(地図データ: ©2024 Google、画像 ©2024 Airbus, Maxer Technologies)

    複数の建物で構成されるPOI(地図データ: ©2024 Google、画像 ©2024 Airbus, Maxer Technologies)

    私は、このプログラムが安定して高効率な自動化ツールとなり、少しでも仲間の役に立つことを非常に楽しみにしています。このプログラムを改良する過程で自分自身も成長し、もっと貢献できるようになりたいと思います。

    成長と未来への展望

    この経験を通じて、多くの新しいスキルを習得し、チームワークの重要性を深く理解しました。また、unerry の非常に活発で自由な、結果重視の素晴らしい企業文化を実感しました。unerry は急成長しており、各メンバーにとって素晴らしい成長の場を提供しています。もしデータ処理や AI、または地理情報技術に興味があるなら、ここでのインターンシップや仕事を強くお勧めします。

    インターンは現在も募集中!! ご興味いただけた方はぜひインターン募集ページよりご応募ください!(うねりの泉編集部)

    この記事を書いたのは

    Akira

    Akira 記事一覧

    unerryでインターン中の東京大学 情報理工学系研究科に在学中の修士2年生。データサイエンティストを目指してプログラミングやデータ分析について勉強中。趣味はテニス。アイコンは小さい頃の写真です。

    SHARE THIS ENTRY

    ABOUT

    「うねりの泉」は、「リアル行動データ」活用のTipsやお役立ち情報、そして会社の文化や「ひと」についてなど、unerryの"とっておき"をご紹介するメディアです。

    POPULAR

    TAGS