Florence-2: En banbrytande vision för en mängd olika bilduppgifter

Florence-2: En revolutionerande AI-modell från Microsoft på Hugging Face

Florence-2, utvecklad av Microsoft och tillgänglig på Hugging Face, representerar ett betydande framsteg inom AI för bildanalys. Denna banbrytande modell, tränad på det omfattande FLD-5B-datasetet, erbjuder enastående prestanda inom en rad bildrelaterade uppgifter. Florence-2 finns i flera varianter, inklusive Florence-2-base, Florence-2-large, Florence-2-base-ft och Florence-2-large-ft, var och en optimerad för olika användningsområden.

Modellens mångsidighet demonstreras genom dess förmåga att hantera uppgifter som objektdetektering, bildtextning och visuella frågor och svar (VQA). Särskilt anmärkningsvärd är Florence-2:s prestanda på RefCOCO-uppgifter, där den visar överlägsen förmåga att förstå och lokalisera objekt baserat på naturliga språkbeskrivningar. För utvecklare och forskare erbjuder Hugging Face en lättillgänglig plattform för att integrera Florence-2 i olika projekt, vilket öppnar upp för nya möjligheter inom datorseende och multimodal AI.

Florence-2 är en avancerad visuell grundmodell från Microsoft som använder en promptbaserad metod för att hantera en mängd olika bild- och bild-text-uppgifter. Denna innovativa modell kan tolka enkla textprompter för att utföra uppgifter som bildtextning, objektdetektering och segmentering. Florence-2 drar nytta av Microsofts FLD-5B-dataset, som innehåller 5,4 miljarder annoteringar över 126 miljoner bilder, för att bemästra multitaskinlärning. Modellens sekvens-till-sekvens-arkitektur gör att den utmärker sig i både zero-shot- och fintrimmade inställningar, vilket bevisar att den är en konkurrenskraftig visuell grundmodell.

Genom att förena djup inlärning med mångsidig multimodal inlärningsförmåga, representerar Florence-2 ett avgörande genombrott inom datorseendeforskning. Modellen demonstrerar den oerhörda potentialen hos stora språkmodeller att hantera komplexa visuella uppgifter, och öppnar nya möjligheter för integrering av visuell och språklig förståelse i en mängd olika applikationer.

Sammanfattning av modellen

Detta HuggingFace-bibliotek innehåller en implementation av Florence-2-modellen från Microsoft med HuggingFaces transformers. Florence-2 tekniska rapport ger en djupgående överblick över modellens arkitektur och kapaciteter. En Jupyter Notebook för inferens och visualisering av Florence-2-large-modellen finns också tillgänglig.

Det finns flera varianter av modellen tillgängliga på Hugging Face:

Florence-2-base (0,23B parametrar): Förtränades på FLD-5B-datasetet.
Florence-2-large (0,77B parametrar): Förtränades på FLD-5B-datasetet.
Florence-2-base-ft (0,23B parametrar): Fintrimmad på en samling nedströmsuppgifter.
Florence-2-large-ft (0,77B parametrar): Fintrimmad på en samling nedströmsuppgifter.

Kom igång med modellen

Följande kodexempel visar hur du kan börja använda Florence-2-large-ft-modellen för objektdetektering på en bild:


import requests
from PIL import Image
from transformers import AutoProcessor, AutoModelForCausalLM


model = AutoModelForCausalLM.from_pretrained("microsoft/Florence-2-large-ft", trust_remote_code=True)
processor = AutoProcessor.from_pretrained("microsoft/Florence-2-large-ft", trust_remote_code=True)


prompt = "<OD>"


url = "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/transformers/tasks/car.jpg?download=true"
image = Image.open(requests.get(url, stream=True).raw)


inputs = processor(text=prompt, images=image, return_tensors="pt")


generated_ids = model.generate(
input_ids=inputs["input_ids"],
pixel_values=inputs["pixel_values"],
max_new_tokens=1024,
do_sample=False,
num_beams=3
)
generated_text = processor.batch_decode(generated_ids, skip_special_tokens=False)[0]


parsed_answer = processor.post_process_generation(generated_text, task="<OD>", image_size=(image.width, image.height))


print(parsed_answer)

Denna kod laddar ned Florence-2-large-ft-modellen och processorn från Hugging Face Hub, laddar en exempelbild och genererar resultatet av objektdetekteringen med hjälp av prompten "<OD>". Resultatet parsas och skrivs ut.

Uppgifter som modellen kan utföra

Florence-2 är kapabel att utföra en mängd olika uppgifter genom att variera prompterna. Här är några exempel på prompter och uppgifter som kan köras med den bifogade exempelfunktionen:

Bildtextning
Prompt: "<CAPTION>"
Genererar en enkel bildtext som beskriver bildens innehåll.

Detaljerad bildtextning
Prompt: "<DETAILED_CAPTION>"
Genererar en mer detaljerad beskrivning av bilden.

Mycket detaljerad bildtextning
Prompt: "<MORE_DETAILED_CAPTION>"
Genererar en mycket detaljerad och uttömmande beskrivning av bildens innehåll.

Koppling mellan bildtext och fras
Prompt: "<CAPTION_TO_PHRASE_GROUNDING>"
Kräver extra textinmatning i form av en bildtext. Modellen kopplar då elementen i bildtexten till specifika områden i bilden.

Objektdetektering
Prompt: "<OD>"
Detekterar objekt i bilden och returnerar deras position och etikett.

Regionbeskrivning
Prompt: "<DENSE_REGION_CAPTION>"
Genererar beskrivningar för många olika regioner i bilden.

Regionförslag
Prompt: "<REGION_PROPOSAL>"
Föreslår intressanta regioner i bilden att fokusera på.

OCR
Prompt: "<OCR>"
Utför optisk teckenigenkänning (OCR) för att extrahera text från bilden.

OCR med regioner
Prompt: "<OCR_WITH_REGION>"
Utför OCR och kopplar extraherad text till specifika regioner i bilden.

För mer detaljerade exempel, se Jupyter-notebook:en.

Prestandabenchmarks

Florence-2-modellen har utvärderats grundligt på en rad olika bilduppgifter, både i zero-shot-läge och efter fintrimmning. Resultaten visar att modellen är mycket konkurrenskraftig jämfört med andra toppmodeller inom flera olika områden.

Zero-shot-prestanda

Följande tabell presenterar zero-shot-prestandan för generella visuella grundmodeller på utvärderingsuppgifter som bildtextning och objektdetektering. Dessa modeller har inte exponerats för träningsdata från utvärderingsuppgifterna under sin träningstid.

Metod - Antal parametrar - COCO Caption test CIDEr - NoCaps val CIDEr - TextCaps val CIDEr - COCO Det. val2017 mAP
Flamingo - 80B - 84,3 - - - -
Florence-2-base - 0,23B - 133,0 - 118,7 - 70,1 - 34,7
Florence-2-large - 0,77B - 135,6 - 120,8 - 72,8 - 37,5

Nästa tabell fortsätter jämförelsen med prestanda på andra bild-text-utvärderingsuppgifter:

Metod - Flickr30k test R@1 - RefCOCO val Accuracy - RefCOCO test-A Accuracy - RefCOCO test-B Accuracy - RefCOCO+ val Accuracy - RefCOCO+ test-A Accuracy - RefCOCO+ test-B Accuracy - RefCOCOg val Accuracy - RefCOCOg test Accuracy - RefCOCO RES val mIoU
Kosmos-2 - 78,7 - 52,3 - 57,4 - 47,3 - 45,5 - 50,7 - 42,2 - 60,6 - 61,7 - -
Florence-2-base - 83,6 - 53,9 - 58,4 - 49,7 - 51,5 - 56,4 - 47,9 - 66,3 - 65,1 - 34,6
Florence-2-large - 84,4 - 56,3 - 61,6 - 51,4 - 53,6 - 57,9 - 49,9 - 68,0 - 67,0 - 35,8

Fintrimmad prestanda

Följande tabell jämför prestandan för specialiserade och generella modeller på olika uppgifter inom bildtextning och visuella frågor och svar (VQA). De specialiserade modellerna är fintrimmade specifikt för respektive uppgift, medan de generella modellerna är fintrimmade på ett uppsättningsövergripande sätt över alla uppgifter. Symbolen "▲" indikerar användning av extern OCR som indata.

Metod - Antal parametrar - COCO Caption Karpathy test CIDEr - NoCaps val CIDEr - TextCaps val CIDEr - VQAv2 test-dev Acc - TextVQA test-dev Acc - VizWiz VQA test-dev Acc
Specialiserade modeller:
CoCa - 2,1B - 143,6 - 122,4 - - 82,3 - - - -
BLIP-2 - 7,8B - 144,5 - 121,6 - - 82,2 - - - -
GIT - 25,1B - 145,0 - 126,9 - 148,6 - 81,7 - 67,3 - 71,0
Flamingo - 80B - 138,1 - - - 82,0 - 54,1 - 65,7
PaLI - 17B - 149,1 - 127,0 - 160,0▲ - 84,3 - 58,8/73,1▲ - 71,6/74,4▲
PaLI-X - 55B - 149,2 - 126,3 - 147,0/163,7▲ - 86,0 - 71,4/80,8▲ - 70,9/74,6▲
Generella modeller:
Unified-IO - 2,9B - - - 100,0 - - 77,9 - - 57,4
Florence-2-base-ft - 0,23B - 140,0 - 116,7 - 143,9 - 79,7 - 63,6 - 63,6
Florence-2-large-ft - 0,77B - 143,3 - 124,9 - 151,1 - 81,7 - 73,5 - 72,6

Metod - Antal parametrar - COCO Det. val2017 mAP - Flickr30k test R@1 - RefCOCO val Accuracy - RefCOCO test-A Accuracy - RefCOCO test-B Accuracy - RefCOCO+ val Accuracy - RefCOCO+ test-A Accuracy - RefCOCO+ test-B Accuracy - RefCOCOg val Accuracy - RefCOCOg test Accuracy - RefCOCO RES val mIoU
Specialiserade modeller:
SeqTR - - - 83,7 - 86,5 - 81,2 - 71,5 - 76,3 - 64,9 - 74,9 - 74,2 - -
PolyFormer - - - 90,4 - 92,9 - 87,2 - 85,0 - 89,8 - 78,0 - 85,8 - 85,9 - 76,9
UNINEXT - 0,74B - 60,6 - - 92,6 - 94,3 - 91,5 - 85,2 - 89,6 - 79,8 - 88,7 - 89,4 - -
Ferret - 13B - - - 89,5 -