Python版OpenCVとフレーム間差分法を用いて、移動物体を検出する方法を紹介します。 2015年07月27日21:29
![Python版OpenCVとフレーム間差分法で動体検出](https://cdn-ak-scissors.b.st-hatena.com/image/square/5f47020a6ccf0af2864ff47d75bff2894f55c6a3/height=288;version=1;width=512/http%3A%2F%2Flivedoor.blogimg.jp%2Fprogr-python2%2Fimgs%2F1%2F5%2F152a2ed8-s.jpg)
概要 OpenCVでは特徴点抽出,特徴記述,特徴点のマッチングついて様々なアルゴリズムが実装されているが,それぞれ共通のインターフェースが用意されている.共通インターフェースを使えば,違うアルゴリズムであっても同じ書き方で使うことができる. 特徴点抽出はFeatureDetectorインターフェース,特徴記述はDescriptorExtractorインターフェース,マッチングはDescriptorMatcherインターフェースである.いずれのインターフェースも,オブジェクト生成時に文字列によってアルゴリズムを指定することができる. 以下に使い方を簡単にまとめる.(OpenCV2.4.7の情報.バージョンが古いと使えないアルゴリズムがあるので注意.OpenCV3.0.0-alphaでの変更点は「OpenCV3.0.0-alphaの特徴抽出・マッチングまとめ - whoopsidaisies'
第19回 yidev(横浜iPhone開発者勉強会)にて、『OpenCV 3.0 on iOS』という発表をさせていただきました。 OpenCV 3.0 on iOS from Shuichi Tsutsumi 概要 OpenCV 3.0 の話、というよりは、最新版の3.0をベースとしつつ、「Core Image や vImage や GPUImage という便利で高速な画像処理ライブラリが存在する昨今においても OpenCV も依然として魅力的ですよ 」というのが発表の主題です。 なぜ今OpenCVか? スライド内では、理由として以下の3つを提示しています。 圧倒的に機能が豊富 この点については、正直なところ Core Image、vImage、GPUImage は目じゃないかと。「2500以上のアルゴリズム・機能」と言われてもピンと来ないと思うので、具体的に「Core Image 等に
SIFTとかSURFでよくあるサンプルをORBで動かしてみました。 ↓ここのやつですね。 http://docs.opencv.org/doc/tutorials/features2d/feature_homography/feature_homography.html 十分な対応点が得られない場合や、ホモグラフィー行列がうまく推定できなかった場合のエラー処理が入っていなかったので追加しています。 #include <opencv2/opencv.hpp> // -------------------------------------------------------------------------- // main(Number of arguments, Argument values) // Description : This is the entry point of t
印刷した紙に書き込み、それをスキャンすると、傾き等の歪みが発生する。この傾き等を補正するのを自動化したい。 今回は、そのために傾き補正用のマーカーを紙の四隅に事前に印刷しておき、スキャン画像に含まれるマーカーを元に傾き補正を行う。 次のような手順による。 与えられた画像内でマーカーを検出する マーカーの重心の座標を調べる 4点の座標と印刷位置から射影変換の変換行列を求め、変換する プログラムは Python 3.5 から OpenCV 3.1.0 を利用した。コードは最後に。 0. 準備 マーカの用意と紙への印刷 マーカ 今回は図の様な同心円状のマーカを利用することにした。これは回転によっても形が変わらず、回転に弱い様なパターンマッチアルゴリズムを用いても上手く検出されるようにとの意図である。マーカは上図右の様に縞の幅が全て同じになるようにした。 マーカの印刷 次の図の様な寸法でA4用紙の
株式会社インデペンデンスシステムズ横浜 システム開発エンジニアの西田五郎が運営しております。Raspberry Pi や Arduino その他新規開発案件のご依頼をお待ちしております。 OpenCVでのORBアルゴリズムによる特徴点抽出とマッチングの処理についての2回目です。前回はVisual Studio Community 2013のVisual C++コンソールアプリでORBによる特徴点抽出の基本的と思われる処理を作成しました。今回はGUIを使ってマッチング処理を試してみました。 処理としては、1枚の画像を最大10枚の画像とORBによる特徴点抽出とマッチングを行い、10枚の中で有効なマッチングの数が多かった画像とのマッチング画像を表示します。 今回テストした内容です。数字の画像(以下は例として2の画像)を用意しました。0から9までの数字で、MS Pゴシックのサイズ250のフォントで
今週は色々とマーカーの向きを検出する方法を実験してましたが、 なかなかうまくいきませんでした。 うまくいかなかった例 ・マーカーの内側を四角ではなく、5角形(SDカードみたいに、4角形の角の一つを切り落としたもの)にしてみた 期待:内側の輪郭点のうち、隣り合う輪郭点との距離を計算し、2点間の距離が最短になれば、その2点が切り落とされた角になるはず。 結果:角の落とし方が足りない場合、カメラとの距離があると4角形と認識されてしまった。また、角を落としすぎた場合は2点間の距離がほかの4辺と似たような値になってしまい、安定しなかった。 ・5角形を再び利用。 期待:輪郭点間の距離ではなく、2組の輪郭点が成す直線が並行であれば、その輪郭点が基準点となるはず。(図形の赤い線) 結果:これも上記と同じく、誤判定が多く失敗。 いいマーカーの形は無いかな~とマーカー検出のネタを探してみると、 四角か丸のマー
ご注意:本記事は、@IT/Deep Insider編集部(デジタルアドバンテージ社)が「www.buildinsider.net」というサイトから、内容を改変することなく、そのまま「@IT」へと転載したものです。このため用字用語の統一ルールなどは@ITのそれとは一致しません。あらかじめご了承ください。 1. OpenCV 1.1 OpenCVとは OpenCV(正式名称: Open Source Computer Vision Library)は、オープンソースのコンピューター・ビジョン・ライブラリです。コンピューターで画像や動画を処理するのに必要な、さまざま機能が実装されており、BSDライセンスで配布されていることから学術用途だけでなく商用目的でも利用できます。加えて、マルチプラットフォーム対応されているため、幅広い場面で利用されていることが特徴です。 OpenCVは、Intelで開発さ
超大ヒットした『漫画カメラ』、ほんとに漫画っぽくなって、動作も軽快、シェアも簡単で楽しいですよね。 ただ、ちらほらと「同じこと考えてた」「そういうの作ってた」という声を聞くことがあります。実際に同様のコンセプトのアプリもたくさん出ています。 実は、カヤックでも、2年ほど前、Instagramが出てきた頃に"Comicgram"という企画が出たことがあって、ちょっとだけモックアプリをつくったことがありました。 そのときつくったモックアプリで自動で写真加工した結果がこちら 『漫画カメラ』ほど漫画っぽくないかもしれませんが、それっぽいといえばそれっぽいです。 実は、このモックアプリはOpenCVにもともと備わっている機能を組み合わせただけなので、結構サックリ実現できます。 以下でその6ステップの処理内容について紹介させていただきます。 ステップ1:領域分割 『画像ピラミッドを用いた画像の領域分割
前回、形状マッチングで文字認識をさせようとして見事に失敗した。 しょうがないので、偉大な誰かが作った文字認識エンジンをありがたく使わせていただく事に。 そんなこんなで本日作ったガラクタは、以下のようなカメラ映像から、赤枠内の文字を認識してくれるというシロモノだよ。 こんなふうに認識してくれる。 これを作るためにいろいろ探していたら、Tesseract-OCR という文字認識エンジンを見つけたので、さっそくダウンロード。 Windows 環境なら、tesseract-ocr-setup-3.00.exe あたりを落とせば幸せになれると思う。 これを、C:\Program Files\Tesseract-OCR というフォルダにインストール。 使い方は、認識させたい画像を tiff 形式(たとえば tmp.tiff )で保存して、コマンドラインに tesseract.exe tmp.tiff
さて、導入2日目です。 英語はいいけど、とりあえず以前のプロジェクトを移してみます。 (スクリーンショットはすべてが終わってからとってるので最初の状態とは異なります。) ずいぶん操作画面変わったなーというのが正直な感想ですが。 何かiTunesライクになってます。 このプロジェクトはOpenCVを使ったもので 以前どうにかしてOpenCVのFrameworkを作っていれていたのですが、 デフォルト状態だとリンクが上手くいかないみたいで動かない。 いろいろやってみたらOpenCVのライブラリを上手く読み込んでくれないみたい。 ちなみにCで書いてあります。 どうやらAppleはどうしてもObjective-CでやってほしいらしくCには冷たいようですw 気を取り直してまだ残ってたXcode3で開いたらちゃんとできました。 Xcode4ではビルドディレクトリとかいろいろと以前のバージョンと違うとこ
iPhoneでopencvを動かしたいと言う事で、調べてみると色々と情報が出てくるんですが、それでもハマったのでメモ書きです。先日作成したヒストグラム表示サンプルをiPhoneのシミュレータと実機で動かしてみました。 iphoneでopenCV 参考ページ iPhoneでOpenCVを使う方法 手順 基本的には参考ページ様様で書かれている通りなのですが、行う手順は以下のようになります。 iPhone用のライブラリを作成 Xcodeに外部ライブラリの設定 プログラム作成 1. iPhone用のライブラリを作成 シミュレータ用(x86)と実機用(arm)にそれぞれライブラリをコンパイルします。参考ページの「OpenCVのライブラリをソースからビルドする」の節の手順を行って下さい。面倒な場合は先ほどのページでダウンロードできるサンプルの中からコピーしても良いと思います。 2. Xcodeに外部ラ
以前も同じ内容を書いたのですが、OpenCVの開発は大変活発で最新版を使おうと思ったら色々つまずいたので再度エントリを書いておきます。前回はniwさんのエントリをなぞっただけだったので、今回は自力でライブラリのビルドをしました。手元の環境はSnowLeopard + iOS4.2 + OpenCVのリポジトリヘッド(2.2以降)です。 まずOpenCVは正式にiOSをサポートしていません。(androidはしてるんですが。)iOS環境では一部の機能を使えないため、使える部分を切り出してビルドするというのがiPhoneでOpenCVを使うということです。使える部分を切り出してビルドをする為のスクリプトがniwさんの記事などで紹介されているのですが、構成が変わる度に他の人に頼るのはどうかという事で自力でビルドしてみようと思いました。 ライブラリの生成手順は以下になります。 CMakeを使ってX
OpenCV (Open Source Computer Vision) is a library of programming functions for real time computer vision. This library has a huge number of algorithms.OpenCV supports Windows and Linux platforms (and Android starting from 2.2 version). But, unfortunately, there is no official iOS platform support for this moment. In this post i will show you that can build OpenCV for this platform and run it on yo
My first post in this blog was about building OpenCV for iOS devices (iPhone, iPad, iPod and so on). But the build process that i used is not trivial at all. I received a lot of feedbacks and questions about building OpenCV, setting up XCode build environment. Today i made your life much easier. I have a gift - a build script, which will build OpenCV library for your iPhone, iPad, iPod or any othe
http://sourceforge.net/projects/opencvlibrary/ のsubversionリポジトリに、右目・左目・両目・鼻・口にマッチするhaarcascade.xmlがある 持ってくる mkdir ~/tmp cd ~/tmp svn co https://opencvlibrary.svn.sourceforge.net/svnroot/opencvlibrary opencvlibrary 発見した。ぜんぶコピーしておこう mkdir ~/haarcascades cp ~/tmp/opencv-svn/opencvlibrary/trunk/opencv/data/haarcascades/haar*.xml ~/haarcascades 画像を集める mkdir ~/Pictures/faces mkdir ~/Pictures/faces/resul
基本的には以前の日記にも書いたniwa氏のサイトを参考にした。 http://niw.at/articles/2009/03/14/using-opencv-on-iphone/ja しかし、ここだけでは自分の設定が悪いのか、環境が悪いのかどうにもこうにも 動かないことがあったので、メモ代わりにいくつか書いておく。 (間違いがれば、随時訂正します。) 4.OpenCVにiOS SDK 4.xでビルドできるようにパッチを当ててください % cd OpenCV-2.1.0 % patch -p1 < ../OpenCV-2.1.0.patch とありますが、OpenCV-2.1.0.patchはniwa氏のサンプルをgitからダウンロードするとそのディレクトリ内にあるので、それを自分の作業ディレクトリ内にコピー。 5.6. 実機向け、シミュレータむけのビルド〜% ../opencv_cmak
http://d.hatena.ne.jp/pirosikick/20100116/1263660823:前回の手順ではやはり失敗していたみたいなのでやり直しますwww 今回参考にしたドキュメントは以下です。 http://www.vogue.is.uec.ac.jp/~den/OpenCVForMac.txt 日本語でわかりやすい上にサンプルコードの実行まで書いてます。 1.Finkで必要なパッケージをインストール OpenCVインストールには以下のパッケージが必要なようです。 pkgconfig libjpeg giflib libpng3 libtiff gtk+2-dev glib2-dev atk1 下の3つはなぜかインストール出来なかった(というかダウンロードに失敗していた感じ。なんども別のミラーを参照しようとしてたし。。。) 2.ソースのダウンロード ↓ソースの場所 http
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く