画像分類と物体検出の違いをはっきり説明します
はじめに
YOLO v5で物体検出 (PyTorch Hubからダウンロード)などの記事では、物体検出が何であるかは暗黙の了解としていますが、今回は、その解説をします。
画像を取り扱うディープラーニングに関する記事でよく画像分類、物体検出、セグメンテーションなどが取り扱われます。このほかにも色々ありますが、以下では画像分類と物体検出の違いを解説しながら物体検出とは何かの解説をします。
画像分類とは
まず、画像分類(Image Classification)では、画像に何があるのかを問うものです。
たとえば、次の写真には何がありますか?

ヒマワリですか?
いいえ、犬です。ヒマワリも写っていますがメインの物体は犬です。よって正解は犬です。
次の写真はどうですか?

猫ですね。
これが画像分類です。答えは、一つです。
単純に画像に何があるのか、メインの物を一つだけ指摘します。
また犬や猫の位置は問題になっていません。
物体検出とは
では次の画像はどうでしょうか?

これが画像分類なら、おそらく犬が正解でしょうが、しかし猫も間違いとは言えないですね。こういうのは画像分類の問題としては適していません。
これが物体検出(Object Detection)の問題だったら、答えは以下のようになります。

物体検出では、何が何処にあって、どのくらいのスコア(confidence score)でそう言えるのかを答えます。
上記では、赤い四角で囲まれいる物体は犬だと予測しており、スコアが91%になっています。猫も同様に予測されています。
もし、10匹の犬がいたらそれぞれの犬の場所を言い当てる必要があります。
また、この四角のことをBounding Box(矩形領域)と呼び、左上の(x, y)と右下の(x, y)の値で指定されます。
以上で、簡単ではありますが物体検出とは何かの説明になります。
よく取り上げられるモデルとしてはYOLO、SSD、RCNNなどがあります。
また、物体検出では上述のスコアの計算や、アンカー、mAP、IoU、NMSなどの概念が出てくるので画像分類よりかなり複雑です。この辺りは、あとで記事を書こうかなと思ってます。
それでは、また。
