概要

NDL古典籍OCRをAmazon EC2のCPU環境で実行してみましたので、その備忘録です。高額になりがちなGPU環境を用意せずに実行できる点が利点ですが、1画像あたり30秒から1分程度の時間がかかりますので、ご注意ください。

本環境の構築にあたり、以下の記事を参考にしています。

https://qiita.com/relu/items/e882e23a9bd07243211b

インスタンス

クイックスタートのUbuntuを選択します。

インスタンスタイプについえは、t2.medium以上をおすすめします。それより小さいインスタンスだと、エラーが発生しました。

サーバ内での設定

sshでログインし、以下を実行します。

sssssspuuuuuuyddddddtoooooohoaaaaaanpppppp3tttttt--g---iimeyyynntssviiitteunnnaanpsssllvdtttllaaaaatlll--pelllyyp&blupp&uinyyibzttslgihhudlpood-1nnoe-33sm-.asep1pesi0tnap--t-vgideeaentlvvulpigbrgaldieb2-.y0-0
sourceapp/bin/activate
pgcviidiptnricdenllqsokutnoiaetrleelhnmtoetcn-prtus_sp:c.g/ltr/ixagtdiethpuibp.com/ndl-lab/ndlkotenocr_cli.git

requirements.txtを開き、scikit-imageのバージョンを除く。また、torchtorchvisionを追加する。

clnnnaoppssltpmmdjwttlmalulpryccirammaihooidttmbeoyiigancdtwerrcbskpuntakphndleaeecck=o=ymcomiytsastsrlhh=r==evblt=gfs==e=v1t3=n-u-=bo===t=i.=.1tpfi1mr=02s2s2=6.ay=m.=m1..=.i.7.2tt=a7=e.22=3o1.62ih3g.3r3352.n1.oo.e3.s....0.4nn13=51021s=9#.=.==.241=46s.1.c1.6i92.k..0i11.t6-6image==0.16.2

引き続き以下を実行する。

pipinstall-rrequirements.txt

mmcv-fullのインストールや、学習済みモデルのダウンロードを行う。以下のようなファイルを準備して、実行する。

iiiptPooooooommmroRssssssspppirO.......oooncJsssssssrrrthEyyyyyyyttt(_CssssssstvTtttttttotjoe_eeeeeeesosrrDmmmmmmmroc,I(((((((cnhRffffff"h.c''''''w_u=pwcwccg_digdgddevaopeete_st{t{{rv.iPPPhsegnhRhRRtirestOtOOtotttJtJJpn=capEpEEs_wlsCsCC:_tdl:T:TT/)o(/_/__/r)m/D/DDdcmlIlIIlhcaRaRR..vb}b}}n_-././/d_fnsns'lvudrdr).ellclcgrl././os=gtgn.i=oeodjo1.x.lpn.jtj_/_5p_pka_./kop.3ddtisatae/p-tetnilfanasiissseitheeekf(ttkti/'t/i/_2+pn_nl5'sdrda8):lely5/kcko0/ooou9dtgtt8oene//wninRnsts&0leie&0okok0ainiu0do/on0.ccz0or&ri3p/&/p/etlfnruaumonylmczollrium/a/ptofbmmdu.ooelcddlloees/mlml.0/soz/m.dmidmzeopecild'fvpse)a/.lud-zsliPi.tspz.t{'ij/P)pp{RgcO-uJP-dEOaC{_TPev_RxeDOarIJm}REp/}CltTes_.rrDjccIph/Rg{t}"te/)oxsrtrc_chk/_onvtdeelrn_}sk/eoiktnied_nersxee.ckhoitg_mnlliatyio-ounnto//-''c))ache-dir')

cpuで実行するに当たり、config.ymldeviceを修正する

ntkdeolccd'xsssabdtc_ohestaaacaeehknevc_vvvctvneofciokeeeecisctikcrodddphcekegpeet___t_ekpn_o:_epto_s:iospitnrocei_iean'hsekrmz'rnkttcrepe_pecetih_p'krnmt:pa__:pu:ioioyudpla'_czd:1'iaa't0reee0ntysh#.es_lT0#ghor:3csm:r_:ucooouot/'grd'er':nsn_esdsdrimlrerlcto:crc_/id:/knoe'tkodnlseotl::rxte_ctenk'/_nsostksetreoekecxtkin/tei_st_n_leeksrakxoeeyittkao__eidulkn_itaosrn/yteegmoekc_ounioodts_gre/erndlmkeiesictrd_oi/nergomdlennolsci/d_/otmekngiolodnodstline/e_t/lknkimsosooo/tetndkeke/eoninmlts_soseeled/nkakedsiyilee_o_sckrul/oietatd-a_yretdcoorriouc-onntrrcgf_-or_ivbb-og1aehr..srodppetneyt-akr'hp-o_'rvkme3uop'-drveo3lc'.ejsosbolri'b'

実行

処理対象のフォルダと画像の準備

mmmkvkddieirxra-m-ppplietn.mpjpup/tgo/uiitmnpgpuutt/img

実行

pythonmain.pyinferinputtmp/output

まとめ

推論に時間がかかってもよい環境などで、参考になりましたら幸いです。