--- // /series7(画像認識と物体検出)の見出しの下に置く解説(2026-11-07) // 1 このシリーズでやっていること(下から積む5段と、その回) // 2 何を出すかで分かれる(分類・検出・セグメンテーション・姿勢推定・追跡・深度)。絵は public/site/vision/(作り方は tools/vision_guide_tiles/) // 3 現場で使われている技術(現場ごとに、何を見たいか・何が使われるか・関連の回) // 文字は AI も読むので、本文の文字で書く(絵だけにしない) type Link = { log: string; slug: string; t: string }; const steps: { h: string; p: string; links: Link[] }[] = [ { h: '画素と色を測る', p: '同じ赤 (255, 0, 0) が、読み込む道具によって青と入れ替わる。オレンジの照明の下では、青いブロックが色を失う。検出が揺れたとき、原因がモデルより手前の画素の段階にあることを先に確かめています。', links: [ { log: 'LOG299', slug: 'where-pixel-values-change', t: '画素の数字は、読むと・保存すると・撮ると変わる' }, { log: 'LOG300', slug: 'hue-holds-color-breaks', t: 'オレンジの光の下で青いブロックが色を失う' }, { log: 'LOG301', slug: 'rgb-hsv-threshold-lighting-failure', t: '光が変わると、赤検出が青を拾う' }, ] }, { h: '人が条件を書く手法を、1つずつ壊してみる', p: 'しきい値で白と黒に分け、モルフォロジーで小さな粒を消し、輪郭から面積や円形度を出し、特徴点で2枚の写真を対応させ、射影変換で斜めの紙を真上から見た形に直す。寸法の分かっている印刷物で、どの段がどう壊れるかを測りました。特徴点マッチングは、対象が写っていない写真とも867件の対応を付けています。', links: [ { log: 'LOG302', slug: 'morphology-kernel-fits-or-vanishes', t: 'モルフォロジー演算' }, { log: 'LOG304', slug: 'what-circularity-actually-measures', t: '重心・面積・外接矩形・円形度' }, { log: 'LOG309', slug: 'same-place-different-object', t: '特徴点マッチング' }, { log: 'LOG310', slug: 'tilted-plane-to-flat', t: '射影変換' }, ] }, { h: '物差しを先に決める', p: 'IoU は、出した枠と正解の枠がどれだけ重なっているか。1.0 で完全に一致します。適合率は、見つけたもののうち正しかった割合で、低いと見間違いが多い。再現率は、あるべきもののうち見つけられた割合で、低いと見落としが多い。物差しがないままモデルを替えても、良くなった気がする、までしか言えません。', links: [{ log: 'LOG298', slug: 'image-recognition-object-detection-overview', t: '9つの層と、評価指標を先に学ぶ理由' }] }, { h: '学習で条件を決めるモデルの言葉を積み直す', p: 'モデル、学習、推論、バックボーン、ゼロショットといった言葉を4段に分けて定義し直し、YOLO26、DINOv3、SAM 3、写真1枚から距離を推す単眼深度が、それぞれどこに立つ技術なのかを整理しました。', links: [{ log: 'LOG313', slug: 'vocabulary-of-modern-vision', t: '用語を下から積み直す' }] }, { h: '新しいモデルを、ロボットの作業に当てる', p: 'SAM 3 は物の名前と色では絞り込めたのに、ガラスかプラスチックかは見分けなかった。ステンレスに映った像まで物として切り出した。OpenAI の Decisions API は、爪の間にブロックがあるかははっきり見分けたが、真上のカメラでは持ち上がったかを判定できなかった。', links: [ { log: 'LOG317', slug: 'sam3-first-look-sorting-line', t: 'SAM 3 はガラス瓶とペットボトルを同じ物として切り出した' }, { log: 'LOG236', slug: 'sam3-mirror-reflection-grasp-problem', t: 'ロボットの目は、鏡像もあると見る' }, { log: 'LOG325', slug: 'decisions-api-grasp-check', t: 'Decisions API は、持ち上がったかを判定できなかった' }, ] }, ]; // 出力の形。pic は小さな絵の種類 const outputs: { name: string; en: string; p: string; pic: string; alt: string }[] = [ { name: '分類', en: 'Classification', pic: 'cls', alt: '真上から撮ったアームの写真に、机の上のロボットアームという名前が1つだけ付いている', p: '写真1枚に、名前を1つ返す。この写真は机の上のロボットアーム、のように。どこに写っているかは返さない。' }, { name: '物体検出', en: 'Detection', pic: 'det', alt: 'アーム・赤いブロック・青いブロックが、それぞれ四角い枠で囲まれている', p: '物ごとに、四角い枠と名前と確からしさを返す。何がいくつ、どこにあるかが分かる。' }, { name: 'セグメンテーション', en: 'Segmentation', pic: 'seg', alt: 'アームと2つのブロックの形だけが、画素単位で白く塗られている', p: '画素ごとに、どの物かを塗り分ける。枠ではなく形が分かるので、つかむ場所を決められる。' }, { name: '姿勢推定', en: 'Pose estimation', pic: 'pose', alt: 'アームの関節と指先に6つの点が打たれ、線でつながっている', p: '関節や角など、決まった点の位置を返す。人の動きや、物の向きが分かる。' }, { name: '追跡', en: 'Tracking', pic: 'trk', alt: '実機の録画で、赤いブロックが箱へ運ばれるあいだ、同じ ID 2 が付き続け、通った道が線で残っている', p: '動画の中で、同じ物に同じ番号を振り続ける。どこから来てどこへ行ったかが分かる。' }, { name: '深度', en: 'Depth', pic: 'dep', alt: 'カメラに近いアームが白く、遠いマットが黒く写る距離の画像', p: 'カメラから物までの距離を返す。アームの手をどの高さまで下ろせばいいかが分かる。' }, ]; const fields: { place: string; h: string; p: string; tags: string[]; links: { href: string; t: string }[] }[] = [ { place: '工場の外観検査', h: '傷・欠け・汚れを見つける', p: '照明とカメラの位置を固定できるラインでは、しきい値やパターンマッチングのような人が条件を書く手法がいまも主力です。速く、なぜ不良としたかを説明できるからです。傷の形が毎回違い、不良品の写真がなかなか集まらない場合は、良品の写真だけで学習して良品と違う所を拾う異常検知(PatchCore など)が使われます。どちらの方式でも、結果を先に決めるのは照明の当て方です。', tags: ['しきい値', 'パターンマッチング', '異常検知'], links: [{ href: '/record/ai-visual-inspection-lighting', t: 'LOG319 AI外観検査は撮り方で決まる' }, { href: '/record/rgb-hsv-threshold-lighting-failure', t: 'LOG301 光が変わると、赤検出が青を拾う' }] }, { place: '物流の仕分けとピッキング', h: '箱や袋を1つずつつかむ', p: 'ばら積みの箱や袋をロボットがつかむ現場では、距離が分かる3Dカメラと、物を1つずつ塗り分けるインスタンスセグメンテーションを組み合わせて、つかむ点を決めます。品物の種類が多く入れ替わりも激しいので、品物ごとに学習し直さなくても形を切り出せるモデルが求められています。荷札のバーコードや文字の読み取りは、昔からの画像処理が担っています。', tags: ['3Dカメラ', 'インスタンスセグメンテーション', 'バーコード・文字の読み取り'], links: [{ href: '/record/sam3-first-look-sorting-line', t: 'LOG317 分別ラインを想定して SAM 3 を試した' }] }, { place: '店や施設を動くロボット', h: '人と障害物をよける', p: '配膳や搬送のロボットは、LiDAR や深度カメラで距離を測って障害物をよけ、カメラの物体検出で人を見分けます。動きながら判断するので、1段階で枠を出す速い検出モデル(YOLO 系など)がよく使われます。人を見落とす方が危ないので、見間違いが少し増えても再現率を優先して調整します。', tags: ['LiDAR・深度カメラ', '物体検出(YOLO 系)', '追跡'], links: [{ href: '/record/serving-robot-jam-detection-without-path-lines', t: 'LOG418 配膳ロボットの詰まりを、録画の異常検知で拾う' }] }, { place: 'ロボットアームの作業', h: '物の位置と向きを知る', p: '決まった部品を決まった場所に置くアームでは、マーカーや特徴点で位置を合わせ、射影変換で座標をそろえる方式が長く使われてきました。近年は、カメラの画像を直接見て関節の動きまで出すロボット用の AI(Physical Intelligence の π0.5 など)が出てきて、物を見つける処理と動きを決める処理の境目が薄れつつあります。', tags: ['マーカー・特徴点', '射影変換', 'ロボット用の AI'], links: [{ href: '/record/tilted-plane-to-flat', t: 'LOG310 斜めに撮った紙を真上から見た形に直す' }, { href: '/series6', t: 'フィジカルAI研究室(π0.5 を学習させて動かす記録)' }] }, { place: '人の作業を見る', h: '姿勢と動きを数える', p: '工場の作業分析や介護の見守りでは、人の関節の位置を出す姿勢推定が使われます。映像そのものを残さず、関節の点の動きだけを記録して、どの姿勢で何秒かかったかを数える使い方もできます。', tags: ['姿勢推定', '追跡'], links: [] }, { place: '学習データづくり', h: '正解の下書きを作る', p: 'SAM 3 のように言葉で探すモデルは、学習データを用意しなくても動きますが、専用に学習したモデルには精度で劣ります。そこで、言葉で探すモデルに正解の枠や輪郭の下書きを作らせ、人が直して学習データにする使い方が現実的です。画像に正解を付ける作業は、学習でいちばん時間を食う所だからです。', tags: ['言葉で探すモデル(SAM 3 など)', 'アノテーション'], links: [{ href: '/record/vocabulary-of-modern-vision', t: 'LOG313 用語を下から積み直す' }] }, ]; ---

このシリーズでやっていること | What we do

答えが分かっている生成画像で予測を立て、机の上のアームを撮った写真で確かめる。この往復を、画素の数字から言葉で物を探すモデルまで、下から順に積んでいます。

    {steps.map((s, i) => (
  1. {s.h}

    {s.p}

  2. ))}

何を出すかで、技術が分かれる | Outputs

画像認識と物体検出は、同じ写真を見ても返す答えの形が違います。答えの形が違うと、人が用意する正解データの手間も桁で変わります。名前を1つ付けるだけなのか、枠を描くのか、画素を1つずつ塗るのか。

5枚は、真上のカメラで撮ったマットの上の mechArm 270 と2つのブロックの同じ写真です。深度は Depth Anything V2(Small)で推した結果、追跡は赤いブロックを箱へ運んだ実機の録画から取り出した動きです。

現場で使われている技術 | In the field

現場で選ばれる技術は、新しさで決まりません。照明と物の置き場所をどこまで固定できるか、そして見落としと見間違いのどちらが困るかで決まります。

{fields.map((f) => (

{f.place}

{f.h}

{f.p}

    {f.tags.map((t) =>
  • {t}
  • )}
{f.links.length > 0 && ( )}
))}