Local blog for Japanese speaking developers
BodyPix の概要: ブラウザと TensorFlow.js によるリアルタイム人セグメンテーション
2019年4月3日水曜日
元記事
この記事は Dan Oved による TensorFlow - Medium の記事 "
Introducing BodyPix: Real-time Person Segmentation in the Browser with TensorFlow.js
" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。
投稿者:
Dan Oved
(ニューヨーク大学 ITP 大学院生および研究員)、
Tyler Zhu
(Google Research エンジニア)、編集: Irene Alvarado(Google Creative Lab クリエイティブ テクノロジスト)
ブラウザと
TensorFlow.js
を使って人や体の部位が映っている領域を分割(セグメンテーション)できるオープンソース機械学習モデル、
BodyPix
のリリースについてお知らせします。デフォルトの設定を使用する場合、2018 年モデルの 15 インチ MacBook Pro では 25 fps 、iPhone X では 21 fps で人や部位のセグメンテーションの予測とレンダリングができます。
人のセグメンテーションとは、具体的にどういうことでしょうか。コンピュータ ビジョンで画像のセグメンテーションと言えば、画像内のピクセルを意味のある領域ごとにグループ化する技術のことで、通常は物体や境界を見つけることを指します。BodyPix のモデルは、人や 24 種類の部位(左手、右下肢正面、胴体後部など)に対してこの処理を行うようにトレーニングされています。つまり、BodyPix は画像内のピクセルを、1) 人と表すピクセルと 2) 背景を表すピクセルの 2 種類に分類できます。さらに、人を表すピクセルを 24 の部位のいずれかに分類することもできます。
こちら
のライブデモを試していただくとわかりやすいかもしれません。
人のセグメンテーションを使うと、何ができるのでしょうか。このテクノロジーは、
拡張現実(AR)
から
写真の編集
、画像や動画に対する
アート効果
まで、さまざまなことに応用できるツールです。何をするかは、皆さん次第です。昨年、
PoseNet
(人体の姿勢の推測(Kinect が行っていること)を簡単なウェブカメラとブラウザで行えるようにした初めてのモデル)をリリースしたとき、皆さんはこのテクノロジーの
さまざま
な
種類
の
ユースケース
を考えてくれました。BodyPix でも、同じようなクリエイティブな実験が行われることを期待しています。
なぜこれをブラウザで行えるようにするのでしょうか。PoseNet と同じように、リアルタイムの人セグメンテーションも、以前は、専用のハードウェアや、システム要件が厳しくインストールが困難なソフトウェアを使わなければできないことでした。しかし、BodyPix と PoseNet なら、
わずか数行のコードだけ
、さらにインストール不要で使えます。このモデルを使うために、専用のレンズは必要ありません。
どんな基本的なウェブカメラやモバイルカメラでも動作します。
さらに、ユーザーは URL を開くだけでアプリケーションにアクセスできます。
計算はすべて
端末上
で行われるため、データのプライバシーは守られます。
以上の理由から、BodyPix は
アーティストやクリエイティブなプログラマー
、
プログラミング初心者
が簡単に
利用できるツール
と言えます。
BodyPix について詳しく説明する前に、モデルや人体の姿勢の推測 [
1
,
2
] に関する作業を行ってくれた Google Research の
Tyler Zhu
氏、
TensorFlow.js
ライブラリに関わっている Google Brain チームのエンジニアである
Nikhil Thorat
氏と
Daniel Smilkov
氏、そして、このプロジェクトにおける Dan Oved の作業に資金を提供してくれた
Daniel Shiffman
氏と
Google Faculty Research Award
に厚く御礼申し上げます。
BodyPix を使ってみる
このモデルを使うにあたっての技術的詳細について説明しましょう。BodyPix を使うと、画像を
人の一部であるピクセルとそうでないピクセル
に分割できます。人の一部であるピクセルは、さらに
24 の部位
のいずれかに分類できます。重要な点は、このモデルは
1 人
に対して動作するということです。そのため、入力データに複数の人が含まれないようにしてください。
パート 1: TensorFlow.js および BodyPix ライブラリのインポート
BodyPix プロジェクトの基本的な設定方法について説明します。
ライブラリは、npm install @tensorflow-models/body-pix でインストールできます。その後、es6 モジュールを使ってインポートします。
https://medium.com/media/055598fd74c20633541c6c426299cceb/href
または、何もインストールせずに、ページ内でバンドルします。
https://medium.com/media/9c7342e4d42699dcafabb191b195e7a3/href
パート 2a: 人のセグメンテーション
画像
に人のセグメンテーション アルゴリズムを適用した例。イメージのクレジット: “Microsoft Coco:Common Objects in Context Dataset”、
http://cocodataset.org
基本的には、人のセグメンテーションを行うと、画像が人の一部であるピクセルと、そうでないピクセルに分割されます。内部的には、モデルに画像を渡すと、0 から 1 の間の浮動小数点数値で表される 2 次元画像に変換されます。それぞれのピクセルは、そこに人が映っている確率を示しています。「セグメンテーションしきい値」と呼ばれる値は、人の一部であると見なすピクセルのスコアの最小値を表します。このセグメンテーションしきい値を使うと、0 から 1 の浮動小数点数値が 0 か 1 に 2 値化されます(しきい値が 0.5 の場合、0.5 より大きい値は 1 に、0.5 より小さい値は 0 に変換されます)。
画像や動画に対して人のセグメンテーションを行うには、API メソッド
estimatePersonSegmentation
を呼び出します。次の短いコードブロックは、この使い方を示しています。
https://medium.com/media/9dd15d4bc1b4ca210e191f118153667b/href
人のセグメンテーションからの出力例は、次のようになります。
https://medium.com/media/d281cb2d9ea3ff2cabe27a78d676dada/href
このメソッドや引数についての詳しい説明は、
github の readme
に掲載されています。
人のセグメンテーションからの出力結果を描画する
BodyPix がブラウザで動作するもう 1 つのメリットは、
Canvas Compositing
などのウェブ API を利用できることです。
これと BodyPix からの出力結果を使って、画像の一部をマスクしたり置換したりしてみましょう。すぐに使い始めることができるように、この機能をラップしたユーティリティ関数を用意しています。
toMaskImageData
は、人のセグメンテーションの推定を表す出力結果を受け取り、引数
maskBackground
に応じて、人または背景を不透明にした透過画像を生成します。これをマスクとして、元画像の上に描画することができます。これを行うには、
drawMask
メソッドを使います。
https://medium.com/media/c469225c35fb4dcadc219718906f1c58/href
drawMask
は、キャンバスに画像を描画し、その上から指定された不透明度のマスクで ImageData を描画します。
上の最初の
画像
に対して
estimatePersonSegmentation
を実行し、その出力を
toMaskImageData
に渡すと、
ImageData
が生成される。その際に、maskBackground を true にした場合(デフォルト)は上の 2 番目の
画像
のように、または maskBackground を false に設定した場合は 3 番目の
画像
のようになる。
このマスクは、
drawMask
を使って
画像
上に描画できる。
パート 2b: 部位のセグメンテーション
画像
に部位のセグメンテーション アルゴリズムを適用した例。
画像
のクレジット: “Microsoft Coco:Common Objects in Context Dataset”、
https://cocodataset.org.hb
BodyPix は、単純に人か人でないかを分類するだけでなく、画像を
24 の部位
のいずれかを表すピクセルに分割することもできます。画像をモデルに渡すと、0 から 23 の間の整数値で表される 2 次元画像に変換されます。それぞれのピクセルは、そのピクセルが 24 の部位のどれに属するかを表しています。体の外側にあたるピクセルの値は、-1 となります。
画像や動画に対して部位のセグメンテーションを行うには、API メソッド
estimatePartSegmentation
を呼び出します。次の短いコードブロックは、この使い方を示しています。
https://medium.com/media/5b6859a609a3e960bfb34943bd637f64/href
部位のセグメンテーションからの出力例は、次のようになります。
https://medium.com/media/0039e12da3d08ee894a60b98e6aff884/href
このメソッドや引数についての詳しい説明は、
github の readme
に掲載されています。
部位のセグメンテーションからの出力結果を描画する
estimatePartSegmentation からの出力と、部位 ID をインデックスとした色の配列を
toColoredPartImageData
に渡すと、各ピクセルが部位に対応する色になったイメージが生成されます。これをマスクとして、キャンバスの元の画像の上に描画できます。これを行うには、
drawMask
メソッドを使います。
https://medium.com/media/1bc07341e34923dfbc9dfe0508f5257e/href
上の最初の
画像
に対して
estimatePersonSegmentation
を実行し、その出力とカラースケールを
toColoredPartImageData
に渡すと、上の 2 番目のような ImageData が生成される。キャンバスに、元の
画像
の上から不透明度 0.7 で色つきの部位の
画像
を描画することもできる。これを行うには、
drawMask
を使用する。結果は、上の 3 番目の
画像
のようになる。
これらのメソッドの詳しい説明や使用法については、github の
readme
をご覧ください。
BodyPix の高速化と精度向上
パフォーマンスと精度に最も大きく影響するのは、モデルのサイズと出力ストライドです。この 2 つの値を設定することで、精度を落として高速化したり、速度を落として精度を上げたりすることができます。
モデルのサイズ
は、モデルを読み込む際に
mobileNetMultiplier
引数で設定します。設定できる値は、0.25、0.50、0.75、1.00 のいずれかです。この値は、MobileNet のアーキテクチャとチェックポイントに対応します。値が大きいほど、各層のサイズが大きくなり、速度と引き替えにモデルの精度が向上します。小さな値を設定すると、精度と引き替えに速度が向上します。
出力ストライド
は、セグメンテーションを実行する際に設定する引数で
、
設定できる値は 8、16、32 のいずれかです。大まかに言えば、これは姿勢の推定の精度と速度に影響します。出力ストライドの値を小さくすると、精度が上がりますが、速度は遅くなります。値を
大きく
すると、予測時間は短くなりますが、精度は
低く
なります。
さらに、
元
画像
のサイズ
もパフォーマンスに影響します。セグメンテーションの推測を行った後、結果は元の画像サイズにスケーリングされるので、元画像が大きいほど、結果のスケーリングや描画を行う際の計算量が多くなります。高速に処理するには、画像を縮小してから API に渡してください。
BodyPix を触ってみたい方は、ぜひここでお試しください。次のセクションでは、モデルの作成方法を知りたい方のために、技術的な詳細についてさらに説明します。
BodyPix ができるまで
BodyPix は、畳み込みニューラル ネットワーク アルゴリズムを使っており、ResNet モデルと MobileNet モデルの両方をトレーニングしました。ResNet ベースのモデルの方が精度は高いのですが、このブログ投稿では MobileNet ベースのモデルを取り上げます。MobileNet モデルは、モバイル端末や一般消費者向けのコンピュータで効率的に実行でき、オープンソース化されています。MobileNet モデルでは、高密度 2D セグメンテーション マップを予測するため、従来型の分類モデルの最終プーリング層および完全結合層が 1x1 の畳み込み層に置き換わっています。次の図は、入力イメージの処理に MobileNet を使う場合の流れを示しています。
入力
画像
から出力層まで、MobileNet の層ごとの活性化を示した例(説明の都合上、特徴マップのダウンサイジングは省略)
人のセグメンテーション
BodyPix の中核になっているのは、人の体のセグメンテーションを行うアルゴリズムです。つまり、入力画像の各ピクセルについて二分決定を行い、そのピクセルが人であるかそうでないかを推測します。その仕組みについて見てみましょう。
人の領域を分割するタスクを示した
画像
。これは、ピクセルごとの二分決定タスクと考えることができる。1 はピクセルが人の領域に属することを、0 はピクセルが人の領域に属さないことを示す(説明の都合上、セグメンテーションの解像度を落としている)。
画像が MobileNet ネットワークを通過すると、シグモイド活性化関数が出力を 0 と 1 の間の値に変換します。この値は、ピクセルが人に属するかそうでないかを示す確率と解釈できます。セグメンテーションしきい値(例: 0.5)は、人の一部と見なすピクセルのスコア最小値を決定します。これにより、出力結果がバイナリ セグメンテーションに変換されます。
画像
に人のセグメンテーション アルゴリズムを適用した場合のデータ表現の例。左から右に: 入力
画像
、シグモイド後のネットワークのセグメンテーション予測、しきい値を適用した後のバイナリ セグメンテーション。図:
Ashley Jane Lewis。
画像
のクレジット: “Microsoft Coco:Common Objects in Context Dataset”、
https://cocodataset.org
部位のセグメンテーション
部位のセグメンテーションの予測にも、同じ MobileNet 表現を使っています。しかし、ここでは、
追加の 24
チャンネルの出力テンソル
P
(
24
は部位の数)について予測を行うことで、前述の処理を繰り返しています。各チャンネルには、ある部位が存在するかどうかの確率が符号化されています。
部位の領域を分割するタスクを示す例。これは、ピクセルごとに
複数のチャンネル
に対して行う二分決定タスクと考えることができる。各部位のチャンネルに対して、1 はピクセルがその部位の領域に属することを、0 は属さないことを示す(左から右に: 入力イメージ、顔の右側チャンネル、顔の左側チャンネル)。
入力
画像
から、24 の追加チャンネルの部位に関するセグメンテーション出力まで、MobileNet の層ごとの活性化を示した例(説明の都合上、特徴マップのダウンサイジングは省略)。
画像のそれぞれの場所について、
出力テンソル
P
に 24 のチャンネルがあるので、この 24 のチャンネルから最適な部位を探す必要があります。推論の際には、出力部位テンソル
P
の各ピクセル位置 (
u
,
P
) について、次の式を使って最も高い確率を持つ最適な
body_part_id
を選択します。
この結果は、各ピクセルがそのピクセルが属する部位を示す整数となっている 2 次元画像(元のイメージと同じサイズ)になります。全体の画像から人を切り抜く際には、人のセグメンテーションの出力結果を使っています。対応する人のセグメンテーションの出力結果がセグメンテーションしきい値より小さい場合、値に -1 を設定します。
24 チャンネルの部位のセグメンテーションと、人のセグメンテーションを組み合わせて、1 チャンネルの部位 ID 出力を生成する方法を示した例。図:
Ashley Jane Lewis。
画像
のクレジット: “Microsoft Coco:Common Objects in Context Dataset”、
https://cocodataset.org
最終的な 1 チャンネルの部位 ID 出力を示した例。24 チャンネルの部位マスクを組み合わせる際には、前述の argmax 式と、人のセグメンテーションによる領域の切り抜きを使う(説明の都合上、各
body_part_id を重複しない色で示し、出力解像度を落としている)。
実データおよびシミュレーション データによるトレーニング
画像のピクセルを 24 の部位の領域に分割するタスクのために、手作業で大量のトレーニング データに情報を付加するのは、時間のかかる作業です。そこで、内部的には、コンピュータ グラフィックスを使って正解となる部位セグメンテーション情報が付加された画像をレンダリングしました。モデルのトレーニングを行うにあたっては、レンダリングした画像に実際の COCO イメージ(2D キーポイントとインスタンス セグメンテーション情報を付加したもの)を混ぜ合わせました。この混合トレーニング戦略とマルチタスク損失を使うことで、ResNet モデルはシミュレーション情報だけで 24 の部位の予測機能を学習することができました。最終的に、COCO 画像に対する教師 ResNet モデルの予測を
蒸留
し、BodyPix 用の生徒 MobileNet モデルを作成しました。
実際の
画像
とコンピュータ グラフィックスで生成した
画像
の両方で、教師 ResNet モデルをトレーニングする仕組みを示した例。正解となる部位情報は、コンピュータ グラフィックスで生成した
画像
にのみ存在する。
教師 ResNet モデルの予測を蒸留し、生徒 MobileNet ベースの BodyPix モデルを作成する方法を示した例。
PoseNet と同じく、BodyPix も、一般向けの端末のローカル環境で広く使うことができる
モーション キャプチャ
に向けた小さな一歩になると考えています。3D 体形のキャプチャ、高速に振動する軟組織筋の動作、衣服による外見や形状の違いなど、これから解決しなければならない研究課題は、まだかなり多く残されています。この点を見据えつつも、私たちはモーション キャプチャ テクノロジーがさらに便利になって広く普及し、さまざまな業界で応用される未来を思い描いています。
皆さんが BodyPix モデルを使ってみることができるように、いくつかの例とユーティリティ メソッドを提供しています。ここから着想を得て、モデルに触れていただければ幸いです。皆さんは、どのようなものを作ってくれるでしょうか。そのご報告を楽しみにしています。ぜひ #tensorflowjs、#bodypix、#PoweredByTF でプロジェクトをシェアしてください。
Reviewed by
Kaz Sato - Staff Developer Advocate, Google Cloud
ラベル
.app
1
.dev
1
#11WeeksOfAndroid
13
#11WeeksOfAndroid Android TV
1
#Android11
3
#DevFest16
1
#DevFest17
1
#DevFest18
1
#DevFest19
1
#DevFest20
1
#DevFest21
1
#DevFest22
1
#DevFest23
1
#hack4jp
3
11 weeks of Android
2
A MESSAGE FROM OUR CEO
1
A/B Testing
1
A4A
4
Accelerator
6
Accessibility
1
accuracy
1
Actions on Google
16
Activation Atlas
1
address validation API
1
Addy Osmani
1
ADK
2
AdMob
32
Ads
72
Ads API
134
ads query language
2
ads scripts
2
ads search
1
advanced markers
1
Advanced Protection Program
3
AdWords API
25
adwords scripts
2
aerial view api
1
Agency
1
AI
19
AIY
3
AIY Vision Kit
2
ALPN
1
AMP
120
AMP Cache
9
AMP Camp
2
AMP CSS
1
AMP Extension
1
AMP Fest
1
AMP for Email
4
AMP Optimizer
1
AMP Packager
1
AMP Playground
1
AMP Plugin
1
AMP SSR
1
AMP Story
4
AMP Toolbox
1
amp-bind
1
amp.dev
1
AMPHTML Ads
1
Analytics
9
Andorid
12
Android
400
Android 10
1
Android 11
20
Android 11 Compatibility
1
Android 11 final release
1
Android 11 meetups
1
Android 9
1
android api
1
Android App Bundle
1
Android App Development
23
Android Architecture
1
Android Architecture Components
1
Android Auto
1
Android Design Support Library
1
Android Developer
14
Android Developer Story
4
Android Developers
13
Android Enterprise
6
Android for cars
2
Android Go
1
Android Jetpack
6
Android N
18
Android O
14
Android Open Source Project
1
Android P
7
Android Pay
1
android privacy
1
Android Q
13
Android Ready SE Alliance
1
android security
5
Android Security Year in Review
1
Android StrongBox
1
Android Studio
47
Android Studio 4.1
1
android study jam
1
Android Support Library
6
Android Things
15
Android Tools
2
Android TV
11
Android Vitals
4
Android Wear
29
android11
6
androidmarket
3
androidstudio
1
AndroidX
6
Angular
2
Angular 2
2
AngularJS
2
Announcements
2
Anthos
2
antmicro
1
AoG
1
aosp
1
API
28
APIExpert
45
apk
2
APM
1
app
3
App Action
1
App Bundle
2
app check
1
app engine
24
App Indexing
7
App Invites
6
App Maker
2
App modernization
1
AppCompat
2
Apps Flutter eBay
1
Apps Script
12
AppSheet
1
aprilfool
4
AR
3
Architecture Components
7
ARCore
3
ArtTech
1
asset-based extensions
2
assets
1
Associate Android Developer Certificate
1
Attribution Reporting
1
Audio
7
Auth Code
1
Authentication
9
AuthSub
2
Autofill
5
AutoML
1
Autotrack
2
award
1
Awareness API
1
basemap
1
basic-card
1
Beacons
6
bento
2
BERT
1
Best Practices
1
beta
4
Better Ads Standards
3
BigQuery
10
Billing
1
Biometrics
1
BLE
4
Blink
1
Blockly
1
blogger
1
BodyPix
1
bootcamp
1
Brillo
1
Brotli
2
Budou
1
budoux
1
Buildbetterapps
2
C++
1
Calendar
3
call ads
1
campaign
2
campaignsharedset
1
Campus
1
Canvas
1
Cardboard
4
Career
1
Case Study
3
CCPA
1
CDS 2020
3
CDS Recap 2020
3
Certificate
8
changestatus
1
chrome
261
chrome 98
1
Chrome Apps
1
Chrome Custom Tab
4
Chrome Dev Summit
5
chrome extension
14
Chrome for Android
2
Chrome for iOS
3
Chrome OS
10
Chrome Root Program
1
Chrome Root Store
1
Chrome Tech Talk Night
4
chrome103
1
chrome104
1
chrome108
1
chrome90
1
Chromebook
5
Chromecast
7
chromewebstore
9
Chromium
20
CLI
1
ClientLogin
3
Closure Compiler
1
Cloud
28
Cloud AI Platform
2
Cloud Firestore
5
Cloud Functions
9
Cloud IoT Device SDK
1
cloud messaging
1
Cloud ML Summit
1
Cloud Next
19
Cloud OnAir
5
Cloud OnBoard
4
Cloud PubSub
1
Cloud Run
1
Cloud Storage
1
Cloud Study Jams
3
Cloud Summit
1
Cloud Test Lab
2
Cloudflare
1
CNN
1
Coalition for Better Ads
2
CocoaPods
1
code review
1
codejam
5
codelab
5
Codepen
1
Colaboratory
1
Common Criteria
1
Community
6
compatibility
1
Compose
1
compose camp
1
compute engine
3
consent
1
Contests
1
Context
1
controls
1
Conversation API
1
conversations
2
conversion
1
Cookie
10
Coral
3
core web vitals
1
COVID-19
2
Crash Reporting
2
Crashlytics
3
cryptography
1
Custom Element
1
Custom Model
1
CWV
2
dark theme
1
Dart
2
DataCenter
1
datacloudsummit
1
Daydream
4
deck.gl
2
Deep Learning
4
Delegation
1
Demo Party
1
Design Patterns
1
Design Sprint
3
DesignBytes
1
Designer
1
DevArt
3
DevBytes
6
Developer
15
Developer Console
4
Developer Library
1
Developer Preview
6
Developer Relations
3
Developer Review
1
Developer Student Club
1
DEVELOPERS
1
Developers Story
4
DevFest
12
DevFestX
3
DevOps
1
devtools
4
Dialogflow
1
Differential privacy
2
Digital Asset Links
1
Digital Goods API
1
directions api
1
DirectShare
1
Discover
1
distance matrix api
1
DNS-over-HTTPS
4
Domain
1
Doodle
1
DoubleClick
4
Doze モード
1
drive
2
DSA
1
DSC
1
DX
1
Dynamic Links
3
EarlGrey
1
Easter Egg
1
ECMAScript 2015
1
Eddystone
4
Edge
1
egypt
1
encoder
1
Encryption
1
English
2
environment api
1
Envoy
1
error
1
ES2015
1
ES2016
1
ES6
2
ES7
1
eta
1
Event
7
events
3
extensions
1
external
1
Featured
25
Feed
2
feed-based extensions
3
feeds
1
FIDO
7
filter
1
final release
1
Firebase
123
Firebase Admin SDK
6
Firebase Analytics
10
Firebase Auth
4
Firebase Cloud Messaging
10
Firebase Crashlytics
2
Firebase Database
5
firebase for games
1
Firebase Libraries
1
Firebase Notifications
1
Firebase Performance
3
Firebase Remote Config
6
firebase summit
1
Flash
1
FLEDGE
1
FLoC
2
Flutter
8
Flutter App Development
1
flutter3
1
font
3
fraud
1
G Suite
19
game
43
Game Developers Conference 2018
1
Game Developers Conference 2019
1
Game Development
1
gaming
1
gaql
8
Gboard
2
gc_datacloud
1
GCCN
1
GCP
17
GCPUG
1
GDC
1
GDD11JP
56
GDD2010JP
23
GDE
2
GDG
22
GDG Cloud
1
gdsc
4
Gemini
5
Gemma
1
generative AI
4
Geo
55
Gingerbread
1
GLIDE
5
global foundries
1
Gmail
6
Gmail API
3
Go
1
Go Checksum Database
1
golang
5
goo.gl
1
Google
8
Google account
1
Google Analytics
4
Google API
2
Google Apps
14
Google Apps Script
4
Google Assistant
13
Google Assistant SDK
2
Google Binary Transparency
1
Google Cast
8
Google Chat
3
Google Cloud
49
Google Cloud Day
10
google cloud innovators
2
Google Cloud INSIDE Digital
2
Google Cloud INSIDE Games & Apps
9
Google Cloud INSIDE Media
1
Google Cloud INSIDE Retail
3
Google Cloud Messaging
11
google cloud next
4
google cloud next tokyo
3
Google Cloud Platform
16
Google Code-in
1
Google Dev Library
1
Google Developer Experts
2
google developer groups
1
google developer student clubs
1
Google Developers Academy
1
Google Developers live
5
Google Developers Summit
2
Google Drive
6
Google Earth
1
Google Fit
2
Google for Games
3
Google for Mobile
2
Google for Startups
8
Google for Work
1
Google I/O
26
Google I/O 2024
3
Google Identity Services
6
Google Impact Challenge
1
Google Maps
72
Google Maps Platform
91
Google Meet
1
Google ML Summit
2
Google Open Source Peer Bonus
1
Google Pay
6
Google Photo
1
Google Play
148
Google Play App Safety
1
Google Play Billing
1
Google Play Console
15
Google Play developer distribution agreement
1
Google Play Developer Policies
2
Google Play Game Services
10
Google Play Instant
1
Google Play Services
23
Google Play Store
1
Google Play アプリ署名
1
Google Plus
14
Google Search
8
Google Sheets API
3
Google Sign-In
17
Google Slides API
5
Google Summer of Code
1
Google Tag Manager
1
Google Tensor
1
Google Trust Services
3
Google マップ
4
google_ads_api_v6
1
Google+
2
Googleapps
10
GoogleCloud
5
GoogleCloudDay
5
GoogleCloudInside
1
googlecloudlearn
1
googlecloudnext
2
GoogleGames
1
GoogleI/O
31
GoogleLabs
1
GooglePlay
3
GoogleTV
1
GPS
1
Gradle
1
Growth Academy
1
gRPC
2
GTUG
5
GWT
2
hack4jp
2
hackathon
7
handson
1
Hangouts Chat
3
hardware
2
Hosting
3
hotel
1
How-To Guide
1
HTML5
17
HTML5Rocks
1
HTTP/2
5
HTTPS
19
I/O Extended
7
ID Token
1
Identity
18
Identity Toolkit
1
IGF2010
4
IGF2020
2
Ignite
4
Imagen 2
1
IME
12
Indie Game
7
Indie Games Festival
7
Indie Games Festival 2018
2
Indie Games Festival 2019
12
Indie Games Festival 2020
7
Industry Trends
1
Inevitable ja Night
30
innovators hive
2
Insights
1
Instagram
1
Instant Apps
6
intern
2
Invites
1
IO19
3
iOS
22
IoT
7
IPv6
1
Issue Tracker
2
IWD
1
Japanese
6
Japanese Developer
1
Japanese Input
1
java
1
JavaScript
13
Jetpack
5
Jetpack Compose
6
Journeys
1
K-12
1
Kaggle
1
Key Transparency
1
Knowledge Graph
1
Kotlin
25
Kotlin Android Extensions
1
kotlin api
1
Kotlin Beginners
3
Kotlin Vocabulary
2
Kubernetes
4
l10n
8
latest
18
latest news
1
launch
1
LaunchPad
2
Learn
1
lifull
1
Lighthouse
1
LINE
1
Local AI
1
Location
1
Lollipop
10
Machine Learning
32
MAD Skills
2
MADSkills
2
Maker Faire Tokyo
1
maps compose
1
maps embed api
1
Maps JavaScript API
5
maps on air
1
maps sdk
2
maps transportation
1
Marshmallow
10
Material
1
Material Design
31
MDL
2
MDN
1
MediaPipe
1
Messaging
1
metrics
1
MIDI
2
migration
1
mikan
1
Mixed Contents
4
ML
3
ML Kit
12
mlops
1
Mobile
15
Mobile Bootcamp
4
mobile optimized maps
1
Mobile Sites certification
1
Mobile Vision
4
mod_pagespeed
1
Model Maker
1
monetization
2
monetize
3
Mozc
15
Music
1
NativeDriver
2
NativeScript
1
Navigation
1
NBU
1
ndk
3
Nearby
5
News
1
Next Extended
1
Next Tokyo
4
Nexus
2
Nexus S
1
NFC
1
NIST
1
Node.js
3
notifications
2
Noto CJK
1
Now in Android
13
NPAPI
2
NPN
1
oauth
17
officehour
1
One Tap
2
online security
2
open silicon
2
open source
9
OpenAI
1
opencensus
1
opencloudsummit
1
OpenGL
4
OpenID
3
OpenID Connect
4
OpenSocial
1
opensource
20
OpenTitan
1
Optimization
1
OSV
1
p-max
3
Page Experience
1
passkey
3
Password Manager
4
Payment
8
Payment Handler API
1
Payment Request API
2
PDF
1
PEM
33
people
2
People API
3
Performance
16
Performance budget
1
performance max
1
Performance Monitoring
1
performance report
1
permissions
1
personalization
1
PersonFinder
1
Phishing
2
phone
1
photorealistic 3d tiles
1
Physical Web
3
Pi
1
Pixel
4
Place Picker
1
placements
1
places api
1
places SDK
1
Platform Stability
1
Play Billing
2
Play Billing Library
2
Play Console
2
Player Analytics
4
Playtime 2017
1
Policy
8
policy compliance
2
policy violations
2
polylines
1
Polymer
7
pricing
1
privacy
15
Privacy Sandbox
22
Progressive Web Apps
14
project hosting
1
Promise
2
Promo code
1
Protocol Buffers
1
PRPL
1
publicdata
1
Push API
1
Push Notification
6
PWA
4
Python
3
query builder
8
query validator
1
QUIC
2
quick builder
1
quick start widget
1
QWIKLABS
3
RAIL
1
raspberry pi
1
React
1
React Native
2
reactive programming
1
Realtime Database
9
Recap Live Japan 2019
3
reCaptcha
1
Redux
1
release
7
Remote Config
4
Remote Display API
1
Reporting API
1
Requirements
1
Resonance Audio
1
resource type
1
Rewarded Video Ads
2
RKP
1
rmf
2
routes api
3
RSS
1
Run on OS Login
1
Runtime Permission
1
Rust
2
Safe Browsing
4
safety
1
Sample Code
2
Santa Tracker
1
SBOM
1
schedule
1
schema
2
schema.org
1
Scorecards
1
script
2
SDG
1
sdk
1
search central
1
secur
1
Secure Element
1
security
92
selfie
1
Service Worker
4
SHA-1
1
Sigstore
4
silicon
3
Site Isolation
1
sketchup
1
skywater
1
SLSA
1
smart displays
1
smart home
1
smart shopping campaign
1
SmartLock for Passwords
5
social
4
Social Good
1
Social Media
1
software development
1
solution challenge
2
Solve
1
SPDY
3
speak2tweet
1
speaker
1
Spectre
2
speedometer
1
Spreadsheet
3
ssc
1
ssd
1
SSR
1
stable release
1
startup
7
Storage
3
store sales direct
1
story
2
streetview
3
Study Jams
12
subscriptions
5
sunset
10
Swift
2
SwiftShader
1
Symantec
1
tag
1
tapple
1
Task
4
Team Drive
1
techtalk
13
TensorFlow
43
TensorFlow Federated
1
TensorFlow Lite
8
TensorFlow Object Detection API
1
TensorFlow Probability
2
TensorFlow.js
4
test
4
Test Lab
6
TF Certificate
2
TFX
1
The Fast and the Curious
13
Titan M2
1
Titan Security Key
1
TLS
4
Topics
1
ToS
1
trace
1
Transliteration
1
Transparency
1
Trust
1
Trusted Web Activity
1
Trusty OS
1
TrustZone
1
Twitter
1
UA-CH
1
Udacity
20
Unity
3
update
1
usecase
1
User Agent string
2
UX
5
v10
2
v10.1
1
v11
1
v13
1
v15
1
v3
1
v4
1
v5
1
v6.1
1
v7
2
V8
5
v9
1
valuetrack
1
Verifiable Design
1
vertex ai
1
Vision AI
1
VP9
1
VR
11
Vulkan
2
wafer
1
Watch Face
2
wave
2
Wear OS
3
Weave
1
Web
37
Web Animations
1
Web Components
9
Web Manifest
2
Web Packaging
3
Web Stories
3
Web Story
3
Web Vitals
7
web.dev
1
WebAssembly
6
WebAuthn
1
WebGL
5
Webhook
1
WebM
1
WebMusic
5
WebRTC
1
WebView
1
Windows
1
Women in Gaming
1
Women Techmakers
1
Women Techmakers Scholars Program
1
WomenDeveloperAcademy
1
Wordpress
2
workmanager
1
WTM
8
Xcode
1
YouTube
18
YouTube API
1
youtube select
1
インタビュー
1
コードサンプル
1
サプライ チェーン
1
プライバシー
1
機械学習
3
言論の自由
1
節電
3
定期購入
1
東日本大震災
9
日本語入力
41
ブログ アーカイブ
2024
10月
9月
8月
7月
6月
5月
4月
3月
2月
1月
2023
12月
11月
10月
9月
8月
7月
6月
5月
4月
3月
2月
1月
2022
12月
11月
10月
9月
8月
7月
6月
5月
4月
3月
2月
1月
2021
12月
11月
10月
9月
8月
7月
6月
5月
4月
3月
2月
1月
2020
12月
11月
10月
9月
8月
7月
6月
5月
4月
3月
2月
1月
2019
12月
11月
10月
9月
8月
7月
6月
5月
4月
3月
2月
1月
2018
12月
11月
10月
9月
8月
7月
6月
5月
4月
3月
2月
1月
2017
12月
11月
10月
9月
8月
7月
6月
5月
4月
3月
2月
1月
2016
12月
11月
10月
9月
8月
7月
6月
5月
4月
3月
2月
1月
2015
12月
11月
10月
9月
8月
7月
6月
5月
4月
3月
2月
2014
12月
11月
10月
9月
8月
7月
6月
5月
4月
3月
2月
1月
2013
12月
11月
10月
9月
8月
7月
6月
5月
4月
3月
2月
1月
2012
12月
11月
10月
9月
8月
7月
6月
5月
4月
3月
2月
1月
2011
12月
11月
10月
9月
8月
7月
6月
5月
4月
3月
2月
1月
2010
12月
11月
Feed
Follow @googledevjp
"プロダクトに関するご意見は
プロダクトフォーラム
にお願いします"