오브젝트 트래커

Object Tracker

아래 콘텐츠를 셀 단위로 살펴 감지 영역에 바운딩 박스와 선택형 라벨을 그립니다.

다른 이름: ObjectTrackerdetection overlaybounding boxes

WebGPU 를 지원하는 브라우저에서 움직입니다

이 기기에서는 데모를 그리지 못해 정지 화면을 보여 줍니다

React
// WebGPU 를 지원하는 브라우저에서만 그립니다.
// /samples/… 는 이 사이트의 샘플 파일입니다. 내 프로젝트의 이미지·영상 경로로 바꾸세요.
import { Shader, ImageTexture, ObjectTracker } from 'shaders/react'

export default function ShaderEffect() {
  return (
    <Shader style={{ width: '100%', height: 320 }} disableTelemetry>
      <ImageTexture
        objectFit="cover"
        url="/samples/still.jpg" />
      <ObjectTracker />
    </Shader>
  )
}
Vue
<!-- WebGPU 를 지원하는 브라우저에서만 그립니다. -->
<!-- /samples/… 는 이 사이트의 샘플 파일입니다. 내 프로젝트의 이미지·영상 경로로 바꾸세요. -->
<script setup lang="ts">
import { Shader, ImageTexture, ObjectTracker } from 'shaders/vue'
</script>

<template>
  <Shader style="width: 100%; height: 320px" :disable-telemetry="true">
    <ImageTexture
      object-fit="cover"
      url="/samples/still.jpg"/>
    <ObjectTracker/>
  </Shader>
</template>
Svelte
<!-- WebGPU 를 지원하는 브라우저에서만 그립니다. -->
<!-- /samples/… 는 이 사이트의 샘플 파일입니다. 내 프로젝트의 이미지·영상 경로로 바꾸세요. -->
<script>
  import { Shader, ImageTexture, ObjectTracker } from 'shaders/svelte'
</script>

<Shader style="width: 100%; height: 320px" disableTelemetry>
  <ImageTexture
    objectFit="cover"
    url="/samples/still.jpg" />
  <ObjectTracker />
</Shader>
Solid
// WebGPU 를 지원하는 브라우저에서만 그립니다.
// /samples/… 는 이 사이트의 샘플 파일입니다. 내 프로젝트의 이미지·영상 경로로 바꾸세요.
import { Shader, ImageTexture, ObjectTracker } from 'shaders/solid'

export default function ShaderEffect() {
  return (
    <Shader style={{ width: '100%', height: '320px' }} disableTelemetry>
      <ImageTexture
        objectFit="cover"
        url="/samples/still.jpg" />
      <ObjectTracker />
    </Shader>
  )
}
JavaScript
// WebGPU 를 지원하는 브라우저에서만 그립니다.
// /samples/… 는 이 사이트의 샘플 파일입니다. 내 프로젝트의 이미지·영상 경로로 바꾸세요.
// <canvas id="canvas" style="width:100%;height:320px"></canvas> 가 페이지에 있어야 한다
import { createShader } from 'shaders/js'

const shader = await createShader(document.getElementById("canvas"), {
  components: [
    {
      type: 'ImageTexture',
      props: {
        objectFit: 'cover',
        url: '/samples/still.jpg',
      },
    },
    {
      type: 'ObjectTracker',
    }
  ]
}, { disableTelemetry: true })

속성(props) · ObjectTracker

값을 바꾸면 위 데모와 코드 탭에 바로 반영됩니다. 설명은 라이브러리 레지스트리의 영어 원문(MIT)입니다.

이름값기본값범위·선택지설명(원문)
detectionModeDetectbrightalpha · bright · dark · red · green · blueWhat counts as a detectable object.
thresholdThreshold0.250 – 1 (step 0.01)Detection cut-off.
layoutLayoutmosaicgrid · quadtree · mosaicHow the canvas is partitioned into detection cells.
cellSizeBase Cell Size40024 – 800 (step 1)Base cell size in pixels
maxDepthSubdivision21 – 5 (step 1)Maximum subdivision levels for Quadtree/Mosaic layouts (each level can quarter a cell).
boxStyleBox Stylecornersfull · cornersBounding box outline style
lineWidthLine Width1.50.5 – 12 (step 0.5)Thickness of the box outline in pixels.
cornerRadiusCorner Radius00 – 40 (step 1)Corner radius of the box outline in pixels
strokeColorStroke#ffffff—Bounding box outline color.
fillColorFill#5a79911a—Bounding box fill color.
labelColorLabel#000000—Label text color.
labelBackgroundColorLabel Background#ffffff—Label pill background color.
labelModeLabelnonenone · dimensions · percentageWhat each label shows.
labelPositionLabel Positionbottom-rightbottom-left · bottom-right · top-left · top-rightWhich corner of the box the label anchors to.
labelRadiusBorder Radius00 – 30 (step 1)Corner radius of the label pill in pixels.
labelInsetLabel Insettrue—Place the label inside or outside the box.
fontFamilyFont코드에서 지정Inter—Google Fonts family used for label text.
fontWeightWeight코드에서 지정500—Font weight for label text.
fontSizeSize0.0150.01 – 0.5 (step 0.005)Label text size as a fraction of canvas height.
letterSpacingLetter Spacing0-0.1 – 0.5 (step 0.005)Letter spacing for label text, in em units.

모든 컴포넌트 공통: blendMode · opacity · visible · maskSource/maskType · boundingBox · id

감지 상자가 화면을 나눠 분석 도구의 오버레이처럼 보입니다. 격자 칸이나 세분된 영역마다 박스가 나타나 구조를 드러내며, 라벨은 별도로 켤 수 있습니다.

`detectionMode`의 기본값은 `bright`이며 밝기·어둠·투명도·RGB 중 감지 기준을 고릅니다. `threshold`는 기본 0.25이며 0–1에서 기준선을 정하고, `layout`의 기본값은 `mosaic`으로 `grid`, `quadtree`, `mosaic` 중 화면을 나누는 방식을 선택합니다. `cellSize`는 기본 400이며 24–800, `maxDepth`는 기본 2이며 1–5에서 셀의 크기와 세분 단계를 조절합니다.

아래에 이미지나 영상 입력을 깔아야 박스가 나타납니다. `KeyFrames`와 조합하면 트래커 경로와 영역 표시를 함께 보여줄 수 있습니다. 의미를 이해하는 분석 결과로 오해하지 않도록 시각화·설명용으로 쓰고, 작은 셀을 지나치게 늘리면 설정한 박스와 라벨이 화면을 복잡하게 만들 수 있습니다.

언제 쓰나

분석 대시보드 목업, 컴퓨터 비전 설명, 화면 분할을 보여주는 데모에 좋습니다. 실제 인물·사물 인식 결과가 필요한 제품 기능을 대체해야 할 때는 피하세요.

페이지로 열기 ↗