libreyolo label

Uruchamia lokalne narzędzie webowe do rysowania i edycji ramek ograniczających. Zapisuje pliki etykiet w natywnym formacie LibreYOLO, więc zbiór danych opisany tutaj trenuje się bez kroku konwersji.

Polecenie
libreyolo label
Wyjście
URL serwera na stdout; etykiety zapisywane jako labels/*.txt obok obrazów

Składnia

bash
libreyolo label [data=<dataset.yaml|folder>] [key=value ...]

Argumenty to pary key=value, działa też forma POSIX, więc port=9200 i --port 9200 to ten sam argument.

Argumenty

ArgumentDomyślnieZnaczenie
dataYAML zbioru danych lub folder otwierany bezpośrednio. Bez tej wartości start następuje na stronie głównej projektu
host127.0.0.1Host lub interfejs, z którym następuje powiązanie
port8000Port, z którym następuje powiązanie. Przechodzi na kolejny wolny, jeśli jest zajęty
deviceautoUrządzenie do automatycznego etykietowania AI: 0, cpu, mps, auto
no_assistfalseWyłącza automatyczne etykietowanie AI, zostaje narzędzie wyłącznie ręczne
no_browserfalseNie otwiera automatycznie przeglądarki
sharefalsePowiązanie z 0.0.0.0, aby osoby z zespołu w tej samej sieci mogły dołączyć
jsonfalseWyjście JSON na stdout
quietfalseWyciszenie stderr
verbosefalseSzczegółowe wyjście na stderr

Przykłady

Podstawowe użycie
# Otwiera stronę główną projektu; zbiór danych wybiera się lub tworzy w przeglądarce.libreyolo label
Tylko ręcznie, stały port
libreyolo label no_assist=true port=9200 no_browser=true
Dołączenie osób z zespołu
libreyolo label share=true

Uwagi

Co zapisuje

Ramki są zapisywane jako pliki labels/*.txt w natywnym formacie LibreYOLO, czyli w tym samym, który czyta libreyolo train, więc później nic nie trzeba konwertować. Ta wersja obsługuje wyłącznie ramki ograniczające. Zmiany zapisują się przy przechodzeniu między obrazami.

Label-Error Radar

Przy włączonym AI assist przycisk Radar, albo klawisz Y, uruchamia model asystujący na każdym obrazie z etykietami i wypisuje obrazy, na których model nie zgadza się z etykietami, od najgorszych: ramka, w której model nic nie znajduje, pewna detekcja bez ramki albo ramka, której klasę model kwestionuje. Radar niczego nie zapisuje; każda poprawka to ręczna edycja. N przechodzi do następnego oznaczonego obrazu w tej kolejności od najgorszych i zawija się na końcu. Ponowne naciśnięcie Y otwiera ostatni skan, z czasem jego wykonania i przyciskiem Rescan, zamiast skanować od nowa. Radar nie jest dostępny w projektach z obróconymi ramkami, a oba klawisze można przemapować w oknie skrótów ?.

Otwieranie zbioru danych

Bez data narzędzie startuje na stronie głównej projektu, a zbiór danych wybiera się lub tworzy z poziomu przeglądarki. Podanie data=path/to/data.yaml otwiera ten zbiór od razu, a linia startowa podaje liczbę obrazów, liczbę klas oraz to, czy zbiór jest zapisywalny. Zbiór tylko do odczytu również się otwiera i podaje powód, dla którego nie można do niego pisać.

Udostępnianie i działanie host

share=true wiąże adres wildcard, dzięki czemu inne maszyny w tej samej sieci docierają do narzędzia, a działania administracyjne, przełączanie i usuwanie projektów oraz uruchamianie obliczeń pozostają na tej maszynie.

Ustawienie host na konkretny interfejs działa inaczej i mniej bezpiecznie: host staje się nie do odróżnienia od klienta sieciowego, więc każdy klient dostaje prawa administracyjne. Polecenie wypisuje wtedy ostrzeżenie na stderr. Lepiej użyć share=true.

Porty i zamykanie

Zajęty port przechodzi na kolejny, maksymalnie dwadzieścia pozycji od żądanego. Niepowodzenie wszystkich dwudziestu kończy się kodem io_error. URL wypisany na stdout wskazuje port, który został faktycznie powiązany. Przy share=true wynik zawiera dodatkowo lan_url, adres, który powinny otworzyć osoby z zespołu.

Polecenie działa na pierwszym planie do czasu naciśnięcia Ctrl+C.

Powiązane: libreyolo doctor, aby sprawdzić opisany zbiór danych przed trenowaniem, oraz libreyolo train, aby na nim trenować.

Zweryfikowano z LibreYOLO v1.5.0.