W&T's diary

W&T Thermal Cam に関連する情報

Thermal Cam シリーズ

 Thermal Camとは About Thermal Cam.

Thermal CamはFlir LEPTON3.0又は3.5を使ってiPhoneでサーモグラフィーを実現します。カメラとiPhoneテザリングによる無線接続です。

Thermal Cam can be used on iPhone with Flir LEPTON3.0 or 3.5 for thermography. The camera and iPhone are wirelessly connected by tethering.

f:id:TAKEsan:20191114203002p:plain

Thermal Cam 3X

Thermal Cam3が新しくなりました。次のような特徴を持っています。

  • 今までの使い勝手はそのままに、AIによる画像認識機能が加わった
  • 画像認識ファイルは自由に入れ替え可能。ユーザーが作成した学習済みファイルも使用可能で、認識した対象物についてアラート機能を付加。
  • 新たにM5Stackで動作可能になった。
  • LEPTON3.0と3.5を自動判別できるようになった。

Thermal Cam3Xは市販のESP8266ボードとFlir LEPTON3.0 又は3.5が必要です。以下の説明を確認し、必要部品をそろえた上でArduinoアプリをインストールして下さい。いままでThermal Cam3を使っていた方は、ESP8266側のアプリの入れ替えが必要です。https://drive.google.com/file/d/1uHMfr08MFBr5SeRYjOp-y0Ix-GH0isf-/view?usp=sharing

Thermal Cam3 is new. It has the following features.

  • The image recognition function by AI has been added while maintaining the conventional usability.
  • Image recognition files can be freely replaced. User-created learned files can also be used, and an alert function is added for specified objects.
  • Newly operable with M5Stack
  • Automatically distinguish between LEPTON 3.0 and 3.5

Thermal Cam3X requires a commercially available ESP8266 board and Flir LEPTON3.0 or 3.5. Please check the following explanation and install the Arduino app after you have the necessary parts. If you have been using Thermal Cam3 until now, you need to replace the ESP8266 app.   https://drive.google.com/file/d/1uHMfr08MFBr5SeRYjOp-y0Ix-GH0isf-/view?usp=sharing

 

基本機能の操作方法はこのビデオををご覧下さい。Watch this video for basic function operation.

      

AI機能を利用するとこのようなことができます。You can do this using the AI function.

      

M5Stackも使えるようになりました。M5Stack can now be used.

                      

取扱説明  Handling instructions

Thermal Cam BOSON  Coming soon !

 

 

 

 

 

 

 

ダイナミックレンジ・カラーレンジ・サイドビュー画面について About Dynamic Range,Color Range,Side View.

ダイナミックレンジについて About dynamic range

LEPTONは測定温度に応じて14bitの数値を出力しますが、白黒データにすると1ピクセルあたり最大8,192階調にもなります。計測範囲は-273 〜 + 300 ℃( 分 解 能 : 0.05℃ )。現状の通常ディスプレイで表現できるグラデーションは256段階。それに色を付けます。ところが表示装置の制限で、測定可能範囲を256階調にすると非常に荒い画像となることになります。さらに測定する温度範囲はその中のごく一部で、濃淡が出ないために画像が表現できません。回避策は画像として表示するため計測範囲をここで256階調に変換することになります。

LEPTON outputs a 14-bit value according to the measured temperature, but if it is monochrome data it will be up to 8,192 tonal levels per pixel. Measurement range is -273 ~ + 300 ℃ (resolution: 0.05 ℃). There are 256 gradations that can be expressed in the current normal display. I add color to it. However, due to limitations of the display device, if the measurable range is set to 256 tones, it will be a very rough image. Furthermore, the temperature range to be measured is only a part of it, and the image can not be expressed because there is no shade. Since the workaround is displayed as an image, the measurement range will be converted to 256 tones here.

f:id:TAKEsan:20180221104750p:plain

色付けした画像が下図のようになり、Thermal Camの標準画面です。

f:id:TAKEsan:20180221104916p:plain

この方法は問題があって、刻々と変化する温度領域をその都度256等分することになるので、測定場所の移動で、画面毎に色がめまぐるしく変化してしまいます。

Since this method has problems and it will divide the constantly changing temperature range into 256 equal parts each time, as the measurement place moves, the color changes dramatically from screen to screen.

f:id:TAKEsan:20180221105448p:plain

室内のように最高最低温度の差があまり無い場合は、気になりませんが、例えば画面に極端な高温部が部分的に存在する場合、温度差が増しただけ解像度が下がることになるので極端な温度幅になり、室内の階調がほとんど無くなることになります。 

If there is not much difference between maximum and minimum temperatures as in the room, you do not mind, for example if the extreme high temperature part is partially present on the screen, since the resolution will decrease as the temperature difference increases It becomes an extreme temperature width, and the gradation of the room almost disappears.   

       f:id:TAKEsan:20180221105344p:plain

f:id:TAKEsan:20180221105552p:plain

これを防ぐため、この例の場合低温寄りのある範囲で256階調にすれば画像表現できることになります。

調整する方法として、現状の最高最低温度の低温側及び高温側を全体の比率で調整できるようにしたのがダイナミックレンジです。調整範囲外は白又は黒になります。下図は低温側を調整した場合です。

In order to prevent this, in the case of this example, if it is 256 tones in a certain range close to low temperature, it is possible to express the image.

As a method of adjustment, the dynamic range is made to be able to adjust the low temperature side and the high temperature side of the current maximum and minimum temperature by the whole ratio. Outside adjustment range is white or black. The figure below shows when adjusting the low temperature side.

f:id:TAKEsan:20180221105809p:plain

f:id:TAKEsan:20180221105916p:plain

現在の最低最高温度の範囲で、低温側32%を256階調表現している。Max温度はこの場合炎の温度ではなく背景の最高温度となる。高温側を調整した場合はMin温度が変化する。

In the current lowest maximum temperature range, 32% of the low temperature side is expressed in 256 tones. In this case Max temperature is not the temperature of the flame but the maximum temperature of the background. When the high temperature side is adjusted, the Min temperature changes.

結果的に、ある温度帯でLPTONの分解能の限度まで階調を表現できるようになります。これがThermal Camのダイナミックレンジスライダーです。

As a result, gradation can be represented up to the limit of the resolution of LPTON in a certain temperature range. This is the dynamic range slider of Thermal Cam.

----------------------------------------------------------------------------------------------------------------------------

編集

 

カラーレンジについて  About color range

室内のように測定温度範囲が小さい状況で温度画像を再現したい場合、他の方法で背景色の変化をできるだけ無くする方法はないのでしょうか?。-273〜+300 ℃の計測範囲を例えば室内の最低最高温度(24℃〜34℃とか)に変えて、この間に256階調のカラーマップを適用させる方法で解決できます。測定温度に対応する色が固定されるので画像が安定することになります。

If you want to reproduce a temperature image in a situation where the measurement temperature range is small like indoors, is there no way to eliminate background color change as much as possible using other methods? . It can be solved by changing the measuring range of -273 to + 300 ° C to the minimum room temperature (24 ° C to 34 ° C, for example) in the room, and applying 256 gradation color maps during this period. Since the color corresponding to the measurement temperature is fixed, the image will stabilize.

  f:id:TAKEsan:20180221110100p:plain

    

f:id:TAKEsan:20191115143928p:plain

上記のようにKansai Denkiボタンを押しカラーレンジをONにすると、画像右上にグレーの点と、現在の最低最高温度が表示されます。

When the Kansai Denki button is pressed and the color range is turned on as shown above, a gray dot and the current minimum and maximum temperature are displayed in the upper right corner of the image.f:id:TAKEsan:20180221111008p:plain

同時に左下の現状最低最高温度表示部分に青と赤の点が現れます。二つの点の範囲が絶対カラーマップの範囲を示します。現状はその範囲でどのあたりを利用しているのか判別できるようにしました。測定した温度帯が刻々と変化しますので、この2つの点も常に動くことになります。カラーマップONで極端な温度が部分的に発生した場合でも、下図のように(ライターの火が画像に入っている)背景色は変化しなくなります。

At the same time, blue and red dots appear in the lowest highest temperature display area at the bottom left. The range of two points indicates the absolute color map range. The current situation has made it possible to judge which area is used within that range. Since the measured temperature zone changes every moment, these two points will also move at all times. By doing this, even if extreme temperatures are partially generated, the background color will not change as shown below (the lighter's fire is in the image).

f:id:TAKEsan:20180221111133p:plain

赤と青の点の範囲と現在のカラーマップがうまく動いていることがわかると思います

You can see that the range of red and blue points and the current color map are moving well.

この新機能は、現状カラーマップが標準カラーマップのごく一部の範囲となった場合階調が著しく失われますので注意が必要です。

Please note that this new function will cause the gradation to be significantly lost if the current color map becomes a small part of the standard color map.

----------------------------------------------------------------------------------------------------------------------------

サイドビューについて  About side view

設定でSide View をON。特に確認したい温度領域 Target temp で温度を指定します。

この設定で、画面右側にサブビューが表示され、ターゲット測定温度は緑色で表示されます。

Set Side View on setting. Specify the temperature with the temperature range Target temp you want to check.With this setting, a subview is displayed on the right side of the screen and the target measurement temperature is displayed in green.

f:id:TAKEsan:20180221111400p:plainf:id:TAKEsan:20180221111454p:plain

f:id:TAKEsan:20180221111642p:plain

この例のように最高温度最低温度域、設定温度域が即座に確認できます。測定域が現在の最低温度より低いときは、当然ですが緑表示されないのでご注意下さい。

As in this example, the maximum temperature minimum temperature range, set temperature range can be confirmed immediately. Please note that when the measurement area is lower than the current minimum temperature, green display will not be made.

----------------------------------------------------------------------------------------------------------------------------

LEPTONの温度計測に関する全般的な注意点は、 Overall note on temperature measurement of LEPTON

  • LEPTONは温度計測が安定するまで多少の時間が必要です
  • 作成したアプリは対象熱源の放射率を考慮していません
  • 現在販売しているLEPTON3は温度測定の保証はしていません
  • LEPTON needs some time until the temperature measurement stabilizes
  • The created application does not consider the emissivity of the target heat source
  • Temperature measurement is not guaranteed for  LEPTON 3 which are currently on sale

以上のことから場面や環境で測定温度に誤差があることをご理解下さい。

Please understand that there is an error in the measured temperature in the scene or environment from the above.

 Goto Home 

----------------------------------------------------------------------------------------------------------------------------

 * 1: There are few noises depending on the distance and the surrounding conditions, but the frame rate drops.

Thermal Cam3X System overview

システム概要

そもそもLEPTONサーモセンサーってなに? What is LEPTON thermosensor in the first place?

このセンサーだけで熱を感知して、画像を再現します。真っ暗闇で何の照明も使わずに画像が再現できます。詳しくはメーカーサイトを御覧ください。

This sensor alone senses heat and shows thermal image. Thermal Images can be seen in the dark without any lighting. Please see the manufacturer site for details.

FLIR Lepton® | FLIR Systems

なぜ WROOM02 (ESP8266) を使うのか? Why use WROOM 02 (ESP 8266)?

その消費電力の少なさと価格の安さに尽きます。消費電力はESP32やPi Zero の約半分。基盤を選べば280mAhの極小リポバッテリーでLEPTON3の場合でも1時間以上赤外線動画を発信し続けます。

It consumes less power and lower price. Power consumption is about half of ESP32 and Pi Zero. If a good pcb is chosen, it will continue to transmit infrared video for over 1 hour even in case of LEPTON 3 with 280 mAh mini lipo battery.

f:id:TAKEsan:20170920222645j:plain

新しく開発したドローン向けの比較的大型の基板でも、電池を含めて僅か18gです

このことは、小型ドローン搭載を始め色々な用途で使えることを意味します。ESP8266でLEPTON3の画像を30~100m離れたところからiPhoneで受信できます。

上記写真は、小型ドローンに特化したボードでスイッチサイエンスさんで取り扱っていただいています。

ESP8266には何も改良を加えていないので当然技適も問題ありません。このボードとiPhoneアプリとの組み合わせで双方100m程度離れている条件で、iPhoneからLEPTON3のほぼノイズがない画像が継続して再現できました。しかも測定した場所はWIFI中継点が20箇所程度と非常に劣悪な環境でした。(下記で実際の動画が確認できます)

残念ながら一般のボードでは最大の動画受信距離は35m程度です。今回のアプリはボードを選びませんが、性能と安定性を望むならカスタム基盤が必要になります。

This means that you can use it for various purposes, including toy drone. However, as we introduced in previous articles, there are many problems. LEPTON 3 with ESP 8266 and still be able to receive on iPhone from30~100 m .

The picture above is a board specializing in small drones and handled by Switch Science.Since there is nothing to improve on ESP 8266 naturally, there is no problem with skill. With this combination of this board and software of this time it was able to reproduce images with almost no noise of LEPTON 3 from iPhone under the condition that both are 100 m away.

Moreover, the place where we measured was a very bad environment with WIFI relay point of about 20 places. (Actual video can be confirmed below) 

Unfortunately the maximum video reception distance on a general board is around 35 m. This application does not choose a board, but if you want performance and stability, you need a custom pcb made by Wiwao. If you can successfully distribute movies with ESP 8266, there is nothing to benefit from using other processors or ESP32.

LEPTON3+Thermal Cam3をMavic Airに取り付けて撮影すると.......。When LEPTON 3 + Thermal Cam 3 is attached to Dobby and shot ........

次の動画は、Oosawaさんが小型ドローンMabic Airに今回のシステムを取り付けて、実際に太陽電池メンテナンス用にTestフライトを実施したものです。(協力:大澤 雄一郎)

The following video is Oosawa's installed this system on a small drone Mabic Air and actually conducted a Test flight for solar cell maintenance.

      Thermal Cam3はUDP OSC通信をiPhoneデザリングで実現していますが、周りの妨害電波からほとんど影響を受けません。Thermal Cam 3 conducts UDP OSC communication with iPhone tethering, but it is not hardly affected by surrounding jamming waves.

次の動画はWiFi中継点が20ヶ所程度でパケットに影響の出やすい駅構内で録画していますが、多少フレームレートが落ちる程度で、画像ノイズは全くないことが確認できます。

Although the next movie is recording on the station premises where the WiFi relay point is likely to affect packets at around 20 places, it can be confirmed that there is no image noise at all, as the frame rate goes down slightly.

     夜なのにこんな画像が録画できます。Even though it is night, you can record such an image.

 人も車も風景も、そして電線も.....。このクオリティー。結構いいかもしれません。

People, cars, landscapes, electric wires ...... This quality. It might be pretty good.   

   

100m離れた場所での画像です。It is an image at a place 100 m away.

 WROOM02(ESP8266)側のWIFI中継点は20箇所。iPhone側は7箇所でした。少しパケット紛失(インジケーター黄色点滅)しているようですが、動画のスピードは問題ありませんでした。この画像の撮影ではWiwaoさんの最新ボードを使っています。

There are 20 WIFI relay points on WROOM 02 (ESP 8266) side. There were 7 places on the iPhone side. It seems that a little packet loss (indicator yellow flashing), but the speed of the video was not a problem. For shooting this image, I use his latest board of Wiwao.

   LEPTON3が風に揺れています。ほとんど遅れがないことと、画像のノイズが全くないことが確認できました。この場所はすぐ左側が崖になっている住宅地で、パケットのエラー修正がまともにできていないと、満足に画像が再現できない「魔」の場所です。

LEPTON 3 is swaying in the wind. It was confirmed that there was almost no delay and no image noise. This place is a residential area where the left side is a cliff soon and it is a place of "devil" that can not reproduce images satisfactorily if error correction of packet is not done properly.

Goto Home

ESP8266を使う場合のインストール方法 Installation method when using ESP8266

アプリ実行前に...。 Before running the application ....

 

このアプリは以下の別部品およびソースのインストールが必要です。順番に沿って部品の調達およびソフトのインストールを行ってください。WROOM02のソースコンパイル時はモリーとCPUスピード設定をそれぞれ80MHz,160MHzに設定が必要です。(Thermal Cam (for LEPTON1)は以前周波数を下げていましたが、V2.0では周波数を上げてコンパイルします)※「5.ボード設定は以下の通りとしてください」参照

まずESP8266開発ボード、LEPTON3、LEPTONブレイクアウトボードを手に入れてください。 以下必要部品の入手先とLEPTON画像再現までの手順です。

This application requires installation of the following separate parts and source. Please procure parts and install software according to the order. When source compiling WROOM 02, it is necessary to set memory and CPU speed setting to 80 MHz and 160 MHz respectively. 

 First, get the ESP 8266 development board,  LEPTON 3, LEPTON breakout board.Below is the procedure from where to obtain the required parts to LEPTON image reproduction.

 1.ESP8266開発ボードを用意してください。Prepare the ESP8266 development board.

f:id:TAKEsan:20191118111932p:plain 

LEPTON3はSPIとi2C及び3.3V出力端子が必要です。これらの端子が使用できないボードもありますので、購入時は注意してください。

LEPTON 3 requires SPI and i2C and 3.3 V output terminals. Some boards can not use these terminals, so be careful when purchasing.

専用のボードを販売しています。(W&T Thermal Cam PCB)

         W&T Thermal Cam PCB - スイッチサイエンス

         W&T Thermal Cam PCB用パーツセット - スイッチサイエンス

SPIの信号が安定するばかりでなく、WiFiの飛距離が技適範囲内で大きく伸びます。

 We decided to sell the board we made. In addition to stabilizing the signal of SPI, the distance of WiFi will dramatically increase within the technical range! ! .

2. LEPTON3又は3.5を用意してください。Please prepare LEPTON3 or 3.5

f:id:TAKEsan:20191118113207p:plain

 LEPTONセンサー自体は完全防水で、衝撃にもかなり強いため悪条件にびくともしませんが、取り外し可能なシャッター部品は壊れやすい欠点があります。取り扱いには十分に注意してください。LEPTONは定期的にシャッターを閉じて画像のキャリブレーションを行っていますが、シャッターが壊れると残像が残るなど、画像に障害が出て来ます。今の所シャッターの交換部品は販売していない様なので、取り扱いには十分注意が必要です。

The LEPTON sensor itself is completely waterproof, and it is quite strong for impact, so it does not bother with adverse conditions, but detachable shutter parts have a breakable disadvantage. Please handle with care. LEPTON regularly closes the shutter and calibrates the image, but if the shutter breaks, afterimages will remain, such as image failure will come out. Currently it seems that we do not sell replacement parts for the shutter, so careful handling is necessary.

3. BREAKOUT BOARDが必要です。 BREAKOUT BOARD is required.   

f:id:TAKEsan:20191118113845p:plain

Ver1.0 は製造中止ですが ver2.0 はFLIR Lepton Breakout Board v2.0 | FLIR Systemsで手に入ります

In Japan, you can get it with Cornes Technology or Digi - Key.                              

 4. Arduino IDEをインストールします(Macの場合) Install Arduino IDE (Mac)

Arduino IDE https://www.arduino.cc/en/main/software  をインストール

IDEを起動させたら、

Arduino-->Preferences 

出てきた環境設定ダイアログの下の方「追加ボードマネージャーのURL:」の中に

http://arduino.esp8266.com/stable/package_esp8266com_index.json

を書き込む。

Install Arduino IDE https://www.arduino.cc/en/main/software   After starting the IDE,

Arduino-->Preferences

In the lower part of the setting dialog that came out "in the URL of additional board manager:"

http://arduino.esp8266.com/stable/package_esp8266com_index.json

 f:id:TAKEsan:20171008224533p:plain

ツール-->開発ボード-->ボードマネージャー を選択

最後の方にesp8266 by esp8266 Community という項目があります。 f:id:TAKEsan:20170920210049p:plain

バージョンは必ず2.2.0 を選択してください。(上図はすでに2.2.0を選択してるので選択画面には出て来ていない)すでに 2.3.0を選択している方は 2.2.0にバージョンを落としてください。2.3.0で今回のソースをインストールするとうまく動作しません。 

Be sure to select 2.2.0 for the version. (Since the above figure has already selected 2.2.0, it has not appeared on the selection screen.) If you have already selected 2.3.0 please drop the version to 2.2.0. Installing this source in 2.3.0 does not work well.

 5. ボード設定は以下の通りです。 The board settings should be as follows.

シリアルポートはESP8266を接続すれば表示されますが、Bluetoothでない方を選択します。注意点は、Macの場合ESP8266を何回も抜き差しすると、USBを認識しなくなることです。認識しない場合はMac側のUSBコネクタを変更すると、認識するようになります。MacBookのようにUSBコネクタが2つしかなくて両方認識しなくなったら、再起動……。です。       Flash Frequency=80MHz、CPU Frequency=160MHzであることに注意してください。    

The serial port will be displayed if you connect the ESP 8266, but choose the one that is not Bluetooth. The caveat is that if you plug or unplug ESP 8266 multiple times on a Mac, it will not recognize USB. If you do not recognize it, you will recognize it when you change the USB connector on the Mac side. If there are only two USB connectors like a MacBook and both do not recognize, restart ....... is. Please note that Flash Frequency = 80 MHz, CPU Frequency = 160 MHz.                 

f:id:TAKEsan:20170924110748p:plain

f:id:TAKEsan:20170920210155p:plain   

 6. OSCライブラリをインストールします。 Install the OSC library.

Arduino IDEの Arduino—>Preferences..  を選択して一番上の スケッチブックの保存場所を確認します。

Select Arduino-> Preferences .. in the Arduino IDE and check the storage location of the top sketchbook.

 f:id:TAKEsan:20170920210844p:plain

この中にlibraries フォルダがあるかどうか確認します

Make sure there is a libraries folder in this.

無かったらlibrariesフォルダを作成します。以下のURLを開いて

https://github.com/sandeepmistry/esp8266-OSC

ESP8266のOSCライブラリをダウンロード解凍してlibrariesフォルダに移動させます。

一度Arduino IDEを終了させ、再起動後 スケッチ-->ライブラリをインクルードを選択して 「OSC 」が入っているかどうか確認。

If you do not have it, create a libraries folder. Open the following URL

    https://github.com/sandeepmistry/esp8266-OSC 

Unzip the OSC library of ESP 8266 and move it to the libraries folder.

Exit the Arduino IDE once, after restarting, select Sketch -> Include Library to check if "OSC" is included.

 7. iPhoneを設定します。 Configure iPhone.

iPhone を普通に初期設定するとssidは日本語になります。エラーが起きる可能性がありますので半角英字に修正してください。

 設定-->一般-->情報-->名前-->現在のiPhone名称>を選択 で名称を変更します。名称を変更してもiPhone自体の挙動に影響はありません。 

When initializing iPhone as usual, ssid becomes Japanese. Please correct it to half-width alphabetical as it may cause an error.

Choose Settings -> General -> Information -> Name -> Current iPhone Name> to change the name. Changing the name does not affect the behavior of the iPhone itself.

 8. ESP8266Arduino ソースをダウンロードします。Download the ESP 8266 Arduino source.

上記URLからダウンロードしてください。(LEPTON3.0と3.5はアプリが自動判別します)Arduino IDEを開いて、ダウンロードしたファイルをダブルクリック。フォルダの中に入れますか?と聞かれるので、YESを選択。OSCやSPIの安定化、UDPパケット紛失問題の解消、ESP特有のWDTリセットの解決方法をコメントしておきました。ボードを選べば100m以上離れた場所でLEPTONの画像が再現できます。 

Please download from the above URL.Open Arduino IDE and double click on the file you downloaded now. Can you put it in the folder? As you are asked, choose YES. We commented on the stabilization of OSC and SPI, the elimination of UDP packet loss problem, and the solution method of WSP reset specific to ESP. If you choose a board, LEPTON images can be reproduced in places more than 100 m away.

 9. 今回のiPhoneアプリをダウンロードします。Download this iPhone application.                

f:id:TAKEsan:20191114144756p:plain

W&T又はkansaidenkiで検索。Themal Cam3Xを探します。申し訳有りませんが有料アプリです。

Search by W&T or kansai. Look for  Themal Cam 3X according. Sorry, this is a paid app.

 10. 今回のソースを開いて一部を修正します。Open this source and fix some.

修正が必要な部分は、以下の3箇所です。 

         40,41行目付近   

          #define SSID_X    “ABiPhone”   //iPhone 

          #define PASS_X    "11111111"   //iPhone 

 ABiPhoneにiPhoneの名称、11111111 に 設定-->モバイルデータ通信-->Wi-Fiのパスワード を調べて パスワードを入力します。

          51行目付近

          #define LEDpin 16 

に自分のボードに合ったLEDのピン番号を入力してください。LEDは特に必要ありませんが、ESP8266の状態がわかるので、点灯すると便利です。サインは以下の通りです。

  • LED 長点滅 初期のWiFi接続中の場合点滅。
  • LED 短点滅 iPhone側のアプリが中断した場合点滅。
  • 無点滅   正常にデータを送っている場合。
  • 無点滅中一瞬LEDが光る場合 パケットが紛失して、再度同じパケットを送っている時。ピカッピカッが多いときは、周囲の電波状態が悪く連続してパケット修正をしている状態なので、画像のフレームレートが下がります。

 GPSをONにすると、周期的に一瞬ピカッと光ります。確実にパケットを紛失してるのですが画像にはさほど影響がないことがわかると思います。BlueToothをONにするとさすがにたくさん点滅してフレームレートが多少落ちます。

The parts that need to be modified are the following three places. 

Near lines 34 and 35 

          #define SSID_X    “ABiPhone”   //iPhone

          #define PASS_X    "11111111"   //iPhone

Set the name of iPhone to ABiPhone, set to 11111111 -> Mobile data communication -> Enter the password by checking the Wi - Fi password.

          Line 47 (for LEPTON 1) Near line 53 (for LEPTON 3)

           #define LEDpin 16

Please enter the pin number of LED matching your board. Although LED is not particularly necessary, it is convenient to light up as you can understand the state of ESP 8266. The signature is as follows.

  • LED blinking - when initial WiFi connection is in progress. 
  • LED Flash short blink Blinks - when iPhone side application is interrupted.
  • No flashing - When sending data normally.
  • When the LED glows instantaneously during blinking - When the packet is lost and is sending the same packet again. When there are a lot of shocks, the frame rate of the image decreases because the ambient radio condition is bad and the packet is being corrected continuously.

When GPS is turned on, it glows shimmerly periodically. I think that you can see that there is not much effect on the picture although it surely loses the packet. When BlueTooth is turned on, it glows a lot and the frame rate drops.

11. ESP8266とLEPTON BREAKOUT BOARD を接続します。Connect ESP 8266 and LEPTON BREAKOUT BOARD.

スイッチサイエンスESPrの場合、LEPTONブレイクアウトボードとESP8266の結線は以下の通りです

For switch science ESPr, the connection between LEPTON breakout board and ESP 8266 is as follows 

       f:id:TAKEsan:20191118122016p:plain                       

 12. WROOM02(ESP8266)ボードにプログラムを転送します。Transfer the program to WROOM02 (ESP8266) board.

以上設定が終わったらコンパイル、転送します。たまにエラーが出る場合がありますが、その場合は再度転送してください。(USBを認識していない場合が多い)

When compilation and transfer are done, it completes. Although occasionally an error may appear, please transfer again in that case. (USB is not recognized in many cases) 

13. いよいよサーモグラフィー開始 The thermography finally starts !!

iPhoneX、11Proでの動作確認をしています。iPadでも動くと思いますが、両者ともCPUはA9以上が必要です。iPhone 11 Pro MAX、Xs、Xs Pro、XR、8、8Plus、他のiPadに関してはシュミレーターで動作を確認・調整しています。

インストール作業から1回目の動作確認までは、簡単とは言えませんが、Arduinoに慣れている皆さんにとっては全く問題のない過程です。セキュリティーを保ったまま、2回目以降は3ステップ(LEPTON側スイッチオン-->インターネット共有-->iPhoneアプリ起動)で動いてしまいます。煩わしいWiFi選択やIP、パスワード入力などは全く必要ありません。また、テザリングを使っていても外部とは通信しないので、Thermal Cam3動作に関する通信料金は発生しません。

*iPhoneの機種や周囲の環境によりテザリングがつながりにくい場合があります。その場合には

  • ESP8266の電源を入れ直す
  • 機内モードON->OFF を実行してからインターネット共有をONにする。
  • iPhoneの電源を入れ直す
  • 時間や場所を変えて再接続を行う

I am checking the operation with X,11Pro. I think that it will work on general iPad, but both require A9 or more CPU. For iPhone Xs,Xs Pro,XR,8, 8 Plus, and other iPads, the operation is checked and adjusted with a simulator.

It is not easy from installation to first confirmation of operation, but for everyone who is accustomed to Arduino it is a completely problem free process. While keeping security, it moves with 3 steps (LEPTON side switch ON -> Internet share -> iPhone application launch) after the second time. No troublesome WiFi selection, IP, password entry etc are required at all. Also, even if you use tethering, you will not communicate with the outside, so there will be no communication fee for Thermal Cam 3 operation.

*Tethering may be difficult to connect depending on the iPhone model and surrounding environment. In that case.

  • Power cycle ESP8266.
  • Execute Airplane mode ON-> OFF and then turn on Internet sharing.
  • Power cycle your iPhone.
  • Reconnect at a different time or location.

Goto Home

 

 

     

M5Stackを使う場合のインストール方法 Installation method when using M5Stack

アプリ実行前に...。 Before running the application ....

このアプリは以下の別部品およびソースのインストールが必要です。順番に沿って部品の調達およびソフトのインストールを行ってください。

まずM5Stack、M5Stack用電池モジュール、LEPTON3 or 3.5、LEPTONブレイクアウトボードを手に入れてください。 以下必要部品の入手先とLEPTON画像再現までの手順です。

また、LEPTON3.0と3.5は自動判別します。

This application requires installation of the following separate parts and source. Please procure parts and install software according to the order. 

 First, get the M5Stack,M5Stack battry module ,development board,LEPTON 3 or 3.5, LEPTON breakout board.Below is the procedure from where to obtain the required parts to LEPTON image reproduction.LEPTON3.0 and 3.5 are automatically identified.

 1. M5StackとM5Stack電池モジュールを用意してください。Prepare the M5Stack and M5Stack battry module.

f:id:TAKEsan:20191118130532p:plain

2. LEPTON3.0又は3.5を用意してください。Please prepare LEPTON3.0 or 3.5

f:id:TAKEsan:20191118113207p:plain

 LEPTONセンサー自体は完全防水で、衝撃にもかなり強いため悪条件にびくともしませんが、取り外し可能なシャッター部品は壊れやすい欠点があります。取り扱いには十分に注意してください。LEPTONは定期的にシャッターを閉じて画像のキャリブレーションを行っていますが、シャッターが壊れると残像が残るなど、画像に障害が出て来ます。今の所シャッターの交換部品は販売していない様なので、取り扱いには十分注意が必要です。

The LEPTON sensor itself is completely waterproof, and it is quite strong for impact, so it does not bother with adverse conditions, but detachable shutter parts have a breakable disadvantage. Please handle with care. LEPTON regularly closes the shutter and calibrates the image, but if the shutter breaks, afterimages will remain, such as image failure will come out. Currently it seems that we do not sell replacement parts for the shutter, so careful handling is necessary.

3. BREAKOUT BOARDが必要です。 BREAKOUT BOARD is required.   

f:id:TAKEsan:20191118113845p:plain

Ver1.0 は製造中止ですが ver2.0 はFLIR Lepton Breakout Board v2.0 | FLIR Systemsで手に入ります

In Japan, you can get it with Cornes Technology or Digi - Key.                              

 4. Arduino IDEをインストールします Install Arduino IDE

M5Stack - A series of modular stackable development devices

自分のコンピューターに合わせてインストールして下さい。 

Please install according to your computer.

 5. OSCライブラリをインストールします。 Install the OSC library.

Arduino IDEの Arduino—>Preferences..  を選択して一番上の スケッチブックの保存場所を確認します。

Select Arduino-> Preferences .. in the Arduino IDE and check the storage location of the top sketchbook.

 f:id:TAKEsan:20170920210844p:plain

この中にlibraries フォルダがあるかどうか確認します

Make sure there is a libraries folder in this.

無かったらlibrariesフォルダを作成します。以下のURLを開いて

https://github.com/sandeepmistry/esp8266-OSC

ESP8266のOSCライブラリをダウンロード解凍してlibrariesフォルダに移動させます。

一度Arduino IDEを終了させ、再起動後 スケッチ-->ライブラリをインクルードを選択して 「OSC 」が入っているかどうか確認。

If you do not have it, create a libraries folder. Open the following URL

    https://github.com/sandeepmistry/esp8266-OSC 

Unzip the OSC library of ESP 8266 and move it to the libraries folder.

Exit the Arduino IDE once, after restarting, select Sketch -> Include Library to check if "OSC" is included.

6. OSCライブラリの一部を変更します。Change part of the OSC library.

OSCdata.h

以下94~96行目をコメントアウトまたは削除します。

Comment out or delete lines 94 to 96 below.

f:id:TAKEsan:20191118135336p:plain

OSCData.cpp 

以下31~38行目をコメントアウト又は削除します

Comment out or delete lines 31 to 38 below.

f:id:TAKEsan:20191118135351p:plain

7. iPhoneを設定します。 Configure iPhone.

iPhone を普通に初期設定するとssidは日本語になります。エラーが起きる可能性がありますので半角英字に修正してください。

 設定-->一般-->情報-->名前-->現在のiPhone名称>を選択 で名称を変更します。名称を変更してもiPhone自体の挙動に影響はありません。 

When initializing iPhone as usual, ssid becomes Japanese. Please correct it to half-width alphabetical as it may cause an error.

Choose Settings -> General -> Information -> Name -> Current iPhone Name> to change the name. Changing the name does not affect the behavior of the iPhone itself.

 8. M5Stack Arduino ソースをダウンロードします。Download the M5Stack Arduino source.

上記URLからダウンロードしてください。(LEPTON3.0と3.5はアプリが自動判別します)Arduino IDEを開いて、ダウンロードしたファイルをダブルクリック。フォルダの中に入れますか?と聞かれるので、YESを選択。OSCやSPIの安定化、UDPパケット紛失問題の解消、ESP特有のWDTリセットの解決方法をコメントしておきました。

Please download from the above URL.Open Arduino IDE and double click on the file you downloaded now. Can you put it in the folder? As you are asked, choose YES. We commented on the stabilization of OSC and SPI, the elimination of UDP packet loss problem, and the solution method of WSP reset specific to ESP. 

 9. 今回のiPhoneアプリをダウンロードします。Download this iPhone application.                

f:id:TAKEsan:20191114144756p:plain

W&T又はkansaiで検索。Themal Cam3Xを探します。申し訳有りませんが有料アプリです。

Search by W&T or kansai. Look for  Themal Cam 3X according. Sorry, this is a paid app.

 10. 今回のソースを開いて一部を修正します。Open this source and fix some.

修正が必要な部分は、以下の2箇所です。 

         58,59行目付近   

          #define SSID_X    “ABiPhone”   //iPhone 

          #define PASS_X    "11111111"   //iPhone 

 ABiPhoneにiPhoneの名称、11111111 に 設定-->モバイルデータ通信-->Wi-Fiのパスワード を調べて パスワードを入力します。

 GPSをONにすると、周期的に一瞬ピカッと光ります。確実にパケットを紛失してるのですが画像にはさほど影響がないことがわかると思います。BlueToothをONにするとさすがにたくさん点滅してフレームレートが多少落ちます。

The parts that need to be modified are the following three places. 

Near lines 34 and 35 

          #define SSID_X    “ABiPhone”   //iPhone

          #define PASS_X    "11111111"   //iPhone

Set the name of iPhone to ABiPhone, set to 11111111 -> Mobile data communication -> Enter the password by checking the Wi - Fi password.

When GPS is turned on, it glows shimmerly periodically. I think that you can see that there is not much effect on the picture although it surely loses the packet. When BlueTooth is turned on, it glows a lot and the frame rate drops.

11. M5StackとLEPTON BREAKOUT BOARD を接続します。Connect M5Stack and LEPTON BREAKOUT BOARD.

   f:id:TAKEsan:20191118185852p:plain         f:id:TAKEsan:20191118190420j:plain

 12. WROOM02(ESP8266)ボードにプログラムを転送します。Transfer the program to WROOM02 (ESP8266) board.

以上設定が終わったらコンパイル、転送します。たまにエラーが出る場合がありますが、その場合は再度転送してください。(USBを認識していない場合が多い)

When compilation and transfer are done, it completes. Although occasionally an error may appear, please transfer again in that case. (USB is not recognized in many cases) 

13. いよいよサーモグラフィー開始 The thermography finally starts !!

iPhoneX、11Proでの動作確認をしています。iPadでも動くと思いますが、両者ともCPUはA9以上が必要です。iPhone 11 Pro MAX、Xs、Xs Pro、XR、8、8Plus、他のiPadに関してはシュミレーターで動作を確認・調整しています。

インストール作業から1回目の動作確認までは、簡単とは言えませんが、Arduinoに慣れている皆さんにとっては全く問題のない過程です。セキュリティーを保ったまま、2回目以降は3ステップ(LEPTON側スイッチオン-->インターネット共有-->iPhoneアプリ起動)で動いてしまいます。煩わしいWiFi選択やIP、パスワード入力などは全く必要ありません。また、テザリングを使っていても外部とは通信しないので、Thermal Cam3動作に関する通信料金は発生しません。

I am checking the operation with X,11Pro. I think that it will work on general iPad, but both require A9 or more CPU. For iPhone Xs,Xs Pro,XR,8, 8 Plus, and other iPads, the operation is checked and adjusted with a simulator.

It is not easy from installation to first confirmation of operation, but for everyone who is accustomed to Arduino it is a completely problem free process. While keeping security, it moves with 3 steps (LEPTON side switch ON -> Internet share -> iPhone application launch) after the second time. No troublesome WiFi selection, IP, password entry etc are required at all. Also, even if you use tethering, you will not communicate with the outside, so there will be no communication fee for Thermal Cam 3 operation.

15. M5Stackでの動作について

  • 電源ボードで電池容量を大きくしていますが、M5Stackが起動しない場合は再充電を行って下さい。
  • iPhoneとのテザリング接続が完了しないとM5Stack側の赤外線画像が表示されません
  • M5Stack側のカラーレンジには対応していません(ダイナミックレンジは可能)
  • テザリング到達距離はESP8266に比べ大幅に短くなります(最大で35m程度)
  • M5Stack側での画像のカラー変更は一番左側のボタンを押します。
  • The battery capacity is increased with the power board, but if M5Stack does not start, recharge it.
  • If the tethering connection with the iPhone is not completed, the infrared image on the M5Stack side will not be displayed
  • The color range on the M5Stack side is not supported (dynamic range is possible)
  • Tethering reach is significantly shorter than ESP8266 (up to about 35m)
  • To change the color of the image on the M5Stack side, press the leftmost button.

 Goto Home

 

 

Thmal Cam for BOSON

このページは予告です。

 

私たちの作った赤外線カメラを取り付けたESP8266とiPhoneWiFiで接続するという発想のThermal Cam はFLIR LEPTON 1.0,3.0,3.5 で動作が可能です。        

    Thermal Cam3 Instruction manual (FLER LEPTON3+WROOM02) - YouTube

今回は同じような仕組みを使って、より精細な画像とスピードを持つFLIR BOSON QVGA(以下BOSON)で実現させました。さらにThermal Cam3Xと同じように、ユーザー変更可能なAI画像認識機能を加えて様々な応用が実現できます。

   AIの使用方法、学習済みファイルのインストール方法はすべてThermal Cam3Xと同じです。こちらを参考にして下さい。 

Thermal Cam for BOSONは、安価で小型のRaspbery PI Zero をFLIR BOSON(以下BOSON)に接続しWIFテザリングI経由でiPhoneで画像を再現できます。PI ZeroやWIFIを使うことで真っ先に思いつくのが動画スピードだと思いますが、この点についても10Mhz(10fps)以上のBOSONでは最高24fps前後で動画が再現ができます。

f:id:TAKEsan:20190922105712p:plain

PI ZeroとiPhoneWiFiで相互に交信し合います。PI側ではカメラの持つ性能を最大に発揮させるため8bit処理したRAW16グレースケール画像をiPhoneへ送っています。制御命令はiPhoneから送信しているので、市販のBOSON単体とコンピュータをつないだだけでは実現できない暫定温度測定や、感度の微調整、自由な色づけが可能になりました。さらに画像データはmjpegなどで圧縮していないためBOSON本来のノイズの少ないくっきりした画像が再現され、iPhone側では画像を補完処理で拡大しているので、緻密な画像表現が可能です。市販されているBosonは元々温度測定機能が付いていませんが、後述したキャリブレーションを行うことで、かなり正確な温度測定が可能になりました。

Thmal Cam for BOSONの機能 

Thermal Cam for BOSONは、以下のような機能があります。

    f:id:TAKEsan:20190923110016p:plain

    f:id:TAKEsan:20190922141525p:plain

カラーレンジONの場合、高画質なiPhone画像は、ソースの工夫で輪郭強調やコントラストを上げなくても、自然な画質で緻密さを失なっていません。FLIRのAGC画像と決定的に違うことは、下記比較画像で理解できると思います。

    f:id:TAKEsan:20190922141548p:plain

    f:id:TAKEsan:20190922141602p:plain

今までのLEPTON画像より画素が多くなったため3D画像は息をのむような美しさです。

    f:id:TAKEsan:20190923105537p:plain

画像のカラーは3種類のポスタリゼーションカラーを含む12色から選択できます。

このほかにiPhoneの設定をReverseをONにすることで、画像の左右が反転できます。

1クラス上の美しい画像が表示できます

この画像はBOSON QVGAを直接パソコンにつないだキャプチャー画像です。接続が簡単でWEBカメラとして取り扱えますが、AGC処理後の画像のためノイズ(縦に現れる縞)が多く、コントラストを上げているためか、画像そのものは決して美しいとは言えません。   

f:id:TAKEsan:20190922144959p:plain

BOSON QVGAキャプチャー画像

次の画像は今回のBOSON QVGA(320x256画素)を使ったThermal Cam for BOSONの画像です。落ち着いた画質でノイズが取れ、細かなところまで画像が再現できているのが分かると思います。 (屋内で最高最低温度の差が殆ど無い場合等、BOSONの温度検知能力を超える場面ではノイズが発生します)

f:id:TAKEsan:20190922145037p:plain

Thrmel Cam for BOSON QVGA(320x256画素)の画像

次の画像はBOSON QVGA(320x256画素)の上位機種VGA(640x512画素)を同じiPhoneアプリで再現したものです。一見QVGAと見分けが付かないと思います。ただし引き延ばすと違いが分かりますが、赤外線カメラを使う一般用途であれば価格の安いQVGAでも十分対抗できることがおわかりいただけると思います。

f:id:TAKEsan:20190922145429p:plain

Thrmel Cam for BOSON VGA(640x512画素)の画像

 応用例

赤外線画像を利用したAIによる画像認識の応用例です。ここではLEPTONを使っていますが、すでにBOSONでも実現できています。

Maker Faire Kyoto に向けて - W&T's diary

さらにiPhone 11シリーズを使った本格的な「おうちくらうど」も開発中です。

必要部品とソフト

この記事で紹介するアプリは、あくまでもPI Zeroを使ったインストール手順で、これだけではThermal Cam for BOSONは動きません。現在アプリストアに申請中のiPhoneアプリが必要です。

FLIR BOSON QVGA (10Mhz以上の機種)

USBケーブル   USBC及びマイクロUSBコネクタが付いているもの

Raspbery PI Zero(インストール時はHDMI、キーボード、マウスを接続)

        インストール後はキーボード、マウス、ディスプレイは必要ありません

マイクロUSBカード(16Gbyte)

pimoroni OnOff SHIM 日本ではスイッチサイエンスで取り扱っていて768円です

            f:id:TAKEsan:20190922110003p:plain

対応 iPhone

  • iPhone SE,7,7Plus,8,8Plus,X,XR,XS,Xs max,11,11 Pro,11 Pro Max
  • 格安SIMを使う場合は、テザリング可能な契約をしてください
  • AI機能を使うにはXs以上が必要となります

Thermal Cam for BOSON PI側アプリ以下を参考にしてインストールして下さい

Thermal Cam for BOSON iPhone側アプリ:Apple アプリストアからダウンロードして下さい

  kansai,kansaidenki,w&t で検索

Thermal Cam for BOSON性能

  • WIFI接続範囲:見通しが良く、電波条件の良いところで最大35m
  • 動画再生スピード:最大24fps

端末側の機能

  • 最高最低温度表示、指定点の暫定温度表示(体温中心の温度帯で±5℃程度)と指定点周りの温度表示(81カ所)
  • 画像のコントラスト指定(Dynamic Range)
  • 画像コントラスト安定化指定(Color Range)
  • 画像中に極端な温度の対象物が存在してもコントラストに変化がなくなる
  • 動画のリアルタイム画像録画機能-->写真アプリ連動
  • 動画の3D表示-->温度変化をポイントクラウドで確認できる
  • リバース表示:左右反転表示

FLIR BOSON QVGAは320x256 の画素をもつ赤外線カメラで、一般的には10fpsの動画再生能力を持ちます。このカメラは購入前にFLIR代理店と利用手続きを取り交わすことで、最高30fpsまたは60fpsの製品を指定できます。今回はそのカメラを対象としていますが、10fpsのカメラでも作動させることが可能です。

RaspiOSのインストール

PI Zeroは他のPIシリーズに比べてスピードや起動が遅いことから、OSの設定やソースのインストールなど非常に時間がかかりますので、ご了承願います。その代わり他のPIでは実現できない携帯性が加わることになります。インストールは慣れていても1日くらいの作業量です。途中でエラーが出た場合は最初に戻って再度挑戦して下さい。

NoobsをコピーしてOSをインストールするのは非常に簡単ですが、Pi Zeroでは起動が15秒以上遅くなります。今回はimgファイルを直接SDカードに書き込む必要があります。

開発環境としてOpenframeworksを使用しますが、Raspbianの最新バージョン「Buster」ではコンパイルできません。1つ前のバージョンの「Stretch」 をインストールする必要があります。Raspbian付属ソフトが起動スピードの邪魔をするのでrecommended softwareでない標準のものをインストールしてください。

http://ftp.jaist.ac.jp/pub/raspberrypi/raspbian/images/raspbian-2019-04-09/

f:id:TAKEsan:20190922110139p:plain

インストール方法は以下を参考にして下さい。

https://www.raspberrypi.org/documentation/installation/installing-images/README.md

OSの初期設定では一応自宅の無線ルーターに繋いでください。

IDやPASSはなるべく簡単な方が後々接続が簡単になるのと、最終的にiPhoneテザリング接続に限定するので、あまり神経質になる必要はないと思います。私の場合は id:pi0 Pass:pi0 にしています

ダウンロードファイルの内容

PI Zero側で使用するソースはここからダウンロードして下さい。

drive.google.com

下記のファイルがすべて入っています。一応PI Zeroの /home/pi   にダウンロードしたフォルダ内部のファイルをすべてコピーして下さい。

PI_BOSON1X  メインプログラム

./bashrc        初期設定ファイル(すでに存在している./bashrcへ重ね書きになります)

start.sh start.pyを起動後iPhoneテザリングアドレスを指定してメインプログラムを起動

start2.sh  iPhoneテザリングを確認してつながっていなければ再接続

aID.txt  iPhoneの新しいIDとPASS

damy.txt 前回スタート時のiPhoneのIDとPASS

start.py  iPhoneのID PASS 確認

config.txt  PIの初期設定ファイル

boson.service 自動起動用のファイル

boson    メインプログラムを手動で動かす場合のshファイル(拡張子なし)

boson_temp.txt 温度補正用のテキストファイル

boson_temp.50 画角50°のBOSON用補正ファイル(使う場合は数値拡張子をtxtに変更)

boson_temp.90 画角90°のBOSON用補正ファイル(使う場合は数値拡張子をtxtに変更)

PI Zeroの一時設定

config.txt を /boot にsudoでコピー

sudo cp config.txt /boot/config.txt

Thermal Cam for BOSONに適したPI Zeroのスピードアップなどの設定です。コピーが完了したら必ずrebootします 。

 

BosonSDK のコンパイル

GitHubからBosonLinuxSDKをダウンロードして。

GitHub - FLIR/BosonLinuxSDK: This is C code Boson SDK for Linux

/home/pi に移動します。

移動後はフォルダの場所を確認して下さい---->  /home/pi/BosonLinuxSDK

まず BdonLinuxSDK/EmulatorFiles/ に入りmakeを実行 

次に手動でめんどくさいですが、 BdonLinuxSDK/ClientFiles_C/

に入り次のコマンドを実行してsoファイルを6個作成します。

gcc -fpic -c Client_API.c -o boson1.lo

gcc -shared -Wl,-soname,boson1.so boson1.lo -o boson1.so

gcc -fpic -c Client_Packager.c -o boson2.lo

gcc -shared -Wl,-soname,boson2.so boson2.lo -o boson2.so

gcc -fpic -c Client_Dispatcher.c -o boson3.lo

gcc -shared -Wl,-soname,boson3.so boson3.lo -o boson3.so

gcc -fpic -c Serializer_BuiltIn.c -o boson4.lo

gcc -shared -Wl,-soname,boson4.so boson4.lo -o boson4.so

gcc -fpic -c Serializer_Struct.c -o boson5.lo

gcc -shared -Wl,-soname,boson5.so boson5.lo -o boson5.so

gcc -fpic -c UART_Connector.c -o boson6.lo

gcc -shared -Wl,-soname,boson6.so boson6.lo -o boson6.so

Openframeworksのインストール

他のSSD接続したパソコンからでも可能ですが、一番手っ取り早いので、PI Zeroでインターネットを立ち上げ

https://openframeworks.cc/download/

から、linux armv6をダウンロードします。

さらにofxCv addonが必要なので 

https://github.com/kylemcdonald/ofxCv

からofxCvをダウンロードします。

解凍したOFは/home/pi にフォルダごと移動し、フォルダ名称を of_v101に変更してください

ofxCVは ofxCV-masterをofxCvと名称を変えて

/home/pi/of_v101/addons に移動します。

OF自体はコンパイルが必要です。

https://openframeworks.cc/setup/raspberrypi/ に従ってコンパイルを実施します。

PI Zeroの場合最低2時間は必要です。

ここまで終わったら、上手くコンパイルできているかどうか確認するため、サンプルファイルを実行してみます。

cd /home/pi/of_v101/ examples/3d/ 3DPrimitivesExample

make

make run

3DPrimitivesExampleを実行した結果です。この画像はMacのものですが、PIの場合は画像が左上に固定され、マウスでWindowが移動できません。また、PIはコマンドモードでも実行画像が表示できます。

f:id:TAKEsan:20190922110554p:plain

Thermal Cam for BOSONをコンパイル

ダウンロードしたPI_BOSON1Xをフォルダごとapps/myapps へ移動

さらにこのフォルダに入りBosonSDKの必要ファイルをコピーして、リンクファイルを作成します。

cd /home/pi/of_v101/apps/myApps /PI_BOSON1X/src

ln -s /home/pi/BosonLinuxSDK/ClientFiles_C BOSON          

cp /home/pi/BosonLinuxSDK/BosonLinuxSDK/EmulatorFiles/*.h

cp /home/pi/BosonLinuxSDK/BosonLinuxSDK/EmulatorFiles/*.so

そしてmake を実行します。

cd PI_BOSON1X

make

これもかなり時間がかかります(1時間程度)のでゆっくり待ってください。

エラーがなければ一応一連のインストール作業は完了です。

ここで本当に画像が表示されるかどうかテストします・

まずiPhoneにアプリをインストールして起動しておきます。この時iPhoneは自宅の無線ルーターに接続してください

iPhoneの「設定」から現在接続されているIPを調べます。

仮にiPhoneのID PASSを以下のように変更します(一時的に変更しても他のアプリには影響が出ないと思います)

設定-->一般-->情報で名前を選択

ABiPhone

設定-->インターネット共有-->WI-FIのパスワードで

12345678

設定が完了したら、PI Zeroでプログラムを起動します。このとき最後にiPhoneIPアドレスを加えます(xxx.xxx.xx.xx部分)。

/home/pi/of_v101/apps/myApps/PI_BOSON1X/bin/PI_BOSON1X xxx.xxx.xx.xx

BOSONがPI ZeroのUSBに接続されていれば、PIに接続したディスプレイとiPhone側にBOSONの画像が表示されるはずです。

画像表示が確認できたらctrl cでプログラムを一旦終了します。必要な場合はテストが完了したらiPhoneのID PASSを元に戻します。

On Off Shimの組み立て

On Off Shimと同封のコネクタを半田付けしてPI Zeroに取付後、以下プログラムをインストールします

curl https://get.pimoroni.com/onoffshim | bash

これはなかなかインストールが進みません(時間が必要で一見ハングアップしているように思えてしまう)が、諦めずにじっと待つ必要があります。

インストールが終了したら、一旦shutdownして、USB電源をOn Off Shim側のコネクタに入れ替え、スイッチを軽く押し、起動するかどうか確認します。

起動したら、ボタンを1秒以上押し離して、自動シャットダウンするか確認します。

これでスイッチによるPI Zeroのオンオフが可能になります。

PI Zero起動のスピード化

以下のコマンドで時間のかかる不必要なプログラムを停止させます。この操作により本体のキーボードも使えなくなりますが、以降は他のコンピューターからssh接続してください。元に戻したい場合は disableをableに、purge -y --auto-remove部分をinstallに変更すれば可能です。

まずraspy-configを起動してコマンドライン起動に変更します。

再起動後他のコンピューターからsshでpiに入り次のコマンドを実行

sudo systemctl disable dphys-swapfile.service

sudo systemctl disable keyboard-setup.service

sudo systemctl disable apt-daily.service

sudo systemctl disable wifi-country.service

sudo systemctl disable hciuart.service

sudo systemctl disable raspi-config.service

sudo systemctl disable triggerhappy.service

sudo systemctl disable ntp.service

sudo apt-get purge -y --auto-remove exim4 "exim4-*"

sudo apt-get purge -y --auto-remove dphys-swapfile

sudo apt-get purge -y --auto-remove plymouth

sudo apt-get purge -y --auto-remove alsa-utils

さらに

/boot/cmdline.txt

を以下の通りに変更します。(バックアップファイルを忘れずに!!)

dwc_otg.lpm_enable=0 root=PARTUUID=dec2b11e-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait

これで多分20秒程度で起動できるようになります。

自動起動の設定

今回のプログラムはiPhoneテザリング機能を利用してデータの送受信を行うため、PI側にiPhoneのIDとパスワードを記憶させる必要があります。初期設定値ABiPhone   12345678 で良かったら何も変更する必要はありませんが、変更したい場合は以下の設定を行います。

まずaID.txtを /boot にコピーします

sudo cp aID.txt /boot/aID.txt

sudo nano /boot/aID.txt  で自分のiPhoneのIDとPASSを書き換えます。1行目がiPhoneのID、2行目がiPhoneのパスワードです。不必要な空白やリターンコードを入れないでください。

                      f:id:TAKEsan:20190922181749p:plain

また、PIのOSが入ったSDカードは、Windows又はMacで/bootの中身を変更できます。パスワードなどの変更があった場合にはこれらのコンピューターにPIのSDカードをセットして/boot/aID.txtを変更して下さい。ただしその他のファイルを変更したり、削除したりするとPI が起動しなくなりますので、細心の注意が必要です。

次にpiのsystemdの設定を行います。ダウンロードしたboson.serviceを所定の場所にコピーします

 

sudo cp boson.service /etc/systemd/system/boson.service

上手くコピーできないときは以下を直接書き込んで下さい

sudo nano /etc/systemd/system/boson.service

で、内容は

[Unit]

Description=Capture BOSON Image Service

After=network.target

[Service]

Type=simple

ExecStart=/home/pi/start.sh

StandardOutput=nul

WorkingDirectory=/home/pi/

#Restart=always

[Install]

WantedBy= multi-user.target

コピーしたら以下のコマンドを入力して、boot後の起動ファイルを設定します。

sudo systemctl enable boson.service

これですべて終了です。PIをrebootするとプログラムが自動で立ち上がるようになります。

PIの設定などを変えたい時

無事起動できた場合、その後の設定は必要ないと思いますが、PIは上記の設定でキーボードやマウスが使えません。また、シリアル通信も止めているためPI本体では修正が不可能です。SSH接続になりますが、この場合は、iPhoneテザリングをONにしてコンピューター側でルーターiPhoneに指定してから、ターミナルでPIとSSH接続します。

  1. iPhone の設定-->インターネット共有 でインターネット共有をONにします。
  2. メインコンピューターがMacの場合は 設定-->ネットワーク 出てきたダイアログボックスの左のWIFIを選択してネットワーク名称でiPhone の IDを選択
  3. 後はターミナルを立ち上げて ssh pi@XXX.local  でPI Zeroにつながります

        f:id:TAKEsan:20190922110648p:plain

起動の方法

2種類の起動方法があります

  1. PI Zeroを先に起動。次にiPhoneテザリングをONにします。接続が完了すると「1件接続」が表示されます(PI起動から約25秒後)アプリを起動してから10秒ほどで画像が表示されるはずです
  2. iPhoneを先にテザリングON し、アプリを起動しておきます。そのあとPIを立ち上げた場合、約45秒後に画像が表示されます。

iOS13以降テザリングにつながりにくいので、そのような場合は、下図の場合ではWi-Fi切断->再度Wi-Fi接続->インターネット共有ボタンを押し1分程度様子を見て下さい。直後かしばらくするとインターネット共有ボタン下部に「1台接続」と表示されます。2〜3回繰り返してもすぐ切断されてしまう場合は、PIの再起動又はiPhoneの再起動を試みて下さい。今後のiOSのバージョンアップで改善されるはずです。

       f:id:TAKEsan:20191218231935p:plain

iPhoneへの画像送信中は外部へ通信していないので、画像に関するパケット料金は加算されません。

終了処理はPI ZeroのOnOff Shimボタンを長押しします。6秒ほどで終了します。PI側のON OFFは必ずOn Offスイッチを利用してPI ZeroのLED消灯を確認して下さい。

プログラム動作中に電源等が遮断された場合、SDカードに書き込まれたOSが損傷を受ける可能性があります。

WIFIが障害物や遠距離のため、切れた場合

常にiPhoneテザリングIPを確認しているため、通信圏内(iPhoneから35m以内)に入り最大20秒待つと再び動画が表示されます。

BOSONの温度キャリブレーションについて

現在手に入るBOSONは温度補償されておらず、SDKにも対応命令がないため、温度測定ができません。内部的には対象物の放射温度に反応し、0~65535(16bit整数値)の範囲でデジタル出力しています。この出力値は線形にはなっていないことと、BOSON本体の温度とレンズ焦点距離により、出力値が大きく変わることが測定により確認できました。ただし、以下の手順で近似式を想定し、補正を加えることで実際の対象物の温度を測定できることが分かりました。ただし算出された温度はあくまでも近似値であることにご注意下さい。

  • 温度差があらかじめ分かっていて、大きく温度の異なる3つの物体を用意する
  • BOSONの温度が安定してきた時点でこの3物体のRAW数値とBOSON本体の温度を記録する
  • データから近似式を計算し、BOSONの温度変化による補正を加える

測定範囲内でなるべく温度差のある3つの物体を用意することになりますが、一番身近に用意できるのは、0°に近い氷水と100°付近の熱湯、それに36°前後の自分の顔です。

今回PIに組み込んだプログラム(PI_BOSON1X)は、ターミナル画面上でカメラに写った物質の最高、最低のRAW数値、及びBOSONの現在温度を表示できます。

一般的な室内で氷水と熱湯を写し、すぐにカメラの向きをを変えれば顔が最高温度として表示されます。この測定値をキャリブレーションファイルとして保存すれば、PI_BOSON1Xアプリは、測定値を読み込み-->近似式の係数を算出-->補正を加えて対象物の温度としてiPhoneへ送信といった動作を行います。手順は以下の通りで少々大変ですが、一回の設定でOKです。設定が終了すれば、BOSONを冷えている状態からスタートさせても、ほぼ近似温度を測定することが可能です。

  • BOSONの画像がiPhoneで確認できる状態にして、パソコンをiPhoneテザリングアドレスに接続(すなわちiPhoneルーターになる)
  • iPhone側でThermal Cam for BOSONが立ち上がっていれば、一旦終了させる
  • パソコン側からPI Zeroにsshで接続するiPhonessh接続ができるアプリをインストールしていればパソコンは不要です。以降ssh接続した後のターミナル画面での操作となります。
  • すでに立ち上がっているPi側のBOSONプログラムを終了させる(PI側ではすでにPI_BOSON1Xがバックグラウンドで立ち上がっているので、そのプログラムを終了させる)

  top  と入力してPI_BOSON1Xのプロセス番号を調べCtrl+Cで topコマンドを終了させ  

  sudo kill xxxx  でPI_BOSON1Xを終了させる(xxxxはプロセス番号)

  • そのままBOSONの温度が安定するまで30分程度待つ
  • できれば黒いコップ(使い捨てプラスチックコップに黒色の色を塗ればOK)に温水と(黒い容器に入った電気ポットでもOK)、氷をたくさん入れ温度の変化がないうように水を用意。
  • あらかじめ顔とこの2つのコップを赤外線温度計(ホームセンターで1800円前後)で測定(顔については温度変化があるのでなるべくその場所を動かないように)
  • 用意ができたらプログラムをスタート。最初に氷水と温水を測定。画像はアプリが起動していれば確認可能。

  プログラムのスタートは  ./boson   です。

        f:id:TAKEsan:20191218230432p:plain

       対象物から60cm程度程度離してカメラをセットするとこんな画面になります

  • すぐレンズの向きを変え顔を写す(10秒程度そのまま)。
  • プログラムを終了させ、RAWをメモして、結果をファイルに書き込む

f:id:TAKEsan:20191218223129p:plain

上のように5秒毎に最低最高のRAW数値とBOSON温度がターミナルに出力されますが、Maxの数値を確認することで顔のRAW値が確認できます。この例の場合4行目のMin(氷水),Max(熱湯)値及び5行目のMax(顔の温度)を採用。測定時のBOSON本体温度は42.2°となります。顔を測定する場合は、事前に背景が体温より低い温度であることを確認して下さい。BOSONの温度が安定するとTempの値は殆ど変化がなくなりますが、Tempの値に変化がないことに注意して下さい。測定範囲は-60℃〜+200℃前後のようです。

次にnano boson_temp.txt で数値を変更します。変更内容は以下の通りです。

mimTempD= 1.0   <---氷水の温度℃
mimTempR= 15616      <---氷水の上記RAW数値
midTempD= 35.5          <---顔の温度℃
midTempR= 21692       <---顔の上記RAW数値
maxTempD= 100.0       <---熱湯の温度℃
maxTempR= 40019      <---熱湯の上記RAW数値
nawTempD= 42.2         <---上記BOSONの温度℃

ファイルは数値のみ訂正して下さい。訂正が終わったら Ctrl+oで保存Ctrl+xでnano終了

  • 再度プログラムを動かし(./boson)実際の温度との差があれば、Dの部分の温度(氷水、顔、熱湯)を微調整します。最終的にiPhone側のアプリを起動することで設定した温度が確認できます。

※BOSON50°、90°に関してはすでにキャリブレーション済みファイルを用意しています。boson_temp.50及びboson_temp.90 です。もし同じカメラの場合は拡張子の数値部分をtxtに変更して使って下さい。ただし、製品によりばらつきがあるので、温度が合わない場合にはキャリブレーションの必要があります)

                                 以上

 ⇐Goto Home

Thermal Cam 3x AI機能について Thermal Cam 3x AI function(Yolo v3 Object Detection)

新しいThermal Cam は Our new feature of Thermal Cam

画像認識機能が付いています。Thermal Camの特徴は暗視カメラであることと、携帯端末とカメラを分離できることです。カメラ自体が非常に軽量で、ESP8266を使用した場合には電波の飛距離が伸び、さらに自由に入れ替え可能な画像認識AIが加わるため様々な応用が可能になりました。ただし、Thermal Cam3xアプリをダウンロードしただけではAI機能を実行できません。下記を参考にしてまず学習済みファイルをダウンロードして下さい。

We add object detection for  thermography. One of feature for Thermal Cam is night vision and our system is divided display from FILR sensor.

ESP8266 helps to transmit WiFi longer and light weight low battery consumption all at the same time.

Furthermore, various applications are possible by adding image recognition AI.

However, AI function cannot be executed just by downloading Thermal Cam3x application. Please download the Pre-learned file first referring to the following.

ESP8266 helps to transmit WiFi longer and light weight low battery consumption all at the same time.

Furthermore, various applications are possible by adding image recognition AI.

However, AI function cannot be executed just by downloading Thermal Cam3x application. Please download the Pre-learned file first referring to the following.

f:id:TAKEsan:20191107133217p:plain

特徴は?    New feature ?

  • iPhone Xs,Xs Maxm,Xr,11,11 Pro,11Pro Maxに関して、「設定」YOLO ONトグルスイッチをONにすることで、画像認識機能が働きます。*1
  • 認識エンジンはYOLOv3を使用しています。これはTiny版ではないので優れた認識能力を発揮します。
  • 学習済みファイルが自由に選択可能で、ユーザー自身が用意したWeightデータを使用することができます。*2
  • 認識結果を利用して、英語または日本語の音声、アラーム、カメラフラッシュ対象物の認識個数表示、タイムスタンプ表示をユーザーが自由に設定できます。*3 

f:id:TAKEsan:20191109223950p:plain

認識結果のアラートや対象物(以降Class)の表示名称を自由に変更することが可能です。これには一般テキストファイルの編集ソフトが必要です。有料アプリですが「Textor」の事前インストールをおすすめします。 「Textor」をApp Storeで

For iPhone Xs, Xs Max, 11, 11 Pro, and 11 Pro Max, the image recognition function works by turning YOLO ON toggle switch at the setting of iPhone.

* 1 The recognition engine uses YOLOv3. Since this is not a Tiny version, it demonstrates excellent recognition ability.Pre-learned files can be freely selected, and the weight data prepared by the user.

* 2 Using the recognition results, the user can freely set Siri voice in English or Japanese, alarm, camera flash and display number of objects recognized, time stamp.

* 3 You can freely change the above alert and the text of the target object (hereinafter referred to as Classification). This requires a general text file edit software. Although it is a paid application, it is recommended to install “Textor” in advance. “Textor” on the App Store

1.学習済みファイルのダウンロード方法 How to download Pre-learned files

画像認識をさせるには、まず学習済みデータのダウンロード作業が必要です。学習済みファイルは100Mbyte~250Mbyteの大きさになりますので、自身のiPhone容量を確認してから使用して下さい。

現在ダウンロードできる物体認識モデルは、以下の3種類です。

a) https://drive.google.com/file/d/1HRVoB5XyRLZwMwh2ZMYWrIghYnBxjXjN/view?usp=sharing

(LEPTON赤外線画像を対象:車、人間、自転車、大型車両、歩道、犬の認識 16Bit)

b) https://drive.google.com/file/d/19cxLVQIsXe1y0DcNSAtN_ZM4oGcqyOR2/view?usp=sharing

(LEPTON赤外線画像を対象:車、人間、自転車、大型車両、歩道、犬の認識 32Bit

c) https://drive.google.com/file/d/1oh6R-bBDc_WpgurPpBs7OOgXDo15EsfA/view?usp=sharing

(LEPTON赤外線画像を対象:車、人間、自転車、大型車両、歩道、犬、グー、チョキ、パー、顔の認識 16Bit)

d) https://drive.google.com/file/d/1XaSvTShq9u3Fnj-EpCdaf3l5g88mGFgf/view?usp=sharing

 

(標準RGB画像が対象:80種類の物体検出で、赤外線カメラでどの程度認識するかを確認するための試験用データ。一般的なCOCOです 16bit)

ダウンロード方法を以下に説明しますが、URLを指定してダウンロードしたzipファイルを解凍後、Thermal Cam3x専用フォルダに入れるだけなので、手順に惑わされないようにして下さい。

To perform image recognition, you must first download the Pre-learned data. The Pre-learned file will be 100Mbyte ~ 250Mbyte, so to start with, please use one of them after checking your own iPhone capacity.

The following three types of the Pre-learned models is available at the moment.

a) https://drive.google.com/file/d/1HRVoB5XyRLZwMwh2ZMYWrIghYnBxjXjN/view?usp=sharing

(Target LEPTON infrared image: recognition of car, human, bicycle, large vehicle, sidewalk, dog 16bit)

b) https://drive.google.com/file/d/19cxLVQIsXe1y0DcNSAtN_ZM4oGcqyOR2/view?usp=sharing

(Target LEPTON infrared image: recognition of car, human, bicycle, large vehicle, sidewalk, dog 32bit)

c) https://drive.google.com/file/d/1oh6R-bBDc_WpgurPpBs7OOgXDo15EsfA/view?usp=sharing

(LEPTON infrared image target: car, human, bicycle, large vehicle, sidewalk, dog + Rock-Paper-Scissors and face 16bit)

d) https://drive.google.com/file/d/1XaSvTShq9u3Fnj-EpCdaf3l5g88mGFgf/view?usp=sharing

(Standard RGB image is targeted: 80 kinds of object detection, test data to confirm how much is recognized by infrared image. This is a general COCO 16bit)

The download method is explained below, but please specify the URL and unzip the downloaded zip file, and then put it in the folder dedicated to Thermal Cam3x.

1.1 サファリの設定からダウンロード先を選択します。Select the download destination from iPhone Safari settings

サファリのダウンロード先を自分のiPhoneに変更します。標準ではiCloudとなっていますが操作が慣れてからiCloudに変更することをおすすめします。

Change the safari download location to your iPhone internal file. Although iCloud is the standard download location, we recommend to change to iCloud after getting used of it.

f:id:TAKEsan:20191110203225p:plain

1.2 上記のアドレスの中から学習データを選択します。Select Pre-learning data from the above addresses.

最初はb)を選択してみて下さい。ジャンケンの手の形や顔も判定できるので、手元で確認するには十分だと思います。どんな角度でも面白いようにジャンケンの手の形を判断する様子を確認できると思います。赤外線カメラの特徴としてWeb Cameraのように車などの画像を写しても対象物を手軽に判断できません。熱を発生する実物である必要があります。つまり手の形なら卓上ですぐに判定可能で、車の判定をさせるには外に出て実際の車を写さなければなりません。

First of all, select b).

Rock-Paper-Scissors✌️ of your hand or your face😃 can be detected, good enough to check feature to start with. You can see how to judge the shape of your hand and our model can detect at any angle of your hand. As a feature of the infrared camera, even if a thermal image of a car captured like Web Camera, the target cannot be easily determined. It must realy generate heat. In other words, if it is in the shape of a hand, it can be judged immediately at home, and in order to judge the car, you must go outside and capture the actual cars.

f:id:TAKEsan:20191110203327p:plain

1.3 ファイルアプリを開き以下の操作を実行します。Open the file app and do the following:

標準でインストールされているファイルアプリは、多少のコツが必要です。事前にファイルのコピー方法などを試してから以下に進んで下さい。特にiCloudの中にいるのか自分のiPhoneに入っているのか練習で感覚をつかむ必要があるようです。

The file app that is installed by default requires some tips. Please try the file copy method in advance.

And then proceed to the following. In particular, it seems to be necessary to practice whether you are in iCloud or in your iPhone internal file.

f:id:TAKEsan:20191110203408p:plain

このiPhone内->Download を選択します。ダウンロードが完了していれば、w_t.zip が確認できます。

Select This iPhone-> Download. When the download is complete, you can check w_t.zip.

f:id:TAKEsan:20191110203505p:plain

解凍した後はzipファイルが必要なくなるのでこれを削除、解凍したフォルダをアプリ専用のフォルダ(Thermal Cam3xフォルダ)に移動します。

After unzipping, the zip file is no longer needed, so delete it and move the unzipped folder to a folder dedicated to the app (Thermal Cam3x folder).

f:id:TAKEsan:20191110203550p:plain

Thermal Cam3xのフォルダを選択し、w_tフォルダを移動します。

Select the Thermal Cam3x folder and move the w_t folder.

f:id:TAKEsan:20191110203740p:plain

ダウンロードしたフォルダ名称はすべてw_tとなります。下図のように1つのフォルダと3つのテキストファイルが確認できます。内容を識別するにはw_tフォルダクリックしてREADME等のファイル内容を確認して下さい。また、w_t.namesファイルで何が認識できるか確認することができます。テキストファイルを編集することで拡張が可能ですが、編集作業はiPhone標準アプリではできないようなので、テキストファイル編集専用アプリ「Textor」などで作業を行う必要があります。

他のテキストファイル編集アプリ

  • Pythonista(有料アプリ:編集機能使用)
  • iEditor Pro(有料アプリ)

※現在Thtorはアプリストアで公開されていません。GitHub - louisdh/textor: A plain text editor for iOSからダウンロードしてコンパイルする必要があります。

All downloaded folder names will be w_t. You can check one folder and three text files as shown below. Click the w_t folder to check the contents of files such as README. You can also check what can be recognized in the w_t.names file. Although it is possible to extend by editing the text file, editing work seems to be impossible with the iPhone standard application, so it is necessary to work with text file editing application “Textor” etc.

Other text file editing apps

  • Pythonista (paid app:using editing function)
  • iEditor Pro (paid app)

* Thor is not currently available on the app store. GitHub-louisdh / textor: Must be downloaded from A plain text editor for iOS and compiled.

f:id:TAKEsan:20191110204118p:plain

ファイル内容は以下の通りです。iPhoneでは拡張子が確認できない場合があるので注意して下さい。

  • w_t.mlmodelc 学習済みファイルが入ったフォルダ。内容は絶対変更しないで下さい。
  • w_t.names クラスの名称を改行コードを挟んで書き込んであります。この名称を使ってバウンディングボックスのクラス名称が表示されます。名称の変更が可能ですが、変更する場合は日本語に対応していない点と、全体の行数を変えないよう注意して下さい。あらかじめ作られた画像認識モデルは認識数が限定されています。
  • w_t.txt 認識後のアラートと、全体の認識率(しきい値)を設定するファイルです。このファイルのパラメーターを変更することで、認識結果に関するアラートを様々な形で変更できます。内容や変更方法は「3.認識結果アラートの設定方法」を確認して下さい。
  • README.txt ダウンロードした学習済みファイルの特徴が記入されています。

The file contents are as follows. Please note that the extension(.txt & .names) may not be confirmed on iPhone.

w_t.mlmodelc Folder containing Pre-learned files.

Never change the contents.

w_t.names

The name of the class is written across the line feed code(/n). The class name of the bounding box is displayed using this name. You can change the name, but please be careful not to change in Japnese(must not be 2bites language) and  the total number of lines. Pre-made image recognition models have a limited number of recognitions.

w_t(.txt)

This file sets alerts after recognition and the overall recognition rate (threshold). By changing the parameters in this file, you can change alerts related to recognition results in various ways.

Please confirm “3. Setting method of recognition result alert” for contents and change method.

README.txt

Contains the characteristics of the downloaded learned file.

2.画像認識スタート Start image recognition

 設定で選択すると、Thermal Cam3x画像認識が開始されます。通常GPUをフルに使うと携帯端末がかなりの熱を帯びてきますが、今回のアプリはスピードをコントロールしているので極端に熱くはなりません。ただしポケットなどに入れてアプリを動かすことはなるべく避けて下さい。また電池の消耗が早いので、電池残量に気をつけて使用することをお勧めします。長時間使用する場合には電源を確保することと、携帯端末用の冷却ファンを使用して下さい。

When selected in Thermal Cam3x settings, Thermal Cam3x image recognition starts.

Normally, when you use the GPU(A13 Bionic) fully, your mobile device gets a lot of heat, but this app does not get extremely hot because it controls the speed. However, avoid walk with running the app in a pocket. In addition, caution as the battery is consumed quickly. When using for a long time, ensure the power supply and use a cooling fan for iPhone.

f:id:TAKEsan:20191110204200p:plain

3.認識結果アラートの設定方法 Setting recognition result alert

下図は「Textor」の編集画面でw_t.txtを開いた画像です。ここではそれぞれの設定内容を説明します。=を含めた左側の文字は変更しないで下さい。また、=の右側には必ず数値か文字を記入する必要があります。指定範囲外の数値を記入した場合は、標準値が適用されるので注意して下さい。

The figure below is an image of w_t.txt opened on the “Textor” editing screen. This section explains each setting. Do not change the characters on the left-hand side including the =. In addition, it is necessary to enter a numerical value or a character on the right side of =. Please note that the standard value will be applied if a value outside the specified range is entered.

f:id:TAKEsan:20191110204434p:plain

  • conf_all=0.4   全体の認識率(認識できるクラスのすべて)のしきい値を設定します。この値は0.1~0.9の範囲です。数値を小さくすると誤認識が多くなります。標準は0.4です。
  • iou_all=0.3   バウンディングボックスの重複係数を指定します。この値は0.1~0.9の範囲です。この数値を大きくすると同じクラス名での重複するバウンディングボックスが増えて画像がうるさくなります。標準値は0.3です。     

conf_all = 0.4

Set the threshold for the overall recognition rate (all classes that can be recognized). This value ranges from 0.1 to 0.9. Decreasing the number increases misrecognition. The standard is 0.4.

iou_all = 0.3

Specifies the overlap factor of the bounding box. This value ranges from 0.1 to 0.9. Increasing this number will increase the number of overlapping bounding boxes with the same class name and make the image annoying. The standard value is 0.3.

f:id:TAKEsan:20191110204943p:plain

iou_allを0.9にした場合の画像です。バウンディングボックスが重複してしいます

これらの数値の調整やダイナミックレンジスライダーの調整で、対象クラスの焦点を絞ることが可能です。また、学習モデルにより微妙に変更する必要がある場合があります。

以下の設定は、指定したクラスについて認識結果を基に特殊なアラートを出します。今のところ対象クラスは1種類だけとなります。

  • class=7 学習済みファイルのクラス数又は0を指定します。対象とするクラス番号です。w_t.namesに書き込んであるクラス名称の先頭番号を1として指定します。アラートが必要ない場合は0を記入します。下図の場合でclass 7はGooを指します。

By adjusting these values and adjusting Dynamic Range !! slider, you can focus on the target class. It may also need to be changed slightly depending on the Pre-learning model.

The following settings issue a special alert based on the recognition result for the specified class. Currently there is only one target class.

class = 7

Specify the number of classes of Pre-learned files or 0. The target class number. Specify 1 as the top of the class name written in w_t.names. Enter 0 if no alert is required. In the case shown below, class 7 refers to “Goo”.

    f:id:TAKEsan:20191110205031p:plain

  • conf=0.7 対象とするクラスのしきい値を入力します。0.7とした場合は、対象とするクラス番号7が70%以上の認識率であった場合、アラート処理を実施するという意味になります。0.1~0.99の範囲で指定します。標準値は0.7です。
  • disply=1   画面左下にクラス名称などを表示させます。  

  0 :画面左下にクラス名称の表示は行いません。
  1 :画面の左下に対象とするクラス名称と同一画面に映った対象物の数を表示します。

conf = 0.7

Enter the target class threshold. When 0.7 is set, it means that alert processing is executed when the target class number 7 has a recognition rate of 70% or more. Specify in the range of 0.1 to 0.99. The standard value is 0.7.

disply = 1 : Class name etc. are displayed at the lower left of the screen.

0: Class name is not displayed at the bottom left of the screen.     

f:id:TAKEsan:20191110205143p:plain

  2 :バウンディングボックスの数値部分をタイムスタンプに変更します(標準は認識率表示)。この設定は指定クラスに依存しません。

2: Change the numerical part of the bounding box to the time stamp (standard is the recognition rate display). This setting does not depend on the specified class.

f:id:TAKEsan:20191110205359p:plain

  • country=us    アラートの種類を指定します。(すべて英半角2文字で指定)   

   ja又はus指定した認識率以上であれば英語または日本語で以下voiceに書き込まれた文章を読み上げます。

   so  soundの略。指定した認識率以上であれば、警戒音を出します。口笛の音限定です。

   fl   flashの略。指定した認識率以上であればカメラのフラッシュを2回発光します。

  • voice= Please_note_that_is_a_car

countryをja又はusとしたときに発声する文章を記入します。英語の場合は60文字以内、日本語の場合は30文字以内で、なるべく1.5秒以内で終了する文章を記入して下さい。英語の場合は、空白部分を必ずアンダーバーに置き換えて下さい。jaに設定した場合で英語表記をすると英語発声が非ネイティブになります。

この設定例でclass番号を3に変更した場合、例えばLEPTON端末を自転車の後ろに設置して、iPhoneアプリを実行させ、後ろから70%以上の認識率の車が迫ってくると Please note that is a car !! とiPhoneが教えてくれます。日本語指定の場合は「車が来ます」でも良いですね。赤外線カメラですから当然真夜中でも!!

country = us

Specify the type of alert.(All specified with two single-byte characters)

ja or us: If the recognition rate is higher than the specified rate, the text written in the Siri voice below will be read out in us=English or ja=Japanese.

so: Abbreviation for “sound”. If the specified recognition rate is exceeded, a warning sound is emitted. Only “whistling” sounds.

fi: Abbreviation for flash. If the specified recognition rate is exceeded, the camera flash will fire twice.

voice = Plaese_note_that_is_a_car

Enter the text to be uttered when country is ja or us. For English, enter up to 60 characters, for Japanese(2bites), up to 30 characters. it should be sound within 1.5 seconds.

For English, be sure to replace the blank with an underscore(_). If it is set to ja and English is used, English utterance will be non-native.

If you change the class number to 3 in this setting example, for example, if you install the LEPTON terminal behind the bicycle and run the iPhone application, if a car with a recognition rate of 70% or more approaches from the back, Plaese note that is a car !! and iPhone(Siri) will tell you. In the case of ja, “car will come” is also in Japanese. Of course, it’s an infrared camera, even at midnight ! !

f:id:TAKEsan:20191107125316p:plain

実際に実現させたら.....。特に自転車では危険な細い道ではアラーム効果の利点が確実に体験できました。実際には左下にCarと表示された認識率70%段階でアラームが鳴っています。(開発段階の動画です)

Actually tested … The advantage of the alarm effect was definitely experienced on the narrow roads that are particularly dangerous for bicycles. Actually, the alarm is sounding at the recognition rate of 70% displayed as Car in the lower left. (This is a video at the development stage.)

 

 w_t.txtの内容を「textor」で編集してDoneで保存した場合、すぐに設定が反映されますので、変更しながら最適なアラートを見つけて下さい。

When you edit the contents of w_t.txt with “textor” and save it with Done, the settings will be reflected immediately, so find the best alert while changing your setting.

-----------------------------------------------------------------------------------------------------

4.YOLOv3学習済みファイルの変換方法 How to make YOLOv3 Pre-learned files.

ここからは十分に経験と知識のある方、NVIDIAGPUを積んだLinuxマシンが動く環境が使える方が対象です。最初は非常に複雑なインストール作業を伴いますが、2回目以降はさほどでもありません。概要は以下の通りです。内容を理解した段階でMac側の一連の作業をPython等にまとめると効率が上がります。

linuxマシンで学習->学習済みweightsファイルをmacにコピー->h5ファイルに変換->coremlファイルに変換->coremlcファイルに変換->txtファイルを3つ作成-->zipに圧縮 

From here, it is for those who have sufficient Deep learning experience and knowledge, and who can use an environment where Linux machines with NVIDIA GPUs can run. The first involves a very complex installation(according to https://github.com/AlexeyAB/darknet), but not much after the second time. The outline is as follows. When you understand the contents, you can improve the efficiency by grouping a series of tasks on the Mac side into Python.

Learning on linux machine-> Copy learned weights file to mac-> Convert to h5 file-> Convert to coreml file-> Convert to coremlc file-> Create three txt files-> Compress to zip

4.1 録画した赤外線画像データをアノテーションする。Annotating LEPTON images and learning

学習データ画像はThermal Cam3xで録画したファイルを使います。アノテーション及び学習方法はこのページを参照して下さい。

YOLOオリジナルデータの学習 - Take’s diary

YOLOオリジナルデータの学習その2(追加学習) - Take’s diary

さらに詳しい内容は以下URLを参考にして下さい。

darknet/cfg at master · AlexeyAB/darknet · GitHub

 

iOSで実行するためには特に以下の設定が必要です。

  • 設定ファイル(CFGファイル)は yolov3-voc.cfg又はyolov3.cfgを使用します。
  • 入力画像の大きさは with=416 heights=416 限定です。
  • YOLOv3.cfgの設定ファイルは参考ページにも説明していますが、classがらみで合計10カ所以上の変更が必要です
  • 学習の収束を早めるための初期weightsファイルは、darknet53.cov.74をダウンロードして使用します。

The learning data image uses a file recorded with Thermal Cam3x. Please refer to this page for annotation and learning methods.

YOLOオリジナルデータの学習 – Take’s diary

YOLOオリジナルデータの学習その2(追加学習) – Take’s diary

Please refer to the following URL for further details.

darknet/cfg at master · AlexeyAB/darknet · GitHub

In order to run on iOS, the following settings are required.

Use yolov3-voc.cfg or yolov3.cfg as the configuration file (CFG file).

The size of the input image is limited to with = 416 heights = 416.

The configuration file of YOLOv3.cfg is also explained on the reference page, but it is necessary to change a total of 10 or more locations in relation to the class

Download and use darknet53.cov.74 as the initial weights file to speed up learning convergence.

4.2 MacにYAD2Kをインストールする。Install YAD2K on your Mac.

以下python3.7用のanaconda環境を作り、YAD2K及びkerasをインストールします。インストール方法は各々冒頭に記述されています。ただし最初のKerasインストール時はTensorflowインストールコマンドのみ conda install -c anaconda tensorflow==1.14 つまりtensorflowのバージョンは1.14にして下さい。

Create Anaconda environment for python3.7 below and install YAD2K and keras. Each installation method is described at the beginning. However, when installing Keras for the first time, only the Tensorflow installation command is used. Conda install -canaconda tensorflow == 1.14 That is, tensorflow version should be 1.14.

GitHub - allanzelener/YAD2K: YAD2K: Yet Another Darknet 2 Keras

GitHub - qqwweee/keras-yolo3: A Keras implementation of YOLOv3 (Tensorflow backend)

4.3 Kares を使ってYOLO学習済みファイルをコンバートする Convert files created in 4.3 to mlmodel

keras-yolo3-masterフォルダに入ってから、以降もanaconda環境の中で作業を行います。

まずconvert.py を実行しますが、このままではエラーが出てしまうので、convert.pyの88行目をinput_layer = Input(shape=(416, 416, 3))に変更します。

次に、同じディレクトリへ該当するweightsファイル、そして学習で使ったcfgファイルを入れておきます。

cfgファイルのはじめに設定しているパラメーターを bach=1 subdivisions=1に変更しておき、以下のコマンドで 新たにh5ファイルを作成します。cfg、weightファイル名はコピーしたそれぞれのファイル名に変更し、.h5ファイルは好きな名称を付けます。

この例ではdataフォルダにh5ファイルができます。

After entering the keras-yolo3-master folder, the following work is also performed in the anaconda environment.

First of all, convert.py is executed, but an error will occur if this is done, so change the 88th line of convert.py to input_layer = Input (shape = (416, 416, 3)).

Next, put the corresponding weights file in the same directory and the cfg file used for learning.

Change the parameter set at the beginning of the cfg file to bach = 1 subdivisions = 1, and create a new h5 file with the following command. Change the cfg and weight file names to the copied file names, and give the .h5 file a name of your choice.

In this example, an h5 file is created in the data folder.

./convert.py yolov3.cfg yolov3.weights model_data/yolo.h5

4.4 4.3でできたファイルをmlmodelに変換する

Apple 提供のcoremltoolsをインストールします

pip install coremltools

新たにフォルダを作成し(yolo_coremlと仮定)

mkdir yolo_coreml

cd yolo_coreml

以下のpythonプログラムを作成します

この中で3行目の ../../keras-yolo3-master/model_data/yolo.h5 は先ほど作成したh5ファイルを指定して下さい。

Install coremltools provided by Apple

pip install coremltools

Create a new folder (assuming yolo_coreml)

mkdir yolo_coreml

cd yolo_coreml

Create the following python program

In this, please specify the h5 file created earlier for ../../keras-yolo3-master/model_data/FLIR_J.h5 on the third line.

coreml.py

--------------------------------------------------------------------------------------------------

import coremltools

 

coreml_model = coremltools.converters.keras.convert('../../keras-yolo3-master/model_data/yolo.h5', input_names='input1', image_input_names='input1',  image_scale=1/255.)

coreml_model.input_description['input1'] = 'Input image'

 

coreml_model.author = 'Original paper: Joseph Redmon, Ali Farhadi'

coreml_model.license = 'Public Domain'

coreml_model.short_description = "The YOLOv3 network from the paper 'YOLOv3: An Incremental Improvement'"

 

coreml_model.save('w_t.mlmodel')

 --------------------------------------------------------------------------------------------------

python coreml.py

の実行で、フォルダ内にw_t.mlmodelファイルが作成されます。多少時間がかかります。

python coreml.py

Execution will create a w_t.mlmodel file in the folder.

4.5 標準では32ビットデータなのでデータ容量を減らしたい場合は16bitに変換する Standard is 32-bit data, so if you want to reduce the data capacity, convert it to 16-bit

16bitモデルは認識率が多少落ちるので、用途に応じて対応して下さい。16bitモデルに変更する場合は以下のpythonプログラムを作成して実行します。

The 16bit model has a slightly lower recognition rate. To change to the 16bit model, create and execute the following python program.

convert16.py

--------------------------------------------------------------------------------------------------

import coremltools

model_spec = coremltools.utils.load_spec('./w_t.mlmodel')

model_fp16_spec = coremltools.utils.convert_neural_network_spec_weights_to_fp16(model_spec)

coremltools.utils.save_spec(model_fp16_spec, 'w_t.mlmodel')

--------------------------------------------------------------------------------------------------

4.6 mlmodelをmlmodelcに変換する Convert mlmodel to mlmodelc

mlmodelコンパイルしてmlmodelcファイル(実はフォルダ)を作成します。必ず最終ファイル名はw_t.mlmodelcであることを確認して下さい。

Compile mlmodel and create mlmodelc file (actually folder). Make sure that the final file name is w_t.mlmodelc.

/Applications/Xcode.app/Contents/Developer/usr/bin/coremlc compile w_t.mlmodel ./

4.7 さらに3つのファイルを用意する Prepare 3 more files

w_t.names   : 学習に使ったクラス名称ファイルで、ファイル名称を変更して使用します。

w_t.txt   :「3.認識結果アラートの設定方法」を参考にして下さい・

REDME.txt :名称、内容とも任意で、実際には使用しません。今回の作業ファイルはすべて同じ名称にしなければないので、後から確認できるようにデータ内容の説明を記入して下さい。

w_t.names : The class name file used for learning is used by changing the file name.

w_t.txt        : Refer to “3. Setting method of recognition result alert”.

REDME.txt : Name and content are optional and are not actually used. All work files must have the same name, so please enter a description of the data so that you can check it later.

4.8 合計4つのファイルを新たに作成したw_tフォルダに移動する Move a total of 4 files to the newly created w_t folder

w_tフォルダを作成して、中にw_t.mlmodelcフォルダ、w_t.names、w_t.txt.、README.txtをコピーします。

Create a w_t folder and copy the w_t.mlmodelc folder, w_t.names, w_t.txt., and README.txt into it.

4.9 フォルダをzipに変換して自分のアカウントを持つicloudへuplodeする Convert folder to zip and uplode to icloud with your account

w_tフォルダをzipに圧縮します。iPhoneから一番使いやすいダウンロード先はiCloudです。今回のThermal Cam3xはフォルダ名がw_t限定なので、モデル毎にフォルダ管理して下さい。

Compress the w_t folder to zip. The easiest download location for iPhone is iCloud. Since this Thermal Cam3x folder name is limited to w_t, please manage folders for each model.

 

最後に Finally

Thermal Cam3xはOSCを使ってデータを送受信していて、OSC通信を使ったシンセサイザーや、複数のESP8266、コンピュータとの交信が可能です。また今回のバージョンはユーザーが用意した画像認識データを自由に利用できるAI画像認識に対応できたので、赤外線カメラを利用したいろいろなアイディアがiPhoneで実現できます。今後は認識アラートの強化を進めていく予定ですが、皆さんのちょっとしたアイディアが、実用性と面白さを伴って生み出されて行くことを願っています。

Thermal Cam3x transmits and receives data using OSC, and can communicate with synthesizers using OSC communication, multiple ESP8266s, and computers. This version also supports AI image recognition that allows users to freely use image recognition data prepared by the user, so various ideas using infrared cameras can be realized on the iPhone. In the future, we will continue to strengthen awareness alerts, but I hope that your little ideas will be produced with fun.

Goto Home

----------------------------------------------------------------------------------------------------------------------------

 

 

 

*1:残念ながら内臓GPU性能に依存するためiPhone X以前の機種では使用できません。また事前に学習済みファイルを所定のフォルダにダウンロードする必要があります。Unfortunately, it depends on the built-in GPU(Bionic chip) performance and cannot be used with iPhone X or earlier models. In addition, it is necessary to download the learned files to a predetermined folder in advance.

*2:現在公開しているテスト用学習済みファイルは3種類です。There are three types of test-learned files currently available.

*3:複数のESP8266にメッセージを送るなど今後機能を増やしていく予定です。We plan to add more functions in the future, such as sending messages to multiple ESP8266.