DjangoでOCRアプリを作成

Python

DjangoでOCRアプリを作成してみます。
画像から文字を読み取るのにAzureのCognitive Servicesを使用します。

環境

  • Windows10
  • Python 3.8.3
  • Azure Cognitive Services Computer Vision API

事前準備

pipenvを利用して開発を行うため、pipenvを導入しておきます。

django_ocrフォルダを作成し、カレントフォルダをdjango_ocrに変更します。

pipenvを利用してDjangoの2.2の最新バージョン、requests、pillowをインストールします。

pipenvの仮想環境を有効化します。

DjangoでOCRアプリケーションの作成

プロジェクトを作成します。django_ocr_projectのあとに半角スペースで間隔を開けて
.(ドット)を入力します。

django_ocr_projectフォルダが作成されるのでsettings.py内の
LANGUAGE_CODEとTIME_ZONEを変更します。

ocrアプリケーションを追加します。

settings.pyのINSTALLED_APPSにocrのアプリケーションを追加します。

django_ocr_projectフォルダ内のurls.pyを変更します。

ocrフォルダ内にurls.pyを追加して、内容を以下のようにします。

ocrフォルダ内のviews.pyを変更します。

ocrフォルダ内にtemplatesフォルダを作成し、さらにtemplatesフォルダ内にocrフォルダを作成します。
ocr/templates/ocrフォルダ内にocr.htmlを作成し、画像アップロード用のテンプレートファイルを作成します。

ocrフォルダ内にforms.pyを追加し,画像アップロード用のクラスを作成します。
subscription_keyにはAzureのComputer Visionでリソース作成後に発行されるAPIキーを入力してください。
ocr_urlにはComputer Visionでリソース作成後に発行されるエンドポイントURLとvision/v3.0/ocrを組み合わせたURLを設定します

ocrフォルダ内にparsejson.pyを追加します。

動作確認

runserverコマンドで動作を確認してみます

ブラウザで http://127.0.0.1:8000 にアクセスすると画像アップロード用のページが表示されます。

「ファイルを選択ボタン」を押して文字を読み取りたい画像を選択します。
別記事の文章を画像化したものをテストで取り込んでみます。

画像を選択した状態で「送信」ボタンを押すと処理を開始します。

画像から文字を読み取った結果を送信ボタンの下に表示します。
今回テストで使用した画像の文字を、ほぼ正確に読み取れています。

コメント