「Multi-Input Convolutional Neural Network for Flower Grading」の論文まとめ
- 論文情報: Sun, Yu, et al. "Multi-input convolutional neural network for flower grading." Journal of Electrical and Computer Engineering 2017 (2017).
- pdf: https://downloads.hindawi.com/journals/jece/2017/9240407.pdf
概要
- 花の等級付け (Flower grading)は、果樹園などにとって重要なタスクに一つ。
- 実験では、3段階の等級付けを行った。
- multi-input CNNとsingle-input CNNを試した結果、multi-inputの方がより良い精度だった(89.6%)。
- さらに精度を向上させるには、芽の検出が有効であり、精度を93.9%まで上げることが可能であった。
序論
花の等級付けは、明確な違いがないため困難な作業とされている。 従来研究で、トマトとポテトの等級付けがあるが二値分類なので容易なタスクだった。 また、背景削除など人が前処理する必要があるので自動化とは言い切れない部分がある。
花の等級付けは、1視点で評価はできない。 そのため、今回は3視点のmulti-input CNNを使う。
データセットとCNN Model
データセットは自分たちでGloxiniaを撮影して収集した。
CNNはmulti-inputのものを使用した。
実験と結果
データセットは、シフトや回転などの水増し処理を行った。 80%を学習データにし、残りをテストデータとして使用した。 CNNのモデルは、畳み込み層やプーリング層のレイヤーを変化させた(multi: 23, single: 4)個を比較した。 結果は、multi-inputの方が精度がよく、89.6%であった。 結果から、芽の情報がグレーディングには重要であることが示唆された。
芽の検出
ツールはPlantCVを使用した。 芽の検出があったら、BadからMediumに予測ラベルを変更する。 この処理を画像分類後に加えることで、精度が93.9%となった。
結論
花の等級付けの画像分類モデルを作成した。 今後は、他の植物にも転用できるか検証したい。
Jetson nano + zed 2 + ros2のセットアップ
自分用のメモ。ros周りは対応しているバージョンがそれぞれで違うのでインストールが大変...。
version
jetson nanoのセットアップ
zedのSDKで使用できるJetPack SDK 4.4を使用する。 下のアーカイブのリンクからダウンロード。 developer.nvidia.com
JetPackのインストール方法↓ developer.nvidia.com
画面が消えるのを防ぐ
- 「All Settings」→「Brightness & Lock」→「Turn screen off when inactive for: 」→「Never」を選択
- 「Lock」→「OFF」を選択
ROS2のセットアップ
zed-ros2-wrapper は現在(2020/12/31) ROS2 Eloquent Elusorのサポート。
~/.bashrc
に以下を書き込む (毎回起動時にコマンド打ち込むのは面倒なので)
source /opt/ros/eloquent/setup.bash
colconのセットアップ
zed-ros2-wrapperのビルドはcolconなのでインストールする。
rosdepなどをインストール
sudo apt update && sudo apt install -y \ build-essential \ cmake \ git \ python3-colcon-common-extensions \ python3-lark-parser \ python3-pip \ python-rosdep \ python3-vcstool \ wget sudo rosdep init rosdep update
zed sdkのセットアップ
How to Install ZED SDK on Nvidia Jetson | Stereolabs
zed2 wrapperのセットアップ
VS CodeのArduino ExtensionでArduinoのSerial Portを選択する方法
Atcoder Beginner Contest 164 振り返り(A-C) 【Python】
防水型超音波センサモジュール JSN-SR04TとArduino UNOで距離推定して遊んでみた。
今回のおもちゃはこちら。
↑と大学の講義で購入したArduino UNOを使って遊びます。
センサモジュール(JSN-SR04T)について
仕様
- 動作電圧: DC 3.0 - 5.5V
- 静止電流: 5mA
- 動作電流: 30mA
- 音響放射周波数: 40kHz
- 測定距離範囲: 25 - 450 cm
- 測定角度: 75°
(参考: JSN-SR04Tのデータシート)
接続
- JSN-SR04T → Arduino
- 5V → 5V
- Trig → Pin 2
- Echo → Pin3
- GND → GND
ソースコード
Waterproof JSN-SR04T Ultrasonic Sensor and Arduino (2 Examples) の Example code for JSN-SR04T sensor with Arduinoの章に記述しているコードを使用しました。(Thank you for sharing!!)
設置&測定
センサーから真下の床までは44cmあります。 センサーでの表示は...
誤差は1cmほどのようです。思ったより小さいので利用できそうです。
※音波は、温度・湿度・圧力などで変化するらしいので、正確な距離推定をする場合は、別のセンサも必要らしい。
次に物体(アースジェット)を動かして、センシング範囲を確かめました。
次回は風呂の中に設置して、温度による変化を実験してみたいです!