Internet Explorer: lifehack
ラベル lifehack の投稿を表示しています。 すべての投稿を表示
ラベル lifehack の投稿を表示しています。 すべての投稿を表示

2015年12月25日金曜日

【全自動】水玉コラ生成マシーン

【全自動】水玉コラ生成マシーン




聖夜なので表題のものを作った。
processing で書いたアプリだけど、この記事の内容はほぼ OpenCV の話です。


仕組み

  1. 水着を自動認識して「隠す」とマーク
  2. 顔を自動認識して「見せる」とマーク
  3. マークに沿って円充填


水着領域の自動認識

最初のアプローチ

  • OpenCV を使って肌色認識
  • 選択領域を膨張 -> 収縮させる
  • 肌色との差分を取れば水着領域が完成


肌色認識

先人が大量に居た。RGB 色空間ではなく HSV 色空間を使うというのがコツなようだ。

HSV 色空間なら影になっている部分も抽出できる。
今回は Hue: 7..15 を肌色として定義した。
PImage detectHada() {
  // 作業用に hue で grayscale にする
  opencv.loadImage(img);
  opencv.useColor(HSB);
  opencv.setGray(opencv.getH().clone());
  // 肌色は 7..15 と定義。inRange で取り出す
  opencv.inRange(7, 15);

  // ノイズ除去 MORPH_OPEN
  opencv.erode();
  opencv.dilate();

  return opencv.getSnapshot();
}


膨張・収縮

欲しいのは肌色領域ではなく水着領域なので、肌と肌の間の空間を選択する必要がある。
膨張 -> 収縮し、最初との差分を取ることで取得できるのではないかと考えた。

// 輪郭を広げて戻す
for (int i = 0; i < 10; i++) { opencv.dilate(); }
for (int i = 0; i < 10; i++) { opencv.erode(); }
が、膨張する際に水着領域を上手に隠せないパターンが多い。
問題はループで 10 回回しているところにあり、本来は膨張・収縮時にパラメータを渡して解決すべきである。 デフォルトのパラメータのまま無理やりループで代替したところ、望むような膨張効果が得られていない。
opencv-processing でパラメータを渡す方法を調べるのに時間がかかりそうだったので次善の策に頼ることにした。


彩度の高いもの=水着と仮定する

グラビアの水着はなぜか彩度の高いものが採用されていることが多いので「彩度の高いもの」という条件で水着が抽出できる。
いくつかパラメータを変えつつ試したが、
  • Saturation: 180..255 (彩度の高いものを水着と仮定する)
  • Brightness: 8..247 (あまりに暗いもの、明るすぎるものを除外する)
という絞り込みで、一定の条件の水着に対しては判定が効くようになった。

void detectMizugi() {
  // 水着を彩度 180..255, 明度 8..247 と定義。inRange で取り出す
  opencv.loadImage(img);
  opencv.useColor(HSB);
  opencv.setGray(opencv.getS().clone());
  opencv.inRange(180, 255);
  PImage s = opencv.getSnapshot();

  opencv.loadImage(img);
  opencv.useColor(HSB);
  opencv.setGray(opencv.getB().clone());
  opencv.inRange(8, 247);
  PImage b = opencv.getSnapshot();

  // TODO: 無駄に PImage に一度変換して blend しているが
  // おそらく OpenCV のみで可能
  s.blend(b, 0, 0, width, height, 0, 0, width, height, MULTIPLY);

  opencv.loadImage(s);
  opencv.erode();
  opencv.dilate();

  ArrayList<Contour> contours = opencv.findContours();
  for (Contour contour : contours) {
    // 面積が小さすぎるものはノイズと判断して弾く
    if (contour.area() > 25) {
      mizugiAreaList.add(contour);
    }
  }
}


顔領域の自動認識

OpenCV に任せて 2 行で解決した。
opencv.loadCascade(OpenCV.CASCADE_FRONTALFACE);
Rectangle[] faces = opencv.detect();

デフォルトだと誤認識率が 30% ぐらいあるが、OpenCV に同梱されている分類器を複数重ね合わせて使う のように、認識率を上げる手段がまだあるようだ。


円充填

ここまでで「隠す領域」と「隠してはいけない領域」が抽出できたので、 いい感じに円で埋めていく作業をする。
等で勉強したのだが、美しい水玉コラを作るには
  • 水着を全て隠す
  • 顔は必ず見せる
  • 水玉は重ねない
  • 水玉の数は多くても 15 個まで。少なければ少ないほど良い
といった標準的なルールの他に
  • 穴が直線上に並ばないようにする
    • 隠された領域が水着っぽく見えてしまい、「らしさ」が薄れる
  • 肩、くびれを見せる
    • ボディラインを強調することができ、より完成度が高く見える
  • 谷間・アゴを見せる
    • 「らしさ」が一層高まる
といったテクニックがあるようだ。
とはいえ「くびれを学習させた教師データ」なるものは存在しないので、右上、左上から先に開けることでなるべく肩が含まれることを期待するにとどめた。
ここでゲームで培った当たり判定の技術 (OBB と点の当たり判定、凸包と点の当たり判定等) が生きたんだが、 処理を簡便化するために水着領域を凸包にしたことで谷間を見せることができなくなってしまった。


(黄色の部分が当たり判定になるので谷間は必ず隠れてしまう)
ここは今後改善したい。



おまけ (曇りガラス効果)

OpenCV には inpaint という演算があり、これを用いると「選択領域を取り除き、付近のピクセルを利用していい感じに埋める」ということができる。
と、いうことは「水着を取り除き」「ガウスボカし」で曇りガラス表現ができるのでは……!



まとめ

OpenCV 超便利。
全自動で水玉を適用できるようになったので「動画に適用できるのでは?」とか「Chrome 拡張等で全 web ページに適用できる?」とか夢が広がっている。
また、人間が頭で考えている手順はだいたい自動化できるというのも再認識した。



偉大なる先人たち





http://blog.onk.ninja/2015/12/24/auto_circle_collage

2014年9月19日金曜日

水筒がやっと進化!

あの水筒が進化!バックに入れやすい書類型のA5サイズの薄い水筒が出現【画像】


1: ミドルキック(東日本)@\(^o^)/ 2014/09/03(水) 15:25:41.98 ID:Ns9fRfhv0.net BE:837857943-PLT(16555) ポイント特典
sssp://img.2ch.sc/ico/nida.gif
ナイスアイディア!

これは盲点でしたな。水筒ってのはなにも筒型じゃなくてもいいわけですよ。通常のバッグにいれやすい
サイズとなれば、マストアイテムであるラップトップや書類、ファイルと同じ形の方がいいわけですよ。だから、
この水筒のアイディアには目からウロコで脱帽です。
ラップトップケースにもはいってしまう、A5サイズのうすーい水筒。他にはA4サイズとレターサイズもあります。
容量はA54が750ml、A4とレターサイズが1.25L。ウォーターボトルなので、保冷効果はありませんけれど、
鞄の中がすっきりしそうです。同じ発想で、お弁当箱で細長いものはよく見ますよね。
そのアイディアをちょっとひねったようなデザインがこれです。

http://www.gizmodo.jp/2014/09/_a5.html 



ナイスアイディア!
これは盲点でしたな。水筒ってのはなにも筒型じゃなくてもいいわけですよ。通常のバッグにいれやすいサイズとなれば、マストアイテムであるラップトップや書類、ファイルと同じ形の方がいいわけですよ。だから、この水筒のアイディアには目からウロコで脱帽です。

140902laptopwaterbottle.jpg
140902laptopwaterbottle01.jpg

ラップトップケースにもはいってしまう、A5サイズのうすーい水筒。他にはA4サイズとレターサイズもあります。容量はA54が750ml、A4とレターサイズが1.25L。ウォーターボトルなので、保冷効果はありませんけれど、鞄の中がすっきりしそうです。同じ発想で、お弁当箱で細長いものはよく見ますよね。そのアイディアをちょっとひねったようなデザインがこれです。

140902laptopwaterbottle02.jpg

現在、Kickstarterにて資金調達のためプロジェクト進行中。1万5,000ドル(約157万円)の目標金額に対して、記事執筆時点(9月2日16時)で既に4万ドル(約410万円)を調達する勢い。まだ1ヶ月近い期限のうちに一体いくらのファンドを集められるでしょうか?


2: バーニングハンマー(やわらか銀行)@\(^o^)/ 2014/09/03(水) 15:26:35.25 ID:4dqpLHhp0.net
飲み口折れそう




3: アキレス腱固め(新疆ウイグル自治区)@\(^o^)/ 2014/09/03(水) 15:27:12.31 ID:7W03IUE+0.net
どうやって内部を洗うの?




8: パロスペシャル(新疆ウイグル自治区)@\(^o^)/ 2014/09/03(水) 15:27:55.92 ID:qIVDlNuI0.net
>>3
水専用で使い捨てじゃね




127: 逆落とし(やわらか銀行)@\(^o^)/ 2014/09/03(水) 16:13:15.49 ID:DPOeF32I0.net
>>8
じゃあペットボトルとおんなじで、全くエコじゃないよね




4: エメラルドフロウジョン(新疆ウイグル自治区)@\(^o^)/ 2014/09/03(水) 15:27:36.35 ID:OLwWe/310.net
水筒よりも尿瓶だな。




5: トペ コンヒーロ(大阪府)@\(^o^)/ 2014/09/03(水) 15:27:41.44 ID:jTGR2XF70.net
こういうの求めてない




6: 不知火(兵庫県)@\(^o^)/ 2014/09/03(水) 15:27:49.92 ID:DgB84mSg0.net
コップついてないということは直飲み?
ちょっと気温が高い日だと怖いな




7: 腕ひしぎ十字固め(熊本県)@\(^o^)/ 2014/09/03(水) 15:27:53.55 ID:uWXkfCLH0.net
スキトオットル




9: クロスヒールホールド(愛知県)@\(^o^)/ 2014/09/03(水) 15:28:01.19 ID:SWbfEdu20.net
水筒なんていちいち洗うか?




27: ブラディサンデー(中部地方)@\(^o^)/ 2014/09/03(水) 15:31:24.22 ID:t0BSDK680.net
>>9
カビるよ?




10: ムーンサルトプレス(千葉県)@\(^o^)/ 2014/09/03(水) 15:28:04.01 ID:0LamBLWa0.net
こういうのって水入れてジャブジャブでしか洗浄出来ないから不潔




11: レッドインク(静岡県)@\(^o^)/ 2014/09/03(水) 15:28:04.67 ID:J7538Y7+0.net
熱湯消毒かなぁ
水じゃなくてウイスキー入れておくとか




13: ランサルセ(愛知県)@\(^o^)/ 2014/09/03(水) 15:28:10.53 ID:+PXFQXLS0.net
飲むのが恥ずかしい




14: リキラリアット(東京都)@\(^o^)/ 2014/09/03(水) 15:28:15.48 ID:XpvQXduE0.net
中まで洗えなそう
カビ湧くな




15: ニールキック(新疆ウイグル自治区)@\(^o^)/ 2014/09/03(水) 15:28:34.70 ID:V/cYZnO70.net
ウイスキー瓶のパクリw

no title




237: ハーフネルソンスープレックス(関東地方)@\(^o^)/ 2014/09/03(水) 19:08:39.09 ID:GM4SGb6bO.net
>>15
真っ先に浮かんだw




16: ストレッチプラム(catv?)@\(^o^)/ 2014/09/03(水) 15:28:37.97 ID:2pGA4Hzr0.net
飲む姿が滑稽だろうな。
人前ではちょっと。




18: マスク剥ぎ(catv?)@\(^o^)/ 2014/09/03(水) 15:29:17.20 ID:pfwxO7e90.net
卵の殻を入れて洗うくらいか




19: 男色ドライバー(SB-iPhone)@\(^o^)/ 2014/09/03(水) 15:29:26.04 ID:UW7b7gGEi.net
これじゃない感がすごい




20: キドクラッチ(神奈川県)@\(^o^)/ 2014/09/03(水) 15:29:54.39 ID:eoogk8D/0.net
日本に自販機なんていくらでもあるんだからその都度買うほうがいい
経済性気にするならこんなもん買わずに普通の水筒持ったほうがいい




21: チェーン攻撃(北海道)@\(^o^)/ 2014/09/03(水) 15:30:38.10 ID:iNAyCc+i0.net
潔癖性かよおまえらw
水筒よりおまえらの方が汚いだろ




37: フライングニールキック(新疆ウイグル自治区)@\(^o^)/ 2014/09/03(水) 15:34:43.00 ID:bRXGkibJ0.net
>>21
ぐぬぬ・・・・・




239: ハーフネルソンスープレックス(関東地方)@\(^o^)/ 2014/09/03(水) 19:10:17.32 ID:GM4SGb6bO.net
>>37
認めてどうするw




25: キチンシンク(東京都)@\(^o^)/ 2014/09/03(水) 15:31:20.02 ID:kl9Rvsie0.net
出オチとして一日は使えそう





S'well(スウェル) Stone Collection 500ml 魔法瓶 Moonstone ksb0020

2014年8月8日金曜日

『冷ペットボトル』【すげえ】すぐ飲めてずっと冷たい!作成法が話題に!!


これいいね!キンキンな「冷ペットボトル作成法」がツイッターで話題に

Bub5lvPCAAAVd5q

こちらが冷やしペットボトル作成方法。通常そのまま凍らせると中身が全て凍ってしまい逆さにしても液体は出てこない。ところがこの方法で凍らせると、半分のみ凍らせるため半分が液体状となり冷たい液体が出てこないという問題がない。しかも斜めに凍らせることで液体との表面積を増やし、より解凍されやすいシャーベット状のペットボトルが出来上がる。

具体的なやり方としては

1.ペットボトルを半分にし、斜めにして冷凍させる。
2.残りの半分を冷蔵庫に入れる。
3.持ち出す際に、冷蔵庫に入れた液体を凍らせたものに入れる。


ということだ。

全文はコチラ

ネットユーザーの反応
普段仕事に持っていくのと同じやりかたや。これええよね!
https://twitter.com/radwimps_pei/status/497538932909674497

メモメモ
https://twitter.com/uraomote00/status/497535630859972609

これは賢い。
https://twitter.com/hidari_s/status/497556688031842305

素晴らしい。素晴らしい。
https://twitter.com/latarteauxpomme/status/497561351095480322

よさそう
https://twitter.com/crons_game/status/497676721777172481

暑い日に試してみようかな♪
https://twitter.com/kahvikiitos/status/497569424275042305

おまけ 夏におすすめのライフハック
超食べやすいスイカの切り方

半分に切る
ah_suika2

大きい方を縦にザクザク
ah_suika3

次に横にしてザクザク
ah_suika4

できた
ah_suika5

ah_suika

http://nlab.itmedia.co.jp/nl/articles/1408/06/news118.html

炭酸飲料を美味しいフローズンドリンクに変える方法

(1)室温の炭酸飲料のペットボトルをめちゃくちゃ振る
・ボトルの中に出来るだけの圧力を溜め込みます

(2)振ったボトルを冷凍庫へ
・「冷たくなりつつも凍っていない」という不思議な状態に。
・動画では500mlのペットボトルを3時間15分冷凍庫で寝かせていますが、各家庭の冷凍庫によって若干の違いはあるでしょう。

(3)炭酸飲料のキャップを少しだけ捻り、圧を外にゆっくりと逃がしてやりながら、ボトルを逆さまにする

(4)不思議なことに一瞬で液体がフローズン状態に!


全文はコチラ

冷房がないとき
もう冷房には頼らない!エコかつ健康的に身体をクールダウンさせる方法

麦茶を飲む
すっかり夏のイメージのついた麦茶ですが、実は本当に暑い夏にピッタリの飲み物だったんです。なんと、麦茶の原料である大麦には身体を冷やす効果があるんだとか。

アルミ板で冷やす
金属の熱伝導率は空気や水より高いのですが、アルミは特に熱の伝わりやすい材質なんだそう。
つまり、アルミ製のものを熱くなった身体にくっつけると、熱を奪ってくれるので身体を冷やすことができるというわけです。
血管が皮膚に近いところを冷やすと、冷却された血液が全身を巡って身体をクールダウンしてくれます。

ハッカ油を使う
_SL500_AA300_

ドラッグストアなどで手に入るハッカ油も身体を冷やすのにおすすめです。身体に塗るだけでスースーするので、ひんやりとした感覚を味わうことができます。
全文はコチラ