画像分類プログラム作成の説明
今回のタスクでは実世界の問題を解決するためにプログラミングをどのように用いるのかを検証することを目的としています。
今回のタスクでは、PDFファイルから画像を抽出しOpenCVを使って以下の3つのカテゴリに分類します。
- 文章
- 図表
- 画像
PDFファイルのサンプルはこのページから取得可能です。
今回取り扱うPDFファイルのタイプは以下の通りです。
文章:
図表:
画像:
pythonおよびOpenCVの環境設定は、Python3.8とOpenCVのインストールとOpenCV Simple Exercise ページのリンクを参照してください。
画像に分類されるPDFファイルでは、さらに個々の写真に切り分けて保存します。
アウトプットは以下のような形式で行います。
- PDFファイル1枚に対して、1つのディレクトリを作成する。
- その直下に3つのディレクトリ(text, diagram, image)を作成する。
- 判別結果を基に、文章と図表については各PDFページを適切なディレクトリ(text/diagram)の中に保存し、画像に関しては切り抜いた個々の写真をimageディレクトリに保存する。画像ファイルに関してはファイル名の先頭に”extracted”と付ける。(ex: extracted_###.jpg)
テキストファイルは以下のようになります。
img_1.jpg
Text
img_2.jpg
Text
img_3.jpg
Diagram
img_4.jpg
Diagram
img_5.jpg
Image
extracted_001
Image
extracted_002 Image
ヒント
コードを書き始める前に、画像とその他(文章・図表)を分類するには、データのどこに着目すれば良いか考えてみましょう。次に、文章と図表の違いはどこにあり、何に着目すれば分類できるか考えてみましょう。
PDFファイルから写真を抽出するためには、pdfimagesというLinuxコマンドを使用しましょう。
そして、ディレクトリからファイルをループで取り出す必要があります。
for directory, subdirectories, files in os.walk(source_folder):
ループはプログラミングで共通するメソッドです。 – Python for Loop
Challenge
同じデータセットを使い、CNN(畳み込みニューラルネットワーク)を用いて画像分類してください。
また、今回のChallengeでは、Pytorch(機械学習フレームワーク)を用いてCNNを構築してみましょう。
参照リンク
Python Documentation
OpenCV Documentation
Pytorch Documentation
あなたも、Avintonでこのような最先端技術を習得し活用してみませんか?
社員の成長を導きながら、AIやビッグデータなどの最先端技術をプロジェクトに活用していくことが私たちのビジョンです。Avintonの充実した技術研修でスキルアップを図り、あなたのキャリア目標を一緒に達成しませんか?