2016年5月24日火曜日

VirtualBoxでホストOS(Windows)とゲストOS(Ubuntu)のクリップボードの共有

VirtualBoxでホストOS(Windows)とゲストOS(Ubuntu)のクリップボードができると便利だなと思ってぐぐってみたところ簡単に方法が見つかりました。
設定方法は、設定→一般→高度→クリップボードの共有を双方向にすることでクリップボードの共有が出来ました。因みに、ドラッグ&ドロップはうまく動きませんでしたが、今のところドラッグ&ドロップをしたいということはないのでまあいいかなと思っています。


2016年5月23日月曜日

TensorFlowで線形回帰

前回投稿した、MNIST For ML Beginnersよりもわかりやすいサンプルプログラムの解説を見つけたので、投稿しておきます。「TensorFlowを試す(線形回帰)」

[TensorFlowのチュートリアル] MNIST For ML Beginnersを動かしてみました

前回、Windows10<-VirtualBox<-Ubuntu<-TensorFlowをインストールしました。
今回は、チュートリアルの「MNIST For ML Beginners」という手書き文字(数字)の認識プログラムを動かしてみようと思います。
参考にしたページは「TensorFlow - MNIST For ML Beginners」です。

操作手順は、
  1. Google Gitのminstのページからtgzをダウンロードして解凍する。
  2. 解凍されたファイルの中から、input_data.pyとmnist_softmax.pyをPythonの作業用フォルダへコピー。
  3. minist_softmax.pyを実行
結果、手書き文字データがダウンロードされ、認識率が0.9022とサンプルプログラムが簡単に動くことが確認できました。

次にサンプルプログラムの中身を見てみました。

mnist_softmax.pyの中身
# Copyright 2015 Google Inc. All Rights Reserved.... 
著作権のはなしですねとりあえず読み飛ばします。

"""A very simple MNIST classifier.
See extensive documentation at
http://tensorflow.org/tutorials/mnist/beginners/index.md
"""
ドキュメントへのリンクが書いています、英語ですがそれほど難しくないと思います。
面倒なので読んでいませんが。。。
手書きの数字の画像をSoftmax回帰をもちいて認識していますよ的なことがわかりやすくかかれていそうです。英語が得意ではない人は日本語訳を見ましょう。

from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
何かをインポートしてますが、よく分からないので飛ばします。

# Import data
from tensorflow.examples.tutorials.mnist import input_data
input_data=データをインポートするライブラリ
機械学習系のライブラリーを使うときにはデータのインポートでつまずくことが多いので、別途調べたいと思います。

import tensorflow as tf
tensorflowのインポート

mnist = input_data.read_data_sets("/tmp/data/", one_hot=True)
データをインポート

sess = tf.InteractiveSession()
データをインポートして、tfのセッションを作っています。こちらやこちらをみるとセッションとはCPUやGPUで実際の計算をマネージメントするくらすみたいです。

#Define loss and optimizer 
y_ = tf.placeholder(tf.float32, [None, 10]) 
プレースホルダーの設定、プレーフォルダーはデータを入れておく変数らしい。

cross_entropy = -tf.reduce_sum(y_ * tf.log(y))  
損失関数の設定(クロスエントロピー法)

rain_step = tf.train.GradientDescentOptimizer(0.01).minimize(cross_entropy)
最適化手法の設定 勾配降下法、ステップサイズ0.01、cross_entropyを最小化する。

# Traintf.initialize_all_variables().run()
パラメーターの初期化

for i in range(1000):
  batch_xs, batch_ys = mnist.train.next_batch(100) #ランダムに100セットの学習データを取り出す。
  train_step.run({x: batch_xs, y_: batch_ys}) #学習する
1バッチ(100)データずつの学習を1000回行っています。
いわゆる確率的勾配降下法ってやつですね。

# Test trained model
correct_prediction = tf.equal(tf.argmax(y, 1), tf.argmax(y_, 1))
予測値と実値があっているかどうかの配列を作成。argmaxは引数のなかで一番大きい値のindexつまり、推定される数字を取り出す。

accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32))
予測値と実値があっているかどうかの配列から精度を算出

print(accuracy.eval({x: mnist.test.images, y_: mnist.test.labels}))
精度を出力。



以上、ざっとサンプルプログラムに目を通してみましたが、機械学習のプログラムのパターン
学習データ準備 → モデル定義 → 学習 → 検証となっていることがわかりました。
もう少し詳しく調べてから次のチュートリアルに行きたいと思います。

ドローンの組み立て方の動画(日本語)を見つけました。

ドローンの組み立て方の動画(日本語)を見つけたので動画を張っておきます。
残念ながら、フライトコントローラーの設定の動画は掲載されていませんが、やっぱり日本語だと理解しやすいですね。

FPVドローンに関係する電波法の勉強中

ドローンを飛ばすときに、航空法だけでなく電波法も守らないと摘発されるようです(小型無人機(マルチコプター)で使用された不法無線局の開設者を摘発」)。サラリーマンの私としては、趣味で遊んでいて摘発されては困るので電波法を勉強中です。

そこで、まずは総務省の電波法のページを読んでみようと思ったのですが、文章が難しい上に長いので、とりあえず保留にして、総務省に電波利用のホームページと特定無線設備についての説明を読んでみました。

今日、以下のことが分かりましたが、もう少し勉強を続けていこうと思います。

・電波の送信を行う機械 + 人を電波局という(受信だけのものは電波局ではない)
・電波局の開局は原則として免許制であり、総務大臣の開局免許が必要。
・携帯電話や無線LANなどは、特定無線設備に該当し、さらに技適マークがついている物に関しては、利用者が免許を取得しなくても開局(使用)可能。

つまり、「特定無線設備に該当する」 AND 「技適マークがついている」製品は免許なしで使用可能。「特定無線設備に該当するが技適マークがついていない」製品や「技適マークがついているが特定無線設備に該当しない」製品は開局免許が必要。


分かりやすい総務省PDFを見つけたのでリンクを張っておきます。

2016年5月22日日曜日

200g以上のFPVドローンを飛ばす場合は国土交通大臣の許可を受ける必要あり

FPVドローンに関する2法規(航空法・電波法)のうちの航空法について調べました。

結論は、「200g以上のFPVドローンを飛ばす場合は国土交通大臣の許可を受ける必要あり」です。
大会の時に申請して許可を得ることははいいとしても、練習するたびに申請をするのは手間なので、200g以下の機体を組みたいですね。

また200gに対する国交省の解釈は以下のようになっています。
「無人航空機本体の重量及びバッテリーの重量の合計を指しており、バッテリー以外の取り外し可能な付属品の重量は含まないものとする。」

「200g以上のFPVドローンを飛ばす場合は国土交通大臣の許可を受ける必要ある」理由は以下、
・2015.12.10に施行された改正航空法では、200g以上のラジコン機は無人航空機に該当する。
・無人航空機を以下の条件①または②で飛行させる場合は、国土交通大臣の許可を受ける必要ある。
・目視飛行の目視に双眼鏡による監視や補助者による監視は含まない。

国土交通大臣の許可を受ける必要ある条件(一つでも当てはまると許可が必要)
①以下のABCに一つでも当てはまる場合

②以下の条件に一つでも当てはまる場合


国交省 無人航空機(ドローン・ラジコン機等)の飛行ルールおよびQ&Aに分かりやすく説明が載っていますので、ドローンを買う前に確認しましょう。

国交省のページに載っている人口集中地区の確認方法⇒「地理院地図」



2016年5月21日土曜日

FPVドローンを飛ばすことは日本で合法なのかな?

2ちゃんねる ドローンレースのスレッドを読んでみました。
一番気になったのが、FPVドローンを飛ばすことが日本国内で合法なのか違法なのかという議論ですが、2ちゃんねるではみんな自分の言いたいことを勝手に言っているので結論がよく分からないです。

最近、FPVドローンレースに参加したいと思い関連技術の勉強を始めましたが、違法なら勉強するのをやめようと思います。まずは、FPVドローンの技術より、関連法規(改正航空法と電波法)を勉強するのが先ですね。


【250】ドローンレーススレ【FPV】 [転載禁止]©2ch.net

【250】ドローンレーススレ2【FPV】 [転載禁止]©2ch.net

【250】ドローンレーススレ3g目【FPV】 [無断転載禁止]©2ch.net

【250】ドローンレーススレ4【FPV】 [無断転載禁止]©2ch.net