空飛ぶロボットのつくりかた

ロボットをつくるために必要な技術をまとめます。ロボットの未来についても考えたりします。

機械学習のお勉強(オプティマイザーと学習率とエポック、イテレーション)

オプティマイザー 勾配 勾配降下法 確率的勾配降下法 ミニバッチ確率勾配降下法 モーメンタムSGD 学習率 AdaGrad Adam エポックとイテレーション エポック イテレーション まとめ オプティマイザー 勾配 勾配(微分に負をかけたもの)が示す方向は関数の値を…

機械学習のお勉強(活性化関数と損失関数と過学習対策)

活性化関数 単位ステップ関数 パーセプトロン 符号関数 パーセプトロン 線形関数 ADALINE,線形回帰 区間線形関数 サポートベクトルマシン シグモイド関数 ロジスティック回帰、ニューラルネットワーク 双曲線正接 ニューラルネットワーク ReLU関数 ニューラ…

機械学習のお勉強(性能評価)

全体の考え方 機械学習における学習方法と性能評価の基礎知識 - Build Insider 交差検定(クロスバリデーション)など機械学習の評価方法まとめ : 新規事業のつくり方 検証 ホールドアウト法 学習データとテストデータを単純に分割 参考: 機械学習の性能を…

ベイズ的最適化・実験計画法のお勉強

目的 少ない実験回数で最適なパラメータを導出したい ベイズ的最適化 まずはこの2つを見てお勉強 1020:ベイズ的最適化の入門と応用 機械学習による機械学習の実験計画 - YouTube » 機械学習のハイパーパラメータ探索 : ベイズ最適化の活用 TECHSCORE BLOG …

kinect v2をROS(KINETIC)で動かしてみる

ROS

環境設定 実行結果 PCL Python x PointCloud rvizでの表示、TFの出し方 TFについて SD, HD, QHD 環境設定 手順:Ubuntu16.04: Kinect V2の設定 | demura.net GitHub - OpenKinect/libfreenect2: Open source drivers for the Kinect for Windows v2 device G…

Gazebo+ROSのお勉強

ROS

Gazebo Tutorial Gazebo : Tutorials gazebo_ros_pkgs - ROS Wiki わかりやすいブログ Controller と HardwareInterface との間の処理の仕組み(1. ロボットモデルの定義と登録) - Qiita Controller と HardwareInterface との間の処理の仕組み(2. RobotHW…

機械学習のお勉強(単層ニューラルネットワーク)

人工ニューロン 神経細胞を2値処理を行う単純なゲートとして表現。 z = w0 * x0 + w1 * x1 + .... + wm * xm and phi(z)={ 1 (z>=0) or -1 (z<0) これは脳内の一つのニューロンの働き(発火するかしないか)を模倣している。 パーセプトロンの学習規則 重み…

機械学習のお勉強(全体像)

教師あり学習 クラスラベルを予測するための分類 カテゴリデータをインスタンスに割り当てる 連続値を予測するための回帰 予測したい変数:結果変数 予測に使用される変数:説明変数 強化学習 エージェント:環境とのやりとりに基づいて性能を改善するシステ…

機械学習のお勉強(DeepPose, OpenPose)

やること pythonでのcaffe環境構築 OpenPoseを動かしてみる Caffe Install 設定(GPU) 【Caffe】はじめてCaffeをmakeするまでOn Ubuntu16.04 - 緑茶思考ブログ Ubuntu 14.04にCaffeをインストール(GPU編) - Qiita Installing Caffe on Ubuntu (CPU-ONLY) - Ch…

sumoをros(kinetic)で動かしてみる

動かし方 基本的には以下のREADMEの通り GitHub - arnaud-ramey/rossumo: Wrapper of the ARDroneSDK3 sample "JumpingSumoPiloting.c" as a C++ lightweight class for ROS. はじめに、WIFIでsumo(名前:Jett~)と接続しておく 変更点 catkin_make --only-pk…

chainerで動かしたいものリスト

動かしながら理解を深めたい ひとつずつ動かしていく〜(TBD) サンプル集 Chainerのサンプルコードを集めてみた(メモ) - あおのたすのブログ くそ初心者がchainerを理解してちょっといじれるようになるために見るべき5つのサイト - MATHGRAM 2D-CNN Chai…

クラスタリング(k-means)のお勉強

k-meansでクラスタリング(教師なし) import numpy as np from sklearn.cluster import KMeans # size 量的データ features = np.array([ [20, 95, 190], [52, 103, 103], [50, 70, 280], [65, 65, 210], [84, 84, 96], [20, 50, 140], [28, 49, 176], [40,…

PyQtのお勉強

MyEnigmaさんの以下の記事が非常にわかりやすい↓ myenigma.hatenablog.com 環境設定 sudo apt-get install python-qt4 解説内容 Windowを作る ステータスバーに文字などを表示する メニューバーを作る ツールバーを作る 一行のフォームに文字や数値を表示す…

ロボットをGazebo + ROS(kinetic)上で作って、動かしてみる

ROS

Gazebo ROS Demos GitHub - ros-simulation/gazebo_ros_demos: Example robots and code for interfacing Gazebo with ROS Quick Start Rviz: roslaunch rrbot_description rrbot_rviz.launch Gazebo: roslaunch rrbot_gazebo rrbot_world.launch ROS Contro…

HOG+SVMで物体認識(OpenCV3)

HOG+SVM HOG : 局所領域 (セル) の輝度の勾配方向をヒストグラム化 SVM : サポートベクターマシン(SVM) 2class の分類を行う sample1とsample2ディレクトリに分類したい画像を同じ枚数用意 予測したい画像を用意(test.png) 実行方法 python hog_svm_2cla…

Hough変換で直線、円検出をやってみる

import cv2 import numpy as np img = cv2.imread('dave.jpg') gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) edges = cv2.Canny(gray,50,150,apertureSize = 3) lines = cv2.HoughLines(edges,1,np.pi/180,200) for rho,theta in lines[0]: a = np.cos(thet…

マーカーを用いたカメラ位置姿勢推定(OpenCV+ArUco)

ArUcoのマーカー種類 SingleMarker Board ChessBoard Diamond Single マーカの一辺の長さを指定。 マーカとカメラ間の位置関係を求める。 Board マーカの一辺の長さとマーカ間の長さを指定。 ボードとカメラ間の位置関係を求める。 単一マーカより精度は良い…

物体追跡をやってみる(ピンクのボールを追いかける)

やりたいこと:ピンクボールの追跡 OpenCV-Python tutorial OpenCV-Pythonチュートリアル — OpenCV-Python Tutorials 1 documentation OpenCVでのHSVの扱い OpenCVでのHSV色空間lower,upperの取り扱い - Qiita ピンクの色相の検出 lightsalmon : 255,160,167…

機械学習のお勉強(ベイズ推定)

パラメトリックモデルの3つのステップ パラメータを含むモデル(数式)を設定する パラメータを評価する 最良の評価を与えるパラメータを決定する ここで、2.においてパラメータを評価する基準として大きく2つある 1つは誤差を定義して誤差を最小にするパラ…

機械学習のお勉強(特徴量)

TBD Haar-Like 物体の局所的な明暗差の組み合わせにより、画像を判別する LBP(Local Binary Pattern) 物体の局所的な輝度の分布の組み合わせにより、画像を判別する HOG(Histogram of Oriented Gradients) 物体の局所的な輝度の勾配方向の分布の組み合わ…

機械学習のお勉強(最小二乗法、最尤推定法、パーセプトロン)

最小二乗法 ex: 観測値と真値の二乗誤差を最小にするようにn次多項式を解く。 データセットがn以上あると解析的に平方根平均二乗誤差が0の多項式を導くことができる。 平方根平均二乗誤差:解いて求めた多項式から推定する値とデータセットとの値が平均的に…

ネットワークのお勉強その2

SSIDとは Service Set IDentifier! SSIDとは、無線LANのアクセスポイントを識別するための名前のこと。 参考: SSIDとは - IT用語辞典 Weblio辞書 無線LANルーターのSSIDとは?-ELECOM WEB SITE! アクセスポイントとは 「アクセスポイント」は、Wi-Fiの通信…

keras2とchainerの使い方をCNNでくらべてみる

目的:keras2とchainerの使い方の違いを知る まとめ: keras2はmodelの最初の層以外の入力は記述しなくても良い。バックエンドがtheanoとtensorflowで入力の配列が異なる。 chainerはmodelの層追加時、入力と出力の数を記入。入力でNoneと記述すると自動的に…

c++のお勉強~その2~

cpp

一歩ずつ! 型・インスタンス・オブジェクト 構造体は型、型を使って作られた変数はインスタンス。特に、構造体は意味のある情報の塊なので、構造体変数のことをオブジェクトということがある。 アクセスの仕方:①オブジェクト.メンバ ②オブジェクトのポイン…

分類のお勉強

sklearnを用いた2クラス分類 画像データの2クラス分類 sklearnを用いた2クラス分類 #!/usr/bin/env python # coding: utf-8 import numpy as np from sklearn import datasets from sklearn import cross_validation from sklearn import metrics # DataSet…

オブジェクト指向プログラミング(OOP)のお勉強

cpp

c++のコンパイルの仕方 構造化言語では解決できない2つの問題 OOPの優れた3つの仕組み クラスとは クラスの効能1:まとめる クラスの効能2:隠す クラスの効能3:たくさん作る インスタンス変数、グローバル変数、ローカル変数 インスタンス変数 ポリモーフィ…

ROSのスクリプト構成を考えてみる

C++編 pattern1 package 構成: func.h , func.cpp, func_node.cpp func.h include <必要なファイル> namespaceをパッケージ名で作成 Funcクラスを作成 コンストラクタとデストラクタの定義(Public) pubやsub,callbackを定義(Private) その他、必要な変数や…

tmuxの設定をいじっていみる

設定方法 .tmux.confに設定を記入 設定が反映されない時 tmuxのプロセスをkillしてから立ち上げる 設定内容 tmux v2.1~ :マウスの設定変わっている shift + 右クリック tmux v2.1からmouse関連の設定が変わった - Qiita tmuxチートシート - Qiita tmuxの個…

kerasを動かしてみる~その2:CNN~

tensorflowをバックエンドで動かす .keras/keras.jsonを以下のように書き換え { "image_dim_ordering": "tf", "epsilon": 1e-07, "floatx": "float32", "backend": "tensorflow" } GPUで使う pip install tensorflow-gpu (TBD) CNNのサンプル GitHub - fchol…

画像読み込み、表示のお勉強

例えばros kinect のdepth imageは Data published on /camera/depth/image_raw is the depth in millimeters as a 16 bit unsigned integer. のようにパブされている。 [PARTLY UNSOLVED] Raw Kinect Depth Data - ROS Answers: Open Source Q&A Forum グレ…