女の子からLINEIDを聞き出すVisualRecognitionの使い方
はじめに
この記事はTeratailのBulemixアドベントカレンダーに参加しています。
ちょうど、pepperくんに接客してもらおうと、Bluemixを調べていたため参戦しました。
今回は、IBMのBluemixにあるVisualRecognitionとpepperくんを用いることで、
女の子からLINEIDを聞き出す方法を紹介します。
概要
では、簡単に女の子からLINEIDを聞き出すフローを示します。
ペッパーが写真を撮る
↓
写真をVisualRecognitionで解析
↓
女の子、かつ18〜27歳であるか判別(ご自身の好みで)
↓ ↓
true false
↓ ↓
ペッパーがLINEIDを聞く 適当に対応
とても分かりやすいですね。
VisualRecognition
カタログページより、
画像コンテンツに含まれる意味を検出します。 場面、対象物、顔のイメージ、およびその他のコンテンツを分析します。既製のデフォルト・モデルを選択するか、独自のカスタム種別を作成します。 コレクションに含まれる類似のイメージを検出します。 イメージやビデオ・フレームの画像コンテンツを解析し、何が起こっている場面なのかを理解するためのスマート・アプリケーションを作成します。
ふんふん、実際どんな感じ?
使い方
APIReferenceや、Demoページで大体のことは分かるかと思います。
こんな感じにできるようです↓
入力画像例
出力例
{
"images": [
{
"faces": [
{
"age": {
"max": 54,
"min": 45,
"score": 0.372036
},
"face_location": {
"height": 75,
"left": 256,
"top": 93,
"width": 67
},
"gender": {
"gender": "MALE",
"score": 0.99593
},
"identity": {
"name": "Barack Obama",
"score": 0.989013,
"type_hierarchy": "/people/politicians/democrats/barack
obama"
}
}
],
"image": "prez.jpg"
}
],
"images_processed": 1
}
おぉ!
- 年齢の最大・最低値
- 画像内の顔の場所
- 性別
- (有名人であれば名前)
- それぞれの信頼値
が出てきてますね。
人の顔以外だと、物体検出などが行われるようです。
Pythonでリクエスト
pepperはPythonで動くようなので、Python初心者が書きました。
変なところあったら言ってください。
# -*- coding: utf-8 -*-
import json
from os.path import join, dirname
from os import environ
from watson_developer_cloud import VisualRecognitionV3
import os.path
# 適宜書き換え
api_key = ''
image_name = ''
visual_recognition = VisualRecognitionV3('2016-05-20', api_key={api_key})
jsonData = visual_recognition.detect_faces(images_file=open({image_name}))
print(json.dumps(jsonData, indent=2))
faces = jsonData['images'][0]['faces'][0]
gender = faces['gender']['gender']
age_min = faces['age']['min']
age_max = faces['age']['max']
print(gender)
print(str(age_min) + '~' + str(age_max) + '歳')
# pepperにやらせる
if 18 <= age_min and age_max <= 27:
print('LINE ID教えて?')
else :
print('やあ、ぼくpepper')
jsonからの取り出しが無理矢理感しかない...
試しに
api_keyとimage_nameに値を入れてみます。
入力画像(嫁)
結果
{
"images": [
{
"image": "kanna.jpg",
"faces": [
{
"gender": {
"gender": "FEMALE",
"score": 0.880797
},
"age": {
"max": 24,
"score": 0.502411,
"min": 18
},
"face_location": {
"width": 140,
"top": 66,
"left": 107,
"height": 160
}
}
]
}
],
"images_processed": 1
}
FEMALE
18~24歳
LINE ID教えて
うん、完璧。
あとはpepperくんにやらせるだけ!
pepperにやらせる
長くなってしまう&pepperのバグが直っていない(助けて)ので別の記事で
ごめん
∨
URL:
最後に
TeratailのアドベントカレンダーにBluemixのVisualRecognitionを使い参加させてもらいました。
画像の処理に関して、とても簡単に扱えて正直ビビりました。
pepper×watsonというCMもやっていたので、簡単に連携できるようになってくれたらいいな、と思います。
クリスマスまでに完成させてLINEIDほしい(切実)
明日はtokutoku393さんのエントリです。
Author And Source
この問題について(女の子からLINEIDを聞き出すVisualRecognitionの使い方), 我々は、より多くの情報をここで見つけました https://qiita.com/fsyuu/items/7848f41877f8fa6a51f9著者帰属:元の著者の情報は、元の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 .