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

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

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

深層学習は、多数のレイヤのニューラルネットワークによる機械学習手法。人工知能研究の一つでディープラーニングとも呼ばれています。コンピューター自体がデータの潜在的な特徴を汲み取り、効率的で的確な判断を実現することができます。

機械学習

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

Q&A

解決済

1回答

495閲覧

畳み込みニューラルネットワーク(以下CNN)による画像検索方法

jonaromu

総合スコア7

深層学習

深層学習は、多数のレイヤのニューラルネットワークによる機械学習手法。人工知能研究の一つでディープラーニングとも呼ばれています。コンピューター自体がデータの潜在的な特徴を汲み取り、効率的で的確な判断を実現することができます。

機械学習

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

0グッド

1クリップ

投稿2020/03/31 08:52

画像検索テクニックの主流であるCNNについてご質問します.
任意の検索対象画像から猫を検出するAIプログラムを作成する場合,つぎのような手順になると思います.
➀猫と猫以外の学習画像ファイルを多数集める.
➁集めた学習画像ファイルの特徴量をCNNで圧縮(畳み込み+プーリング)する.
➂圧縮した画像を機械学習(猫と猫以外に分類)する.
➃学習結果をもとに,検索対象画像の中から猫を検出する.
ここで,➀~➂まではO'REILLYやネットで勉強して概要は理解できていると思っているのですが,➃について理解できておらず質問します.

検索対象である元画像から適当な位置と大きさの矩形領域の画像を多数抜き出して,それを学習結果と比べて猫か否かを判断すると思いますが,この時,元画像から抜き出した画像もCNNで圧縮するのでしょうか.もしくは,抜き出した画像はCNNで圧縮することなく生画像のままなのでしょうか.これが第一の疑問です.

第二の疑問として,おそらくどちらの方法もありで,適当に使い分けているのかなと予想しているのですが(単なる想像です),つぎのような疑問があります.
1)抜き出した画像もCNNで圧縮する場合
計算量が膨大になり,静止画であればともかく,動画に適用するのは難しいのではないか.
2)抜き出した画像は圧縮せず,そのままの生画像の場合
CNNで圧縮して機械学習した結果と,圧縮しないそのままの生画像を比べることで,精度良く猫を検出できるのか.

畳み込みに用いるフィルターについても疑問があるのですが,まずは,上記の疑問に助言してもらえると助かります.
宜しくお願いします.

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

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

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

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

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

guest

回答1

0

ベストアンサー

クラス分類モデルの場合、画像は対象クラスのいずれかに必ず属することが前提となるので、複数の対象クラスのオブジェクト (例えば、犬と猫の両方) が同じ画像に写っている場合、猫が写っていたとしても猫と分類できない場合があります。
そのようなケースでは、物体検出モデルを使用します。

「検索対象である元画像から適当な位置と大きさの矩形領域の画像を多数抜き出して、その各画像に対して、CNN で特徴抽出し、機械学習で分類する」というのは R-CNN という2015年に出たモデルでまさにやっていることです。
そのモデルでは、Selective Search という手法で物体がありそうな領域をいくつか切りだし、CNN で特徴抽出し、SVM で分類するということをやっていました。
欠点として、抜きだした各矩形領域に対して、CNN で特徴抽出するので、計算時間がとてもかかります。
なので、その後改良が重ねられ、現在は上記の処理をすべてニューラルネットワークでやってしまう方法 (SSD、YOLOv3 など) が主流となっています。

なので、画像分類でやるか、物体検出でやるかは、画像に対象クラスの物体が複数含まれる場合があるなら物体検出、そうでないなら画像分類でよいと思います。
ちなみに「猫」であれば、著名なデータセットの対象クラスに含まれているので、学習済みモデルを使用するだけでそのまま検出、分類できます。

動画での適用ですが、GPU であれば、リアルタイムの処理も可能です。
計算量はモデルと GPU の性能に依存しますが、RTX 2080 で YOLOv3 であれば、30FPS ぐらいはでます。
昨今の CNN モデルは重たいので、CPU だと動画は厳しいと思います。

投稿2020/03/31 10:00

tiitoi

総合スコア21956

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

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

jonaromu

2020/04/01 21:16

tiitoi様 ご丁寧な回答,ありがとうございます. 動画の場合,CPUでは難しくともGPUであれば可能とのこと,疑問が腑に落ちました. デジタルカメラやビデオカメラの画面上でのリアルタイム顔認証も,GPUで処理していると理解しました. ありがとうございました
tiitoi

2020/04/02 02:27

顔検出はディープラーニングを使わないアルゴリズムでもそれなりで検出できるので、CPU でもできますよ。デジカメとかの顔検出機能はディープラーニングを使ってないです
jonaromu

2020/04/03 22:49

tiitoi様 デジカメでディープラーニングを使っていないとのこと,これも腑に落ちました.Haarカスケードが,その代表手法かと. あと自分が,物体の"検出"と"認証"といった,言葉の定義をあやふやに考えていたことも分かりました. ありがとうございます.
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問