TadaoYamaokaの開発日記

個人開発しているスマホアプリや将棋AIの開発ネタを中心に書いていきます。

2017-01-01から1年間の記事一覧

WindowsのPythonでOpenGLを使う

写真の線画化を、iBUG 300-Wの300枚の画像に試してみたけど、あまりきれいな線画が生成できなかった。 学習データの生成には他のアプローチを試したい。 Live2Dのような方法で、線画のキャラクタの向きや表情のバリエーションを増やせないかと考えている。 L…

リアルタイムにマンガの顔パーツ検出を行ってみた

以前に書いた以下の日記の内容を組み合わせて、リアルタイムにマンガの顔パーツ検出を行ってみました。 dlibでマンガの顔認識をやってみた DCNNによるマンガキャラクターの顔パーツ検出 Surfaceのカメラでリアルタイムに顔器官検出を行う リアルタイムにマン…

Surfaceのカメラでリアルタイムに顔器官検出を行う

以前日記に書いたdlibを使った顔器官検出をSurfaceのカメラを使ってリアルタイムに行ってみました。 import sys import dlib import cv2 if len(sys.argv) != 2: print("realtime_shape_predictor.py model") exit() model = sys.argv[1] predictor = dlib.s…

SurfaceのカメラをPythonからリアルタイムに使う

SurfaceのカメラをPythonからリアルタイムに使うには、OpenCVを利用して以下のように記述する。 import cv2 video_capture = cv2.VideoCapture(1) while True: ret, frame = video_capture.read() cv2.imshow('Video', frame) if cv2.waitKey(1) & 0xFF == o…

写真を線画化する

マンガの顔パーツ検出を試みているが、マンガの顔画像と検出点がセットになった教師データを大量に入手することができない。自分で入力したデータで検出精度の実験を行って、ディープラーニングを使うことで、単一のコミックの画像であればかなりの精度で検…

TensorFlowをWindowsにインストール

以前の日記で公式バイナリをインストールする方法を書いていましたが、バージョン1.0がリリースされたことで内容が古くなったので、書き直します。公式のページを見ればわかる内容なので、あまり価値のある内容ではないですが。 前提ソフトウェアとして、以…

デブサミ2017 【DevBooks】で同人誌を出します

デブサミ2017 【DevBooks】で、Andirogueというサークルで頒布する同人誌に記事を寄稿しました。以前の日記で書いていたAlphaGoに関する記事です。1ページ目の内容はこんな感じ。 サークルのメンバが書いた技術的な内容からゆるふわな記事まであります。 よ…

DCNNによるマンガキャラクターの顔パーツ検出(追試3)

前回に続き、学習のハイパーパラメータの影響を考察する。今回は、ミニバッチサイズを変更した場合の影響について調べた。ニューラルネットワークの学習は、通常ミニバッチ単位で更新を行う。 ミニバッチのサイズは、大きくすると勾配のばらつきが安定するた…

DCNNによるマンガキャラクターの顔パーツ検出(追試2)

前回の日記で初期値の変更や正則化やBatch Normalization、フィルター枚数などを変更した場合の効果について調べた。ここでは、さらに畳み込み層のゼロパティングの有無とカーネルサイズの影響について調べた。 ゼロパティング 畳み込み層のパディングは、一…

DCNNによるマンガキャラクターの顔パーツ検出(追試)

前回の日記では正則化など行わずにRMSpropを使用して学習を行ったが、初期値の変更や正則化やBatch Normalizationなどを行った場合にどうなるか試してみた。 初期値の変更 ChainerのConvolution2Dのパラメータの初期値は、デフォルトではHeの初期値で初期化…

DCNNによるマンガキャラクターの顔パーツ検出

以前の日記でdlibを使用してマンガのキャラクターの顔パーツ検出を行った。しかし、dlibの方法は、マンガキャラクターには有効ではなく、顔パーツを検出できなかった。そこで、DCNNを使用して顔パーツ検出(顔器官検出)ができるか試してみた。 dlibで実装され…

音声スペクトルモニター(Audio Spectrum Monitor)をバージョンアップ

Androidアプリの音声スペクトルモニター(Audio Spectrum Monitor)をバージョンアップしました。前回のアプデートから1年以上更新していませんでしたが、ボーカル音程モニター(Vocal Pitch Monitor)の方で改善した内容を反映しました。あと、前回の日記で書い…

ゼロパティングを使用して自己相関関数でのピッチ推定の精度を向上する

前回の日記で自己相関関数によるピッチ推定の精度をN倍の位置のピークを使用することで向上できることを示した。Nを大きくすることで精度を高めることができるが、Nの上限はフレーム長により制限される。単純にフレーム長を長くした場合、応答性とのトレード…

自己相関関数でのピッチ推定の精度向上

以前の日記で、自己相関関数でのピッチ推定の誤差について検証した。自己相関関数で求めたピッチは、高周波数で誤差が大きくなることを示した。 ここでは、それを改善する方法について検証する。 自己相関関数のピークの位置をnとすると、周波数fは以下の式…

スマホでのFFTの処理時間

FFTでスペクトル推定を行う際、フレーム長を長くするほどより周波数領域で精度を上げることができる。しかし、フレーム長を長くすると実行時間も長くなる。スマホでリアルタイムで解析を行うような場合、実行時間について考慮が必要になる。ここでは、フレー…

自己相関関数とピッチ推定の誤差

ボーカル音程モニター(Vocal Pitch Monitor)では、ピッチ推定に自己相関関数を使用している。自己相関関数を使用するメリットとしては、 ノイズに強い 低周波数での誤差が少ない という点があげられる。逆にデメリットとしては、高周波数の誤差が大きくなる…

ゼロパディングとFFTによるスペクトル推定の精度

ボーカル音程モニター(Vocal Pitch Monitor)では、ピッチ推定に自己相関関数を使用しているが、精度を高めるために、FFTの値も使用している。離散フーリエ変換(FFT)で、スペクトル推定の分解能を高めるために、ゼロパディングという手法が用いられる。ここで…

ボーカル音程モニター(Volcal Pitch Monitor)のバージョンアップ

Androidアプリのボーカル音程モニター(Volcal Pitch Monitor)をバージョンアップしました。play.google.com 今回の更新内容は、以下の通りです。 音程の解析精度を向上 自動スクロールの速度の設定を追加 メイン画面からテンポ機能のオン/オフを可能とした …

新年あけましておめでとうございます

アプリ開発のモチベーション維持のために、このブログをはじめたのが2年前。 今年で3年目になります。飽きっぽい自分にしてはよく続いています。去年はAlphaGoに影響されて、ディープラーニングのネタを扱ったおかげでアクセスが増えた気がします。ディープ…