質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

2回答

1197閲覧

Pythonの機械学習で1つの画像から複数情報を認識しその情報をカテゴライズする方法

Ragashi

総合スコア1

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2022/03/27 09:37

Pythonの機械学習についてどこまでできるか教えてください教えてください。

スーパーマーケットなどの広告チラシの1つの画像から複数の情報を読み取ってアウトプットさせたいです。例えばりんごの値段ならりんごの値段と、バナナの値段ならバナナの値段と、どのチラシでもそれがりんごの値段やバナナの値段であると認識できるようにし、1回の実行でそのチラシ内のりんごやバナナの値段をアウトプットし、まとめたいです。

そのようなことは可能でしょうか?
1枚の画像から複数情報を読み取りカテゴライズできるかどうか調べても出てこなかったので質問しました。ご回答よろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

meg_

2022/03/27 09:59

「例えばりんごの値段ならりんごの値段と、バナナの値段ならバナナの値段と、どのチラシでもそれがりんごの値段やバナナの値段であると認識できる」かどうかは判りませんが、「 1枚の画像から複数情報を読み取り」というのはYOLOで出来ることと同じことを指していますか?別のことですか?
Ragashi

2022/03/27 12:51

りんごやバナナの変わらない情報は検出できると思うんですが、りんごやバナナの値段という広告チラシ内で変化する値を検出しアウトプットできるのかどうか。それがYOLOでできるならいいのですが、できないのなら他に手段があるのかどうか知りたいです。当方初心者のため知識不足で申し訳ないです。
meg_

2022/03/27 15:19

まずは「1枚の画像から複数情報を読み取りカテゴライズできるかどうか」についてYOLOではどうか?とコメントしました。「それがYOLOでできるならいい」かどうかは実際にやってみて精度等が質問者さんの要求を満たしているか確認されてください。 値段については様々なフォントが使用されているかと思うのでそれらを学習させられれば認識可能なのではないかと思います。値段と商品の紐づけは別途必要かと思いますが。
guest

回答2

0

多分既存でそんなものはないのでアイディアベースですが

  • 画像から商品と価格のセット(範囲)を抽出するモデルを作成
    • 学習データとして、広告の商品と価格が映っている部分をアノテーション
  • ある程度商品と価格のセットを認識できるモデルができれば、認識した部分を切り抜く
  • 切り抜いた中から文字と価格を抽出
    • この辺りは既存のOCR(AI OCR?)的なもので抜けると思います

似たようなことをしたい人は結構周りにいますが、(メニューから商品名と値段を引っ張るとか)なかなかうまくいった話は聞きませんね。(そもそも聞かれた私が試してないのが問題ですが...)

投稿2022/03/28 02:01

YuuT

総合スコア673

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

1枚の画像から複数情報を読み取りカテゴライズできるかどうか調べても出てこなかったので質問しました。ご回答よろしくお願い致します。

面白そうなので回答します。やってないのでただの思考実験です。

「調べても出てこなかった」原因の一つは、「課題の認識粒度がでかすぎた」があると思います。下にかみ砕いた
課題を書きます。個々の課題を解決できうる技術はそろっているのですが、それをまとめて解こうとする技術はどこにもない(あっても公開されていない、便利なので誰も公開しない――たぶん営利企業がすること)と思います。


1枚の画像から複数情報を読み取りカテゴライズできるか

多分ですが、質問のいとは「リンゴ5玉500円の写っている画像で「りんご」「5玉」「500円」という出力をするニューラルネットワークが欲しい」、というものと思います。「途方もない数のPOPデータをかき集めて、出力層の出力数をそれらの数だけ用意すればできる」と思います。

が、でかい課題のままニューラルネットワークにつっこんでも、でかい課題を細かく分解してほしい形にしてくれるほど今のニューラルネットワークはまだ賢くないです。これが根底にあり、下記のような形の回答となりました。


POPには、以下の3つがあると思います。

  1. 商品名と値段、(あれば説明)
  2. 商品の写真

#1
日本語用OCRは手書きで認識できるくらいですので、いろいろなフォントも学習させれば使えるレベルになりそうです。優秀なOCRのようで、塊ごとに認識して出力してくれるので使いやすいと思います。
次に、この認識した塊の文字列が何を指すか判別がいります。「りんご」「5玉」「500円」という文字列に価値を持たせる必要があるためです。人間であれば文字列の価値がわかりますが、ここまでだとプログラム的には「○○という文字列があるのは分かる(それの価値は知らん!)」というところで止まっているためです。これをする処理が、Word2Vecと呼ばれる処理です。「○○と文字列」を「x,y,z」みたいな座標データ(行列)に変換します。

#2
先の#1で「りんご」「5玉」「500円」の画像上の距離の近さで「どこまでがある商品の説明」か大体は判別できると思われるためです。これで処理できない場合のオプションが枠の認識です。OpenCVで探せばいくらでも出てくると思います。が、広告にもいろいろな表示があるのでもっとロバスト性の高い方法が好ましいとも思います。
※深層学習でやるなら、インスタンスセグメンテーションでしょうか。「1つの商品の説明がある場所を認識する」
処理をかませて、そこに対して#1をするのもありっぽいですね。

#3
商品の写真の認識自体は完全にオプションです。「5玉」「500円」の説明があっても「りんご」の説明がない場合の救済処置です。#2のインスタンスセグメンテーションをして、#1のW2Vをして、それでも分からないときに写真から何なのかを判別します。普通のImagenetの画像認識をそのままぶっこめば対応できると思います。

#4
説明するまでもないですがこれらの結果を「インスタンス」毎にlistに格納してCSVに吐き出すだけです。


#1-3はそれなりにゴツい作業が必要になります。手間を考えるとオンラインでPDFのチラシをDLして文字データから直接認識させるだとか、スーパーマーケットと提携して元からCSVの状態でデータをもらうとかしたほうが商売ベースに乗っけられそうです。

投稿2022/03/27 22:01

編集2022/03/27 22:11
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問