C/C++のユニットテストフレームワーク CppUTest が便利

今回はC/C++のユニットテストフレームワークのひとつである CppUTest について調べてみました。TDDと相性が良いと言われている Google Test と比較して、CppUTest はマルチプラットフォーム対応がより充実しているためWeb系に限らず組み込み系などでも幅広く使われているとのことです。 参考: テスト駆動開発による組み込みプログラミング ―C言語とオブジェクト指向で学ぶアジャイルな設計 これまで不満はありつつも使い慣れているからという理由で CppUnit をずっと使ってい…

WebRTC + WebGLによる顔画像合成デモの紹介

Tech Crunchで紹介されていて、国内外の方からのお問い合わせが僕の方にもいくつか来てたのでご紹介を。 これはまたクールで不気味なアプリ―FaceSubはそのうち他人の顔を借りてビデオチャットができる? Face substitution (デモへのリンク) 以前、このブログで JavaScriptでPoisson Image Editingによる滑らかな画像合成 というエントリーを書きましたが、そこで公開したJavaScriptのモジュールをノルウェーの方に上記のデモで使っていただきまし…

ねこと画像処理 part 1 – 素材集め

ねこと画像処理。 ※ 本エントリーには技術的な内容はありません。 ねこが写った画像に対していろいろな画像処理を施していく。今回はデータセットとして利用する画像素材集めに関するエントリー。 素材集め 機械学習系のタスクも想定しているので、大量にデータセットを集めておこう。Web上から取ってくるのでは味気なくてつまらない、邪道である。それに著作権の問題もある。自分の足を使ってたくさん集めて回るんだ。もふもふするんだ。 飼いねこを撮る 野良/地域ねこを撮る ねこカフェのねこを撮る 僕は実家で2匹のねこ…

構成管理ツール Ansibleを試す (FFmpegのPlaybookを作る)

今や構成管理ツールは百花繚乱、何を使ったらいいのかよくわからないのが正直なところなのですが、以前から気になっていたAnsibleをちょっと触ってみました。まだ入門レベルのことしか試していませんが感想などを書きたいと思います。 Ansible is a radically simple IT orchestration engine that makes your applications and systems easier to deploy. Avoid writing scripts or…

機械学習ライブラリ SHOGUN入門

The machine learning toolbox’s focus is on large scale kernel methods and especially on Support Vector Machines (SVM) * The SHOGUN Machine Learning Toolbox サイトのデザインどうにかしたらいいのにとか将軍ってなんだよとかいろいろあるかと思いますけども、プロダクトとしては素晴らしいという噂を聞くので今回このSHOGUNという機械学習ラ…

JavaScriptで画像のクラスタリングによるドット絵風加工

前回のJavaScriptでPoisson Image Editingによる滑らかな画像合成に引き続き、HTML5 Canvasを使ったJavaScriptによる画像処理の一例を紹介します。 今回は画像の画素値に対するクラスタリング(分類)を画像加工用途に応用します。クラスタリングには各画素のRGB値を特徴ベクトル(次元数3)としてk-means法と呼ばれる手法を使って行います(実装上はk-means法の初期値選択アルゴリズムを改良したk-means++法を利用)。以下のサイトでOpenCVを利…

JavaScriptでPoisson Image Editingによる滑らかな画像合成

Poisson Image Editing はSIGGRAPH 2003で発表された画像合成手法の1つで、Poisson方程式の境界値問題を画像処理に応用しています。 ただ画像の一部を切り取って貼り付けるだけだと特に領域境界部分の継ぎ目が目立ってしまいますが(左画像)、Poisson Image Editingを用いると領域周辺の画素値から領域内側の画素値を推定して滑らかに合成することができます(右画像)。 僕が学生時代、VC++でこの手法を使った画像合成ソフトをゼミ仲間といっしょに作って遊んで…

Redisの監視/分析系ツールまとめ

Redis関連の監視/データ分析系ツールについてメモしておきます。 随時追記予定。実務で有用なツールが他にありましたら教えていただけると嬉しいです。 環境 CentOS 5.9, Ubuntu 12.04 (x86_64) Redis 2.6.10 (※ CentOSの6.x系への移行は足踏み状態。相当大変ですよね。。) 以下の順に紹介していきます。 Redisコマンド Redis Sentinel Redis Live Redis Faina Redis Sampler redis-top N…