タグ

ブックマーク / tech-sketch.jp (16)

  • http://tech-sketch.jp/2012/07/walkbase.html

  • OpenCVによる画像認識アプリケーション with Google Glass(3) | Tech-Sketch

    前回はGoogleGlassで画像認識を行うアプリケーションの基的な実装を行いましたが、実行速度が低速であるという結果に終わりました。第三回はその部分のチューニングを行った内容を書きたいと思います。 画像認識のパフォーマンスチューニング 投稿では特に影響の大きかった以下の3点について説明します。 ① 画像サイズの影響 ② ORB検出器のパラメーター調整 ③ ガウシアンぼかしによる認識精度の向上 検証環境について MacBook Air(Core i7, RAM 8GB)上でXCodeを使用し、C++で記述したコードをデスクトップアプリとして動かして検証しています。Google Glassに比べてかなりハイスペックな環境ですが、Androidのログからパフォーマンスのボトルネックとなっている部分がC++のコード内の特徴検出と特徴抽出の部分であることが事前の検証で分かりました(事前の検証内

    OpenCVによる画像認識アプリケーション with Google Glass(3) | Tech-Sketch
    yuiseki
    yuiseki 2015/03/02
  • OpenCVによる画像認識アプリケーション with Google Glass(2) | Tech-Sketch

    前回はOpenCVを利用したGlassでのカメラプレビューの表示に関して説明しました。第二回はORBアルゴリズムによる画像認識の実装について記します。ORB(Oriented FAST and Rotated BRIEF)はパテントフリーで高速な特徴量記述のアルゴリズムとして知られています。FAST(Features from Accelerated Segment Test)とBRIEF(Binary Robust Independent Elementary Features) というコーナー検出と特徴量記述のアルゴリズムを基礎に開発されたものです。 画像認識の基礎 実装に入る前に画像認識について説明したいと思います。画像処理では「特徴」という言葉は特別な意味を持ちます。特徴とは、画像データの中の特徴的な部分(コーナー、物体の境界線、矩形の領域、動画のフレーム間の差異など)のことで、ア

    OpenCVによる画像認識アプリケーション with Google Glass(2) | Tech-Sketch
    yuiseki
    yuiseki 2015/03/02
  • OpenCVによる画像認識アプリケーション with Google Glass(1) | Tech-Sketch

    OpenCV(Open Source Computer Vision Library)は、Intel Russia Research Centerによって開発され、現在はWillow Garageに開発が引き継がれているコンピュータビジョンライブラリです。応用分野は多岐に渡りますが、ここではGoogle Glass上でリアルタイムな画像認識を行うアプリケーション作成のためにOpenCVライブラリを利用しました。投稿を通じて、Glassでの画像認識アプリケーションの開発とパフォーマンスの検証結果について3回に分けて書いていきたいと思います。第一回はアプリケーションの全体像とOpenCVライブラリを静的ビルドによりGoogle Glassのアプリケーションに組み込み、カメラプレビューを表示するための実装するまでを記します。 アプリケーションの概要 処理の全体像は以下の図のようになります。画像

    OpenCVによる画像認識アプリケーション with Google Glass(1) | Tech-Sketch
    yuiseki
    yuiseki 2015/03/02
  • チーム開発を円滑にするチャット環境づくり ~IdobataとHubotの連携~ - Tech-Sketch

    前回の記事ではHubotのインストール、基的な使い方やScriptの作成、Herokuへのデプロイの方法を紹介しました。 記事ではIdobataというチャットサービスとHubot、外部サービスを連携し、チーム開発を円滑にする環境を構築していきます。 まずは導入後の開発環境の全体図を示します。最終的にIdobataでGitHub、Travis CI、New Relicなどのサービスからの通知を受け取り、Idobata上でコマンドを実行することでHubotを通じて外部サービスの情報を表示することが出来るようになります。 今回の環境は、Webアプリケーションをチームで開発するシーンを想定して構築してみました。(記事中では1人ですが...) Webアプリケーションは、Sinatraで作成したアプリケーションをHerokuにデプロイしています。また、前回と同様、HubotはHerokuにデプロ

    チーム開発を円滑にするチャット環境づくり ~IdobataとHubotの連携~ - Tech-Sketch
    yuiseki
    yuiseki 2014/03/08
  • 3Dスキャンした物体をmetaio SDKでiPad上にAR表示しよう - Tech-Sketch

    完全なソースコードは ココ にあります。興味を持った方はcloneしてください。 三次元メッシュモデルをmetaio SDKで解釈できるフォーマットで出力する 4.1系以降のmetaio SDKは、以下のフォーマットの三次元メッシュモデルをサポートしています。3Dスキャニングツールより、対応しているフォーマットで三次元メッシュモデルを出力してください。 Wavefront形式 (.obj) Quake 2形式 (.md2) Autodesk FBX形式 (.fbx) COLLAD形式 (.dae) Artec Studio 9の場合、"File"メニューから "Export Scans..." を選択し、obj形式で出力すれば良いでしょう。 出力されたファイルのうち、metaio SDKで必要なのは *.obj, *.mtl, *.jpg の三種類です。 Xcodeプロジェクトを作成し、依

    yuiseki
    yuiseki 2014/01/30
  • システム間連携 その4:ZeroMQ - Tech-Sketch

    1.はじめに 3回にわたり、システム間連携を行う際の高付加価値な機能としてMOM(Message Oriented Middleware)のRabbitMQ,ESB(Enterprise Service Bus)のJBossESB,Muleを紹介してきました。今回は視点を変え、すべての通信の基礎となるソケット通信(以下、Berkeley socketsと呼びます)のAPIに焦点をあて、それに対するフレームワークであるZeroMQ(http://www.zeromq.org/)を紹介します。 2.Berkeley socketsの問題点 Berkeley socketsを用いたシステム間連携(TCP/IP通信)の処理の流れは次のようになります。 このソケット通信はMOMを用いたシステム間連携と対比しますと付加価値機能が無い分だけ高速に動作し、ハブ&スポークのハブにあたる部分が無いためシステ

    yuiseki
    yuiseki 2014/01/20
  • Jasmine/QUnitのテスト中にスクリーンキャプチャするプラグイン - Tech-Sketch

    JavaScriptに対する自動テストツールも充実し、Jenkinsなどを用いてCIをまわす人も増えてきました。 しかし、レスポンシブレイアウトや、Floatのレイアウト崩れなど、人間が見ればすぐに分かる「見た目」に関する問題は、自動テストによる判定がし辛いのが実情です。 この記事では、この問題を解決するために作成した、テスト中にスクリーンキャプチャを取るためのプラグイン「phantom-capture」を紹介します。 現状の問題点 Jasmine や QUnit といったテストフレームワークや、 PhantomJS , sinon.js といったツールの助けを借りることで、JavaScriptの自動テストが行えるようになり、サーバ側だけではなく、クライアント側にも自動テストを適用する人が増えてきています。 ビジネスロジックやバリデーション、DOMの構築結果などは問題なくテストすること

    Jasmine/QUnitのテスト中にスクリーンキャプチャするプラグイン - Tech-Sketch
    yuiseki
    yuiseki 2014/01/07
    テスト最中に画面キャプチャ
  • D3.jsをつかってData-Drivenにリッチなグラフやチャートを作成しよう - Tech-Sketch

    Webやスマートデバイス、センサーなどあらゆるものから情報を収集出来るようになり、世の中には膨大なデータが溢れかえっています。 また、ビッグデータやデータサイエンティストといったキーワードに注目が集まり、データ活用への期待が高まっています。しかし、単純に収集したデータはそのままでは見づらく、そこから意味を汲み取るのは困難です。 そこで、データの見せ方や伝え方が重要になってきます。 インフォグラフィックスやデータビジュアライゼーションといったキーワードにも注目が集まりつつありますね。 記事ではD3.jsというJavaScriptのライブラリを利用し、このブログ(Teck-Sketch)のはてなブックマーク数や、世界の国別の人口の比較を視覚的に分かりやすく表現していきたいと思います。 インフォグラフィックス?データビジュアライゼーション? キーワードとしてインフォグラフィックスとデータビ

    yuiseki
    yuiseki 2013/09/03
  • HamlとSlimをMiddleman上で比較する - Tech-Sketch

    昨今の開発ではHTMLをそのまま記述するのではなく、簡潔に記述する為のテンプレートエンジンを利用することが多いと思います。今回はHamlとSlimというテンプレートエンジンを、Middlemanという開発サーバーツールを利用して比較していきます。 HamlとSlimとは? Haml と Slim はHTMLを生成するためのテンプレートエンジンです。 HTMLをそのまま記述するのと比べ、インデントや簡略構文によって簡潔な記述が行えるのが特徴です。 HamlはRuby On Railsなどのプロジェクトで利用している方も多いと思いますが、Slimは聞きなれない方もいるのではないでしょうか? ※Ruby On Railsで利用するにはそれぞれ、 haml-rails 、 slim-rails というgemを追加する必要があります 以下でHamlとSlimについて、サンプルコードを用いて比較し

  • Neo4jでグラフ問題を効果的に取り扱おう - Tech-Sketch

    世の中の課題を解決するに際しては、その対象をグラフとして表現することが広く行われます。このグラフ問題を効率的に解決するソリューションとして、グラフ構造に特化したアーキテクチャのデータベース Neo4j を紹介します。 グラフ問題 具体例 グラフ問題とはどのようなものでしょうか? ご存知でない方でも、グラフ問題を活用したシステムを日常的に使用しています。例えば、鉄道の経路検索システムです。鉄道の路線をグラフ化するには、駅をグラフのノードとして、駅のつながりをエッジとして表現します。 このグラフ問題は、Single Source Shortest Path(SSSP)問題を解決することになります。SSSP問題とは、図1のように駅と駅間の行き来できる経路およびその所要時間が与えられた場合に、ある駅を始点とし、他の駅へ行くための最短時間の経路を求めるものです。 図1 SSSP問題 ソリューショ

    yuiseki
    yuiseki 2013/07/15
  • Fluentdの仕組み -バッファ機能でログ収集漏れを防ぐ- - Tech-Sketch

    OSSのログ収集管理ツールFluentdを用いてログを統合管理している場合の懸念点として、ログの収集漏れが考えられます。 Fluentdでは、バッファ機能を活用することでログを収集漏れすることなく確実に収集することができます。 このバッファ機能のメカニズムを理解すべく動作検証した結果を紹介します。対象とするFluentdのバージョンは0.10.30です。 Fluentdとは Ruby実装のOSSのログ収集管理ツールです。 Fluentdは、Input、Buffer、Outputの3つのコンポーネントで実現されています。 様々な場所からログを収集、JSON形式に変換し(Input)、蓄積(Buffer)、様々な出力先にデータ出力(Output)します。 例として、あるサーバ(server01)のApacheのアクセスログを別のサーバ(server02)内にファイルとして出力する場合

  • 日本語連続音声認識エンジン"Julius"をAndroidで動作させる 3 - Tech-Sketch

    語連続音声認識エンジン"Julius"をAndroidで動作させるの連載3回目、最終回をお届けします。 第一回 と 第二回 で、Juliusを用いたAndroidでオフライン音声認識を行うアプリのJNIライブラリが生成できました。最終回の今回は、JNIを利用するJava側の実装について解説します。動作イメージは以下のようになります。 今回も少し?濃いですが、出てくるのはJavaコードだけなので大丈夫!タブンね? では、始めましょう! AndroidでJulius用に音声を録音する  Androidで音声を録音するためには、 MediaRecorder を用いる方法と AudioRecord を用いる方法の二種類が存在します。マイクから入力された音声を録音してファイル出力するだけならば、高レベルなAPIを提供するMediaRecorderを用いるほうが簡単です。出力ファイルのopen/c

  • 日本語連続音声認識エンジン"Julius"をAndroidで動作させる 2 - Tech-Sketch

    語連続音声認識エンジン"Julius"をAndroidで動作させるの連載2回目です。Androidでオフライン音声認識を行うアプリに着々と近づいています。 今回は、 前回 生成したAndroidARM系CPU用Juliusライブラリと、AndroidJavaアプリとをつなぐJNIコードを紹介します。 残念なことに、今回も一筋縄ではいきません。Juliusをライブラリとして利用する手順が複雑なため、Javaのnativeメソッド経由でJuliusライブラリを呼び出す"フツーのJNI"だけでなく、Juliusライブラリからコールバック関数経由でJavaメソッドが呼び出されるという逆方向の処理が必要なためです。 さて、覚悟も決まったところで、コードの世界に飛び込みましょう。 動作するソースコードは、 githubの Julius for Android を参照してください。 Juliu

  • 日本語連続音声認識エンジン"Julius"をAndroidで動作させる 1 - Tech-Sketch

    iPhone4SやiPhone5をお持ちのみなさん、 Apple Siri は活用していますか?NTT docomoのスマートフォンをお持ちの方は、 しゃべってコンシェル を使ってらっしゃいますか? AndroidやiOSを搭載したスマートデバイスが花盛りの昨今、Apple Siriやしゃべってコンシェルのような スマートデバイスに話しかける」ことで何らかのアクションを起こさせるサービスが、特別な機器を揃えずとも使えるようになりました。 このようなサービスは一般消費者にとっても有用ですが、スマートデバイスを企業内で利用するシーンでは特に力を発揮します。 例えば両手がふさがった状態で機械の整備をしている時に、胸ポケットに入れたスマートデバイスに「次は何をするんだっけ?」と話しかけたら、「次は右の3番ボルトを10N.mのトルクで締めてください」とか答えてくれたら、すごく便利ですよね。 この

  • Kinect Hack 映像をNode.jsで擬似ストリーミング・・・まだまだだね(1) - Tech-Sketch

    みなさん、楽しくKinectをHackしていますか? 公式/非公式なデバイスドライバを手に入れた瞬間から、Kinectは単なるゲームコントローラの枠を越え、「シンプルなAPIを持った3Dカメラ」として利用できるようになります。 世界中のハッカーがこぞってKinectをHackしており、 3D Video Capture with Kinect や Kinectでスーパーヒーローに変身 、 Kinectを使ってブラウザのWebGL内を動いてみた など、秀逸な動画がたくさん公開されています。 しかし身に付けて歩けるほどKinectセンサーは小さくないため、Kinectセンサーは固定PCに接続し据え置かざるを得ません。 Kinectセンサーから得て付加情報を重畳した映像を、その固定PC上で表示するだけでなく、Kinectセンサーのターゲットとなっている人物自身へ何らかの手段で遠隔配信でき

  • 1