Upload
guest7b1ebc
View
653
Download
0
Embed Size (px)
Citation preview
about me…
• 1982生まれ(0x19歳)
• Windows95で初めてPCに触れる
• 大学でCGを学ぶ(初アセンブラ)
• Finland/Assembly03に行く(シベリア鉄道で帰る)
about me…
• 1982生まれ(0x19歳)
• Windows95で初めてPCに触れる
• 大学でCGを学ぶ(初アセンブラ)
• Finland/Assembly03に行く(シベリア鉄道で帰る)
• 現在:FORCIA, Inc.にて検索エンジンの開発
about me…
• 1982生まれ(0x19歳)
• Windows95で初めてPCに触れる
• 大学でCGを学ぶ(初アセンブラ)
• Finland/Assembly03に行く(シベリア鉄道で帰る)
• 現在:FORCIA, Inc.にて検索エンジンの開発
• PostgreS QLにパッチを送ったりする
about me…
• 1982生まれ(0x19歳)
• Windows95で初めてPCに触れる
• 大学でCGを学ぶ(初アセンブラ)
• Finland/Assembly03に行く(シベリア鉄道で帰る)
• 現在:FORCIA, Inc.にて検索エンジンの開発
• PostgreS QLにパッチを送ったりする
• http://d.hatena.ne.jp/umitanuki/
about me…
• 1982生まれ(0x19歳)
• Windows95で初めてPCに触れる
• 大学でCGを学ぶ(初アセンブラ)
• Finland/Assembly03に行く(シベリア鉄道で帰る)
• 現在:FORCIA, Inc.にて検索エンジンの開発
• PostgreS QLにパッチを送ったりする
• http://d.hatena.ne.jp/umitanuki/• The nine finger programmer
PostgreS QLもよろしく!
• window function – S ELECT sum(salary) OVER (PARTITION BY
dep)FROM empsalary;みたいなことが書けるように改良してみた。
オープンソースRDBMS 初の実装(たぶん)
http://umitanuki.net/pgsql/wfv04/design.html
エロ目ジェネレータとは
• 顔写真をエロ目にするWebサービス
• URLを入力するだけでエロ目画像を作成
• シンプル(すぎる)UI–携帯OK
• 完全ランダムな10枚のエロ目ギャラリー– DopeなUI
エロ目ジェネレータとは
• 顔写真をエロ目にするWebサービス
• URLを入力するだけでエロ目画像を作成
• シンプル(すぎる)UI–携帯OK
• 完全ランダムな10枚のエロ目ギャラリー– DopeなUI
• http://umitanuki.net/eroeye/
流れ
• 【開発】2007年12月27日~31日
• 【公開】2008年01月02日
• http://yusukebe.com/archives/07/12/31/015942.htmlにTB(エロつながりかと思って)
流れ
• 【開発】2007年12月27日~31日
• 【公開】2008年01月02日
• http://yusukebe.com/archives/07/12/31/015942.htmlにTB(エロつながりかと思って)
流れ
• 【開発】2007年12月27日~31日
• 【公開】2008年01月02日
• http://yusukebe.com/archives/07/12/31/015942.htmlにTB(エロつながりかと思って)
• yusukebe++
エロ目は国境を越える
• 【掲載】ネトラン&教えて君
• 【掲載】韓国のサイト(オルゴだからR iot )• http://overdread.egloos.com/4202256
Excite翻訳してみた
「ギャグ顔作り」
• あんな式で千ウォン札紙幤を折って退渓李滉先生をムフッフッした顔(...)で作って見た方々多いかけますが, やけど住所を付けて入れるだけで簡単にあんな式のギャグ顔で完成させてくれるザングナンジルサイトがあってススック.
Excite翻訳してみた
「ギャグ顔作り」
• あんな式で千ウォン札紙幤を折って退渓李滉先生をムフッフッした顔(...)で作って見た方々多いかけますが, やけど住所を付けて入れるだけで簡単にあんな式のギャグ顔で完成させてくれるザングナンジルサイトがあってススック.
• korean++
災害はGWにやってくる
• 【掲載】ザイーガ
• 【掲載】Yahoo! ニュース コンピュータカテゴリ
• さくらのサーバ死亡フラグ
• 503 エロ目ジェネレータ temporarily unavailable
GW丸つぶれ
• 即日Amazon EC2にS ign up• ドメイン切り替えにより回復
• Yahoo!検索キーワード「今週の7位」にランキング(されたらしい)
• 関西某局からお問い合わせ
• 「テレビ出してもいいっすか?」
GW丸つぶれ
• 即日Amazon EC2にS ign up• ドメイン切り替えにより回復
• Yahoo!検索キーワード「今週の7位」にランキング(されたらしい)
• 関西某局からお問い合わせ
• 「テレビ出してもいいっすか?」
• 「まあ、お好きにどぞ」
CGIからコピペ
for r in eyes: rad = r.width / 2 basex = r.x + rad for y in range(face.y, min(int(face.y+face.height*1.3), image.height-r.width)): for relx in range(-rad, rad):# offy = int(math.sqrt(rad*rad - relx*relx) / 2.0) offy = int((rad - abs(relx)) / 2.0) image_copy[y, basex + relx] = image[y + offy, basex + relx] cvS aveImage(result_name, image_copy)
中心に行くに従ってずらす量を増やす
ちなみに
for r in eyes: rad = r.width / 2 basex = r.x + rad for y in range(face.y, min(int(face.y+face.height*1.3), image.height-r.width)): for relx in range(-rad, rad):# offy = int(math.sqrt(rad*rad - relx*relx) / 2.0)
offy = -int((rad - abs(relx)) / 2.0) image_copy[y, basex + relx] = image[y + offy, basex + relx] cvS aveImage(result_name, image_copy)
負にする
じゃああとは目を検出するだけだね?
• 顔(haarcascade_frontalface_default.xml)はOpenCVに添付されている–空前の笑い男ブーム(笑)
• 目は?–現在はhttp://umitanuki.net/eroeye/eye_8.xml
においてあります。
– これを使ったらすぐできるの?
Your perception into the code.
• クソまじめなパターン認識も大事だが・・・
• 顔全体に対して人間が他人の「目」を認知する方法を自分なりにルール化–顔の半分より上にあるのが「目」
Your perception into the code.
• クソまじめなパターン認識も大事だが・・・
• 顔全体に対して人間が他人の「目」を認知する方法を自分なりにルール化–顔の半分より上にあるのが「目」
– 「目」は横に二つ並んでいる
Your perception into the code.
• クソまじめなパターン認識も大事だが・・・
• 顔全体に対して人間が他人の「目」を認知する方法を自分なりにルール化–顔の半分より上にあるのが「目」
– 「目」は横に二つ並んでいる
– 「目」は二つしかない
Your perception into the code.
• クソまじめなパターン認識も大事だが・・・
• 顔全体に対して人間が他人の「目」を認知する方法を自分なりにルール化–顔の半分より上にあるのが「目」
– 「目」は横に二つ並んでいる
– 「目」は二つしかない
– 「目」はかぶったりしない
Your perception into the code.
• クソまじめなパターン認識も大事だが・・・
• 顔全体に対して人間が他人の「目」を認知する方法を自分なりにルール化–顔の半分より上にあるのが「目」
– 「目」は横に二つ並んでいる
– 「目」は二つしかない
– 「目」はかぶったりしない
– 「目」の互いの大きさはそんなに変わらない
Your perception into the code.
• クソまじめなパターン認識も大事だが・・・
• 顔全体に対して人間が他人の「目」を認知する方法を自分なりにルール化–顔の半分より上にあるのが「目」
– 「目」は横に二つ並んでいる
– 「目」は二つしかない
– 「目」はかぶったりしない
– 「目」の互いの大きさはそんなに変わらない
• Happy Engineering!
def get_eyes(self, img, face=None): if not face: face = self.get_face(img) # eyes must be in upper bound on the face. subimage = cvCreateImage(cvS ize(face.width, face.height), img.depth, img.nChannels) for y in range(face.height): for x in range(face.width): subimage[y, x] = img[face.y+y, face.x+x]
顔の外には目はないので。
e_cascade_name = "eye_8.xml" self.e_storage = e_storage = cvCreateMemS torage(0) e_min_size = cvS ize(10, 6) e_image_scale = (subimage.width/120.0) e_haar_scale = 1.005 e_min_neighbors = 2 e_haar_flags = 0 rects = self.detect(subimage, e_cascade_name, e_storage, e_min_size, e_image_scale, e_haar_scale, e_min_neighbors, e_haar_flags) for r in rects: r.x += face.x r.y += face.y # eyes are only two along horizontally return self.extract2(rects)
顔だけのサブ画像から目の検出を行う
検出結果からさらに横並びな2つを取り出す
まとめ
• OpenCV万歳!(○○ぱい検出も楽しみ!)
• 「ツールつかてみた」的なノリも大事だけど!
• 人間の感覚をコードに落とすのも大事!
• 試行錯誤するって楽しい!
• こんな駄作が評価されるWebってすげー!
まとめ
• OpenCV万歳!(○○ぱい検出も楽しみ!)
• 「ツールつかてみた」的なノリも大事だけど!
• 人間の感覚をコードに落とすのも大事!
• 試行錯誤するって楽しい!
• こんな駄作が評価されるWebってすげー!
• 肖像権侵害してるよたぶん!