Dataikuで豆の葉の病状を自動判別してみた

(この記事は2023年7月時点で執筆されたものです)

1.はじめに

Dataikuではテーブルデータに対する処理だけでなく自然言語処理や時系列解析、画像処理に関する機械学習もノーコードで実施できます。

今回は病変した豆の葉と健康な豆の葉の状態がラベル付けされた画像データをもとに機械学習を用いて分類器を作成し、豆の葉の病類の自動判別を目的とした画像分類に挑戦してみました。

なお、今回はDataiku Accademy内にあるラーニングコースをもとに画像処理の機械学習を実施しました。

Image Classification and Object Detection without Code

https://academy.dataiku.com/path/ml-practitioner/image-classification-with-visual-tools-open

2.プロジェクトの作成

画像分類に入る前にDataiku上で作業をするための場所であるプロジェクトというものを作成します。

NEW PROJECTをクリックすると以下のようなタブが出てきます。

 

DSS tutorialsをクリックすると、下記の画像のようなTutorialの選択ページから今回はML Practitionerを選択し、Image Classification without Codeを選択します。

 

プロジェクトが作成できると、画像ファイル(bean_images_train,bean_images_test)が既にアップロードされた状態で始まります。

 

このデータセットの中身はMakerere Universityの人工知能研究所のプロジェクトで、画像分類で豆類の病気の特定を支援するために用意されたものです。

https://github.com/AI-Lab-Makerere/ibean

訓練データであるbean_images_trainのフォルダには三つのサブフォルダがあります。

 

それぞれに豆の葉の画像があり、健康な葉(healthy)、豆さび病の葉(bean rust)、角斑病の葉(angular leaf spot)の三つの状態が画像データにラベル付けされています。

健康な豆の葉

豆さび病の豆の葉

角斑病の豆の葉

分類器を作成するまえに、ラベル付けするのに必要となるtargetを設定する必要があります。

Visual recipesList Contentsをクリックします。

 

クリックすると次のようなページが現れます。

CREATE RECIPEをクリックして、List Contentsの作業に移ります。

 

Folder level mapping example を見ると階層ごとにフォルダ名がついています。

今回使うデータセットも同じような構成なのでexampleと同じようにフォルダ名をカラムとして出力したいとおもいます。

第一階層をtargetというカラム名で出力したいのでFolder level mappingで赤枠のように設定して実行します。

 

実行すると次のようなカラムが出力され、targetのカラムにはhealthyと豆の葉の状態が出力されています。

 

これで各画像ごとに豆の葉の状態(healthy,rust,angular_leaf_spotの3つ)がラベル付けされたことになります。

3.分類器の作成

訓練データを使って分類器を作成します。

赤枠で囲まれたフォルダアイコンをクリックすると画面右に下記のようなページが出現します。

LABというタブがあるのでクリックします。

クリックすると機械学習を簡単にやってくれるアイコンがでてきます。

今回は画像分類が目的なのでImage Classficationを選択します。

Image Classficationを選択し目的変数にtargetを入力します。

targetを選択したらImage folder bean_images_trainを選択し、CREATEをクリックします。

CREATEをクリックすると豆の葉の状態がラベルづけされた画像が表示されます。

豆の葉の状態がどのくらいの割合で存在するかも表されています。

Trainをクリックして学習を開始します。

 

学習が終わったら、モデルをデプロイします。

今回はデフォルトで設定されているImage classficationのみを使用しました。

 

モデルをデプロイしたら、訓練データと同じようにテストデータもList contentsで処理を実行します。

 

処理を実行したらテストデータを作成した分類器にかけてみます。

Image classification on bean_images_train_filesをクリックすると画面右に下記画像のようなページが出現します。

赤枠で囲まれたアイコンをクリックして画像分類を実行します。

 

実際にテストデータを分類器かけてみると下記の画像のように画像に豆の葉の健康状態がラベルづけされました。

 

3.まとめ

今回はDataiku上でノーコードで画像分類に挑戦してみました。

Dataikuを使えばデータ整形から分類器作成を含め画像分類までの作業が一時間程度で難なくできることを実感しました。

Dataikuでは画像分類だけでなく物体検知も手軽にできるとのことなので次回はDataikuで物体検知に挑戦してみようと思います。

ShtockData

お問い合わせフォーム

お問い合わせ項目を選択してください