Fotki części z AI do wycinania tła
Program do robienia zdjęć części z automatycznym wycinaniem tła na GPU. Cztery modele AI (Remover, BiRefNet, BiRefNet-Lite, RMBG-2.0), zdjęcia z telefonu przez przeglądarkę i kod QR, bez dedykowanej aplikacji. Część ekosystemu Stacji.
- 0,8 s
- na obróbkę zdjęcia
- 4
- modele segmentacji AI
- iOS + Android
- bez aplikacji natywnej
- Python
- CustomTkinter
- Node.js
- PyTorch
- HTML / JS

Wprowadzenie
Allegro wymaga białego tła dla nowych przedmiotów. Stary program do zdjęć, wpięty w pierwszą wersję Stacji, nie miał żadnego AI. Wycinał tło po kolorze: zgadywał, gdzie jest tło i podobne do niego barwy, i usuwał ten obszar. Żeby to zadziałało, pracownicy musieli prześwietlać zdjęcia, bo dopiero jasne tło dawało się wyciąć.
Efekt był słaby. Czarne elementy części wychodziły szare, a przy zbliżonych kolorach program wycinał za dużo albo za mało.
Napisałem od zera nowy program, „Fotki”. Stoi głównie na Pythonie z biblioteką CustomTkinter, do tego Node.js i HTML. Zastąpił wycinanie po kolorze modelami, które rozpoznają sam przedmiot, więc prześwietlanie przestało być potrzebne.
Telefon zamiast lustrzanki
Pierwotnie zdjęcia miały powstawać lustrzanką. Pokazałem szefostwu, że nowe telefony robią zdjęcia na bardzo dobrym poziomie i są dużo poręczniejsze od dużej lustrzanki. Przekonałem ich do telefonu i na nim oparłem cały proces.
Żeby przyśpieszyć development, nie budowałem osobnych aplikacji na Androida i iOS. Program w Pythonie odpala lokalny serwer Node i pokazuje kod QR. Pracownik skanuje go telefonem i otwiera stronę w przeglądarce, ta sama na Androidzie i iOS.
Program buduję do exe. Odpalony osobno wymaga zalogowania na konto. Odpalony ze Stacji od razu loguje danego użytkownika, więc fotograf nie podaje hasła drugi raz.
Zdjęcia z przeglądarki
Po zeskanowaniu kodu QR na telefonie otwiera się prosta strona. Pracownik skanuje kod kreskowy części, ten sam, który widać w szczegółach części i na wydrukowanej etykiecie, albo wpisuje id ręcznie. Program sprawdza, czy część jest w bazie i czy ma już zdjęcia. Jeśli zdjęcia istnieją, pojawiają się od razu w oknie Pythona.
Z telefonu robisz kolejne zdjęcia albo kasujesz ostatnie. Limit na ofertę to 16 zdjęć, więc po jego osiągnięciu program wyświetla powiadomienie.
Wycinanie tła na GPU
Zdjęcie z telefonu leci do programu, PyTorch przerzuca je na kartę graficzną i model wycina tło. Modele trzymam załadowane w pamięci karty, dzięki czemu jedno zdjęcie obrabia się w około 0,8 sekundy.
Do wyboru są cztery modele: Remover, BiRefNet, BiRefNet-Lite i RMBG-2.0. Każdy radzi sobie inaczej z trudnymi kształtami i kolorami, więc fotograf dobiera ten, który najlepiej tnie daną część.
Jedno zdjęcie obrabia się w około 0,8 sekundy, a czarne części wreszcie wychodzą czarne, bez prześwietlania.
W oknie obrócisz zdjęcie i je wykadrujesz. Zdjęcia kadrują się też automatycznie, tak żeby nawet długie części trzymały minimalne wymiary wymagane do wystawienia na marketplace'ach.
Lokalizacje
Program podpowiada, gdzie odłożyć daną część na magazynie. Dzięki temu pracownik robiący zdjęcia od razu segreguje części, zamiast zostawiać to na osobny etap.
Zatwierdzenie wysyła zdjęcia na serwer, skąd trafiają na oferty.
Rezultaty
- Wycinanie tła na GPU czterema modelami AI, jedno zdjęcie w około 0,8 sekundy, bez prześwietlania, więc czarne części wreszcie wychodzą czarne.
- Telefon zamiast lustrzanki: zdjęcia przez przeglądarkę i kod QR, bez dedykowanej aplikacji, tak samo na Androidzie i iOS.
- Automatyczne kadrowanie do minimalnych wymiarów marketplace'ów i powiadomienie po osiągnięciu limitu 16 zdjęć.
- Spięte ze Stacją: logowanie przechodzi automatycznie, a podpowiedź lokalizacji pozwala segregować części już przy zdjęciach.