【要約】国会図書館のOCRをWebサービス化してみた - NDLOCR-Lite × Docker × FastAPI [Qiita_Trend] | Summary by TechDistill
> Source: Qiita_Trend
Execute Primary Source
// Problem
開発者は、NDLOCR-LiteをWebサービスとして活用する際に、以下の技術的障壁に直面した。
- NDLOCR-LiteがCLI操作を前提としており、API化が困難である。
- PDFファイルを直接読み込めず、画像への変換工程が必要となる。
- 出力されるJSONが複雑な二重リスト構造であり、パースに手間を要する。
- NDLOCR-LiteがCLI操作を前提としており、API化が困難である。
- PDFファイルを直接読み込めず、画像への変換工程が必要となる。
- 出力されるJSONが複雑な二重リスト構造であり、パースに手間を要する。
// Approach
開発者は、NDLOCR-LiteをDockerコンテナに封じ込め、FastAPIでラップする手法を選択した。
- Dockerfile内でモデルと依存関係を完結させ、環境の再現性を高めた。
- FastAPIを用いて、REST APIとして画像やPDFを受け付ける口を設けた。
- pdf2imageを活用し、PDFをページ単位の画像へ変換する工程を組み込んだ。
- 出力データのネスト構造を解消するフラット化処理を実装した。
- Dockerfile内でモデルと依存関係を完結させ、環境の再現性を高めた。
- FastAPIを用いて、REST APIとして画像やPDFを受け付ける口を設けた。
- pdf2imageを活用し、PDFをページ単位の画像へ変換する工程を組み込んだ。
- 出力データのネスト構造を解消するフラット化処理を実装した。
// Result
開発者は、DockerとFastAPIを組み合わせることで、実用的なOCR API環境を実現した。
- Swagger UIにより、APIの仕様確認とテストが容易になった。
- PDF形式のファイルに対しても、テキスト抽出とレイアウト情報の取得に成功した。
- Ubuntuサーバへのデプロイにより、外部から利用可能なWebサービス基盤を構築した。
- Swagger UIにより、APIの仕様確認とテストが容易になった。
- PDF形式のファイルに対しても、テキスト抽出とレイアウト情報の取得に成功した。
- Ubuntuサーバへのデプロイにより、外部から利用可能なWebサービス基盤を構築した。
Senior Engineer Insight
> GPU不要の軽量設計は、コスト効率の面で非常に優れている。しかし、PDF変換やサブプロセス実行は、高負荷時にレイテンシを悪化させる。大規模運用を見据えるなら、リクエストを非同期処理するキューイング機構の導入が必須だ。また、コンテナのメモリ管理にも注意を払うべきである。