私が支援をする製造業の企業において、生産工程に各社で工夫して自動化装置を導入するケースを目にすることが多くなりました。
中でも特に多いのが、画像認識による検査工程の自動化です。
生産工程から出てきた製品をカメラ等で認識し、良品と不良品を見分けるというのが一般的です。
AIを使った検査システムを提供するベンダーも増えましたが、中にはPythonのライブラリを使って自作している会社もあります。
そうした会社を支援するスキルを高めるために、私自身もPythonで画像認識プログラムを作ってみました。

顔認証プログラムを作成

PythonとOpenCVをインストールした後、ChatGPTにソースコードを作らせてみました。

いろいろと試行錯誤してデバッグしたところ、何とか動くようなものができました。

しかし精度はまだまだです。

認証の材料となる画像を5つしか用意していないので、実用化にはまだまだ程遠い精度です。

使用したライブラリ

ChatGPTに異なる画像認識方法でのコーディングを指示したところ、以下のパターンのソースができました。

・OpenCVのカスケード分類器を使用
CascadeClassifier で顔認識し、matchTemplateで比較

・OpenCVのSIFT特徴量を検出
SIFT特徴量抽出器(SIFT_create)を計算(detectAndCompute)し、特徴点をマッチングする(BFMatcher、knnMatch)

・顔認識のライブラリface_recognitionを使用
カメラ画像の顔のエンコーディングと保存した画像の顔のエンコーディングを比較

まだそれぞれの特徴等は理解できていないのですが、おそらくこれらは顔認証に適した方法だと思われます。

他の画像認識への応用

画像認識と言えばAIを使うことが多いですが、今回作成したプログラムではAIは使用していません(多分)。
人間の顔は世界共通なのでライブラリも豊富にあり、AIを使わなくてもある程度のものは作れそうです。
しかし工場で生産する製品は個別なので、画像認識ルーチンを自作する必要があります。
良品および不良品の画像データを多数用意して、自社製品にあわせてAIに学習させる必要があります。
AIは一から開発する方法以外にも、最近は分かりやすいI/FのAIルーツ(AzureのCustom Vision等)があります。

今回の取り組みでPythonでAIを制御する方法は理解できたので、今後は最適なAIモデルや必要な学習量等の調査を続けてみます。
画像認識をはじめ、自社業務へのAI導入を検討されている方はご相談ください。