前回RaspberryPiを設定した。
今回は,カメラモジュールがあるので遊んでみよう!
Google Cloud Vison APIも使ってみるよ!
目次
サーボモータの組み立て・制御
今回使うのは2軸サーボモータ付きカメラモジュール。
まずは参考サイトを元に組み立て。
パーツを加工しないといけないんで,結構大変。。。
参考サイト:Raspberry Piでサーボコントロール、Part1 上下・左右の2軸を動かす
制御は以下Pythonコードで動かす。
サーボモータから出ている線は,茶色がグランド,赤が+5V,オレンジが角度制御のパルス入力となっている。
コード例はパルス入力をGPIO18にして,基準位置0°に移動させた場合である。
1 | import pigpio |
パルス幅 1500±1000が±90°に相当するので,set_servo_pulsewidth()の第二引数を指定角度になるようにいい感じにすればだいたいOK。
pigpioを使うためにはraspi-cofigでGPIO Server
の設定をenable
にしておかないといけないので注意。
参考サイト:
カメラ設定
接続
カメラモジュールから出ているビロビロの紙を,Raspberry PiのCameraって書いてあるところに差し込めばOK
撮影
Raspberry Pi用のコンフィグレーション設定でcamera
の項目をenable
にしておく。
すると例えば以下コマンドでJpeg形式での画像出力ができる。
1 | raspistill -o XXX.jpg |
参考サイト:Raspberry Piカメラのセットアップ方法
Pythonで実行するならPicameraを使って以下のような感じ。
1 | import time |
Google Cloud Vison API
Google Cloud Vison APIと連携して,物体認識をさせてみる!
Google Cloud Vison APIを試してみる
参考サイトの通りで何の問題もなく試せた!
結果は以下の通り。
1 | { |
- ビール
https://goo.gl/images/CRZvLF1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33{
"responses": [
{
"labelAnnotations": [
{
"mid": "/m/0271t",
"description": "drink",
"score": 0.9639965
},
{
"mid": "/m/01599",
"description": "beer",
"score": 0.85104644
},
{
"mid": "/m/012mj",
"description": "alcoholic beverage",
"score": 0.8178871
},
{
"mid": "/m/01z1kdw",
"description": "juice",
"score": 0.70181847
},
{
"mid": "/m/024g6",
"description": "cocktail",
"score": 0.6707136
}
]
}
]
}
- 餃子
https://goo.gl/images/9JP87L1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33{
"responses": [
{
"labelAnnotations": [
{
"mid": "/m/02q08p0",
"description": "dish",
"score": 0.9605164
},
{
"mid": "/m/027wmf",
"description": "jiaozi",
"score": 0.8821132
},
{
"mid": "/m/01ykh",
"description": "cuisine",
"score": 0.8263993
},
{
"mid": "/m/02cv5l",
"description": "dumpling",
"score": 0.79204017
},
{
"mid": "/m/02wbm",
"description": "food",
"score": 0.76625097
}
]
}
]
}
参考サイト:Google Cloud Vision API を使う準備をする
Pythonから呼び出してみる
チュートリアルがしっかりしているので,公式サイトを参考にしてもいいし,
普通にリクエストを発行する感じでも良い。
下記は,Requestsを使ってPOSTした場合の例。
1 | import requests |
おわりに
これでとりあえずRaspberry Piでカメラを動かして,写真を撮って,物体を認識することまでできた。