ラベル 画像処理 の投稿を表示しています。 すべての投稿を表示
ラベル 画像処理 の投稿を表示しています。 すべての投稿を表示

2020-03-03

OpenFaceを入れてみた(Windows編)


うちは歴史的にKinect使ってモーションとか顔とかの認識をしてきたので、知識がそこで止まってしまっていたのですが、今さらOpenPoseとかOpenFaceとかCV系(画像認識系)のガチンコの方々が作られたライブラリを試すことになり、、、、いや、すごいですよ!!OpenFace!!!

公式ページはこちらっ!
OpenFaceというキーワードで調べると、
の2つが引っかかります。雰囲気的に後者のほうがCMUのラボのライブラリっぽい感じでで由緒正しいような気がしたのですが、違いました。前者のほうが現在も更新しているライブラリです。作者の方もIEEEで学会発表しているアカデミックな方で、今はMicrosoftのSenior Scientistのようです。

インストール方法
公式サイトに行くと、WIKIにいけって書いてあるのでそこへ移動します。
Windowsの場合、バイナリがあるのでそれをダウンロードして展開しましょう。単なるZIPファイルですので展開したら使えます。

モデルファイルのダウンロード
展開したら使えますと書きましたが、正確に言うと顔認識するためのモデルファイルが必要です。モデルファイルは、展開したファイルの中で
  • download_models.ps1
というPowerShell Scriptファイルを実行することで入手します。コマンドプロンプトではなく、PowerShellのコマンドプロンプトを開いて実行(上記ファイル名を入力するだけ)してください。

アプリ構成
Pythonとかのライブラリを想像していたのですが、そういうものはなく(私の勘違いでなければ)、顔画像解析のアプリケーションを提供していてそれを使ってねという感じですね。アプリは、
  • GUIアプリ系
  • コマンドラインアプリ系
と2系統に分かれている感じで、コマンドライン系のアプリは、他のプログラムから呼び出したりする時に使うのでしょう。

OpenFaceの使い方
OpenFaceOffline.exeというのがGUIアプリの記録ツールのようです。GUI系のアプリを動かすとリアルタイムに認識するんですが、想像以上に軽量ですごいです!Kinectとかで同じことをしようと思ったらマシンパワーがすごく必要で手元にあるノートPC(超ハイスペックです)でも重くてだめだったんですが、、、CV系の研究者の技術の高さには感心します。
扱うデータとしては、
  • 動画ファイル
  • イメージファイル
  • ウェブカメラ
からの入力を受け付けるようです。イメージファイルについては、ディレクトリ指定すると複数枚を一括して処理するようです。解析結果は、Processedディレクトリに保存されています。何が記録されるのかは、GUI画面のメニューで指定することができます。

なお、ソースコードを眺めると、Socket経由で呼び出すPythonのサンプルプログラムみたいなのが書いてました。そういう連携方法もあるんですね。後でチェックです。ただ、個人的には自分のGUIアプリ内でリアルタイムの処理を書きたいので、そうなるとソースコードを解読するしかないか、、、

とにかく、OpenFaceは凄いです。お試しあれ!


2017-07-18

Python:マルチページTIFFを読み込んで1ページずつ処理する


この記事は内容が古いので下記の最新記事を御覧ください。




(以下、旧記事)

PythonでマルチページTIFFを処理する方法。OpenCVでは未対応なようなので、PILを利用する。注意点は、
  • マルチページのページ数は n_frames で取得できる
というところ。ネットのサンプルはEOFエラーまでループを回すとか気持ち悪いことしてるので、n_frames +1 までループを回すのが美しいでしょう。

下記のコードを参照。


2016-02-21

Google Cloud Vision APIを試してみました

(年明け初の投稿ですね。今年もよろしくお願いします。)

昨年末(12月)にアナウンスが有り、つい先日、オープンβが公開されたGoogle Cloud Vision APIを試してみました。
使い方の概要ですが、
  • Google Cloud Platform のAPI Managerの利用設定をONにする
  • APIキーを入手
  • 画像をBASE64変換し、REST APIでJSONフォーマットで送る
という感じで、利用することができます。サンプルプログラムは、Java、Python、 Android,iOSとありますが、ようはJSON形式でRESTアクセすればいいんでしょ、、、ってことで、個人的にC#で書くのが手っ取り早いので、ざっと書いてみました。下記は、アプリの実行例です。


任意の画像ファイルを指定して送り、結果のJSONを表示するようにしてます。認識のモードも切り替えるようにしてます。

このアプリの詳細については、2/27に開催する
  • 機械学習勉強会(GDG京都&教育システム情報学会関西支部主催)
にて報告しようかと思ってます。




2015-09-10

C#でマルチページ形式のTiff画像を表示する方法(WPF編)

WPFでのC#でマルチページ形式のTiff画像を表示する方法は、下記のようになります。若干、Formの時よりもシンプルになりますね。


2013-09-27

C#:Bitmap画像の扱う際にはピクセル形式に注意する

Bitmap画像といっても内部的に色情報を扱う方法は様々です。この事を無視してプログラミングをすると、思わぬエラーに遭遇する時があります。ラボでもOpenCVを利用したテンプレートマッチングをしている時に、意味不明のエラーが出てうまく動かない事象がおきました。これは、異なるピクセル形式の画像をマッチングしようとしたからです。画像を内部的に変換するときに、ピクセル形式が変更されることがあるので注意が必要です。例えば、下記のような違いがあります。
  • Format24bppRgb ・・・1ピクセル当たり、赤、青、緑の各色8ビット、合計24ビット
  • Format32bppPArgb ・・・1ピクセル当たり赤、青、緑の各色8ビットと、8ビットのアルファ・チャネル
  • Format32bppRgb ・・・1ピクセル当たり、赤、青、緑の各色8ビット、合計24ビット。残りの8ビットは使わない。
Bitmapクラスのインスタンスを生成する時にはコンストラクタでピクセル形式を指定することができます。C#のPixelFormat列挙型には、たくさんの種類のピクセル形式が定義されています。確認してみましょう。


2011-07-14

参加報告:計測自動制御学会関西支部講習会 ~すぐに役立つ最新画像処理技術の基礎理論と実践テクニック~

現在、画像処理系の研究プロジェクトを遂行中なため、技術的な調査ならびに再勉強もかねて標題の講習会に参加してきました。その報告です。下記の4件の発表がありました。

ディジタル画像処理のはじめの一歩(寺田先生@徳島大)
寺田先生は前職でもお世話になった先生でありますが、講義を聞くのは初めて。内容は画像処理の基本的なところでしたが、演習を交えたやり方はいろいろ参考になりました。

超解像処理技術(田中先生@東工大)
この話は以前どこか何かで聞いたことがあったのですが、こうした形で聞くのは初めてです。この技術を何か応用できないかなと思ったり、、、、

動画像処理による3次元モデル化とカメラ位置推定(神原先生@奈良先端大)
カメラの位置推定とカメラ映像からの3次元モデルの生成についての話、、、何か両者が密接に関係しているので切り口が難しいところですが、カメラ位置推定というのはちょっと今まで気付かなかった視点で面白かったですね。

拡張現実感とプロジェクタカメラフィードバックによる見かけの制御(天野先生@山形大)
プロジェクター投影の研究ってのは知っていますが、その使い方が興味深かったですね。僕も3年ほど前にプロジェクターの色処理についての基礎的な研究をやっていたのですが、やはりその道のプロがやるといろいろ細かいところをやるんだなぁ、、という印象です。

先生方の話を聞いていてあらためて感じてのは、
  • 画像処理系の研究には経験的な要素が必要
ということ。まあ、これはどの研究もそうかもしれませんが、教育システム系研究者の私が画像処理を応用する場合、この画像処理系の経験的なコツを理解しておかないと、応用するにも無駄や不適切な処理があったりするかもしれません。また、画像処理研究のコツを教育システム研究にうまくフィードバックできないか、、、とも思ったりしました。