2019年7月25日木曜日

AppyBuilder Online will be closed for a while

I have developed various apps with AppyBuilder. I have been enthusiastic because both the design and the functionality of this system are good. Below are some of the applications I developed.

Some of the applications I developed with AppyBuilder
However, there has been an announcement that this online version will be closed from August 1st. The reason is that it takes time to concentrate on the development of a new version up to the 1st quarter of 2020. Once I knew that, I have to download and back up the apps I developed so far. And I expect new versions to be released successfully.

AppyBuilder also offers an amazing CodeEditor. It is very good at developing Extensions for App Inventor. Thanks to this, for example, I was able to easily develop the JSON Decode Extension as shown below:

http://sparse-dense.blogspot.com/2019/01/a-json-decoding-extension-for-app.html?m=0
http://sparse-dense.blogspot.com/2019/01/a-json-decoding-extension-for-app_19.html?m=0


I would like to expect further development of the CodeEditor.

2019年7月22日月曜日

MATLABセミナー:農業分野へのインパクト

 MathWorks社では、年1回のMATLAB EXPOという大規模技術展の他に、随時、セミナーを開催している。今回は下記セミナーに参加した。MathWorks社からのチュートリアル2件と、ユーザによる活用例2件(東大と八千代エンジニアリング)があった。会場のNext-1の定員は180名とのことだが、ほぼ満席に近い盛況であった。(スライドコピー等の配布資料は無し。)

MATLABおよびSimlinkセミナー
https://jp.mathworks.com/company/events/seminars.html
「ユーザから学ぶ画像処理・ディープラーニングでのMATLAB活用例」
2019年7月22日(月)、秋葉原UDX Next-1

MATLABセミナーが行われた秋葉原UDX(Google Mapsより)

 MATLABをすでに使っている人にとっては、MathWorksからのチュートリアルはそれほど目新しいものではないと思われるが、いくつかのポイントを以下に示す。
・MatLabのユーザは、世界で約400万人とのこと。
・日本国内では、約2,000社が利用している。
・画像処理のワークフローを宣言的に書けるので、プログラミングに煩わされずに自分が行いたいことに集中できる。
・MatLabコンパイラにより、成果物(MATLABコード)をスタンドアロンアプリ化して配布できる。
・Deep Learningだけでなく、そうではないルールベースの画像処理も充実。
・Deep Learningの処理の目的は「分類」、「検出」、「セマンティックセグメンテーション」の3種。
・これら3種それぞれに、ラベル付けの方法がある。

 小生が最も聴きたかったのが、東大(D1生)の発表である。これについて、以下に述べたい。実は、この研究成果は、2019年5月のMATLAB EXPO(台場で開催)のポスターセッションで公開されていた。小生は、すでにその報告をブログ記事としてここに書いた。今回、さらに詳しい内容と、ポスターセッションにはなかった農業分野での新しい展開も示された。この発表に、改めて感銘を受けた。

 今回新たに、「みかん」の熟度判定に蛍光分光法を用いて、みかんの最適収穫時期(糖酸比に基づく)判定を画期的に省力化できることが示された。ベイズ最適化を組み合わせたDeep Learningを行った。CNNは非常に有力ではあるが、なぜうまく行くのか分からない点もある。また、ネットワークの構造や実行制御のためのハイパーパラメータの調整も一筋縄では行かないとのこと。さらに、「とうふ」の凝固の制御(やわらかい、かたい)について、職人が長年の勘で判断していたことを置き換えるかも知れない方法もやっている。それは、とうふのできる過程でのレーザビーム反射光の画像を分類することだと言う。

 Deep Learningには、一般に多くの計算パワーが必要である。MATLABには、AmazonのAWSを使ってMATLABコードをクラウドで計算させる仕組みがある。これを使った。たまにしか使わない人にとって、自分のスケジュールで、使った分だけ支払うこのやり方のメリットは大きい。一例だが、自分のPCでMATLABコードの計算に25分かかったものが、AWSでは4分で完了した。

 MATLAB EXPOの時にも述べられていたことだが、以下の取り組みでは、実はDeep Learningはやっていない!ルールベースのアルゴリズムで、独自にプログラムを書き上げた。それにより、農園の「桃」の個数と熟度を判定できる。また、「いちご」の画像から、いちご一粒づつのサイズと糖度を認識する。さらに、3次元スキャナー(ライダー)の画像から、木の葉が重なって見えていても、葉っぱ一枚づつを確実に認識し、葉の面積、傾き角度も認識できるという。これらの、Deep Learningでないやりかたは、自分にフィットして制御しやすく、結果に応じて修正もやりやすい。そういうメリットは大きい。

 この発表のタイトルは、「機械学習や3次元点群処理技術が切り拓く植物計測の技術革新」となっている。まさに、その通りであり、農業分野へのインパクトは非常に大きなものとなるであろう。

セミナーで配布されたグッツ

2019年7月13日土曜日

Real-time image recognition demonstration on a smartphone using TensorFlow.js

There are many examples of image recognition (especially classification) by AI, but the "Google AI Experiments" introduced here seems to be further evolved. It was announced at TensorFlow Dev Summit 2019. Do you already know? This Summit's  38 lecture videos are available on youtube:

https://www.youtube.com/watch?v=GRMvCeIKvps

I tried the demo called "Teachable Machine" among them. As shown in Figure 1, the smartphone classifies images into three types. The Javascript version of Tensorflow runs under the web browser. A local Neural Network in the smartphone performs image training and evaluation without sending the image to the server. Of course, as long as this demo is used, no coding is required at all.


Here, we prepare three types of images of a hat, i.e. "back", "side", and "front", as shown in Figure 2, about 10 images each. Is it all right with such a small number of images? You may think that "transfer learning" is working there. In other words, this Teachable Machine should be using a Neural Network, which has been trained with a huge amount of images for a certain purpose.


Let's train this as shown in Figure 3. That is, press the corresponding button (train button) at the bottom to label each image. Each time, the image is trained in real time. For each of the three types, 10 images should be trained. After that, if you take a picture of the hat with either the back, side, or front, the orientation of the hat will be immediately determined. Actually, as you can see, everything was accurately identifiable! 100% confidence!


Next, try shooting with the hat in an ambiguous direction, not exactly on the back, side, nor front. As human beings feel, the result seems that Neural Network can not judge with certainty. It was a judgment that "maybe a side (59% confidence)". This is another good point.


● The university's graduation research is becoming increasingly severe. Even if you work hard to code and create an AI application, it seems that it is difficult to go beyond applications that can easily be made with no coding like this example. But on the other hand, the Teachable Machine demo app is just a demo. Kindly, the source list is also published. It's great if you can use this to solve your own problems. The level of graduation study goes up by this.

● This trial was carried out with smartphone Pixel3a (Android OS 9). Of course, it is also possible to use a PC or Mac, but the point is that you can train and evaluate in real time on your smartphone. Note that this demo will not work on iPhone and iPad.