For the complete documentation index, see llms.txt. This page is also available as Markdown.

이미지 관리

REST API와 Python SDK를 통해 개별 이미지를 업로드, 주석 처리, 검사, 태그 지정, 삭제하세요.

소개

Roboflow를 사용하면 REST API와 Python SDK를 통해 프로젝트 내 개별 이미지를 업로드, 주석 추가, 검사, 태그 지정 및 삭제할 수 있습니다. 이 대량 데이터세트 업로드 흐름이 제공하는 것보다 더 세밀한 제어가 필요할 때 이러한 작업을 사용하세요. 예를 들어, 스트림에서 한 번에 한 이미지씩 업로드하거나, 나중에 주석을 추가하거나, 이미지 메타데이터와 태그를 업데이트할 수 있습니다. 한 번에 전체 라벨링된 데이터세트를 대량으로 가져오려면 다음을 참조하세요 데이터세트 업로드.

HTTP API

REST API는 이미지와 주석 업로드, 이미지 세부 정보 가져오기, 이미지 삭제, 이미지 태그 및 메타데이터 관리에 대한 이미지별 작업을 제공합니다.

이미지 업로드

REST API를 사용해 로컬 파일이나 URL에서 이미지를 업로드합니다.

매개변수

API에서 허용하는 쿼리 문자열 매개변수:

api_key: https://app.roboflow.com/account/api에서 확인하세요 image: [선택 사항] 추가할 이미지의 URL입니다. 이미지가 다른 곳에 호스팅되어 있는 경우 사용하세요(요청 본문에 base64로 인코딩된 이미지를 POST하지 않는 경우 필요). name: [선택 사항] 이미지의 파일 이름입니다(설정하지 않으면 추론을 시도합니다). batch: [선택 사항] 이 이름으로 이미지를 배치로 묶습니다 tag: [선택 사항] 여러 번 지정할 수 있습니다. 업로드된 이미지에 태그를 추가합니다. split: [선택 사항] 다음 중 하나: train, valid, test(기본값은 train). sequence_number: [선택 사항] 데이터세트에서 이미지 순서를 유지하고 싶다면, 업로드하는 이미지에 증가하는 시퀀스 번호를 부여할 수 있습니다. sequence_size: [선택 사항] 시퀀스 내 전체 이미지 수입니다. 설정하지 않으면 기본값은 100,000입니다. inference_id: [선택 사항] roboflow 추론 감지에서 반환된 추론 ID입니다. 이 inference_id를 사용하면 Model Monitoring(엔터프라이즈 기능)에서 이미지와 roboflow 감지를 연관시킬 수 있습니다.

Linux 또는 macOS

다음 이름의 로컬 파일 업로드 YOUR_IMAGE.jpg multipart/form-data를 사용하여(권장):

curl -F name=YOUR_IMAGE.jpg -F split=train \
-F file=@YOUR_IMAGE.jpg \
"https://api.roboflow.com/dataset/YOUR_DATASET_NAME/upload?\
api_key=$ROBOFLOW_API_KEY"

또는, base64로 인코딩된 이미지를 업로드:

base64 -i YOUR_IMAGE.jpg | curl -d @- \
"https://api.roboflow.com/dataset/your-dataset/upload?\
api_key=$ROBOFLOW_API_KEY&\
name=YOUR_IMAGE.jpg&\
split=train&\
batch=BATCH_NAME_FOR_UPLOAD"

웹에 호스팅된 이미지를 URL을 통해 업로드할 때는(다음을 잊지 마세요 URL 인코딩하세요):

curl -X POST "https://api.roboflow.com/dataset/your-dataset/upload?\
api_key=$ROBOFLOW_API_KEY&\
image=https%3A%2F%2Fi.imgur.com%2FPEEvqPN.png&\
name=201-956-1246.png&\
split=train"

Windows

설치해야 합니다 Windows용 curlWindows용 GNU base64 도구. 가장 쉬운 방법은 다음을 사용하는 것입니다 git for Windows 설치 프로그램 여기에는 다음도 포함됩니다 curlbase64 설치 중에 "명령 프롬프트에서 Git 및 선택적 Unix 도구 사용"을 선택하면 명령줄 도구를 사용할 수 있습니다.

그다음 위와 동일한 명령을 사용할 수 있습니다.

Node.js

이 예제에서는 axiosform-data 이 POST 요청을 수행하기 위해 사용하므로 먼저 다음을 실행하세요 npm install axios form-data 의존성을 설치하려면.

multipart/form-data를 사용하여 업로드(권장):

base64로 인코딩된 이미지를 사용하여 업로드(권장하지 않음):

URL을 통해 다른 곳에 호스팅된 이미지 추가

현재 베타 테스트 중입니다 roboflow.js, 브라우저 기반 JavaScript 라이브러리로, 그중에는 비밀 API 키를 웹에 노출하지 않고 안전하게 클라이언트 측 업로드를 수행하는 기능도 포함됩니다. 조기 액세스를 원하시면 문의하세요.

Swift

iOS 개발을 위한 Swift를 사용한 업로드 예제 스니펫입니다.

}

Kotlin

base64로 인코딩된 이미지를 사용하여 업로드:

URL을 통해 다른 곳에 호스팅된 이미지 추가:

Android(자바)

base64로 인코딩된 이미지를 사용하여 업로드:

URL을 통해 다른 곳에 호스팅된 이미지 추가:

Ruby

base64로 인코딩된 이미지를 사용하여 업로드:

URL을 통해 다른 곳에 호스팅된 이미지 추가:

PHP

base64로 인코딩된 이미지를 사용하여 업로드:

URL을 통해 다른 곳에 호스팅된 이미지 추가:

Go

base64로 인코딩된 이미지를 사용하여 업로드:

URL을 통해 다른 곳에 호스팅된 이미지 추가:

.NET

base64로 인코딩된 이미지를 사용하여 업로드:

URL을 통해 다른 곳에 호스팅된 이미지 추가:

Roboflow에서 업로드된 이미지 보기

API를 통해 업로드된 이미지는 Annotate 탭의 unassigned 열에서 uploaded via API.

로 표시되어 있는 batch upload 매개변수를 지정하면 이미지가 여전히 Annotate 탭에서 찾을 수 있지만, uploaded via API batch로 이동하는 대신 지정한 batch에서 찾을 수 있습니다.

주석 업로드

이미지와 함께 기존 주석이 이미 있다면 Roboflow에 업로드할 수 있습니다.

알고 계셨나요? API를 사용하지 않고도 앱의 업로드 페이지에서 이미지와 함께 주석 파일을 드래그 앤 드롭(또는 선택)할 수 있습니다.

추가 prediction=true 를 사용하면 주석을 정답이 아닌 모델 예측으로 저장할 수 있습니다. 이미지가 아직 업로드 배치에 있고 주석 작업에는 아직 없으면 Roboflow가 해당 배치를 Review 작업으로 이동합니다.

추가 predictionRouting=unassigned 를 사용하면 그 이동을 건너뜁니다. 주석은 여전히 저장되고 이미지는 여전히 주석 처리됨으로 표시되지만, 해당 배치에 그대로 남아 unassigned 상태로 유지됩니다. 사용 predictionRouting=review 를 사용하면 기본 라우팅을 요청할 수 있습니다. 두 값 모두 prediction=true가 필요하며, 다음과 함께 사용할 수 없습니다. jobName.

예시

이미지에 VOC XML 주석 을 첨부하기 abc123your-dataset 라는 데이터셋에서 YOUR_ANNOTATION.xml:

이미지에 Darknet TXT 주석 을 첨부하기 abc123your-dataset 라는 데이터셋에서 YOUR_ANNOTATION.txt json labelmap을 사용하는 경우입니다. 이 경우에는 주석 파일의 내용을 단순히 본문으로 보내는 대신 json에 담아 보내야 합니다.

이 예제에서는 axios 이 POST 요청을 수행하기 위해 사용하므로 먼저 다음을 실행하세요 npm install axios 의존성을 설치하려면.

로컬 이미지 업로드하기

Kotlin

base64로 인코딩된 이미지를 사용하여 업로드:

URL을 통해 다른 곳에 호스팅된 이미지 추가:

Android(자바)

base64로 인코딩된 이미지를 사용하여 업로드:

URL을 통해 다른 곳에 호스팅된 이미지 추가:

이미지에 대한 세부 정보 가져오기

REST API를 사용하여 특정 이미지의 세부 정보를 가져올 수 있습니다.

특정 이미지의 세부 정보를 가져오려면 다음 API 엔드포인트로 GET 요청을 보내세요.

다음은 이미지의 세부 정보를 가져오기 위한 API 요청 예시입니다.

이 엔드포인트는 이미지에 대한 다음 정보를 포함하는 JSON 객체를 반환합니다:

데이터셋에서 이미지 삭제하기

REST API를 사용하여 데이터셋에서 이미지를 제거할 수 있습니다.

데이터셋에서 이미지를 제거하려면 다음 API 엔드포인트로 DELETE 요청을 보내고, 엔드포인트에 이미지 ID를 전달하세요.

다음은 이미지를 제거하기 위한 API 요청 예시입니다.

이 엔드포인트는 작업이 성공하면 204 상태를 반환합니다.

이미지 태그 나열, 추가, 제거

REST API를 사용하여 Roboflow의 특정 이미지에 태그를 지정할 수 있습니다.

Roboflow에 호스팅된 이미지의 태그를 추가, 제거, 설정하려면 다음 API 엔드포인트로 POST 요청을 보내세요. 이미지 이름과 연결된 이미지 ID를 검색하려면 Search API를 사용하세요:

다음은 API 요청 예시입니다(태그를 "add", "remove", 또는 "set"할 수 있음):

이 엔드포인트는 POST 본문에서 다음 값을 स्वीकार합니다:

API는 Roboflow에서 지정한 이미지에 태그를 추가합니다(POST 요청에 이미지 이름이 아니라 이미지 ID를 전달해야 한다는 점을 기억하세요).

이미지 메타데이터 및 태그 업데이트

REST API를 사용하여 워크스페이스의 이미지에 사용자 정의 메타데이터와 태그를 쓸 수 있습니다. 두 개의 엔드포인트가 있습니다. 하나는 단일 이미지를 동기적으로 업데이트하는 용도이고, 다른 하나는 최대 1,000개의 이미지를 배치로 업데이트하는 용도입니다.

두 엔드포인트 모두 image:tag 범위가 있는 API 키가 필요합니다.

요청 본문

두 엔드포인트는 동일한 필드를 받습니다(배치 엔드포인트는 이를 updates 배열에 담음):

이 필드들 중 적어도 하나는 포함해야 합니다. 같은 요청에서 동일한 메타데이터 키나 태그를 설정하고 제거할 수는 없습니다. 다음으로 시작하는 메타데이터 키는 _rf_internal_ 는 Roboflow 전용으로 예약되어 있으며 거부됩니다.

단일 이미지

단일 이미지의 메타데이터와 태그를 업데이트합니다.

예시

응답

배치 업데이트

여러 이미지의 메타데이터와 태그를 비동기적으로 업데이트합니다. 요청당 최대 1,000개의 이미지를 허용합니다.

예시

응답

반환 202 작업 ID와 함께 반환됩니다. 진행 상황을 확인하려면 작업 URL을 폴링하세요.

참조 Async Tasks 에서 작업 상태를 폴링하는 방법을 확인하세요.

오류

Python SDK

프로젝트 는 대량 upload_dataset 흐름을 보완하는 이미지별 작업을 제공합니다. 단일 이미지 업로드를 더 세밀하게 제어해야 하거나, 나중에 주석을 첨부하고 싶거나, 스트림에서 이미지를 하나씩 수집할 때 이 기능을 사용하세요.

이미지 업로드(선택적 주석 포함)

Project.upload() 는 고수준의 "알아서 잘 처리하는" 도우미입니다. 단일 이미지와 일치하는 선택적 주석 파일 하나를 받아, 한 번의 호출로 둘 다 프로젝트에 전송합니다.

single_upload() 는 동일한 인수를 받는 더 낮은 수준의 변형으로, 이미지와 (제공된 경우) 주석에 대한 원시 API 응답을 반환합니다.

이미지만 업로드

주석이 아직 없고 이미지가 바로 라벨러로 넘어갈 때 유용합니다.

업로드 전에 이미지 검증

check_valid_image() 는 API를 호출하지 않고 Roboflow의 로컬 크기 / 형식 검사를 실행합니다:

기존 이미지에 주석 첨부

save_annotation() 이미지에 대해 이미 프로젝트에 있는 주석을 게시합니다. 다른 곳에서 생성한 레이블을 추가하거나 모델 예측을 정답으로 승격할 때 유용합니다.

전달하세요 annotation_labelmap="./labelmap.yaml" 주석 형식에 필요하다면 클래스 인덱스를 클래스 이름으로 매핑하기 위해.

다음을 사용해 저장하면 is_prediction=True 이미지를 검토 작업으로 이동할 수 있습니다. 참조: 예측이 저장되는 위치.

이미지의 메타데이터 가져오기

이미지 메타데이터, 현재 분할, 주석 상태를 반환합니다.

이미지 삭제

프로젝트 수준(이 프로젝트에 속한 이미지만 삭제):

워크스페이스 수준(참조하는 프로젝트와 상관없이 이미지를 삭제합니다 - 주의해서 사용하세요):

v1.3.6+ 업로드에 대한 참고

현재 roboflow 1.3.6, SDK는 Pillow를 통해 다시 인코딩하는 대신 원본 이미지 바이트를 업로드합니다. 이렇게 하면 웹 업로더와의 일관성이 복원되고 Roboflow 서버가 SHA-256으로 업로드를 중복 제거할 수 있습니다. 같은 이미지를 두 번 업로드하는 자동화(예: 여러 배치에 추가하기 위해)가 있다면, 두 번째 업로드는 추가 저장소 크레딧을 소모하지 않고 성공하는 것을 보게 될 것입니다.

CLI

CLI를 사용해 이미지 한 장과 선택적 주석, 태그 또는 메타데이터를 업로드합니다.

옵션

플래그
설명

-p, --project

프로젝트 ID(필수)

-a, --annotation

주석 파일 경로

-m, --labelmap

레이블 맵 파일 경로

-s, --split

데이터셋 분할: 학습, 검증, 또는 테스트. 기본값은 학습.

-t, --tag

쉼표로 구분된 태그 이름

-M, --metadata

JSON 문자열 형식의 메타데이터

--is-prediction

업로드를 예측으로 표시합니다

-b, --batch

배치 이름

예시

주석이 포함된 이미지를 업로드합니다:

태그와 메타데이터가 포함된 이미지를 업로드합니다:

디렉터리 또는 .zip 아카이브를 업로드하려면 참조하세요 데이터세트 업로드.

마지막 업데이트

도움이 되었나요?