最近読んだ本を紹介するぜ!
これはすごい
【TVアニメ化】響け! ユーフォニアム 北宇治高校吹奏楽部へようこそ (宝島社文庫)
- 作者: 武田綾乃
- 出版社/メーカー: 宝島社
- 発売日: 2013/12/05
- メディア: 文庫
- この商品を含むブログ (21件) を見る
【TVアニメ化】響け! ユーフォニアム 2 北宇治高校吹奏楽部のいちばん熱い夏 (宝島社文庫)
- 作者: 武田綾乃
- 出版社/メーカー: 宝島社
- 発売日: 2015/03/05
- メディア: 文庫
- この商品を含むブログ (6件) を見る
響け! ユーフォニアム 3 北宇治高校吹奏楽部、最大の危機 (宝島社文庫)
- 作者: 武田綾乃
- 出版社/メーカー: 宝島社
- 発売日: 2015/04/04
- メディア: 文庫
- この商品を含むブログ (7件) を見る
これはつらい
【TVアニメ化】響け! ユーフォニアム 北宇治高校吹奏楽部のヒミツの話 (宝島社文庫)
- 作者: 武田綾乃
- 出版社/メーカー: 宝島社
- 発売日: 2015/05/25
- メディア: 文庫
- この商品を含むブログ (10件) を見る
これはすごくいい
響け! ユーフォニアム 北宇治高校の吹奏楽部日誌 (宝島社文庫)
- 作者: 武田綾乃
- 出版社/メーカー: 宝島社
- 発売日: 2016/10/06
- メディア: 文庫
- この商品を含むブログを見る
以上だ!
食器輪郭特徴量でじゃんけん画像識別
OpenCV + Pythonでじゃんけん画像の識別をやった。
画像から抽出した特徴量を比較してグーチョキパーに分類するという流れで、特徴量は食器輪郭特徴量を手の輪郭に対してほぼそのまま使った。 食器輪郭特徴量の論文は
http://www.topic.ad.jp/sice/papers/236/236-12.pdf
食器輪郭特徴量はものの輪郭に対して重心からの距離と接線方向のヒストグラムをとる方法で、食器の分類に使える。図は食器輪郭特徴量の論文から引用
じゃんけんの識別では、画像からラベルまでは
画像に対して大津の2値化をして背景と手を分離
ラプラシアンフィルタでエッジを検出
エッジを線をなす順番に並び替える
線から食器輪郭特徴量を抽出
Bhattacharyya距離とk-近傍法を使って学習データからクラス分類
みたいな流れで処理する。特徴量は大体下の図の感じのがとれる。重心からの距離は全ての輪郭点についての重心からの距離を\( \bf r \)として\( \bf r \gets \frac{r}{\max({\bf r})} \)と正規化するので0から1までの範囲で収まる。食器輪郭特徴量の論文ではカメラと食器の距離が全ての写真で一定なことを仮定していた(多分)ので手画像では正規化が必要になった。
Bhattacharyya距離で各ヒストグラムを比較すると重心からの距離ヒストグラムについての距離\( d_r \)と接線方向ヒストグラムについての距離 \( d_\theta \)がとれるが、これらを
として線形結合して最終的な画像間の距離 \( d \) を決める。
画像から輪郭線を並び替えたところまでを出力するスクリプト:
輪郭線から特徴量を抽出してk近傍でクラス分類して識別成功率をみるスクリプト:
実験
PRMUのデータセットを学習データにして自分で撮った写真19枚を分類してみて成功率をみる。
自分で撮った写真:
PRMUのデータセット(http://www.ccm.media.kyoto-u.ac.jp/alcon2011/):
PRMUのデータセットは12枚を90度ずつ回転させて48枚分の学習データにした。k近傍はk=3で固定して、輪郭点の数dを10から150まで10刻み、重心からの正規化距離と接線方向の距離の重みw(どちらのヒストグラムを比較においてより重視するかの値)は0から1まで0.05刻みで振った。
やはり輪郭点の数が多いほうが成功率が高い傾向がある。グーチョキパーでヒストグラムの差異がより大きくなるからだと思う。あと、重心からの距離の割合が大きくなると成功率がやたら下がる傾向がある。これは重心からの正規化距離だけだとグーとパーの区別がつかなくなることから起こっている。
画像から抽出した輪郭点を線をなす順番に並び替えるアルゴリズムがオリジナルなせいで1枚2分ぐらいかかる。リアルタイムに処理できるようにしたい。
おすしの世界のだいぼうけん
さあみんな!ぼくとおすしの世界を見に行こう! うわああああ!!!!!!!!!!!!!!!
天海春香さんと会話したい 20
グラフの出し方があまりよくない気がするが、これは返答発言に含まれる名詞数を表したものである。
返答発言の名詞数が10を超えたものを抽出した。こういった感じの返答は往々にして「変な返答」になってしまう。一定の基準でコーパスからこういったセットを取り除かなければならない。
名詞数に制約を設けたところ、28214 → 16726 と減少した。まあまだ使える数あるからいいでしょう
これがわいの言葉や
「自我が破綻したおっさん」というキャラにハマってしまったので、変換器を書いた。
Webページの翻訳もできる。
html内にある日本語の固有名詞をわいに置換する · GitHub
Wikipediaの記事で試してみた。勘のいい人ならすぐに気づくと思うが、一瞬しか面白くない。
天海春香さんと会話したい 19
文をtf-idfで重み付けしたベクトルで表して、コサイン類似度で類似度を出す方法を試してみる。
まずコーパス内の全ての2-gramを抽出し、重複を削除すると40355個になる。40355次元のベクトルで一文書を表現することになる。
tf-idfで文書内それぞれの2-gramに対し重みをつけていって、ベクトルとして書き出してみた。 めっちゃ疎なベクトルができた。
ほんとは3次元じゃなくて40355次元なんだけど、今こんな感じでベクトルがたくさんある。
入力された文(話しかけられた文)もベクトルにすると、こんな具合に空間内に入ってくる。
ベクトルだから、それぞれに入力文とのなす角θがある。このとき、cosθの値を文章の類似度と捉えることができる。
この仕組みでとりあえず組んでみた。
gist.github.com コーパスはこんな形式で保存されている。
gist.github.com コーパスの"|||"で句切られている文字列の左側だけをnattoで分かち書きして2-gramに変換しベクトルにする。
gist.github.com こんな感じのベクトルができる。あまりにも疎なので「どこが0じゃない値か」みたいな形式にしておく。
gist.github.com できたベクトルを読み取って入力文ベクトルと比較してテストケースの結果を出力する。
gist.github.com テストケースに対する返答の結果。なんかあんまり良くない... ちょっと荒削りすぎた
そもそもSSのセリフだとtf-idfで重み付けするのがあまりよくない気がしてきた 品詞とかその辺の情報で重み付けしたい感じがある
LSIなどを使って密なベクトルに変換するのも試したいが、疎なベクトルのままやる方法を色々試そうと思う