kivantium活動日記

プログラムを使っていろいろやります

OpenCV

OpenCVでの物体検出器作成

OpenCVのオブジェクト検出器作成方法についての解説です。 学習データの作成 まず最初にオブジェクト検出器の学習に使う教師データを用意する必要があります。そのためにまずGUIでオブジェクトの位置を指定するGUIツールを作りました。 PythonのOpenCVを使い…

ヘスティアの紐の追っかけ

彗星のようにアニメ界に現れて話題をさらって行った「ダンジョンに出会いを求めるのは間違っているだろうか」の登場人物へスティアが結んでいる「謎の紐」。Pixivでも大流行になっているようです。【謎の紐に悩殺されそう!】ヘスティア特集www.pixiv.net乗…

OpenCVとdlibを連携した顔検出プログラム

dlibという画像処理や機械学習などの機能を持つC++ライブラリがあります。dlibに付属している顔検出ライブラリはOpenCVのものより精度が良いということだったので試してみました。 インストール いつものように環境はUbuntu 14.04です。既にOpenCVとCMakeが…

OpenCVでRaspberry Piから画像を転送する

Raspberry Piに接続したWebカメラからOpenCVを使ってインターネット経由で画像を転送する方法を紹介します。OpenCVが動く環境であればRaspberry Pi以外でも動作します。 準備 RaspbianをインストールしたRaspberry Pi上で sudo apt-get install libopencv-de…

ご注文はDeep Learningですか?

先日Deep Learningでラブライブ!キャラを識別するという記事が話題になっていました。この記事で紹介されている SIG2D 2014を知り合いから貸してもらったので参考にしながら、ご注文は機械学習ですか?のDeep Learning版を作ってみました。 Caffeなど必要な…

k-meansを用いた画像の色クラスタリング

ご注文は機械学習ですか?を改良するべくDeep Learningなどに手を出しているわけですが、Deep Learningを行うためには大量の学習データが必要になります。学習データを一から手動で分類するのも馬鹿らしいので、今出来ている部分を使ってある程度自動化した…

エンゼル体操の切り抜き

みんな大好きSHIROBAKOの16話に非常に印象的な体操を踊るシーンがありました。中毒動画を眺めているうちに背景が固定しているなら絵麻ちゃんだけ切り出せるのではないかとふと思ったので、やってみました。 背景抽出その1 背景と違う部分を切り出す処理は画…

結城友奈はサンタである

一、前書きはきちんと 2014年も終わりに近づき冬シーズンのアニメも佳境を迎えるなか、いよいよクリスマスがやってきます。絶望的な戦いに臨む讃州中学勇者部のみなさんにもクリスマス気分を味わってもらいたいですね。というわけで、勇者部のみなさんにサン…

今日も一日がんばるぞい!(失敗作)

今日画像補完技術による衣服の除去 - ぱろすけ's websiteが話題になっていたので論文を読んだところ、Poisson Image Editingという技術がかなりすごそうだと知りました。検索をかけると100行で書く画像処理最先端 勾配ベースの画像編集:Poisson Image Editin…

ご注文は機械学習ですか?

先日書いたOpenCVでアニメ顔検出をやってみた - kivantium活動日記の続編です。アニメ顔を検出するところまではうまくいったので、今度はキャラの分類をやってみようと思います。環境はUbuntu 14.10です。 ひと目で、尋常でない検出器だと見抜いたよ まずは…

OpenCVでアニメ顔検出をやってみた

やったこと 顔などの特定の物体がどこにあるかを認識するときにはカスケード分類器というものをつかいます(物体検出 — opencv v2.1 documentation)。ここではOpenCVによるアニメ顔検出ならlbpcascade_animeface.xmlで公開されているアニメ顔検出器を使って…

OpenCVで特定色領域の抽出

注意!!この記事の情報は古いです!新しいものは別記事(後で貼る)を参照してください!以前にも同じようなことをやりましたが(Kinectで青いボールの位置認識 - kivantium活動日記)、「IplImageが許されるのは小学生までだよねー」ということでC++っぽく…

OpenCVでWebカメラのストリーミング

OpenCVでWebカメラの映像をネットワーク越しに送受信するプログラムを書いてみました。 環境は送受信ともUbuntuです。 送信側プログラム キャプチャ画像をjpg圧縮してUDPで送っています #include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> #include <iostream> #include <vector> #include <sys/types.h> #include <sys/socket.h> #inclu</sys/socket.h></sys/types.h></vector></iostream></opencv2/highgui/highgui.hpp></opencv2/core/core.hpp>…

Kinectで青いボールの位置認識

大阪大学井村さんのラベリングクラスを使いました。 #include <iostream> #include <opencv2/opencv.hpp> #include <cstdio> #include "Labeling.h" using namespace cv; using namespace std; int num; int main(){ try { VideoCapture capture(0); Mat RGBMap,Cloud,valid; IplImage ipl_RGB; Ipl</cstdio></opencv2/opencv.hpp></iostream>…

OpenCV2.3でkinect (Ubuntu11.04)

OpenCVというライブラリを使うと簡単に画像処理が出来るそうなので調べてみたら、kinectをサポートしていることが分かったので、早速インストールしてみました。Windowsでやっている人が多くて情報を見つけるのに苦労しましたが、英語版のチュートリアルを見…