タグ

ブックマーク / memo.sugyan.com (25)

  • StyleGAN2学習済みモデルを使って任意の画像を生成させる - すぎゃーんメモ

    memo.sugyan.com の続き。 StyleGAN2 は "mapping network" と "synthesis network" の2つのネットワークで構築されていて、画像の生成を行う synthesis network への入力 dlatents_in を変化させていくことで様々な変化を出せる、というものだった。 前回は mapping network からの出力値を使って 「学習によって上手く生成できるようになった画像」のための dlatents_in の値の間を遷移させるといったことをしていたけど、実際には synthesis network には十分に様々な画像を生成できる能力が獲得されているはず、らしい。 具体的には、アイドルの顔画像だけで学習したモデルでも アイドルの顔以外の画像も生成できるかもしれない、ということ。 以下の論文で様々な実験・検証が行われている。

    StyleGAN2学習済みモデルを使って任意の画像を生成させる - すぎゃーんメモ
    tuki0918
    tuki0918 2020/02/17
  • Advent of Code 2019 に挑戦している - すぎゃーんメモ

    Advent of Code というのがある。 https://adventofcode.com/ 日ではまだあまり 知っている人/やっている人 は多くないかもしれない。検索してみても、日語の紹介記事はこれくらいしか見つからなかった。 Advent of Code の紹介 - Qiita 僕も、去年 元同僚の @ExAdamu に教えてもらうまでは存在すら知らなかった。 どういうものか、っていうのは上に貼った記事でも書かれている通りで、12/1 〜 12/25 まで 毎日1つずつ、プログラミングを使うパズル問題が出題される、というもの。 puzzle input の入力値が与えられ、それに対する回答を自分の書いたコードで計算し、出力値を submitして正解すれば星が貰える。 入力値とそれに対する正解はどうやらユーザごとに異なるものになっているようで、誰かに正解を訊く みたいなものは出

    Advent of Code 2019 に挑戦している - すぎゃーんメモ
    tuki0918
    tuki0918 2019/12/24
  • TensorFlow 2.0 時代の Keras API での画像分類器 - すぎゃーんメモ

    TensorFlowを初期の頃から触っていて define-and-run の流儀にはそれなりに慣れてしまっていたけど、そろそろTensorFlowも2.0がreleaseされそうだし(2019.09時点で 2.0rc1) 新しいinterfaceも触っておかないと、と思って勉強してみた。 Effective TensorFlow 2.0 を読むと、major changesとして "Eager execution"、recommendationsとして"Keras layers and models"が紹介されている。 これからの時代はKeras APIを使ってEager executionでやっていく必要がありそうだ。 お題: 将棋駒画像の分類 昨年くらいから将棋の画像認識をやろうと思って 駒の画像データセットを作成 していた。今回はこれを使う。 各駒14種の先手・後手で28種、空白マ

    TensorFlow 2.0 時代の Keras API での画像分類器 - すぎゃーんメモ
    tuki0918
    tuki0918 2019/09/17
  • ISUCON9 予選敗退した - すぎゃーんメモ

    ISUCON9。今年は縁あって声かけていただき id:Soudai さんと id:kamipo さんと、「失敗から学ぶISUCONの正しい歩き方」というチームで出場した。 練習会 インターネット上でよく知っている人たちとはいえ 実際に一緒に仕事をしたことも無ければチームを組んで一緒に何かをしたことがあるわけでもない。 予選の2週間前に一度集まって、1日かけて前年の予選問題を再現しつつ試し解きしてみる、という会をした。 言語は3人で共通した得意なものがあるわけではなかったので とりあえずRubyで、ということにした。 そのときの感覚では「やっぱり色んなところで躓くこともあるかもしれないけど 正しく計測して早めに大きな方針を決めて改善をしていけばそれなりの成績には辿り着けるだろう」という感じ。 DB関連はとにかく2人が強いので、自分はアプリケーションコードを如何に正確に早く書いていけるかが勝負

    ISUCON9 予選敗退した - すぎゃーんメモ
    tuki0918
    tuki0918 2019/09/09
  • TensorFlow.jsがChromeでWebWorker上でもWebGL backendで動く - すぎゃーんメモ

    tensorflow.js は処理の重さ的に worker で動かしたいのだがまだ WebWorker で動かすと cpu backend に fallback してしまうので、この issue ずっとみてる https://t.co/KYGEQSFwq5— 無糖派層 (@mizchi) July 30, 2019 僕も以前にWebWorker上でTensorFlow.jsを使おうとして WebGL backendで動かないことに気付いて諦めていたのだった。 memo.sugyan.com …と思っていたのだけど、どうも先月くらいの @tensorflow/tfjs@1.2.2 あたりから ChromeではOffscreenCanvasというのを使ってWebWorker上でもWebGL backendで動くようになったようだ。 試してみたところでは 動くのはChromeのみで、Safari

    TensorFlow.jsがChromeでWebWorker上でもWebGL backendで動く - すぎゃーんメモ
    tuki0918
    tuki0918 2019/08/02
  • 学習済みMobileNetV2モデルによる推論をTensorFlow.jsとWebWorkerを使ってブラウザ上で実行 - すぎゃーんメモ

    将棋駒画像分類の話の続き。 memo.sugyan.com 学習させたモデルでの分類結果を実際に試すときに Web上でもインタラクティブに出来ると便利そう、と思ってやってみた。 学習させたMobileNetV2のモデルを使ってTensorFlow.jsでの推論をWebWorker経由で行わせて結果表示、ていうのをようやく出来た… pic.twitter.com/L1xwjBSaXo— すぎゃーん💯 (@sugyan) October 7, 2018 学習済みモデルの変換 まずは学習済みのモデルをTensorFlow.js用に変換する必要がある。ここまではPythonの領域。 Importing a TensorFlow GraphDef based Models into TensorFlow.js 普通に tf.train.Saver を使っていると、checkpoint形式でパラメー

    学習済みMobileNetV2モデルによる推論をTensorFlow.jsとWebWorkerを使ってブラウザ上で実行 - すぎゃーんメモ
    tuki0918
    tuki0918 2018/10/09
  • ISUCON8 予選敗退した - すぎゃーんメモ

    ISUCON8。 今年は予選日程の両日に奈良で開催のHackathonイベントのお手伝いをする用事が入ってしまい、参加不可能だな〜という雰囲気だったのだけど、 イベントの初日は午後からで最初はチームビルディングとかの時間で出番無いはずだし多少は動けるかも…?ということで 一緒にHackathonサポートで奈良に来ている @kazuki-maさん と そういう事情で片手間参加のチームでも大丈夫と言ってくださった @overlastさん と3人で挑戦した。こちら2人は奈良、1人は東京。 事前に会って話す機会もなく Slackで軽く打ち合わせる程度。共通で得意な言語もなく (Go,Python,TypeScriptのひと / Java,Go,Perlのひと / Python,Perlのひと) とりあえず皆さわったことあるのはPerlか… という感じでPerlに。 前日夜に慌てて自分のPCにper

    ISUCON8 予選敗退した - すぎゃーんメモ
    tuki0918
    tuki0918 2018/09/17
  • 斜めに写った画像をCanvasで矩形に補正する - すぎゃーんメモ

    将棋駒画像分類の話の続きのような、あんまり関係もないような。 memo.sugyan.com memo.sugyan.com 結局、素材を組み合わせて自動で生成しただけの駒画像ではやはりデータが足りていないようで、「やはりもっと様々な画像から人力でラベル付けしてデータセットを作っていく必要がありそう」ということになった。 とはいえ、インターネットから画像を拾ってこようと思うと、例えば以下のような感じで (引用元: フリー写真素材ぱくたそ) 多少ならともかく 斜めの角度から写っているものは、そのまま矩形に切り出して学習用画像データに利用するのは難しそう。 これらはうまいこと変形して使いたい。 いわゆるperspective projectionの逆変換のような操作が必要になる。 JavaScriptを使ったCanvas APIでの変換では簡単な拡大・縮小などの変換は可能だけど こういったpe

    斜めに写った画像をCanvasで矩形に補正する - すぎゃーんメモ
    tuki0918
    tuki0918 2018/09/04
  • df-pnアルゴリズムを用いた詰将棋Solverによる最善解・余詰の導出 - すぎゃーんメモ

    以前書いた、詰将棋問題生成の続き。 memo.sugyan.com 逆算による詰将棋の問題生成の方法自体は悪くないとして (バグによって有り得ない局面が出来上がったりしてしまったりもしたけど)、正しく詰将棋問題として成立するものが出来上がっているかどうかを検証するためのSolverが必要不可欠であり、これのパフォーマンスが生成のパフォーマンスにも影響してくる、というようなことを書いた。 実際、前回の記事のときに実装したSolverでは 総当たり的に探索するのは3〜5手が限界 詰将棋のルールに則る動きに限定しても、有り得る局面は指数関数的に増加する 合駒が絡む問題に対して正しく解が導けないことがある 先の展開まで読まないと無駄な合駒かどうかの判定ができない といった問題があった。 df-pnアルゴリズムによる探索 2002年の論文「df-pn アルゴリズムの詰将棋を解くプログラムへの応用」が

    df-pnアルゴリズムを用いた詰将棋Solverによる最善解・余詰の導出 - すぎゃーんメモ
    tuki0918
    tuki0918 2018/02/26
  • npm configで設定値を管理 - すぎゃーんメモ

    npmって意外と高機能で、色んなこと(こんなのとか)が出来る。 で、最近知ったのがnpm config。 https://github.com/isaacs/npm/blob/master/doc/config.md ちゃんとドキュメント見たことなかったから知らなかったけど、これで諸々の設定値を保存しておいたりできる、とのこと。 例えば $ npm config set foo bar $ npm config get foo barこんなカンジでkeyとvalueを設定する。list表示でまとめて確認も可能。 $ npm config list ; userconfig /home/sugyan/.npmrc foo = "bar" ; node install prefix = /home/sugyan/.nvm/v0.4.11 ; node bin location = /home/

    npm configで設定値を管理 - すぎゃーんメモ
    tuki0918
    tuki0918 2017/12/01
  • ISUCON7 勝てなかった - すぎゃーんメモ

    ISUCON7に id:kazeburo さんと id:gfx さんと、チーム「スギャブロエックス」で出場して、入賞もならず、最終結果5位で終わりました。 うーん 悔しい。 お題 WebSocketで通信しつつ各ルームで複数のユーザが操作するので同期をとりながら値を更新していく、的なもの。 チームの動き 予選のときと同様に、言語はNode.jsを選択。 今回はTypeScriptを使うようにしていっても良いのでは、と gfxの発案で序盤にすべてのコードをTypeScriptに変換して それを中心に進めていくことに。 実際、TSLintが良く効いて構文エラーや簡単な型の不一致などはすぐに気付くことができて編集しやすくて良かったです。 序盤の各サーバへのログインやNodeのバージョン変更、deployのためのscriptなどの環境整備はお2人に任せて、自分はとにかくアプリケーションをまずgit

    ISUCON7 勝てなかった - すぎゃーんメモ
    tuki0918
    tuki0918 2017/11/27
  • ISUCON7 予選通過した - すぎゃーんメモ

    ISUCON7に id:kazeburo さんと id:gfx さんと、チーム「スギャブロエックス」で出場して、2日目の上位3チーム枠の2位で予選通過しました。 isucon.net スコアの遷移は以下の通り、最終スコアは 522,461。 時刻 スコア 2017-10-22T13:06:44 6012 2017-10-22T13:16:24 5108 2017-10-22T13:35:01 4721 2017-10-22T13:49:24 6870 2017-10-22T14:36:24 4951 2017-10-22T14:41:01 6749 2017-10-22T15:03:44 6164 2017-10-22T15:24:50 15095 2017-10-22T15:29:00 20526 2017-10-22T15:37:00 17957 2017-10-22T15:46:22

    ISUCON7 予選通過した - すぎゃーんメモ
    tuki0918
    tuki0918 2017/10/23
  • TensorFlowで顔検出器を自作する - すぎゃーんメモ

    19日に行われた Kyoto.なんか #3 で発表・デモをさせていただいた内容まとめです。 はじめに: 検出器の重要性 アイドル顔識別 をずっとやっている中で、顔の識別・分類(Classification)はCNNを使って出来ているけれど まだ上手く出来ていない別のタスクがあって。 それが画像内からの顔領域の検出 (Detection, Localization)。 「画像内に写っている人物が誰であるか」を識別するためには、まずはその画像に写っている「顔」を検出する必要がある。 その検出された顔それぞれについて分類器にかけて「この顔は○○さん」「この顔は××さん」と分類していくことになるわけで。 分類器に与える入力画像を切り抜いて抽出するのにもまず顔領域を検出する必要があるし、その分類器を学習させるためのデータセットも、様々な画像から顔領域を検出して切り抜いてそれぞれに対してラベル付けする

    TensorFlowで顔検出器を自作する - すぎゃーんメモ
    tuki0918
    tuki0918 2017/08/21
  • TensorFlowによるDeep Learningでのアイドル顔識別モデルの性能評価と実験 その2 - すぎゃーんメモ

    以前に試した、アイドル顔識別の性能評価。 memo.sugyan.com それから半年以上も経ってデータ数も増えたし ちょっと確かめたいこともあったので、再び試してみた。 新データセット 前回は 40人×180件 で 計7,200件 を用意したけど、今回はもう少し多めにデータが集まっていたので(卒業などでもうアイドルではなくなってしまった子も居るけど…)、今回は 120人×200件 で 計24,000件 を抽出してデータセットを作成した。 実際にラベル付けしたデータから抽出してみると、元が同じ画像なのに加工や顔検出器のブレなどで別の顔画像として登録されてしまっているもの、明らかに同じ日・同じ場所で連写していて「ほぼ同じ顔画像」と思われるもの などの重複が結構あることに気付いて、頑張って出来る限り排除した。 前回もある程度は人力でチェックしていたけど、今回は学習済みモデルにわせた中間層出力

    TensorFlowによるDeep Learningでのアイドル顔識別モデルの性能評価と実験 その2 - すぎゃーんメモ
    tuki0918
    tuki0918 2017/02/22
  • TensorFlow 0.12 のEmbedding Visualizationを動かす - すぎゃーんメモ

    === 追記 2017.06 === 書いてから時間が経ち 情報が古くなってしまっていましたが、最近の変更に合わせた補足を含む記事を書いていただきました。ありがとうございます! fuchami.hatenadiary.jp === 追記ここまで === おぉぉ、TensorFlow 0.12のEmbedding Visualisationでアイドル顔識別の中間層出力を可視化できた(30人x30点ずつ)。PCAだとゴチャゴチャしてるけどT-SNEだとはっきり分かれる、とか選択したものと距離が近いもの数点に絞って可視化、とかも出来る pic.twitter.com/8aGiGDowPa— すぎゃーん💯 (@sugyan) December 4, 2016 3Dでグリグリ動かせるし面白い pic.twitter.com/dXf05ikSXx— すぎゃーん💯 (@sugyan) Decembe

    TensorFlow 0.12 のEmbedding Visualizationを動かす - すぎゃーんメモ
    tuki0918
    tuki0918 2016/12/07
  • TensorFlowで顔識別モデルに最適化した入力画像を生成する - すぎゃーんメモ

    動機 elix-tech.github.io の記事を読んで、「可視化」の項が面白いなーと思って。 引用されている図によると、人間の目にはまったく出力クラスとは関係なさそうに見える画像でもCNNによる分類器は騙されてしまう、ということのようだ。 なるほど分類モデルの方を固定しておいて入力を変数として最適化していけば任意の出力に最適な入力を得ることができるのか、と。 自分でもやってみることにした。 分類モデル TensorFlowによるDeep Learningでのアイドル顔識別モデルの性能評価と実験 - すぎゃーんメモ の記事で使ったモデルとデータセットで、ここではCross Validation用にデータを分けずに7,200件すべてを学習に使い20,000 step進めたものを用意した。 このモデルは学習したアイドルたちの顔画像に対してはかなりハッキリと分類できるようになっていて、試しに

    TensorFlowで顔識別モデルに最適化した入力画像を生成する - すぎゃーんメモ
    tuki0918
    tuki0918 2016/07/13
  • TensorFlowによるDeep Learningでのアイドル顔識別モデルの性能評価と実験 - すぎゃーんメモ

    以前から書いているDeep Learningによるアイドル顔識別の話の続き。 コツコツと顔画像収集とラベル付けを続けて、そこそこにデータが集まってきたので ここらでちゃんと性能評価をしてみよう、と。 データセットの作成 今回は、現時点で重複なく180件以上の顔画像が集まっている40人のアイドルを分類対象とした。 対象アイドル一覧 これらのアイドルに分類のラベルindexを振り(推してる順とかじゃなくてランダムにね)、それぞれから無作為に抽出した180件の顔画像をそれぞれラベルとセットでレコードを作り、シャッフルして30件ずつ6つのデータセットに分けて保存。 data-00.tfrecords data-01.tfrecords data-02.tfrecords data-03.tfrecords data-04.tfrecords data-05.tfrecords レコードは、以前の記

    TensorFlowによるDeep Learningでのアイドル顔識別モデルの性能評価と実験 - すぎゃーんメモ
    tuki0918
    tuki0918 2016/06/15
  • TensorFlowでのMNIST学習結果を、実際に手書きして試す - すぎゃーんメモ

    Deep Learningという言葉を色んなところで聞くようになり、Googleからも TensorFlow というものが出たし、そろそろちょっと勉強してみるか〜 ということで初心者が機械学習に手を出してみた。 TensorFlowのtutorialを見てみると、まず最初に「MNIST」という手書き文字の識別問題が出てくる。その問題に対して、こういうモデルを作ってこうやって学習させていくと91.2%くらいの識別率になります、さらに飛躍させてこういうモデルでこうやって学習させると99.2%くらいまで識別率が上がります、とか書いてあって、確かになるほどーと数字で納得もできるのだけど、せっかくなら実際にその学習結果を使って自分の書いた数字を識別してもらいたいじゃないか、ということで そういうのを作ってみた。 https://github.com/sugyan/tensorflow-mnist c

    TensorFlowでのMNIST学習結果を、実際に手書きして試す - すぎゃーんメモ
    tuki0918
    tuki0918 2016/05/21
  • TensorFlowによるディープラーニングで、アイドルの顔を識別する - すぎゃーんメモ

    以前は MNISTの例を使って画像識別を試してみた けど、次はカラー画像についての識別を試してみる。 「アイドルなんてみんな同じ顔に見える」って 最近も言われてるのかどうか知らないけど、自分もつい5年前くらいまではそう思っていたわけで。その識別を機械学習でやってみよう という試み。 最近はほとんどライブに行かなくなってしまったけど大好きなももいろクローバーZちゃんを題材にしてみることに。 5人のメンバーの顔は機械学習によってどれくらい分類できるようになるのか?? CIFAR-10 CIFAR-10 という、32×32サイズのカラー画像を10種類のクラスに分類する識別課題があり、そのデータセットが公開されている。これを実際にTensorFlowで学習するための畳み込みニューラルネットワークのモデルや関数などがtensorflow.models.image.cifar10パッケージに同梱されて

    TensorFlowによるディープラーニングで、アイドルの顔を識別する - すぎゃーんメモ
    tuki0918
    tuki0918 2016/05/21
  • TensorFlowによるDCGANでアイドルの顔画像生成 - すぎゃーんメモ

    アイドル顔識別のためのデータ収集 をコツコツ続けて それなりに集まってきたし、これを使って別のことも…ということでDCGANを使ったDeep Learningによるアイドルの顔画像の「生成」をやってみた。 まだだいぶ歪んでいたりで あまりキレイじゃないけど…。顔画像を多く収集できているアイドル90人の顔画像からそれぞれ120件を抽出した合計10800件をもとに学習させて生成させたもの。 分類タスクとは逆方向の変換、複数のモデル定義などがあってなかなか理解が難しい部分もあったけど、作ってみるとそこまで難しくはなく、出来上がっていく過程を見るのが楽しいし とても面白い。 DCGANとは "Deep Convolutional Generative Adversarial Networks"、略してDCGAN。こちらの論文で有名になった、のかな? [1511.06434] Unsupervise

    TensorFlowによるDCGANでアイドルの顔画像生成 - すぎゃーんメモ
    tuki0918
    tuki0918 2016/05/16