タグ

ブックマーク / ultraist.hatenablog.com (30)

  • 二次元画像を拡大したいと思ったことはありませんか? - デー

    うまくできましたか? ボヤけたり、ギザギザになったりしませんでしたか? waifu2xをお試しください。 (ブラウザの処理に影響されないようクリックで拡大おねがいします) waifu2xは、二次元画像を2倍に拡大するソフトウェアです。多くの二次元画像についてスゴイ級のクオリティで拡大できます。 waifu2xは、最新鋭の人工知能技術 Deep Convolutional Neural Networks を使って開発されました。 waifu2xの人工知能は、次の問に答えます。 いまから与える画像はある画像を半分に縮小したものである。縮小される前の画像を求めよ。 画像を拡大するのではなく、縮小される前の状態に戻します。 縮小されてないオリジナル画像を与えた場合も、やはり縮小される前の画像を答えます。 その画像は来存在しないものですが、waifu2xはそれを想像で創ります。 二次元画像のJPE

    二次元画像を拡大したいと思ったことはありませんか? - デー
    fuba
    fuba 2015/05/17
  • 計量学習を用いた画像検索エンジンとアニメ顔類似検索v3について - デー

    まだgithubにはpushしていないのですが、さいきょうの組み込み型画像検索エンジンotamaに計量学習を用いて与えられたデータにあった画像間の距離関数を学習してそれを使って検索するというドライバを入れたので、先行的なデモとしてアニメ顔類似検索v3を作ってみました。 計量学習は、ベクトル間の距離の計り方を機械学習で決めるみたいな分野です。 アニメ顔類似検索v3 AnimeFace Search v3 - Otama LMCA_VLAD_HSV Driver randomボタンを押すと顔画像がランダムに出るのでどれかクリックするとそれをクエリに検索します。color weightは色の重みを調節するパラメーターで、1にすると色だけで検索します。0にすると形状やテクスチャだけで検索します。結果画像の上の数字は類似度的なもので、その横のgglは元画像をGoogle Search by Imag

    fuba
    fuba 2013/01/09
  • 表紙を写すと本のレビューが読めたりするHTML5アプリを作ってみた - デー

    最近のブラウザはgetUserMediaという機能でJavaScriptからカメラを操作してリアルタイムに動画を読んだりできるようなので、画像認識のデモ的なものを作ってみた。 表紙検索 PCGoogle Chrome、Opera、AndroidのOpera Mobileの場合 動画が読めるといっても実際のところ一部のブラウザでしか使えなかったので段階的に対応してみた。 まず、PCGoogle ChromeとOpera、AndroidのOpera Mobileの最新バージョンが全ての機能が使えるブラウザです。 これらのブラウザで hyoushi.me というドメインを開くと、サイトのトップに「カメラ起動」というでかいボタンが表示されています。 IS05 + Opera Mobile (僕はウェブカメラを持っていないのでこれはIS05 + Opera Mobileのキャプチャです) カメラ

    表紙を写すと本のレビューが読めたりするHTML5アプリを作ってみた - デー
    fuba
    fuba 2012/09/25
    よさそう
  • 組み込み型お手軽全文検索エンジンのRubyライブラリを作って2ちゃんねるQ&A検索の全文検索エンジンを置き換えた - デー

    2ちゃんねるQ&A検索(非公式) の全文検索は pg_trgm を使っていたのですが、だんだんとデータが増えてくるとPostgreSQLの共有メモリを増やさないと検索がタイムアウトするようになってきて、最近ではVPSのメモリのほとんどをPostgreSQLに割り当ててもクソ重くてやばかったので、昨日、意を決して組み込み型お手軽全文検索エンジンをテキトウに作って置き換えたら爆軽爆速になった。 qarc.info は意外に月100万訪問者以上あるんですけど、月800円のVPS1台にウェブサーバーからデータベースサーバーから全部突っ込んだ運用をしていて、これでどこまでいけるかというのが個人的な趣味みたいな感じなので、今回もできるだけ軽い実装かつ導入がめんどくさくないものを作ってみました。半日くらいで適当に作って、組み込みながらちょこちょこ直したもので、あまりいいものではないんですけど、その紹介を

    組み込み型お手軽全文検索エンジンのRubyライブラリを作って2ちゃんねるQ&A検索の全文検索エンジンを置き換えた - デー
    fuba
    fuba 2012/08/07
  • ネコでもテキスト分類器のRubyライブラリが生成できる便利ツールを作った - デー

    あまり細かいことは気にせずテキスト分類器のRubyライブラリを1コマンドで自動生成する便利ツールを作りました。 いろいろ迷走している間に。 gem install nekoneko_genでインストールできます。 なにをするものなのか、ちょっと分かりにくいので、例で説明します。 2ちゃんねるの投稿からどのスレッドの投稿か判定するライブラリを生成する 例として、2ちゃんねるに投稿されたデータから、投稿(レス)がどのスレッドのレスか判定するライブラリを生成してみます。 準備 まず gem install nekoneko_genでインストールします。 Ruby 1.8.7でも1.9.2でも動きますが1.9.2のほうが5倍くらい速いので1.9.2以降がおすすめです。 環境は、ここではUbuntuを想定しますが、Windowsでも使えます。(WindowsXP, ruby 1.9.3p0で確認)

    ネコでもテキスト分類器のRubyライブラリが生成できる便利ツールを作った - デー
    fuba
    fuba 2012/05/29
  • クライアントサイドの巨大なクッキーとサーバーサイドのヘッダーサイズ制限の組み合わせによるDoSについて - デー

    もう10年以上前のネタなのですが、いまだに有効だし、最近、セッションを扱っていないならXSSがあってもあまり問題ないという意見を見ることがあるので、サービス提供側として案外面倒なことになる場合がある、という話を書きました。 POCです。 http://www.udp.jp/misc/largecookiedos.html 内容としては、 JavaScriptから巨大なCookieをブラウザに設定できる HTTPサーバーは受け取れるHTTPヘッダーサイズの上限を持っていて、それを超えていた場合にBad Requestを返す 1によって2を超えるサイズのCookieが設定可能な場合がある(たぶんほとんどの場合可能) よってXSSなどによって巨大なCookieを設定されると以降サービスが利用できなくなる というものです。 Cookieの有効期限を何十年も設定されるとユーザー側で勝手に回復すること

    クライアントサイドの巨大なクッキーとサーバーサイドのヘッダーサイズ制限の組み合わせによるDoSについて - デー
  • 2ちゃんねる Q&A 検索のその後 - デー

    http://qarc.info/ のその後の日記です。 変更したこと ドメインを変えた ドメインは、前はkako.feezch.infoでしたが、Q&Aなのにkakoとかフィードを配信していないのにfeezch.infoのドメインとか意味不明な感じだったので変えました。qarc.infoです。これまたあまり意味のある名前ではないのですが、何か名前が必要だと思って、Q&Aスレをアーカイブするからqarcみたいな名前です。なぜsearchじゃないのかというと、arcのほうが響きがかっこいいからです。 質問スレ以外の過去ログを消した 公開時は、一部の板で1000に達したスレの過去ログを全部保存した上で、その中から質問スレを選んで、さらに質問文を選んで……としていましたが、レスのレコードが増すぎてやばい感じだったのと、全体の過去ログとか別にうちで持たなくてもいいやと思ったので消しました。 一度取

    fuba
    fuba 2012/03/26
  • 2ちゃんねるに寄せられた質問と回答から検索できるページを作った - デー

    2ちゃんねる Q&A 検索 - QARC 人類の知の資産であるところの2ちゃんねるの過去ログから、特に有用と思われる質問と回答のやりとりを高度な自然言語処理技術を用いて抽出・アーカイブし、それらを誰もが自由に検索できるページを作りました。 僕は、feezch.infoという2ちゃんねるのパートスレを次スレまで次々に自動追跡しながらひとつのストリームとしてフィードを吐くウェブサービスを運営しているのですが、フィードの利用者がとても少ないわりに、過去ログへのアクセスがものすごくあって、そのほとんどは質問スレの回答求めて訪れる方のようなので、それなら一発で回答にアクセスできるページを作れば非常に大きな社会貢献になるのではないか、feezch.infoのコードを使えば簡単に作れるし、ビッグデータや。そう考えてこのサービスを作ることにしました。 コレを使うと、たとえば、「skyrim 水銀のインゴッ

    fuba
    fuba 2012/02/11
    文分割のライブラリ
  • 日本語係り受け解析器 CaboCha Ruby 拡張の基本的な使い方とちょっとした応用 - デー

    ari3_botの会話エンジンで使っている自然言語の処理の中から他の方にも有益そうなところだけ書いておこうと思います。 このエンジン自体はアドホックにヒーリスティクスな処理を追加しまくっていて、とても説明しにくいのですが、基的な部分だけ抜き出して……まとめて……解説します。全部実装できるほど詳細な解説はできないので、取っ掛かりになる程度です。 ちなみにCaboChaのAPIはきちんとしたドキュメントがない?ようで、僕はソースコードを自分で読んで得た知識から解説を行っています。また日語文法関する知識もari3_botを作るためだけに得たものであり、あやしいので、あまり信じすぎないようにしてください。 もくじです。 ari3_botの会話エンジンとは CaboChaの基的な使い方 CaboChaで主語と述語っぽいところを抜き出す 述語を活用してみる その他のいろいろなヒント まとめ ar

    日本語係り受け解析器 CaboCha Ruby 拡張の基本的な使い方とちょっとした応用 - デー
    fuba
    fuba 2011/10/15
    ari3_botで使われている技術
  • feezch.infoで使われているあやしい技術を解説します - デー

    feezch.infoで使われている一部の技術を解説しようと思います。 Railsnginxの設定の話は、僕が書くことでもないので、一般的なウェブサービスではあまり使われてなさそうな2ちゃんねるに関連した技術やあやしめ技術をいくつか選んでみました。 主に画像関連です。 クローラー周りも、とてもよく考えられたすばらしい仕組みを持っているのですが、特にあやしくなく当にすごいので、ここでは省略します。 以下がもくじです。(リンクはつけ方が分からなかったので、ついてないです) 画像URLのルール集『ImageViewURLReplace.dat』を使って投稿内容から画像URLを抽出しダウンロードする グロ画像ブラックリスト『NGFiles.txt』でグロ画像をブロックする ウェブブラウザがリファラを送らないように画像にリンクする グーグルの新機能『Search by Image』を使ってサムネ

    feezch.infoで使われているあやしい技術を解説します - デー
    fuba
    fuba 2011/10/09
    Search by Image の隠し API とか
  • OpenCVによるアニメ顔検出ならlbpcascade_animeface.xml - デー

    追記 lbpcascade_animeface · GitHub githubに置きました。 追記前 かなりいい。http://j.mp/oMVViM http://j.mp/pKZC4Y イロイロ試すと丸っこいものに対する誤検出がちょっと気になるくらい。 http://twitter.com/#!/ultraistter/status/92775087635312640 金曜日から何度か学習していたLBP版のアニメ顔検出ができていた。前回のOpenCVでアニメ顔を検出するためのXML v2 - デーに比べるとかなりよくなっていると思います。検出速度もこっちのほうが速い。 ダウンロード http://anime.udp.jp/data/lbpcascade_animeface.xml (デカイので右クリックで保存) 使い方 OpenCVのサンプルに入っているfacedetectというプログ

    OpenCVによるアニメ顔検出ならlbpcascade_animeface.xml - デー
  • ブラウザで使える数式処理システムを作った - デー

    こんなの 昨日、OpenSearchから使える関数電卓を作ろうと思って、イロイロ考えているうちに数式も処理したくなって、イロイロ調べたところ、GiNaC is Not a CASというC++の数式処理ライブラリを使うとよいらしいのでコードを見たら、ginshという対話ツールにBisonで生成したparserが付いてて、コレ使ってライブラリ作れば一瞬でできるやんけと思ったので、朝からがんばって作ってみました。 http://cas.udp.jp/:title= 式を展開したり、簡略化したり、微分したり、連立方程式を解いたりできます。 まだ操作がアレですが、コレを使えるようにして、アイコンがMSYSと間違えるやすいMaximaをもう使わなくてもいいようにしたい。 やったことは、 ginshの入出力をバッファで指定できる + 出力フォーマットいじれるようなライブラリを作成して共有ライブラリにした

    fuba
    fuba 2011/07/10
    べんりそう…
  • JavaScriptで顔検出 - デー

    404 Not Found 何度か見たことあるネタだけど。アニメ顔にも対応(OpenCV版のほうです)。 もともと、WebGL GPGPUでやろうと思って、先週、OpenCVのdata/haarcascadesにあるようなデータから特定の言語向けのコードを生成するプログラムを作ってJavaScriptで試してて(動いた)、今日、GLSLを出力できるようにしたんだけど、シェーダのコードがコンパイルできなかった(なんか返ってこなくなる!!)ので、今日はあきらめて、JavaScript部分だけ書いておこうと思った。 WebGL GPGPUで超速くできたらVideoタグとCanvasを使って動画に適用すればかっこいいかなーと思ったんですけど。 気になったこと 遅い。 chromeだと2回目以降の実行が速いけど結果がおかしいことがある。あとたまにブラウザがクラッシュする。 http://twitte

    fuba
    fuba 2011/07/05
  • WebGLでGPGPU - デー

    下のイラスト調のやつを爆速にしようと思って試した。(まだイラスト調のほうは実装してないです) WebGL GPGPU Sample Code WebGLで計算を行う方法は、 GPU側へ入力データをテクスチャとして転送 出力サイズの画面にフレームバッファオブジェクトを設定して画面サイズの四角を描画 このときのフラグメントシェーダーでテクスチャ(入力データ)を参照して計算を行う javascript側から結果を読む としています。 基的にはOpenGLでやる場合と同じなので、以下のサイトがとても参考になります。 OpenGLによる実装方法 - Satoshi OHSHIMA's web site (今落ちてるみたいですが、そのうち復活することを願ってリンクを張っておきます) 「GPGPU シェーダ」とかでググれば、古のGPGPU手法に関するPDF等がいっぱいヒットすると思います。 オレオレ計

    WebGLでGPGPU - デー
    fuba
    fuba 2011/06/05
    すごい…
  • ari3_botの日記 - デー

    ari3_botというtwitter botを作っています。アリ (@ari3_bot) op Twitter 先週くらいに常用していたセント・ジョーンズ・ワートが切れたせいか、特に自殺とかしなくても自動的に死ぬのではないかというレベルのウツになってて、その異常行動による成果です。(現在は復活しています) twitter botといえば、n-gramのマルコフ連鎖によってなにかそれっぽい文を生成するか、用意した文章をランダムに流すかが多い気がしますが、このbotはゲームのようにある世界をシミュレートして、その世界にいる一匹のアリが自分のしていることや周りの状況をツイッターで報告するというものです。 基的な部分は2日で作ったテキトウなものですが、その後毎日更新しまくっています。 README! http://www.udp.jp/misc/ari3_bot.txt からコピペ。 = @ar

    ari3_botの日記 - デー
    fuba
    fuba 2010/12/25
    アリさん
  • danbooruのタグクラウドを表示してみた - デー

    danbooruという海外イラスト転載サイトをクロールしたので、検索結果に対応するタグクラウドを表示するようにしてみました。 やったことは、 元画像のMD5を計算してdanbooruのデータと照合し、一致するものがあればサムネイルにタグを対応づける 検索結果のうちタグがついてるサムネイルからタグの集合を作って2個以上重複するタグについて個数で重み付けてそれっぽく表示する です。 face-search-v1の元データはdanbooruから取得した画像ではないので、全部の画像にタグが付いているわけではないですが、試したところ4割ほど対応付けられたので(よ、4割も!すごい!)、ちょっと確認するのにはいいかなーと思ってやってみました。 なにを確認したかったかというと、メモリベースの手法でキャラクター推定ができそうかどうか、ということです。 今のface-search-v1は画像を入力できないで

    danbooruのタグクラウドを表示してみた - デー
  • 近代デジタルライブラリーの画像の余白を切ってページ分割するための処理 - デー

    近デジの画像の余白を取って左右に分割する - hitode909の日記を見てて、 近代デジタルの画像を余白切ってページ分割するの、知っていれば一瞬でできる問題だと思うんだけど、やったことないので試すか 2010-10-11 11:51:42 via P3:PeraPeraPrv と思ったのでやってみた。 選択された領域 やってること 元画像が超でかいので小さくして処理する(速くなる) cannyエッジを検出したあと確率的ハフ変換で線を検出(縦横) あとは単純に、 横線のうち一番上をtopに 横線のうち一番下をbottomに 縦線のうち一番左をleftに 縦線のうち一番右をrightに にして、この矩形を余白を取り除いた領域とする。 このとき真ん中に謎の黒い領域があって、その上下が検出されることがあるので、あまり上過ぎたり下過ぎたりする線は使わないようにした。(かなりテキトウ) ページの中心

    fuba
    fuba 2010/11/01
    cannyフィルタ&確率的ハフ変換
  • ターミナル内で画像を表示するコマンド - デー

    sshで作業しているときに画像を見たいことがあって、ウェブのディレクトリにコピーしたりが面倒なのでコマンドラインから見れるようにしました。 こんな感じで見れます。 やっていることは、 指定された画像のフォーマットをPNMに変換してaviewに渡す というだけです。 aviewというは、aalibというライブラリで画像をAAに変換したあとcursesUIで表示できるソフトなのですが、これがPNMしか読めないようなので、JPEGやPNG、GIFなどの一般的な画像フォーマットをaviewが読めるフォーマットに変換してから渡すというスクリプトを作りました。 netpbmを使うと、 jpegtopnm hoge.jpg | aviewで済むのですが、長いし… こんなの。 ターミナルで画像を確認できるaviewはマジ便利です。

    ターミナル内で画像を表示するコマンド - デー
    fuba
    fuba 2010/08/03
  • 特徴点検出器を作ってライブラリに追加した - デー

    前々からアニメ顔類似検索のbag of featuresで使っている特徴点の決め方がイラストにあまり合っていない気がしていたけど、実装がすごく面倒くさそうだったのでやらなかった。しかし、最近SURFに特許があることが発覚して、SURFを使っている意味は特にないなーと思ったので、満足のいくものをつくろう思ったのであった。(ただ特許は気にせずにやる) ということで、こんなのができた(クリックで拡大)。 結構速いし、スケールの変化、回転、ある程度のゆがみには大体対応できている。対応点の決定は、点の特徴ベクトルが一番近い点と二番目に近い点を取って、ふたつの特徴ベクトルの距離の差を確信度として、確信度が高いもののみマッチングしたことにして表示している。 SIFTやSURFに比べると点多すぎだろ(なぜ渦巻きに…)と思うかもしれないけど、これは僕なりにイラストの特性とかbag of featuresで使

    特徴点検出器を作ってライブラリに追加した - デー
    fuba
    fuba 2010/03/13
    イラストの特性を考慮した特徴点検出器
  • animeface-character-dataset - デー

    animeface-character-dataset 僕が使っている,イラストの顔領域サムネイル(160x160)をキャラクターごとにまとめたデータセットです. アニメ顔類似検索でも顔領域画像から特徴ベクトルに変換する関数を学習する際に使用しています. (表示しているのは別のデータです) こんなサイムネイルが150〜200キャラクター分あります. 2ちゃんねるの有志が勝手に作成したもの〜くらいに思っていただければ.

    animeface-character-dataset - デー