2019年12月3日火曜日

ラズパイを使った農業用リモートセンシング(2)

センサーノードの部材 紹介するよ!



前ページでセンサー部材は1ノード当たり2,000円程度と書いたんですけど
まとめ買いしてるんで、正確なところは実際わかりませんすいません(;´Д`)

失敗して壊すことを考えて2ノード以上作れるように部材を買うようにしてます

必要部材

ラズパイ本体のほかに 必要な部材一式のセットモノ


ラズパイとセンサをケーブル接続するブレッドボード
ラズパイのGPIOを拡張することができる


ラズパイとセンサーを接続するためのケーブル「オス-メス」「オス-オス」「メス-メス」の3種類が存在する。部材と工具があれば自作もできるが、実験段階であれば一揃え持っていたほうが安心


BME280温湿度、気圧センサーモジュール はP型とE型の2製品がある。P型では湿度が測れない上に外観ではわからないので、商品到着後に必ず動作確認してE型であることを確かめること


照度センサーモジュール


土壌水分センサー アナログ信号で出力されるため
ADコンバータ(MCP3002)が必要



GPSアンテナモジュール


ラズパイセンサー一式をハウスに設置するためのボックス。防水であれば何でもいいが、大きさが丁度いいため、よく使う


リレーは電気信号によりON/OFF可能なスイッチ
有線により制御する方式


リレーは電気信号によりON/OFF可能なスイッチ
こちらはwifi制御できるリレー

必要工具


各種電気抵抗
配線の実験等する時にあると安心


ジャンパケーブルを自作する場合に必要
土壌水分センサーを接続する際には5m程度のケーブルを作成する必要があるので必要


ジャンパケーブルを作る際にピンを圧着する工具
無くてもいいが、あると便利


ハンダ付けする際に必ず必要
電子工作用の先が細いものがお勧め


長いジャンパケーブルを作成する際に必要
いくつかの色を揃えておくと便利


ラズパイを使った農業用リモートセンシング


農業用に使えるセンサノード 自作するよ!

(あ、家庭菜園にもどうぞ)


なんか知らんが
地温と気温がクラウドに記録・閲覧できるだけで
2万円とかっ!!

工エエェェ(´д`)ェェエエ工

タカスギジャネ?
つーか一般的に農業用センサとかなんであんなに高いのサ

んなもん今どきラズパイ使ったら
自分で簡単に作れるんちゃうのん?



┐(´д`)┌ヤレヤレですよ…

データ集めてAI活用していかにゃ
彼の国に食われまっせ?
足の引っ張り合いヤメレ

ということで、農民のITリテラシの低さに若干顔が強張りつつ
自分の持てる知識を総動員してキレ気味に業界に喧嘩売ってみることにしました(ΦωΦ)

今回ハードウェアに2万円も出したら、センサだけでなく
それっぽい制御装置まで作れるので、是非トライしてみてください

因みにソフト部分は無料ですwww

※自分の経験上のアドバイスはできますが、結果については自己責任でお願いします

目指すゴール

このシリーズで目指すゴールは
既存のビニールハウスにラズパイセンサーノードを設置して
以下の事項を可能にすることです

・温度、湿度、気圧監視
・照度監視
・土壌水分監視
・圃場のGPS測位
・圃場が含まれる地域の現在~3時間後の気象情報/予報を収集
・上記データ類をGoogleSpreadSheetにアップロード
・上記データ類をGoogleBloggerを使って見える化
・上記データ類は閲覧制限をかけることも可能
・電磁弁、循環扇、ハウスサイドの開閉モータをタイマーにより自動制御
・上記電動部材を、タイマー以外のトリガーで自動制御
 ※上記電動部材を、AI制御の判断により自動制御(未実装)








カンペ

いきなりですが、カンペですwww
農研機構のセンセが作ったマニュアル本で、ラズパイノードの作り方やら、専用ソフトウェアの使い方などが、手取り足取り載ってます。自分の場合、色々独学で調べて形になった後でこの書籍を知ったんですが、色々な部分で参考になるので紹介させていただきます。一読の価値あります。


必要な…

精神面
・やる気
・勇気
・根気

工学系の知識をナチュラルに導入しちゃいます
各説明は省くので、詳しく知りたくなっちゃった方はそれなりの書籍でお願いします

・PC一般知識
・Linux一般知識
・Python一般知識(オブジェクト指向は未導入)
・ネットワーク一般知識
・電気・電子工学一般知識
・ハンダ付の経験

小型のオンボードPCにはいくつか選択肢がありますが
ここでは、独断と偏見でラズパイ(3B+/ゼロ)一択です



環境的前提

・ラズパイ制御用 PC(Windows10)
・ラズパイ(ゼロ、3B+)
・圃場に都合よくアクセスできるwifiインフラが整備されていること
 ※ラズパイにIPが振られるのであればSIMによる電話回線でも良いはず(未検証)
・圃場に都合よく家庭用100V電源があること
・圃場の周りに都合よく高層ビルや高い山が無いこと
・GoogleDrive GoogleBloggerにアカウントがあること
・センサ等部材 次ページ(1ノード当たり2,000円程度必要)
・電子工作できる工具 次ページ(3,000円程度必要)


ラズパイ、Linux、PC一般の知識は
以下のブログ等参照してください





2017年10月29日日曜日

【実践】機械学習 #01

【実践】機械学習

-#001-

環境/前提

・教科書:ゼロから作るDeepLearning 斎藤 康毅著

・Eclipse + PyDev
・PC AspireV5122P

・Python経験:初〜中級程度
・オブジェクト指向プログラミング:初〜中級程度
・行列計算経験初〜中級程度

・GitHub
・GitKraken

実践

判定結果→←読み込み画像


1-3章までで

・ニューラルネットワークて なんぞ?
・重み、バイアスって なんぞ?
・「機械学習」って なんぞ?

↑といった、ことがテンポよく理解できて、「深層学習の基礎を理解した気」になれますw
ニューラルネットワークの、重みやバイアスのパラメータを、「自動的に算出する手法」が、機械学習のすごいトコなんですよ、と。

ソースコードもダウンロードできるため、実行環境さえ整えれば、コードを1行も書くこと無くディープラーニングを体験することが可能になっています。

4章まで理解したら、アトはマシンパワー使って学習をブン回せば、それなりに最適化された重み&バイアスマップ=学習結果が手に入るんでしょ? っていう認識。

反省

数値の読み取りの他にどういった実装が出来そうか、考えるのが楽しみ。
テストデータと教師データを用意するのが大変そう。

2017年4月17日月曜日

OpenCV @Python で動画の手ブレ補正してみた


基本的には↓のコードをPythonに移植すれば、
素人目にはちゃんとブレが取れるものができるんさ。

 Simple video stabilization using OpenCV


Pythonのソースコードを載せないクズ→σ(゚∀゚ )オレ
んが、しかし
フレーム毎に抽出している特徴点(cv2.goodFeaturesToTrack)の軌跡を使ってカメラ移動(縦・横・回転)の平均をとっている関係上、次のような特徴があり、一般的に動画ファイルに対して手ブレ補正をかけようとすると、こまかい点で工夫が必要となります。
 
・抽出される特徴点が、必ずしもブレの除去に適していない…とか
・フレーム間で特徴点の変化が大きすぎるときには、cv2.calcOpticalFlowPyrLKがエラーを吐いて止まる…とか

 特徴点の発生する範囲や量をいろいろ弄る必要があり、往生しましたが、なんとなく僕の望んでいるものにはなってきたような気がします(-_-;)


※携帯カメラの性能が良くないせいか、あまりジッと見ていると酔います(-_-;)
左が補正前 右が補正後






Youtubeの自動手ブレ補正機能は、縦・横・回転により映像の端が不自然にならないよう、上手に調整してあります。流石です。 ←それ故、大きすぎる振動(ジェットコースターのオンボード映像等)の除去には限界がある模様

2017年1月2日月曜日

xubuntuでjava開発環境を整えてみる

 

 

材料

  • xubuntu16.10
  • java8
  • eclipse3.8
  • AmaterasUML1.3.4
    • GEF(↑が必要としている)
自分が再構築できなくなるので、トリッキーなことはしない主義
チューニングとかほぼ無しの、ドノーマル仕様のXubuntu16.10がベースです


Xubuntuのインストール

Xubuntuはほぼノーマルなので、インストールは割愛

Java(ランタイム、開発環境)とeclipseをインストール
sudo apt-get install default-jre default-jdk eclipse

eclipse用のUML記述環境をインストール

GEF


※GEF公式HPからのダウンロード方法がわからなかったため、Eclipseが持っているインストール方法を利用することにした。

Eclipseメニューの「ヘルプ」-> 「Install New Software...」をクリックして,インストールウィンドウを開く.以下の手順を実行してGEFをインストールする.

    「作業対象」: "http://download.eclipse.org/releases/luna/" 入力
   …Eclipseがリストを取得するので、しばし待つ…
    「モデリング」-> 「グラフィカル編集フレームワーク GEF SDK」をチェック
    「次へ」をクリックして,インストールの流れを進める.
   …インストールの同意をすれば、再起動ボタンが表示される
    Eclipseを再起動する.

AmeterasUML

AmaterasUMLはこちらから入手してください。
入手したアーカイブを解凍し、出てきたjarファイルをEclipseのプラグインフォルダにコピーすれば、インストールは完了
 ↑「プラグインフォルダー」は、利用者が自分だけだれば ~/eclipse/org.eclipse.platform_3.8_ホゲホゲ/plugins/


 AmaterasUMLの使い方

  1. 「ファイル」->「新規」->「その他」をクリック.
  2. 「AmaterasUML」→「クラス図」を選択してファイルを作成.
  3. 必要なクラスファイルをドラック&ドロップ

2016年12月15日木曜日

Huginを使ってみた 第3回(END)

自動検出に失敗した時の対処のしかた(2)

(肉眼でオーバーラップ部分の特徴を探して指定する)
←第2回

   


 

対象となる画像をパノラマ要素として読み込む

第2回の続きの場合、諸悪の根源となる画像がリストから消された状態のはずなので、今一度パノラマ要素として読み込みます。対象画像をリストから消していない場合にはこの操作は不要です

「パノラマ写真作成ソフト」ウィンドウ、「photos」タブの、「AddImages」ボタンを押下
(この説明では、13番画像が操作が必要となる画像)


2つの画像の関連する点を手作業で指定していく

「コントロールポイント」タブを表示して、13番画像とオーバーラップがあるはずの画像を選択ます
図の画像名の横にある←→▲▼を押せば、画像が切り替わります。このとき表示される画像の配置は、右左関係がありません。
(今回は12番画像が、13番画像と隣同士)

この時、←→ボタンを押していると、他の画像同士の自動判定された関連をみることができると思います。要するに、以下の操作でコレと同じ状態にしていけば良いということです。
オーバーラップが正しく自動判定されているパーツ

人の目で大局的に見て、「同じような部分」を予め見定めて、以降進めてください。
このへんだよね〜
どちらかの画像で関連付けしたい部分を1箇所クリックしたら、その部分が拡大表示されます。
 

「ここだ!」と思う点が左右の画像で一致したら、すかさず「追加」ボタンを押すことで、その点がコントロールポイントとして追加されます。
 この時、撮影時の状況にもよりますが、当然のこととして、パーツを分けて、角度を変えて撮影しているので、「完全一致はありえません」 ←ここの事情を汲みましょう。
今回の画像の場合では、「水面」、草という被写体の特性上、なおさら完全一致はありえません…
なので、そこは人の目の「曖昧さ」を利用して「大局的な一致部分」を指定してやります
 コントロールポイントは多ければ多いほど出来上がりの画像がそれらしくなるのですが、最低3点はほしいところ。頑張って関連する部分を探しましょう。

再びの自動配置

コントロールポイントを手作業で記録したら、「ファストパノラマビュー」ウィンドウに戻って、
「アシスタント」タブ→「配置」ボタンを押下して、今一度自動で処理を行わせてみます。
すると、今度は追加したコントロールを踏まえた画像の配置を行ってくれるはずです。
正しく配置された♪
 コントロールポイントを表示してみると、自動認識で画像のどこを「同じ点」として認識しているのか、眺めることができます。
この時、直線で結ばれた×印は、多分間違った点同士を「同一点」として見ていますw
まぁ、全体の出力があまりにも現実離れした画像とならなければ、ほっといても問題にならないのかなというトコロ。

 以上が、Huginの基本的な使い方なのかな、と思います。
これから、深く掘り下げて、「投影方法」の違いなんかにも挑戦していけたらなと思います。



2016年12月14日水曜日

Huginを使ってみた 第2回

自動検出に失敗した時の対処のしかた(1)

(一度諸悪の根源を把握し、消し去ってみる)
←第1回                             第3回→



 

画像を読んで「配置」ボタンを押下した自動配置でエラー↓が出てしまった場合の対処

このダイアログはとりあえず「continue」で凌いでいただいて…
なにかの処理に渡す引数がおかしい…、的なエラー?
次に出現するダイアログを読むと、 
14枚ある画像のうち、[0-12]と[13]の間に関連が検出できなかったことがわかります。
このダイアログの数字は、改善のイトグチなので、サラッと流さないでください!
エラーのある画像の番号を控えて「OK」を押下して、「ファストパノラマビュー」に戻ります
14枚ある画像のうち、[0-12]と[13]の間に関連が検出できなかった

 現状で「配置」タブを見たところ、画像がすべて横並び…
上下2段になってほしいところなのですが…
ホントはこう↑なってほしいのに…
 

一度諸悪の根源を断ってみる