Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.

PYTHON QUEST

131 visualizaciones

Publicado el

イノベーションを起こすためにアシッドシミュレータを作ってみたよ、の話。
Pythonista3でiPhoneをヘッドマウントディスプレイ化してみた。
Tsukasa Shirai

Publicado en: Ingeniería
  • Sé el primero en comentar

PYTHON QUEST

  1. 1. START CONTINUE 蘇るアシッド伝説
  2. 2. プロローグ
  3. 3. AIの流行に乗ってPythonを始めた。しかし… 全然頭に入らないディープラーニングの基礎理論とか実装とチューニングとかこれ で一体何ができるんだろうとか想像できないもしかしてもう自分はだめなのか?シ ンギュラリティとかなんと2045年よりもずっと前に淘汰されてしまうのか?高校数 学とかちゃんとさぼらずやっておけばよかったんだよ一体何をしてたんだタイムマ シンがあったら高校生の自分を小一時間説教するねああでもきっと耳を貸さないだ ろうな耳を貸すくらいなら最初から勉強してるよなていうかこんな こと考えてる時間があるなら勉強すりゃよくね?でも頭に何にも 入らないんだよなあってこれ最初から一歩も進んでないしホン トに馬鹿なのか馬鹿なのか自分ていうかいまさらそんなこと 気づいたのかよそんなことよりKerasいじったほうが早くね? でもよくわかんないから配列と偏微分をとかああもういやに なるいい加減一歩踏み出せないのか?でもわかんないんだよな… どうしたらいいのか。イノベーションを起こすには?
  4. 4. 困った末にリンゴおじさんに救いを求めると… LSDの摂取は、人生で 行ったことの中で最も 重要な経験のひとつだ。 私はドラッグなしでは 成功できなかっただろう。 それって犯罪じゃん
  5. 5. そこで健全なアシッド体験を実現することに Pythonでヘッドマウントアシッドシミュレータを作ろう!
  6. 6. iPhone+Pythonista3でお手軽開発!のはずが… iOS API AVCaptureSession AVCaptureSessionPreset* AVCaptureDeviceInput AVCaptureVideoDataOutput Pythonista3 Scene (エフェクト用パネル) PNGファイル glsl ほぼObjective-Cなんですけど
  7. 7. それでも強引に表示させるところまではできた でも5秒かそこらで止まる。もうちょっとちゃんとしないと!
  8. 8. ところでお前、誰よ?
  9. 9. 自己紹介 名前:しらい つかさ 技術:Python初心者 好物:鯖缶(水煮) ビール(しかし最近は激安ストロング チューハイに敗北しつつある) 志向:どうしてもOOPで考えがち 「GLOBAL」という単語にピリピリしがち
  10. 10. で、アシッドシミュレータどうなった?
  11. 11. 止まる原因を突き止めろ! iOS API AVCaptureSession AVCaptureSessionPreset* AVCaptureDeviceInput AVCaptureVideoDataOutput Pythonista3 Scene (エフェクト用パネル) PNGファイル glsl ②処理タイミング とかかなあ… ①ファイル化って ちょっとなあ… 問題は2か所かな…あと機能改善もしたい
  12. 12. tempfile (①対策) MemoryBufferedReader/Writerとして使えそう Pythonの標準ライブラリらしい。 (リファレンスに出てきた) OSによって若干内部挙動が異なるようだが、 ・仮ディレクトリを生成して一時ファイルを扱う ・仮ディレクトリは実はメモリIO ・メモリが足りないとストレージにスワップ ・処理が終わると消える ということらしい。
  13. 13. ui.View (②対策) 同期フローを整えて処理の衝突を回避 iOSのネイティブUIView ラッパー(らしい) Sceneはui.Viewにおけ るパネルの一つなので、 Sceneを使うと暗黙的に ui.Viewを作るようだ。 これを明示的バインドし 画面更新フローを整える。 ui.View ここでiOS APIと連携し、 tempfileに定期的フレーム保存 Scene ここでtempfileから 定期的にフレームを呼び出し GLSLで加工して表示
  14. 14. GLSL (見た目をそれっぽく) マルパクでパラメータをちょっと変更して実装 Sceneに設定できるシェー ダー。 元々OpenGLを制御するため の言語らしい。 Pythonistaのサンプルゲーム 「BrickBreaker」に アシッド風GLSLがあったので、 それを拝借
  15. 15. sound(インタラクティブ化) 超簡易オーディオスペクトラムをミックスした感じ 周りの音を拾ってゆがみを変化させるようにした。 本当は動画と同じようにiOS APIにSessionとかある かもしれないが、もう疲れたのでPythonistaの soundコンポーネントを使うことにした。 動画と同じくtempfileに音配列をキャプチャして、 そこから情報をかすめ取る感じ(そのやり方がいい かどうか知らないけど)
  16. 16. できあがり構成 図式化してみるとこんな感じ (知識不足から記述が間違っていたものの補正も兼ねて) objc_utils AVCaptureSession AVCaptureSessionPreset* AVCaptureDeviceInput AVCaptureVideoDataOutput GLSL ui.View Scene sound tempfile pngファイル m4aファイル
  17. 17. ヤター!できたよん(*´з`) たまーにクラッシュするがまずまずの動き
  18. 18. 体験しようそうしよう
  19. 19. はたしてどこまで没入できるか アシッド(LSD)体験をコモディ ティ化したのがディスコ(いまはク ラブと言うのか) トラボルタのようにその世界に没入 し、イノベーションを起こせるか?
  20. 20. とりあえず箱 児童科学館で購入し たスマホを取り付け てYouTubeVR体験が できるやつ。 娘に与えたが、単な るボール紙のくせに 結構高かったけどす ぐに飽きて放って あったので再利用
  21. 21. …………。
  22. 22. ちょっと気持ち悪くなっただけでした。
  23. 23. ビールを足してみよう。
  24. 24. アシッドトリッパー兼サーバアドミニストレータ
  25. 25. 飽きた。酔ったし。
  26. 26. 一体何をしているんだい?危機感がないのかい? もっと人の役に立つものを…。あ、そういえば! アシッドシミュレータとか言ってこんなものでイノベーションが起こるわけないだ ろていうかまじめに勉強しろよいい年して一体何をしてるんだそもそもアシッドと かじゃなくてディープラーニングとかそっちの知見を深めたかったんじゃないのか よこんなことやってるうちにも世界はめちゃめちゃすごいスピードで変わってい くっていうのに単にビール飲んで酔い戯けただけじゃないのかちゃんと 線形代数とか微分とかやってないだろノートに書いて勉強しますとか 言っててもノートの最後までいかずに投げ出してるんだろ結局学 生の時と何も変わってないじゃないかタイムマシンで過去の自 分に説教するとかぬかしてる前に今の自分を説教したほうが いいんじゃないのかだいたいからしてイノベーションとかな んとかじゃなくてもっと人様の役に立つものを生み出すとか そういう視点で取り組んだほうがまだ生産性があるんじゃない のかい
  27. 27. ご清聴 あ り が と う ございます

×