7.理系vs文系

最近起業家の方とか意識高い学生とお話しさせて頂く機会が多かったんで思った事まとめようと思う。

まずtwitterであるとかmixiであるとかのSNS関連の飲み会とかでお会いする方々は9割文系、残りの理系はネット関連の会社に内定取ってたり学生団体やってたりでその活動の一環だったりする。
「おれ起業したいんで今のうち人脈作りたいんです」「ソシャールがなんとかかんとか・・・」等のそれらしい言葉を並べてかっこいい未来設計を周りを気にせずばらまいてくる。

こんなんだから理系の人材はコミュ力がない!!対人能力に問題がある!!とかって就職活動で言われちゃうんだなぁと
たしかに4年間理系の大学、理工学部に通ってて思うのがそれぞれの持ってる世界の狭さと人と接する事への不得手さが顕著である事。そして人と接する事なくてもそれなりに成長できてしまう環境、あくまで「技術者としての技術力、基礎スキルがつく」程度だがこれは大学側に気づいてほしいところだ

それに対して文系は速い段階からゼミに配属され必修単位もあまりなく、比較的自分の時間を作り易いので積極的に学生団体なりバイトなりで人と関わり続ける。非常に非情にうらやましい・・・

それで先にあげた飲み会での話だが社会人の人もたくさん来ててそれに取り入るようにして話す男達がいた、聞いてみると彼らは一様に文系、もしくはスポーツ系卒の営業候補生たちだそうな、こうやって人とのしゃべり方とかどうやったら気に入られるかとか学んでるんだなぁと勉強になった。僕もこそこそと参加させてもらえたし

でもそういった場所で僕は理系エンジニア、技術屋を目指す人間だがこんな対人スキルは二の次だと思った、人に気に入られたりフランクに話したりどうこうしたりしてやるのは営業の仕事!!なんてつまらないこと言う気はない、技術屋にも必要なスキルだ。
でも技術を売る身としてはこうして無駄に自身の価値を高めてもだめだと思った、「技術者は商品」そんな言葉を本で読んだがそれで良いと思う、オプションでコミュ力とかあれば

そんな考えてる中で最近SEの思想的書物を読んでて「商品で終わらない技術者」という考え方も自分のなかで芽生えてきた、とにかく自分に必要なのは英語力と技術力と実績。漠然としたものだが絶対必要なものだ。目標としては

  • 英語->外人と卑猥トークができる

-

  • 技術->C++で猥談ができる

-

  • 実績->学会プレゼンで下ネタを挟む

といったところか、とりあえず中間報告に向けて動く動く・・・

6.パーティクルフィルタ

コンデンセーションやモンテカルロ。フィルタとも呼ばれることがあるパーティクルフィルタは逐次追跡可能なアルゴリズム

、つまり追跡の終点をあらかじめ必要としない動画像中において物体の追跡・検出を行うことのできるアルゴリズムでリアルタイム処理ができるほど計算が軽い、そしてオクルージョンにも頑健であり、用いる状態方程式も線形である必要がないといういいことずくめのアルゴリズム
他にも特徴としておもに画像処理で用いられ、シミュレーションにモンテカルロ法を用いてるというのがある。


物体認識、物体検出の分野において物体を追跡するための方法としてはテンプレートマッチング、背景差分なども考え方的にはとてもわかりやすいし学校の授業でも出てくる。しかしそれらの研究を経て簡単だよ!と生み出されたパーティクルフィルタの理解は一介の馬鹿学生である私にはとても高度であるので、できる限りわかりやすく文章に残したい。

まずこのアルゴリズムが動画中においてどういった仕組みで物体検出しているかについて考える。

まずはMISTさんページから
http://mist.suenaga.cse.nagoya-u.ac.jp/trac/wiki/Tutorial/Practice0

「パーティクルフィルタは、現状態から起こりうる多数の次状態を、多数(数百or数千)のパーティクル(粒子)に見立て、全パーティクルの尤度に基づいた重みつき平均を次状態として予測しながら追跡を行っていくアルゴリズムです。」




わかるかっ!!( 'д'⊂彡☆))Д´) パーン


ってことで実際の処理を見ながら解説。
↓処理の流れ↓
1.パーティクル(粒子)の初期化
名前にもついてるパーティクル(粒子)を用います。映像内において重みと状態量をもった、つまり特定地点において何かしらの評価される値をもった粒子を配置させる。
最初は粒子を一様に分布させる。

2.予測
次の状態を予測する、最初に意味が分かんなくなるのはこの部分だと思う。
「各粒子において前状態から現状態を予測する。」とうのが理論らしいが、自分的な解釈としては

「ばらまいた粒子からどっちに移動するか予測するぜ、その時にそれぞれどっちの方向に行けばいいのか分かんないので、前状態の情報を用いて移動方向に対して尤度(もっともらしい値)を計算する、この尤度の高い方向、もっとも移動するんじゃねぇかって方向に粒子を移動させる。これでとりあえず次状態を予測するサンプルが作れる。」

そんなかんじ

3.尤度計算、重み付け
移動させた粒子においてそれぞれが求めるものに近いかを、もっともらしいかを計算する。つまりは尤度関数を用いて尤度を計算する、この時に尤度が高いことを距離が近いとか表現することもあるそれはユーグリッド距離のような手法を用いて尤度計算をしているからだと思う。
ほかにも手法はいろいろある、ヒストグラムの近さを求めたり画素の分布で考えたり、けどとりあえずその粒子が検出対象に近いかどうか考えてるんだと思う。


4.対象推定
そうして求めた尤度に対して重み付き平均を求める。

*重み付き平均
一般的なデータの総和/データの個数で求まるような算術平均、相加平均とはちがいそれぞれのデータの重み(それぞれの持つ個数とか意味)を考慮してる。
詳しくはリンクで
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q129394592

ここではさっきの尤度を重みとして平均を求める。これによってどの部分が物体中心かを求める。これで検出対象をユーザー側にも見やすくできるね

5.フィルタ
重みの大きい粒子位置に粒子を増やし、重みの小さい粒子は消す。
これによって検出物体に粒子が集まる。


6.1〜5を繰り返す。

以上だ。


やっぱわかんねぇ!!( 'д'⊂彡☆))Д´) パーン


ってことでまとめ

「パーティクルフィルタは映像内に粒子をばら撒いてそれぞれが検出対象に近いかを尤度で判断する、それで尤度の高い場所に検出対象があるだろうと予測、粒子を集中させて検出対象を追い続ける。このときの尤度の求め方、状態量のとり方、運動モデルの設定の仕方によってさまざまなオリジナリティあふれる方法が考えられちゃう!!」
みたいなものだと思って自己完結。

最後に問題点だけ

*リサンプリングを繰り返していくと制度が著しく低下することがある。し かし十分多くの粒子数をとることで回避できる。
*高次元の、自由度の高いシステムモデルを扱うのは難しいらしい。
*簡単!!とかどこも書いてあったけどぜんぜん難しい、初心者には厳しい

以上。
プログラムはソースいろいろ落ちてるしOpenCVにもあったと思うのでそちらで動かしてみると楽しいと思う。

参考にさせていただいたサイト

http://daweb.ism.ac.jp/koza/koza2008/PF_Nakano20081030.pdf
http://mist.suenaga.cse.nagoya-u.ac.jp/trac/wiki/Tutorial/Practice0

4.恐がりの生き方

ぼくはとても怖いものが好きなんですが、とても苦手です。いままでにも

"箪笥"

箪笥 [DVD]

箪笥 [DVD]

"輪廻"
輪廻 プレミアム・エディション [DVD]

輪廻 プレミアム・エディション [DVD]

"サイレント・ヒル"
サイレントヒル [DVD]

サイレントヒル [DVD]

などなど!!ホラー映画をころころと見てます。

そんな僕が思うのは「なんでこの人たちは自らフラグを乱立させるのか?」

例えば一人で乗り物に乗って後ろを向いたら誰もいない、でも前を向いたら・・・

きゃあああああああああああああ!!わっしょいわっしょい!

みたいなことあるじゃないですか、演出、お約束ならわかるんですけどもう観客は見飽きてる訳です。もういっそのこと後ろ向いた段階でいてくれていいです、もう出るなら出るでがんがんいこうぜ!な映画も見てみたい。
でもそうなったらそれもうホラーじゃないですね、ただのパニックアクションですわ

しかしリアルで霊に、おばけやってる方にお会いした事はないんですがもし会うようなシチュエーションがあったらほんとに映画みたいに遭遇するんでしょうか?事実は小説より奇なりと言うしもっとあっさりかもしれない。

なのでもし金縛りとかにあったら幽霊が出てにくいように頭の中でものすごくいやらしいこと考えようと思う、できれば口に出そうと思う。脱げれば脱ごうと思う、出せる部分は出していこうと思う、恥部をiPhoneで隠して「あぁ!!iOS!!iOS!!そう、アイフォーンならね」とドヤ顔してやるのもいいだろう。
でもそれで出てきたのが幽霊でなく親だったら「デバック中だったんだよ」と言い訳するしかない。

3.gcc-4.2 failed with exit code 1という名の罠

上記エラーではソース自体にエラー表示は出ない

なのでなにがおきてるのかわからないままObjective-Cが嫌いになっていく、コンパイラ側は親切に教えてくれているのにユーザー側がよくわかんなくてすれ違う、遠距離恋愛、近くて遠い、そんなかんじだ。

このエラーではなんだかよくわかんない場所を示されるけどとりあえず以下の点をチェックしてほしい。

*変数名の重複!!

自分で作ったオリジナル変数で
int i;
とか宣言した場合でもひょとしたらシステム内の把握できてない場所で使われている変数かもしれない、そこでこのエラーの場合は最近作った変数をチェックしてゆき、それぞれコメントアウトしながらどれが問題あるかチェックしてほしい。

今回は下記リンクを参考にさせて頂きました。
他にも対処法はあるので下記リンクをチェックして頂きたい。

情熱とスキルと市場:
http://ishidak.blogspot.com/2010/09/iphone-g-42-failed-with-exit-code-1_11.html

2.iPhoneアプリが起動しない??

xcodeにおけるiPhoneアプリ開発の際に、アプリをわくわくしながら起動する訳だがどうにも起動しない場合がある、その際の代表的な原因として以下のようなものが考えられる。

*シミュレータでアプリが落ちる原因
1、Objectが存在しない。
2、引数が間違っている。
3、起動時のデフォルトViewが設定されていない。
4、メモリリーク

各Viewにおいてxibを立ち上げFile's OwnerをIB(Interface Builder)をチェックしてみると、
特にソースコード内で記述されていないのになぜかOutletとして存在するものがあったりする。

必要の似ないオブジェクトはどんどん消して使うものだけ使えってことらしい、こういうミスとかもerrorとして出してくれれば便利なのにね・・・

1.ブログ趣旨

私ジャンボの研究事項である下記テーマに関して現在大学4年、夏からの学習の備忘録、進捗確認を兼任したブログをここに作成する。

その他にも気になったテーマや話題を、主にIT系の企業、ライフハックに関した話題についての記録をつけて行こうと思う。

基本的に学んだ事や行った事は論文、ネットからの転載が多いので問題はないと思いますが、できるかぎり配慮して作成してゆこうと思います。

よろしくお願いします。

*関連テーマ、あとなんかネタ*
iPhoneアプリ開発
画像処理
openGL
openCV
3D
自由視点映像技術
画像認識技術
特徴点抽出

弁当レシピ
バンド活動
ビジネス
企業

*学習言語*
English
C言語
C++
java
php
HTML
Objective-C