자주 묻는 질문

한 모델 계열에 국한되지 않는 질문에 대한 답변입니다. 특정 계열에 관한 내용은 그 계열의 페이지에 있습니다.

어떤 모델부터 시작해야 하나요?

CNN 검출기용 YOLOv9와 트랜스포머용 RF-DETR. 두 모델 모두 플래그십 등급에 속하며, 이는 다른 어떤 것보다 먼저 기능이 설계되고 GPU 검증이 이루어진다는 것을 의미합니다. 나머지 모델은 YOLOv9, RF-DETR 또는 모든 모델을 참조하십시오.

GPU가 필요합니까?

아니요. 모든 모델은 CPU에서 실행되며, 빠른 시작의 모든 내용도 CPU에서 실행되도록 작성되었습니다. GPU는 학습과 비디오 추론에 걸리는 시간은 바꾸지만, 실행 여부를 바꾸지는 않습니다.

LibreYOLO는 장치를 어떻게 선택하나요?

기본값은 device="auto"이며, PyTorch가 사용 가능하다고 보고하면 CUDA를 사용하고, 그 다음 가능할 경우 Metal Performance Shaders를 사용하며, 그렇지 않으면 CPU를 사용합니다. 고정하려면 모델에 device를 전달하거나 predict, train, val, export를 전달하면 됩니다. "cpu", "cuda", "cuda:0", "mps", 0와 같은 단순 정수, 또는 숫자 문자열을 받을 수 있으며, 마지막 두 가지는 cuda:<n>로 확장됩니다.

libreyolo checks는 Torch 빌드, CUDA 및 cuDNN 버전, 그리고 시스템에서 볼 수 있는 모든 GPU를 출력합니다. 만약 해당 명령어가 CUDA를 표시하지 않으면, PyTorch 휠은 CPU 빌드입니다; 설치는 이를 교체하는 방법을 다룹니다.

다운로드한 가중치는 어디로 가나요?

작업 디렉토리를 기준으로 weights/ 안으로. 디렉토리 구성 요소가 없는 모델 참조는 그곳에서 해석되고 처음 사용 시 다운로드됩니다; 디렉토리를 포함하는 참조는 그대로 사용되며 절대로 가져오지 않습니다. 체크포인트 및 가중치를 참조하십시오.

네트워크 없이 실행할 수 있나요?

예. 연결된 기기에서 한 번 체크포인트를 가져오고 weights/ 디렉토리를 복사하면, 다시 네트워크에 아무 것도 도달하지 않습니다. 디렉토리를 포함한 참조가 문자 그대로 취급되므로, 읽기 전용 공유 경로도 작동합니다. 데이터셋은 ~/datasets 또는 LIBREYOLO_DATASETS_DIR 아래에서 해결됩니다.

LibreYOLO를 상업적으로 사용할 수 있나요?

코드는 MIT 라이선스를 따릅니다. 사전 학습된 가중치는 별개의 문제입니다. 그것들은 해당 프로젝트나 데이터셋에서 온 조건을 상속할 수 있으며, 그 조건은 같은 계열 내에서도 통일되지 않습니다. 특정 Hugging Face 저장소의 라이선스가 최종적이며, 모든 모델 페이지에는 이를 재현한 라이선스 섹션이 있습니다. 가중치가 제한되는 경우, LibreYOLO는 다운로드가 시작되기 전에 해당 제한을 표시합니다.

다른 프로젝트에서 체크포인트를 불러올 수 있나요?

보통은 경로를 LibreYOLO()에 전달함으로써 이루어집니다. 인식된 업스트림 레이아웃은 로드 시 변환되며, 클래스 수와 이름을 유지하고 LibreYOLO 체크포인트가 소스 옆에 작성됩니다. 기존 가중치 가져오기는 인식된 것과 변환 스크립트가 필요한 것을 다룹니다.

왜 train은 NotImplementedError를 발생시키나요?

그 계열은 추론만 전송하고, 예외는 이유를 명시합니다. 모든 작업을 예측하고 검증하며, 지원되는 경우 내보내십시오; LibreYOLO에는 해당 아키텍처를 위한 학습 루프가 없습니다. 모델 페이지 헤더의 지원 등급은 시도하기 전에 알려줍니다. 핵심 개념을 참조하십시오.

val은 무엇을 반환합니까?

객체가 아닌 일반 사전입니다. 탐지 키에는 metrics/precision, metrics/recall, metrics/mAP50metrics/mAP50-95가 포함됩니다. 다른 작업은 분류의 경우 metrics/accuracy_top1와 같이 해당 작업에 맞는 키를 반환하거나 전경-배경 분할을 위한 metrics/PQ, metrics/SQmetrics/RQ와 같은 키를 반환합니다.

폴더, 비디오 또는 웹캠에서 어떻게 실행하나요?

소스로 전달하십시오. 파일 경로는 하나의 이미지이고, 디렉토리는 그 안의 모든 이미지이며, 비디오 경로는 비디오이고, 정수는 웹캠 인덱스이며, RTSP, RTMP, TCP, UDP 또는 HLS URL은 라이브 스트림입니다. .streams 파일은 여러 소스를 동시에 나열합니다. 라이브 소스는 stream=True가 필요하며, 이는 목록을 만드는 대신 프레임당 하나의 Results를 생성합니다; 동일한 플래그는 긴 비디오와 큰 디렉토리에도 사용할 가치가 있습니다. YouTube 페이지 URL만 추가로 libreyolo[stream]가 필요합니다.

어떻게 일부 클래스만 유지하나요?

원하는 클래스 인덱스와 함께 classespredict로 전달하십시오, 예를 들어 classes=[0, 2]. conf는 신뢰도 임계값을 설정하며, 기본값은 0.25이고, max_det는 이미지당 탐지를 제한하며, 기본값은 300입니다.

CLI는 플래그를 사용합니까, 아니면 key=value 쌍을 사용합니까?

모든 명령에 대해 등호로 연결된 키와 값:

bash
libreyolo predict model=yolo9-t source=my-image.jpg save=True
libreyolo train model=yolo9-t data=coco8.yaml epochs=50 imgsz=640

model는 경로나 family-size 형식의 짧은 이름을, 선택적으로 작업 접미사와 함께 허용하며, libreyolo models는 모든 유효한 항목을 나열합니다. 진단 및 인벤토리 명령도 --json를 사용하며, 이는 stdout에서 기계가 읽을 수 있는 객체로 동일한 데이터를 출력합니다.

모든 모델이 모든 형식으로 내보낼 수 있나요?

아니요. 보장은 계열별 및 작업별로 이루어지며, 일률적이지 않으며 각 형식에는 설치를 위한 별도의 추가 항목이 있습니다. 각 모델 페이지에는 해당 계열의 내보내기 매트릭스가 있으며, 내보내기 섹션에서는 형식 자체를 다룹니다.

세그먼트, 의미적, 파노라마의 차이점은 무엇인가요?

세 개의 별도 작업. segment는 탐지된 객체마다 하나의 마스크를 생성합니다. semantic는 모든 픽셀에 클래스를 레이블링하고 어떤 것도 인스턴스로 분리하지 않습니다. panoptic는 모든 픽셀에 정확히 하나의 레이블을 제공하며, 세기 가능한 것들과 형태가 불명확한 것들을 합칩니다. 이들은 서로 다른 실제값, 서로 다른 결과 필드, 서로 다른 측정 지표를 가지고 있으며, 하나의 계열는 자신의 작업 목록에 나타나는 어떤 것이라도 지원합니다.

내 수업에서 혼자 어떻게 학습하나요?

train, valnames로 데이터셋 YAML을 작성하십시오. 레이블은 병렬 labels/ 트리의 이미지 옆에 배치되며, 이미지당 하나의 .txt가 있으며, 좌표는 정규화되어 있습니다. nc는 선택 사항이며, 존재하는 경우 names와 일치해야 합니다. 먼저 libreyolo doctor <data.yaml>를 실행하십시오. 이 명령은 데이터셋의 문제를 검사하고 오류가 발견되면 0이 아닌 값으로 종료하므로 CI 게이트로 사용할 수 있습니다.

왜 로딩할 때 메타데이터 경고가 출력되나요?

체크포인트가 완전한 v1.0 메타데이터를 포함하고 있지 않기 때문입니다. 호환 경로를 통해 로딩이 계속되며, 경고는 누락된 정확한 키를 알려줍니다. libreyolo metadata path=<file>를 실행하여 무엇이 있는지 확인하고, 체크포인트 및 웨이트를 참고하여 스키마에 필요한 내용을 확인하십시오.

업그레이드 후에 가져오기(import)가 작동하지 않게 되었습니다. 무엇이 바뀌었나요?

일관성을 위해 두 개의 클래스 이름이 변경되었습니다: LibreYOLORTDETRLibreRTDETR로, LibreYOLORFDETRLibreRFDETR로 변경되었습니다. 이전 이름은 여전히 해결되며 새로운 클래스를 가리키는 DeprecationWarning를 내보내므로 기존 코드는 업데이트하는 동안 계속 실행됩니다.

LibreYOLO v1.5.0에서 검증되었습니다.