2020年8月14日(金) 10:51 JST

タイルの自動施工に向けたタイル色分類 -AI(機械学習)メモ vol.2

  • 2020年4月15日(水) 15:03 JST
  • 投稿者:

AI(機械学習)メモ vol.2では、Deep Learning版の画像分類をタイル施工におけるタイル色分類に導入した例(タイルパターンの設計と自動施工に関する研究、日本建築学会大会(北陸)、学術講演梗概集、(社)日本建築学会、2019.9)について紹介します。下図のように多関節ロボットでタイル施工をしてみる、という研究で何色かのカラータイルを並べモザイクタイルを作ることを試したのですが、タイルを拾い集める際に、そのタイルの色を分類することにDeep Learningを適用した、という例です。所謂CNN(Convolution Neural Network:畳み込みニューラルネットワーク)です。この画像は犬?猫?の代わりに、赤タイル?青タイル?という分類をしています。


ロボット周囲の環境は上図のようになっており、カメラからはタイル置き場の様子は下図(左:分類を終えラベルがついていますが…)のように捉えることができます。この映像に対し、ひとまず四角形を探すよう処理を行うと下図(右)のように各タイルを切り出したイメージが得られます。これらについて何色のタイルか分類し、行うというのがここでの問題です。


まずは従来のアプローチについて。タイルを切り出したイメージはカラーなので、サンプリングした点(例えばタイルイメージ中心)のRGB値に対して条件分けをすれば分類できそうです。例えば赤、緑、青、黄のタイルでは以下のような条件分けになるでしょうか。

  • R>0.8, G<0.2, B<0.1→赤
  • R<0.2, G>0.8, B<0.1→緑
  • R<0.2, G<0.1, B>0.7→青
  • R>0.8, G>0.5, B<0.3→黄

このルールによればサンプリングした点のRGB値が(1.0, 0.94, 0.2)であれば黄色のタイルと分類されます。しかしながら、例えばサンプリングした点がたまたま反射で白っぽくなっていたら、などと考えると、 「R>0.8, G>0.8, B>0.8」であれば数ピクセルずらした点をサンプリングしなおして~といった処理が追加されます。N点サンプリングして中央値を使う、とかそんな処理もいいかもしれませんが、ちょっとしたばらつきや外れ値のようなものを扱うために色々と処理が増えていきます。このような手法は後述する機械学習的アプローチに対し、色々なルール(条件)を設定していくことからルールベースと呼ばれます。また、この方法を用いたタイル分類も初期に行ってみたのですが、まずまずの精度で適切な色のタイルを拾い上げるためにはけっこう処理に工夫が必要だった記憶があります。ちなみにこのような色の分類はRGBでなくHSVで処理したほうが良いようですので、実際にはHSBで処理していました。

CNNで分類する手法では教師あり学習用い分類を行っています。下図(左)のように同色のタイルを並べ撮影し、 切り出したものについて(反転したり回転したり明るくしたり暗くしたり)水増しし、下図(右)のように教師データを用意します。この例では水色のタイルですが、同様に他の色のタイルについても同様に、これは赤、これは緑、と学習用に正解とイメージのセットを用意します。

下図のようなモデル(ネットワーク)で学習を行います。学習を行うとニューラルネットワークの中でどこに着目すると分類が行えるか重みが更新され、自動的に分類ルールが構築されていきます。この例では、入力したイメージ(64x64ピクセルの3チャンネル)が畳み込まれ、1024要素の特徴量ベクトルに圧縮され、このベクトルからはMLP(Multi Layer Perceptron:三層以上の全結合層のネットワーク)を経て、n要素のベクトルが計算されます。分類問題の場合は、nが分類したいクラス数となり、ここではタイルの色の種類になります。このn要素のベクトルはsoftmax関数と呼ばれる関数を経ることで、最終的には入力した画像がそれぞれのタイル色である確率が出力されます。例えばn = 3(赤、青、緑)の場合、赤タイルのイメージを入力すると(0.9, 0.06, 0.04)といった出力が得られ、赤タイルである可能性は90%と推定される、とかそういった流れです。上述した従来の手法(ルールベース)ではXXのときはXXで~条件を重ねる必要がありましたが、機械学習的アプローチではこれを自動的に学習してくれます。この点が最大の違いといえるでしょうか。

学習後のモデルでは、ほぼ間違いなくタイルの分類が行えるようになり、実験では下図のようなタイルパターンを並べる実験を行いましたが、色を間違うことなく施工することができました(ただし実験ではタイルを模したアクリル板も併用して実験しています)。

補足しておきますと、タイル色の分類の場合は他にも良い分類の仕方がありそうです。例えばルールベースな方法であっても、教師データのRBG値を三次元空間にプロットし境界を求めておけば色のばらつきについてはうまく処理できるかと思っています。CNNの適当が最適、というわけではないと思われますが…、一応うまくいった∧ルールベースと機械学習的アプローチの違いがわかりやすく表れている、ということで両者を比較しつつ紹介してみました。次回は深層学習に関する書籍は分類モデルに続いて解説されていることの多いオートエンコーダ、これを用いた設計情報の管理について紹介したいと思います。

  • タイルの自動施工に向けたタイル色分類 -AI(機械学習)メモ vol.2
  • 0 コメント
  • アカウントの登録

以下のコメントは、その投稿者が所有するものでサイト管理者はコメントに関する責任を負いません。