「OpenCV」を含む日記 RSS

はてなキーワード: OpenCVとは

2017-03-02

何も知らないくせに全てを理解してるように語る奴が嫌い

シンギュラリティが~」とか「自動運転が~」とか

聞いてみると、どうせバックプロパゲーションHOGも知らない。

sshを使ったことも無ければOpenCVという言葉すら知らない。

そんな奴の鼻をへし折るために知識を蓄えてる。

2016-08-07

ディープラーニングAV女優類似画像検索サイトをつくった

Babelink

http://www.babelink.net/

作った動機は、そっくりNAVIをつくった人と似ていて技術勉強のためと今ある類似検索サイトへの不満からです。

そっくりNAVI - 気になる子顔写真で、似てるAV検索できるサイトを作った

http://anond.hatelabo.jp/20160719033025#tb

... 素人からも探せるのは素晴らしいと思います

ディープラーニング最近流行りの技術で、一般的物体認識では人間匹敵するか

もしくは超えるぐらい画像認識の精度がいい手法です。

今回は自分が持っている画像有名人に似ているAV女優を探すという

極めて実用的な問題にその手法を試したいと思い、サイトをつくってみました。

使った主要なライブラリを紹介しておきます

■使ったライブラリなど

python (プログラミング言語)

PostgreSQL (データベース)

・flask (Web構築)

opencv (画像認識)

・dlib (顔検出)

chainer (ディープラーニング)

・FlexSlider (画像スライダー)

・Awesomplete (入力補完)

ぼくは一応エンジニアのはしくれですが、pythonとか仕事でちゃんと使ったことなレベルです。

それでも3~4ヶ月程度である程度のサイトはつくれるので、みなさんも是非つくってみてください。

課題

ディープラーニングでは非常に多くの画像機械学習させる必要があるのですが、

現状では学習のための画像がまだまだ足りていないので、あまりいい精度はでていません。

あとはディープラーニングで精度を高めるには、ハイスペックGPUマシン必要になるのですが、

そんなもの持っていないので精度をこれ以上あげるのは難しかったです。

そんなかんじで、まだまだ改良の余地はたくさんあるので、楽しみにしていてください。

■参考にしたサイト

完全に一致

http://anond.hatelabo.jp/20101203150748

京大画像処理を学んだ僕が本気でエロWEBサービス作ったった

http://anond.hatelabo.jp/20130122180847

UIは一応Netflixを参考にしてます


画像収集サーバー容量の問題もあり、していないので画像検索を気軽に試してみてください。

Babelink

http://www.babelink.net/

2016-01-13

http://anond.hatelabo.jp/20160113100713

医学生だけど、

python+caffe+deepdream+OpenCVで顔だけ化け物に変換するカメラつくったったw とか

python+OpenCV+二光子顕微鏡MATLABで神経活動と身体運動を同事にモニタリングする! とか

・tensorflowを使って検査結果の分析から新しい癌のマーカー的状態発見する! とか

いってるやつがまわりにもいるから、

そういう人を後押しする仕組みをつくってあげて。


成績が良い→医学部に行くという風潮は確かに改善すべきとは思うけどさ。

2015-02-10

http://anond.hatelabo.jp/20150210164113

条件に該当するサイトリストアップいただきありがとうございます

https://jjyap.wordpress.com/2014/05/24/installing-opencv-2-4-9-on-mac-osx-with-python-support/

OpenCVの導入解説として、初めてこの操作をする人に向けて丁寧に説明されているのは素晴らしい。初めて取り組む人に向けては、ここまで噛み砕くと不安感を払拭できてよさそう。ただし、慣れている、またはOpenCVを実際に使って云々と解説する場合は、コマンドの例は飛ばす方がすっきりしそう。

http://kometchtech.blog.fc2.com/blog-entry-1173.html

からないことはわからないと書くのは、賛成。Qiitaのような知見をさくっとまとめるサイトなら、これくらいがいいかも。

問題が起きたときに、わからないと一旦置かれていた部分を追いかける必要があるフラグも立ちやすい。

苦しんで覚えるC言語

http://9cguide.appspot.com/ にもアップされているものと同じ?もしそうだとしたら、解説→ドリル→解説…と、学習参考書に近いものを求められているのかと理解している。

自分自身が持つ技術水準や、求められる情報(導入, 応用, ケーススタディサイズ)によって、読んでもらったとき理解してもらいやすものは違うことを、別の観点から知ることができてGoodでした。

---

さて、自分自身が先に示された6つの条件を満たしていると考えているブログはこんな所。

上記2つはいずれも読者に「ある程度」の知識があることを要求している。その上で、運用している上で遭遇する問題…それもドキュメントにない情報…を、後で同じ問題に遭遇した人が問題解決を再現できる水準で記録されていることに感服する。

ただ最近はまず公式マニュアルを見に行って、よくわからなければググって傍系のStackOverflow(一番これが多いです)・英語圏ブログ・解説サイトに行く、エラーが出たら--debugしてみてよくわからなかったらエラーググるなどの使い方をしているので、あまり日本ブログにぶち当たることは無いです。

これは同感。公式マニュアルを見たら解決する問題が多いし、公式マニュアルで嘘をつかれる可能性は比較的低い。

---

技術ブログを書いている人間として、嬉しいなと思うのはこんな順番。

  1. 拡散してくれること
  2. 拡散する際に何がポイント一言書いてくれること
  3. ブクマしてくれること
  4. 内容に問題があればコメント編集リクエストを通じて記事を鍛えられること

で、何より嬉しいのは、なんてことはない話だが…

である

多分、自分に役立っていれば、同じ境遇に接した他の人の役にも立ってるはず。そう考えて書いている。

2015-01-27

OpenCVみたいなので音声データの特徴抽出と化するライブラリ無いの?

声優のボイスから特徴量を抽出してハッシュ化とかしたい。

ゆくゆくは入力された音声からどの声優が発したボイスなのかを判別するシステムとか作りたい。

2015-01-16

http://anond.hatelabo.jp/20150116183741

ラズパイ+pythonってのは鉄板(というか公式オススメしている)組み合わせなわけですが。

PHPでGPIO弄れるライブラリ配布してんならそっち使うよ。まあOpenCVが使えないけど…

http://anond.hatelabo.jp/20150116175549

OpenCVの次期バージョンではPython3に対応するそうだよ。

http://opencv.org/opencv-3-0-alpha.html

いまの最新はbetaだけど試したら?

http://anond.hatelabo.jp/20150116175114

そうだよ。漏れpython3を覚えに掛かってるのに、そのpython3にOpenCVが無いんだ。

OpenCVを覚えるのにpython2を覚えなきゃいけないって本末転倒で、DIOからしてみれば無駄無駄無駄無駄なわけよ。2020年で無くなる技術なのに、だよ。

そういう謎コストを強いているのがpythonなら、それは普及しづらいってことなんじゃねーのってのを愚痴ってるんだ。

http://anond.hatelabo.jp/20150116174714

今選定段階なんじゃあないの?

Python2とOpenCVシステムが現にあって、3に移行できないのを愚痴ってるってこと?

http://anond.hatelabo.jp/20150116173108

発注を受ける側に立ってもそうだろ。

2020年で無くなる技術を使用したソフトウェア開発」の依頼を受けても経験にならんしデメリットばっかでいやだろ。

マイグレーションを込みで発注貰えるなら別にいいんだろうけど、OpenCVとかを見積もるのはきついぞ)

ってか、サポート期限までの折り返しに立ってこれってことは、pythonって実は学ぶべき言語じゃないってことなんじゃねーの?

なんでみんなpython3に移行せえへんのや…

http://anond.hatelabo.jp/20150116170931

増田は俺の言ってること分かるか?

CPUなんて設計すりゃいいじゃん」

「形が合わないならアダプタとか使えばいいじゃん」

って話じゃない。

パーツとしての「python2+openCVライブラリ」の話なんだよ。

ソフトは書けないないし書かない前提やで。

バージョンが変わってただのすげ替えで済むならともかく、「オーバーホールしてエンジンルームごととっかえ」なんかの手間を必要とするなら、それを見込んでプロダクトにしなきゃいけねーの。

一度書いた設計書をもう一回見直して設計し直す工数は、増田が思うより甚大で「そんなことしたくねー」んだよ。

重要なのは画像ソースだったりその結果で駆動する何かの方であって、ソフトウェアとして書き直す可能性があるとしたらそっちだけ。

何が嬉しくてネジから設計し直すんだよ。Appleでもなきゃそんなことしねーよ。

http://anond.hatelabo.jp/20150116170414

から「無くなる技術」の「技術」ってなに?ってこと言ってるんだけど…

技術別になくなんねーだろ。pythonで動かなくなったら別の言語実装すりゃいいじゃん。

プログラマの言う「技術」という言葉が軽すぎて反吐が出るんだよ。

その癖「技術」に異常にプライド持って偉そうにしてるのが意味不明すぎる。

つうかそもそもopencvC++ベースpythonは単なるバインディングなんだが、

バインディングを「技術」とか言って偉そうにしてんの?って話。C++でやればいいじゃん。

スパイとか使うのにpythonなんてクソ遅い言語で何すんの?って話だし。

http://anond.hatelabo.jp/20150116164437

・つまりpython画像処理とかやろうとするのは時代遅れ。程なくしてその技術は使えなくなる。

「その技術は使えなくなる」ってどういうことなの?

対応になったところは自前で実装すればいいじゃん。

opencvのあらゆる機能を全部使うことなんてどう考えてもやらないだろ。

プログラマ的な連中の言う「技術」の定義がいつもわからん

APIの使い方とかを「技術」と言ってんの?そんなもん技術じゃなくね??

http://anond.hatelabo.jp/20150116154540

python3って調べたら2008年リリースなんだってな。で、openCV2.0が出たのは2009年。…なんかおかしいぞ。

ここから考えられることとして、

openCV全然流行ってない。

python3は全然流行ってない。

python2は開発が終了しており、python3に移行するしか道は無いのだがみんなそれをやってない

・つまりpython画像処理とかやろうとするのは時代遅れ。程なくしてその技術は使えなくなる。

ってこと臭いけど…どうなんだ。画像処理系の最前線って一体どこなんだ…

なんでpython3でopenCV使えねえんだよ

わからん。python3ってメジャーでこなれてるバージョンなんじゃねえの?

なのになぜ未だに使えないライブラリとかモジュールかばっかなんだ。

2014-10-21

コンピュータビジョンのススメ

大学卒業後にニートになってから半年コンピュータビジョン勉強したのでそれについて書いていきます

コンピュータビジョンと言っても主に学んだのは顔認識なのでその方面で書いていきます

コンピュータビジョンとは

Wikipediaによるとコンピュータビジョンとは次のとおりです。

コンピュータビジョンcomputer vision)は大雑把に言って、「ロボットの目」を作る研究分野である

主な分野にはAR拡張現実)やら顔認識やらがあります

認識の具体例としては、デジタルカメラ写真を撮るときに顔周辺に表示されるあの四角形などが挙げられます

OpenCV

OpenCVコンピュータビジョン向けのライブラリです。

このライブラリを使うことで画像ロードセーブ、処理などを簡単に行えます

OpenCVコンピュータビジョン勉強していく上で必須なので、まずは簡単に遊んで見ることをお勧めします。

特にやりたいことがない人は次の「画像処理」をOpenCVで書いてみると良いと思います

それからWindowsVisualStudioに導入するのは結構面倒なので、できればLinuxで使う方が良いでしょう。

画像処理

コンピュータビジョンではよくカラー画像グレースケール画像に変換したりします。

このような画像処理OpenCVで簡単に出来ますが、中でどう動いているかを知るのは大切です。

そういう勉強おすすめなのが「図解入門よくわかる最新 画像処理アルゴリズムの基本と仕組み」です。

図解入門なので画像処理についてわかりやすく書かれています

コンピュータビジョン

僕は顔認識を主に勉強しましたが、他にどういうことができるかを知るには「実践 コンピュータビジョン」がおすすめです。

この本では画像処理画像認識ARなどを学べます

ただ、この本は難しいのでまずは流し読み程度で、必要が出てきたら詳しく読むくらいが丁度いい感じがします。

具体的には1・2・3章で基礎を学んで、後は好きなところを読むというのがいいかと思います

ちなみに、この本ではpythonを使っているという事もあり僕は途中で挫折しました。(python使いでは無いので...)

機械学習

コンピュータビジョン機械学習は密接な関係があります

顔の検出にVJ法と呼ばれる方法がよく使われますが、それにはAdaBoostという機械学習アルゴリズムを使います

そのため機械学習について学んでおくことも重要です。

(と言ってもVJ法の中身を知らなくてもOpenCVでは簡単に実行できます。)

そこでお勧めなのは以下の2冊です。

集合知プログラミング

入門パターン認識機械学習

集合知プログラミング」では機械学習手法をより実践的に学んでいくので、サラっと読むだけで何ができるかが解ると思います

一方で「入門パターン認識機械学習」は理論的なことが書かれています。そのためこの本は必要が出てきたら、必要な箇所だけ読むというのがおすすめな読み方です。

それと藤吉先生のページお勧めです。

このサイトでは無料機械学習や物体認識資料を読むことができます

認識

具体的に顔認識をどうやって実装するのかを知るには「Mastering OpenCV With Practical Computer Vision Projects」の6章と8章がお勧めです。

この本には顔認識の他にARや物体認識などの実装方法についても書かれています

英語ですが読みやすいので、顔認識技術実装していくにはうってつけの本です。

論文

最新の技術を学ぶには論文が一番です。

僕の場合はいくつか読みましたが、顔の特徴点検出や顔認識では以下の論文お勧めです。

(僕はDeepFaceをちゃんと読んでいませんが有名なので挙げときます。)

One Millisecond Face Alignment with an Ensemble of Regression Trees

Fisher Vector Faces in the Wild

DeepFace: Closing the Gap to Human-Level Performance in Face Verification

具体的なサービス

最後ちょっと宣伝を。

上で挙げた本を読む前に、コンピュータビジョン技術を使うと実際にどんな感じのサービスが作れるのかを知っておくと本を読んでもより理解が深まると思います

そこで具体的なサービスとして僕が作ったものを挙げていきます

ユーザが少ないので使ってくださいお願いします。

人相診断

類似AV女優検索 雰囲気サーチ

「人相診断」はAndroid向けのアプリです。

このアプリでは「One Millisecond Face Alignment with an Ensemble of Regression Trees」の方法を使って顔の特徴点を検出します。

その特徴点から眉の角度などを判断して診断結果を表示します。

「類似AV女優検索 雰囲気サーチ」は好きなAV女優に顔や雰囲気が似ているAV女優ピックアップします。

このサービスでは「Fisher Vector Faces in the Wild」の方法を使って顔の類似度を計算しています

女優のページでは、その人と類似度が高い人3人を似てる人として挙げています

正直結果としては微妙な感じがあるので、似てなくもないような気がしなくもないなぁぐらいで見てください。

(実は同じ人の写真でも類似度が大きく変わるので、本当に似ている人を決定するのは難しいんです。)

ちなみにこのサービスは「完全に一致」や「おまいらの夢」、ぱろすけさんの影響を受けています

最後

こんな感じでコンピュータビジョン(顔認識)を勉強したい人は何を学んでいけばいいのかはわかったんじゃないかと思います

コンピュータビジョンはこれからより重要になっていく分野だと思うので、暇な人は勉強しておくのもいいんじゃないかと思います

2014-02-06

SIerって終わってんな

海外出張の後の振り休で暇なので書いてみよう


http://getlife.hateblo.jp/entry/2014/02/06/030300

こういう無知おっさんが居るから日本IT業には魅力がないのだよなぁ、という印象




自分プログラマというよりは、どちらかというと研究で飯を食ってる非SIエンジニア

このブログの著者のおっさんが言うところの、プラスアルファは手に入れてる側ではあるんでしょう

普通プログラマであることでは、差別化が出来ないと考えたからこそ様々な挑戦を繰り返し

生き残るために研究開発というポジションについた

外資でも働いたし、海外でも勤務経験がある

分析役(SEアプリケーションエンジニア、業務エンジニアシステムアーキテクトなど)

業務分析システム分析を行い、「何を作るべきか」を明確にするための分析役を担います

実装役(コーダーテスターなど)

実際に動くアプリケーションプログラミング品質評価を行う実装役を担います

この2つを分断している辺りが、もう絶望的にダメ




基本的には、実装スキルのない人間設計などはものの役に立たない、という所は同意して貰えるだろうけど

逆に、コーディング以外の技術、例えば無知おっさんが例にだしてるデータサイエンティストであれば

統計だの機械学習の学術的な知識、体系だって勉強してきた数学力がなければ、まともな設計はできない。

アルゴリズムがどんな計算をしていて、どの程度の計算量を要求し、どの程度の資源を求めるか、誤差はどうか、

負荷はスケールアウト出来るのか、他にいい手法存在しないか、といった知識は一朝一夕には手に入らない

実際のコードイメージしながら、各モジュール群を適切に設計運用するには、どちらかでは不足がある


まりコーディングスキルを含めた言語などの道具への理解と、それを使った技術力、そして経験は不可分のもの

揃ってやっと1人前の”プログラマ”と呼べる。そういう人間からこそ、高給取りになれる。

プログラマコーダという認識は、プログラマという職業技術を軽視しすぎている人間に見られる

結局のところ、プログラムを書く人(=コーダ)ではなく、プログラムを使ってビジネスが出来る人(≠コーダ)が生き残るって面では日米大差ありません。

ちっちゃい商売で食えてることがこの人の自慢なんだろうけど、これこそが日本Sierゴミな理由だ

世の中にどんな技術があり、どんな研究が進んでいて、何が出来て、何が出来ていないのか?

それを知らない人間が良くこういうことを言う、顧客ニーズを汲み取れるだけでビジネス(笑)が生まれるとかないでしょ



例をあげると、海外ではCADソフト研究開発は盛んだけど、もう国内では殆ど生き残ってない。

国内には世界的な自動車メーカーがあれほどあるにも関わらず、CADソフト国内には著名なソフトがない

こういう例には枚挙にいとまがない。日本ゲーム企業世界的だがそこで使われている、ツールやらレンダラは海外製だし

SIerお得意のビジネス(笑)を生み出す、クラウド分散コンピューティング関係でも、OpenMPIなど海外製だ

GitMercurial海外で生まれているし、OpenCVを初めとした画像認識ソフトやその技術海外で生まれている

カメラによる画像認識で車や人を判断してブレーキする車は日本で作られるが、その根幹を為すアルゴリズム

海外研究者やらエンジニアが作っている訳だ。広大の栗田先生など一部例外はあるけれど。

それぞれ、SIerが言うビジネス(笑)なんか比較にならないほどの市場規模を持っているのに、それらを無視してビジネスとはなんだろうか?w

電機・機械系では、研究開発が盛んで、技術と儲けることは不可分なのに、IT業界だけはどういうわけか

ビジネスとは技術を何一つしらない無知おっさんが作るものであるらしい

本物のプログラマにとっては、全く魅力がない、そんな業界な訳だ


お客からしたら技術の中身なんかぶっちゃけどうでもいいんです。JAVA で書こうが、Cで書こうが、COBOLで書こうが、そこに価値本質はないから

もちろん、手段は多ければ多いほどいい。そういった意味でのコーディング技術有用です。

ただし、あくまでも手段は手段。価値を生み出すという目的には別の考えが必要です。

無知おっさん無能さを再掲してやろう

道具というのは、それを適切に選択して使ってこそ価値がある。

フランスではOCAMLが普及しているが、なぜだか考えたことがあるか?

関数型言語は、どういう場面で威力を発揮するか?

Javaにできて、C#で出来ないこと、その逆は何か、

何を選択すればコストが抑えられるかをすら考えたことすらない

それをこれ程証明する言葉も無い

言語なんかなんでも一緒?w 

なるほど、鋸でなくともノミでも木は切れるだろうなw

切断面の美しさやかかった時間などは客には関係ない、切れてさえいればいいかw



こういう人間が作るビジネス(笑)とやらに先はあるだろうか?

お客にとっては技術などは確かにどうでもいい、しかし、それを上回る製品がないという前提だ

どうやって世界と伍して戦う?

どうやって他の製品を上回る?

微々たる使い勝手の差などは、技術力の差の前では圧倒的に無力だということは

データベースオラクルだのSQL依存し、製品ではSAPなどに完敗を喫し続けているSIerこそ理解すべきだろう



本当にビジネスを作る、というのが、技術と不可分なのは言うまでもない。

もちろん、その技術にはコーディングスキルも含まれている、という当たり前の話です。

id:hiroyuki1983

製品を生み出して売ってる会社SIerじゃ全然違うでしょ。どっちが上とか言う話ではなくて

オッサン論法でいけば、SIerサービスとして提供するものと、同一の機能を持った製品との間の明確な区分など

客には存在しない。どっちのほうが凄くて安いか、だ。

そんで、もう、そういう勝負に負けまくってるのがSIer技術で勝てないから安さで勝負するために

オフショア必死になったり、ブラック企業化してプログラマを潰しては、ますます技術力とサヨナラしていってるね

http://anond.hatelabo.jp/20140206172641

普通は「IT系」って企業の一部門だし実際日本でも自動車メーカーやら電機メーカーやらゲーム会社やら内部でプログラマー雇用して国際的な成果も上げてる企業なんていくらでもあるんですよね。

最近だとニュースサイトとか電子書籍とかの関係出版系みたいな文系会社プログラマ求人普通に出してます

なのに日本IT系というとまずSIerが思い浮かんで、そこが糞だから日本ITダメと。

全くだな。

技術力をもった企業エンジニアがフィーチャーされるべきなんだが、例えばゲーム屋だと

プロデューサーだのディレクターだのが表に出て学生のあこがれの対象になるし、

他もプロマネが表に出てくる事が多いので、文系職の比重の高さが問題なんでは・・・みたいな方向になるよな

大手でもホンダソニー日立など、研究部門が成果を上げている、中規模でもデンソーとか良い企業もあるし

小さい会社だと、先日googleに買われたシャフトとか、CADラティスとか、モーションポートレイトなど、固有技術で食ってる会社もある

しかし、そういった会社への就職は一般には要求水準が高くて難しい、

東大情報理工なんかを出たエリートでなくても、もっと裾野の方の楽に入れる企業でも技術が重視される風潮を作ることが大事

2014-01-07

いぬいをNUINUIしたい。

つっついたり、つまんだり、つかんだり。



いぬいは、ゲーム艦これに出てくる氷雪型人格女の子のことで、

NUIとはNatual User Interfaceの略、"自然な"操作コミュニケートを指す言葉

キネクトとか、リープモーションとか、そんなの。

まぁ、つまり、ぬいぬいをNUINUIしたいとはそういうこと。男の夢。



今朝、CES2014という技術カンファレンス

インテルがRealSenseを発表したという記事を読んで

久々に目にしたNUIという説明に、

冒頭の言葉を思いついてしまった。



世界の誰もが寒いと思おうが、自己満足を満たすおっさんの思いつきは

最高の燃料だ。指先を動かすだけの傍らで、脳裏では様々な探索隊が

私の持つあらゆる知識に可能性を探しに出かけてる。

OpenCV勉強会で学んだ画像処理技術

派手だけど安価ゴム手袋一つで指先の認識精度を上げた記事。

エロゲで連動型大人の玩具を使用した痛い経験



いぬいをNUINUIしたい。

あらゆるところへ妄想は飛びし、

Tumblrキーボードを叩くより早く忘れていく。



そして、定時。何故か私の仕事は終わっており、

何ともいえない幸福感とぬいぬいをNUINUIしたいという

フレーズけが手元に残った。

2013-12-30

C++について

  1. ちょっと何か書こうとする
  2. 外部ライブラリを使おうとする
  3. includeの順番だのコンパイラオプションだのの設定で散々ハマる
  4. リンカエラーで散々ハマる

という感じで本題にたどり着くまでに死ぬほど時間がかかるのが常なんだけど何とかなんないもんなのか。

opencvとかの超有名なライブラリですらこんなんでマジ困る。

そもそも統合開発環境だとビルド設定が複雑怪奇過ぎてとてもじゃないけど把握しきれない。全容を把握してる人ってどのくらいいるの?

スーパープログラマーな皆さんはどういう感じで対処してるんでしょうか。

2013-07-23

ここにぬりえがあるじゃろ?

http://togetter.com/li/537683

ARを用いて、塗り絵を立体に動くキャラクターにしてみたよというホッテントリ

ワナビーSEとして思ったこと。



何だろう、ブコメの『未来みたい』って思わずもれたような素直な感想

自分も全く同じ感想を抱いたのだけど、そのことに驚きが隠せなかった。

意外なところに未来っぽさって転がってることに。



AR自体、使い尽くされたネタのように思ってたし、

お絵描きした絵がテクスチャとして貼り付けられるのは最近だと

どうぶつの森で楽しんだし、

その、つまり既存技術既存アイディアが詰まってるのに

心地よく、未来だなと刺激するものがあって、

OpenCVキャリブレーションについて齧ってたけど

これなら俺にも出来るわーってミサワな気持ちには至らなかった。



改めて、何だろうなこの気持ちは。

埋み火みたいにずっと気持ちいいんだが。



こういうもの作ってみたいな。。。

2010-12-03

自分WEBサービスを作りたいと思っている人へ

もう、いいおっさんの年齢なんですが、先日、とあるWEBサービス公開しました

5年ほど前からぼーっと考えていたんですが、如何せん、事務職の自分には”創る技術”が無かった。



優れた若い技術者id:amachangとかうらやましい)や、チャレンジ精神あふれる経営者id:hiroyukiegamiとか)が出てくる中うつうつとしている自分に嫌気がさし、4か月前の7月からHTMLプログラム勉強を始めた。




本屋立ち読みしたら、まずはHTML勉強する必要があると、書いてあった。同時にCSSを学んだ。



プログラムを作りたかったので、次にJavascriptをやった。

jQueryがすごい。「プログラムって誰でもできるんだ。」この時そう思った。



検索システムを作りたかったので、本屋に行ったらCGI/Perlの本がいっぱいあったので、Perl勉強した



しかし、HTMLテンプレートが使いたかったのでPHP+Smarty勉強した



作りたかったWEBサービス大手サイトデータ検索サイトだったので、自動データを集める必要があった。

クローラーというらしい

PerlのLWPを勉強したが、データを集めた後に加工する必要があった。簡単そうだったRubyとMechanizeを勉強した

Rubyはものすごくきれいにプログラムがかけることを知った。話し言葉に近い気がする。



プログラムを作っている時、最初自分パソコンの中でやっていて気付かなかったが、実際に公開するときレンタルサーバーを使うというのを知って調べると、Linuxサーバーが多いということを知った。

から、今度は自宅のあいているパソコンLinuxを入れた。

Linuxを入れたはいいものの、全く使い方が分から四苦八苦してRubyのインストールした

世界中メインで動いているWEBサーバーApacheということも3か月前に知った。

Apacheの設定がテキストファイルなのも驚いた。cd,ls,vi,mv,cp,chmod等、基本的なUNIXコマンドを覚えた。



例の図書館の事件があったので、クローラーを動かすのをためらったが定期的にちょっとずつなら怒られないんじゃないかと、Crontabを勉強した



自宅のサーバーが壊れてしまい、構築が大変だったので今度はVPSサーバーを借りた。

同じように構築はしたがかなり苦労した。このとき、始めてmakeというコマンドを使った。コンパイルというらしい



クローラー自動的にデータを集めていたが、動かし始めて2カ月目でデータファイルが1GBを超えていることに気がついた。

このときテキストファイルデータを扱おうと思っていたが大きすぎて動かない。

SQLサーバーというものを触り始めた。

最終的にデータ量は5GBを超えた。




11月も後半、本稼働用のサーバーを探していたら、丁度カゴヤVPSサーバーベータ版を募集していた。

ここぞとばかりに申し込みボタンクリックして申し込んだ。

すごく、快適です。まだベータですが、本番稼動でも、50GBで900円という激安プランです

http://www.kagoya.jp/cloud/vps/

さくらさんの2.5倍の容量でさくらさんよりちょっと安い。

ベータ版では、3つまでOSインストールができます。もちろんそれぞれにIPアドレスが振られます

このVPSサーバー管理システムインストールし、もろもろの環境も作って、11月末についに、公開。



AV女優スリーサイズから検索できるシステム、「完全に一致です

 【完全に一致AV女優類似検索システム

 http://www.kanzen21.com/

類似検索機能付きで、2次元3次元をつなげる夢のシステムですはい

「なんだエロかよ」とか言わないでください。

真剣に作ったんだ。仕事をしながらよく頑張ったと自分をほめてあげたい







このシステムは、下記のような構成になっています。

----------------------------------------------

サーバー:カゴヤVPSサーバーベータ版)

WEBサーバーApache

SQLサーバーMySQL



HTMLXHTML+CSS

インターフェースjQuery+selectToUISlider

検索プログラムPHP

テンプレートエンジンSmarty

クローラーRuby+Mechanize+Cron

-----------------------------------------------



サーバー上にある静的なHTMLは1ページもなく、mod_rewriteですべてPHPが処理しています。

ボタン等の画像は、GIMP作りました




一番大変だった事は、、、



このサイトデータDMM社のデータを使わせてもらったのですが、AV女優顔写真をそのまま使うのは、肖像権的にNGらしく、AV女優の作品の中からその女優の顔が一番大きく写っているパッケージを使うことにしました

しかし、女優データは約5万件。作品データ12万件。とても手作業でやるわけにもいきませんでした



結局どうしたかというと、Face.com(http://face.com/)という、画像の顔認識ができるAPI無料提供しているサービスを利用しました

同様のことができる、OpenCVというソフトがあるのですが、最初から付いているパターンデータでは人の正面の写真しか顔として認識しませんでした

それに比べて、Face.comの認識精度は驚くほど高く、横だろうが斜めだろうがかなりの精度で顔を認識してくれました

データJSON形式で返してくれる(JSONもこのとき初めて知った)為、取得したデータを後で加工しやすかったです



1.このAPIを使い12万件の作品データをすべてスキャンするプログラムを書く※1

2.顔の縦の長さと横の長さを取得

3.縦×横で顔の面積を計算

4.作品テーブルの中に3で計算した顔の面積を追加

5.SQL女優テーブルと作品テーブルを結合

6.その女優の作品の中で顔面積が一番大きなパッケージ写真をその女優顔写真として代用しました。※2

※1 APIの制限が1時間1000リクエスト迄だったので、これまたCronで・・・

※2 実際には女優テーブルと作品テーブルを繋ぐ中間テーブルのフラグONした。若干の間違いはあるものの、かなり正確に出ました





長々と書きましたが、ズブの素人から約4ヵ月でここまで出来ました

勉強する前、SEをやっている友人に話したら、「3年はかかるんじゃないか?」と言われましたが、できたものを見せたら褒めてくれました

WEBサービスを作りたいと思っていて、技術がないからとあきらめている人は、とりあえずやってみてください。意外に簡単にできますよ。

あと、クローラーが動いていると、全能感を味わえるので楽しいです






あ、あと、椎名舞さんのファンです



-----------------------------------------

19:30追記

サーバーソフトからアラートが上がって、見てみてたらなんかすごいアクセス貰ってまして。

ありがとうございます




>カゴヤ中の人乙wwww VPSといったらさくらServersManくらいし選択肢が無いのは現状当然の認識であるはずなのに!

ゴヤ人間じゃないですよー。広告してるつもりもないんですが、ベータ版だからかもしれませんけど、すごい快適ですよ。今は。

何よりタダなので。

本当に月額900円のまま本公開になったら、環境構築もめんどくさいのでそのまま契約しちゃうかもです




>カゴヤはOpenVZだからなあ。俺としてはより自由度の高いさくらVPSお薦めしたい。

そうなんですか。2週間のお試し期間はつかったのですが、正直どっちがいいとかわかりません。

どんな風に自由度が高いんですかね?あと、アダルトOKなんですっけ?




>組み立てるプログラミングは本当に簡単だよ。 みんなで入り口を隠しているだけだよ。 #組み立てるだけじゃなくて、アルゴリズムを練ることが真のプログラミングかもしれない

そう思います。感覚的にはジグソーパズルに似てました

ただ、ピースを探すのに時間がかかりましたけど。

私の場合は、アルゴリズムとかその辺はできなそうですね-。

サンプルプログラムの組み合わせで作ったようなサービスですので、プログラムソースとかぐっちゃぐちゃです

一応、公開前に見える所はきれいにしたつもりですが・・・






もともと、作ろうと思ったきっかけなんですけど、

椎名舞さんがですね、すでに引退しちゃってるんですよ。ずいぶん前に。

で、彼女プロポーションが大好きなんですね。私。

それで、検索エンジン検索したです。でも、なかなか出ないんですね。



欲望のままにやってたら、次から次に壁にぶち当たって、そしたらいつの間にかできました



結果、このシステム使って椎名舞さんのプロポーションに似たAV女優を探すと、

雛乃つばめさんとか、果梨さんとか、佐伯さきさんとか既にDVD持っている女優さんばっかりヒットしちゃうんですね。確かに似てるんですスタイル

当たっててうれしいやら、既に持っていて悲しいやら。




あと、スタイルが似てる女優って顔も似てる気がする。

とくに最近の細い子は。





あ。デザインは、某企業をパk、じゃないリスペクトさせてもらいました




-------------------------------------

23:55追記

アクセス過多でサーバーが落ちました

寝てたらサーバーからアラートメール携帯に飛んできておこされました

こんな瞬発的なアクセスを考えていなかったので、とりあえず再起動しました

が、また重くなってます。。。どうしたらいいんだろう。

しい方居たらアドバイスいただけるとうれしいです




-------------------------------------

12/4 01:45追記

何度再起動してもサーバーが反応しなくなるので、うぎゃーってなってたのですが、

親切な方が「MySQLサーバーが原因じゃね?デフォルトだろ?query_cache_sizeを設定したらいいよ。」とわざわざお問い合わせからアドバイスくれました

設定してみたら驚くほどつながりやすくなりました

同じSQLクエリーを保持してくれるらしく、実際にデータ検索を行わないので高速になるそうです。こんなの知らなかった。ありがとうごいました

プログラムはサンプルがあるからどうにかなるんですが、サーバー周りの事が全然わかりません。。。。ぐうぅぅ。。。。

おやすみなさい。


-------------------------------------

12/6 23:30追記

ブックマークコメントもらっていた事を別の日記で説明しました

http://anond.hatelabo.jp/20101206224349


-------------------------------------

1/12 10:00追記

最終報告を書きました想定外ばかり。

http://anond.hatelabo.jp/20110112095450

2008-10-01

http://anond.hatelabo.jp/20080930143649

理由はどうでもいい。とにかくもったいないのう。

Matlab コードでいいなら、OpenCV とか AR Toolkit でできること以上のことが

ちょっとぐぐればザクザクでてくるのにのぉ。

 
ログイン ユーザー登録
ようこそ ゲスト さん