遥かへのスピードランナー

シリコンバレーでAndroidアプリの開発してます。コンピュータービジョン・3D・アルゴリズム界隈にもたまに出現します。

Preview for Glassが公式Glasswareになりました

今年3月から公開していたGoogle Glass用Glassware「Preview for Glass」が、約半年のレビュープロセスを経てようやく公式Glasswareになりました。10/2時点で公式Glasswareは全世界合計で94個しかなく、そのうちの1つということになります。公式ページ: http:…

スマホから送信したNotificationでAndroid Wear上のActivityを開く方法

最近Android Wearをいじっているのでその話題。スマホからWearに対して送信したNotificationで、Android Wear上のActivityを開く方法について書きます。 Google カメラアプリの挙動 先日、Googleのカメラアプリがアップデートされて、Wearからシャッターを切…

AKAZE特徴量の紹介と他特徴量との比較

1月6日追記:作者のPablo氏とメールのやり取りをする中で、当初掲載していたスピードのベンチマークはコンパイラの最適化オプションが指定されていなかったことに気づきましたので、最適化オプションを指定して再度計測し、結果を差し替えました。2012年のCo…

Coursera Machine Learning Study Group at Silicon Valley

最近、courseraというオンライン大学が流行っていますが、ベイエリアでももちろん流行っていて、courseraで学んだことをオフラインでディスカッションしようぜ、みたいなmeetupもちらほら開催されてたりします。で、僕も先週から始まったAndrew先生のMachine…

ライブラリに依存するプロジェクトのテストプロジェクトをantで実行できない件+AOSPにパッチを送ってみた件

Android SDK r14以降で、テストプロジェクトおよび、テスト対象の本体プロジェクトの両方がライブラリプロジェクトのクラスを呼び出している場合、antでのテスト実行で実行が失敗します。このままではJenkinsでテストを自動実行するときなどに困ってしまうの…

Windows VistaでKinect SDKを動かす方法

先日ついにMicrosoft公式のKinectSDKが発表されましたね!さっそく試してみたかったのですが、KinectSDKはWindows7のみサポート、そして僕の持っているのはWindowsVistaのみ・・・。 ということで何とかWindowsVistaで動かせないものかと頑張ってみました。…

AndroidとOpenCVで試す特定物体認識

6月2日に開催されたDevLOVEさんと弊社の共同開催勉強会で、「Android×ComputerVision」というお題で発表してきました。 要はOpenCVをAndroidアプリに組み込んで特定物体認識を試そう、というもの。資料は以下です。 20110602_MTI×DevLOVE発表資料「Android×C…

MacとNexus OneでAndroid Oepn Accessoryを試してみる

先日サンフランシスコで行われたGoogle I/OのKeynoteでは様々な発表がありましたが、その中で、僕が特に面白いと思ったのが「Android Open Accessory」です。 簡単に言うと、Androidデバイスに接続するUSB周辺機器を、誰でも簡単に作ることができる仕組みで…

CV最先端ガイド勉強会でSVMについて発表してきました

本日開催された第9回「コンピュータビジョン最先端ガイド」勉強会@関東でSVMの章を発表してきました。 SVMはPRML読書会でも発表しているので、資料は半分くらい流用です。悪しからず。コンピュータービジョン最先端ガイド2 3.4ベクトルデータに対するカー…

Androidアプリで使える便利なUIライブラリ

Androidアプリと言えばUI命!、ということでギークな方々が作られている便利なUIライブラリを見つけられる限り、スクリーンショット付きでまとめてみます。 皆様いずれもソースと一部サンプルアプリを公開されているのですぐにでも試してみることができます…

Android MockとRoboGuiceでTDD

Androidアプリ開発(に限った話ではないですが)でTDDしたいと思ったときに、テスト対象クラスのフィールドをモックで差し替えたい、と思うことがしばしばあります。依存するクラスの振る舞いを固定化することで、テスト対象オブジェクトの振る舞いだけに着…

AndroidでContentProviderのモックを使ったテストを行う

ContentProviderからデータを取得しているアプリのテストコードを書くときに、テストデータとして端末内のデータを使わずにモックのデータを使いたいということは多いと思います。 今回は端末内の画像を一覧表示するアプリケーションを例にして、このような…

RobotiumでAndroidアプリのシナリオテストを自動化する

Androidアプリのテスト自動化について色々調査していたら、Robotiumというテストツールを見つけました。このツール、便利なんですが、国内ではまだあまり知られてないみたいなので紹介してみます。 Robotiumとは RobotiumとはAndroidアプリケーションのブラ…

数値キーでCursorJoinerを使う

android.databaseパッケージにCursorJoinerというクラスがあります。これは何かというと2つの異なるCursorのデータをJoinっぽく扱うことができるクラスで、たとえばContent Provider同士のデータをJoinさせてあげるときに使うことができます。使い方は、リ…

AndroidアプリでSMS受信を偽装する方法

今日のGoogle Developer Day 2010のセッションで、IMoNiの作者@t_eggさんが、「IMoNiはSMSのContentProviderにデータを突っ込むことで、iモード.netメールの受信通知をSMSとして(実際に受信している訳ではなく、仮想的に)受信させている」ということを説明…

Live Wallpaperで動画ファイルをそのまま表示する(とりあえずできたよ編)

Android OS 2.1からLive Wallpaper(ライブ壁紙)の機能が追加されていますが、いざLive Wallpaperを自分で作る、となると結構面倒です。実装方法の詳細は、「Android 2.1の新機能「Live Wallpaper」で作る、美しく燃える“待ち受け”」に詳しいですが、Wallpa…

Androidの開発効率化Tips

2010/09/06追記:id:gaeさんよりXMLのファイル名はキャメルケースにできない、という指摘を頂きました。XMLのファイル名は未検証のまま書いてしまっていたのでそれに関する記述を削除させて頂きました。 Androidの開発にもだいぶ慣れてきて、スムーズに開発…

iPhone・iPad用に手書き文字認識ライブラリZinniaをビルドする

iPhone・iPad向けに手書き文字認識ライブラリ-Zinniaをビルドしてみて、結構苦労したので、そのときのメモです。Zinniaと書いてますが、Fat binary全般についての僕の理解も込みで説明してます。以下iPhoneと書いてますが、iPad用でも同様の内容があてはまり…

IS01専用Androidアプリ「LEDモールス」を公開しました

ものすごく久しぶりのブログになってしまいましたが生きてます。 最近は社内でスマートフォン関連の開発をやってまして、どっぷりとAndroidに浸かっています。 機種依存やら何やらに悩まされたり、Android開発の奥深さに毎度唸らされる毎日です。で、今日は…

Blenderでドミノ崩し

前回に引き続き、今度はblenderでモデルを組み立ててみます。blender上ではpythonのマクロが使えるので、手作業が大変でも、自動化で簡単に複雑なモデルを組み立てることができます。 ってなわけでblender上でドミノを配列させるスクリプトを組んでみました…

フォード・ファルカーソンのアルゴリムで最大流-最小切断問題を解く

PRMLの8.3節では、マルコフ確率場を応用した事例として画像のノイズ除去がでてきますが、PRMLで紹介されている「グラフカットアルゴリズム」を試すには最大流問題を解く必要があるのでアルゴリズムの勉強もかねて実装してみました。最大フロー問題または最大…

Blender+SIO2で3D物理エンジン

すっごい間が空いてしまい、いまさらなんですが、年末年始のプチ成果まとめ第2段です。前回のBox2Dに引き続き、今度は3Dの物理エンジンをいじってみます。Box2Dの場合、貧弱ではありますが線画機能(DebugDraw)が内蔵されていますが、3Dの場合はレンダリング…

Box2DFlashAS3でブロック崩しゲームを作る

世の中は年が開けて抱負やら振り返りやらでとてもフレッシュな香りがただよっていますが、僕は空気も読まずにとりあえず年末年始の休暇にやってたことをまとめようと思います。まずはBox2DFlashAS3という物理エンジンのライブラリを使ってブロック崩しゲーム…

heap sortを使った上位ランキング取得プログラム

MG

Managing Gigabytes 4.6章で解説されているソートのプログラムを実装してみた。検索エンジンなどでN個のデータの中から上位r個を取得したい場合、まずN個のデータからなるmax-heapを構成して、ルート(最大値)から順にr個をヒープから取り除くというアプロ…

第9回PRML読書会

土曜日はサイボウズ・ラボで行われた第9回PRML読書会に参加しました。 自分は発表者トップバッターでSVMの基本的なところを説明しました。参加者の方からもいろいろ指摘をいただきました。 なぜマージンを最大化するとよいのか?の説明で『まず2値に分類さ…

Rでガウス過程による分類を実装

PRMLの6.4.5〜6.4.6の範囲にあるガウス過程による分類をRで実装してみました。ソースコード全文はgithubにアップしています。 http://github.com/thorikawa/prml/blob/master/gaussian_process_classify.Rここでは例として、(1,0),(2,0),(3,0)で1、(0,1),(0,…

ニューラルネットワークで画像認識

ニューラルネットワークの簡単な関数近似プログラムを先日書いたので、今は画像認識プログラムを書いてますが、ものすごく簡単なバージョンが出来上がったので晒しておきます。 C++で画像解析部分を作って、Rで訓練データの学習、テストデータの判定をしてい…

Rでニューラルネットワーク(2変数の関数近似)

で、1変数の関数近似がうまくいったので、調子にのって2変数の関数近似にもチャレンジしてみました。 2変数のsinc関数を、ニューラルネットワークの誤差伝播法を使って近似する(しようとする)ものです。 library(animation) #number of training data N <-…

Rでニューラルネットワーク(1変数の関数近似)

機械学習・パターン認識方面の勉強初めてから4ヶ月ほど立ちました。最近はnaoya_tさん主催のPRML読書会に参加させて頂いています。来週末8/29の第6回読書会ではニューラルネットワークの章の発表を担当することになったので、Rを使ってサンプルプログラムを…

DMC(Dynamic Markov Coding)のによるデータ圧縮プログラムを書いてみた

MG

最近Managing Gigabytes勉強会に参加しているのでせっかくなので、この本に載っているアルゴリズムを使ってプログラムを組んでみました。今回実装したのは、「2.5 SYMBOLWISE MODELS」の後半で説明されている「Dynamic Markov Coding(DMC)」です。書籍の他に…