3 , Android上から実行する際のサンプルを記載します。, build.gradeに下記を追記します。 Google Cloud Platformが提供している機械学習サービスの一種です。 様々な種類の画像解析を行ってくれます。 サンプルコードの実行. ) , // リファラー (許可するリファラーを設定した場合) echo "

ヘッダー

" ; ) , ドキュメントが少し分かりにくかったのでまとめてみる。 APIのパラメータ. $curl = curl_init() ; array( Google Cloud Visionのアンドロイド用サンプルプロジェクトを動かしてみたので手順を紹介します。 APIキーの取得 Cloud Vision APIの使い方まとめ (サンプルコード付き) こちらのサイトを参考にAPIキーを作成します。 APIキーの種類一覧にAndroidキーがありますが気にせずブラウキーを作成してくださ … array( Google Cloudの画像認識サービスとして「Vision API」というサービスが既に提供をされています。Vision APIは簡単に画像認識技術を利用することができ、画像から情報の検出(ラベル付け)・不適切コンテンツの検出・テキスト検出が可能なサービスです。 echo $header ; 具体的なリクエスト方法を説明していきます。基本的な3点を押さえれば、あとは自分好みに調整してリクエストするだけです。, 2016年2月現在、エンドポイントは1つだけです。このURLのkeyパラメータに、取得したAPIキーを付けましょう。, https://vision.googleapis.com/v1/images:annotate?key=[APIキー], 画像認識の対象となる、画像ファイルの指定は、基本的にbase64エンコードしたものを用います。例えばPHPの場合は、base64_encode()を使って次のように画像をエンコードできます。, 一般的なAPIリクエストは、次のようにエンドポイントにGETメソッドでパラメータを付けてリクエストを送ることで、情報を取得します。, https://endpoint.com/api?key=hoge&text=hoge&date=20160703, しかし、このCloud Vision APIの場合は、JSONでリクエスト送ります。例えば、textはhogeでdateは20160703だ、という時は、次のようなJSONを作成してリクエストするということです。, さて、JSONを相手のサーバーに送る場合のルールは1つです。ヘッダーで「送るデータの形式はJSONだぞ、コラ」ということを明示してあげましょう。データがJSONであることを明示するためのヘッダーは次の通りです。, リクエストを送る時に、このヘッダーを加えるには、PHPのcURLでは次の通り、カスタムヘッダーとして指定します。相手サーバーはこのヘッダーを確認することで、「送られたデータの形式がJSONなんだな、コラ」ということを確認できます。, 肝心のJSONはボディに含めます。JSONを送り付けるのでメソッドは当然、POSTということになります。, cURLでは次のように、オプションを指定します。こうして見ると記述が多くて嫌になりそうですが、調整すればいいのは$api_keyと$jsonと$referer(許可するリファラーを設定している場合)の部分だけです。, それでは、リクエストを送るためのJSONを作成してみましょう。PHPでは、json_encode()を利用することで、配列をJSONに変換できます。「サンプルコード」の章にあるJSONを例に取ると次の通りです。次のように、配列をjson_encode()の引数に指定していますね。, $jsonの中身は、次のようなJSON(正確には文字列)になっているんです。これを、リクエストする際のJSONとして、cURLのCURLOPT_POSTFIELDSオプションに指定すればいいということですね。JSONを手入力で書くのは、現実的にはとても大変なので、配列を作成し、それをjson_encode()でJSONに変換する手順を取るのが一番簡単です。, リクエスト用のJSONの材料となる、個々のオブジェクトをまとめてみました。これらを参考に、リクエスト用のJSONを構築してみて下さいね。, リクエストで送るJSONは、requestsプロパティに指定した配列に、リクエストの数だけ、後述のAnnotateImageRequestというオブジェクトを含める形になります。, 例えば3つの画像を認識してもらいたい場合は、AnnotateImageRequestオブジェクトを3つ配列に含めて下さい。次のような構造になります。, AnnotateImageRequestオブジェクトは、画像認識の対象となる画像の情報を含むオブジェクトです。image、AnnotateImageRequest、features、3つのオブジェクトで成り立っています。imageContextは省略してかまいません。このAnnotateImageRequestオブジェクトを、requestsの配列の中に、必要な数だけ含めます。, Imageオブジェクトは、画像のデータを示すオブジェクトです。ここで指定した画像が、Cloud Vision APIで解析されます。content、sourceの2種類のプロパティがあり、どちらかの指定が必須です。base64エンコードした画像データを指定する場合はcontentを。そうではなく、Google Cloud Storageに設置してある画像のURIで指定する場合はsourceを指定して下さい。contentとsourceの両方を指定した場合、sourceが無視されます。, ImageSourceオブジェクトは、解析対象となる画像のデータをGoogle Cloud Storageに設置してある画像のURIで指定する場合に用いるオブジェクトです。gcsImageUriプロパティに、gs://から始まるURIを指定して下さい。, Featureオブジェクトは、解析に利用するツールの種類を指定するためのオブジェクトです。例えば、画像認識と単に言っても、OCR(画像の中の文字認識)をしたいのか。顔解析をしたいのか。または場所解析をしたいのか。目的は様々ですよね。このオブジェクトで「どのツールを使った画像認識をしてほしい」ということを指定するわけです。FeatureはtypeとmaxResultsで1セットのオブジェクトです。配列で複数のFeatureオブジェクトを指定できます。, Featureオブジェクトのtypeプロパティに指定できる、ツールの種類を示す文字列の一覧です。, ImageContextは、画像解析をするGoogleのサーバーに対して、解析のヒントとなる追加情報を与えるためのオブジェクトです。文字解析の際に言語を指定したり、ランドマーク検出などの際に位置情報を範囲で指定できます。, LatLongRectは、位置情報の範囲を指定するためのオブジェクトです。minLatLngプロパティに南西の、maxLatLngプロパティに北東の位置座標を指定することで、その2点を対角線とした長方形の範囲を表現します。, LatLongは、minLatLngとmaxLatLng、2つのプロパティに指定できるオブジェクトです。, リクエストに成功すると、画像認識の結果をJSONで取得することができます。この章では、JSONの各プロパティにどんな意味があるのかをまとめました。, 取得できるJSONの内容は、全て、このResponseオブジェクトに、結果の数だけ、AnnotateImageResponseオブジェクトが含まれています。, AnnotateImageResponseは、画像認識の結果を含むオブジェクトです。Featureで指定した画像認識のツールの分だけ、情報が含まれています。例えば、顔検出を利用すれば、faceAnnotationsが含まれ、ランドマーク検出を利用すれば、labelAnnotationsが含まれます。リクエストに失敗した場合は、エラーの内容がerrorオブジェクトに含まれます。, FaceAnnotationは、顔検出の結果となる情報を含むオブジェクトです。顔の各パーツの位置など、様々な情報が含まれています。, BoundingPolyは、範囲の情報を含むオブジェクトです。範囲は4つの点を結んだポリゴン(四角形)で表現されます。顔検出における顔の範囲、文字検出における文字の範囲、ロゴ検出におけるロゴの範囲など、様々なデータに含まれます。範囲の情報はverticesオブジェクトに含まれています。, Vertexは、範囲を示すポリゴンの、4つの頂点の位置の情報を含むオブジェクトです。位置は画像の左上を基準としたX座標(右に何px離れているか)、Y座標(下に何px離れているか)で表現されます。距離は、リクエストで指定した画像のオリジナルの大きさに準じたものとなっています。画像を縮小して表示する際は、スケール(縮小率)を考慮しなければいけません。, Landmarkは、パーツ(type)と位置(position)を1セットとしたオブジェクトです。例えば、顔検出では、目の位置、鼻の位置、口の位置などが、このLandmarkオブジェクトで表現される。, Typeは、パーツを表すコードです。顔検出の結果となるデータの、Landmarkオブジェクトのtypeプロパティに含まれます。種類は下記の通りです。, Positionは、3次元の位置情報を含むオブジェクトで、X座標(画像の左端から右方向への距離)、Y座標(画像の上端から下方向への距離)、そしてZ座標(手前、前後の距離)で表現されます。距離はピクセル値で、画像のオリジナルサイズに準じた計算となっています。, Likelihoodは、程度、度合いを示すコードです。セーフサーチ時の有害レベル、顔検出時の感情レベルなど、様々なデータのレベルを表現するために用いられます。, landmarkAnnotationsは、ランドマーク検出(LANDMARK_DETECTION)の結果を含むオブジェクトです。, LogoAnnotationsは、ロゴ検出(LOGO_DETECTION)の結果を含むオブジェクトです。, LabelAnnotationsは、ラベル検出(LABEL_DETECTION)の結果を含むオブジェクトです。, textAnnotationsは、文字検出(TEXT_DETECTION)の結果を含むオブジェクトです。, SafeSearchAnnotationは、有害画像検出(SAFE_SEARCH_DETECTION)の結果を含むオブジェクトです。各項目の判定結果は、Likelihoodで表現される。, ImagePropertiesAnnotationは、色解析(IMAGE_PROPERTIES)の結果を含むオブジェクトです。2016年2月現在、その内容はdominantColorsオブジェクトの1種類のみです。, DominantColorsは、その画像の配色を支配する色の情報を含むオブジェクトです。その内容はcolorsオブジェクトで構成されています。, Colorsは、色の情報を含むオブジェクトです。含む色の分だけ、colorオブジェクトが配列で含まれます。例えば、3種類の色情報を含むcolorsオブジェクトは下記の通りです。, Colorは、色の内容を含むオブジェクトで、RGBのred、green、blueで構成されます。, SYNCERシンカーはSYNC(同期)とER(する者)で「知識や感動を同期するブログ」という意味の造語です。みなさんと共に進化(しんか)していきたいという思いも込めてます。また来たくなったら、SYNCERで検索してね!, Copyright © 2014-2016SYNCER All Rights Reserved.https://syncer.jp/, Google Developers Consoleにおいては、課金を無効にすることはできても、登録したカードの情報を削除することができない仕様になっています。, https://vision.googleapis.com/v1/images:annotate?key=, Google Cloud Storage内に設置してある画像のURIを指定する。例えば、バケット名が, 利用したいツールの種類を、指定する。ツールはそれぞれが課金の対象として、別々に使用回数が集計される。, 取得したい結果の最大数を指定する。スコアの高い結果から優先的に取得できる。例えば、, 顔検出。動物の顔ははっきりと拒否するが、仮面やカプチーノに描いた坂本龍馬の顔は認識された。, ランドマークの認識。観光名所などの場所名を判定する。精度は非常に高く、袋田の滝や館山、高知城や鋸山の大仏が認識された。, ロゴの検出。楽天やkaoなど、日本の企業にも対応している。Appleの林檎マークは認識されなかった。, カテゴリの検出。「空」「犬」「仮面」「食べ物」など、画像の種類を判定する。犬の場合、犬種まで導く。, セーフサーチ。画像が有害な内容を含んでいるかを検出。アダルト度、暴力度など、項目別に度合いを判定する。単純に虫が映っていても有害とは判定されない。女性の脚が映った写真では、, 文字解析の際に言語を指定する。文字に含まれる言語の種類を、言語コードで任意の数だけ配列で指定する。特に指定しなくても、自動で言語を検出して最適な結果を返してくれるので、どうしても不満な時にだけ指定すればいい。サポートされている言語の一覧はドキュメントで確認できる(, 顔の傾きを示すオブジェクト。正面を向いたまま、首から上をメトロノームのように動かす時の角度。, 顔の傾きを示すオブジェクト。正面を向き、顔を垂直にしたまま、右を向いたり左を向いたりする時の角度。, 顔の傾きを示すオブジェクト。正面を向き、顔を垂直にしたまま、上を向いたり下を向いたりする時の角度。, ランドマークの位置情報。ランドマークそのもの、またはランドマークを撮影した他の場所の場合があるので、複数の位置情報が含まれる可能性がある。. Java is a registered trademark of Oracle and/or its affiliates. ) , curl_setopt( $curl, CURLOPT_TIMEOUT, 15 ) ; "maxResults" => 3 , // リクエストを実行 "type" => "FACE_DETECTION" , array( Googleが提供する、開発者向けの画像認識サービス、Cloud Vision APIの使い方を、初心者でも分かるようにまとめました。サンプルプログラム用の言語として、PHPを使っています。, Cloud Vision APIを利用するには認証が必須です。認証の種類は様々ですが、この記事では一番手軽なAPIキーによる認証を説明します。ということで、認証に必要となるAPIキーをまずは取得しましょう。, Cloud Vision APIを利用するには、請求が発生する、しないに関わらず、クレジットカード(またはデビッドカード)を登録し、課金を有効な状態にしなければいけません。そして、Google Developers Consoleにおいては、課金を無効にすることはできても、登録したカードの情報を削除することができない仕様になっています。これらを踏まえて、自己責任でご利用下さい。「この記事の通りに設定したけど料金が発生したぞ」などという苦情は一切受け付けないことを、あらかじめ、ご了承下さい。, APIキーを取得するためには、Googleのユーザーアカウントが必要です。まだ持っていない人は作成して下さいね。, アカウントが用意できたら、開発者たちの管理画面であるGoogle Developers Consoleにアクセスして下さい。, ページにアクセスしたら、まずは右上にある「プロジェクトを選択して下さい」という部分をクリックして下さい。, メニューが出てきます。「プロジェクトの作成」をクリックして下さい。「プロジェクト」とは、これから作成するアプリケーション(PHPなど)をまとめるためのカテゴリのようなものだと思って下さい。, 新しいプロジェクトを作成するためのフォームが出てきます。ここで、好きなプロジェクト名を入力して「作成」のボタンをクリックして下さい。ボタンをクリックして問題がなければ、プロジェクトが作成されます。, 「作成」をクリックしてから少し待てば、このように新しいプロジェクトが作成されます。このプロジェクトに紐付いた、APIキーをこれから作成するということを意識しておきましょう。, 作成したプロジェクトにおいて、目的の「Cloud Vision API」を利用できるように、有効化する作業を行ないます。まずは、左上にあるメニューボタンをクリックして下さい。, メニューが表示されます。その中から「API Manager」をクリックして下さい。, Googleが提供するAPIの一覧画面に移動します。探すのが大変なので、検索フォームでキーワード検索をしましょう。, 「Cloud Vision API」と入力すれば、キーワードにマッチして、目的に「Cloud Vision API」が表示されると思います。このタイトルをクリックして下さい。, 「Cloud Vision API」の専用画面に移動します。タイトルの横に、有効、無効を切り替えるためのボタンがあります。最初は有効ではないので、「Enable(有効に切り替える)」というボタンが表示されていますね。これをクリックして下さい。, APIを有効化することができたはずです。プロジェクトを作成したばかりの場合、まだ認証方法を1つも設定していない状態のため、このように「認証情報を設定して下さい」というアラートが表示されると思います。これが出た人は、とりあえず作業としてサービスアカウントを作成してしまいましょう。「認証情報に進む」のボタンをクリックして下さい。このアラートが出ない人は、そのまま次項の「APIキーを作成する」に進んで下さいね。, 「プロジェクトへの認証情報の追加」という画面が表示されます。「使用するAPI」には「Cloud Vision API」を選択し、「Google App Engine」を使用しますか?という項目は「いいえ」を選択して、「必要な認証情報」のボタンをクリックして下さい。, 新たにフォームが表示されます。「サービスアカウントの名前」と「キーのタイプ」を選択して、「次へ」をクリックして下さい。サービスアカウントとは、「APIを利用するためのアカウント」で、「キー」とは、そのアカウントで認証をするための情報が含まれたファイルです。この記事では、APIキーによる認証で説明するため、サービスアカウントは利用しません。ただ、やれと言われているから登録しているだけです。「キー」はここでは使わないので、「JSON」と「P12」、どちらを選択しても問題ありません。「アカウントの名前」に関しても、後でどうにでもできるので適当な名前で大丈夫です。繰り返しますが、この記事では使いません。, 問題がなければ、サービスアカウントが作成されます。また、同時に「キー」のファイルが自動でダウンロードされます。このファイルは認証に利用する重要なものなので、今は管理しないならしないで、キッチリと削除をしてしまって下さい。後で再発行できます。それでは、サービスアカウントのことは忘れて、APIキーを取得しましょう。…念のため、断っておきますが、簡易なAPIキーによる認証よりも、サービスアカウントによる認証の方が推奨されます。ただ、ここでは説明を簡易にしたい都合でAPIキーを利用するということです。, 続いて、認証に利用するためのAPIキーを作成しましょう。画面左上にあるメニューボタンをクリックして下さい。, 「API Manager」の画面に移動します。左側にあるメニューの中から「認証情報」をクリックして下さい。, 「認証情報」の画面に移動します。上部にある「Create credentials」をクリックして下さい。, すると、作成できる認証キーの種類一覧が表示されます。この中から「APIキー」をクリックして下さい。, APIキーの種類を選択するフォームが表示されます。この記事では、ブラウザでPHPを使ってAPIを利用するので、「ブラウザキー」を選択します。, APIキーの名前と、許可するリファラーを設定します。キーの名前は、他のキーと区別するためのものです。APIキーをたくさん作った後に「このAPIキーはどのプログラムで使ってたっけ?」とならないように、分かりやすい名前を付けて下さい。この見本のようにサイト名にしてもいいですが、Cloud Vision APIしか使わないなら、「SYNCER (Cloud Vision API)」と付けた方が後で分かりやすいでしょうね。, もう1つは許可するリファラーの設定です。例えば、APIキーを他人に知られてしまったとしても、許可するリファラーをhttps://syncer.jpだけにしておけば、APIキーを手に入れた他人がhttps://syncer.jp以外のサイトで利用できなくなるので安全です。https://syncer.jp/*としておけば、https://syncer.jp上の全てのページから利用することができます。, なお、PHPのcURLやfile_get_contents()でリクエストする時、そのままだとリファラーが付きません。そのため、ヘッダーで指定してあげる必要があります。ちゃぶ台を返すようで大変申し訳ないのですが、これはイコール、他人がいくらでも偽装可能ということになってしまいますよね。なので、許可するリファラーを設定したとしても気休め程度にしかならない。APIキーは絶対に他人に知られてはいけない、という点を意識しておきましょう。, 問題がなければ、「作成」をクリックするとこのようにAPIキーが発行されます。このキーを利用しますので、控えておいて下さい。他人に知られてはいけません。, 「認証情報」の画面に戻ります。作成したAPIキーの情報を確認できますね。ビックリマークが付いているのは、リファラーを設定していないためです。「他人のサイトで勝手にAPIキーを使われるかもしれませんよ〜」ということですね。理論上、APIキーがバレなければ問題ありませんが、絶対ということはないので、必ず、本稼働時にはリファラーを制限して下さい。APIキーのタイトルをクリックすると、リファラーを再設定できます。, Cloud Vision APIは、課金を有効にしないと利用できません。APIキーは発行できたので、そのまま使ってみるか、といった具合にリクエストをしても、次のエラーメッセージが含まれたJSONが返ってきます。「課金有効にしろや」というメッセージですね。, Google Developersにクレジットカードを登録すると、登録を削除することができません。課金を無効にしても、クレジットカードの情報は登録したままにしないといけないということです。このことをよく思わない場合は、APIの利用を諦めて下さい。迷う場合は登録しないのが一番良い選択肢です。この記事内でデモを稼働させているので、登録する前に色々と試してみて下さいね。, それではお支払い設定、課金設定をしていきましょう。画面左上にあるメニューボタンをクリックして下さい。, 請求先となるアカウントを登録します。「請求先アカウントの作成」をクリックして下さい。, 請求先となるクレジットカード、住所の情報を入力する画面が表示されます。必要な情報を入力し、「登録」をクリックして下さい。初めての場合は「無料試用を開始」となっていますが、ここでは無料試用がどのような仕組みかは解説しません。, 請求先アカウントが登録されました。このように案内メッセージが表示されるので、よろしければ「OK」をクリックして下さい。これで、Cloud Vision APIを利用する準備が完了しました!お疲れ様でした。, お金が発生することに関しては面倒でも自分でドキュメントを確認するべきですが、一応説明しておきます。課金状態を無効にしたい場合は、画面右上にある「請求先アカウントを閉鎖」をクリックして下さい。これはユーザーアカウントの削除ではないのでご安心下さい。, 課金額が一定数を超えた時に通知メールを受け取ることができる、アラート設定をしておきましょう。画面左側にある「アラート」の項目から設定できます。なお、メールは請求先アカウントを登録する時に入力したメールアドレスに届きます。登録時に確認用のメールが届いているはずなので、本文にあるリンクをクリックしてメール認証を終えておきましょう。そうしないと通知が届きません。, APIキーを取得したら、まずは細かい仕様は意識せずに、リクエストを送って結果を取得してみましょう。下記に最も簡易なサンプルコードを用意したのでぜひ試してみて下さいね。リクエストが通らない場合、APIキー、もしくは画像へのパスを再度確認して下さい。, 実際にCloud Vision APIを利用して、画像認識をするデモです。試したい画像を選んでクリックしてみて下さいね。なお、レスポンスが速いのは結果を24時間キャッシュしているためです。. Google Cloud Vision APIはGoogle Cloud Platformが提供する機械学習サービスの1つです。 公式での説明は以下のように説明されています。 このサービスを利用するとGoogleが持っている画像に関する機械学習モデルを使って対象の画像から 色々な情報を取得できます。 取得できる情報には以下のようなものがあります。 1. 窓枠 塗装 剥がれ 賃貸 7, Parallels Desktop 15 For Mac 使い方 7, 歯科助手 資格 履歴書 書き方 6, Bluetoothイヤホン 通話 ハウリング 4, 学歴 関係ない 大企業 4, メジャー 漫画 無料 サンデー 6, 四国電力 電気温水器 レンタル 25, 部屋 異音 キーン 20, 生駒警察署 車庫証明 時間 5, 大商大堺 野球部 部員数 4, Vb Net バージョン確認 5, Android ぴえん ない 50, Ultimate Immersion Textures 14, Power On Ii 和訳 Lesson8 Part3 19, Igtv 保存方法 カメラロール 6, 抜け毛 シャンプー市販 男性 4, システム手帳 リフィル 自作 エクセル バイブル 5, あの人に今連絡 したら 返事は くる 無料 6, キャンプレシピ 簡単 子供 7, 運動会 2020 中止 14, Sr400 整備 ブログ 6, プライド (テレビドラマ) キャスト 5, " /> Top
This error message is only visible to admins

Error: API requests are being delayed for this account. New posts will not be retrieved.

Log in as an administrator and view the Instagram Feed settings page for more details.