iPhoneとAIでマスクしている人を判別する
現在コロナウィルスが猛威を奮っております。ITパワーで何かできないものでしょうか。
開発環境
- XCode iOS Swift
- Vision Framework
iOSで顔の検出ができます。
- CoreML Framework
iOSで学習モデルを扱います。
- Turi Create
MACで学習モデルを作成します。
画像判別のまとめ
iOSで顔の検出ができます。
iOSで学習モデルを扱います。
MACで学習モデルを作成します。
機械学習にはモデルが必要です。Inception v3という公開モデルには1000個のカテゴリーが入っています。マウスであったり、コンピューターキーボードであったり、PCモニターの前に座った人をバーバーと判別したりします。
結果は、全てのカテゴリーを足して100になるように出ます。ABCDEの5つある場合、A80、B10、C10、D0、E0、のように「強いて言えばどれか」という結果になります。
なので、特定のモノを判別させたければ、違うモノを判別する必要があります。
顔検出と顔判別は以前の記事にあります。
iPhoneで顔認識 - Qiita
学習モデルの作成
今回はマスクするしないの2つだけです。結果はMask80%、None20%のようになります。MaskフォルダとNoneフォルダに顔写真をいっぱい入れて、pythonを実行して学習モデルを作成します。
import turicreate as tc
import os
data = tc.image_analysis.load_images('train', with_path=True, recursive=True)
data['label'] = data['path'].apply(lambda path: os.path.basename(os.path.dirname(path)))
data.save('Chicken.sframe')
train_data, test_data = data.random_split(0.9)
model = tc.image_classifier.create(train_data, target='label', max_iterations=100)
predictions = model.predict(test_data)
metrics = model.evaluate(test_data)
print('metrics=' + str(metrics['accuracy']))
model.save('Chicken.model')
model.export_coreml('Chicken.mlmodel')
実験
全画面を判別するよう修正しました。
日本人限定、女性限定、正面限定、白マスク限定(試行錯誤しました)
一応下のサンプルはフリー素材使っています。
結果
マスク判定が99なのがおかしいです。不明なものはすべてマスクになっている模様。作業の途中で悟りました。もっと他にいい方法があるはず。
ソース
全画面を判別するよう修正しました。
日本人限定、女性限定、正面限定、白マスク限定(試行錯誤しました)
一応下のサンプルはフリー素材使っています。
結果
マスク判定が99なのがおかしいです。不明なものはすべてマスクになっている模様。作業の途中で悟りました。もっと他にいい方法があるはず。
動かすにはmodelを作成する必要があります。
https://github.com/koji4104/VisionCoreML
まとめ
iPhoneで画像の機械学習を行うアプリは、いろいろ作り直して今回で3つ目です。判別しやすい画像や、トレーニング画像の集め方など、少しづつコツが掴めたと思います。
今回あまりうまくいきませんでしたけど、仮にマスクの判別がうまくいったとして、それからどうするかも課題です。アプリ側で一般的なCMSと連携できる機能があればいいかなと思います。
Author And Source
この問題について(iPhoneとAIでマスクしている人を判別する), 我々は、より多くの情報をここで見つけました https://qiita.com/koji4104/items/c481f791edb8285b2cfd著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .