ImagePipes Conceptとは?

Yahoo Pipesはテキストを対象としたツールだが、 それを画像に対しても使おう!という考え

Yahoo Pipesを使って、テキストに対して、いろんなソースからRSSを取得してマージしたり、検索語でフィルタリングしたり、しているように、
画像に対して、sharpnessやcontrast等のパラメータを調整したり、顔を含むかどうかでフィルタリングしたり、といったことを、Yahoo PipesのUIを使って組み合わせられるようにする。

ポイントは、画像処理機能をwebサービスとして公開すること。そしてYahooPipesを使ってシーケンシャルにつなげられるようにwebサービスのI/Fをそろえること。

ImagePipesを使えばどんなことができるの?

  • Flashの開発のみで、Flickrから取得した画像の中から顔領域を抽出してなにか
    顔領域抽出切り取りのwebサービスはつくってImagePipeとして公開したので、サーバーサイドはつくる必要が無い
    demo
  • javascriptの開発のみで、ページ内の写真を全部ロゴ付の写真に置き換える
    画像合成のwebサービスはつくってImagePipeとして公開したので、サーバーサイドはつくる必要が無い
    demo
  • オンライン画像編集ツールのバックエンド

ImagePipesの仕組みは?

  • 画像処理機能を提供するwebサービスの入出力仕様を(緩く)統一
    最低限満たすべき要件: 入出力はHTTP, MethodはPOST, Parameterは"data", ValueはUTF-8のJSON
  • JSONは最低限以下の形式をとる
    {"items":[{"url":"http://path.to/image.jpg"}]}
    items配列の1要素が画像を意味する
    urlは必須
    webサービスの提供する画像処理機能に応じてJSON内に要素を増やしてもよい
    urlには、入力のJSON場合には、画像処理対象の画像のurlが入る
    出力のJSONのurlは、画像加工後の画像のurlが入る(webサービスのドメイン以下になるはず)
    顔領域抽出等、画像解析のみで加工は行わないwebサービスの場合には、urlはスルー

    ex: 顔領域抽出のwebサービスの出力は
    {"items":[{"rects":[{"y":50,"width":61,"x":117,"height":61}],"url":"http://path.to/image_including_a_face.jpg"}]}

    こうすることで、YahooPipes上で、[imagepipes]facecropのように、webサービスをシーケンシャルにつなぐことができる
    (facecropの場合には、顔領域抽出webサービスの出力するJSONがそのまま、切り取りwebサービスにPOSTされる)
  • アクセス可能ドメインが "*" なcrossdomain.xml をwebサービスのサーバ(加工後の画像が置かれる場所)に置く
    (Flashから画像を読み込んで操作できるように)
  • YahooPipesでこの入出力仕様を満たしたwebサービスを使ってPipeをつくるときに、
    YahooPipesでタグ imagepipe をいれる
    ※タグは [Edit Source] の画面の右上にある [Properties] の中で設定できます

どんな画像処理ができるの?

http://imagepipes.kayac.com/ ではひとまず以下の4つを用意しています。
これらに、↑の仕様にしたがってみなさんの開発したwebサービスを加えて、自由に組み合わせてImagePipeをつくることができます。
みなさんの参加をお待ちしています!

Recent ImagePipes

[imagepipe]facecrop

by imattjp
detect a face in the input images and return only the biggest face area [input] comma divided urls of input images [output] urls of images including a face
  • Published on |
  • 3 clones
put an image over other images. [input] urls: comma divided urls of target images over: url of src image to put over x,y: offset in the target image [output] url of merged images
  • Published on |
  • 2 clones

[imagepipe]resize

by imattjp
resize [input] urls: comma divided urls of input images xpixels,ypixels,type,scalefactor: read http://search.cpan.org/~tonyc/Imager-0.60/lib/Imager/Transformations.pod [output] urls of images resized
  • Published on |
  • 6 clones
detect faces in input images and returns rectangles of detected face areas [input] urls: comma divided urls of images [output] urls: no change rects: face area
  • Published on |
  • 4 clones

Comments

ImagePipesに対するご意見や、こういうふうに使ったよ、
こんな画像処理webサービスを公開したよ、などなど
コメントお待ちしております!
http://bm11.kayac.com/contact/