Repository navigation
Expand file tree
/
Copy pathindex.html
More file actions
519 lines (516 loc) · 30.6 KB
/
Copy pathindex.html
File metadata and controls
519 lines (516 loc) · 30.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-C44ZNCS8GG"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-C44ZNCS8GG');
</script>
<title>YOLO-Face: Custom Face Detection Models on Roboflow</title>
<meta name="description" content="Test, download, or fine-tune YOLO-Face detection models on Roboflow. Train RF-DETR, commercial-safe licensing, deploy on-device. Try it now free." />
<link rel="canonical" href="https://yoloface.com/" />
<!-- Favicons -->
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
<link rel="icon" type="image/png" href="/favicon.png" />
<link rel="apple-touch-icon" href="/apple-touch-icon.png" />
<!-- Open Graph -->
<meta property="og:title" content="YOLO-Face: Custom Face Detection Models on Roboflow" />
<meta property="og:description" content="Test, download, or fine-tune YOLO-Face detection models on Roboflow. Train RF-DETR, commercial-safe licensing, deploy on-device." />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://yoloface.com/" />
<meta property="og:site_name" content="YOLO-Face on Roboflow" />
<meta property="og:image" content="https://yoloface.com/og-image.png" />
<meta property="og:image:secure_url" content="https://yoloface.com/og-image.png" />
<meta property="og:image:type" content="image/png" />
<meta property="og:image:width" content="1200" />
<meta property="og:image:height" content="630" />
<meta property="og:image:alt" content="YOLO-Face: Custom Face Detection Models on Roboflow" />
<!-- Twitter Card -->
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="YOLO-Face: Custom Face Detection Models on Roboflow" />
<meta name="twitter:description" content="Test, download, or fine-tune YOLO-Face detection models on Roboflow. Train RF-DETR, commercial-safe licensing, deploy on-device." />
<meta name="twitter:image" content="https://yoloface.com/og-image.png" />
<meta name="twitter:image:alt" content="YOLO-Face: Custom Face Detection Models on Roboflow" />
<!-- Fonts: Inter (Roboflow brand typeface) -->
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap" rel="stylesheet" />
<!-- FAQ structured data -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "What is YOLO-Face?",
"acceptedAnswer": {
"@type": "Answer",
"text": "YOLO-Face is a Roboflow Universe collection of open-source face detection datasets and pre-trained models, more than 40 community projects ranging from general human face detection to expression detection, thermal and infrared faces, and animal faces. Each one is testable in the browser, downloadable as a labeled dataset, and deployable via API. At its core, YOLO-Face does one job: drawing a bounding box around every face in an image, which is the foundation that blurring, counting, attribute analysis, and recognition are built on top of."
}
},
{
"@type": "Question",
"name": "How do I train a custom face detection model on Roboflow?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Start from a dataset by forking a project from the YOLO-Face collection on Universe, or upload and label your own images in Annotate with AI-assisted labeling. Then train RF-DETR, Roboflow's state-of-the-art real-time detection architecture, in Roboflow Train. Evaluate honestly on images that match your real deployment, paying attention to performance across lighting, angles, and demographics. Deploy with Inference on the cloud or the edge, and use active learning to fold uncertain frames back into the next version. You can go from a public dataset to a deployed face detector in an afternoon."
}
},
{
"@type": "Question",
"name": "Is the licensing safe for commercial face detection products?",
"acceptedAnswer": {
"@type": "Answer",
"text": "RF-DETR is released under the Apache 2.0 license, free to use commercially with no copyleft obligations, which is one reason it is the recommended model for a custom face detector you intend to ship. The Ultralytics YOLO family is distributed under AGPL-3.0, a strong copyleft license that in practice requires open-sourcing the application you build around the model or buying a commercial license, even for many commercial uses. If you build on a YOLO model, confirm the license before you ship."
}
},
{
"@type": "Question",
"name": "What about privacy and face recognition?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Face detection finds where faces are; it does not identify anyone. Many of the most common uses, like privacy redaction, counting, and occupancy, use detection in service of removing or never capturing identity. Recognition is a separate downstream step: the detector crops the face, then a separate face-embedding model compares it against a gallery, and that second step is where the real privacy and accuracy stakes live. On-device deployment keeps face data local, which is often the right call, and models should be evaluated across different lighting, angles, and demographics before use."
}
}
]
}
</script>
<style>
:root {
/* Roboflow brand palette (roboflow.com/brand) */
--violet-50: #F5F3FF;
--violet-100: #EDE9FE;
--violet-300: #C4B5FD;
--violet-600: #7C3AED;
--violet-700: #6D28D9;
--violet-800: #5B21B6;
--gray-50: #F9FAFB;
--gray-100: #F3F4F6;
--gray-300: #D1D5DB;
--gray-400: #9CA3AF;
--gray-500: #6B7280;
--gray-600: #4B5563;
--gray-900: #111827;
--maxw: 1120px;
--radius: 14px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
margin: 0;
font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
color: var(--gray-900);
background: #ffffff;
line-height: 1.6;
-webkit-font-smoothing: antialiased;
}
a { color: var(--violet-700); text-decoration: none; }
a:hover { text-decoration: underline; }
.wrap { max-width: var(--maxw); margin: 0 auto; padding: 0 24px; }
/* ---------- Header ---------- */
header.site {
position: sticky; top: 0; z-index: 50;
background: rgba(255,255,255,0.9);
backdrop-filter: blur(8px);
border-bottom: 1px solid var(--gray-100);
}
.nav { display: flex; align-items: center; justify-content: space-between; height: 68px; }
.nav img.logo { height: 30px; display: block; }
.nav .actions { display: flex; gap: 12px; align-items: center; }
/* ---------- Buttons ---------- */
.btn {
display: inline-flex; align-items: center; justify-content: center;
font-weight: 600; font-size: 15px; line-height: 1;
padding: 13px 22px; border-radius: 10px; cursor: pointer;
transition: background .15s ease, transform .05s ease, box-shadow .15s ease;
text-decoration: none;
}
.btn:hover { text-decoration: none; }
.btn-primary { background: var(--violet-700); color: #fff; }
.btn-primary:hover { background: var(--violet-800); }
.btn-secondary { background: #fff; color: var(--violet-700); border: 1px solid var(--violet-300); }
.btn-secondary:hover { background: var(--violet-50); }
.btn-ghost { background: transparent; color: var(--gray-900); padding: 10px 14px; font-size: 14px; }
.btn-ghost:hover { color: var(--violet-700); }
.btn-sm { padding: 10px 16px; font-size: 14px; }
/* ---------- Hero ---------- */
.hero {
background:
radial-gradient(1100px 460px at 80% -10%, var(--violet-100), transparent 60%),
linear-gradient(180deg, var(--violet-50), #ffffff 70%);
padding: 88px 0 72px;
border-bottom: 1px solid var(--gray-100);
}
.eyebrow {
display: inline-block; font-size: 13px; font-weight: 600; letter-spacing: .04em;
text-transform: uppercase; color: var(--violet-700);
background: var(--violet-100); padding: 6px 12px; border-radius: 999px; margin-bottom: 20px;
}
.hero h1 {
font-size: clamp(36px, 5.5vw, 60px); line-height: 1.05; font-weight: 800;
letter-spacing: -0.02em; margin: 0 0 20px; max-width: 18ch;
}
.hero p.sub {
font-size: clamp(18px, 2.2vw, 21px); color: var(--gray-600);
max-width: 62ch; margin: 0 0 32px;
}
.cta-row { display: flex; flex-wrap: wrap; gap: 14px; }
/* ---------- Sections ---------- */
section { padding: 76px 0; }
section.alt { background: var(--gray-50); }
h2 {
font-size: clamp(28px, 3.4vw, 40px); line-height: 1.1; font-weight: 800;
letter-spacing: -0.02em; margin: 0 0 16px;
}
.section-intro { font-size: 18px; color: var(--gray-600); max-width: 62ch; margin: 0 0 44px; }
/* ---------- Workflow steps ---------- */
.steps { display: grid; grid-template-columns: repeat(2, 1fr); gap: 22px; }
.step {
background: #fff; border: 1px solid var(--gray-100); border-radius: var(--radius);
padding: 28px; box-shadow: 0 1px 2px rgba(17,24,39,.04);
}
.step .num {
width: 40px; height: 40px; border-radius: 10px; background: var(--violet-700); color: #fff;
display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: 18px;
margin-bottom: 16px;
}
.step h3 { margin: 0 0 8px; font-size: 20px; font-weight: 700; }
.step p { margin: 0; color: var(--gray-600); font-size: 15.5px; }
/* ---------- Embed ---------- */
.embed-card {
margin-top: 36px; background: #fff; border: 1px solid var(--gray-100);
border-radius: var(--radius); overflow: hidden; box-shadow: 0 6px 24px rgba(17,24,39,.06);
}
.embed-card .embed-head {
display: flex; align-items: center; justify-content: space-between;
padding: 14px 20px; border-bottom: 1px solid var(--gray-100); background: var(--gray-50);
}
.embed-card .embed-head span { font-weight: 600; font-size: 14px; color: var(--gray-600); }
.embed-card iframe { width: 100%; height: 540px; border: 0; display: block; }
/* ---------- Two problems ---------- */
.twocol { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-bottom: 28px; }
.panel {
border-radius: var(--radius); padding: 28px; border: 1px solid var(--gray-100); background: #fff;
}
.panel.known { border-top: 4px solid var(--violet-600); }
.panel.rare { border-top: 4px solid var(--gray-400); }
.panel h3 { margin: 0 0 10px; font-size: 19px; }
.panel p { margin: 0; color: var(--gray-600); font-size: 15.5px; }
.both-note { font-size: 18px; color: var(--gray-900); max-width: 70ch; }
.both-note strong { color: var(--violet-700); }
/* ---------- Value props ---------- */
.cards { display: grid; grid-template-columns: repeat(2, 1fr); gap: 22px; }
.card {
background: #fff; border: 1px solid var(--gray-100); border-radius: var(--radius);
padding: 28px; box-shadow: 0 1px 2px rgba(17,24,39,.04);
}
.card .ic {
width: 44px; height: 44px; border-radius: 11px; background: var(--violet-100); color: var(--violet-700);
display: flex; align-items: center; justify-content: center; margin-bottom: 16px;
}
.card .ic svg { width: 22px; height: 22px; }
.card h3 { margin: 0 0 8px; font-size: 19px; font-weight: 700; }
.card p { margin: 0; color: var(--gray-600); font-size: 15.5px; }
/* ---------- Stats / proof ---------- */
.proof { background: var(--gray-900); color: #fff; }
.proof h2 { color: #fff; }
.proof .section-intro { color: var(--gray-300); }
.stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; margin-bottom: 40px; }
.stat {
background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.08);
border-radius: var(--radius); padding: 28px;
}
.stat .big { font-size: 34px; font-weight: 800; color: #fff; letter-spacing: -0.02em; }
.stat .lbl { color: var(--gray-300); font-size: 15px; margin-top: 6px; }
.logos { color: var(--gray-400); font-size: 15px; }
.logos strong { color: #fff; font-weight: 600; }
/* ---------- FAQ ---------- */
.faq details {
border: 1px solid var(--gray-100); border-radius: 12px; padding: 4px 22px; margin-bottom: 14px;
background: #fff;
}
.faq summary {
cursor: pointer; list-style: none; font-weight: 600; font-size: 18px;
padding: 18px 0; display: flex; justify-content: space-between; align-items: center; gap: 16px;
}
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after {
content: "+"; color: var(--violet-700); font-size: 24px; font-weight: 400; line-height: 1;
}
.faq details[open] summary::after { content: "\2013"; }
.faq details p { margin: 0 0 20px; color: var(--gray-600); font-size: 16px; }
/* ---------- CTA band ---------- */
.ctaband {
background: linear-gradient(135deg, var(--violet-700), var(--violet-800));
color: #fff; text-align: center; border-radius: 20px; padding: 56px 28px;
}
.ctaband h2 { color: #fff; }
.ctaband p { color: var(--violet-100); font-size: 18px; max-width: 56ch; margin: 0 auto 28px; }
.ctaband .btn-primary { background: #fff; color: var(--violet-700); }
.ctaband .btn-primary:hover { background: var(--violet-50); }
.ctaband .btn-secondary { background: transparent; color: #fff; border-color: rgba(255,255,255,.5); }
.ctaband .btn-secondary:hover { background: rgba(255,255,255,.1); }
.ctaband .cta-row { justify-content: center; }
/* ---------- Assistant ---------- */
.assistant {
border: 1px solid var(--violet-100); background: var(--violet-50);
border-radius: var(--radius); padding: 28px; display: flex; gap: 20px; align-items: center;
}
.assistant img { width: 64px; height: 64px; flex-shrink: 0; }
.assistant h3 { margin: 0 0 4px; font-size: 19px; }
.assistant p { margin: 0; color: var(--gray-600); font-size: 15.5px; }
/* ---------- Resources ---------- */
.res { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.res a.card { display: block; color: inherit; }
.res a.card:hover { text-decoration: none; border-color: var(--violet-300); }
.res .tag { font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: .04em; color: var(--violet-700); }
.res h3 { margin: 8px 0; font-size: 17px; }
.res p { color: var(--gray-600); font-size: 14.5px; margin: 0; }
/* ---------- Footer ---------- */
footer.site { background: var(--gray-900); color: var(--gray-400); padding: 56px 0 40px; }
footer.site img.logo { height: 26px; margin-bottom: 16px; }
footer.site .ftop { display: flex; justify-content: space-between; gap: 40px; flex-wrap: wrap; align-items: flex-start; }
footer.site p { max-width: 44ch; font-size: 14px; margin: 0; }
footer.site .legal { margin-top: 36px; padding-top: 24px; border-top: 1px solid rgba(255,255,255,.08); font-size: 13px; }
/* ---------- Responsive ---------- */
@media (max-width: 820px) {
.steps, .twocol, .cards, .stats, .res { grid-template-columns: 1fr; }
.nav .actions .btn-ghost { display: none; }
section { padding: 56px 0; }
}
</style>
</head>
<body>
<!-- ===================== HEADER ===================== -->
<header class="site">
<div class="wrap nav">
<a href="https://roboflow.com/" aria-label="Roboflow">
<img class="logo" src="https://cdn.prod.website-files.com/5f6bc60e665f54545a1e52a5/669974bcd33beb1adf952037_logo-roboflow-purple.svg" alt="Roboflow logo" />
</a>
<div class="actions">
<a class="btn btn-ghost" href="https://roboflow.com/sales">Talk to sales</a>
<a class="btn btn-primary btn-sm" href="https://app.roboflow.com/login">Try it now for free</a>
</div>
</div>
</header>
<!-- ===================== HERO ===================== -->
<section class="hero">
<div class="wrap">
<span class="eyebrow">Face Detection</span>
<h1>YOLO-Face: Custom Face Detection Models</h1>
<p class="sub">Test, download, or fine-tune open-source face detection datasets and models on Roboflow. Train a custom detector with RF-DETR, ship it with commercial-safe licensing, and keep face data on-device.</p>
<div class="cta-row">
<a class="btn btn-primary" href="https://universe.roboflow.com/yolo-face">Explore the YOLO-Face collection</a>
<a class="btn btn-secondary" href="https://app.roboflow.com/login">Start training a model</a>
</div>
</div>
</section>
<!-- ===================== WORKFLOW ===================== -->
<section>
<div class="wrap">
<h2>From dataset to deployed face detector in an afternoon</h2>
<p class="section-intro">YOLO-Face is the <a href="https://universe.roboflow.com/yolo-face">Roboflow Universe</a> collection of open-source face detection datasets and pre-trained models. Fork one, fine-tune it, and ship.</p>
<div class="steps">
<div class="step">
<div class="num">1</div>
<h3>Start from a dataset</h3>
<p>Browse the <a href="https://universe.roboflow.com/yolo-face">YOLO-Face collection</a> and fork a face detection project into your workspace, or upload and label your own images in <a href="https://roboflow.com/annotate">Annotate</a> with AI-assisted labeling. A few hundred images covering your real lighting, angles, distances, and occlusion beats a huge but narrow set.</p>
</div>
<div class="step">
<div class="num">2</div>
<h3>Train the model</h3>
<p>In <a href="https://roboflow.com/train">Roboflow Train</a>, we recommend <a href="https://roboflow.com/model/rf-detr">RF-DETR</a>, Roboflow's state-of-the-art real-time detection architecture. It leads current YOLO releases on accuracy and latency and ships under a commercial-friendly license. YOLO models are supported too if you specifically need them.</p>
</div>
<div class="step">
<div class="num">3</div>
<h3>Evaluate honestly</h3>
<p>Check class-wise performance and test on images that look like your real deployment, not just clean samples. For faces, pay attention to performance across different lighting, angles, and demographics. A model that works on one population and not another is not ready.</p>
</div>
<div class="step">
<div class="num">4</div>
<h3>Deploy where you run</h3>
<p>Serve the model with <a href="https://inference.roboflow.com/">Inference</a> on the cloud or the edge, and chain it in <a href="https://roboflow.com/workflows/build">Workflows</a>: detect faces, then blur, count, or pass crops downstream. On-device deployment keeps face data local. Use active learning to fold uncertain frames into the next version.</p>
</div>
</div>
<!-- RF-DETR live model playground embed -->
<div class="embed-card">
<div class="embed-head">
<span>Try RF-DETR live in the model playground</span>
<a class="btn btn-secondary btn-sm" href="https://playground.roboflow.com/models/roboflow/rf-detr" target="_blank" rel="noopener">Open in new tab</a>
</div>
<iframe src="https://playground.roboflow.com/models/roboflow/rf-detr" title="RF-DETR model playground" loading="lazy" allow="camera"></iframe>
</div>
<div class="cta-row" style="margin-top:32px;">
<a class="btn btn-primary" href="https://app.roboflow.com/login">Start training a model</a>
<a class="btn btn-secondary" href="https://roboflow.com/sales">Talk to a Vision AI engineer</a>
</div>
</div>
</section>
<!-- ===================== TWO PROBLEMS ===================== -->
<section class="alt">
<div class="wrap">
<h2>Detection is the foundation. Recognition is a separate step.</h2>
<div class="twocol">
<div class="panel known">
<h3>Detection (find the face)</h3>
<p>Drawing a bounding box around every face in an image. It does not identify anyone. Detection is what powers the most common and least sensitive uses: privacy redaction, counting and occupancy, attribute analysis, and presence triggers, often in service of removing identity rather than capturing it.</p>
</div>
<div class="panel rare">
<h3>Recognition (match the identity)</h3>
<p>Identity recognition adds a separate downstream step: the detector crops the face, then a face-embedding model turns that crop into an embedding and compares it against a gallery. That second step is where the real privacy and accuracy stakes live, and you should only add it if your use case genuinely calls for it.</p>
</div>
</div>
<p class="both-note">Get <strong>reliable face detection first</strong>, and the downstream steps become tractable. Roboflow gives you the detection foundation, and the choice of what to build on top stays yours.</p>
</div>
</section>
<!-- ===================== VALUE PROPS ===================== -->
<section>
<div class="wrap">
<h2>Your models and data stay yours</h2>
<p class="section-intro">Commercial-safe by license, private by architecture, and backed by 40+ open datasets to start from.</p>
<div class="cards">
<div class="card">
<div class="ic" aria-hidden="true">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2l7 4v6c0 5-3.5 8-7 10-3.5-2-7-5-7-10V6l7-4z"/><path d="M9 12l2 2 4-4"/></svg>
</div>
<h3>Commercial-safe licensing by default</h3>
<p>Train and ship on RF-DETR, released under the permissive Apache 2.0 license, free to use commercially with no copyleft obligations. The Ultralytics YOLO family ships under AGPL-3.0, which in practice can require open-sourcing your application or buying a commercial license. Build a face detector you can actually ship.</p>
</div>
<div class="card">
<div class="ic" aria-hidden="true">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="11" width="18" height="11" rx="2"/><path d="M7 11V7a5 5 0 0 1 10 0v4"/></svg>
</div>
<h3>Private by architecture, face data stays local</h3>
<p>Roboflow is a US-based platform with SOC 2 Type II compliance and encryption in transit and at rest. Deploy on-device, on-prem, in your VPC, or fully air-gapped, so face data never has to leave your infrastructure, which is often the right call for this use case.</p>
</div>
<div class="card">
<div class="ic" aria-hidden="true">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="7" height="7" rx="1"/><rect x="14" y="3" width="7" height="7" rx="1"/><rect x="3" y="14" width="7" height="7" rx="1"/><rect x="14" y="14" width="7" height="7" rx="1"/></svg>
</div>
<h3>40+ open datasets and models to fork</h3>
<p>The YOLO-Face collection on Roboflow Universe spans general human faces, expression detection, thermal and infrared faces, and more. Test any project in the browser, download it as a labeled dataset, or fine-tune it into your own model.</p>
</div>
</div>
</div>
</section>
<!-- ===================== PROOF / STATS ===================== -->
<section class="proof">
<div class="wrap">
<h2>Vision AI is already running in production</h2>
<p class="section-intro">Half the Fortune 100 build computer vision with Roboflow, with detection models deployed in retail, transit, events, plants, and on the edge.</p>
<div class="stats">
<div class="stat"><div class="big">40+</div><div class="lbl">open face detection datasets and models in the YOLO-Face collection</div></div>
<div class="stat"><div class="big">1M+</div><div class="lbl">engineers and 16,000+ organizations building on the platform</div></div>
<div class="stat"><div class="big">55B+</div><div class="lbl">model inferences run in production across critical industries</div></div>
</div>
<p class="logos">Trusted by teams at <strong>BNSF, Rivian, GE Vernova, Cummins, USG, Pella, and Peer Robotics.</strong></p>
</div>
</section>
<!-- ===================== FAQ ===================== -->
<section class="faq">
<div class="wrap">
<h2>Frequently asked questions</h2>
<div style="margin-top:32px;">
<details open>
<summary>What is YOLO-Face?</summary>
<p><a href="https://universe.roboflow.com/yolo-face">YOLO-Face</a> is a Roboflow Universe collection of open-source face detection datasets and pre-trained models, more than 40 community projects ranging from general human face detection to expression detection, thermal and infrared faces, and animal faces. Each one is testable in the browser, downloadable as a labeled dataset, and deployable via API. At its core, YOLO-Face does one job: drawing a bounding box around every face in an image, which is the foundation that blurring, counting, attribute analysis, and recognition are built on top of.</p>
</details>
<details>
<summary>How do I train a custom face detection model on Roboflow?</summary>
<p>Start from a dataset by forking a project from the <a href="https://universe.roboflow.com/yolo-face">YOLO-Face collection</a> on Universe, or upload and label your own images in Annotate with AI-assisted labeling. Then train RF-DETR, Roboflow's state-of-the-art real-time detection architecture, in Roboflow Train. Evaluate honestly on images that match your real deployment, paying attention to performance across lighting, angles, and demographics. Deploy with Inference on the cloud or the edge, and use active learning to fold uncertain frames back into the next version. You can go from a public dataset to a deployed face detector in an afternoon.</p>
</details>
<details>
<summary>Is the licensing safe for commercial face detection products?</summary>
<p>RF-DETR is released under the Apache 2.0 license, free to use commercially with no copyleft obligations, which is one reason it is the recommended model for a custom face detector you intend to ship. The Ultralytics YOLO family is distributed under <a href="https://blog.roboflow.com/why-agpl-3-0-is-a-risk-for-computer-vision-teams/">AGPL-3.0</a>, a strong copyleft license that in practice requires open-sourcing the application you build around the model or buying a commercial license, even for many commercial uses. If you build on a YOLO model, confirm the license before you ship.</p>
</details>
<details>
<summary>What about privacy and face recognition?</summary>
<p>Face detection finds where faces are; it does not identify anyone. Many of the most common uses, like privacy redaction, counting, and occupancy, use detection in service of removing or never capturing identity. Recognition is a separate downstream step: the detector crops the face, then a separate face-embedding model compares it against a gallery, and that second step is where the real privacy and accuracy stakes live. On-device deployment keeps face data local, which is often the right call, and models should be evaluated across different lighting, angles, and demographics before use.</p>
</details>
</div>
</div>
</section>
<!-- ===================== CTA BAND ===================== -->
<section>
<div class="wrap">
<div class="ctaband">
<h2>Build your face detector today</h2>
<p>Explore the <a href="https://universe.roboflow.com/yolo-face" style="color:#fff;text-decoration:underline;">YOLO-Face collection</a>, fork a dataset, and fine-tune a custom detector you can ship.</p>
<div class="cta-row">
<a class="btn btn-primary" href="https://app.roboflow.com/login">Start training a model</a>
<a class="btn btn-secondary" href="https://roboflow.com/sales">Talk to a Vision AI engineer</a>
</div>
</div>
</div>
</section>
<!-- ===================== ROBOFLOW ASSISTANT ===================== -->
<section class="alt" style="padding-top:0;">
<div class="wrap">
<div class="assistant">
<img src="https://cdn.prod.website-files.com/5f6bc60e665f54545a1e52a5/60eb1bb02556d91885b6bd7c_roboflow_raccoon_full.svg" alt="Roboflow mascot" />
<div>
<h3>Have a question about face detection?</h3>
<p>Ask the Roboflow assistant about forking a dataset, training RF-DETR, and deploying on-device.</p>
<!--
ROBOFLOW AGENT EMBED
Drop the standard Roboflow site assistant / agent embed snippet here
(the same widget used at the bottom of roboflow blog posts).
Placeholder retained so the web team can paste the production script.
-->
<div style="margin-top:14px;">
<a class="btn btn-primary btn-sm" href="https://app.roboflow.com/solutions/chat/new">Ask the Roboflow agent</a>
</div>
</div>
</div>
</div>
</section>
<!-- ===================== RESOURCES ===================== -->
<section>
<div class="wrap">
<h2>Suggested resources</h2>
<div class="res" style="margin-top:32px;">
<a class="card" href="https://universe.roboflow.com/yolo-face">
<div class="tag">Collection</div>
<h3>Explore the YOLO-Face Collection</h3>
<p>Test, download, or fork 40+ open face detection datasets and models on Universe.</p>
</a>
<a class="card" href="https://templates.roboflow.com/face-detection">
<div class="tag">Template</div>
<h3>Face Detection Template</h3>
<p>See how to find faces in an image or video frame and build on top of it.</p>
</a>
<a class="card" href="https://blog.roboflow.com/why-agpl-3-0-is-a-risk-for-computer-vision-teams/">
<div class="tag">Licensing</div>
<h3>Why AGPL-3.0 Is a Risk for CV Teams</h3>
<p>Understand the copyleft obligations before you ship a YOLO-based model.</p>
</a>
</div>
</div>
</section>
<!-- ===================== FOOTER ===================== -->
<footer class="site">
<div class="wrap">
<div class="ftop">
<div>
<img class="logo" src="https://cdn.prod.website-files.com/5f6bc60e665f54545a1e52a5/667ca10c998447db438ee7d8_logo-roboflow-white.svg" alt="Roboflow logo" />
<p>The fastest, most complete way to build software that can see. Label, train, deploy, and apply computer vision in one platform.</p>
</div>
<div class="cta-row">
<a class="btn btn-primary" href="https://app.roboflow.com/login">Try it now for free</a>
<a class="btn btn-secondary" style="background:transparent;color:#fff;border-color:rgba(255,255,255,.4);" href="https://roboflow.com/sales">Talk to a Vision AI engineer</a>
</div>
</div>
<div class="legal">© Roboflow, Inc. All rights reserved. ·
<a href="https://roboflow.com/terms" style="color:var(--gray-300);">Terms</a> ·
<a href="https://roboflow.com/privacy" style="color:var(--gray-300);">Privacy</a>
</div>
</div>
</footer>
</body>
</html>