🍅

農系IoTメディア Roboflowを使ってトマトを検出してみよう

2024/10/07に公開

記事の目的

お手軽に画像認識系のAIを使ってみたい非エンジニアの人向けの記事です。

プログラムを書かなくても、AIモデルを自分で開発しなくても、物体検出する方法を解説します。

今回の目標

  • Roboflow Universeでトマト検出のAIモデルを探します。
  • 探したAIモデルを利用して、画像ファイル内のトマトを検出し、その結果をテキストファイルに保存します。

Roboflowとは

Roboflowは、初心者でも簡単に使えるコンピュータビジョン(画像認識)のプラットフォームです。具体的には、物体検出や画像分類、セグメンテーションといった画像関連のAIモデルを作成、トレーニング、展開するためのツールを提供しています。これにより、専門的なプログラミングスキルがなくても、画像データを使ってAIモデルを構築し、さまざまな業務やプロジェクトで利用できるようになります。

Roboflow Universeとは

Roboflow Universeは、世界中のユーザーが作成したコンピュータビジョンのプロジェクトやデータセットを共有できるオープンプラットフォームです。ここでは、さまざまな分野や目的のために作成された多数の画像データセットやAIモデルが公開されており、誰でもこれらを利用したり、自分のプロジェクトに役立てたりすることができます。

Roboflowのアカウント作成

Googleアカウントがあれば簡単に無料版のアカウントを作成できます。以下のリンクからアカウントを作成しましょう。
https://roboflow.com/

適当にworkspace名を決めてPublic Planを選択します。今回はworkspaceは使いません。

トマト検出モデルを探す

Roboflowのサイト内の左下のUniverseを開きます。

以下の検索画面が表示されるのでtomatoと入力してトマト検出モデルを探してみます。

今回は物体検出のモデルを探したいので、「Has a Model」にチェックを入れて、Project Typeは「Object Detection」を選択します。

まともなAIモデルを探すコツ

たくさんのトマト検出プロジェクトが表示されますが、大半は使い物にならないです。ここで、まともに使える良いモデルを探すコツを紹介します。

  • imagesの数が多いこと
  • ラベルにまともな名前がつけられていること
  • トップ画が自分の試したい画像に似ていること

下図のプロジェクトはimagesが1000以上あり、ラベルは「ripe tomato」「unripe tomato」と名付けられていて、栽培中のトマトを撮影した画像がトップ画にあるので、今回の目的に使えそうです。

プロジェクトページを開くと学習に使われた画像や生成されたAIモデルの情報が見られます。

きちんとアノテーションされていることがわかります。

トマトを検出する

プロジェクトページの左側メニューのModelを開くとモデルをお試しできるページが表示されます。画像ファイルのアップロード、YouTubeの動画、自分のパソコンのウェブカメラの映像、などに対して簡単にトマト検出を試すことができます。

Select Fileボタンを押して自分の画像ファイルをアップしてみましょう。完璧ではないですが、それなりの精度でトマトを検出できました。

画面右側上部のConfidence Thresholdのバーを動かすとトマトの検出数が変化します。これはAIの確信度を表しており、どの程度の確信をもって認識しているかの指標です。

結果を保存する

何らかの業務で使うために、トマトの検出結果をテキストファイルに保存します。

画面右下のCopyボタンを押すとJSONというデータ形式で検出した結果のテキストをコピーすることができます。JSONは馴染みがないかもしれないので、非エンジニアの人向けにCSVファイルに保存する方法を紹介します。

例えば、以下のサイトを開いてコピーしたJSONデータを貼り付けます。
https://jsontocsvconv.com/

下の方のResultの左側のダウンロードボタンを押すとCSVファイルとして保存することができます。CSVファイルをExcelなどで開いてみると、検出したトマトの位置や座標が保存されていることがわかります。

このような結果を利用することで、例えば、トマトの数を数えたり、定点カメラでトマトのサイズの成長を記録したり、様々なアプリに使えるかもしれません。

補足

Pythonなどプログラムを書けば、画像ファイルの読み込みから結果のCSVの保存まで自動化することができます。そのサンプルコードなどもRoboflowで提供されています。いつか別の記事で紹介したいと思います。

今回は他の人の開発したAIモデルを使いましたが、Roboflowのworkspaceに自分の集めた画像をアップロードしたり、他の人のプロジェクトをfolkしたりして、自分の目的に合ったAIモデルをつくることができます。これらについても、いつか別の記事で紹介したいと思います。

以上

Discussion