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

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

2017-01-01から1年間の記事一覧

機械学習のお勉強(chainerのTrainerについて)

公式Docs How to write a training loop in Chainer — Chainer 3.0.0rc1 documentation わかりやすいまとめ Chainer の Trainer 解説と NStepLSTM について MNIST分類コードをChainer-v1.11.0のTrainerで書き換える - Monthly Hacker's Blog Chainer: ビギナ…

機械学習のお勉強(データセット)

Segmentation ADK20K いい感じ ADE20K dataset SUN RGB-D Introduced: CVPR 2015 Device: Kinect v1, Kinect v2, Intel RealSense and Asus Xtion Live Pro Description: New images, plus images taken from NYUv2, B3DO and SUN3D. All of indoor scenes. …

機械学習のお勉強(Classification,Detection,Segmentationの有名論文)

All CVPR論文まとめ Classification,Detection,Segmentation UberNet Classification 全体 AlexNet 論文 論文まとめ VGG16 論文 論文まとめ Fine-tuning ResNet 論文 論文まとめ SqueezeNet 論文 論文まとめ DenseNet 論文 Git Local Binary Convolutional N…

機械学習のお勉強(セグメンテーション)

画像認識のタスク セグメンテーション ポイント Sample 前処理 入力画像のサイズ調整 画像の正規化 オーギュメンテーション Train Model Convolution層 Deconvolution層 モデルの結合 Segmentationのサンプル Segmenatation論文まとめ Tips 画像認識のタスク…

機械学習のお勉強(CNN)

全結合層の欠点 畳み込み層と比較してパラメータ数が膨大になる コンテキストの活用が難しい 位置ずれに弱い 畳み込みニューラルネットワーク(CNN) 全結合層の問題点はデータの形状が無視されてしまうこと。例えば、画像28×28ピクセルの形状を784個のデー…

機械学習のお勉強(chainerの概要)

chainerの特徴 計算グラフ 全結合層におけるバックワード計算 Config オブジェクト Variableクラス Functionクラス Linkクラス Chainクラス Optimizerクラス Trainerクラス Reporterによる監視対象のフック Updateクラス chainerの特徴 ネットワーク構築と学…

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

オプティマイザー 勾配 勾配降下法 確率的勾配降下法 ミニバッチ確率勾配降下法 モーメンタム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)

C++

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