2019年1月30日水曜日

コンピュータービジョンとAI画像認識

デジカメで顔認識がありますが、あれはAIではなくCV(コンピュータービジョン)とかMV(マシンビジョン)と呼ばれる技術です。
CVやMVは画像の中の対象物の輪郭を捉えています。あとは距離を算出してピントを合わせて写真を撮ります。

その中に目、鼻、口の条件の揃う物を抽出しています。
スマホはそれにAI画像認識の処理をして夜間でも背景との露出を調整して綺麗な写真に仕上げる様にしています。人の目に見えない物まで強調出来る様になっています。

なのでコンピューターにはこんな感じで見えています。

既にカメラセンサーにCPUを載せて五千円程度でコンピューター無しでCVやMVが可能な物が子供のおもちゃになりつつあります。それにAIフレームワークの簡易版まで付いています。
複雑な処理をさせなければ10年前にあった自動走行車にパソコンを載せた技術が、子供のおもちゃに乗っている事になります。

ここ数年それぞれの理論はC++でカスタマイズ出来るので画像認識、姿勢制御と自動走行とかを組みあさせた処理が大学生レベルで可能になっています。
私たちが今やっている様に基本のコードはその人たちで整理されて必要に応じて他の技術を連携や処理の最適化である程度使える物を個人で出来る様になっています。

子供のコンピュータ学習様のソフトは既にドローンをコードでコントロール出来る物があります。数十万円をドローンスクールに払って数十時間訓練しても、GPSや距離センサーとタブレットでコードを使って飛行させるのであれば正確性ではかないません。
この様なソフトでDJIの本物のドローンも制御出来ます。って既に使われていますが、業者の言値です。

技術を理解せず使い勝手でその費用を払うか技術を理解して使いこなせば余分な費用を払わず使いこなせる事になります。

ただ基本技術の理解に数理や公式をある程度する事とプログラミングの技術を習得しないと付いていけなくなっています。むしろ応用技術の進歩の速さがかなりのスピードです。

2019年1月26日土曜日

AI、AIって…

名古屋の会合でドローンスクールの話の中でAIの説明がありましたが、勘違いも甚だしい説明でした。
自動航行はAIでも機械学習でもなんでもありません。聞いてる人も興味も無くAIについても特に知識も無い方が殆どなので質問もツッコミのありません。
確かに現場で開発している人は真面目にされていると思いますが、登壇して業務内容を説明する人はある程度予備知識をもってお客様に説明すべきです。

S社の若手開発者はまぁ開発者なので技術はわかっていると思いますが説明が中途半端?
S社の開発自体が中途半端なのかもしれませんが、AIで条件選択の説明はもう少しキチンと説明して欲しかったのと音声認識は自社開発ではなさそうなのでアンドロイド=グーグル?なのでしょう。
違和感があったエアコンの温度調節でAIロボットが外気温の方が快適な場合はお知らせエアコン操作の機能をクラウド経由で実行するという話がありましたが、自社のエアコンにその機能を搭載するのが本来の機能ではないの?

他の人のダメ出しと言うより自分で登壇して説明する際は上記の事は考慮してよりより説明をする指標にしようと思います。

予備知識の無い人に説明する場合はどうすべきか?
結構難しい問題です。

AI説明の為の要点を整理します。
①今までの技術との決定的な違いーエアコンの自動設定みたいなものと違い
②中の技術の説明ー 理解のレベルに合わせて説明
③興味をもってもらう為に聞いてる人やその方々の仕事の応用例を考える。
④ドローンやロボットなどで興味をもってもらう
....

ただこの業界”見える化”って(昭和の遺物?)数万円するディスプレイを売っている時点で終わってると思います。どれだけ発電してお得かはたまにスマホで見る程度で良いと思う。コストダウンを本当に考えるのならそこも含めてシステム全体を考え直さないともう昔に戻れない。そんな心配してもしょうがないか?


2019年1月20日日曜日

これからの技術について(今使っている技術についても…)

IoTとAIと言って居ますが、これまでの知見で少し説明します。

ご存知と思いますがIoTやAIと言ったボタンがあってそれをクリックして実現するかの様では無い事はお分かり頂けると思います。

AIの中身は極論すると予測と最適化になると理解した方が分かりやすいかもしれません。

例えば画像認識では特徴量を最適化(コンピューターに人なら人はどう言った画像かと理解させて)の最適化されたモデルを未知の画像を見せて予測させています。
そこで最適化する数理計算の方法があります。

(私の理解はまだ2番目位ですが)
  • 古典制御(~1960):周波数解析(PID制御、位相進み・遅れ補償器など)
  • 現代制御(1960s):多入出力最適化(LQR、カルマンフィルターなど)
  • ロバスト制御(1980s):モデル化誤差定式化(制御など)
  • モデル予測制御(1990~):凸最適化(MPC、ロバストMPCなど)
以前カルマンフィルターについて書きましたが、理論的にはそれ以上のものがすでに存在していますが、単に安い機器に応用されて居ないだけのようです。

難しい事言って居ますがここからが本題。

実践的な話に戻します。
例えば自家消費で考えると、発電量と消費量を計測器で出た結果で制御すると無駄だらけです。計測のサンプリングが1分毎なので余程、マージン(無駄)を取らないとすぐにRPRが働く事になります。働かなければ儲けもの。

サンプリングをそのままにしたとしても、使用量を解析して、予測して制御するのがこれからの制御のはず。

計測装置が見える化だけなんてナンセンスです。(今の時代古典すぎるし、見せ方を綺麗にするなんて論外です。)
て言う事を実践出来ないか(出来るはず)をみていますが数理が難しいので届いていません。

も一度言います、これからは最適化と予測です。計測した結果の制御は電電公社の時代の技術です。計測して動作では黒線しか出来ません。

もっと勉強しとけば良かったと思うと同時に、今は理論を実践する為の機器が出てきたので新しい時代です。

2019年1月14日月曜日

今年の目標は無駄な事をする。(無駄ではありませんが…)

現在の開発は機器の設定が殆ど。
但し何か不具合があった場合はどこに問題があるか切り分けるには設定や原理の理解が不可欠です。それでも簡単ではありません。
機械学習、AIが世間で持て囃されていますが一般の人が期待するAIを使った自動化はかなりの手間と時間が掛かります。技術が熟成するのはまだまだ時間が掛かりそうです。
盤メーカーに必要な目標としているのは必要な機械学習の技術を見つけ出しそれを実践する為に情報取集をしています。

今回AIコンペ選考委員の方々からの指摘も踏まえて現在開発中の作品を修正して行きます。
サーモグラフィーを使った獣害対策や不良太陽光パネルのデータを撮ってモデルを作る事も考えて居ますが、可なりのサンプルと時間が掛かります。
並行して作品のプレゼンテーションの試行錯誤も必要と考えています。

さて、年始の挨拶回りにご興味を持たれたお客様にプレゼンテーションを思案中。
色々とご意見を伺って改善していこうと思います。


AIって?

まずは機械学習におけるデータ処理のCPUGPUの用途の違いからの違いから…
主に行列演算をするのですが、

約5000位のサンプルを13002回計算しますが要は0−9かどうかの計算なので5000X13002回=65010000回CPU計算するよりGPUで5000の並列処理で13002回計算する方が効率的です。
もちろんインテルも8コアのCPUを利用した並列処理を進めていますが、今の所GPUには及ばないようです。
この処理をCPUクロック数をあげても…
GPU敵いませんね…

勿論それぞれのモデルはCPUもGPUもセットでついているので飽くまで理論的な違いを比較して居ます。
CPUでAIと言っているインテル自身MovidiusというGPUスタートアップの買収もしています。


さてここからがAIの解説になります。出来るだけ簡単に。
現在AI(人工知能)と呼ばれているものはほぼML(機械学習=マシーンラーニング)。
コンピュータに学習させてその結果を推測させる技術。
  • 機械学習
  1. 教師あり学習
  2. 教師なし学習
  3. 強化学習
  • 最適化

次はフレームワーク(AIエンジンと思って頂ければと思います。)代表的なもの
TensorFlow(Google開発で世界人口が一番ですが中級以上)
Caffe(バークレイ大学)
Chainer(日本)
Keras
Pytorch(Facebook)
darknet(yolo)比較的新しく流行っている?
CNTK(マイクロソフト)
このフレームワークを使って計算するのですが、行列演算をしてコンピューターに基準(モデル)を作ってそのモデルを使って未知のデータに推論結果を示します。
コンピューターで特異点をフレームワークを使ってモデルを導きます。
(何が違うのかコンピューターなりに数値化します。)


下記の方が分かりやすいですね?
ニューラルネットワーク(神経伝達)と言われる意味がお分かりになれます。


推論をするのにコンピューターは上記の丸を行ったり来たりしながら確率%で答えを出します。

今まではコンピューターは1か0の答えを出すものでしたが、人間の様な曖昧さをコンピューターが持てる事が新しい技術。
計算上の結果は下記の点ですが、赤い部分をコンピューターで導き出す為に、統計学を使います。
主な理論はベイズ統計学とかベイズ推定と呼ばれるものです。
トーマスベイズ(1702ー1761)と言う人でAIブームになるまであまり知られていませんでした。

理屈はここまでで、機器はこれを使います。
トヨタや名だたるメーカーがこぞって使う機器が昨年9月に出ました。
自動運転に使う機器なので高価(ハードだけで約30万円)ですが今までで最高の機器です。
当面これがスタンダードになると思います。
私がそれまで使っていたのが前のモデルでTX2と呼ばれるもので(約7万円)
自動運転と言っても倉庫での搬入搬出に使うものでした。
この方が違いを分かって頂けますね。
オタクの私が今回大阪商工会議所に申込むのに読みきれて積み本はこれ以上です。
勿論ソフトをよく理解している友人を一緒にしています。

サーモグラフィーの技術ですが、趣味でやっている事ですが、本家アメリカのFLIRの開発者ページのブログに昨年秋に紹介頂きました。

元々赤外線でこんなことする為にスタートしました。

AIに関してはかなり説明を端折っているので、

私が書いている事もプロからすれば間違っていると指摘されるかもしれません。




IoT(WIO LTE)用IoT通信情報交換会

2019年1月13日参加
IoT通信情報交換会
玉川様からのご提案のIoTの実践については進捗が遅れています。
WIO LTEのメーカーの日本支店の名古屋で講習。
近距離通信のブルーツゥースは規格が混乱してくるそうなので使わない方が良さそうです。コンソーシアムがBLE4.2以下のサポートを東京オリンピックの頃に新規登録を行わず。BLE5も現在通信の規格が混乱して開発が難しくなっていると開発者がクレームしているそうです。具体的にはスマホのメーカー次第で繋がったり繋がらなかったりするそうです。

現状WIFI機器でIoTをする場合、セキュリティ用の証明書の扱いが(具体的には管理の問題)が難しいのでWIO LTEを利用する事を念頭にしています。

しかしながら3G,LTEおよび5Gにしてもキャリアの基地局の問題で繋げっぱなし(セッションを貼りっぱなし)が出来ない。
また起動時の電流が1Aあるので電池駆動に工夫が必要。
LTE M1/NB1とコストが安い規格がありますが、内部のOSのバージョンにより再起動に時間がかかる。

運用を開始する前に確認出来て良かったと思います。知らずに運用すると嵌ってしまいます。

arduinoを使っていますがMbedにした方が管理はし易くなるのでMbedも必要になりそう。

それも含めてテストを早急に開始する事を今年の目標にします。

2019年1月11日金曜日

第2回AIビジネス創出アイデアコンテスト 落選…

大阪商工会議所より今回ファイナリスト5組の中に入れず落選との連絡がありました。
但し今回の申し込みに対して何も賞はありませんが、プレゼンテーションの機会を別途用意している併せて連絡がありました。
それに参加希望であれば5月以降に参加希望者に詳細案内するとの事で早速希望の旨返信しました。

選考委員から下記コメントを頂きました。


実現性]
単なるPOC支援に見える。
ストーリーや背景は理解できるが、具体的に可能となることのすごさがやや伝わりにくい。
「理解の難しいAIや機械学習の習得」に対する学習サポート面がしっかりしていれば、テーマに沿った意味が出ると思う。
ツールセットがほぼ出来ているので実現性は高い。
プロトタイプは出来ているので実現性は評価できる。

[収益性]
サポートクオリティ次第では需要も見込める。
競合サービスとの差異に関して説明がほしい。
特化している印象なので、どれくらい広がるかが課題。
サーモグラフィーカメラの用途とマーケットが見えないため、現状では収益性は低い。アプリのDL数と収益性はあまり関係がない。

[ユーザー視点]
コストのかからないAI活用のニーズはある。
○AI技術の導入のハードルを下げるというテーマは好印象。
サーモカメラを絡めたユースケースについて、より明確な説明がほしい。
現状では、サーモグラフィーカメラの用途があまり見えない。
ニーズの所在について明確な説明がほしい。

[社会性]
本質的な社会課題をついたアイデアであることは評価でき、可能性を感じる。
○AI技術の普及という意味で、社会貢献性はある。
○AIを使ってみたいという画像処理技術者の欲求は満たすだろう。

[技術性]
独自の技術・フレームを活用し、具体的に考案されている。
具体的な開発紹介があり、評価できる。
サーモカメラは面白そう。
既にプロトタイプが出来ており、評価できる。技術的に新規性があればよりよい。

[その他コメント]
先行社あり(フューチャースタンダード)。
ターゲットビジネスや起業の明確化が必要。
○AIの民主化ツールは、昨今DataRobotNECdotData、その他Googleなども参入をしてきている領域でレッドオーシャン化している。その中での優位性について説明がほしい。

不足要素としてはサーモグラフィーカメラの具体的な用途とニーズについて理解が得られませんでした。また商品化した際のサポート面が明確ではない。
サーモグラフィーカメラの用途とマーケットが見えないため、現状では収益性は低い。アプリのDL数と収益性はあまり関係がない。”
は関係があると考えますがが選考委員に理解してもらえなかったと言うことは説明不足であった事は否めません。

客観的な意見なので改善していきます。
年末年始の挨拶回りでAIビジネス創出アイデアコンテストの応募のお話をした際にご興味を持たれたお客様にプレゼンテーションをする為1月中に今回の出品作品を仕上げる予定です。

2019年1月2日水曜日

AI(機械学習)やROS(ロボットオペレーションシステム)の推論技術

機械学習における結果はデータからその結果を推定しているので結果は確率で表されます。それは統計学がに基づいています。
その重要なものは
ベイズ推定(ベイズすいてい、: Bayesian inference)とは、ベイズ確率の考え方に基づき、観測事象(観測された事実)から、推定したい事柄(それの起因である原因事象)を、確率的な意味で推論することを指す。
統計学なので優良データが多ければ多いほど確度が上がります。

自動運転や航空機、ドローンの位置はオドメトリやデッドレコニング等タイヤの外周x回転数や軌道とGPS、ジャイロやレーダを組み合わせて正確な位置を推定します。
一つのセンサーで位置を正確に出せないだからです。
ある角度にハンドルをきって軌道から距離を求めてもタイヤの滑り等で誤差が無限に広がってしまいます。GPSは屋内では使えませんしレーダーも測定距離に制限があります。
拡張カルマンフィルタを使用した自己位置推定MATLAB, Pythonサンプルプログラム
作者の許可を頂きました。
https://github.com/AtsushiSakai/PythonRobotics/tree/master/Localization
カルマンフィルタの応用例としては、
下記のようなものがあります。
  • 宇宙における軌跡推定・姿勢推定
  • ドローンの位置姿勢推定
  • 複数ロボットの協調位置推定
  • 自動車のエンジンの状態量の推定
  • 自動車の故障検知
  • 自動車のABSにおけるタイヤと地面の相互力やタイヤ摩擦係数の推定
  • 自動車の自動運転
  • 電池の状態推定: 電池の残量は直接観測できないため、電池の電流と電圧でカルマンフィルタを使って推定する

  • 電力配分における状態推定: 各地区における需要と供給の情報を断片的で、かつ、ノイズが含まれたデータから推定する。
黒線はタイヤの軌道、がGPSのデータ、赤線がカルマンフィルターを使った推定された軌跡でが実際の軌跡。
ベイズもカルマンも人の名前です。
カルマンフィルターはアポロ計画で軌道計算に採用されました。

スマホのグーグルマップで自分の位置情報を表示する際に普通に使っている機能の一部です。初期の地図アプリはGPSのデータだけだったので誤差がひどくて使い物になりませんでした。

現在の最新技術は色々な意味で先を読む技術です。だから素晴らしいのかもしれません。