🐷

いろんなHLAC紹介します

2022/08/01に公開

はじめに

弊社AIチームでは、2週間に一回程度の頻度で勉強会を行っています。

例えば、SIMD命令で実装した部分の内容理解とかです。

次回、勉強会の発表担当を決める際に「HLAC以外にもなんとかLACってあるじゃないですか?そのあたり、詳しい解説欲しいです。」という要望がありまして、折角の機会なので勉強会資料を兼ねて文書化する事にしました。

HLAC基本ファミリー

弊社ではお客様を訪問した際、「HLACは25種類のマスクパターンを使って特徴量を計算しておりまして~」みたいな説明を良くしています。

しかしながら、仮面ライダーと一言でいっても1号とか2号とかV3とかいるように、HLACにも色々な派生手法が存在します。まずは、基本的な手法について紹介します。

2値HLAC

最も基本的な手法です。

インターネットで情報検索すると見つかるのはだいたいこの手法です。
背景輝度値を0、前景(検査対象)輝度値を1として、下記の様な画素間の相関パターンから特徴量を計算しています。


詳細は弊社のつよつよエンジニアが記事を作成しているので、そちらをご覧ください。

世界一やさしいHLAC入門!(間違い探し編)

濃淡HLAC

2値HLACでは画素値が0 or 1となっている前提となっており、下記の様なマスクパターンは同値となり省略されています。

しかしながら、画素値が[0 255]となるグレースケールでは上記マスクパターンは別値となります。これによって、マスクパターンが25種類から下記に示す35種類に拡張されます。

カラーHLAC

カラーHLACは画素値をRGB(HSVなど別の色空間でも問題ない)として、相関パターンの計算を行っていきます。
RとGの相関といった色間の相関も考慮して計算していくため、特徴量の次元数は700次元オーバーとなります。
次元数圧縮のために、2次の相関を計算せず下記の様な1次の相関までに限定するやり方やR,G,Bの各成分で濃淡HLAC特徴を計算し合成するようなやり方もあります。

マスクパターンの工夫

マスクパターンの取り方を工夫して、タスクにより適した特徴量を計算する事も可能です。

反転・回転不変化

HLAC特徴量を位置不変ではありますが、回転や反転に対する不変性はありません。
下記の様に、マスクパターンをグルーピングして同一要素として扱う事で回転や反転に対する不変性をもたせる事も可能です。(Group5の部分、🤔となるかもしれませんが45°回転するとこんな感じの整理になります。)

勿論、グルーピングのルールを変更する事で回転に対する不変性とか、反転に対する不変性のみをもたせるといった事も可能です。

線分特化

これはクラック(連続した線状の画素値の連なり)を検出したいなと思った際の工夫です。
検出したいクラックの長さを定義して、下記の様な感じでマスクパターンを生成する手法です。
想定検出対象が長くなるほど、マスクパターンも増大していくというデメリットがあります。

輝度値のベクトル化

基本的な考え方

話を単純にするため、一次元のデータ列(1,4,1,4,1,4・・・・)と(2,2,2,2,2,2・・・)を例にします。
これらのデータに対して、隣り合う2点の相関を取ると1×4=2×2=4となり、二つのデータ列の違いを特徴量として表現できません。
このデータ列の違いを特徴量表現するための工夫として、各数値を3bitのビット列で考えるとどうでしょうか?
1,4,2の各画素値は
A=1=(0 0 1)
B=4=(1 0 0)
C=2=(0 1 0)
と表現されます。
このビット列をベクトルとして、マスクパターンの積和演算を行うと

のようにデータの違いを表現する事が可能です。
ただ、1マスクパターンあたりの情報量が増えるためサイクルタイムや計算資源と相談して諸々工夫をしていく必要があります。

CILAC

この方法は色情報をもとに輝度値を量子化ベクトル化して、HLAC計算を適用する手法です。
例えば、RGBの色空間上に下記の様なC0~C6の代表点を設けます。そして、各画素値がどの代表点に近しいかクラスタリングし、その結果を7bitの配列で表現し特徴量計算を行います。

具体例でいくと(R,G,B)=(128,128,128)は色空間の中心にあるC0にクラスタリングされます。これを7次元表現の配列(0 0 0 0 0 0 1)のような方たちで表現します。

こちらの手法は論文が公開されています。
COLOR IMAGE FEATURE EXTRACTION USING COLOR INDEX LOCAL AUTO-CORRELATIONS

GLAC

こちらは輝度勾配をもとに輝度値を量子化ベクトル化して、HLAC計算を行う手法です。
図のように着目ピクセルの輝度勾配情報を量子化表現します。(この図では近しい2つのクラスタに重み配分して量子化表現しています。)

こちらの手法も論文が公開されています。
Image Feature Extraction Using Gradient Local Auto-correlations

おわりに

まとめ

今回は様々なHLAC計算手法について紹介致しました。
一言でHLACといっても、ドライブ、ゴースト、エクゼイトのように色々あるんだという事がわかったと思います。
HLACは静止画像に対する特徴量計算手法ですが、動画像への適用方法としてCHLAC、音への適用としてFLAC、多チャンネル時系列データへの適用としてHLICなどもあります。
これらについては、またの機会に解説できればと思います。

AIエンジニア募集しています。

アダコテックではHLACをはじめとした技術を活用し、製造業における検査の自動化を推進しています。
機械学習や画像処理に強いエンジニアの積極採用を行っていおりますので、興味のある方は下記リンクをご覧ください!
まずはカジュアルにとか、オフィス見学してみたいなゆるい感じでもオーケーです!

RECRUIT | 株式会社アダコテック

Discussion