Florence-2

Florence-2는 고정 탐지 헤드를 거치는 대신 작업 토큰으로 프롬프트하는 Microsoft의 비전 파운데이션 모델입니다. LibreYOLO는 이를 오픈 보캐뷸러리 객체 탐지기로 래핑하며, 예측할 때 클래스 목록을 제공합니다.

작업
detection
크기
base, large at 768 px
설치
pip install libreyolo
지원 티어
별도 티어, v부터 지원. 자체 팩토리와 계약을 갖춘 별도의 제품 영역입니다.
업스트림
Microsoft의 Florence-2, MIT. 논문, 소스
라이선스
코드 MIT, 가중치 MIT. 상업적 사용

설치

Florence-2는 자체 팩토리가 있는 체크포인트 기반 계열과 별도의 제품 영역인 LibreYOLO의 VLM 탐지기 계층에 속합니다. vlm extra가 필요합니다.

bash
pip install "libreyolo[vlm]"

예측

가중치는 처음 사용할 때 Hugging Face에서 내려받아 로컬에 캐시됩니다. LibreYOLO는 원본 microsoft/Florence-2-* 저장소 대신 florence-community가 다시 업로드한 체크포인트를 내려받습니다. 그 이유는 라이선스 절을 참조합니다.

Python
from libreyolo import LibreVLM, SAMPLE_IMAGE model = LibreVLM("florence-2-base")model.set_classes(["car", "person", "traffic light"])result = model.predict(SAMPLE_IMAGE, save=True) for box in result.boxes:    print(box.cls, box.conf, box.xyxy)
비디오
from libreyolo import LibreVLM model = LibreVLM("florence-2-base")model.set_classes(["car", "person", "traffic light"]) # 라이브러리가 허용하는 모든 소스: 파일, 폴더, URL, 웹캠 인덱스,# RTSP 스트림 또는 .streams 목록for result in model.predict("clip.mp4", stream=True, save=True):    print(len(result.boxes))

이 계열은 LibreYOLO()가 아니라 LibreVLM() 팩토리로 불러옵니다. VLM 계열은 체크포인트 로더를 선언하지 않으므로 다른 모델 페이지에서 설명하는 파일 접미사 라우팅이 적용되지 않습니다. set_classes()는 Florence-2에 이미지에서 찾도록 요청할 보캐뷸러리를 설정합니다. 이 설정은 유지되므로 다시 설정할 때까지 이후의 모든 predict()track() 호출에 적용됩니다. 반환되는 Resultsboxes는 다른 모든 계열과 같은 형상이지만, 모든 탐지에는 동일한 자리표시자 신뢰도가 지정됩니다. 따라서 conf 필터링은 순위 지정이 아니라 전체 적용 또는 전체 제외로 동작하며 iou는 효과가 없습니다. Florence-2 래퍼가 중복 제거 단계 없이 파싱된 작업 토큰 출력에서 직접 탐지 목록을 만들기 때문입니다. Florence-2는 채팅 템플릿이 아니라 <OPEN_VOCABULARY_DETECTION> 작업 토큰으로 구동되므로 여기서 chat()NotImplementedError를 일으킵니다. LibreYOLO CLI는 이 계층을 지원하지 않습니다. libreyolo predict model=... 형식은 사용할 수 없습니다. 소스, 스트리밍, 결과 처리는 예측을 참조합니다.

변형

크기는 Florence-2-base와 Florence-2-large 두 가지이며 모두 768 px입니다. LibreVLM("florence-2-base") 또는 LibreVLM("florence-2-large")로 불러옵니다. LibreYOLO는 두 모델의 정확도를 비교하는 벤치마크를 게시하지 않았습니다.

LibreYOLO는 Florence-2를 학습, 검증, 내보내기하지 않습니다. 이 계층의 모든 계열에서 train(), val(), export()는 모두 NotImplementedError를 일으킵니다(위의 지원 계층 참조). 사용자 지정 보캐뷸러리를 가중치에 포함해야 하면 업스트림에서 Florence-2를 파인튜닝하고 생성된 가중치를 불러옵니다. 모든 탐지에 동일한 자리표시자 신뢰도가 있으므로 COCO 방식의 검증 과정 대신 predict() 출력을 직접 확인합니다.

라이선스

내려받는 특정 가중치의 Hugging Face 저장소에서 라이선스를 확인하십시오. LibreYOLO 조직의 모든 체크포인트에는 라이선스가 있으며 한 계열 안에서도 항상 같지는 않습니다. 해당 저장소가 신뢰할 수 있는 기준입니다. 아래 요약은 이 페이지를 마지막으로 검증했을 때 적용된 내용을 설명합니다.

관련 라이선스에 관한 설명이며 법률 자문이 아닙니다. 상업적으로 중요한 사안이라면 라이선스를 직접 읽고 별도의 법률 자문을 받으십시오.

원작
Florence-2, Microsoft
업스트림 라이선스
MIT
LibreYOLO 코드
MIT
가중치
MIT, 저자가 배포합니다. LibreYOLO는 이를 호스팅하거나 미러링하지 않습니다.
해석
MIT is a permissive license, so these weights can be used in commercial and closed-source products, provided the copyright notice and license text travel with any copy you redistribute. LibreYOLO downloads the florence-community re-upload of the checkpoint (florence-community/Florence-2-base and florence-community/Florence-2-large) rather than the original microsoft/Florence-2-* repositories, because those ship with custom remote code that no longer loads on current transformers releases. florence-community republishes the same weights through the native Florence2ForConditionalGeneration class, also under MIT, so nothing about the license changes.

인용

@article{xiao2023florence,
  title={Florence-2: Advancing a unified representation for a variety of vision tasks},
  author={Xiao, Bin and Wu, Haiping and Xu, Weijian and Dai, Xiyang and Hu, Houdong and Lu, Yumao and Zeng, Michael and Liu, Ce and Yuan, Lu},
  journal={arXiv preprint arXiv:2311.06242},
  year={2023}
}

huggingface.co/microsoft/Florence-2-large#bibtex에 있는 저자의 인용 블록에서 복사했습니다.

LibreYOLO v1.5.0에서 검증되었습니다. 이 페이지의 지원 표, 체크포인트, 벤치마크 수치는 출시된 라이브러리와 공개된 가중치에서 생성되며 수동으로 작성되지 않습니다.