LoginSignup
4
0

More than 5 years have passed since last update.

Firebase ML Kit で不適切画像の検出を試した話

Last updated at Posted at 2018-06-13

少し遅くなりましたが、Google I/O 2018 で発表された Firebase ML Kit が面白そうだったので触ってみました。今回は不適切な画像の検出を試してみました。結論から言うと、Firebase ML Kit ではまだ出来なかったのですが、せっかくなので備忘録として残しておきたいと思います。

概要

Firebase ML Kit は Google 機械学習の専門知識を Android や iOS アプリに簡単にもたらせる事ができます。現在は主に画像認識機能が提供されています。

機能

利用できるのは下記の機能です

  • テキスト認識
  • 顔検出
  • バーコードスキャン
  • ラベリング
  • ランドマーク認識

これに加え「不適切画像検出」があると最高だったのですが、無いので「ラベリング」機能を使って試してみました。

方法

画像の認識の方法は、端末内のモデルを使う方法と Google のサーバ内のモデルを使う方法が用意されていて、それぞれの利点は下記の通りです。

  • 端末モデル
    • 無料
    • 400種類のラベリング
    • Knowledge Graph entity ID support
  • クラウドモデル
    • 最初の10000ユーザーまで無料
    • 10000種類以上のラベリング
    • Knowledge Graph entity ID support

Knowledge Graph entity ID は Google の Google Knowledge Graph Search API で使われている entity ID の事だと思います。

試してみた

今回は、無料という理由から、端末モデルを使う方法を試してみました。

ゾンビ画像を用意してドキュメントに沿って実装してみると、下記のラベルが得られました。

let labelDetector = Vision.vision().labelDetector()
let image = #imageLiteral(resourceName: "zombie")
let visionImage = VisionImage(image: image)
labelDetector.detect(in: visionImage) { (labels, error) in
    guard error == nil, let labels = labels, !labels.isEmpty else {
        // Error. You should also check the console for error messages.
        // ...
        return
    }

    // Labeled image
    // ...
    for label in labels {
        let labelText = label.label
        let entityId = label.entityID
        let confidence = label.confidence
        print(labelText)
        print(entityId)
        print(confidence)
    }
}
Skin
/m/06z04
0.942024
Hand
/m/0k65p
0.933021
Flesh
/m/02p16m6
0.748568
Beard
/m/015h_t
0.724764
Dog
/m/0bt9lr
0.558683
Event
/m/081pkj
0.53936
Jacket
/m/032b3c
0.531936
Sitting
/m/015c4z
0.525712
Fun
/m/0ds99lh
0.514916
Nail
/m/023j4r
0.502204

終わりに

VisionLabelDetector から取得したラベルから、不適切画像と判断するのは難しそうですが、Google Cloud Vision API を利用すると今回やりたかった事が実現出来るようです(チュートリアル)。今後、ML Kit でも出来るようになることを期待しています!

4
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
0