BLA
BLA는 오픈소스 Blue Defense MCP와 CLI로, 소프트웨어 자산을 자동 AI 리버스 엔지니어링으로부터 보호합니다
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Anonimiseer gezichten live (OBS/Zoom/Meet via virtuele camera of browserextensie) en in mappen met foto's (desktop-app en webtool). Logo, pixels, blur of zwart; alles lokaal.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Anonimiseert gezichten live in je webcambeeld en stuurt het resultaat naar een virtuele camera. Bedoeld voor podcasts, interviews en livestream-events waarbij het publiek of gasten anoniem in beeld moeten blijven. Kies daarna gewoon de virtuele camera als bron in OBS, Zoom, Teams, Google Meet, YouTube Studio enz.README 전문 보기 ↗
Anonimiseert gezichten live in je webcambeeld en stuurt het resultaat naar een virtuele camera. Bedoeld voor podcasts, interviews en livestream-events waarbij het publiek of gasten anoniem in beeld moeten blijven.
Kies daarna gewoon de virtuele camera als bron in OBS, Zoom, Teams, Google Meet, YouTube Studio enz.
https://github.com/user-attachments/assets/024daca7-4c85-42a7-befd-ff649e81f6b3
| Je wilt… | Gebruik |
|---|---|
| Live webcambeeld anonimiseren voor OBS, Zoom, Teams of Meet | Face Anonymizer (desktop-app, deze pagina) |
| Hetzelfde, maar alleen in Meet, Zoom of Teams in de browser | Browserextensie |
| Een map vol foto's anonimiseren op je eigen computer | Foto Anonymizer (desktop-app) |
| Foto's anonimiseren zonder iets te installeren | Foto Anonymizer webtool |
| Opgeslagen video's, beeldreeksen (genummerde beelden) of losse foto's anonimiseren | Face Anonymizer for AV (desktop-app) |
| Met je telefoon filmen of fotograferen, met gezichten al afgedekt | Face Anonymizer Camera (Android en iPhone via de browser, of als Android-app) |
Alle tools gebruiken hetzelfde gezichtsmodel en werken volledig lokaal: er gaan geen beelden of video's naar een server.
Eenmalig in een terminal, vanuit de map van deze repository:
git clone https://github.com/picazuid-pilot/face-anonymizer.git
cd face-anonymizer
./install.sh
Het script:
~/.local/share/face-anonymizer;Daarna start je Face Anonymizer gewoon via het app-menu of het bureaublad; een terminal is niet meer nodig. Gaat er iets mis bij het starten, dan krijg je een venster met de foutmelding (het volledige logboek staat in ~/.cache/face-anonymizer/).
| Bijwerken | git pull && ./install.sh |
| Verwijderen | ./uninstall.sh |
| Zonder vragen | ./install.sh --yes |
| Zonder virtuele camera | ./install.sh --no-virtualcam |
Secure Boot: staat Secure Boot aan, dan vraagt Ubuntu bij het installeren van de driver om een wachtwoord. Na de herstart verschijnt een blauw scherm: kies Enroll MOK en voer dat wachtwoord in. Daarna werkt de virtuele camera.
Python 3.10 of nieuwer en OBS Studio (alleen voor de driver van de virtuele camera; OBS hoeft niet open te staan).
pip install -r requirements.txt
python face_anonymizer.py
Op macOS moet je de virtuele camera één keer in OBS starten om hem te registreren. Op Windows zet je de virtuele camera in OBS zelf niet aan; deze tool gebruikt hem.
Nee, niet om naar Zoom, Meet of Teams te gaan. De virtuele camera verschijnt in die apps als een gewone webcam met de naam "Face Anonymizer". Op Linux levert v4l2loopback die camera; op Windows en macOS moet OBS geïnstalleerd zijn voor de driver. OBS gebruik je alleen als je zelf een livestream opbouwt; daar kies je de virtuele camera dan als Video-opnameapparaat.
0) en druk op ▶ Start.Gebruik je de virtuele camera in de browser, zet dan de browserextensie uit; anders wordt het beeld twee keer bewerkt.
Standaard wordt assets/overlay.png als overlay geladen. Met 📁 Select PNG kies je een andere. Transparante PNG’s werken het best; zorg dat het deel dat over het gezicht valt volledig dekkend is.
| Instelling | Wat het doet | Tip |
|---|---|---|
| Scale | Grootte van het masker t.o.v. het gezicht | 1.6–2.0 dekt ook haar en oren |
| Confidence | Minimale zekerheid van een detectie | Hoog (0.6–0.8) = minder valse vlekken op de achtergrond |
| Min Size | Kleinste gezicht in pixels | Verhoog bij een vol publiek op afstand als er ruis ontstaat |
| Persistence | Hoe lang (frames) een masker blijft staan als het gezicht even niet gedetecteerd wordt | Zie hieronder |
| Smart persistence | Gezichten die nog geen 5 keer gezien zijn, verdwijnen al na 5 frames | Laat aan |
| Detect at | Detecteren op lagere resolutie | 960 of 1280 geeft veel meer FPS bij 1080p; Full vindt kleine gezichten verder weg beter |
| Mode | Overlay / Pixelate / Blur / Black | Zonder geladen overlay wordt automatisch gepixeld |
| Mirror overlay | Spiegelt het logo | Zoom, Meet en Teams spiegelen alleen je eigen voorbeeld; de anderen zien het logo gewoon goed. Zet dit alleen aan als je ook gespiegeld uitzendt |
| Protective blur | Vervaagt het hele beeld zolang er geen gezicht gevonden wordt (voor het geval er een gemist wordt) | Standaard uit, want bij een leeg podium of een pauze wordt het beeld dan vaag. Ook in de browserextensie (Beschermende blur) |
Waarom hoge confidence + lage persistence zo goed werkt: bij lage confidence ontstaan af en toe valse detecties (een lamp, een poster), en met hoge persistence blijven die maskers lang hangen. Smart persistence lost precies dat op: losse valse detecties verdwijnen snel, terwijl echte gezichten die al een tijd gevolgd worden wél lang afgedekt blijven. Je kunt de persistence daardoor weer wat hoger zetten (bijv. 20–30) zonder rommel, wat veiliger is als iemand even wegdraait. Een kwijtgeraakt gezicht krijgt bovendien een masker dat langzaam groeit, zodat het nog bedekt is als de persoon beweegt.
Melding "No v4l2 loopback device found" of "Face Anonymizer" staat niet in de cameralijst van Zoom: de driver voor de virtuele camera is niet geladen. De app probeert dit zelf op te lossen en vraagt daarvoor je wachtwoord. Lukt dat niet, dan staat in de statusregel waarom. Zelf nagaan:
modinfo v4l2loopback | head -3 # foutmelding = driver niet geïnstalleerd
lsmod | grep v4l2loopback # leeg = niet geladen
mokutil --sb-state # "SecureBoot enabled" = zie hieronder
ls /dev/video* # /dev/video10 hoort erbij te staan
| Oorzaak | Oplossing |
|---|---|
| Driver niet geïnstalleerd (nieuwe computer, of bij de installatie "nee" gekozen) | ./install.sh opnieuw draaien, of sudo apt install v4l2loopback-dkms linux-headers-$(uname -r) |
Secure Boot blokkeert de driver (Key was rejected by service) | sudo mokutil --revoke-import en dan sudo mokutil --import /var/lib/shim-signed/mok/MOK.der, kies een eenmalig wachtwoord en herstart. Druk in het blauwe scherm Perform MOK management direct op een toets (het verdwijnt na 10 seconden) en kies Enroll MOK → Continue → Yes, wachtwoord, Reboot. ./install.sh doet dit ook voor je |
| Na een kernelupdate werkt het niet meer | sudo apt install linux-headers-$(uname -r) en sudo dpkg-reconfigure v4l2loopback-dkms |
| Driver geladen, maar niet zichtbaar in Zoom | Zoom pas starten (of helemaal afsluiten en opnieuw openen) nadat de virtuele camera aanstaat en beeld geeft. Zoom zoekt alleen bij het opstarten naar camera's |
Met de hand laden: sudo modprobe v4l2loopback devices=1 video_nr=10 exclusive_caps=1 card_label="Face Anonymizer"
Geen enkele gezichtsdetector is 100% betrouwbaar. Profielen, handen voor het gezicht, sterk tegenlicht en hele kleine gezichten kunnen gemist worden. Test daarom vooraf in de echte ruimte met het echte licht, en overweeg bij gevoelige events extra maatregelen: camerastandpunt achter het publiek, een iets grotere Scale, of in OBS een vaste vertraging zodat je kunt ingrijpen.
Alle verwerking gebeurt lokaal; er worden geen beelden verstuurd.
pip install pytest
python -m pytest tests/
De tests draaien zonder camera of scherm. Ze controleren onder meer dat debug-kaders nooit in de stream komen, dat elke afdekmodus het gezicht echt bedekt, dat kleine en grote gezichten gevonden worden, dat metadata verdwijnt en dat telefoonfoto's rechtop komen.
Maakt alle gezichten op een map vol foto's onherkenbaar, bijvoorbeeld foto's van een bijeenkomst die je wilt delen of publiceren.
<map>_anoniem), met dezelfde submappenNa ./install.sh staat Foto Anonymizer in je app-menu en op je bureaublad. Kies een map, kies de afdekking en druk op Start. Dubbelklik daarna op een foto in de lijst om hem na te lopen.
Zonder venster, bijvoorbeeld voor een script:
python photo_anonymizer.py ~/Fotos/bijeenkomst # → ~/Fotos/bijeenkomst_anoniem
python photo_anonymizer.py BRON DOEL -r --mode pixelate --accuracy thorough
python photo_anonymizer.py --help
Dezelfde functie in de browser, zonder installatie: sleep foto's of een hele map op de pagina, loop ze na en download alles als ZIP. De foto's worden niet geüpload: alles gebeurt in je eigen browser, en de pagina mag technisch gezien geen verbinding maken met andere websites. Getest in Chrome (dus ook Edge), op de computer en op telefoonformaat; Firefox en Safari zijn nog niet getest.
/camera/; wordt bij elke wijziging automatisch bijgewerkt via GitHub Pages)web/build.sh uit en zet de inhoud van dist/web in een map op je hosting. Er is geen PHP of database nodig. Voor de camera-app moet de site via https bereikbaar zijn (telefoons geven anders geen toegang tot de camera). Na install.sh staat de gebouwde versie ook al klaar in ~/.local/share/face-anonymizer/web.iPhone-foto's (HEIC) kan de browser niet openen; gebruik daarvoor de desktop-app.
| Desktop-app | Webtool | |
|---|---|---|
| Installatie | install.sh | Geen |
| Grote mappen (honderden foto's) | Beter: schrijft direct naar schijf | Prima tot enkele honderden foto's |
| iPhone-foto's (HEIC) | Ja | Nee |
| Mappenstructuur behouden | Ja | Ja (bij een map slepen of kiezen) |
| Snelheid | Sneller | Iets trager |
Anonimiseert gezichten in opgeslagen video's, beeldreeksen (bijv. shot_0001.png, shot_0002.png …) en losse foto's, voor podcasts, interviews en opnames van bijeenkomsten.
_anoniem in de naam en komen in een aparte map (standaard anoniem naast je bestanden)Live weet de tool alleen wat er al gebeurd is. Bij een opgeslagen video kent hij ook de beelden erna:
Dubbelklik na het verwerken op een video in de lijst:
Na ./install.sh staat Face Anonymizer for AV in je app-menu. Voeg bestanden of een map toe, kies de afdekking en druk op Start. Een map met genummerde beelden wordt automatisch als beeldreeks herkend; de uitvoer krijgt dezelfde bestandsnamen.
Zonder venster:
python av_anonymizer.py opname.mp4 # → anoniem/opname_anoniem.mp4
python av_anonymizer.py ~/Opnames ~/Shots/scene1 -o ~/Anoniem --speed thorough
python av_anonymizer.py --help
| Instelling | Uitleg |
|---|---|
| Snel / Normaal / Grondig | Snel zoekt in elk 2e beeld en vult ertussen aan. Grondig zoekt ook naar kleine gezichten ver weg, maar is een stuk trager |
| Zekerheid | Hoger = minder valse maskers |
| Missers opvullen | Hoe lang (standaard 1,5 s) een masker blijft staan als een gezicht even niet gevonden wordt |
Snelheid: reken op ongeveer 2 tot 4 keer de lengte van de video op een gewone laptop (Normaal, 1080p). Een opname van 10 minuten duurt dus zo'n 20 tot 40 minuten. Snel scheelt ongeveer een derde.
Goed om te weten:
Film en fotografeer op je Android-telefoon of iPhone met gezichten al afgedekt door het logo, blur, pixels of een zwart vlak. Zo hoef je achteraf niets meer na te bewerken.
Openen: https://picazuid-pilot.github.io/face-anonymizer/camera/ en tik op Camera starten. Zet hem daarna op je beginscherm, dan opent hij als gewone app en werkt hij ook zonder internet:
Wat hij doet:
Goed om te weten:
Liever een echte app? Installeer fa-camera.apk (Android 10 of nieuwer). Foto's en video's komen dan direct in je galerij, in de map FA Camera. GitHub bouwt de APK automatisch bij elke wijziging. Uitleg over installeren, bijwerken en ondertekenen: android-app/README.md.
In browser-extension/ staat een extensie (installatie: zie de README; na install.sh staat hij ook klaar in ~/.local/share/face-anonymizer/browser-extension) die in webapps (Google Meet, Zoom in de browser, Teams web, StreamYard, YouTube Studio) je webcambeeld vervangt door een geanonimiseerde versie. Zet hem aan en kies je gewone camera; meer is niet nodig. Hij gebruikt hetzelfde YuNet-model en dezelfde tracking als deze Python-tool.
| Python-tool | Browserextensie | |
|---|---|---|
| OBS, Zoom/Teams desktop-app | ✅ via virtuele camera | ❌ |
| Meet, Zoom/Teams in de browser, YouTube Studio | ✅ via virtuele camera | ✅ direct |
| Installatie | install.sh (Linux) of Python + OBS (Windows/macOS) | Extensie laden |
| Kleine gezichten ver weg | Beter (volle resolutie) | Detectie op 320–640 px |
assets/overlay.png is een neutrale "Your image here"-afbeelding. Kies in elke tool je eigen logo:
| Tool | Waar |
|---|---|
| Face Anonymizer (live) | 📁 Select PNG |
| Foto Anonymizer en Face Anonymizer for AV | Overlay kiezen… |
| Foto Anonymizer-webtool | Ander logo kiezen |
| Camera-app (telefoon en Android-app) | Instellingen → Eigen PNG kiezen (wordt onthouden) |
| Browserextensie | In de popup: Eigen PNG kiezen… |
Wil je dat je eigen logo overal de standaard is, vervang dan assets/overlay.png door je logo en voer ./install.sh opnieuw uit. Gebruik een PNG waarvan het deel over het gezicht volledig dekkend is; een doorzichtige rand eromheen wordt automatisch weggeknipt.
Copyright © 2026 picazuid-pilot en bijdragers.
Face Anonymizer is vrije software: je mag het verspreiden en aanpassen onder de voorwaarden van de GNU General Public License versie 3 of (naar keuze) een latere versie, zoals gepubliceerd door de Free Software Foundation. Zie LICENSE.
Het wordt verspreid in de hoop dat het nuttig is, maar zonder enige garantie. Controleer het resultaat altijd zelf voordat je beelden deelt.
Gebruikte onderdelen van anderen (gezichtsmodel, ONNX Runtime, Capacitor e.d.) en hun licenties: THIRD_PARTY_NOTICES.md.