Overview# This is a memo of running NDL Classical Japanese OCR on an Amazon EC2 CPU environment. The advantage is that it can be run without preparing an expensive GPU environment, but please note that it takes about 30 seconds to 1 minute per image.
The following article was referenced when building this environment.
https://qiita.com/relu/items/e882e23a9bd07243211b
Instance# Select Ubuntu from Quick Start.
For the instance type, I recommend t2.medium or higher. Errors occurred with smaller instances.
Server Configuration# Log in via SSH and execute the following.
s s s s s s p u u u u u u y d d d d d d t o o o o o o h o a a a a a a n p p p p p p 3 t t t t t t - - g - - - i i m e y y y n n t s s v i i i t t e u n n n a a n p s s s l l v d t t t l l a a a a a t l l l - - p e l l l y y p & b l u p p & u i n y y i b z t t s l g i h h u d l p o o d - 1 n n o e - 3 3 s m - . a s e p 1 p e s i 0 t n a p - - t - v g i d e e a e n t l v v u l p i g b r g a l d i e b 2 - . y 0 - 0
s o u r c e a p p / b i n / a c t i v a t e
p g c v i i d i p t n r i c d e n l l q s o k u t n o i a e t r l e e l h n m t o e t c n - p r t u s _ s p : c . g / l t r / i x a g t d i e t h p u i b p . c o m / n d l - l a b / n d l k o t e n o c r _ c l i . g i t Open requirements.txt and remove the version specification for scikit-image. Also add torch and torchvision.
c l n n n a o p p s s l t p m m d j w t t l m a l u l p r y c c i r a m m a i h o o i d t t m b e o y i i g a n c d t w e r r c b s k p u n t a k p h n d l e a e e c c k = o = y m c o m i y t s a s t s r l h h = r = = e v b l t = g f s = = e = v 1 t 3 = n - u - = b o = = = t = i . = . 1 t p f i 1 m r = 0 2 s 2 s 2 = 6 . a y = m . = m 1 . . = . i . 7 . 2 t t = a 7 = e . 2 2 = 3 o 1 . 6 2 i h 3 g . 3 r 3 3 5 2 . n 1 . o o . e 3 . s . . . . 0 . 4 n n 1 3 = 5 1 0 2 1 s = 9 # . = . = = . 2 4 1 = 4 6 s . 1 . c 1 . 6 i 9 2 . k . . 0 i 1 1 . t 6 - 6 i m a g e = = 0 . 1 6 . 2
Continue executing the following.
p i p i n s t a l l - r r e q u i r e m e n t s . t x t
Install mmcv-full and download pre-trained models. Prepare and execute a file like the following.
i i i p t P o o o o o o o m m m r o R s s s s s s s p p p i r O . . . . . . . o o o n c J s s s s s s s r r r t h E y y y y y y y t t t ( _ C s s s s s s s t v T t t t t t t t o t j o e _ e e e e e e e s o s r r D m m m m m m m r o c , I ( ( ( ( ( ( ( c n h R f f f f f f " h . c ' ' ' ' ' ' w _ u = p w c w c c g _ d i g d g d d e v a o p e e t e _ s t { t { { r v . i P P P h s e g n h R h R R t i r e s t O t O O t o t t t J t J J p n = c a p E p E E s _ w l s C s C C : _ t d l : T : T T / ) o ( / _ / _ _ / r ) m / D / D D d c m l I l I I l h c a R a R R . . v b } b } } n _ - . / . / / d _ f n s n s ' l v u d r d r ) . e l l c l c g r l . / . / o s = g t g n . i = o e o d j o 1 . x . l p n . j t j _ / _ 5 p _ p k a _ . / k o p . 3 d d t i s a t a e / p - t e t n i l f a n a s i i s s s e i t h e e e k f ( t t k t i / ' t / i / _ 2 + p n _ n l 5 ' s d r d a 8 ) : l e l y 5 / k c k o 0 / o o o u 9 d t g t t 8 o e n e / / w n i n R n s t s & 0 l e i e & 0 o k o k 0 a i n i u 0 d o / o n 0 . c c z 0 o r & r i 3 p / & / p / e t l f n r u a u m o n y l m c z o l l r i u m / a / p t o f b m m d u . o o e l c d d l l o e e s / m l m l . 0 / s o z / m . d m i d m z e o p e c i l d ' f v p s e ) a / . l u d - z s l i P i . t s p z . t { ' i j / P ) p p { R g c O - u J P - d E O a C { _ T P e v _ R x e D O a r I J m } R E p / } C l t T e s _ . r r D j c c I p h / R g { t } " t e / ) o x s r t r c _ c h k / _ o n v t d e e l r n _ } s k / e o i k t n i e d _ n e r s x e e . c k h o i t g _ m n l l i a t y i o - o u n n t o / / - ' ' c ) ) a c h e - d i r ' ) For running on CPU, modify the device in config.yml.
n t k d e o l c c d ' x s s s a b d t c _ o h e s t a a a c a e e h k n e v c _ v v v c t v n e o f c i o k e e e e c i s c t i k c r o d d d p h c e k e g p e e t _ _ _ t _ e k p n _ o : _ e p t o _ s : i o s p i t n r o c e i _ i e a n ' h s e k r m z ' r n k t t c r e p e _ p e c e t i h _ p ' k r n m t : p a _ _ : p u : i o i o y u d p l a ' _ c z d : 1 ' i a a ' t 0 r e e e 0 n t y s h # . e s _ l T 0 # g h o r : 3 c s m : r _ : u c E o o o u E o t / ' d g r d ' e d r ' : n s i n _ e s i d s d r t i m l r t e r l c e t o : c e r c _ / d i d d : / k n o e ' t k o d h n l s e h o t l e : : r x e t e _ r c t r e n k e ' / _ e n s o . s t k . s e t r e o e k e c x t k i n / t e i _ s t _ n _ l e e k s r a k x o e e y i t t k a o _ _ e i d u l k n _ i t a o s r n / y t e e g m o e k c _ o u n i o o d t s _ g r e / e r n d l m k e i e s i c t r d _ o i / n e r g o m d l e n n o l s c i / d _ / o t m e k n g i o l o d n o d s t l i n e / e _ t / l k n k i m s o s o o o / t e t n d k e k e / e o n i n m l t s _ s o s e e l e d / n k a k e d s i y i l e e _ o _ s c k r u l / o i e t a t d - a _ y r e t d c o o r r i o u c - o n n t r r c g f _ - o r _ i v b b - o g 1 a e h r . . s r o d p p e t n e y t - a k r ' h p - o _ ' r v k m e 3 u o p ' - d r v e o 3 l c ' . e j s o s b o l r i ' b ' Execution# Prepare the folder and images for processing.
m m m k v k d d i e i r x r a - m - p p p l i e t n . m p j p u p / t g o / u i i t m n p g p u u t t / i m g
Execute.
p y t h o n m a i n . p y i n f e r i n p u t t m p / o u t p u t
Summary# I hope this serves as a helpful reference for environments where inference time is not a critical concern.