画像認識と物体検出を学び直す Log#1 | 9つの層と、評価指標を先に学ぶ理由

画像認識と物体検出は、名前は広く使われているのに、範囲が曖昧なまま流通している言葉だと思う。写真に何が写っているかを当てるのも画像認識と呼ばれるし、それがどこに写っているかを四角い枠で囲むのも画像認識と呼ばれることがある。この2つは出力の形がまったく違うのに、同じ名前で呼ばれている。

このシリーズは、その曖昧さを一度分解して、下の層から順に積み直す記録になる。第1回は全体像だけを扱う。個々の技術の説明はせず、どの技術が地図のどこに置かれるのか、そしてどの順序で積むと途中で崩れないのかを決める。

画像認識と物体検出は「何を出力するか」で分かれる

同じ「画像を見る」でも、返ってくる答えの形が違う。ここを最初に分けておくと、以降の技術がすべてどこかに収まる。

タスク

出力される形

具体例

画像分類

画像1枚に対してラベル1つ

「この写真は猫」

物体検出

四角い枠 + ラベル + 信頼度(複数個)

「ここに赤いブロック、確信度0.92」

セグメンテーション

画素ごとのラベル(輪郭の形)

「この画素の集合がブロック」

姿勢推定

関節点(キーポイント)の座標

「手首はここ、指先はここ」

追跡

同じ物体に同じIDを振り続ける

「フレーム間でこれは同じ手」

深度・6D姿勢

距離、または3次元の位置と向き

「対象は320mm先、30度傾いている」

この表を先に置く理由は、選ぶモデルが変わるからではない。用意すべき正解データの形が変わるからだ。分類なら画像にラベルを1つ付ければいい。検出なら1枚につき複数の枠を人が描く必要がある。セグメンテーションなら画素単位で塗る。姿勢推定なら点を打つ。作業量が桁で変わる。

「物体を認識したい」という言い方は、この表のどれを指しているかを決めていない。決めないまま進むと、集めたデータが使えないことに後から気づく。

手法は2系統ある — 人がルールを書くか、データがルールを決めるか

技術の系統は大きく2つに分かれる。

古典的コンピュータビジョンは、人が手続きを書く。「色相が0〜10かつ彩度が100以上の画素を白にする」「白い塊のうち面積が500画素以上のものを残す」といった条件を、書く側が決める。動作が完全に説明でき、計算が軽く、学習データが要らない。代わりに、条件が変わるたびに書き直しが要る。

学習ベースは、正解付きのデータから条件を自動で決める。人が思いつかない特徴も拾うので、照明や背景の変動に強い。代わりに、データを集めてラベルを付ける作業が必要で、なぜその判定になったかを説明しづらい。

どちらが上という話ではない。背景が固定で対象の色が決まっている台の上なら、古典的手法のほうが速くて安定する。 対象が増える、照明が変わる、書き直しが追いつかなくなる——その時点が、学習ベースへ移る理由になる。

このシリーズは古典的手法から始める。学習ベースを避けているのではなく、古典的手法で何が起きているかを画素レベルで見ておかないと、学習ベースが何を自動化したのかが分からないからだ。

画像認識と物体検出を9つの層に分ける

分野の全体を、下から積める形に並べたものが以下になる。この並びは「学ぶ順序」ではなく「依存関係」を表している。上の層は下の層の上に立っている。

第1層 画像は数字の格子である

画像は縦H×横W×チャンネル3の数値配列でしかない。カラー画像なら1画素につき赤・緑・青の3つの数字(0〜255)。ここに例外はなく、以降のすべての技術はこの配列に対する計算になる。

この層で最初に効くのが色空間の選び方だ。RGBは「赤・緑・青の混ぜ具合」で色を表すが、照明が変わると3つの値が全部動く。HSVは「色相(何色か)・彩度(鮮やかさ)・明度(明るさ)」に分けるので、照明が変わっても色相はある程度保たれる。色で物を切り出すときにHSVを使うのは、この性質のためだ。

この層を軽く見ると、後の全部が揺れる。「検出が不安定」の原因が、モデルではなく色空間の選択にあることは珍しくない。

第2層 古典的コンピュータビジョン

人が手続きを書く方式。工程の順序が決まっている。

  1. 閾値処理(二値化) — 条件を満たす画素を白、それ以外を黒にする

  2. モルフォロジー演算 — 白い塊を膨らませたり縮めたりして、ノイズの粒を消し、途切れた領域をつなぐ

  3. 輪郭抽出 — 白い領域の外周を点の列として取り出す

  4. 輪郭の特徴量 — 面積、重心、外接矩形、周囲長、円形度。ここで「どの輪郭が目的の物か」を選別する

  5. 特徴点マッチング — 画像内の目立つ点を検出し、2枚の画像のあいだで対応づける。色に依存しないので、白い箱・金属・透明な物に効く

  6. 幾何変換 — 対応点から射影変換の行列を求め、斜めから見た平面を真上から見た座標に直す

この6段は、それぞれ独立して壊れる。閾値が悪いのか、モルフォロジーが効きすぎているのか、輪郭の選別条件が甘いのか。どの段で壊れたかを切り分けられる状態にしておくことが、この層の実力になる。

第3層 畳み込みニューラルネットワーク

畳み込みとは、3×3程度の小さな数値の格子(フィルタ)を画像の上で1画素ずつ滑らせて、重なった部分の掛け算と足し算をする操作を指す。フィルタの中身次第で、縦のエッジに強く反応したり、特定の模様に反応したりする。

古典的コンピュータビジョンでは、このフィルタの中身を人が設計していた。畳み込みニューラルネットワークがやったのは、フィルタの中身を正解データから自動で決めることだ。違いはそれだけだが、人が思いつかない特徴を見つけるので結果が変わる。

浅い層は線やエッジに反応し、深い層は「車輪らしい形」「顔らしい配置」に反応する。この階層構造を作る部分をバックボーンと呼び、その出力に何をつなぐかでタスクが変わる。

  • バックボーン + 分類ヘッド → 画像分類

  • バックボーン + 枠を出すヘッド → 物体検出

  • バックボーン + 画素ごとのラベルを出すヘッド → セグメンテーション

ここが分かると、以降のモデルはほぼ全部この構図で読める。新しいモデルが出たときに読むべき場所も、バックボーンを変えたのか、ヘッドを変えたのか、学習の仕方を変えたのかの3つに絞れる。

第4層 物体検出

出力は「枠の座標(x, y, 幅, 高さ)+ クラス + 信頼度」の組が複数個。難しいのは、何個出るか事前に分からないことだ。これをどう扱うかで系統が分かれる。

2段階検出は、まず「物がありそうな領域」を候補として出し、次にその候補を分類する。精度は出るが遅い。

1段階検出は、画像をグリッドに区切り、各セルが「自分の担当範囲に物があるか、あるならどんな枠か」を直接答える。速い。リアルタイム用途はほぼこちらになる。

覚えておく用語が3つある。

  • アンカー — 事前に用意しておく「よくある枠の形」の雛形。これを基準に差分を予測する。最近はアンカーを使わない設計が主流

  • NMS(Non-Maximum Suppression) — 同じ物体に複数の枠が出るので、信頼度の高いものを残して重複を消す後処理

  • 信頼度閾値 — どこから「検出した」と見なすか。この1つの数字で検出数が大きく変わる

現行のモデル選択について。Ultralytics の YOLO26 が2026年1月14日にリリースされ、推論後のNMSを廃止してネットワーク内で検出を完結させる設計になった。DFLの廃止によりONNX・CoreMLへのエクスポートが簡素化され、CPU推論が最大約43%高速化している。ライセンスはデフォルトでAGPL-3.0、商用は別途問い合わせが必要になる。

ただし最新を選ぶ必要はない。情報の蓄積という観点では、YOLO11を軸に組んでYOLO26を横目で追い、性能に不満が出た段階で乗り換えるという順序を推す意見がある。YOLO26は公式版とコミュニティ版が混在し、情報がまだ育ちきっていない側面があるという理由だ。比較対象としてRF-DETRというモデルも挙がっている。

第5層 セグメンテーションと姿勢推定

セグメンテーションは3種類ある。

  • セマンティック — 「この画素はブロック」(同じ種類の物体を区別しない)

  • インスタンス — 「この画素はブロック1、あの画素はブロック2」

  • パノプティック — 上2つの統合

四角い枠は「どこにあるか」しか教えない。輪郭は「どこを掴めるか」を教える。物体を掴む・持ち上げる・避けるといった、物理的に触る処理が入ってくると、枠では足りなくなる。

姿勢推定は、物体上の決まった点の座標を出す。人なら関節、物なら角。カメラを2台、直交する向きに置いて両方でキーポイントが取れれば、そこから高さが出る。

第6層 評価指標

検出の良し悪しを言うための語彙。

  • IoU(Intersection over Union) — 予測した枠と正解の枠の、重なり面積 ÷ 合併面積。1.0が完全一致。0.5以上を「当たり」とすることが多い

  • Precision(適合率) — 検出したもののうち、正しかった割合。低いと誤検出が多い

  • Recall(再現率) — 正解のうち、検出できた割合。低いと見落としが多い

  • mAP(mean Average Precision) — 信頼度閾値を動かしながらPrecisionとRecallの関係を見て、全クラスで平均した総合スコア。モデル比較の共通言語

PrecisionとRecallは、片方を上げると片方が下がる。どちらを優先するかは用途で決まる。人の手が近くにあるかを検出するなら、「手を見落とす」と「手でないものを手だと言う」のどちらが危険かは違う。この判断は数字を出す前に決めておく必要がある。

第7層 データと学習

モデルより先にデータが要る。

  • アノテーション — 画像1枚ごとに正解の枠や輪郭を人が付ける。ここが一番時間を食う

  • データ拡張 — 1枚の画像を回転・明るさ変更・切り抜きして水増しし、条件変化に強くする

  • 転移学習・ファインチューニング — 大量データで学習済みのモデルを持ってきて、自分の対象数十〜数百枚で微調整する。ゼロから学習はしない

規模感として、NanoVLA の実験では1タスクあたり50回のデモ軌跡を集めて微調整している。数万枚ではなく数十〜数百のオーダーから始まるのが、現在の相場になっている。

第8層 言語との接続

ここ数年で大きく変わった部分。従来の検出モデルは「学習したクラスしか出せない」制約があった。これに対して open vocabulary 系のモデルは、テキストで「何を探したいか」を指定できる。person と書けば人を検出する形になる。

  • CLIP — 画像と文章を同じ空間に埋め込む。「この画像はこの文章に近い」を計算できる

  • Grounding DINO / YOLO-World — テキスト指定で枠を出す

  • SAM 3 — オープン語彙のインスタンスセグメンテーションを単一モデルで行う現行の選択肢。400万の概念で学習し、推論時に27万の概念に対応し、指定した概念の全インスタンスを1パスで検出・分割する。Grounding DINO や YOLO-World が枠を返すのに対し、SAM 3 はマスク(輪郭)まで一度に返す

注意点として、これらは学習データを用意しなくても動くが、精度は専用に学習させたものに劣る。一般的な名前と明確な視覚的境界を持つ対象で最も良く働き、複雑なケースでは生成したマスクを人が修正して学習データにする、という使い方が示されている。アノテーションの下書き生成器として使うのが現実的な線になる。

第9層 実行環境

学習済みモデルを実際に動かす段階の話。

  • ONNX — フレームワーク間で持ち運べる中間形式

  • TensorRT — NVIDIA GPU向けに変換して高速化する仕組み

  • 量子化 — 数値の精度を32bitから8bitなどに落として、速度とメモリを稼ぐ

この層は最後に来る。どのモデルを何Hzで動かす必要があるかが決まっていないと、どのハードウェアが要るかは決まらないからだ。

評価指標を、学習ベースに入る前に置く理由

9つの層は依存関係であって、学ぶ順序ではない。この2つは一致しない。

依存関係で言えば、評価指標は第6層にある。検出やセグメンテーションを知らないと、IoUやmAPが何を測っているのか分からないからだ。しかし学ぶ順序では、評価指標を学習ベースに入る直前に置く。 具体的には、第1層・第2層(画素・古典的手法)の次であり、第3層(畳み込み)の前になる。

理由は単純で、物差しを持たずにモデルを触ると、以降のすべてが感想になるからだ。

モデルを差し替えて出力画像を目で見ると、「なんとなく良くなった気がする」までは言える。だがそれは、たまたまその1枚で良かっただけかもしれない。IoUを出せば、良くなったのがどれだけかが数字になる。PrecisionとRecallを分けて出せば、誤検出が減ったのか見落としが減ったのかが分かる。この2つは対策が正反対なので、区別できないと次の一手が決まらない。

もう一つの理由は、古典的手法にも同じ物差しが使えることだ。IoUは学習ベース専用の指標ではない。閾値処理と輪郭抽出で出した領域にも、同じようにIoUを計算できる。先に物差しを持てば、いま動いている古典的手法の性能も数字で言える。 その数字がないまま学習ベースへ行くと、「学習ベースのほうが良い」という比較そのものが成立しない。

学ぶ順序としては、以下になる。

画素と色空間(第1層)
  → 古典的コンピュータビジョン(第2層)
  → 評価指標(第6層)        ← ここで前倒し
  → 畳み込み(第3層)
  → 物体検出(第4層)
  → セグメンテーション・姿勢推定(第5層)
  → 言語との接続(第8層)
  → データと学習(第7層)
  → 実行環境(第9層)

第7層(自分でデータを集めて学習させる)を第8層より後に置いたのは、学習済みモデルをそのまま使って足りるかを先に確かめるためだ。アノテーションは重い作業なので、要らないなら要らない。

シリーズで使う画像を4つの出どころに分ける

各回でどんな画像を使うかを、回ごとの都合で決めない。先に4種類に分けて、どの回にどれを使うかを設計する。

種類

何が得られるか

記事に書く再現条件

生成画像

正解が計算で分かる

生成スクリプト全文

自前撮影

現実の照明・影・反射・ブレ

撮影条件(機材・距離・照明・背景)

公開サンプル画像・データセット

多様な対象と、他人と比較できる共通基準

出典URLとライセンス

既存の実験画像

実運用の代表例

撮影系(カメラ・解像度・位置)

生成画像の価値を強調しておきたい。 RGB値が既知の円を白背景に描いた画像を自分で作れば、HSV変換の結果は手計算で検算でき、閾値処理で何画素残るかも事前に予測できる。物体検出なら、描いた図形の座標がそのまま完全な正解の枠になるので、アノテーションなしでIoUが出せる。

これは「測れる手段を先に持つ」という原則そのものになる。生成画像で理屈が合うことを確認してから、自前撮影で現実に何が壊れるかを見る。この2段構えを、崩れやすい回の共通フォーマットにする。

推奨する各回のパターンは、生成画像(理屈が合うか)→ 自前撮影(現実で何が壊れるか)→ 公開画像(他人の対象でも成り立つか)。全回でやる必要はなく、閾値・色空間・検出のように条件で崩れやすい回で効く。

なお、公開データセットとサンプル画像はライセンスが記事の公開可否に直接効く。使う前に確認し、記事に出典を明記する運用にする。

シリーズ全19本の構成

第0部から第3部までを確定、第4部以降を暫定として置く。

第0部 前提

Log#

タイトル

使う画像

1

画像認識と物体検出の全体像

図解のみ(コードなし)

第1部 画像を数字として扱う

Log#

タイトル

使う画像

2

画像は数字の格子である — 画素・チャンネル・解像度

生成(既知のRGB値)+ 自前撮影

3

RGBとHSVで同じ物がどう違って見えるか

生成 → 自前撮影(照明2条件)

4

閾値の決め方と、照明が変わると何が壊れるか

生成 → 自前撮影

5

モルフォロジー演算 — ノイズの粒を消し、途切れをつなぐ

生成(ノイズを意図的に入れる)

6

輪郭抽出と特徴量 — 重心・面積・外接矩形・円形度

生成(面積が計算で出る図形)→ 実物

第2部 位置を合わせる

Log#

タイトル

使う画像

7

特徴点マッチング — 色に頼らず2枚の画像を対応づける

自前撮影(同一対象を2角度)

8

射影変換 — 斜めの平面を真上から見た座標に直す

自前撮影(格子模様を斜めから)

第3部 測る言葉

Log#

タイトル

使う画像

9

検出の当たり外れを数字にする — IoU・Precision・Recall・mAP

生成(正解の枠が既知)

第4部以降(暫定・第3部の完了時に見直す)

Log#

想定タイトル

10

畳み込みが何をしているか — 手で書くフィルタと、学習で決めるフィルタ

11

バックボーンとヘッド — 分類・検出・分割が同じ形で読める

12

物体検出の中身 — 1段階と2段階、アンカー、NMS、信頼度閾値

13

学習済みモデルを自分の画像にかける

14

古典的手法と学習ベースを同じ画像で比べる

15

セグメンテーションと姿勢推定 — 四角い枠では足りない場面

16

テキストで探す物を指定する(open vocabulary)

17

アノテーションとデータ拡張

18

ファインチューニング

19

推論を速くする — ONNX・TensorRT・量子化

第4部以降を暫定扱いにしたのは、第3部まで進んだ時点で、何が分かっていて何が分かっていないかが変わるからだ。19本を今すべて固定すると、実態とズレたまま残る。

この回の対話ログ(全量)

実装のない構想回なので、コードの代わりに対話そのものをログ本体として残す。要約せず、外した案・訂正された過程も消していない。発端は画像認識の話ではなく、ハードウェアを買うかどうかの相談だった。

発端 — Jetson Nano とは何か

Jetson Nanoとはどんなものか詳しく教えてください。 またロボットの文脈の中でどんな利用法をしますか?

— 手のひらサイズの基板に、NVIDIA の GPU と ARM の CPU を載せた小型コンピュータです。Raspberry Pi と同じような形と使い方(Linux が動く・カメラや USB を挿す・GPIO がある)をしながら、GPU で機械学習の推論を回せるところが違います。ニューラルネットワークの計算を、クラウドに送らずその場でやるための箱、と考えると分かりやすいです。

ただし「Jetson Nano」という名前には注意が必要で、2019年に出た無印の Jetson Nano と、現行の Orin Nano はまったく別物です。無印 Nano は Maxwell 世代の GPU で、開発環境の JetPack 4 系はすでにサポート終了しています。2GB 版は 2022年に EOL が発表済みで、4GB の B01 も終息しています。今から新規に買う対象ではありません。

現行ラインナップと立ち位置。

モジュール

AI 性能

何に向くか

Orin Nano / Orin Nano Super

40 TOPS / 67 TOPS

単腕ロボット・カメラ1〜2台の視覚処理

Orin NX

中位

多カメラ・移動ロボット

AGX Orin

上位

自律機械・重いセンサーフュージョン

AGX Thor

Orin の約7.5倍

生成AI主体・ヒューマノイド

Orin Nano Super の中身は、Ampere GPU(CUDAコア1024・Tensorコア32)、6コアの Arm Cortex-A78AE、8GB LPDDR5(102GB/s)、NVMe 対応、MIPI CSI-2 カメラ端子2つ、40ピン拡張ヘッダ。既に Orin Nano 開発キットを持っている人は、ソフトウェア更新だけで Super 相当の性能になります。消費電力は低電力モードで 7〜8W、MAXN_SUPER で最大 25W 程度です。

価格について、ここ数週間で状況が変わっています。NVIDIA は説明なしに Jetson 全ラインの米国価格を改定し、Orin Nano Super 開発キットは $249 から $399、AGX Orin 開発キットは $1,999 から $3,499、AGX Thor 開発キットは $3,499 から $5,499 になりました。2019年から出ている無印 Nano モジュールも $99 から $199 と倍になっています。加えて、3種類の開発キットはいずれも NVIDIA の米国マーケットプレイス上で在庫切れ表示になっています。買うつもりなら、まず在庫と国内価格を実測してからの話になります。

ロボットの文脈での使われ方は4つ。

1つ目、カメラ映像をその場で処理する担当。ロボットに載せたカメラの映像から、物体検出・セグメンテーション・姿勢推定をロボット本体の上で走らせます。ROS 2 側では NVIDIA Isaac ROS というハードウェアアクセラレーション済みパッケージ群があり、ROS 2 のノード処理パイプラインを Jetson Orin 上で最適化して動かします。

2つ目、模倣学習ポリシーの推論を回す担当。テレオペで集めたデータから学習した ACT や diffusion policy を、実機の隣で推論させます。SO-101 とは実績の組み合わせで、AGX Orin で SO-101 の模倣学習を回した例では、学習に約6時間かかっています。研究側でも、NanoVLA という小型 VLA モデルが、SO-101 と Jetson Orin Nano 8GB の組み合わせで、pick-and-place を含む実タスク評価に使われています。

3つ目、VLM / LLM をローカルで動かす担当。Orin Nano Super は vision transformer・LLM・vision-language model を動かすことを前提に設計されています。NVIDIA 側も GR00T を TensorRT で最適化して Jetson へデプロイする手順を用意し、LeRobot 経由でのファインチューニングとつなげています。

4つ目、「載せない」という選択肢もあります。推論を必ずロボット側でやる必要はありません。LeRobot は非同期推論の仕組みを持っていて、PolicyServer をワークステーションの GPU 側に置き、RobotClient をロボット側に置いて gRPC で観測と行動をやり取りします。現在の行動チャンクを実行しながら次のチャンクを先読み計算することで、待ち時間を減らす仕組みです。制御ループの目安として、VLA による行動生成は 24Hz、知覚系の検出は 5Hz 程度でも許容される、という切り分けがされています。

体系的に学びたいという転換

なるほど。 今画像認識や物体検出などをもっと深く学びたいと考えています。 Jetsonをいますぐ購入して云々という前に、ちゃんと体系的に画像認識や物体検出について学ぶために全体像から順を追って解説お願いできますか?

— ここで、記事本文の前半にあたる9層の地図とタスクの分類を提示した。内容は本文と重複するため、この項では差分のみを残す。

回答の末尾で、最初の一歩として次を提案した。新しく教材を用意する必要はなく、手元にある画像と、そのとき検出した座標の対を使って、現行の古典的手法が出した位置と、学習済みモデルが出した枠の中心を並べ、IoUと距離差を出す。これが出れば、学習ベースが自分の照明・自分の対象で通用するか、どちらがどれだけ安定しているか、そして1枚あたりの推論時間が分かる。

シリーズ名を決める

まず全体像から。 今したいことは画像認識や物体検出に関することを体系的に学ぶ記事をシリーズで書いていきたいと考えています。 先ほどの説明で画像認識や物体検出の全体像を把握出来ましたが、一つ一つの知識や実践したログを丁寧に落とし込んでいません(色んな記事の中に画像認識や物体検出のことがバラバラに存在している状況)

そのためのお手伝いをお願いしたい。

まずはシリーズ名を考えてください。

— 最初の提案は機種名を含む形だった。

案

シリーズ名

A

mechArm 270 Pi ロボットの目を一から作る

B

mechArm 270 Pi 画像認識を下の層から積む

C

mechArm 270 Pi 物体検出を測れるようにする

D

iPhone 2台で物体検出を一から学ぶ

E

mechArm 270 Pi カメラが何を見ているかを確かめる

この案は却下された。

mechArm 270 Pi ロボットの目を一から作る

mechArm 270 Piは必要ないです。画像認識や物体検出(もしくは追加の語句があっても可)に絞ってタイトルを考えてください。

— 機種名を外した6案を出し直した。

案

シリーズ名

A

画像認識と物体検出を一から作る

B

画像認識と物体検出を下の層から積む

C

画像認識と物体検出を測れるようにする

D

画像認識と物体検出のつくりかた

E

物体検出を一から作る

F

画像認識と物体検出を学び直す

このときA案を推した。理由として、記事の中身がフルコードと実機ログを載せるものになる以上、「学ぶ」より「作る」のほうが実態に合う、と述べた。

あわせて、記事制作ルールとの食い違いを1点報告した。ルール上はシリーズタイトルに機種名を必ず含めることになっているが、このシリーズは扱う内容が機種に依存しない。色空間も輪郭抽出もIoUも、どの機体でも同じになる。機種名を入れると、むしろ限定された話に見える。対応として、ルール側に「機種に依存しない主題のシリーズは機種名を省略してよい。その場合、主題を表す語をタイトルに必ず含める」を追記する案を出した。

選ばれたのはF案だった。

画像認識と物体検出を学び直す

推した理由づけのうち、他シリーズを引き合いに出した部分も却下された。

動的追従シリーズと受け渡しシリーズの中に散らばっているとかは今は必要ない。画像認識と物体検出だけのことを考えてください。

— シリーズ名を「画像認識と物体検出を学び直す」で確定し、以降は画像認識と物体検出だけを主題として扱うことにした。

構成を組み直す

最初に提示した構成は全12本だった。第1部(画像を数字として扱う・4本)、第2部(学習ベースに移る・5本)、第3部(自分の対象に合わせる・3本)。

これに対して2つの指示が入った。

Log#1は画像認識と物体検出についての全体像の話にしてください(このチャットのやり取りした内容)まずは大前提と基礎知識の記事が必要です!

画像認識と物体検出の記事内の実際の画像はmechArmで使っただけではなく、新規で画像を持ってきたり、生成したもので記事を作る可能性があります。

それを考慮に入れてシリーズ構成を考え直してください。

— この2点で構成が変わった。

1つ目の指示で、全体像の回を Log#1 として新設した。12本構成では色空間から始まっていたが、地図を持たずに第1層に入ると、なぜその順序なのかが読み手に伝わらない。

2つ目の指示のほうが構成への影響が大きかった。実機で撮った画像に縛られないなら、どの回にどの画像を使うかを設計できる。特に生成画像は、描いた図形の座標がそのまま正解の枠になるので、アノテーションなしでIoUが計算できる。理屈が合うことを生成画像で確認してから、自前撮影で現実に何が壊れるかを見る、という2段構えが取れる。

これを前提に、古典的手法を3本から5本へ割り直した。画像が自由に用意できるなら、閾値とモルフォロジーを1本に押し込む理由がない。それぞれ独立して壊れる工程なので、分けたほうが原因が追える。あわせて、12本構成では触れるだけだった特徴点マッチングと射影変換を独立した回にした。色に依存しない対応づけは、色が使えない対象に効く。実機の制約から離れるなら、省く理由がない。

結果として全19本になり、第3部までを確定、第4部以降を暫定とした。

タイトルとスラグの確定

サブタイトルは3案から選んだ。

案

サブタイトル

A

分類・検出・セグメンテーションは何がどう違うのか

B

何を出力するかでタスクが分かれる ― 9つの層と、積む順序

C

9つの層と、評価指標を先に学ぶ理由

C案を推した。A案はタスクの違いだけを約束していて記事の後半が入らない。B案は範囲を正しく覆うが、前半と後半を並べただけで読む理由になっていない。C案は「評価指標を先に」という、この記事で一番説明が要る判断を名前に置いている。

スラグは5案を出し、image-recognition-object-detection-overview が選ばれた。シリーズの入口になる記事なので、検索で辿り着ける語を優先した。「9つの層」も「学ぶ順序」もこのシリーズ独自の言い方であり、外から探している人の語彙ではない。

この回で決まったこと

  • シリーズ名は「画像認識と物体検出を学び直す」。機種名を含めない

  • Log#1 は全体像。タスクの分類と、9つの層と、学ぶ順序を決める回にする

  • 学ぶ順序では、評価指標を学習ベースに入る前へ前倒しする

  • 使う画像は生成・自前撮影・公開データセット・既存の実験画像の4種類に分ける。崩れやすい回は生成画像で理屈を確認してから実写に移る

  • 全19本。第3部(Log#9)までを確定、第4部以降は第3部の完了時に見直す

次は Log#2 に入る。画像が縦H×横W×チャンネル3の数値配列であることを、生成した画像の画素値を実際に取り出して確かめるところから始める。