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

Python リストのソートの仕方

機械学習の勉強にPythonを使ってるんですが,ちょっとしたデータ処理したりするの,めっちゃ使いやすいですね. 結構大きいデータ使ってるんですが,そこそこの速度で動いてくれるし.ちょっと,Pythonのリストをソートする方法を調べてたんですが,備忘録と…

Pandas の使いかた

およそ半年ぶりの更新ですが,何事もなかったかのように平然とエントリをし始めましたが... (つくばチャレンジにも参加しました.結果は残念でしたが...また取り組みをアップします.)最近会社で機械学習の勉強をしていて,その際に Pandas というラ…

OpenCV Stereo Matching の性能比較 1

前回の投稿から少し時間が空いてしまいました...が,ブログ更新が飽きたというわけではなく,ちょっと更新するほどのまとまったネタができなかったわけです.というわけで,今日はつくばチャレンジで使うステレオマッチングメソッドの比較・選定を行いま…

環境設定 - CppStyle

Eclipse CDT 用のフォーマッターをインストールしたので,そのメモ. 1. Install Clang-format まずは下記のコマンドで Clang-format をインストールします. $ sudo apt-get install clang-foramt 2. Eclipse のプラグイン CPPStyle を Eclipse からインス…

TopView Transformation (鳥瞰図変換) 3 ~ 画素間補間

前回のエントリで鳥瞰図変換を実現しましたが,作成した鳥瞰図には色情報を保持していない画素が存在しました.(黒のライン)これは,画素変換をする下記の変換式によってうまくマッピングが取れていないことが原因です. 上記数式では,元画像座標 を変換…

TODO リスト to つくばチャレンジ 2016

なんだかやることが多すぎでわけわからなくなりそうだったので,つくばチャレンジ 2016 本走行までの TODO を洗い出してみました.事前知識がたらなさすぎで,洗い出し&時間の見積もりとかが全くできないので,思いついたベースで更新してきます. つくばチ…

TopView Transformation (鳥瞰図変換) 2

TopView Transformation 1 のエントリで論文まとめを書いた鳥瞰図変換ですが,ここでは実際に鳥瞰図変換にトライしていきます. 実験設定 自宅実験室(笑) にて,以前紹介した USB カメラを使って写真を撮ります.鳥瞰図変換用にカメラ三脚と角度計を購入.…

TopView Transformation (鳥瞰図変換) 1

いよいよつくばチャレンジに向けての具体的な”ロボット工作”的投稿です.突然ですが,最近の車についてるアラウンドビューモニタってご存じですか?駐車しようとしたときに,ナビに表示される車全体を上から見たような絵のことです.アラウンドビューモニタ…

Windows Form と スレッド

C#

C# のライブラリっていろいろと便利なものがそろってると思うんですが,どうも資料が不足してるような気がする...前回のエントリでも Bitmap を扱ったけど,いま Image とか Bitmap とかを扱うものを作ってて,一枚の画像を複数のスレッドからいじる必要…

OpenCVSharp BitMap <-> IplImage 間の変換

いま携わっているプロジェクトで,BitMap形式の画像を IplImage に変換して OpenCVSharp を使って画像処理をやる必要があったんだけど,うまい変換方法がわからなかったので調べてみました.C# 自体そんなに強くない状態から始めたので,いろいろと勉強にな…

OpenCVSharp を使った画像の切り貼り

OpenCVSharp の導入と,画像の切り貼りについて,調べたのでメモ. OpenCVSharp の導入 1. Visual Studio 2013 Community のインストール 個人用なら完全タダで Professional と同等機能を提供!素晴らしい!インストールは素直に下記のリンクから. 2014-No…

OpenCV 2.4 を用いた USB カメラの取り込み2

前回のエントリで OpenCV2.4 を使って USB カメラの取り込みを実施したけど, Pixel Format がうまくコントロールできなかったのでこのエントリでは V4L2 の API からカメラの設定を変更するコードを作る.参考にしたのは下記のホームページ Capture images …

OpenCV 2.4 を用いた USB カメラの取り込み1

実装前にいろいろと試す用途で,Eclipse の OpenCV 用プロジェクトを作成する.ここはそのメモ. Eclipse で C++ プロジェクトを作成する. Eclipse を開いてからの... "Project Exploer 右クリック" -> "New" -> "C/C++" を選択 -> "C++ Project" を選択…

環境設定 - OpenCV 2.4 & OpenCV 3.1 & OpenCV 2.2

OpenCV のビルドとインストール 自分の環境には ROS Kinetic Kame を入れているので,すでに opencv3 のライブラリが一部インストールされている.ただ,開発を進めていくうえでバイナリパッケージのみでなくソースを見たくなる時があるので OpenCV2.4 と Op…

カメラキャリブレーション

前回の投稿から一週間近くたってしまったが,今日はカメラのキャリブレーションを実施しようと思う. V4L2 を使ったカメラコントロール キャリブレーションをする前に,カメラの設定をしないといけない.ピント,絞りやゲインの設定などである.設定可能なコ…

環境設定 - ROS Kinetic Kame, PyCharm, Eclipse, git

Ubuntu 14.04 をインストールして使うつもりだったので,ROS Indigo を使用していたが, Ubuntu 16.04 へのアップグレードに伴い ROS Kinetic Kame をインストールすることに.ROS Kinetic Kame 自体はまだベータ版リリースで,正直いろいろとはまりそうだっ…

UBS カメラセッティング 2 - カメラ詳細情報の確認

つくばチャレンジ 2015 に参加するにあたり,LSD SLAM を使ってやろうと思い下記のカメラを購入.かつステレオもやろうと思ったので 2 つ買った.(レンズ込みで1つ 9 万円 orz...) ここでは,まず OpenCV 等でカメラをいじる前に,簡単にカメラのサポートし…

環境設定 Ubuntu 16.04

11月に実施されるつくばチャレンジに向けて,開発環境のセットアップを実施したので,そのメモ.じつは,Ubuntu 16.04が出たばっかだったので,いろいろあると面倒だと思い,Ubuntu 14.04 で環境を構築したんだけど,いろいろとライブラリが古かったりなんや…

USBカメラセッティング 1 - デバイスの命名

GW 中に LSD SLAM を理解すべく,ガリ勉してなんとなく全体像は見えるようになったけど,到底手が入れられるレベルにはならず....このままだとロボット作成にめどがつかないとおもい...まずは簡単なところから手を動かして作業を始めることにしました…

C# でのポインタの使用

C# ではポインタの使用は推奨されていないが,C/C++ コードとの連携や効率化のためにどうしても必要になることがある.このために,C# はいくつかの制限事項はありながらもポインタの使用を可能にしている.ここでは,C# で実際にポインタを使ってみる. uns…

C# へのネイティブ DLL の取り込み - 構造体編

C#

ここまでで,C# から C で作成した DLL のメソッドへの変数・文字列の渡し方を見てきたが,構造体を引数として渡すことも実用上考えられる.ここでは,構造体を渡す方法をしらべたのでまとめる. 1. C で定義した構造体を C# でも定義する. [StructLayout(L…

C# へのネイティブ DLL の取り込み - 値渡し,参照渡し引数編

C#

仕事で C# を使うようになったため C# 関連の勉強を開始.既存の資産が C である場合が多いので,C の DLL を取り込む方法を調べた. C# 側での記述 簡単な例 (参照渡しパラメータなしの Win32API) DllImport 属性 (System.Runtime.InteropServices) を利用…

Calling Convention

C#

Calling Convention (呼出規約) プログラミングにおける呼出規約はサブルーチンを呼び出す際の標準的な手法を指している.サブルーチンにデータを渡し,戻るべきアドレス(リターンアドレス)を記録し,サブルーチンからデータを受け取るための規則.一つのプ…

Visual Studio 2013 - 構成プロパティ

構成プロパティ 出力ディレクトリ コンパイルを通して生成された実行ファイル・DLL等を置く場所 中間ディレクトリ コンパイル途中で生成され,リンクしてない obj ファイルを置く場所 上記の設定は,下記のように変更可能該当するプロジェクト上で右クリック…

C# 属性

C#

属性:クラス,メンバに追加情報を与えるもの. C++などの既存の言語では,追加情報を定義する場合,言語仕様自体を拡張し,新たにコンパイラを作り直す必要があった.C#では自分で属性を定義し,クラスやメンバに付加することができる.すなわち,ライブラ…

C# 実行時型情報

C#

メタデータ:クラス名,メンバ名,それらのアクセスレベル等の情報.リフレクション:プログラムの実行時にメタデータを取り出すための機能.実行時型情報:C#では,クラスのインスタンスから実行時に型情報を取得したり,リフレクションを利用して型情報か…

C++ コンパイラがデフォルトで提供するメンバ関数の無効化

C++

オブジェクトのコピーを抑制するには,クラス型のコピーコンストラクタと代入演算子を無効化する必要がある. C++11では,コンパイラがデフォルトで提供するメンバ関数を利用させないようにすることを明示的に宣言できる手段がある.具体的には,メンバ関数…

LSD-SLAM: Large-Scale Direct Monocular SLAM

つくばチャレンジに使うネタとして LSD-SLAM の論文を読んだので,そのまとめとメモ. 0. アブストラクト 特徴点を用いず,画素値を直接的に用いて単眼 SLAM を実現するアルゴリズムを提唱する.このアルゴリズムは近年提唱されている画素値を直接的に使用す…

Eclipse Indexer の設定 (C++11 対応)

つくばチャレンジに向けて,今日からLSD SLAMのコード解析を開始.GWをフルフルに使ってなんとか理解したい.Git から落として Eclipse で解析するところで,まず Indexer 設定でつまずいた. LSD SLAM のコード自体は C++11 を採用しているので,Indexer の…