回答編集履歴
2
test
CHANGED
@@ -4,6 +4,14 @@
|
|
4
4
|
|
5
5
|
「調べても出てこなかった」原因の一つは、「課題の認識粒度がでかすぎた」があると思います。下にかみ砕いた
|
6
6
|
課題を書きます。個々の課題を解決できうる技術はそろっているのですが、それをまとめて解こうとする技術はどこにもない(あっても公開されていない、便利なので誰も公開しない――たぶん営利企業がすること)と思います。
|
7
|
+
|
8
|
+
|
9
|
+
---
|
10
|
+
> 1枚の画像から複数情報を読み取りカテゴライズできるか
|
11
|
+
|
12
|
+
多分ですが、質問のいとは「リンゴ5玉500円の写っている画像で「りんご」「5玉」「500円」という出力をするニューラルネットワークが欲しい」、というものと思います。「途方もない数のPOPデータをかき集めて、出力層の出力数をそれらの数だけ用意すればできる」と思います。
|
13
|
+
|
14
|
+
が、**でかい課題のままニューラルネットワークにつっこんでも、でかい課題を細かく分解してほしい形にしてくれるほど今のニューラルネットワークはまだ賢くない**です。これが根底にあり、下記のような形の回答となりました。
|
7
15
|
|
8
16
|
---
|
9
17
|
|
@@ -30,3 +38,4 @@
|
|
30
38
|
---
|
31
39
|
|
32
40
|
#1-3はそれなりにゴツい作業が必要になります。手間を考えるとオンラインでPDFのチラシをDLして文字データから直接認識させるだとか、スーパーマーケットと提携して元からCSVの状態でデータをもらうとかしたほうが商売ベースに乗っけられそうです。
|
41
|
+
|
1
test
CHANGED
@@ -14,15 +14,15 @@
|
|
14
14
|
|
15
15
|
**#1**
|
16
16
|
[日本語用OCR](https://github.com/tanreinama/OCR_Japanease)は手書きで認識できるくらいですので、いろいろなフォントも学習させれば使えるレベルになりそうです。優秀なOCRのようで、塊ごとに認識して出力してくれるので使いやすいと思います。
|
17
|
-
次に、この認識した塊の文字列が何を指すか判別がいります。「りんご」「5玉」「500円」という文字列に価値を持たせる必要があるためです。人間であれば文字列の価値がわかりますが、ここまでだとプログラム的には「○○という文字列があるのは分かる(それの価値は知らん!)」というところで止まっているためです。これをする処理が、Word2Vecと呼ばれる処理です。「○○と文字列」を「x,y,z」みたいな座標データ(行列)に変換します。
|
17
|
+
次に、この認識した塊の文字列が何を指すか判別がいります。「りんご」「5玉」「500円」という文字列に価値を持たせる必要があるためです。人間であれば文字列の価値がわかりますが、ここまでだとプログラム的には「○○という文字列があるのは分かる(それの価値は知らん!)」というところで止まっているためです。これをする処理が、[Word2Vec](https://blog.hoxo-m.com/entry/2020/02/20/090000)と呼ばれる処理です。「○○と文字列」を「x,y,z」みたいな座標データ(行列)に変換します。
|
18
18
|
|
19
19
|
**#2**
|
20
|
-
先の#1で「りんご」「5玉」「500円」の画像上の距離の近さで「どこまでがある商品の説明」か大体は判別できると思われるためです。これで処理できない場合のオプションが枠の認識です。OpenCV
|
21
|
-
※深層学習でやるなら、インスタンスセグメンテーションでしょうか。「1つの商品の説明がある場所を認識する」
|
20
|
+
先の#1で「りんご」「5玉」「500円」の画像上の距離の近さで「どこまでがある商品の説明」か大体は判別できると思われるためです。これで処理できない場合のオプションが枠の認識です。[OpenCV](https://docs.opencv.org/3.4/da/d22/tutorial_py_canny.html)で探せばいくらでも出てくると思います。が、広告にもいろいろな表示があるので**もっとロバスト性の高い方法が好ましい**とも思います。
|
21
|
+
※深層学習でやるなら、[インスタンスセグメンテーション](https://www.skillupai.com/blog/tech/segmentation1/)でしょうか。「1つの商品の説明がある場所を認識する」
|
22
22
|
処理をかませて、そこに対して#1をするのもありっぽいですね。
|
23
23
|
|
24
24
|
**#3**
|
25
|
-
商品の写真の認識自体は完全にオプションです。「5玉」「500円」の説明があっても「りんご」の説明がない場合の救済処置です。#2のインスタンスセグメンテーションをして、#1のW2Vをして、それでも分からないときに写真から何なのかを判別します。普通のImagenetの画像認識をそのままぶっこめば対応できると思います。
|
25
|
+
商品の写真の認識自体は完全にオプションです。「5玉」「500円」の説明があっても「りんご」の説明がない場合の救済処置です。#2のインスタンスセグメンテーションをして、#1のW2Vをして、それでも分からないときに写真から何なのかを判別します。普通の[Imagenetの画像認識](https://paperswithcode.com/sota/image-classification-on-imagenet)をそのままぶっこめば対応できると思います。
|
26
26
|
|
27
27
|
**#4**
|
28
28
|
説明するまでもないですがこれらの結果を「インスタンス」毎にlistに格納してCSVに吐き出すだけです。
|