LoRaWAN®で高解像度の画像は送れるか?
2021年02月09日 火曜日
CONTENTS
IoTビジネス事業部のm-ohnishiです。
これまでのブログではLoRaWAN®基地局のソーラー発電対応やバッテリー搭載による持ち運び対応についてご紹介してきました。そろそろ基地局の話はもういいよという方が出てきたと思いますので、今回は基地局ではなくデバイスのお話をしたいと思います。
私のブログで取り上げるLoRaWAN®デバイスの第一弾は、こちらのプレスリリースでしれっと公開したIIJ自社開発のLoRaWAN®カメラです。
LoRaWAN®で高解像度の画像を飛ばしたい
LoRaWAN®カメラがなぜ必要なのでしょうか?
我々が取り組んできた水田センサーLP-01の開発を始めとする水田水管理のIoT化では、水位や水温を測定するセンサーだけだと情報が限られるので、結局見回りが必要になる場合が多いことがわかりました。例えば、稲の出穂を含む生育状況、病害虫による被害の有無などはセンサーによる測定値での判断が難しいですが、高解像度な画像を送信して人が見れば判断できるので、見回りの頻度が減らせそうです。また、画像で実際の水の入り具合が確認できると、センサーが正しく稼働していることが確認できて安心感にも繋がります。
安価に利用できるのであれば、ある程度の画質の静止画を送信できるカメラが欲しいという意見も複数の農業経営体から伺っていました。また、静岡で実施した「水管理ICT活用コンソーシアム」での実証実験では、現地の状況確認用にLTEモジュール内蔵のトレイルカメラを使用していたため、その便利さを自分たちでも実感していました。
ここで、LTEモジュール内蔵のトレイルカメラがあるならそれでいいんじゃないの?と思われた方も多いと思います。確かに我々が使っていた300万画素クラスのカメラを使いフル解像度の画像を一日数枚を送るのであれば大きなデータを送信できるLTEが適していると思います。しかし、実際に使った感覚としては、XGA程度の解像度があればほとんどの用途では十分で、かつ定点監視であれば1日1回の送信でよさそうなこともわかりました。
また、LTE対応カメラではカメラ1台あたりLTE1回線が必要で通信料だけで月額数百円かかります。それがLoRaWAN®で対応できればLoRaWAN®対応センサーと同じ基地局を活用してLTE1回線を複数のカメラとセンサーでシェアできるので、低コストで現場の状況を把握することができます。
さらに、コストの問題だけでなく、我々が協力しているスマート農業実証では中山間地域で水田センサーをご利用いただいているケースもあり、LTE圏外の場所が多くありました。そのような場所でも使いたいとなるとLTEに対応したカメラだけでは対応できません。
最終的にはセンサーとカメラを統合して測定値と画像の両方を1つのデバイスで取得できるようにしたいという思いもありました。その第1ステップとしてXGA程度の高解像度の画像送信に対応したLoRaWAN®カメラの開発を検討することにしました。
LoRaWAN®通信の特徴
LoRaWAN®での高解像度の画像送信についてお話する前に、事前知識としてLoRaWAN®通信の特徴について述べたいと思います。
LoRaWAN®はLPWA(Low Power Wide Area)と呼ばれる低消費電力で広域カバレッジの特長を持つ無線通信方式の一種です。低消費電力については、例えばIIJで開発した水田センサーLP-01もLoRaWAN®デバイスの一種です。単3電池2本で30分間隔の通信を半年以上、行うことができます。広域カバレッジについては、だいぶ前にこちらのブログでお話しましたが、アンテナの設置高さに依存するものの、山の頂上に設置した基地局の場合は30km程度の通信が行えました。ただし、通信到達性についての保証はなく、距離が遠くなればなるほど通信成功率は落ちていきますので、送信のリトライなどで通信成功率を向上させる必要があります。
このように書くといいことづくめのように思えますが、LoRaWAN®を含むLPWAには一つ大きな弱点があります。それは通信速度が遅く、通信時間も制限されているために、一度に大きなデータを送信できない点です。LoRaWAN®のパラメータで SF (Spreading Factor) という値があり、値に応じて通信距離とデータサイズのバランスを調整することができます。下表は、SF値と受信感度、送信データサイズの関係を表したものです。
最も大きいデータを送信できるSF7でも最大で242バイトまでのデータしか送信できません。LP-01はSF10で最大11バイトなので、それに比べるとSF7の242バイトは大幅に大きく、センサーの測定値を送信するには十分すぎるデータサイズです。しかし、高解像度の画像を送信するには小さすぎます。
また、受信感度はSF値が小さくなると悪化するので、LoRaWAN®カメラでSF7に設定して何も対策しないとSF10のLP-01に比べて通信距離が短くなります。
LoRaWAN®カメラでの画像送信の仕組み
上で述べたように、LoRaWAN®では最も大きいサイズのデータが飛ばせるSF7でも242バイトが上限のため、そのままでは静止画でも画像を飛ばすことはできません。それを解決するために以下の2つの対策を考えました。
- 超高圧縮の特殊コーデックの採用
- 分割送信と再送制御の実装
1の超高圧縮の特殊コーデックの採用については、株式会社情報システム総合研究所が開発したMXCodecを採用しました。防災無線や衛星通信などの狭帯域の無線で画像を伝送するために開発されたコーデックで、JPEGに比べて大幅に小さいデータサイズに静止画を圧縮できる特長を持ちます。LoRaWAN®カメラの開発前に評価用に使用したデータサイズ圧縮前の元画像と、MXCodecとJPEGのそれぞれでほぼ同じデータサイズに圧縮した後の画像を以下に示します。なお、MXCodecの画像は一般のWebブラウザでも表示できるようにPNGに変換しています。
元画像(1024×768 380KB JPEG)
圧縮後画像(1024×768 30KB MXCodec ※PNG変換)
圧縮後画像(1024×768 28.6KB JPEG)
いかがでしょうか?MXCodecとJPEGでの圧縮後画像を比較すると、画質の差は一目瞭然だと思います。
JPEGの方は圧縮後のファイルサイズ指定が行えないためにMXCodecよりもやや小さいデータサイズになっていますが、それを考慮しても差は大きいです。特に擬色が目立ち、ブロックノイズも盛大に出ていてディテールが失われています。それに対してMXCodecの方は後ろの雑草部分のディテールがやや失われていますが、それ以外に元画像に対して気になる情報の欠落はありません。
さらに20KBと10KBに圧縮したMXCodecの画像も示します。
圧縮後画像(1024×768 20KB MXCodec ※PNG変換)
圧縮後画像(1024×768 10KB MXCodec ※PNG変換)
20KBの方はそれほど劣化していませんが、ややノイズが目立ってきています。10KBの方は全体の解像度が低下しノイズが多くて実用には厳しい感じです。しかし、JPEGでは20KB以下だとそもそも圧縮できなかったので、それに比べると良い結果だと思います。
他の画像でも評価した結果、30KBがMXCodecでのXGAにおける最適画像サイズと判断し、標準設定を30KBとすることにしました。
2の分割送信と再送制御の実装については、LoRaWAN®で最も大きいデータが送信できるSF7を採用し、その範囲内で画像を分割して送信し、サーバ側で受信できなかったデータはカメラに再送要求するという対策です。
以下の図で示すように、まずカメラ側でエンコードした画像を分割してパーツにします。再送制御用のデータも含めるために30KBの場合は上限242バイトではなく、200バイト単位で150パーツに分割します。画像のデータサイズが小さい場合はパーツ数は少なくなります。図では理解しやすいように画像ブロック単位で分割するように見せていますが、実際には同じデータサイズ単位で画像ブロックとは無関係に分割するので、一つでもパーツが抜けると画像がデコードできません。
次に分割したパーツを1つずつ再送制御用のデータを付加した上で基地局に送信します。基地局で受信したデータはすべて送り終えた後ですべてのパーツが揃っているかの判定が行われ、一部のパーツが抜けていた場合はそのパーツを再送するようにカメラに要求します。
抜けたパーツを送信し、足りないパーツを再送要求する処理が繰り返されて、すべてのパーツが揃った段階で分割前の画像が復元されてデコードされます。
これらの工夫によって高解像度の画像送信がLoRaWAN®で実現できました。しかし、実際に現地でSF10に設定した電波サーベイツールと通信性能を比較したところ、やはりSF値の違いにより、通信成功率に差が生じました。これではセンサーと併用する場合に通信範囲に差が生じるため、LoRaWAN®カメラのためだけに基地局を追加設置する必要が生じるかもしれません。
アンテナも改善しないと
そこで、基地局から遠い場所でもLoRaWAN®カメラが基地局と高い通信成功率で通信できるように、アンテナについても改善を検討することにしました。
幸い、こちらのブログで紹介したソーラー基地局の高性能アンテナ版で採用した防水アンテナがLoRaWAN®カメラでも技適取得済みで使えましたので、通常アンテナと比較して実測したところ、以下の表のような結果となりました。
アンテナは設置場所が高いほど通信性能上は有利になります。地点3までは以下の写真の地点2での測定時のように、車の上にカメラを置いたために通常アンテナの方が設置場所がやや高く、地点4では逆に高性能アンテナの方が設置場所がやや高くなったため、その影響が出た可能性があります。それを加味しても距離が3km以上の地点3と4では高性能アンテナのほうがかなり有利と言えると思います。
また、通常アンテナはカメラに内蔵か直接装着するのに対して、高性能アンテナはアンテナケーブルの長さを選ぶことができます。長めのアンテナケーブルでカメラよりも高い位置にアンテナを設置することで、さらに通信性能上は有利になります。
なお、測定に使用したのは高性能アンテナ版のソーラー基地局で、高台の上に設置した条件の良い基地局です。平地に設置した基地局や通常アンテナ版のソーラー基地局の場合は通信距離が短くなると思います。また、実際には再送を考慮しても通信成功率が80%以上無いと厳しいので、基地局から4km以上だと高性能アンテナでも厳しいケースが多くなるかと思います。
LoRaWAN®カメラの実写画像
以上で、LoRaWAN®カメラの通信面での課題がクリアできました。後は実際の画質が問題です。上で示した評価用の画像はLTEモジュール内蔵のトレイルカメラで撮影した画像で行いましたので、LoRaWAN®カメラのレンズやセンサーとは異なります。また、LoRaWAN®カメラはまだ専用の金型で製作したケースを使用する量産版ではなく、市販の防水ケースを使用した受注生産版となりますので、筐体による画質への影響が懸念されます。
サンプルとしてIIJ本社から外の景色をLoRaWAN®カメラで撮影した実写画像を以下に示します。ご覧になって十分な画質かどうかをご判断いただければと思います。
LoRaWAN®カメラのモデルと出荷前設定変更
LoRaWAN®カメラには屋外用のソーラー給電版と屋内用のAC給電版の2モデルを用意しました。基本的にはどちらも同じ画質で用途に応じて適したモデルの選択が可能です。
各モデルとも、アンテナは標準搭載の通常アンテナを上でご紹介した高性能アンテナに変更することが可能です。また、画像サイズや圧縮後のデータサイズ、撮影間隔も出荷前にカスタマイズが可能です。画像はQVGA 3KBからXGA 30KBまで選択でき、撮影間隔は10分から24時間まで選択が可能です。ただし、圧縮後のデータサイズが大きくなると画像送信時間が長くなり、消費電力も大きくなりますので、画質を上げるほど撮影間隔は長くする必要があります。
まとめ
今回はLoRaWAN®カメラの画像送信を中心に詳細を説明し、実写画像をご紹介しました。
防災用途で河川や水路監視などでセンサーとセットでの利用を検討されている自治体もあり、実際の導入実績も出てきております。
まだまだ機能面、品質面とも改良の余地があり、価格も受注生産のため安価ではありません。そのため、現時点では将来性を見込んで設置後の改良にお付き合いをいただける実証実験目的のユーザ様に絞っての販売とさせていただいております。台数が限られているのですぐには対応できない場合がありますが、将来の可能性を感じて導入を検討いただける方がいらっしゃいましたら、お貸し出しなどの相談も可能ですので、IIJまでお問い合わせください。