Mais conteúdo relacionado
Semelhante a 家庭菜園でIoTしたい(実装編) (20)
家庭菜園でIoTしたい(実装編)
- 2. 自己紹介
松田 生吾(まつだ しょうご) @shogo_dev
株式会社アグレックス 札幌システムサービス部
AWS(Amazon Web Services)を使ってお仕事をしています。
最近のブーム
チャットボット(Amazon Lex × AWS Lambda)
Alexa Skill
AWS IoT Enterprise Button(カスタマイズ可能なAmazon Dash Button)
趣味で家庭菜園をしています。
- 12. 用意したもの② 撮影 & S3アップロードのしくみ
#!/bin/sh
FILENAME=`date "+%Y%m%d%H%M%S.jpg"`
# 静止画を撮影
raspistill -o /home/pi/${FILENAME}
# 所定のS3バケットにアップロード
sudo aws s3 cp /home/pi/${FILENAME} s3://iot-cucumber/${FILENAME}
# 撮影したファイルは削除
rm /home/pi/${FILENAME}
- 17. ・・・が、通知が来ない
フローラ :85.02748107910156
プラント :85.02748107910156
ブドウ :85.02748107910156
ハーブ :72.5037841796875
ジャー :72.5037841796875
プランター :72.5037841796875
鉢植え植物 :72.5037841796875
陶器 :72.5037841796875
花瓶 :72.5037841796875
ガーデン :71.02960968017578
ガーデニング:71.02960968017578
屋外 :71.02960968017578
ウォール :64.98812866210938
カーテン :64.57649230957031
ホーム装飾 :64.57649230957031
シャッター :64.57649230957031
ウィンドウ :64.57649230957031
シェード :64.57649230957031
植生 :58.79658889770508
藻類 :53.31078338623047
裏庭 :52.97452926635742
ヤード :52.97452926635742
食べ物 :51.13847351074219
作物 :51.13847351074219
野菜 :51.13847351074219
惜しい…?
Notas do Editor
- こんばんは。
今日は「家庭菜園でIoTしたい(実装編)」というテーマで話をします。
よろしくおねがいします。
- まず軽く自己紹介です。
普段はAWSのインフラ構築などの仕事をしています。
最近はチャットボットやAlexaスキル作りがブームです。
趣味で家庭菜園をしています。
- 今回、「実装編」としていますが、今年の2月頃に「計画編」というテーマで話をしています。
調べたところ、前回参加していない方が半分くらいいるようですので、前回のおさらいから始めたいと思います。
- 自己紹介で触れましたが、ぼくは家庭菜園を趣味でやっています。
いくつか野菜を育てているのですが、その中のきゅうりで悩ましいことがあります。
- ざっくりとしたイメージとしてはこんあ感じです。
きゅうりの写真を撮影して、AWSにかませると、きゅうりがなってるかどうかを判定して通知してくれる。
- じゃあ、きゅうりがなってるかどうか、どうやって判定するか。
AWSにAmazon Rekognitionという画像分析のサービスがあります。
これを使うことで、顔の分析、顔の比較、有名人の認識などができます。
そして今回使うのはこの「オブジェクトの検出」 つまり何が映っているかを判定する機能です。
- こんな感じです。
Rekogniitionにきゅうりの画像を見せると・・・はい出ました、キューカンバー。これは99%の確率できゅうりです。
- いろんな状態のきゅうりの画像で実験をした結果、なんとなく傾向が見えてきました。
まず、花がついている頃は0%、そこから成長するにしたがってパーセンテージがあがっていき、
収穫期をすぎると今度はパーセンテージが下がっていきます。
だいたい、60~70%をさかいに、食べられる/食べられないが変わるイメージになります。
- これを踏まえてシステム化するイメージがこうなります。
まず、毎日同時刻に家庭菜園の写真を自動で撮影し、S3・・・クラウドストレージにアップロード。
アップロードをトリガーとして、サーバレスで任意の処理を実行できるサービスであるAWS Lambdaを実行し、
そこでRekognitionAPIを叩いてきゅうりの判定、そして判定結果をメール通知する、
という流れになります。
これで収穫期を逃すことなく、ハッピーキューカンバーライフを送れるようになります。
- それではここからが本編です。
もともとLongTalkのつもりでスライドを作ってきたので、
少しの時間オーバーにはめをつぶってください。
- 先程のシステムを構築するために用意したものの1つ目がこちらです。
ラズパイZeroWとカメラモジュールです。これで写真が撮れるようになりました。
- そして2つ目。撮影して、S3にアップロードするための仕組みです。
とりあえず動けばいいと思って書いたスクリプトなので細かい部分には目をつぶっていただくとして・・・
すごくシンプルです。
まずカメラモジュールで写真を撮影して、
AWSのCLIでS3の所定のバケット 今回はIot-cucumberというバケットを作ったんですが、そこにアップロードします。
最後に後片付け。
これをCronで毎日同じ時間に実行するようにします。
- そして3つ目。S3バケットへのアップロードをトリガーにして動くLambdaです。
これもシンプルです。
まずこの部分でRekognitionのAPIを実行します。
結果はJSONで返ってくるので、それを読み取って、きゅうり度を判定し、メール通知します。
今回はテスト用に、きゅうりを認識しなくても認識した内容を通知するようにしました。
これで準備はばっちりです!
- では、いざ実験!
・・・と思ったのですが、今年は天候不順で凶作に・・・。
これは6月頃の写真ですが・・・新しい苗を植え直したのですが、なかなか成長せず・・・
- やっと実験できるようになったのがつい先日です。
早速ラズパイを窓際に雑な感じで設置して実験開始です!
- こちらがラズパイのカメラモジュールで撮れた写真です。
ちょっと暗くて分かりづらいんですが・・・こことここにきゅうりがあります。
なので、きゅうりがなったよ!という通知メールが来るはず・・・
- ・・・が、来ない。
なんでや!と思って認識した内容を見たらこんな感じ。
フローラってのは植物ですね、プラントも植物、ぶどう・・・?ツタっぽさですかね。
残念ながらキューカンバーがありません。
強いて言えば、食べ物・作物・野菜なんかが近いけど・・・かなり微妙な感じ。
- もしかして画像が暗かったせいかな、と思ってちょっと明るさを加工してみましたが・・・
結果は変わらず
- じゃあ、きゅうりの部分だけ切り抜いてみたらどうだろう、ということで適当な大きさに切り分けてみるも・・・
- ジャングルなんて言われる始末
アレカシアってのはヤシの木らしいです、パームツリーもヤシですね。
ここに至ったのがこの前の日曜日です。
・・・というわけで。
- 万策つきた!!
- じゃあ今後どうしようか・・ということで、
まず、AIにはこだわりたいと思っています。
AIを使うことには大きなメリットがあります。
今日途中で説明したように、簡単に仕組みを作ることができます。
そして学習が不要です。
これはつまり、Rekognitionで認識できるものなら検知する仕組みを簡単に作れるわけです。
例えば他の農作物であったり、あるいは人やモノを認識すること仕組みが作れちゃうんです。
じゃあ、AIを活用するために今回の敗因がなんであったのかを少し考えてみました。
まず1つにはカメラの画質かなと。暗いとどうしても認識しづらくなってしまう気がします。
ただ、これについては現状ではどうしようもないかなと。
そして2つ目が、画像の中が緑色ばかりでAIが認識するのには辛かったんじゃないかと。
実験していた時は、それなりにコントラストがはっきりしたものを使っていました。
きゅうりと、それ以外を見分けやすくなるように、きゅうり棚の作りを工夫すれば認識精度が上がるかもしれません。
そして3つ目、不作に寄る実験不足。なり始めたのがつい先日で、なる数も少なかったので試行錯誤することができませんでした。
最近ちょっと調子が出てきたみたいなので、これからもう少しモチャモチャしてみたいと思います。
この辺で情報収集と実験を繰り返して、次こそはきゅうりを認識してやるぞ!というところで今日のお話を終わらせていただきます。
ありがとうございました!