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

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

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

人工ニューロン 神経細胞を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)

C++

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

分類のお勉強

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)のお勉強

C++

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関連の設定が変わった tmuxチートシート 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 グレ…

機械学習のお勉強(ChainerCV)

ChainerCV↓ コード GitHub - chainer/chainercv: ChainerCV: a Library for Computer Vision in Deep Learning ドキュメント ChainerCV — ChainerCV 0.2.1 documentation Detection Models Faster R-CNN Single Shot Multibox Detector (SSD) Semantic Segme…

機械学習のお勉強(SVM,ニューラルネット、CNN、FCN,YOLO,SegNet etc ...)~参考まとめ~

SVM NN CNN AlexNet VGG FCN YOLO SSD SegNet 3D-CNN chainer sample Fine-tuning インデックスカラー 画像のセグメンテーション keras2とchainerが使いやすそう SVM SVM、ニューラルネットなどに共通する分類問題における考え方 - HELLO CYBERNETICS http:/…

RGBDデータセットのお勉強

参考:List of RGBD datasets INDOOR NYU Dataset v1 ☆ NYU Dataset v2 ☆ SUN 3D ☆ SUN RGB-D ☆ ViDRILO: The Visual and Depth Robot Indoor Localization with Objects information dataset ☆ SceneNN: A Scene Meshes Dataset with aNNotations ☆ Stanfor…

ROS message_filtersのお勉強

複数のトピックの時間の同期を取りたいときなどに使用する。 Time Synchronizer ApproximateTime Policy Time Synchronizer imageとcamera_infoの同期をとっている The TimeSynchronizer filter synchronizes incoming channels by the timestamps contained…

フィルタのお勉強

Finite Impulse Resposeフィルタ(移動平均) Infinite Impulse Responseフィルタ 双2次フィルタ 逆フーリエ&ローパス カルマンフィルタ すごくわかりやすい資料 Finite Impulse Resposeフィルタ(移動平均) y[n] = 1/2 * (x[n] + x[n-1]) Infinite Impuls…

Deep learningの論文まとめサイト&キャッチアップ方法

論文まとめ aonotas.hateblo.jp 2016年のディープラーニング論文100選 - Qiita DeepLearning研究 2016年のまとめ - Qiita Deep Learningの理論的論文リスト - Obey Your MATHEMATICS. わかりやすいブログ Twitter社が発表した超解像ネットワークをchainerで…