<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"><channel><title>OpenCV / Drkcore</title><link>http://blog.kzfmix.com/OpenCV</link><description>Programming, Music, Snowboarding</description><language>ja</language><lastBuildDate>Mon, 19 Aug 2013 09:21:02 +0919</lastBuildDate><item><title>今週末は第5回入門機械学習読書会です</title><link>http://blog.kzfmix.com/entry/1376871434</link><description>&lt;p&gt;ランチに&lt;a href="http://www.imojiru-honmaru.com/"&gt;名物のいも汁&lt;/a&gt;を食すかたは掛川駅に1130に集合です。&lt;/p&gt;
&lt;p&gt;&lt;p&gt;&lt;div class="awsxom"&gt;
    &lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/4873115949/ref=nosim/kaerutyuuihou-22"&gt;
    &lt;img src="http://ecx.images-amazon.com/images/I/51jHjnXQfCL._SL160_.jpg" align="left" hspace="5" border="0" alt="ProductName" class="image" /&gt;
    &lt;strong&gt;入門 機械学習&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
    Drew Conway&lt;br /&gt;
    オライリージャパン / 3360円 ( 2012-12-22 )&lt;br /&gt;
    &lt;br /&gt;
    &lt;br clear="all" /&gt;
    &lt;/div&gt;&lt;/p&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://atnd.org/events/41963"&gt;静岡Developers勉強会 第5回入門機械学習読書会&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://atnd.org/events/41962"&gt;第5回入門機械学習読書会　懇親会&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;一応6回で終了すると思うので次回以降の読書会のネタに関しても話し合いたいので、なにか推薦する方は教えて下さい。&lt;/p&gt;
&lt;p&gt;いまのところ、機械学習の延長線上にありそうな「実践コンピュータビジョン」はどうかなという話が上がっております。OpenCV+機械学習+Pythonという&lt;a href="http://blog.kzfmix.com/tag/OpenCV"&gt;結構面白い本だと思います&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;p&gt;&lt;div class="awsxom"&gt;
    &lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/4873116074/ref=nosim/kaerutyuuihou-22"&gt;
    &lt;img src="http://ecx.images-amazon.com/images/I/51XkQMgKoQL._SL160_.jpg" align="left" hspace="5" border="0" alt="ProductName" class="image" /&gt;
    &lt;strong&gt;実践 コンピュータビジョン&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
    Jan Erik Solem&lt;br /&gt;
    オライリージャパン / 3150円 ( 2013-03-23 )&lt;br /&gt;
    &lt;br /&gt;
    &lt;br clear="all" /&gt;
    &lt;/div&gt;&lt;/p&gt;&lt;/p&gt;</description><pubDate>Mon, 19 Aug 2013 09:21:02 +0919</pubDate><category>R</category><category>Python</category><category>OpenCV</category></item><item><title>Harris corner detectorとSIFT</title><link>http://blog.kzfmix.com/entry/1368616891</link><description>&lt;p&gt;実践コンピュータビジョンだけではいまいちHarris corner detectorとSIFTの理解が出来なかったので調べた。記述子の意味がわからないと気持ち悪いので。&lt;/p&gt;
&lt;p&gt;&lt;p&gt;&lt;div class="awsxom"&gt;
    &lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/4873116074/ref=nosim/kaerutyuuihou-22"&gt;
    &lt;img src="http://ecx.images-amazon.com/images/I/51XkQMgKoQL._SL160_.jpg" align="left" hspace="5" border="0" alt="ProductName" class="image" /&gt;
    &lt;strong&gt;実践 コンピュータビジョン&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
    Jan Erik Solem&lt;br /&gt;
    オライリージャパン / 3150円 ( 2013-03-23 )&lt;br /&gt;
    &lt;br /&gt;
    &lt;br clear="all" /&gt;
    &lt;/div&gt;&lt;/p&gt;&lt;/p&gt;
&lt;p&gt;大体は理解した。&lt;/p&gt;
&lt;h3&gt;Harris corner detector&lt;/h3&gt;
&lt;p&gt;エッジとコーナーの検出アルゴリズム。本を読んだ時にはエッジとコーナーって何が違うねんって思っていたけど&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;微分値が特定方向に大きい場合はエッジ，多方向に大きい場合はコーナーと考える&lt;small&gt;&lt;a href="http://d.hatena.ne.jp/michellon/20120304/1330850172"&gt;Harris Corner Detection&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;という説明を読んで、&lt;strong&gt;あー、なんだそういうことか&lt;/strong&gt;と気がついた。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://opencv.jp/opencv2-x-samples/corner_detection"&gt;OpenCVの例&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;SIFT&lt;/h3&gt;
&lt;p&gt;Harris corner detectorがわかっていれば理解しやすかった。下のスライドがわかりやすい&lt;/p&gt;
&lt;iframe src="http://www.slideshare.net/slideshow/embed_code/5534777" width="427" height="356" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC;border-width:1px 1px 0;margin-bottom:5px" allowfullscreen webkitallowfullscreen mozallowfullscreen&gt; &lt;/iframe&gt;

&lt;p&gt;&lt;div style="margin-bottom:5px"&gt; &lt;strong&gt; &lt;a href="http://www.slideshare.net/payashim/6-21-sift" title="第6回 「コンピュータビジョン最先端ガイド」勉強会 2.1 SIFTのアルゴリズム" target="_blank"&gt;第6回 「コンピュータビジョン最先端ガイド」勉強会 2.1 SIFTのアルゴリズム&lt;/a&gt; &lt;/strong&gt; from &lt;strong&gt;&lt;a href="http://www.slideshare.net/payashim" target="_blank"&gt;Masaki Hayashi&lt;/a&gt;&lt;/strong&gt; &lt;/div&gt;&lt;/p&gt;
&lt;iframe src="http://www.slideshare.net/slideshow/embed_code/6668292" width="427" height="356" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC;border-width:1px 1px 0;margin-bottom:5px" allowfullscreen webkitallowfullscreen mozallowfullscreen&gt; &lt;/iframe&gt;

&lt;p&gt;&lt;div style="margin-bottom:5px"&gt; &lt;strong&gt; &lt;a href="http://www.slideshare.net/lawmn/siftsurf" title="画像認識の初歩、SIFT,SURF特徴量" target="_blank"&gt;画像認識の初歩、SIFT,SURF特徴量&lt;/a&gt; &lt;/strong&gt; from &lt;strong&gt;&lt;a href="http://www.slideshare.net/lawmn" target="_blank"&gt;lawmn&lt;/a&gt;&lt;/strong&gt; &lt;/div&gt;&lt;/p&gt;
&lt;p&gt;実装は次のpdfを見れば良い&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.vision.cs.chubu.ac.jp/SIFT/PDF/sift_tutorial.pdf"&gt;http://www.vision.cs.chubu.ac.jp/SIFT/PDF/sift_tutorial.pdf&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.hal.t.u-tokyo.ac.jp/paper/2010/Journal_11.pdf"&gt;http://www.hal.t.u-tokyo.ac.jp/paper/2010/Journal_11.pdf&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description><pubDate>Thu, 16 May 2013 18:45:13 +0919</pubDate><category>OpenCV</category></item><item><title>実践コンピュータビジョン 7-10章</title><link>http://blog.kzfmix.com/entry/1368563398</link><description>&lt;p&gt;6章の画像クラスタリングを含めて7-9章は画像認識を扱っている章になっている。10章はOpenCVを触り程度に紹介。&lt;/p&gt;
&lt;p&gt;7章は画像から記述子を取り出してきて、テキストマイニングするような感じで画像検索を行う。というよりtf-idf法を使っているだけなのでわかりやすい。最終的にCherryPyを使ってWebアプリを作っているが、色々応用が効きそうなヒントが得られた。&lt;/p&gt;
&lt;p&gt;8章は画像認識で、これまた面白い。最初にkNNを使ってSIFT特徴量から手話画像の認識をさせる。でこれの精度を改良するためにいくつかのアルゴリズムを試す。&lt;/p&gt;
&lt;p&gt;最初はベイズ分類+SIFTをPCAで次元削減したものを利用するが精度が改善しない。しかしこの手法の良いところは元のデータを保持しなくていいところ。&lt;/p&gt;
&lt;p&gt;次にSVMを使って精度が改善するという流れ。次元を減らしても精度がそれほど落ちないとか、よくある話に持っていく。&lt;/p&gt;
&lt;p&gt;今時なら、このあとにRandomForestが出てきて云々がはじまるのが定番なんだけど、この本ではそこまでは説明していないので、興味があればRFまでやってみるのがいいかもしれない。&lt;/p&gt;
&lt;p&gt;最後に多クラスSVMとして数独の写真を認識する例がある。3章でやった射影変換を利用して斜めに移った写真でもきちんと正方形になおしてから分類するという内容で興味深かった。&lt;/p&gt;
&lt;p&gt;9章は画像の領域分割で「背景を分離する」みたいな話。最大フローとかそういう話題。最初ベイズ分類器が出てくるのがよく分からなかくて悩んだんだけど、図9.2を見ながらよく考えたら理解した。&lt;/p&gt;
&lt;p&gt;10章はOpenCVの基本なので。興味を持ったら&lt;a href="http://opencv.jp/opencv-2svn/py/"&gt;ドキュメント&lt;/a&gt;を読むか他の本をあたれというところか。&lt;/p&gt;
&lt;p&gt;&lt;p&gt;&lt;div class="awsxom"&gt;
    &lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/4873116074/ref=nosim/kaerutyuuihou-22"&gt;
    &lt;img src="http://ecx.images-amazon.com/images/I/51XkQMgKoQL._SL160_.jpg" align="left" hspace="5" border="0" alt="ProductName" class="image" /&gt;
    &lt;strong&gt;実践 コンピュータビジョン&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
    Jan Erik Solem&lt;br /&gt;
    オライリージャパン / 3150円 ( 2013-03-23 )&lt;br /&gt;
    &lt;br /&gt;
    &lt;br clear="all" /&gt;
    &lt;/div&gt;&lt;/p&gt;&lt;/p&gt;
&lt;h3&gt;まとめ&lt;/h3&gt;
&lt;p&gt;あまり手を動かしてないので、次は章末の演習問題も解きながらやってみるかもしれない。入門機械学習の次に読む本としても面白いかも(Pythonを書けることが前提になるかもしれないが)。&lt;/p&gt;
&lt;p&gt;OpenCVとScipyのドキュメントはひと通り目を通しておく。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://opencv.jp/opencv-2svn/py/"&gt;OpenCV 2.2 Python リファレンス&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://docs.scipy.org/doc/"&gt;Numpy and Scipy Documentation&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;他に気になる本&lt;/p&gt;
&lt;p&gt;&lt;p&gt;&lt;div class="awsxom"&gt;
    &lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/4873114136/ref=nosim/kaerutyuuihou-22"&gt;
    &lt;img src="http://ecx.images-amazon.com/images/I/515yhxgFPDL._SL160_.jpg" align="left" hspace="5" border="0" alt="ProductName" class="image" /&gt;
    &lt;strong&gt;詳解 OpenCV ―コンピュータビジョンライブラリを使った画像処理・認識&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
    Gary Bradski&lt;br /&gt;
    オライリージャパン / 4830円 ( 2009-08-24 )&lt;br /&gt;
    &lt;br /&gt;
    &lt;br clear="all" /&gt;
    &lt;/div&gt;&lt;/p&gt;&lt;/p&gt;
&lt;p&gt;&lt;p&gt;&lt;div class="awsxom"&gt;
    &lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/1449314651/ref=nosim/kaerutyuuihou-22"&gt;
    &lt;img src="http://ecx.images-amazon.com/images/I/51VnxcvjYfL._SL160_.jpg" align="left" hspace="5" border="0" alt="ProductName" class="image" /&gt;
    &lt;strong&gt;Learning Opencv: Computer Vision in C++ With the Opencv Library&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
    Gary Bradski&lt;br /&gt;
    Oreilly &amp; Associates Inc / 6309円 ( 2013-06 )&lt;br /&gt;
    &lt;br /&gt;
    &lt;br clear="all" /&gt;
    &lt;/div&gt;&lt;/p&gt;&lt;/p&gt;
&lt;p&gt;&lt;p&gt;&lt;div class="awsxom"&gt;
    &lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/1849517827/ref=nosim/kaerutyuuihou-22"&gt;
    &lt;img src="http://ecx.images-amazon.com/images/I/51A0hVX0y7L._SL160_.jpg" align="left" hspace="5" border="0" alt="ProductName" class="image" /&gt;
    &lt;strong&gt;Mastering OpenCV With Practical Computer Vision Projects: Step-by-step Tutorials to Solve Common Real-world Computer Vision Problems for Desktop or Mobile, from Augmented Reality and Number Plate Recognition&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
    Daniel Lelis Baggio&lt;br /&gt;
    Packt Publishing / 4752円 ( 2012-11-30 )&lt;br /&gt;
    &lt;br /&gt;
    &lt;br clear="all" /&gt;
    &lt;/div&gt;&lt;/p&gt;&lt;/p&gt;</description><pubDate>Wed, 15 May 2013 19:16:58 +0919</pubDate><category>Python</category><category>OpenCV</category></item><item><title>実践コンピュータビジョン 4-6章</title><link>http://blog.kzfmix.com/entry/1368339669</link><description>&lt;p&gt;面白いのでどんどん読んでいる。&lt;/p&gt;
&lt;p&gt;&lt;p&gt;&lt;div class="awsxom"&gt;
    &lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/4873116074/ref=nosim/kaerutyuuihou-22"&gt;
    &lt;img src="http://ecx.images-amazon.com/images/I/51XkQMgKoQL._SL160_.jpg" align="left" hspace="5" border="0" alt="ProductName" class="image" /&gt;
    &lt;strong&gt;実践 コンピュータビジョン&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
    Jan Erik Solem&lt;br /&gt;
    オライリージャパン / 3150円 ( 2013-03-23 )&lt;br /&gt;
    &lt;br /&gt;
    &lt;br clear="all" /&gt;
    &lt;/div&gt;&lt;/p&gt;&lt;/p&gt;
&lt;p&gt;4章はピンホールカメラモデルを使って拡張現実の基礎っぽいあたりを静止画像に対してやっている。つづいて5章では多視点の幾何に移っていくが、こっちはあまり興味が沸かなかったのでとりあえず読み流した。&lt;/p&gt;
&lt;p&gt;4章はもうちょっとサンプル的に面白いものを選択して欲しかった。よくあるOpenGLのティーポットが乗っかっててもなぁ。あとで自分でいじってみてなんか他のものをあわせてみる。こびとのモデルとかあればいいんだけど。&lt;/p&gt;
&lt;p&gt;6章からは画像のクラスタリングの話に移って、7章で検索、8章が画像認識、9章が領域分割なので6-9がひとまとまりだと思うけど、今日は6章までしか読んでない。K-meansとスペクトラルクラスタリングというオーソドックスな手法。
K-meansはあちこちに分かりやすい説明(&lt;a href="http://tech.nitoyon.com/ja/blog/2009/04/09/kmeans-visualise/"&gt;これとか&lt;/a&gt;)があるけどスペクトラルクラスタリングは本書の説明だけではわかりにくいかもしれないので、きちんと理解したければ「Rで学ぶクラスタ解析」をよめばよい。&lt;/p&gt;
&lt;p&gt;&lt;p&gt;&lt;div class="awsxom"&gt;
    &lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/4274067033/ref=nosim/kaerutyuuihou-22"&gt;
    &lt;img src="http://ecx.images-amazon.com/images/I/51L--ueffmL._SL160_.jpg" align="left" hspace="5" border="0" alt="ProductName" class="image" /&gt;
    &lt;strong&gt;Rで学ぶクラスタ解析&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
    新納 浩幸&lt;br /&gt;
    オーム社 / 3360円 ( 2007-11 )&lt;br /&gt;
    &lt;br /&gt;
    &lt;br clear="all" /&gt;
    &lt;/div&gt;&lt;/p&gt;&lt;/p&gt;
&lt;p&gt;SciPyでK-meansって初めて書いたけど、わかりやすかった。&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="n"&gt;from&lt;/span&gt; &lt;span class="n"&gt;scipy&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;cluster&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;vq&lt;/span&gt; &lt;span class="n"&gt;import&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;
&lt;span class="n"&gt;from&lt;/span&gt; &lt;span class="n"&gt;pylab&lt;/span&gt; &lt;span class="n"&gt;import&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;
&lt;span class="n"&gt;import&lt;/span&gt; &lt;span class="n"&gt;numpy&lt;/span&gt; &lt;span class="n"&gt;as&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;

# サンプルデータを作成
&lt;span class="n"&gt;class1&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; 1&lt;span class="p"&gt;.&lt;/span&gt;5 &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;random&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nb"&gt;randn&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;100&lt;span class="p"&gt;,&lt;/span&gt; 2&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;class2&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;random&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nb"&gt;randn&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;100&lt;span class="p"&gt;,&lt;/span&gt; 2&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;array&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;5&lt;span class="p"&gt;,&lt;/span&gt;5&lt;span class="p"&gt;])&lt;/span&gt;
&lt;span class="n"&gt;features&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;vstack&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="n"&gt;class1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;class2&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
# 分類
&lt;span class="n"&gt;centroids&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;variances&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;kmeans&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;features&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 2&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;code&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;distances&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;vq&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;features&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;centroids&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
# 可視化
&lt;span class="n"&gt;figure&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="n"&gt;ndx&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;where&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;code&lt;/span&gt;&lt;span class="o"&gt;==&lt;/span&gt;0&lt;span class="p"&gt;)[&lt;/span&gt;0&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="n"&gt;plot&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;features&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;ndx&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;0&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="n"&gt;features&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;ndx&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;1&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="s"&gt;&amp;#39;*&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;ndx&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;where&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;code&lt;/span&gt;&lt;span class="o"&gt;==&lt;/span&gt;1&lt;span class="p"&gt;)[&lt;/span&gt;0&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="n"&gt;plot&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;features&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;ndx&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;0&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="n"&gt;features&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;ndx&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;1&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="s"&gt;&amp;#39;r.&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;plot&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;centroids&lt;/span&gt;&lt;span class="p"&gt;[:,&lt;/span&gt;0&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="n"&gt;centroids&lt;/span&gt;&lt;span class="p"&gt;[:,&lt;/span&gt;1&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="s"&gt;&amp;#39;go&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;axis&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;off&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;show&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;出来た図&lt;/p&gt;
&lt;p&gt;&lt;img alt="kmeans" src="http://www.kzfmix.com/images/blog/kmeans_figure.png" /&gt;&lt;/p&gt;</description><pubDate>Sun, 12 May 2013 15:56:21 +0919</pubDate><category>Python</category><category>OpenCV</category></item><item><title>PythonでOpenCVを利用するのは簡単そうだ</title><link>http://blog.kzfmix.com/entry/1368178133</link><description>&lt;p&gt;遅ればせながらDeep Learningアツいぜっていう感情の高まりがアップしたので、画像いじりが再燃した。ちなみに&lt;a href="http://blog.kzfmix.com/tag/glitch"&gt;glitch&lt;/a&gt;とか好きです&lt;/p&gt;
&lt;p&gt;Deep Learningはここらへんを読むと良いです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://research.preferred.jp/2012/11/deep-learning/"&gt;ニューラルネットの逆襲&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.slideshare.net/kazoo04/deep-learning-15097274"&gt;Deep learning&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.slideshare.net/mokemokechicken/pythondeep-learning"&gt;Pythonとdeep learningで手書き文字認識&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://d.hatena.ne.jp/repose/20130508/1368020782"&gt;データマイニングコンペティションサイト Kaggle にも Deep Learning ブームがきてるかと思ったのでまとめる&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;opencvはbrewで入れた。ffmpegを入れておく必要があります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.yasutomo57jp.com/2012/09/19/mac-osx-mountain-lion-%E3%81%AE-homebrew-%E3%81%A7-opencv-%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB/"&gt;Mac OSX (Mountain Lion) の homebrew で OpenCV のインストール&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://ascarpediemstyle.com/?p=282"&gt;Ruby:homebrewでopencvがインストールできない&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;あと上記URLを参考に。&lt;/p&gt;
&lt;h3&gt;PythonからOpenCVを使う&lt;/h3&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;cv2&lt;/span&gt;
&lt;span class="n"&gt;cap&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;cv2&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;VideoCapture&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;ret&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;im&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;cap&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;read&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="n"&gt;cv2&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;imwrite&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;cap.jpg&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;im&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;と書くだけで、MBAのカメラからキャプチャしてcap.jpgという名前で保存します。おもろい。&lt;/p&gt;
&lt;p&gt;&lt;p&gt;&lt;div class="awsxom"&gt;
    &lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/4873116074/ref=nosim/kaerutyuuihou-22"&gt;
    &lt;img src="http://ecx.images-amazon.com/images/I/51XkQMgKoQL._SL160_.jpg" align="left" hspace="5" border="0" alt="ProductName" class="image" /&gt;
    &lt;strong&gt;実践 コンピュータビジョン&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
    Jan Erik Solem&lt;br /&gt;
    オライリージャパン / 3150円 ( 2013-03-23 )&lt;br /&gt;
    &lt;br /&gt;
    &lt;br clear="all" /&gt;
    &lt;/div&gt;&lt;/p&gt;&lt;/p&gt;</description><pubDate>Fri, 10 May 2013 18:40:56 +0919</pubDate><category>Python</category><category>OpenCV</category></item></channel></rss>