웹 브라우저

roboflow.js로 엣지에서 실시간 예측

대부분의 비즈니스 애플리케이션에는 Hosted API 가 적합합니다. 하지만 많은 소비자 애플리케이션과 일부 엔터프라이즈 사용 사례에서는 서버 호스팅 모델이 적합하지 않을 수 있습니다(예: 사용자가 대역폭에 제한이 있거나 원격 API를 사용할 때보다 더 낮은 지연 시간이 필요한 경우).

inferencejsTensorflow.js 위에 구축된 커스텀 레이어로, Roboflow에서 학습된 모델을 사용하여 JavaScript로 실시간 추론을 가능하게 합니다.

자세한 내용은 inferencejs 참고 여기에서 확인하세요

학습 자료

  • 웹캠으로 모델 테스트하기 : 다음에서 hand-detector 모델의 웹캠 데모를 시도해 볼 수 있습니다. 여기에서 hand-detector 모델 (공개된 EgoHands 데이터셋).

  • 인터랙티브 Replit 환경 : "시작하기" 프로젝트를 Repl.it에 게시했으며, 이에 대한 튜토리얼도 함께 제공됩니다. Repl.it 템플릿을 사용하여 YOLOv8 모델을 배포하는 방법.

  • GitHub 템플릿: Roboflow 홈페이지inferencejs 를 사용하여 COCO 추론 위젯을 구동합니다. README에는 GitHub Pages를 사용해 웹에 모델을 배포하는 방법에 대한 저장소 템플릿 사용법이 안내되어 있습니다.

  • 문서 : 특정 함수에 대한 자세한 내용이 궁금하다면 inferencejs를 참고하세요. 문서 페이지 또는 아래 가이드에서 inferencejs 메서드를 클릭하면 해당 문서로 이동합니다.

지원되는 모델

inferencejs 는 현재 다음 모델 아키텍처를 지원합니다:

설치

프로젝트에 inference 를 추가하려면 npm으로 설치하거나 스크립트 태그를 페이지의 <head> 태그가 없는 이미지만 포함됩니다.

npm install inferencejs
<script src="https://cdn.jsdelivr.net/npm/inferencejs"></script>

초기화 inferencejs

인증

Roboflow 워크스페이스 설정에서 publishable_key 를 얻을 수 있습니다.

먼저 InferenceEngine 을(를) 임포트하고 새로운 추론 엔진 객체를 생성합니다.

inferencejs 는 웹워커를 사용하므로 여러 모델을 메인 UI 스레드를 차단하지 않고 사용할 수 있습니다. 각 모델은 InferenceEngine 필요한 스레드 관리를 추상화한 웹워커 매니저를 통해 로드됩니다.

import { InferenceEngine } from "inferencejs";
const inferEngine = new InferenceEngine();

이제 roboflow에서 귀하의 publishable_key 와 모델 메타데이터(모델 이름과 버전), 신뢰도 임계값 및 중첩 임계값과 같은 설정 파라미터를 사용하여 모델을 로드할 수 있습니다.

const workerId = await inferEngine.startWorker("[model name]", "[version]", "[publishable key]");

inferencejs 이제 선택한 모델을 실행하는 워커가 시작됩니다. 반환된 워커 ID는 InferenceEngine 에서 추론에 사용할 워커 ID와 일치합니다. 모델에 대해 추론하려면 infer 메서드를 InferenceEngine.

에 호출하면 됩니다. 이미지를 로드하고 워커에서 추론해봅시다.

const image = document.getElementById("image"); // id가 `image`인 이미지 요소 가져오기
const predictions = await inferEngine.infer(workerId, image); // 이미지에서 추론하기

다양한 이미지 형식(HTMLImageElement, HTMLVideoElement, ImageBitmap또는 TFJS Tensor).

)을 입력으로 받을 수 있습니다. 이는 예측값 배열(이 경우 클래스는 RFObjectDetectionPrediction )

설정

의 예측 필터링 방식을 사용자 지정하려면 inferencejs 워커 생성 시 파라미터를 전달할 수 있습니다.

const configuration = {scoreThreshold: 0.5, iouThreshold: 0.5, maxNumBoxes: 20};
const workerId = await inferEngine.startWorker("[model name]", "[version]", "[publishable key]", configuration);

또는 추론 시 설정 옵션을 전달할 수도 있습니다.

const configuration = {
    scoreThreshold: 0.5, 
    iouThreshold: 0.5, 
    maxNumBoxes: 20
};
const predictions = await inferEngine.infer(workerId, image, configuration);

Last updated

Was this helpful?