goo blog サービス終了のお知らせ 

ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

”「IT製品、ソースコード開示せよ」…中国が外国企業に要求へ”って(^^;)。。。

2008-09-19 20:02:41 | Weblog

ここのニュース
「IT製品、ソースコード開示せよ」…中国が外国企業に要求へ
http://www.yomiuri.co.jp/atmoney/news/20080919-OYT1T00011.htm

によると(以下斜体は上記サイトより引用)


中国政府が外国企業に対し、デジタル家電などの中核となる製品情報を中国当局に開示するよう命じる新制度を2009年5月から導入する方針であることが18日わかった。

 対象はICカードやデジタル複写機のほか、薄型テレビなども含まれる可能性がある。開示を拒否すれば、その製品の対中輸出や中国での現地生産、販売が一切禁止される。


ほー・・・コピー製品を作りやすくするため?
あ、そうじゃなくって(^^;)

パソコンとか、パッケージソフトとかは、どーなるんでしょうかね?
それも公開って言ったら、マイクロソフトとか。。。

まー、これで中国への輸出とかは、やりにくくなるんでしょうね。



  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

「3日で作る高速特定物体認識システム」をやってみる(その1:OpenCV)

2008-09-19 18:07:27 | Weblog

 情報処理2008年9月号に、「3日で作る高速特定物体認識システム」というのが載っている(1082ページ)。3日でできるんでしょうか?ま、3日でできるかどうかはさておき、興味津々なので、やってみましょう。




■まず、これからの内容

 その記事では、以下の段階で話を進めている

(1)低速特定物体認識システムの構築
(2)近似最近傍探索を用いた高速化
(3)ユーザーインターフェースの構築

 まずは、(1)から。
 (1)は、さらに、こー言う手順になるみたい。

(1-1)OpenCVをインストールする
(1-2)SIFTのソースをとってきて、コンパイルする
(1-3)物体IDと特徴ベクトルのファイルを作成する

ということで、今回は、(1-1)OpenCVをインストールするをやります。




■OpenCVをインストール

OpenCVというのは、「インテルが開発・公開しているオープンソースのコンピュータビジョン向けライブラリ」(引用:Wikipedia)だそうです。
 こいつを、インストールします。

 インストールの仕方は、「OpenCV@Chihara-Lab」の
インストール
http://chihara.naist.jp/opencv/?%A5%A4%A5%F3%A5%B9%A5%C8%A1%BC%A5%EB

をそのままやります(以下斜体は上記サイトより引用、斜体でないところも、ほとんど受け売り)。

 そこに書いてあるhttp://sourceforge.net/project/showfiles.php?group_id=22870に行って、opencv-winをダウンロードしてきます。

 そこに書いてあるとおり、
・ダウンロードしてきたファイルを実行
・環境変数のPATHを修正(追加)して
・C:¥Program Files¥OpenCV¥samples¥c¥にある、facedetect.exeを実行

したら、ちゃんと、顔の絵が出ました。




■Visual Studioの設定
 で、Visual Studioを設定します(ウィリアムのいたずらは、Visual Studio 2003を使っています)。

●まず、インクルードファイルを追加します

 そこにあるように、ツール→オプションとやると、下のオプションダイアログがでるので、

そしたら、左側のツリーで「プロジェクト」→「VC++ディレクトリ」を選択、右上の「ディレクトリを表示するプロジェクト(S)」で、「インクルード」を選択して、したの4行を追加するわけですが、

C:¥Program Files¥OpenCV¥cv¥include
C:¥Program Files¥OpenCV¥cvaux¥include
C:¥Program Files¥OpenCV¥cxcore¥include
C:¥Program Files¥OpenCV¥otherlibs¥highgui

追加するには、一番下をクリックで選択されます。選択後、さらにクリックすると、入力できるようになります。


●つぎに、「ライブラリファイル」
 右上の「ディレクトリを表示するプロジェクト(S)」を、「ライブラリファイル」に切り替えて、

C:¥Program Files¥OpenCV¥lib

を追加します。下の図のかんじ





■プロジェクトの作成

 で、プロジェクトの作成をします。
 VisualStudioの「ファイル」→「新規作成」で、「プロジェクト」を選択し、ダイアログを出したら、「Visual C++プロジェクト」の「空のプロジェクト(.NET)」を選択して、空のプロジェクトを作ります。
 今回は、名前は、opencv1にしました。

 そしたら、「プロジェクト(P)」→「***のプロパティ(P)」(今回はopencv1のプロパティ)でプロパティのダイアログを出したら、左側のツリーで「構成プロパティ」→「リンカ」→「入力」を選択します。
 そしたら、「追加の依存ファイル」に以下の1行を追加

cv.lib cxcore.lib cvaux.lib highgui.lib

そうすると、こんな図になります。


 ここまでやったら、
C:¥Program Files¥OpenCV¥samples¥c¥facedetect.cのファイルを、ソースファイルとしてプロジェクトに追加します。ソリューションエクスプローラーで、「ソースファイル」を右ボタンクリックすると、ポップアップウインドウ画出てくるので「追加」→「既存項目の追加」を選択、C:¥Program Files¥OpenCV¥samples¥c¥facedetect.cを選択すると、ソースファイルに追加されます。




■プログラム固有の修正

 このプログラムは、引数に画像ファイルが必要で、カスケードファイルというのが必要になります。

 引数については、まずメニューバーの「プロジェクト(P)」→「***のプロパティ(P)」(今回はopencv1のプロパティ)でプロパティのダイアログを出したら、左側のツリーで「構成プロパティ」→「デバッグ」でコマンド引数に
"C:¥Program Files¥OpenCV¥samples¥c¥lena.jpg"
と入力します(¥は本当は半角なので、全角を半角に直して入力してください)
こんなかんじ。


 カスケードファイルは、ソースを直します。

 main関数で、以下のところ



cascade_name = 以下を、
"C:¥¥Program Files¥¥OpenCV¥¥data¥¥haarcascades¥¥haarcascade_frontalface_alt2.xml";
(¥は本当は半角なので、全角を半角に直して入力してください)
というふうに、haarcascade_frontalface_alt2.xmlのパスにかきなおします。




■VisualStudio2003のための修正
cvaux.hに関する修正はしないでも、コンパイルできました。
でも、実行すると、エラーになります。
そのエラーについては、
OpenCV/インストール
http://co-coa.sakura.ne.jp/index.php?OpenCV%2F%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB

の下のほうに載っていました。

 その設定を行います。
 メニューバーの「プロジェクト(P)」→「***のプロパティ(P)」(今回はopencv1のプロパティ)でプロパティのダイアログを出したら、左側のツリーで「構成プロパティ」→「全般」で
「マネージ拡張」を「いいえ」にします。以下の図のようなかんじ。


ウィリアムのいたずらの場合、これで、インストールのときに確認したのと同じ、顔の周りを囲む図がでました。




なんか、このライブラリだけでもすげー・・・(@_@!)
いろいろできそう



  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

SugarCRMのModuleBilderのメモメモ

2008-09-19 14:56:15 | SugarCRM

 SugarCRM5.0から、自分でモジュールを作れるモジュールビルダーが入ったことは、

Sugar4.5と5.0の、カスタマイズ上の変更点(5)-Module Builderを使ってみる
http://blog.goo.ne.jp/xmldtp/e/19d457d96bc94b1ad882c9fa74dff5bd

で書いておいたけど、そのとき、

のところまで書いて、これからさき、どのように項目を追加したり、他のモジュールと関連付けするかについてかいていなかった。
 忘れちゃう前に書いておきましょう。




■項目についての操作(ViewField)
 モジュールの画面で、ViewFieldをクリックすると、以下の画面が現れます。

左側の「Add Field」ボタンをクリックし、右側のフィールド名などを設定して、「Save」ボタンをクリックすると、「Add Field」ボタンの下のほうにある項目名のところに追加されます。

 一方、「EditLabels」をクリックすると、以下の画面が表示されます。

ここで、(表示される)ラベルを変更して、「Save」ボタンをクリックします。




■レイアウトの操作(View Layout)
 モジュールの画面で、ViewLayoutをクリックすると、以下の画面が現れます。

 これで、どれか、画面を変えたいものをクリックすると、以下の画面が現れます。


いらない項目は、ゴミ箱へドラッグ&ドロップ
必要な項目は、下のほうのAvailable Fieldsから、右にある表示したいところへドラッグ&ドロップ
します。

 この図には載っていないけど、この上のほうに「Save & publish」というボタンがあるので、
出来上がったら、そのボタンをクリックします。




■モジュールの関連設定(View Relationships)
 モジュールの画面で、View Relationshipsをクリックすると、以下の画面が現れます。


 関連するモジュールを追加するには「Add Relationship」をクリックして、Relate Toから関連するモジュールを選択して、関連のラベル名を付けます。
 下の2つは、サブパネルに出るときに表示する画面についてです。変えたかったら変えます。
 で、Saveをクリックすると、左側に関連が表示されます。




この後に関して、モジュールのPublishに関しては、前回書いたとおりです。
(モジュールの画面に来るまでも、前回書いたとおり)
なお、今書いた各画面から、モジュールの画面に戻るには、真ん中の操作画面の上のほうに、

Module Builder > パッケージ名 > モジュール名 
(例:Module Builder >Test1>Module1)
がかかれたところがあるので、モジュール名(例だとModule1)をクリックしてください。



  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

JavaからJNI経由でVC++のダイアログだしてるけど、イベントがとれん(>_<!)

2008-09-19 12:58:15 | Weblog

 きのうやっていた、JavaからVC++で作ったDLL中のウィンドウを出すところまできたけど。。なんだけど、あのプログラムどおりにやると、じつは、ダイアログはでるけど、砂時計になったままで、ウィンドウのどこかをクリックすると(応答なし)になってしまう。

 で、透明については、たしかに、ダイアログのWM_CREATEでのイベントOnCreateで、ここに書いたようにDLLを呼び出して、WM_PAINTのイベントに対するOnPaintで、画面いっぱい白く書けば、
 たしかに、表示したときすぐは、透明になるけど、動かしたりして、再描画させるとだめ・・

 うーん、なぜ、イベントが取れんのだろう(>_<!)

 ・・・おあそびでよかった。お仕事だったら、たいへんだよ・・


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする