はてなブログでtexを使って数式を書くときに、思い通りにきれいな式が出ないことがあります。
はてなブログ特有の方法があるようなのですが、以下のサイトにわかりやすくまとめてありました。
7shi.hateblo.jp
私のブログでも、下付きの添え字や上付きの添え字がおかしくなってる場所を直せそうです。
論文:"The Double Sphere Camera Model"
論文:"The Double Sphere Camera Model"
https://arxiv.org/abs/1807.08957
自動運転やロボットARやドローンなどカメラ画像ベースで周辺のオブジェクトの3D構造を取得したり、自己位置を推定したいという要求はたくさんあります。
そんなとき、なるべく少ないカメラで広い範囲の画像を撮ろうとしますが、そうすると超広角レンズやいわゆる魚眼レンズのようなFOVの広いレンズで撮影することになります。
FOVが広いのはいいのですが、取得した画像が歪んでしまっています。
この論文は、そいういう超広角レンズの画像の扱いに関しての最近の研究のレビューです。
projection、unprojection関数が紹介されていたり、Double Sphere Camera modelというモデルが紹介されています。
キャリブレーションデータを使っていくつかのレンズに対して、各モデルの評価も行い、reprojection errorやprojectionにかかる計算時間、逆射影やそのヤコビアンなどが示されている。
論文: "Deep Clustering for Unsupervised Learning of Visual Features"
"Deep Clustering for Unsupervised Learning of Visual Features"
https://arxiv.org/abs/1807.05520
教師なし学習の話。
クラスター分類をCNNで行うのだが、k-meansでクラスタ分類した結果を使用してCNNを学習することで高い性能が出たという話。
ImageNetでもデータとしては偏っていて、数も少ない。もっとたくさんの幅広いカテゴリのデータで学習しないといけないが、そんな学習データセットはない。
ConvNetのところはAlexNetでも、VGGでもなんでもいいよ。k-meansもほかの方法でもいい。
普通に考えると、一つのクラスタに収束してしまいそうだが、そうはならないよという話は言及あり。
Fig. 1にこの論文で紹介する手法のすべてが書いてある。
論文: "A Framework for Evaluating 6-DOF Object Trackers"
[1803.10075] A Framework for Evaluating 6-DOF Object Trackers
日々論文をタイトルだけ見たり、眺めるだけだったり、流し読みしたり、熟読したりしています。
その記録を簡単に書いていきます。
今日は表題の論文についてです。
[概要]
6DOFのオブジェクトトラッキングアルゴリズム開発用のデータセットを作りましたという論文。
既存のデータセットは、シンセティックものは現実とは結構違っているし、実写のデータセットは大きなマーカーが
映っていたりする。
Kinect V2を使って、real objectからground truthを取得する一連の手法を開発した。
これを使って人間が手に持った状態でのオブジェクトのトラッキングをやってみた。
Processingで超お手軽に物体認識をやってみる
Pythonでtensorflowはたくさん記事があり、お手軽に使えますが、Processingでも推論だけでしたら非常にお手軽に試すことができます。
私の実行環境は、以下のとおりです。
Windows10 64bit
Processing 3.3.7
この記事はつぎのブログを参考にしました。
Tensorflow in Processing with the LabelImage example – Magic & Love Interactive
まずは、この記事にリンクが張ってある以下のGitHubからProcessingのコードをcloneします。
github.com
基本的にreadmeを読んでその通りにファイルを用意すればOKです。
環境構築と実行手順:
1.Tensorflow for Javaをダウンロードする
Tensorflowのオフィシャルサイトから、Windows版のjava用のバイナリをダウンロードします。
https://www.tensorflow.org/install/install_java#install_on_windows
ダウンロードするファイルは、
libtensorflow-1.8.0.jar
tensorflow_jni.dll
の二つです。
2. 上記二つのファイルをcodeというフォルダーを作ってそこにコピーします。
codeというフォルダーはml20180615a.pdeがあるフォルダーに作ります。
3. 以下のサイトからInceptionのモデルと学習済みデータをダウンロードします。
https://storage.googleapis.com/download.tensorflow.org/models/inception5h.zip
解凍すると以下の二つのファイルが生成されます。
tensorflow_inception_graph.pb
imagenet_comp_graph_label_strings.txt
それぞれ、モデル及び学習済みデータと1000クラスに分類されたオブジェクトのラベル名のリストとなります。
これら二つのファイルは、dataフォルダーにコピーしておきます。
ちなみに、Inception-v3とはGoogleによって開発されILSVRCという大規模画像データセットを使った画像識別タスク用に1,000クラスの画像分類を行うよう学習されたモデルです。 開発当時、非常に高い精度の画像識別を達成していることで注目されました。
以上で準備ができました。
ml20180615a.pdeを起動して実行すると、data/BearBear.jpgを読み込み、"teddy bear 45.89%"と表示されます。
簡単ですね~。
あとは、ソースコードを見ていろんな改造ができそうです。
私はwebcamから入力した動画を識別するようにさせてみました。
カメラの前に座る自分の映像は、
"BEST MATCH: barbershop (22.31% likely)"
のように、理髪店で髪を切っている状態と認識されたようです・・・。
PCやマウスなどは比較的正確に認識されました。
「人工知能と経済の未来」 井上 智洋著 を読みました
- 作者: 井上智洋
- 出版社/メーカー: 文藝春秋
- 発売日: 2016/07/21
- メディア: 新書
- この商品を含むブログ (31件) を見る
現在のAIは囲碁や将棋で、人間に勝つまでに進歩しましたがそれはあくまで一つの或いはよく似た複数の仕事をこなす専用AIです。
2030年から40年にかけて、それが汎用AIに進化する、いやむしろ汎用AIという新しいAIが発明されるだろうと予想されています。
本当に今から10~20年で汎用AIと呼ばれるものが出現するのかどうかはわかりませんが、もし汎用AIが出現すれば、いったい何が起きるのかが考察されています。
本書は、人の生活の仕組みが劇的に変化することを革命と呼び経済の切り口でこの革命について、その本質を説明しています。
例えば、人類が始めに体験した大きな革命として、定住革命があります。
これは、狩猟採集から農業を行うようになった変化です。
食料を自ら生産しストックするようになったこのころから経済活動といったものが始まったと考えられます。
しかし、この時代には農作物の生産には土地+労働が必要とされ、より多くの生産を得るためにはより多くの耕作地を必要としました。
しかし、生産可能な土地の面積には限りがあるので成長が持続することはできず、また生産量が伸びてもそれに応じて人口が増えて、一人当たりの収穫は変化しないというマルサスの罠という現象に直面し人が豊かになることはなかったそうです。
その後、第1次産業革命により、機械化経済が始まります。
現代に生きる我々も基本的にはこのとき始まった機械化経済の枠組みの中にいます。
では機械化経済では何が起こったか? 人は豊かになったのか?
機械化経済では、生産の手段は機械+労働になり、土地が有限だったために成長が持続できなかった時とは異なり、資本を投入し生産設備(機械)を増やすことで生産量を増やすことができるようになりました。
しかし機械化経済の時代では生産力を倍にしてもOutputはせいぜい線形にしか伸びることはなく、設備を増強した分、労働力も増やさないといけないので、人はそれ程豊かになることはないそうです。(これは日々我々が実感していますよね)
General Purpose Technology(GPT)と呼ばれる新しい技術が発明されるたびに、第2次、第3次の産業革命が起きて、それは内燃機関だったりコンピュータやインターネットだったりするわけですが、そういう新しい汎用技術により数十年にわたって成長率が伸びることがあり、そのたびに人は豊かにはなりましたが、それもあくまで機械化経済の枠組みから外れることはなく、成長率はいずれ1パーセントほどの低い水準に収束することになります。
ここで著者は、汎用人工知能というGPTにより今後数十年以内に第4次の産業革命が起き、機械化経済から"純粋機械化経済"の時代に移行すると主張しています。
純粋ってどういうことだろう?と思いますが、それは生産活動に人が関与することがない、”純粋に”機械だけで生産活動ができるという意味です。
これはつまりAIによって人は仕事を奪われてしまう、別の言い方をすれば働かなくてもいい時代がくるということです。
純粋機械化経済の時代では、生産活動に人というボトルネックがありませんので、経済成長率を大きく持続的に伸ばすことができ、人類がこれまで経験したことがない豊かな時代に入ることができるとしています。
しかし、そのままでは仕事を機械に奪われてしまう労働者はこの富を得ることができなくて、資本や生産設備を持つ人のみが富を独占することになります。
どうすればこの豊かな時代に皆が幸せになれるのか、その仕組みを作るのが経済の役割ですので、著者は専門家としてどういう経済体制に移行すれば人類が体験したことのないこの大きな革命からユートピアを作ることができるかを非常に楽観的な視点から論じています。
そして、その働かなくても欲しいものが何でも手に入る豊かな時代に人はなにをすればいいのか?それは本書の最後の最後「おわりに」と題された章に凝縮されています。
著者が「おわりに」で述べているような世界が本当に来るのかどうか?それはきっとまだ誰もわからないと思いますが、その革命の基になる汎用AIをいち早く手にできるように世界中で研究開発が行われているのは確かです。
汎用AIの研究・開発に少しでも貢献したいなと考えながら本書を閉じました。
Kerasのコーディングではまったこと集
Kerasのsessionはきちんとclearさせてないとエラーがでます
Tensoflow + Keras のコードの実行で、
TypeError: 'NoneType' object is not callable
というエラーがでて原因がわからず少しはまりました。
どうやら、kerasのバックエンドのTensorFlowのsessionをclearしていないのが原因だったようです。
以下の記事を参考にしましたら、エラーが消えました。
keras+tensorflowで終了処理でエラーが発生する | CodeLab技術ブログ
ネットワークの可視化に関して
ネットワークを可視化したかったので、以下のドキュメントを参考にしました。
可視化 - Keras Documentation
from keras.utils import plot_model plot_model(model, to_file='model.png')
たったこれだけなら簡単だと思ったのですが、必要なパッケージがインストールされていなくてそのままでは動かなかったです。
私の環境では、以下のようにすれば動作しました。
conda install graphviz conda install pydot
さらに、以下のサイトから"Stable 2.38 Windows install packages"をダウンロードしインストールしました。
http://www.graphviz.org/download/
そして、Windowsの環境変数のPathに C:\Program Files (x86)\Graphviz2.38\bin を追加しました。
以上で無事、ネットワークのグラフが表示されました。