カメラと言えば「写真」 これで、Google Vision APIとGoogle Books APIの実行に必要なパッケージが使えるようになります。, 前項で追加したパッケージを使用すると、下記のようにデータを取得することが出来ます。, [ API_KEY ]、[ 画像データ byte[] ]は、適切な値に置換して下さい。 $json = json_encode( array( 使い方. "features" => array( Type ; maxResults; model ### GCPのCloud Vision APIのTYPEには二種類ある。 テキスト検出「TEXT_DETECTION」(大きな画像内のテキストのスパース領域向けに最適化 … ) , あえて(!)、画像データから検索したいと思います。, Androidの下記の設定で動作確認を行いました。 $json = substr( $res1, $res2["header_size"] ) ; // 取得したJSON 画像解析といえば「Google Cloud Vision API」。, ということで、今回は「Google Cloud Vision API」を使って、書籍検索アプリを作ってみました。, 書籍検索であれば、バーコードからISBNコードを読み取るのが一番早いのですが、 "maxResults" => 3 , └── getImageDesc.py #画像情報を取得, Googleアカウントを作成する必要はありますが、実際に使い出すまでには「プロジェクト作成」「API有効化」をすればよく、思ったよりも簡単に使い始めることができました。, 特殊なことは必要なくて、普通のREST APIを使う感じで開発することができました。, 特徴がある画像を使ったのである程度想定したとおりの画像情報が取得できた気がします。 今後、他社の画像解析APIも使ってみようと思っているので、そこで比較できればと思います。 ただ、「shimada」ってなんだろう・・・と思って調べたところ「芸者島田」っていう髪型があるみたいですね。勉強になります。. "maxResults" => 3 , ) , Googleが提供する、開発者向けの画像認識サービス、Cloud Vision APIの使い方を、初心者でも分かるようにまとめました。サンプルプログラム用の言語として、PHPを使っています。 curl_setopt( $curl, CURLOPT_RETURNTRANSFER, true ) ; Google Cloud Vision APIはGoogle Cloud Platformが提供する機械学習サービスの1つです。 公式での説明は以下のように説明されています。 このサービスを利用するとGoogleが持っている画像に関する機械学習モデルを使って対象の画像から 色々な情報を取得できます。 取得できる情報には以下のようなものがあります。 1. Fire TV StickのAmazonプライムビデオで音声が出ない場合の対応方法, プロジェクターでテレビを見る方法!地上波もBSもCSも!ブルーレイレコーダーを使用した接続方法を解説!, 半年で7つの資格を取った資格マニアのおすすめ資格|隙間時間でも取得可能な低難易度を紹介, 大きいテレビ買うより100インチのプロジェクターが絶対おすすめ!メリット・デメリットを徹底解説!, 【LINE Botで文字起こし】Cloud Vision APIとComputer Vision APIでOCRボットを作成してみた. curl_setopt( $curl, CURLOPT_SSL_VERIFYPEER, false ) ; "type" => "LOGO_DETECTION" , やはり、Googleの技術はすごいです。. "requests" => array( // 画像へのパス ) , APIを使う 2018.3.6 「API」ってつまりどんな技術?用語の意味をおさらいしよう; APIを使う 2018.3.6 具体例で学ぶ、API(Web API)の利用目的と仕組み; APIを使う 2018.4.25 画像認識API使ってみた(3)Microsoft Azure Compu… APIを使う 2018.3.6 Twitter APIを使ってみた array( Google Cloud Platformが提供している機械学習サービスの一種です。 様々な種類の画像解析を行ってくれます。 サンプルコードの実行. ) , $image_path = "./image.jpg" ; // APIキー array( $api_key ) ; // 取得したデータ "maxResults" => 3 , "type" => "LABEL_DETECTION" , ドキュメントが少し分かりにくかったのでまとめてみる。 APIのパラメータ. curl_setopt( $curl, CURLOPT_TIMEOUT, 15 ) ; Java is a registered trademark of Oracle and/or its affiliates. $res1 = curl_exec( $curl ) ; curl_close( $curl ) ; 1,2,3についてはCloud Vision APIの使い方まとめ (サンプルコード付き)が丁寧です。 4については、このペライチのhtml↓がとりあえず Chrome なら動きます。 "maxResults" => 3 , Android上から実行する際のサンプルを記載します。, build.gradeに下記を追記します。 画像データは、Google Vision APIで対応している形式(JPEG)などを指定します。, 今回は、type=WEB_DETECTIONとした際にレスポンス内に含まれる「ラベル」を使用することにします。 Cloud Vision APIの使い方まとめ (サンプルコード付き) 投稿日: 2016/02/22. 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の林檎マークは認識されなかった。, カテゴリの検出。「空」「犬」「仮面」「食べ物」など、画像の種類を判定する。犬の場合、犬種まで導く。, セーフサーチ。画像が有害な内容を含んでいるかを検出。アダルト度、暴力度など、項目別に度合いを判定する。単純に虫が映っていても有害とは判定されない。女性の脚が映った写真では、, 文字解析の際に言語を指定する。文字に含まれる言語の種類を、言語コードで任意の数だけ配列で指定する。特に指定しなくても、自動で言語を検出して最適な結果を返してくれるので、どうしても不満な時にだけ指定すればいい。サポートされている言語の一覧はドキュメントで確認できる(, 顔の傾きを示すオブジェクト。正面を向いたまま、首から上をメトロノームのように動かす時の角度。, 顔の傾きを示すオブジェクト。正面を向き、顔を垂直にしたまま、右を向いたり左を向いたりする時の角度。, 顔の傾きを示すオブジェクト。正面を向き、顔を垂直にしたまま、上を向いたり下を向いたりする時の角度。, ランドマークの位置情報。ランドマークそのもの、またはランドマークを撮影した他の場所の場合があるので、複数の位置情報が含まれる可能性がある。.

.

4°c Ŀ証書 Ǵ失, Ǧ井市木田 ň譲 Ãンション, Âメリカ ɷ Áぜ, ŏ締役 ļ ŧ任状 Ƭ席, Ȫ明会 Ž日キャンセル ɀ絡不要, ɇ属アレルギー ȡ液検査 Ɲ京, Âリップボックス ǔ面録画 ǔ配信, Âーバー Index Html ȡ示 Áれない, ƹ煎 Ãンバーグ Ãシピ, Ǚ身魚 Dž付け ɻ金比, ǟ床 Âンラ ŏコミ, Ãードオフ Ȳ取 œ, Googleスライド Ãスター Âンポート, Ãーコスト住宅 Ȍ城 Ź屋, The Veranda ĺ子玉川, Mac Ãニリップ ĺ気色, Ãイリニア Á Á, ƹ煎 Ãンバーグ Ãシピ, Ãーラ Âムージングセラム Ľい方, Vscode Python Ļ想環境 ňり替え Anaconda, Âングダム Âニメ DŽ料 Ǭ1シリーズ, ĺ ƀ Ãレミアポイント Ƙの Áりがとうキャンペーン 2020, Áつまいもケーキ ǂ飯器 Áくれ Á, Python Âローバル変数 Ľわない, Ů Âイコン Áしゃれ, ĺ都 ĸ人暮らし Ǜ場, Ɉ木雅之 Ãブドラマティック ƭ詞, ƕ学 Âンター ƺ点, Iphone Ãール ǔ像 Ʒ付ファイルとして, Ų山 ɇ沢 Ɩ幹線, ĸ Áの Ť罪 ō戒 Áうなる, Ãナソニック Âアコン Ņタイマー Áかない, Ļ台 Ãドバシ ɧ車場 Ɩ金, Ȼで行く Ãンチ ō葉, ĸ井住友銀行 Atm Ǐ金振込, Âーナーテレビ台 50インチ Ãイタイプ,