らんだむな記憶

blogというものを体験してみようか!的なー

darknet-ocr (2)

YOLOv3 とか darknet - らんだむな記憶 の後半に書いたが、Colab 環境に CUDA 10.2 + cuDNN 7.6.5 が導入されているので、darknet のコンパイルは通る。
さて、Colab 上で K80 を使って darknet-ocr を動かしたい。が、ある程度進めると実行時エラーでランタイムが再起動してしまう。[ランタイム]→[ランタイムログの表示]でログを確認すると

python3: ./src/cuda.c:36: check_error: Assertion `0' failed.

という内容が見える。どうやら rnn: ./src/cuda.c:36: check_error: Assertion `0' failed. · Issue #98 · pjreddie/darknet · GitHub の問題が起きたようだ。議論の中で触れられている

ARCH= -gencode arch=compute_37,code=[sm_37]

に設定することで問題が解消され、テキスト領域のバウンディングボックスが取得できた。

ここまで来ると後は素直なもので、config.py#L7

ocrType = 'chinese'

japanese にするだけで日本語の読み取りができるようになった。ただ、読み取るターゲットのレイアウトやフォントのデザインによっては読み取りにくいものもあって、なるほど確かに難しいよな、という課題を改めて感じた。