CV・NLPハマりどころメモ

画像認識と自然言語処理を研究する中でうまくいかなかったことと、その対策をまとめる自分用メモが中心。

画像ギャラリーをワンクリックで作成[HTML]

Arles Image Explorer をダウンロードする

Webサイト用の画像ギャラリーを生成するツール「Arles Image Explorer」を下記のサイトからダウンロードし,インストールする.

https://www.digitaldutch.com/arles/

対応OSはWindows

Arles Image Explorerを開くと,以下のような画面がでてくる.

f:id:Vastee:20190714193748p:plain

画像をドラッグアンドドロップする

画像をドラッグアンドドロップし,アップロードを行うと,以下のような画面になる.

f:id:Vastee:20190714193801p:plain

各種設定を行う

画像をアップロード後,左上のWeb Pageボタンを押して各種設定を行う.

今回は,ほぼデフォルトのまま使ったのだが,画像の配列やサイズを変更したり,Index Page>HTML Design...で文字のフォントや色や,htmlのトップに表示するコンテンツを追記することもできるようであった.

Allボタンを押す

Allボタンを押して,ギャラリーを生成.

完成

以下のようなギャラリーがHTMLで生成される.

f:id:Vastee:20190714195054p:plain

フォルダ構成としては,以下のようになっており,入力画像とサムネイル画像がきれいに整理されて保存されている.

f:id:Vastee:20190714195247p:plain

Arles Image Explorer で生成されたhtmlやアイコンマークは自分で編集可能なため,拡張性もある.

Webページのプロトタイプを作成する際に役に立ちそうなツールだ.

NLTKでアノテーター間の合意度(Inter Annotator Agreement)[NLTK]

NERに使うタグ付けデータをアウトソースにより作成したのだが,アノテーションの信頼度が分からない.

このため,NLTKでアノテーター間の合意度を算出した.これはその時のメモである.

3人のアノテーターが付けたラベルに対し,Cohen's kappa(1960)とKrippendorff alpha(1980)を算出してみる.

from nltk.metrics import agreement

toy_data = 
[['1', 5723, 'ORG'],
['2', 5723, 'ORG'],
['3', 5723, 'ORG'],
['1', 55829, 'LOC'],
['2', 55829, 'LOC'],
['3', 55829, 'ORG'],
['1', 259742, 'PER'],
['2', 259742, 'LOC'],
['3', 259742, 'PER'],
['1', 269340, 'PER'],
['2', 269340, 'LOC'],
['3', 269340, 'LOC']]

task = agreement.AnnotationTask(data=toy_data)

task.kappa()
>> 0.2929292929292929

task.alpha()
>> 0.2978723404255319

ここまでできたはいいが,3人のアノテーションが入力であった場合にもkappaが算出できているのがなぜだか分からない.

本来,kappaは2人の間の合意度を算出するものであるからだ.3人以上の時には,Fleiss' Kappaという手法が存在するらしいのだが,nltkにも実装されているのか?

nltkのソースコードを調べてみると,以下のようにmulti kappaの記述と,Fleissの名前がコメントアウトにあったので,どうやら3人以上にも対応してるみたい.

def multi_kappa(self):
    """Davies and Fleiss 1982
    Averages over observed and expected agreements for each coder pair.

    """
    Ae = self._pairwise_average(self.Ae_kappa)
    return (self.avg_Ao() - Ae) / (1.0 - Ae)

nltk.metrics.agreement — NLTK 3.4.4 documentation

ついでにkappaに関するブログも載せる

bellcurve.jp

Git LFS のインストール手順[Git]

curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash

sudo apt-get install git-lfs

git lfs install

上の3ステップでインストール完了

そして、以下みたいなファイルがある場所で

version https://git-lfs.github.com/spec/v1
oid sha256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
size 223178568

下のコマンドを実行するとファイルがダウンロードされる

git lfs pull

git lfsでファイル管理されたリポジトリからファイルをダウンロードするための手順としては、git cloneで対象リポジトリをクローン、クローンしてきたリポジトリ内でgit lfs pullを実行する、になる。

参考

github.com

packagecloud.io

学習を複数回繰り返した際にOMMがでたときの対処法[GPU]

対処法

nvidia-smi からプロセスのPIDを確認し、kill コマンドでプロセスを消すと解消。

f:id:Vastee:20190707132318p:plain

nvidia-smiコマンドを入力すると、下の方にプロセスがPID付で一覧表示される。あとは、kill PIDでプロセスを削除し、メモリを解放する。

上の画面だと、1252Mもメモリをくっているプロセス(PID=22322)をkill 22322で消すと、OMMエラーが解消された。

ラズパイを固定IP化するときは手持ちのルーターでDHCP固定割当をする[raspi]

LAN(ローカル)環境でラズパイを使うときは,ルーターで設定をおこなうことでIPの固定化ができる.

Buffaloのルーターでのやりかた

www.buffalo.jp

sudo dpkg-reconfigure keyboard-configurationが再起動の度にリセットされる[Ubuntu]

困りごと

sudo dpkg-reconfigure keyboard-configuration

Ubuntu16.04で上のコマンドをうちこんでも再起動の度に設定がリセットされてしまう。

対象法

設定ファイルを直接変更

/usr/share/ibus/component/mozc.xml
<layout>○○<layout>を<layout>jp</layout>

/etc/default/keyboard
XKBMODEL=◯◯をXKBMODEL="pc105"
XKBLAYOUT=◯◯をXKBLAYOUT="jp,jp"

参考

ja.stackoverflow.com