農系IoTメディア Roboflowを使ってトマトを検出してみよう
記事の目的
お手軽に画像認識系の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