Raspberry Pi 3でCapsLockをCtrlに変更する

Raspberry Pi 3でCapsLockをCtrlに変更するためには, /etc/default/keyboard を編集する sudo nano /etc/default/keyboard XKBOPTIONSの行がデフォルトでは指定なしになっているが, 次のようにcapslockをctrlに変更する句を挿入する. XKBOPTIONS=ctrl:noc…

Raspberry Piにemacs25をインストールする

sudo apt install emacs25 としてインストールできる。 ただし次のようなエラーメッセージが出る。 ** (emacs:12527): WARNING **: Error retrieving accessibility bus address: org.freedesktop.DBus.Error.ServiceUnkno│drwxr-xr-x 2 pi pi 4096 6月 27 1…

Raspberry Pi 3でDMAするためにBroadcom BCM2837のマニュアルを読む

DMAはCPUを介さずに直接メモリにアクセスしてメモリコピーする方式のことをいう。 メモリ→メモリ、 メモリ→ペリフェラル、 ペリフェラル→メモリの3種類のDMAでコピー可能だ。 ラズパイのメインLSIはラズパイ世代ごとに違う。 ラズパイ3は Broadcom BCM2837で…

Raspberry Piにsshで入る

Raspberry Piを買ってみたのでsshで入ってみる. 固定IPアドレス割当 デフォルトゲートウェイのアドレス情報を知るためにroute -nとコマンドを打つ pi@raspberrypi:~ $ route -n カーネルIP経路テーブル 受信先サイト ゲートウェイ ネットマスク フラグ Metr…

EuroHaptics2018で触覚提示用の振動を生成するモデルについて発表しました

趣味でやっている研究活動の一環で、 触覚に関する国際会議の1つのEuroHaptics2018 (2018/7/13-7/16) にて ポスター発表しました。 内容は、 触覚提示向けにさまざまな素材に適合するような振動を自動生成するための、 モデル構築方法 そのモデルで生成した…

GNU GLOBAL と gtags.elをインストールする

インストール http://www.gnu.org/software/global/download.htmlからパッケージをダウンロードする。 $ tar -zxvf global-6.5.4.tar.gz $ cd global-6.5.4 $ ./configure $ make $ make install 途中でcurses libraryがないと怒られる場合は、 apt-getでイ…

FlaskでAddress already in use errorとなったときの対処法

Flaskでアプリを起動しようとして, OSError: [Errno 48] Address already in use とエラーが出る原因は 前回起動時のプロセスが死んでないこと. 対処法としてはプロセスを探して殺す事を行う. ps -fA | grep python または sudo lsof -i:8080 としてでて…

日本語以外のサイトだけを対象にGoogle検索する方法

URLの末尾に「&lr=-lang_ja」を足す. 例: 日本語 https://www.google.com/search?q=apple 日本語以外 https://www.google.com/search?q=apple&lr=-lang_ja

CHI2018で発表された視触覚錯覚系システムのメモ

CHI2018に出ていた視触覚錯覚に関連する論文を読んだメモ&所感. 視覚情報をいじって重さのメタファを変化させる Breaking the Tracking: Enabling Weight Perception using Perceivable Tracking Offsets (ACMライブラリリンク) (引用) 上に引用した画像は…

触覚提示のために音響を振動に変換する方式

触覚提示のための振動を用意するには、 (1)手作業で作る方法と(2)音響から変換して作る方法(と他にも色々あるが割愛)がある. (1)手作業で作る方法は,immersionとかが出してるエディタで行う(のかな). 一方,(2)音響から変換する方法にも色々な方式がある…

IEEE Haptics Symposium 2018に行ってきた

趣味でやっている研究活動の一環で 触覚に関する国際会議の1つの IEEE Haptics Symposium 2018 に行ってきた. 会社でまるまる有給をとり,共著の方の援助を受けサンフランシスコへ. 普段は深層学習まわりしか記事にしてきていなかったが、 今回は触覚にま…

スレッドの管理

Linuxとpthreadsによるマルチスレッドプログラミング入門を読んでいる。 この記事は第二章のメモ。 スレッドを作る 本に書いてあったことはだいたい知ってたので、man pthread_createしたときのメモを載せてみる。 threadは以下のいずれかの終わり方をする …

マルチスレッドプログラミングとは

Linuxとpthreadsによるマルチスレッドプログラミング入門を読んでいる。 この記事は第一章のメモ。 pthreadに関する基本的な知識はあるので序盤はあんまりメモしなくて良いかなという感じで読み始めた。 マルチプロセスとマルチスレッドの違い コンテキスト…

Linuxでスレッドの動作コアを確認する

マルチスレッドプログラミングではテスト時にスレッドの動作コアを確認したい。 その方法をメモ。 システムモニタを使う sudo apt install indicator-multiload //インストール indicator-multiload //実行 タスクバーに出てくるシステムモニタをクリックす…

シグナルハンドラを書く最小サンプル

#include <signal.h> #include <stdio.h> #include <unistd.h> void sigcatch(int); int main() { pid_t pid = getpid(); printf("PID:%d\n", pid); if (SIG_ERR == signal(SIGHUP, sigcatch)) { printf("failed to set signal handler.n"); exit(1); } if (SIG_ERR == signal(SIGINT, sig</unistd.h></stdio.h></signal.h>…

pthread_detachについて

POSIXスレッドライブラリのdetachの説明が入門用資料を見ていてもなかなか見つからず, ようやく見つかったのでメモ. スレッドが終了したら,別のスレッドでその終了したスレッドのリソースを開放しなければならない. だが,プログラムによっては,このリソー…

pthread_cond_waitはなぜmutexを引数にとるのか

pthread_cond_wait ではmutexロック掛けてそれを引数にしなければならない. そしてその同一のmutex変数を使って対になるpthread_cond_signalでもロックを掛ける必要がある. こんな感じ. #include <pthread.h> #include <stdio.h> pthread_mutex_t mutex; pthread_cond_t cond;</stdio.h></pthread.h>…

TensorFlowのRNNを追ってみる

TensorFlowのRNN実装はサンプルが少なく、 かつそういったサンプルコードでは、 限定された一部のAPIしか使っていないなど全体を網羅しづらい感じがあるので、 なるべく全体感を思い出しやすいように、自分用にメモ。 (と言う割に基本的なAPIしか使ってない…

PyTorchでGPUメモリが解放されないときの対処法

PyTorchのDataLoaderのバグでGPUメモリが解放されないことがある. nvidia-smiで見ても該当プロセスidは表示されない. 下のコマンドで無理やり解放できる. ps aux|grep <username>|grep python|awk '{print $2}'|xargs kill</username>

Neural Style Transferを音に応用した研究たち

結論としては今のところ上手くいっていないように見える. 今後の進展にとても期待. Audio texture synthesis and style transfer https://dmitryulyanov.github.io/audio-texture-synthesis-and-style-transfer/ 初出はなんとブログ。 Gatysらの一番最初の…

触覚系テクスチャデータセット

テクスチャ画像のみのデータセットと違い、 触覚情報を含むテクスチャデータセットはあまり公開されていない。 というわけで加速度データなどの触覚情報を含む貴重なデータセットをメモ。 今後も追加予定。 LMT Haptic Texture Database http://www.lmt.ei.t…

Deep Image Priorを試す

Deep Image Prior https://arxiv.org/abs/1711.10925 「画像とはこういうもの」という事前情報がCNNの構造自体にそもそも備わっている、 というところを出発点として、大量の画像データセットによる学習を必要とせず、単一画像のみ用いて学習を行ってその画…

conditional DRAGANでのラベルの与え方

conditional GANのラベルの与え方は色々あり、 毎回どうすれば良いかよくわからず迷ってしまう。 githubの実装をみると様々に書かれている。 文献を読むよりも色んな人の実装を漁るほうが知見が貯まるこの頃。 今回はMNISTに対してDRAGANを用いて、 その中で…

SwishをCIFAR10で試してみる

Swish: a Self-Gated Activation Function https://arxiv.org/abs/1710.05941 ReLUの代わりになる活性化関数Swishの提案。 Swishの形はシンプル。 $$ f(x) = x \cdot σ (x) $$ ReLUとの違いは,non-monotonicityとsmoothnessだと思う. 小さい負の入力はReLU…

音声信号をSTFT、MS、MFCC、CQTで可視化してみる

広田研・廣瀬研にいたときに視触覚のクロスモダリティをテーマに研究をしていた。 GANの応用について調べていたら、同じクロスモダリティを扱った論文を見つけた。 Deep Cross-Modal Audio-Visual Generation https://arxiv.org/abs/1704.08292 この中で音声…

音声信号をスペクトログラム化してみる

テクスチャの識別に関する以下の読み物を読んでいたら, 加速度信号をCNNへ入力する前にフーリエ変換してスペクトログラムにしていたので、自分でも真似てみる. Deep Learning for Surface Material Classification Using Haptic And Visual Information ht…

Adversarial Examplesに興味がある

Intriguing properties of neural networks https://arxiv.org/abs/1312.6199 adversarial exampleを勉強したくて読んだ。 メモ。 本文ではDNNの直観的でない以下の2つの性質について触れている 個別ユニットを観察するのも、複数ユニットの組合せを観察する…

DRAGAN + SRResNetでいらすとや画像生成する

MakeGirlsMoeは 驚異的な生成画像の質で、お盆休み中の世間を驚かせた。 このMakeGirlsMoeの ネットワーク構造(SRResNet) 目的関数(DRAGAN) を使っていらすとや画像を生成してみる。 DRAGANについては、以前に記事を書いている。 当時あまり注目されていない…

pix2pixで車載画像の昼夜の変換を試す

最近、業務の忙しさと、 別件で進行しているモデルのパラメータチューニングの収束しなさから、 ブログ更新をしばらく行っていなかった。 一旦、更新が途絶えてしまうと、なかなかモチベーション的に再開しづらいので、 以前も試したことのあってお手軽なpix…

pix2pixの枠組みを利用した動画の異常検知

Abnormal Event Detection in Videos using Generative Adversarial Nets https://arxiv.org/abs/1708.09644 異常検知の難しさ 既存の異常データセットのサンプルサイズが小さいこと 異常の定義がはっきりしていないこと これらの課題に対して、正常なパター…