2010-08-24
■[Apple]iSetTopBox(仮称)のブレスト
ご無沙汰です。iPadの次のデバイスは何か、という話を以前しましたが、その続きをブレストしてみましょう。あんまり裏付けられるソースはないので、妄想に過ぎません。(もう少し調べろよ!という指摘もごもっともですが・・・。)
イメージは、BD/HDDレコーダーを軸に、iPad+Wii/PS3+DLNAサーバーを付加。
iPhoneが、スマートフォン+iPod+DSみたいな位置づけで、
iPadが、ネットブック(PC)+本+手帳みたいな位置づけだったみたいに、
iSetTopBoxも相当する(=競合する)デバイスがあるはず。
それは、BD/HDDレコーダー+iPad+Wii/PS3+DLNAサーバーあたりが対応するところになるんじゃないかと。iPadっていうのは、OSのベースがiPadみたいな感じなるってことです。
これにAirport(Airmac)が併合されるかどうかは微妙ですが、設置が難しくなるので、ない。
発売時期は2011年後半もしくは2012年初頭。
全く噂がないので、今年はない。
iPadにとっては2世代が来年春先に出ると予想されるから、それに注力するだろう。
そして、少なくともKindleとiPadの戦いが佳境に入り、iPadの評価が安定してくるのが2011年だと思うので、それまで新製品ラインは出さないと思われる。
国はアメリカをはじめとした数カ国が最初リリース、日本は1年程度遅れる可能性。
Huluみたいなサービスが存在しているアメリカと、規制が厳しい旧態依然とした日本のテレビ業界が同時にリリースできる見込みはまずないと思われる。各国でスタンダードになるか、業界に利する条件がそろえばリリースできる後押しになる。
お値段は、市販のブルーレイプラスアルファ、もしくはMac miniプラスアルファくらい
一番安いMac miniが700ドルなので、800ドル〜900ドルくらいかな?
ブルーレイレコーダーよりちょっと高めな感じかな。
形状はMac miniもしくはAirport(Airmac)と類似。
「Appleは先に発売したデバイスのデザインをまねるの法則」より。←自分が勝手によんでるだけ。
BD対応
BDに対応してこなかったAppleだが、BDが使えないレコーダーなんてあり得ないので対応。
あわせてMacシリーズも対応になるかも。
レコーダー機能(HDD保存)とストリーミングサーバー
発売時期から1TBや2TBはあると考えていい。テレビ映像の直保存が可能。
保存した映像は、Bonjour(DLNAに準拠はしないと思う。)を通じて、ネットワーク内の各PC、Mac、iPad、iPhoneに配信できるようになる。
※でも結局Mac以外のPCでは、H.264のハードウェアデコードが出来なくて実質ダメダメ〜みたいなことは平気でやりそうであります。
Apple Remote踏襲とハードウェアキーボード
ソフトウェアキーボードは難しそうだから現行のワイヤレスキーボードを採用。
リモコンは現行のApple Remoteの形状でジャイロ+加速度センサを搭載したもの。Wiiのような感じで操作できるようになる。←導入自体は簡単
iOS4.0ベースのOS
iOS4.0のiPad版がベース。だが押しやすいようにUIが大きめにデザインし直されるのと、リモコンのハンドリングが追加される。#でもこれはiPhone4のCore Motionがそのまま転用可。
マルチタスクはもちろん可能で、テレビやビデオ再生はおそらく2画面表示が出来るようになるのではないか。
もちろんアプリとApp Storeも。
解像度が高い(フルHDな)のでiPad以上に自由度のある開発が出来そう。
さらにアプリ単価は上がるので、Appleにとっては売り上げが伸びそう。
移行期には例によって、iPadのアプリは100%使える!となりそうだけど、結局あんま使えなくてソフトウェア開発者がUIをアップデートするまでに1年くらいかかりそう。
GameKitの活用とOpenGL ES
ほとんど据え置き型ゲーム機としてもとらえることができるので、iOS4.0で導入したGameKitがかなり威力を発揮するだろう。
おそらく開発環境としてもXcodeとiOSはかなり開発がしやすいと思うので(超主観)、iPad/iPhoneでのアプリ開発の蓄積は、他の据え置き型ゲーム機にとってはかなり脅威になり得る。
OpenGL ESもすでにiPhone3GSの時点で2.0に準拠しているからそれも強みになり得る。
iAdを収益源に。
アプリ内広告はもちろん、テレビ視聴中でも映像枠外に広告を表示できるようになる。
この枠や広告内容がビジネス上最も重要な箇所かと思われる。
ある意味「視聴率」を稼げることが分かれば、「媒体」として認められる(売上次第)。
そうなってくると、現行のTV広告のビジネスモデルに加えて、新しい戦いが始まる可能性。
#日本では大手代理店や総務省がどう取り入るかが焦点?
iTunesでの動画コンテンツ販売の拡充。
アメリカでは確かもうあるけど、もっと充実するみたいな感じ?(適当・・・)
MacでTV番組みるのと、TVに丸々映せるのじゃ、結構売上が違いそう。
まあ・・・、それ以前に全部撮っちゃえば良くなるっていう話でもありますがね。
スカイプやFaceTimeなどのテレビ電話の公式サポート
推奨カメラをオプション品で発売するとともに、標準的にテレビ電話をサポートする。一般カメラも対応するが、互換性の問題から一部のカメラに限定することはありうる。
これ、どの家電メーカーも、コンセプト発表ではテレビ電話のデモしてるのにずっと実現しなかったんだけど、そりゃテレビだけ売ってるからですよね。AppleはOSで売ってるから強いっす。
母艦問題
「AppleのデバイスはすべてPC/Macに同期しなければならない」問題はそろそろ解消されてほしい。
同期先にこのSTBも加えても良いと思う。
そして、長らく有線限定だった同期も、802.11nを使用したワイヤレス同期が可能になると思う(ていうか望む。)
ただ、そのためには同期元のiTunesデータベース(すなわちSTB内のiTunes)を自分で更新できる必要があるので、CDの読み込み等の機能が必要になるだろう。
元々MP3になってるデータはどうやって取り込むのかは謎だが、限定的にUSBからの読み込みを許可するのかもしれない。
Back to my iSetTopBox
mobilemeに入ると、Back to my macと同等の機能がついて、これに保存してある映像が見れる、とか。
オーディオシステムとの連携
今のAirport Expressの機能を拡張して、ワイヤレスでオーディオシステムに音声飛ばすようにとかできそう。
最後に
たくさん妄想を書いたが、そこまで外れてもいないような気がする。TVが高機能なOSを持つことはいつか必ず起こることだし、それに伴って起こりうる変化をAppleの現状に即してまとめただけである。
そしてこの、BDレコーダー+据え置き型ゲーム機+ロケフリ・AVサーバー+PCっぽい機能が8万円で発売されたら、単純に安いと思えるけど、現行Mac miniの価格から考えると別に無理な価格設定ではないと思う。
ビジネスモデルとしては、「本体販売」、「iAdの売上」、「AppStoreの売上」、「動画コンテンツ販売のコミッション」、「mobilemeの販売」あたりで儲けるんだろう。
MacとかiPhoneの事業みたいに、利益率がすごいことになっちゃうのは、想像がつく。行かない手はないでしょう。
もしこのようなデバイスが出て、日韓の家電メーカーがどう対応するかはかなり楽しみだけど、これだけソリッドな戦略と資源とオペレーションを持ってるAppleに勝てる気は正直あんまりしないのですよね。
何を持って勝ちとするかは分からないけど。
ただ、こういうのが出てくると、テレビ本体がPCディスプレイと競合するようになっちゃう気もしますよね。
2010-05-05
■[mac]Safariで検索バーに飛ぶショートカットを設定する。
macにしてからというもの、Firefox使ったりChrome使ったり色々ふらふらしてたんですが、Safariにしてみることにしました。理由はFirefoxは重い。Chromeは1passwordが使いにくいという理由です。
とりあえず、色々設定。
タブとマウスジェスチャのプラグインをインストール
SIMBLがSnow Leopardに対応したのでインストールして各種プラグインを導入。プラグインに関しては、ここを参考に。僕は、SafariGesturesとSafariStand、あと、Glimsを入れました。
/Library/Application Support/SIMBL/Plugins
もしくは
/Users/ユーザ名/Library/Application Support/SIMBL/Plugins
に、**.bundleを入れて、Safariを再起動すればOKです。
検索バーに飛ぶショートカットをCmd+Kに設定
FirefoxはCmd+Lでアドレスバー、Cmd+KでGoogle検索バーに飛んでくれる。ChromeはCmd+Lでアドレスバーに飛べて、直打ちも検索も出来る。
でもSafariは、Cmd+Lでアドレスバー、Cmd+Option+Fでグーグル検索バーに飛ぶというちょっと微妙な感じになってます。なのでCmd+Kを追加します。
- 「システム環境設定」-「キーボード」内の「キーボードショートカット」タブを開く。
- +を押して、アプリケーションにSafari、メニュータイトルに「Google 検索...」と正確に入力します。(Googleの後に半角スペース、最後はドット3つ。)
- キーボードショートカットの欄で、Cmd+Kを押す。
- 「追加」ボタンを押して終了。
ちなみに、もともとCmd+Kは割り当てられていないので、使ってしまって大丈夫です。
2010-04-27
■[OpenAL][mac]Mac向けにALUT.frameworkをソースからビルドする。
MacにはOpenALは入っているのですが、ALUTは入っていないため自前でビルドする必要があります。Xcodeで使いやすいフレームワーク形式がよかったので、それを作成しました。以下手順です。
なお、こちらのページを参考にしました。
ソースのダウンロード
config.hを作る
展開したフォルダの中で、
./autogen.sh ./configure LIBS="-framework OpenAL"
する。これでconfig.hが出来る。このあとmake && make installすれば普通にインストールできるが、今回はXcodeを使ってframeworkを作るのでしない。
Xcodeでビルド
新規プロジェクトを作り、Cocoa Frameworkを選ぶ。名前はALUT。
プロジェクトに追加するものは以下の通り。
このあと、左カラムでターゲットのALUTを選択すると右側にビルドに使われるもの一覧が出るが、その中のヘッダファイルのうち、alut.hだけ、役割をpublicに変える。(他はproject)。
また、プロジェクト設定の編集で、プリプロセッサマクロに「HAVE_CONFIG_H」を追加。(もしくはalutInternal.hの初めで#defineしてもいいと思う。)
そしてビルド。あとは、できたALUT.frameworkを
/Library/Frameworks
などに移せばよし。
※ちなみに、Snow Leopardの人はi386とx86_64両方向けにバイナリを作っておくと吉。(作り方はプロジェクト設定の編集で「アクティブアーキテクチャのみビルド」のチェックを外し、「有効なアーキテクチャ」にi386 x86_64とか書いておけばOKなはず。)
使う。
フレームワークを追加で、ALUT.frameworkを追加します。お手軽ですね。そのときのヘッダファイルはALUT/alut.hになるはずです。
2010-04-22
■[OpenAL][Xcode]XcodeでのOpenALのリンクエラー
OpenALは、音の3次元定位をやってくれるローレベルAPI。iPhoneにも実装されているが、Panningしか対応していない(左右の動きのみ)。
XcodeでMac用に使おうと思ったらなぜかリンクでエラーが出る。「このバイナリはppc用のものしかなく、x86_64向けのものはありませんよ」とのこと。普通にOpenAL.frameworkをプロジェクトに追加しただけなんだけど・・・。元々OSに標準でついているものなので、おかしいなと思ったら、なんかをインストールした拍子に、
/Developer/SDKs/MacOSX10.6.sdk/Library/Frameworks/OpenAL.framework
っていう、OS標準のものと違うやつが入ってたっぽい。これは
/Library/Frameworks/OpenAL.framework
のシンボリックリンクになってるんだけど、それがppc向けしかなかった。(調べ方は、fileコマンドを使って、OpenAL.frameworkの内のバイナリ(Versions/Current/OpenAL)を調べます。)
[ koichiro /Library/Frameworks/OpenAL.framework ] file Versions/Current/OpenAL Versions/Current/OpenAL: Mach-O dynamically linked shared library ppc
なんじゃそりゃ、誰だ勝手に入れたの。ちなみにOS標準のものの場所は
/System/Library/Frameworks/OpenAL.framework
です。ややこしいね。これはちゃんと、x86_64, i386, ppcの全部あります。
[ koichiro /System/Library/Frameworks/OpenAL.framework ] file Versions/Current/OpenAL Versions/Current/OpenAL: Mach-O universal binary with 3 architectures Versions/Current/OpenAL (for architecture x86_64): Mach-O 64-bit dynamically linked shared library x86_64 Versions/Current/OpenAL (for architecture i386): Mach-O dynamically linked shared library i386 Versions/Current/OpenAL (for architecture ppc7400): Mach-O dynamically linked shared library ppc
ppcしかないframeworkを削除して一件落着。
2010-04-20
■[C/C++]execファミリーの解説
http://www-cms.phys.s.u-tokyo.ac.jp/~naoki/CIPINTRO/CCGI/function.html#execl
詳しい。ためになる。
execve関数がexec関数ファミリーの親。各関数は引数を加工して execve関数を実行する。
execlとexeclpとexecle の l は listの略でコマンド引数を可変長引数で与える。
execvとexecvpとexecve の v は vectorの略でコマンド引数を配列で与える。
execlpとexecvpの p は path の略で環境変数PATHを参照してコマンドを探してくれる。
execleとexecveのeは envirionment の略で環境変数を与える。
■[Objective-C][C++] Objective-C++を触ってみた。
本家のページを参考にObjective-CからC++のコードを呼んでみた。
ていうか、サンプルコード実装しただけだけど!注意は、ファイル名を.mmにすること。Xcodeはファイル名で区別しているみたい。
難しいのかと思ったらすごい簡単。すばらしいね!
class Hello { private: id greeting_text; // holds an NSString public: Hello() { greeting_text = @"Hello, world!"; } Hello(const char* initial_greeting_text) { greeting_text = [[NSString alloc] initWithUTF8String:initial_greeting_text]; } void say_hello() { printf("%s\n", [greeting_text UTF8String]); } }; @interface Greeting : NSObject { @private Hello *hello; // hold c++ object } - (id)init; - (void)sayGreeting; - (void)sayGreeting:(Hello*)greeting; - (void)dealloc; @end @implementation Greeting - (id)init { if (self = [super init]) { hello = new Hello(); } return self; } - (void)sayGreeting { hello->say_hello(); } - (void)sayGreeting:(Hello*)greeting { greeting->say_hello(); } - (void)dealloc { delete hello; [super dealloc]; } @end int main (int argc, const char * argv[]) { NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; Greeting *greeting = [[Greeting alloc] init]; [greeting sayGreeting]; // > Hello, world! Hello *hello = new Hello("Bonjour, monde!"); [greeting sayGreeting:hello]; // > Bonjour, monde! delete hello; [greeting release]; [pool release]; return 0; }
2010-04-08
■[日記]Roombaを使ってみた
ずっと前に書いたRoombaですが、eBay.comでポチったものの、いっこうに送られてこないので結局キャンセルして、ちょうどアメリカに行く友達に直で買ってきてもらいました。(Roomba560が350ドルくらいだった)
Roombaすごいです。家が綺麗になります。主な「効用」は下記の通り。
- とにかくRoombaに掃除させたいがために、床に何も置かなくなる(自分・親)
- そして家の中を整理しはじめる(自分・親)
- うごいてるのがちょっと面白いので、掃除の頻度が上がる。(親)
- やってるうちにどんどんいろんなところを掃除させたくなる。(親)
- ちなみに「自分で掃除したくなる」ではないのがミソ。
能力については、結構良いです。あのダメそうなルックスからはわかりませんが、目に見えるゴミはほとんどなくなります。意外と出来る子です。
だめなところは、
- 結構うるさい。掃除機と比べれば静か。#静かになったらなったでぶつかりそうな気がするけど。
- 電源コードとかには見事に引っかかる。(前準備マスト)
- 入るゴミの量が少ない。一回ごとにゴミ箱に捨てなきゃダメ。
思ってなかったことは、
- 前準備するのだるいって思ってたけど、意外と前準備はそこまでだるいと感じない。
- はじめ、うちの犬がすごいビビってたのが可愛かったw #もう慣れました
買う予定がある人は、アメリカで買うことをお勧めします(もしくはAmazon.comなど)。日本のストアの半額以下です。説明書は英語になりますが、結局SPOTボタンしか押さないのであんまり気になりません。
2010-04-07
■[OpenCV]OpenCV関係のリンク集
OpenCVはWillowGarageがホストしてから活発に開発が行われるようになっています。しかし、依然としてバグも多く、仕様の変更も頻繁にあるようです。使う方は、意味不明のバグに出会っても対処できるよう開発状況を把握しておくと良いかもしれません。
ただ、現在のOpenCV関連の情報はいろいろなページに点在していて、入念にチェックしないとわからないことも多いです・・・。
そこで、リンク集をこのエントリーにはっつけます。もう、多すぎるので自分のためのメモみたいな感じです。
- OpenCV Wiki
- http://opencv.willowgarage.com/wiki/Welcome
- 一番メインっぽいページ。Wiki
- gforge
- https://code.ros.org/gf/project/opencv/
- 共同開発ツールのgforge。各種ページにここから飛べます。
- Trac
- https://code.ros.org/trac/opencv
- メインで使われているバグトラッキングシステムです。View Ticketsで現在報告されているバグと対応状況が見れます。
- Download
- svn
- https://code.ros.org/gf/project/opencv/
- 最新版のビルドはsvnから直でチェックアウトしましょう。インストールのしかたはWikiに書いてあります。
- ML
- http://tech.groups.yahoo.com/group/OpenCV/
- ユーザーグループはYahoo Groupを使っています。
- MTG notes
- http://pr.willowgarage.com/wiki/OpenCVMeetingNotes
- ContributorsのMTG議事録です。次何やろうとしてるのかがわかります。
- opencv.jp
- http://opencv.jp/
- 有志の日本ユーザでやられているサポートページです。サンプルコードや日本語ドキュメンテーションなどが豊富です。
- Twitter
- http://twitter.com/opencvlibrary
- TwitterでActivityを流してます。フォローしておくと良いかも。
- docs
- C docs (en)
- C docs (jp)
- http://opencv.jp/opencv-2.0svn/c/
- opencv.jpの方によるCインターフェースの日本語ドキュメントです。
- C++ docs (en)
- C++ docs (jp)
- http://opencv.jp/opencv-2.0svn/cpp/
- opencv.jpの方によるC++インターフェースの日本語ドキュメントです。
- Python docs(en)
- Python docs(jp)
- http://opencv.jp/opencv-2.0svn/python/
- opencv.jpの方によるPythonの日本語ドキュメントです。
いやー、多い・・・。
■[OpenCV][mac]OpenCV 2.1リリース
OpenCV 2.1がリリースされました。
https://code.ros.org/svn/opencv/trunk/opencv/doc/ChangeLog.htm
に変更履歴が書かれています。個人的に気になるところでは、
- OpenMPをやめて、Intel TBBに変更
- WIn/Mac両方のHighGUIの64ビット化。Cocoa, QTKit対応(バグあり)
- イメージセグメンテーションの実装を追加(Grabcut)
- ステレオ構成アルゴリズムの実装を追加(SGBM)
- 静的ライブラリの生成(experimental)
- 200以上のバグつぶし
- などなど
あたりでしょうか。
CocoaとQTKitの対応は、OpenCVの開発のTracを見ると、ビデオ画像の取得のところでバグがあるらしく、#253で
cvQueryFrame() with QTKit causes serious memory leak on Mac 10.6 x86_64
というバグが報告されてます。個人的にはObjective-Cよくわかんないので、これが直ったら2.1にするつもりです。
以下、原文をコピペします。
OpenCV 2.1 is basically a stabilized OpenCV 2.0, yet there are a few new features. >>> General modifications - SVN repository has been migrated from SourceForge to https://code.ros.org/svn/opencv. The bug tracker has been moved to https://code.ros.org/trac/opencv/. And we also have OpenCV twitter! http://twitter.com/opencvlibrary - The whole OpenCV is now using exceptions instead of the old libc-style mechanism. That is, instead of checking error code with cvGetErrStatus() (which currently always returns 0) you can now just call OpenCV functions inside C++ try-catch statements, cv::Exception is now derived from std::exception. - OpenCV does not support autotools-based build scripts, CMake (www.cmake.org) is the only way to build OpenCV on any OS. See http://opencv.willowgarage.com/wiki/InstallGuide. - All the parallel loops in OpenCV have been converted from OpenMP to Intel TBB (http://www.threadingbuildingblocks.org/). Thus parallel version of OpenCV can now be built using MSVC 2008 Express Edition or using earlier than 4.2 versions of GCC. - SWIG-based Python wrappers are still included, but they are not built by default and it's generally preferable to use the new wrappers. The python samples have been rewritten by James Bowman to use the new-style Python wrappers, which have been also created by James. - OpenCV can now be built and run in 64-bit mode on MacOSX 10.6 and Windows (see HighGUI and known problems below). On Windows both MSVC 2008 and mingw64 are known to work. - In theory OpenCV is now able to determine the host CPU on-fly and make use of SSE/SSE2/... instructions, if they are available. That is, it should be more safe to use WITH_SSE* flags in CMake. However, if you want maximum portability, it's recommended to turn on just WITH_SSE and WITH_SSE2 and leave other SSE* turned off, as we found that using WITH_SSE3, WITH_SSSE3 and WITH_SSE4_1 can yield the code incompatible with Intel's pre-Penryn or AMD chips. - Experimental "static" OpenCV configuration in CMake was contributed by Jose Luis Blanco. Pass "BUILD_SHARED_LIBS=OFF" to CMake to build OpenCV statically. >>> New functionality, features: - cxcore, cv, cvaux: * Grabcut (http://en.wikipedia.org/wiki/GrabCut) image segmentation algorithm has been implemented. See opencv/samples/c/grabcut.cpp * new improved version of one-way descriptor is added. See opencv/samples/c/one_way_sample.cpp * modified version of H. Hirschmuller semi-global stereo matching algorithm that we call SGBM (semi-global block matching) has been created. It is much faster than Kolmogorov's graph cuts-based algorithm and yet it's usually better than the block matching StereoBM algorithm. See opencv/samples/c/stereo_matching.cpp. * existing StereoBM stereo correspondence algorithm by K. Konolige was noticeably improved: added the optional left-right consistency check and speckle filtering, improved performance (by ~20%). * User can now control the image areas visible after the stereo rectification (see the extended stereoRectify/cvStereoRectify), and also limit the region where the disparity is computed (see CvStereoBMState::roi1, roi2; getValidDisparityROI). * Mixture-of-Gaussian based background subtraction algorithm has been rewritten for better performance and better accuracy. Alternative C++ interface BackgroundSubtractor has been provided, along with the possibility to use the trained background model to segment the foreground without updating the model. See opencv/samples/c/bgfg_segm.cpp. - highgui: * MacOSX: OpenCV now includes Cocoa and QTKit backends, in addition to Carbon and Quicktime. Therefore you can build OpenCV as 64-bit library. Thanks to Andre Cohen and Nicolas Butko, which components Note however that the backend are now in the alpha state, they can crash or leak memory, so for anything more serious than quick experiments you may prefer to use Carbon and Quicktime. To do that, pass USE_CARBON=ON and USE_QUICKTIME=ON to CMake and build OpenCV in 32-bit mode (i.e. select i386 architecture in Xcode). * Windows. OpenCV can now be built in 64-bit mode with MSVC 2008 and also mingw64. * Fullscreen has been added (thanks to Yannick Verdie). Call cvSetWindowProperty(window_name, CV_WINDOW_FULLSCREEN, 1) to make the particular window to fill the whole screen. This feature is not supported in the Cocoa bindings yet. * gstreamer backend has been improved a lot (thanks to Stefano Fabri) >>> New tests: - A few dozens of new tests have been written and many existing tests have been extended to verify OpenCV correctness thoroughly. As a result, we brought the test coverage from rather mediocre numbers to pretty impressive ones (especially for cxcore and cv)! Module OpenCV 2.0 coverage OpenCV 2.1 (functions/conditions) (functions/conditions) cxcore 65/54 91/73 cv 52/46 80/68 ml 66/47 73/52 highgui 17/3 54/27 cvaux 0/0 5/12 - Many new regression tests have been written in Python that check both OpenCV and the new-style bindings. - The test data moved to the separate repository: https://code.ros.org/svn/opencv/trunk/opencv_extra/testdata. And it is not included into the package, thus some tests from the cvtest and mltest will report about the missing data. You can download the directory to your hard drive and run cvtest like: ./cvtest -d <path_to_opencv_extra>/testdata/cv ./mltest -d <path_to_opencv_extra>/testdata/ml - The test engine has been improved: added flags -tn, -seed, -r the detailed information about failed tests is displayed right in the console. >>> Bug fixes: - about 200 bugs have been fixed. For the list of closed and still open bugs, please look at https://code.ros.org/trac/opencv/report and http://sourceforge.net/tracker/?group_id=22870&atid=376677. >>> Known problems/limitations. - there are some sporadic test failures on different platforms. Most probably they are caused by some very special test cases (that are usually generated randomly on each test run) and the test cases are not properly handled by the functions or by the tests. Some of the tests have been reproduced and reported here: https://code.ros.org/trac/opencv/ticket/29 https://code.ros.org/trac/opencv/ticket/113 https://code.ros.org/trac/opencv/ticket/114 - the new Python bindings do not include interface for the new C++ functionality and MLL. this is going to be addressed in some special intermediate OpenCV release - documentation is also incomplete at the moment and there are occasional formatting, grammar and semantical errors. We continue to improve it on a regular basis. Please, check the up-to-date online documentation at: http://opencv.willowgarage.com/documentation/c/index.html (C) http://opencv.willowgarage.com/documentation/cpp/index.html (C++) http://opencv.willowgarage.com/documentation/python/index.html (Python) - please also check the list of open bugs at https://code.ros.org/trac/opencv/report and http://sourceforge.net/tracker/?group_id=22870&atid=376677.
2010-04-05
■[Apple][日記]iPadとその先
iPad発売されましたね。個人的にはiPadはiPhone以上に売れると思っています。 長いスパンで見れば(10年くらい)、PCの主要な一形態としてデファクトスタンダードになるくらい流行るんじゃないかと。
1月にiPadが発表される前日、とある記事が公開されました(下の記事)。1年前に、パソコンの父アランケイにインタビューしたもので、この記事の翌日発表されるはずのデバイス(=iPad)にこんな感じでコメントを寄せてます。
“When the Mac first came out, Newsweek asked me what I [thought] of it. I said: Well, it’s the first personal computer worth criticizing. So at the end of the presentation (the first iPhone announcement in 2007), Steve came up to me and said: Is the iPhone worth criticizing? And I said: Make the screen five inches by eight inches, and you’ll rule the world.” http://gigaom.com/2010/01/26/alan-kay-with-the-tablet-apple-will-rule-the-world/
読んですげーと思いましたw 最後の文、まさにiPadそのものだったりします。(少しだけサイズは違いますが)つまり、アップルはアランケイの予言(助言)どおりの、まったく言われたとおりのデバイスを発表したというわけです。
そして、このアランケイのアドバイス。 彼が1970年代に出した論文で、コンピュータとしてあるべき姿として語ったデバイスそのものであったりします。
Alan Kay. Personal Dynamic Media. IEEE Computer, 1977.
全くパソコンなんてなかった時代に (というかPersonal Computerという言葉は彼が作った) あるべき計算機の姿というのを語るだけでどれだけすごいかわかりますが、 それが30年以上かけてようやく実現されたというわけです。
という、自分的にはこっそり興奮しているデバイスだったりします。
で、iPadはあと数週間で触れるようになるとして、iPadの次は何がくるのだろうかと考えてみました。 ちなみに、一切どこからも情報を得てないですし、何も確証はありません。思考実験です。妄想です。w 以下、つらつらとその妄想を書いてみます。
次にAppleが作ってくるのは、個人的にはやっぱりテレビまわりなんじゃないかと思います。すなわち、今で言うところのHDDプレーヤーに当たるところですね。 ホームネットワークのベースステーションとして。
簡潔に言えば、iPad OSによるAppleTVのリバイバルです。
その際、使いやすいワイヤレスキーボードと(リモコン的な)ポインティングデバイスを作って、TVスクリーンアプリ、動画販売の市場をさらに切り開くんじゃないかと。iTunesは他社にはない絶対的な強みですから、iTunesを中心にセグメントの水平展開をはかるというのは非常に堅実かつ現実的な選択肢なはずでしょう。
Podcastのテレビ版を作っても良いかもしれません。放送局ですね。また、もちろんテレビの録画ができ、ブルーレイ、HDDも見れるようにして、DLNA(Apple的には名前違うんだっけ?)で家中のiPadやiPhone、PCにも送れるようになると思います。同時にHDMIにも対応するでしょう。
ただ、今までずっと保ってきたPCのiTunesによるSync元の一元管理というのを、このデバイスでも保つかどうかはわかりません。ほとんどPCのような扱いになるのであれば、こちらも母艦扱いしてもいいでしょう。
この製品ですが、Appleの最近の傾向から言うと、ただ単に同じ商品カテゴリに切り込んでくる感じはしないというか、新しいカテゴリを作るような形で出してくると思いますが、ミックスされる現行の近いデバイスとしてはWii、AppleTV、HDDレコーダー、メディアサーバー、あと入れてもTime Capsuleあたりでしょうか。 入らない感じもするけど・・・。
外観としては現行のAppleTVやMac miniとあまり変わらない感じだと思います。Appleの特徴として、うまくできた外観は2,3サイクル保って使うというのは結構よくやる手な気がします。iPhone→iPod touch, iPadや、iMac→Macbook Pro, Cinema Displayなどでしょうか。ブランディングとしても良い手段ですし、効率も良いですね。
OSはベースはiPadのOSになると思います。iPadが流行る頃には、今のWindowsやMacのような細かいボタンや繊細な操作を要求するようなインタフェースをTVに求めるなんてこと自体ありえなくなっているでしょう。iPadのOSを大きくするだけで十分かと思います。(Landscape modeだけになっちゃいますけどね。)
プロセッサはAppleの自社のやつになるでしょう(iPadのやつも速いみたいだし)。HDDは出る時期によりますが1TBと2TBくらいでは。
一番ネックになるのが多分リモコンだと思います。UIST、CHIなどのHCI系の学会発表待ちかもしれません。でも今のところで言えば、入力スタイルはWii方式ですかねぇ・・・やっぱり。精度としてはソニーのモーションコントローラの方式を使えば十分な感じもあるので、それになる可能性は高いと思っています。本体の前面にも目立たない程度にセンサがつく感じですね。iPadの黒い帯みたいなのでセンサを隠すかもしれません。
ただ、リモコンの方はデザイン的に薄さや、流線型のフォルムを作れない限り、発表しないと思いますから、形状の試行錯誤を繰り返したりするんだと思います。
キーボードについては、ワイヤレスキーボードできれいなのwを作成するか、リモコン全面に静電センサーなどをつけて新しい入力方式を作ってしまうかになるでしょうか。いずれにしても従来のようなボタンをはめ込んだキーボードではないと思います。(ただの予想です。) 個人的には現行のワイヤレスキーボードをベースに、静電センサ+超音波触覚フィードバックあたりで作ってほしいところです。
ゲーム用のリモコンを作れば、このデバイスだけでさらにTVゲーム市場まで食えるという美味しい話でもありますが、その辺はわかりません。ただ開発者にとっての開発効率はかなりいいはずです。iPhone開発とPS3開発で言ったらiPhone開発の方が圧倒的に楽でしょうから。もちろんPS3のゲーム開発に金がかかりすぎてWiiで発売するメーカーが増えたっていう話を思い出させます。
こんなところでしょうか・・・。(当たったら嬉しいなー。)
割と、このブログを読んでくれてる方は技術者ばかりだと思うので、技術的には何も真新しい内容が入っていない、ベーシックすぎる妄想wで、つまらないと感じる方も多いと思います。w
個人的にはAppleの良さは、自社のビジネスの中核を伸張することを大前提に、今すでにある技術や製品を「ユーザエクスペリエンス」の観点から徹底的にハードソフトともに作り直して、市場に打ち出すというのがうまい会社だと思っています。
技術的にも機能的にも新しいところはありません。iPodもiPhoneもiPadも参考となる製品がすで市場にあり、機能を取捨選択して一つのプロダクトとしてまとめ、洗練されたUIを提供したということに過ぎません。その背景にあるものがユーザエクスペリエンスであり、製品製作の全ての判断基準がユーザエクスペリエンスであるということでしかありません。
そういう意味で、ジョブズのプレゼンは、後から付与された物語ではなく、製品のコンセプトから販売に至るまで守ってきた思想を、報告しているというように感じます。
願わくばこのようなGame-changingな製品を日本企業から出してほしいと願いたいですが、日本の家電メーカーの中で、ユーザエクスペリエンスを意思決定の第一義に置くような会社は、今のところないのではないかと感じてしまう今日この頃です。
2010-03-30
2010-03-29
■[OpenCV][mac]Mac OSX Snow LeopardでOpenCV 2.0をCarbon非依存(つまりCocoa)で64ビットでちゃんとカメラ(iSight)も使えるようにインストールする方法。
タイトルが長い・・・。
以前の日記でSnow Leopardだと、カメラやHighGUIをきちんと全部使うにはCMakeで32ビットコンパイルするしかないと書きましたが、実は64ビットで使える方法がありました。(dandelionさんがコメント欄で教えてくれました)なんと、OpenCV2.0のHighGUIをCocoaで書き直している人がいて(!)、それをCMakeでデフォルトコンパイラ(GCC4.2)でビルドすればオッケーっぽいです。というか動きました。
http://code.google.com/p/opencv-cocoa/
以下、インストールのしかたを書きます。だいたい普通のOpenCV2.0と一緒です。
svnでチェックアウト
svn checkout http://opencv-cocoa.googlecode.com/svn/trunk/ opencv-cocoa-read-only
適当なフォルダにソースを落としてきます。
CMake2.6でMakefile作成
2.6が推奨らしいので、CMake2.6-patch4を使いました。
Where is the source code: 先ほどのチェックアウトしたフォルダ Where to build the binaries: 上のフォルダ/build など(好み)
Configureを押すと、Specify the generator for the projectと出るので、Unix Makefilesを指定します。コンパイラの指定はUse default native compilersでOKです。
オプションで指定するのは、
- CMAKE_OSX_ARCHITECTURESの欄をi386;x86_64と書き換える
- ENABLE_X86_64にチェックを入れる
- ENABLE_OPENMPにチェックを入れる
- WITH_CARBONにチェックがはずれているのを確認する
- CMAKE_INSTALL_DIRを変えたかったら変える。
くらいでしょうか。あとは、Configureを押し、Generatorを押します。
make && make install
あとは、Makefileが出来上がったフォルダに移動して、make && make installです。
make sudo make install
使い方
使い方が特殊です。そんなに手間ではないですが。
http://code.google.com/p/opencv-cocoa/wiki/UsingCocoaWithOpenCV
ここに書いてあるとおりにやってください。
#include <opencv/cv.h> #include <opencv/highgui.h> int myCode(int argc, char *argv[]) { // ここにほんとのmainを書く。 } int main(int argc, char *argv[]) { return cvInitSystem(argc, argv, myCode); }
ただ、注意しなければならないのは、Xcodeで新しいプロジェクトを作るときにCocoa Applicationを選べとのことです。
いつも使う用のスケルトンとしては、一つ一つフレームワークをプロジェクトに追加したりするのは面倒なので、はじめにチェックアウトしたソースファイルのsamples/MacOS-Cocoa/にあるサンプルプログラムをそのまま改編して使うのが良さそうです。
以上です。僕の環境ではいまいちHaarが動かないんですが、今のところ機械学習は使わない予定なので一応スルーしてます。
