dumbtv
dumbtv takes the ads, screen tracking and update nags out of your Fire TV over ADB. No root, none of your apps touched, every step can be undone. Free and open source.
翻譯準備中
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證即時匿名化人臉(透過 OBS/Zoom/Meet 的虛擬相機或瀏覽器擴充功能),亦可在照片資料夾中處理(桌面軟體與網路工具)。標誌、像素、黑色模糊;全部本機執行。
AI 翻譯
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.