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

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

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

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

Q&A

解決済

2回答

1380閲覧

画像分類モデルによる物体検出とYOLOやSSDなどのモデルによる物体検出の違いについて教えていだだきたいです

yugo1111

総合スコア4

Python

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

0グッド

0クリップ

投稿2023/01/08 18:30

画像分類モデルによる物体検出はどうしてできるのでしょうか。
例えば、EfficientNetやmobileNetにりんごとみかんの画像分類を学習させ、識別が可能となったモデルを作成したとします。
そのような画像分類モデルを使用して、物体検出を行うような公式ドキュメントが多くみられるのですが、どうしてそのようなことが可能なのでしょうか。ML Kit を使用したカスタムモデルhttps://developers.google.com/ml-kit/custom-models

YOLOやSSDのようにアノテーション画像を学習させたモデルで物体検出を行えることはスッと理解できるのですが、、、

また、非常に小さい物体を検出させたい場合(夜空の星など)は、画像分類モデルによる物体検出は可能なのでしょうか。
その場合、学習に用いる画像はその小さい物体一つ一つの画像を学習させることになるのでしょうか。

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

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

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

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

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

yugo1111

2023/01/09 02:46

つまり、画像分類モデルのみで物体検出をしているのではなく、オブジェクト検出用のモデルも併用しているという認識であっていますでしょうか。
jbpb0

2023/01/10 02:22

そうだと思います https://developers.google.com/ml-kit/vision/object-detection を見ると、ML Kitには物体検出用の「オブジェクト検出とトラッキング」モデルが有るので、物体検出にはそれが使えますが、上記webページの「主な機能」に書かれてるように、それにデフォルトで備わってる「分類」機能は「粗い分類」なので、あまり使い物になりません そこで、自分の用途で検出したい物体に合わせて、予め「画像分類」モデルを学習しておいて、それを併用するのが、上記webページの「主な機能」の「カスタムモデルを使用した分類」です 質問者さんが質問で引用した https://developers.google.com/ml-kit/custom-models の 「オブジェクト検出とトラッキング API はどちらも、カスタム画像分類モデルをサポートしています。」 も、上記と同じことを言ってるのだと思います 「オブジェクト検出とトラッキング」モデルで物体検出をする際に、分類性能を上げるために「カスタム画像分類」モデルを併用する、ということだと思います
yugo1111

2023/01/10 09:37

そういうことだったのですね! それであれば納得いきます。わたしももう少し注意深く読まないとだめですね、、 わかりやすくご説明していだだきありがとうございます!
guest

回答2

0

ベストアンサー

結論: 恐らく分類モデル(Classification)を使って領域抽出(Regression)はできません。

以下に根拠を示します。

画像分類モデルを使用して、物体検出を行うような公式ドキュメントが多くみられるのですが

カスタムモデル(リンク)の説明に、
注: ML Kit では、カスタム画像分類モデルのみがサポートされます。AutoML Vision ではオブジェクト検出モデルのトレーニングが可能ですが、ML Kit と併用することはできません。とあります。つまり、以下の表の通りです。

機能名できること
AutoML Visionオブジェクト検出モデル
ML Kitカスタム画像分類/カスタム物体検出モデル(※)

※ jbpb0さんの指摘を受け修正しました

非常に小さい物体を検出させたい場合(夜空の星など)は、画像分類モデルによる物体検出は可能なのでしょうか。
その場合、学習に用いる画像はその小さい物体一つ一つの画像を学習させることになるのでしょうか。

上記の説明の通りで、「非常に小さい物体」が写った画像に対し、分類モデル(Classification)を使って領域抽出(Regression)はできません。恐らくできるとすれば、「非常に小さい物体」が写った画像を「夜空の画像」と分類することです。

また、やってみないと分かりませんが、「非常に小さい物体」が小さすぎると(例えば数[px])、畳み込み構造の中で特徴が埋もれてしまう(何もない真っ黒な背景と特徴が徐々に同化してしまう)のではないかと思います。「非常に小さい物体」の領域抽出は、普通の領域抽出タスクとは別にそれだけで一分野が構築されるような規模感の技術(参考)です。

投稿2023/01/08 21:46

編集2023/01/10 13:12
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

yugo1111

2023/01/09 02:43

とてもわかりやすいご説明をしていただきありがとうございます! やはり、非常に小さい物体に対して画像分類モデルを使用することは難しいのですね。 非常に小さい物体アノテーション画像をYOLOv5で学習させたところ、ある程度検出できるモデルは作成することができましたので、やはりこれらのモデルを使用する必要があるのですね。
jbpb0

2023/01/10 02:48 編集

fourteenlengthさん https://developers.google.com/ml-kit/custom-models の 「ML Kit では、カスタム画像分類モデルのみがサポートされます。」 は、 ・ML Kitでの「物体検出」で、自分で学習したのが使えるのは「画像分類」モデルだけ という意味であって、 ・ML Kitでは「物体検出」モデルが使えない という意味では無いと思います https://developers.google.com/ml-kit/vision/object-detection はML Kitの「オブジェクト検出とトラッキング」モデルなので、これを使えばML Kitで「物体検出」ができると思います
jbpb0

2023/01/10 02:54

fourteenlengthさん > 以下の表の通りです。 機能名 できること AutoML Vision オブジェクト検出モデル ML Kit カスタム画像分類モデル ML Kitでできることは、 https://developers.google.com/ml-kit/guides の「詳細」の「すぐに使用できる API を試す」に書いてあるように、もっとたくさんあり、その中に「オブジェクト検出とトラッキング」も含まれてます
退会済みユーザー

退会済みユーザー

2023/01/10 13:13

ご指摘ありがとうございます。 ML Kitを「Google謹製のあれこれのカスタム機能を使いやすくするAPI」と捉えました。
guest

0

オブジェクトの検出とトラッキング の「カスタム TensorFlow Lite モデルの使用」
iOSで手軽に物体検出とトラッキングをするにはML Kit for Firebaseの新機能が便利! の「検出した物体の画像からラベル付けをおこなう」
あたりを見ると、
ML Kit を使用したカスタムモデル
に書かれてる内容は、別途「オブジェクト検出とトラッキング」モデルが有って、それに加えて高性能な「画像分類」モデルを使う、という話のように思います

投稿2023/01/10 02:32

jbpb0

総合スコア7651

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問