Raspberry Pi + Apache + Google Cloud Vision API + Slack API を使ってみる
目的
- Raspberry Pi をセットアップする。
- Webサーバー (Apache HTTP Server) をインストールする。
- Webカメラで撮影する。
- Google Cloud Vision API でラベリングをする。
- ラベリング結果を Slack に送信する。
全体像
動作確認
http://192.168.x.x/test.jpg
(Raspberry Pi の IPアドレス)
受信したスラック
Apache
sudo chmod 777 /var/www/html
Python
test.py
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import os
import io
from time import sleep
from datetime import datetime
import subprocess
import requests
import json
from google.cloud import vision
from google.cloud.vision import types
def exec_cmd(cmd):
#r = subprocess.check_output(cmd, shell=True)
#return r.decode('utf-8').strip()
subprocess.call(cmd, shell=True)
def take_photo():
#now = datetime.now()
#f = now.strftime('%Y-%m-%d_%H-%M-%S') + '.jpg'
f = 'test.jpg'
exec_cmd('fswebcam ' + f)
def get_label(file_name):
#key_path = '/home/pi/*/yourkey.json'
#os.environ["GOOGLE_APPLICATION_CREDENTIALS"] = key_path
client = vision.ImageAnnotatorClient()
with io.open(file_name, 'rb') as image_file:
content = image_file.read()
image = types.Image(content=content)
response = client.label_detection(image=image)
labels = response.label_annotations
d = labels[0].description
s = labels[0].score
text = 'label: ' + d + ' score: ' + '{:.2f}'.format(s)
return text
def send_slack(text):
WEB_HOOK_URL = 'https://hooks.slack.com/services/xxx'
requests.post(WEB_HOOK_URL, data = json.dumps({
'text': text,
}))
if __name__ == '__main__':
take_photo()
txt = get_label('test.jpg')
send_slack(txt)
シェルスクリプト
test.sh
sleep 3
python3 test.py
cp test.jpg /var/www/html/
Author And Source
この問題について(Raspberry Pi + Apache + Google Cloud Vision API + Slack API を使ってみる), 我々は、より多くの情報をここで見つけました https://qiita.com/takeshikondo/items/cc2bc5c692d75d50d415著者帰属:元の著者の情報は、元の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 .