{"notes":[{"id":"classic-cnns/overfeat","category":"classic-cnns","legacyPath":"","legacySlug":"","legacyPaths":[],"title":"OverFeat","subtitle":"一網打尽","author":"Z. Yuan","paperDate":"2013-12-21","publishedOn":"2025-10-18","world":"external/overfeat","paperTitle":"OverFeat: Integrated Recognition, Localization and Detection using Convolutional Networks","paperUrl":"https://arxiv.org/abs/1312.6229","bibliography":{"title":"OverFeat: Integrated Recognition, Localization and Detection using Convolutional Networks","authors":["Pierre Sermanet","David Eigen","Xiang Zhang","Michael Mathieu","Rob Fergus","Yann LeCun"],"url":"https://arxiv.org/abs/1312.6229","pdfUrl":"https://arxiv.org/pdf/1312.6229v4","codeUrl":null,"preprint":{"id":"1312.6229","submittedOn":"2013-12-21","url":"https://arxiv.org/abs/1312.6229"},"publication":null,"citation":"@misc{classiccnnsoverfeat2013,\n  title = {{OverFeat: Integrated Recognition, Localization and Detection using Convolutional Networks}},\n  author = {Pierre Sermanet and David Eigen and Xiang Zhang and Michael Mathieu and Rob Fergus and Yann LeCun},\n  year = {2013},\n  eprint = {1312.6229},\n  archivePrefix = {arXiv},\n  url = {https://arxiv.org/abs/1312.6229}\n}\n","citationPath":"/content/papers/citations/classic-cnns/overfeat.24bd64ee73bc.bib"},"thumbnail":{"src":"/content/papers/assets/d52a811beca4cb19a17ff9c1e4d1fb5c130f8426db67edfc11b7f5ebec4e525e.png","width":988,"height":1594},"locale":"ja","path":"/content/papers/ja/classic-cnns/overfeat.3664b3e9da15.md","headings":[{"id":"問題の定義","text":"問題の定義","depth":2},{"id":"問題の解決","text":"問題の解決","depth":2},{"id":"分類ネットワーク","text":"分類ネットワーク","depth":3},{"id":"スライディングウィンドウはなぜ高くつかないのか","text":"スライディングウィンドウはなぜ高くつかないのか","depth":3},{"id":"出力が疎すぎる","text":"出力が疎すぎる","depth":3},{"id":"複数のスケールで最大をとってから平均する","text":"複数のスケールで、最大をとってから平均する","depth":3},{"id":"分類からボックスへ","text":"分類からボックスへ","depth":3},{"id":"抑制ではなく積み上げる","text":"抑制ではなく、積み上げる","depth":3},{"id":"検出学習中についでに負例を選ぶ","text":"検出：学習中についでに負例を選ぶ","depth":3},{"id":"考察","text":"考察","depth":2},{"id":"分類","text":"分類","depth":3},{"id":"位置特定","text":"位置特定","depth":3},{"id":"検出","text":"検出","depth":3},{"id":"結論","text":"結論","depth":2}],"anchorAliases":{},"guide":null,"relatedReading":[{"id":"object-detection/yolov1","relation":"referenced","topic":""},{"id":"segmentation/fcn","relation":"referenced","topic":""}]},{"id":"object-detection/yolov1","category":"object-detection","legacyPath":"object-detection/1506-yolov1","legacySlug":"1506-yolov1","legacyPaths":[],"title":"YOLOv1","subtitle":"一度見るだけで","author":"Z. Yuan","paperDate":"2015-06-08","publishedOn":"2024-08-01","paperTitle":"You Only Look Once: Unified, Real-Time Object Detection","paperUrl":"https://arxiv.org/abs/1506.02640","bibliography":{"title":"You Only Look Once: Unified, Real-Time Object Detection","authors":["Joseph Redmon","Santosh Divvala","Ross Girshick","Ali Farhadi"],"url":"https://arxiv.org/abs/1506.02640","pdfUrl":"https://arxiv.org/pdf/1506.02640","codeUrl":null,"preprint":{"id":"1506.02640","submittedOn":"2015-06-08","url":"https://arxiv.org/abs/1506.02640"},"publication":{"venue":"CVPR","year":2016,"kind":"conference","url":"https://openaccess.thecvf.com/content_cvpr_2016/html/Redmon_You_Only_Look_CVPR_2016_paper.html"},"citation":"@misc{objectdetectionyolov12015,\n  title = {{You Only Look Once: Unified, Real-Time Object Detection}},\n  author = {Joseph Redmon and Santosh Divvala and Ross Girshick and Ali Farhadi},\n  year = {2015},\n  eprint = {1506.02640},\n  archivePrefix = {arXiv},\n  url = {https://arxiv.org/abs/1506.02640}\n}\n","citationPath":"/content/papers/citations/object-detection/yolov1.a6add3d1501c.bib"},"thumbnail":{"src":"/content/papers/assets/de2999633c20d235ccf6c7c3f0b2d7488ca55b32be8a406c1c988b0d117c1408.jpg","width":1028,"height":692},"locale":"ja","path":"/content/papers/ja/object-detection/yolov1.2fb1e87ddda4.md","headings":[{"id":"問題の定義","text":"問題の定義","depth":2},{"id":"解決方法","text":"解決方法","depth":2},{"id":"一枚の画像を格子に分ける","text":"一枚の画像を格子に分ける","depth":3},{"id":"ネットワークと学習","text":"ネットワークと学習","depth":3},{"id":"推論場面","text":"推論場面","depth":3},{"id":"手順-1並べ替え","text":"手順 1：並べ替え","depth":4},{"id":"手順-2-と-3選択と抑制","text":"手順 2 と 3：選択と抑制","depth":4},{"id":"手順-3-と-4-を繰り返す","text":"手順 3 と 4 を繰り返す","depth":4},{"id":"実験結果と考察","text":"実験結果と考察","depth":2},{"id":"どれほど速いか","text":"どれほど速いか","depth":3},{"id":"速度の代償","text":"速度の代償","depth":3},{"id":"モデルの限界","text":"モデルの限界","depth":3},{"id":"結論","text":"結論","depth":2}],"anchorAliases":{"解決される問題":"解決方法","モデルアーキテクチャ":"一枚の画像を格子に分ける","損失関数":"ネットワークと学習","推論シナリオ":"一枚の画像を格子に分ける","討論":"実験結果と考察","推論速度":"どれほど速いか","他の手法との比較":"速度の代償","モデルの制限":"速度の代償"},"guide":null,"relatedReading":[{"id":"object-detection/yolov2","relation":"next","topic":"YOLO からマルチスケールの一段検出へ"}]},{"id":"segmentation/fcn","category":"segmentation","legacyPath":"segmentation/1411-fcn","legacySlug":"1411-fcn","legacyPaths":[],"title":"FCN","subtitle":"全畳み込みネットワーク","author":"Z. Yuan","paperDate":"2014-11-14","publishedOn":"2024-09-11","paperTitle":"Fully Convolutional Networks for Semantic Segmentation","paperUrl":"https://arxiv.org/abs/1411.4038","bibliography":{"title":"Fully Convolutional Networks for Semantic Segmentation","authors":["Jonathan Long","Evan Shelhamer","Trevor Darrell"],"url":"https://arxiv.org/abs/1411.4038","pdfUrl":"https://arxiv.org/pdf/1411.4038","codeUrl":null,"preprint":{"id":"1411.4038","submittedOn":"2014-11-14","url":"https://arxiv.org/abs/1411.4038"},"publication":{"venue":"CVPR","year":2015,"kind":"conference","url":"https://arxiv.org/abs/1411.4038"},"citation":"@misc{segmentationfcn2014,\n  title = {{Fully Convolutional Networks for Semantic Segmentation}},\n  author = {Jonathan Long and Evan Shelhamer and Trevor Darrell},\n  year = {2014},\n  eprint = {1411.4038},\n  archivePrefix = {arXiv},\n  url = {https://arxiv.org/abs/1411.4038}\n}\n","citationPath":"/content/papers/citations/segmentation/fcn.1c65fe1c14c6.bib"},"thumbnail":{"src":"/content/papers/assets/1a8a4d2936086814cc5bd26819653959fe4cc29c64c5cba2009f8b8e43c87842.jpg","width":1224,"height":684},"locale":"ja","path":"/content/papers/ja/segmentation/fcn.85001ec1c936.md","headings":[{"id":"問題の定義","text":"問題の定義","depth":2},{"id":"問題の解決","text":"問題の解決","depth":2},{"id":"モデルアーキテクチャ","text":"モデルアーキテクチャ","depth":3},{"id":"アップサンプリング","text":"アップサンプリング","depth":3},{"id":"マルチスケール融合","text":"マルチスケール融合","depth":3},{"id":"訓練データセットと戦略","text":"訓練データセットと戦略","depth":3},{"id":"評価指標","text":"評価指標","depth":3},{"id":"考察","text":"考察","depth":2},{"id":"pascal-voc-結果","text":"PASCAL VOC 結果","depth":3},{"id":"nyudv2-結果","text":"NYUDv2 結果","depth":3},{"id":"sift-flow-結果","text":"SIFT Flow 結果","depth":3},{"id":"結論","text":"結論","depth":2}],"anchorAliases":{"討論":"考察"},"guide":null,"relatedReading":[{"id":"feature-fusion/unet","relation":"next","topic":"密な予測とエンコーダ・デコーダ間のスキップ接続"}]}],"text":"2012年、AlexNetはImageNetコンペティションの分類と位置特定の2部門で優勝しました。\n\n分類のやり方は論文に書かれていて、誰もが読んでいます。では、位置特定はどうでしょうか。当時、その方法を説明した論文は一つも発表されていませんでした。\n\nニューヨーク大学Yann LeCun研究室のPierre Sermanetらは2013年12月にこの論文を公開し、のちにICLR 2014で発表しました。序論では、畳み込みネットワークでImageNetの位置特定と検出をどう行うかをはっきり説明した最初の論文だと、率直に述べています。彼らのシステムは2013年のコンペティションで位置特定部門の優勝を果たし、同じネットワークで分類と検出にも参加しました。\n\n論文と一緒に、学習済みモデルも特徴抽出器として公開されました。その名前がOverFeatです。\n\n## 問題の定義\n\n論文が扱うタスクは三つで、後になるほど難しく、前のタスクは後のタスクの一部になっています。\n\n1. **分類**：画像ごとにラベルは一つで、5回まで答えられ、1回でも当たれば正解です。\n2. **位置特定**：同じく5回答えられますが、毎回クラスに加えてボックスを一つ出す必要があります。ボックスと正解の共通部分を和集合で割った値（IoU）が50%以上で、クラスも合っていて初めて正解です。\n3. **検出**：1枚の画像に物体がいくつあってもよく、一つもないこともあります。mAPで採点され、誤ったボックスは減点されます。\n\nImageNetの分類データでは、物体はたいてい画面の中央にあり、画像の大半を占めています。それでも、大きさや位置が大きく異なる物体も少なくありません。最も素直な方法はスライディングウィンドウで、画像のあらゆる位置、あらゆるスケールでネットワークを1回ずつ実行します。\n\nここから二つの問題が出てきます。\n\n一つ目は計算量です。1枚の画像を何千、何万ものウィンドウに切り、そのそれぞれで畳み込みネットワークをまるごと実行するのは、コストがかかります。\n\n二つ目は、ウィンドウと物体の位置が合わないことです。多くのウィンドウは、物体の一部しか囲めません。たとえば犬の頭だけを囲んだウィンドウです。分類器が犬だと認識するにはそれで十分ですが、犬全体がどこにあるかを教えるには足りません。著者らは、これでは「まずまずの分類と、ひどい位置特定・検出」になると述べています。\n\nそこで著者らは三つのアイデアを出しました。ネットワークの中でマルチスケールのスライディングウィンドウを効率よく行うこと。各ウィンドウでクラスだけでなく、ウィンドウに対する物体のボックスの位置も予測すること。そして最後に、各ウィンドウの証拠を積み上げることです。\n\n## 問題の解決\n\n### 分類ネットワーク\n\nOverFeatの分類ネットワークはAlexNetに似ていますが、いくつか違いがあります。contrast normalizationを使わず、プーリング領域は重ならず、第1層と第2層の特徴マップも大きめです。\n\n論文は実は二つの版を用意しています。**高速モデル**は第1層が$11\\times11$、ストライド4です。**高精度モデル**は第1層を$7\\times7$、ストライド2に変え、層も一つ多く、特徴マップも多くなっています。パラメータ数は両者でほぼ同じ（高速1.45億、高精度1.44億、AlexNetは約6,000万）ですが、高精度モデルの結合数は2倍近くあります。\n\n学習時は画像の短辺を256に縮め、$221\\times221$の領域をランダムに切り出します。このときネットワークは空間を持たないモデルとして扱われ、最後に$1\\times1$の分類ベクトルを出力します。テスト時になって初めて、画像全体の上をスライドさせる形に切り替えます。\n\n### スライディングウィンドウはなぜ高くつかないのか\n\n[![2行の模式図。上の行：14×14の入力が5×5畳み込み、2×2プーリングを通り、さらに分類器の5×5、1×1、1×1畳み込みを通って、最後に1×1を出力する。下の行：入力を16×16に広げると、各段の特徴マップに黄色の領域がひと回り増え、最後に2×2を出力する](/content/papers/assets/cd9ddd6b129a1c495df34121de190dc6244cb4d520df8eca6fcf86f44e85a94d.png)](/content/papers/assets/cd9ddd6b129a1c495df34121de190dc6244cb4d520df8eca6fcf86f44e85a94d.png)\n\n*原論文Figure 5。[**v4 PDFの8ページ**](https://arxiv.org/pdf/1312.6229v4#page=8)から抜粋。上の行は学習時の入力サイズで、出力は1か所だけです。下の行はテスト時に広げた入力で、出力が$2\\times2$になります。黄色は入力を広げたことで増えた計算です。図ではチャネルの次元を省略しています。*\n\nまず上の行です。$14\\times14$の入力は$5\\times5$畳み込みで$10\\times10$になり、プーリング後は$5\\times5$が残ります。分類器の第1層はこの$5\\times5$全体を受け取って1か所を出力し、後の2層はどちらも$1\\times1$です。\n\n分類器は本来、全結合層です。著者らの観察はこうです。固定サイズの入力を受け取る全結合層は、同じサイズの畳み込みカーネルと等価で、その後の全結合層は$1\\times1$畳み込みと等価です。こうすると、ネットワーク全体が畳み込み、プーリング、ReLUだけになります。\n\n次に下の行です。入力を$16\\times16$に広げると、各層の特徴マップがひと回り大きくなり、最後の出力は$2\\times2$、つまり4つのウィンドウの分類結果になります。重なった部分は1回しか計算せず、増える計算は黄色のひと回り分だけです。\n\nこれが、畳み込みネットワークでスライディングウィンドウを行うときの、もともと備わった強みです。画像全体で1回実行すれば、すべてのウィンドウの答えが得られ、ウィンドウを一つずつ切り出して別々に計算する必要はありません。\n\n### 出力が疎すぎる\n\nただし、1回で済ませることには代償もあります。高精度モデルは入力から最後の畳み込み層までに、ストライド2の畳み込みと3回のプーリングを経て、全体で$2\\times3\\times2\\times3=36$分の1に縮小されます。つまり分類器は、入力画像上で36画素おきにしか出力を持ちません。\n\nウィンドウと物体がぴったり合うほど、ネットワークの確信度は高くなります。36画素おきにしか見ないと、最もよく合う位置を簡単に見逃してしまいます。著者らは、このような疎な出力では、AlexNetのような固定10クロップの方法よりかえって悪くなることに気づきました。\n\n彼らの解決策は、最後のプーリングで解像度を捨てないことでした。もともと最後のプーリングは、$3\\times3$の重ならない最大プーリングです。これを、プーリングの開始位置を$\\Delta=0, 1, 2$画素ずらしてそれぞれ1回ずつ行い、別々に分類器へ送り、最後に結果を交互に並べ直します。\n\n[![1次元の模式図。(a)は長さ20の、第5層のプーリング前の特徴マップ。(b)は赤、緑、青の3色でずらし量0、1、2の3組のプーリングを表し、各組は3マスを1マスにまとめて、それぞれ6マスを得る。(c)は3組のプーリング後の特徴マップ。(d)では分類器が5マスの窓でスライドし、各組で2つの出力を得る。(e)は3組の出力を交互に並べた6マスの出力マップ](/content/papers/assets/d672122ea6ddf57393ed938154239f60084b8afebb1434624615cbd3e2b890ac.png)](/content/papers/assets/d672122ea6ddf57393ed938154239f60084b8afebb1434624615cbd3e2b890ac.png)\n\n*原論文Figure 3。[**v4 PDFの6ページ**](https://arxiv.org/pdf/1312.6229v4#page=6)から抜粋。2番目のスケールの垂直方向を例に、実際の比率で描いています。*\n\nこの図のとおりに一度計算してみましょう。第5層のプーリング前の特徴マップは長さ20です。ずらし量ごとに3マスのプーリングを1回行い、幅5マスの分類器をスライドさせます。\n\n```python\nlayer5 = 20        # 第5層のプーリング前の特徴マップの長さ（原論文Figure 3の例）\npool, window = 3, 5\n\ndef starts(offsets):\n    \"\"\"分類器の各ウィンドウの開始位置。第5層の画素単位。\"\"\"\n    out = []\n    for d in offsets:\n        pooled = (layer5 - d) // pool          # このずらし量でプーリングした後の長さ\n        for k in range(pooled - window + 1):   # 分類器が幅5の窓でスライドする\n            out.append(d + pool * k)\n    return sorted(out)\n\ncoarse, fine = starts([0]), starts([0, 1, 2])\nprint(\"Δ=0のみ：\", coarse, \"→ 入力の\", (coarse[1] - coarse[0]) * 12, \"画素ごとに出力\")\nprint(\"Δ=0,1,2：\", fine, \"→ 入力の\", (fine[1] - fine[0]) * 12, \"画素ごとに出力\")\n```\n\n```text\nΔ=0のみ： [0, 3] → 入力の 36 画素ごとに出力\nΔ=0,1,2： [0, 1, 2, 3, 4, 5] → 入力の 12 画素ごとに出力\n```\n\nどのずらし量でもプーリング後は6マスが残り、分類器はその上で2つの出力を得ます。これはちょうど図の(c)、(d)の長さです。3組を交互に並べると、(e)の6マスになります。\n\n最後のプーリングの前に、ネットワークはすでに$2\\times3\\times2=12$分の1に縮小されているので、第5層で隣り合う2マスは、入力上では12画素離れています。$\\Delta=0$だけなら、分類器は1回に3マス、つまり36画素ずつ進みます。三つのずらし量をすべて使うと、どのマスにも出力があることになり、間隔は12画素まで縮まります。\n\n著者らはこれを別の言い方でも説明しています。可能なすべてのずらし量で、最後のプーリングと分類器をそれぞれ1回ずつ適用し、その結果を交互に組み合わせる、というものです。\n\n### 複数のスケールで、最大をとってから平均する\n\nここまでは単一スケールの話です。実際の分類では、著者らは画像を$245\\times245$から$461\\times569$までの6種類の大きさに拡大縮小し、それぞれで上の流れを1回ずつ行い、水平反転した画像でももう1回行います。最終的な分類は3段階です。\n\n1. スケールごと、反転の有無ごとに、各クラスについてすべての位置での最大値をとります。\n2. 異なるスケールと反転の結果を平均します。\n3. 平均したクラスベクトルから、上位1位または上位5位をとります。\n\n著者らは、ネットワークの前半と後半の使い方をこうまとめています。前半の特徴抽出層は画像全体を一度に畳み込むので、最も効率がよい。後半の分類器はその逆で、固定の$5\\times5$の入力で、第5層の特徴マップ上のあらゆる位置、あらゆるスケールを総当たりで探します。\n\n### 分類からボックスへ\n\n位置特定では、もう一つ仕事が増えます。各ウィンドウが「ここに何があるか」だけでなく、「物体のボックスがどこにあるか」も言わなければなりません。\n\n著者らは、分類ネットワークの第1〜5層の後ろに、別の回帰ネットワークを接続しました。全結合層が2層で、それぞれ4096チャネルと1024チャネル、最後にボックスの4辺を表す4つの数値を出力します。分類器と同じく、$3\\times3$通りのずらしでそれぞれ1回ずつ計算します。最後の層はクラスごとに1組ずつ、計1000組用意されています。\n\n学習時は第1〜5層を固定したまま回帰ネットワークだけを学習し、予測ボックスと正解のあいだの$\\ell_2$損失を使います。入力ウィンドウとの重なりが50%未満の物体ボックスは、学習に使いません。物体の大部分がウィンドウの外にあるので、それを含むほかのウィンドウに任せたほうがよいからです。\n\n回帰ネットワークも複数のスケールで学習します。著者らによれば、これでスケールの違う予測どうしが一致するようになり、統合後の確信度も大きく上がるので、少数のスケールだけで足ります。スケール間の比率は約1.4で、歩行者検出でよく使われる1.05〜1.1よりずっと大きく、システムも速く動きます。\n\n### 抑制ではなく、積み上げる\n\nスケールごと、位置ごとにボックスが一つずつ出てくるので、合わせると何千、何万にもなります。著者らは貪欲な統合アルゴリズムで、これを少数のボックスにまとめます。\n\n1. スケールごとに、確信度の最も高い上位$k$個のクラスを取り出します。\n2. これらのクラスについて、すべての位置、すべてのスケールで予測されたボックスを集めます。\n3. 最も近い2つのボックスを見つけて1つに統合する（座標は平均をとる）ことを、すべてのボックスの近さがしきい値を下回るまで繰り返します。\n\n近さは、2つのボックスの中心間の距離と共通部分の面積から計算します。統合後のボックスの確信度は、統合されたすべてのウィンドウの分類スコアの合計です。\n\n[![4段の画像で、主役は滝の中にいるクマ。1段目は各スケールでの、位置ごとの分類器の出力。2段目は出力の解像度を上げたもの。3段目は回帰ネットワークが各位置で予測した大量のボックスで、多くはクマの位置に集まっている。最後の1枚には、クマを囲むボックスが1つだけ残る](/content/papers/assets/d52a811beca4cb19a17ff9c1e4d1fb5c130f8426db67edfc11b7f5ebec4e525e.png)](/content/papers/assets/d52a811beca4cb19a17ff9c1e4d1fb5c130f8426db67edfc11b7f5ebec4e525e.png)\n\n*原論文Figure 6。[**v4 PDFの9ページ**](https://arxiv.org/pdf/1312.6229v4#page=9)から抜粋。上から順に、各位置のクラスと確信度、解像度を上げた後の出力、回帰ネットワークが予測したボックス、統合後の結果です。*\n\nこの図の3段目では、回帰で得たボックスの大半がクマの位置に集まっています。「カメ」や「クジラ」のボックスもいくつか混じっていますが、分類の確信度は最高でも0.11と0.12しかなく、ボックスの位置も大きくばらついているので、統合しても積み上がらず、最後にはしきい値を下回ります。クマのボックスは確信度が高く（各スケールで平均約0.5）、位置もそろっているので、統合されて確信度のとても高い1つのボックスになります。\n\n著者らはこれを、従来の非最大値抑制（NMS）と対比しています。NMSはスコアが最も高いボックスだけを残し、ほかを捨てます。ここでは、一致するボックスどうしがスコアを加算し合うので、分類器だけでは出てしまう散発的な誤検出を除きやすくなります。\n\n### 検出：学習中についでに負例を選ぶ\n\n検出と位置特定の主な違いは、「ここには物体がない」と言えなければならないこと、つまり背景クラスが一つ増えることです。\n\n従来は、まずランダムに選んだ負例で学習し、モデルが最もよく間違える負例を学習セットに戻す、ということを何回も繰り返していました（bootstrapping）。著者らはこれを、複雑なうえに負例の収集と学習がずれやすいと考え、学習中に画像ごとにその場で負例をいくつか選ぶ方式に変えました。ランダムなものも、モデルが最も間違えやすいものも選びます。計算は増えますが、手順はずっと単純です。しかも特徴層はすでに分類タスクで学習済みなので、検出のためのファインチューニングにそれほど時間はかかりません。\n\n## 考察\n\n### 分類\n\n| 設定（検証セット） | Top-1 | Top-5 |\n| --- | ---: | ---: |\n| AlexNet、1モデル | 40.7 | 18.2 |\n| 高速モデル、1スケール、$\\Delta=0$のみ | 39.28 | 17.12 |\n| 高速モデル、1スケール、3つのずらし | 39.01 | 16.97 |\n| 高速モデル、6スケール、3つのずらし | 38.12 | 16.27 |\n| 高精度モデル、固定10クロップ | 35.60 | 14.71 |\n| 高精度モデル、4スケール、3つのずらし | 35.74 | 14.18 |\n| 高精度モデル7個、4スケール、3つのずらし | 33.96 | 13.24 |\n\n*表：原論文Table 2から誤り率（%）を抜粋。*\n\n単一スケールでは、三つのずらしによる改善はごくわずかです（17.12% → 16.97%）。著者らは、これがマルチスケールでより重要になると述べています。1スケールから6スケールにすると、top-5誤り率は16.97%から16.27%に下がります。高精度モデルをマルチスケールでスライドさせると、固定10クロップより約0.5ポイント良くなります（14.71% → 14.18%）。\n\nコンペティションのテストセットでは、OverFeatは7個の高速モデルの投票でtop-5誤り率14.2%を出し、18チーム中5位でした。この年、ILSVRC13のデータだけを使った最良の成績は11.7%です。コンペティション後、彼らはより大きなモデルで13.6%まで下げました。\n\n### 位置特定\n\n著者らはILSVRC12の検証セットで、いくつかの設定を比較しました。\n\n- 中央の1クロップだけ：誤り率約40%。\n- すべての位置と2つのスケールの予測を統合：31.5%。\n- 4スケールに増やす：30.0%。\n- クラスごとに回帰ヘッドを1つずつ使う（per-class regressor）と、全クラスで1つを共有するよりかえってずっと悪くなる：44.1%対31.3%。著者らは、クラスごとのボックス付き学習サンプルが少なすぎるのに、パラメータは1000倍に増えるためだと推測しています。\n\nコンペティションのテストセットでは、OverFeatは誤り率29.9%で2013年の位置特定部門を制しました。\n\n### 検出\n\nコンペティション期間中、OverFeatの検出システムはmAP 19.4%で3位、優勝したUvAは22.6%でした。コンペティション後、学習を長くし、各スケールに低解像度の入力もコンテキストとして加えることで、mAPを24.3%まで上げ、当時のすべての結果を上回りました。\n\n著者らは二つの点にも注意を促しています。一つ目に、上位2チームはどちらも画像のセグメンテーションで候補領域を作り、調べるウィンドウを約20万個から2,000個に減らしていました。文献によれば、これで誤検出を減らせます。一方、OverFeatは密なスライディングウィンドウで処理しています。二つ目に、NECとUvAは検出の検証セットでファインチューニングしていますが、OverFeatはしていません。検証・テストセットと学習セットの分布はかなり違うので、この一手だけで約1ポイント上がります。\n\n## 結論\n\nOverFeatは、当時まだ誰もはっきり書いていなかったことを示しました。分類、位置特定、検出は一つの畳み込みネットワークを共有でき、スライディングウィンドウも畳み込みネットワークの中なら安く計算できる、ということです。位置特定の成績は2013年で最も良く、検出もコンペティション後に最高の成績に達しました。\n\nこの記録は長くは続きませんでした。R-CNNはまずselective searchで候補領域を作り、領域ごとに畳み込みネットワークを1回ずつ実行します。その論文は後の版で同じILSVRC 2013の検出ベンチマークを加え、[mAP 31.4%を報告](https://arxiv.org/abs/1311.2524)しています。OverFeatは24.3%です。同じ論文は、OverFeatのほうが約9倍速い（1枚あたり約2秒）ことも認めています。OverFeatのスライディングウィンドウは画像レベルで変形する必要がなく、重なった部分の計算を共有できるからです。\n\nのちのYOLOは、関連研究の中でOverFeatをこう説明しています。スライディングウィンドウによる検出を効率よく行うが、依然として分かれた部品からなるシステムであり、検出ではなく位置特定に向けて最適化されている。各予測は局所的な情報しか見られず、一貫した検出結果を得るには大量の後処理が必要になる。YOLOは、ネットワークに画像全体を一度に見せ、すべてのボックスを直接出力する形に変えました。\n\n\n> [!TIP]\n> \n> YOLOと、同じく全結合層を畳み込みとみなし、分類ネットワークに画像全体の予測マップを出力させたFCNについては、私たちのノートを参考にしてください。\n> \n> - **[[15.06] YOLOv1：一度見るだけで](/blog/papers/object-detection/yolov1)**\n> - **[[14.11] FCN：全畳み込みネットワーク](/blog/papers/segmentation/fcn)**\n\n\n振り返ると、YOLOやFCNの多くのやり方は、この論文にその面影が見えます。全結合層を畳み込みとして扱う、画像全体を一度に計算する、特徴マップの上で直接ボックスを回帰する。ただ、2013年のOverFeatは、まだそれらをいくつものステップに分けていました。\n\nYOLOを読んだことがあるなら、この論文と見比べてみてください。YOLOが結局どこを変えたのかが、よりはっきりわかるはずです。\n","imageSizes":{"/content/papers/assets/cd9ddd6b129a1c495df34121de190dc6244cb4d520df8eca6fcf86f44e85a94d.png":{"width":1016,"height":576},"/content/papers/assets/d672122ea6ddf57393ed938154239f60084b8afebb1434624615cbd3e2b890ac.png":{"width":662,"height":324},"/content/papers/assets/d52a811beca4cb19a17ff9c1e4d1fb5c130f8426db67edfc11b7f5ebec4e525e.png":{"width":988,"height":1594}}}
