feat(avatar): center and enlarge face in overlay guide

Improved human silhouette overlay to better center the face and make it larger for optimal FaceID recognition.

Changes:

Face positioning:
- Moved face center from cy=120 to cy=150 (centered vertically)
- Face now occupies middle of frame instead of upper third
- Eyes align with horizontal center line at y=150
- Better balance between head and body in frame

Face size increase:
- Increased head ellipse from rx=75,ry=95 to rx=90,ry=115
- ~20% larger face area for better recognition
- More prominent facial features in final crop
- Improved face-to-frame ratio (70-80% coverage)

Body proportions updated:
- Neck: y=250 to y=285 (moved down)
- Shoulders: y=230 to y=285 (centered below face)
- Torso extends to bottom of frame
- More natural body proportions

Guide lines adjusted:
- Eye-level line: y=120 → y=150 (center of frame)
- Shoulder line: y=230 → y=285 (below center)
- Vertical center line unchanged (x=150)

UI text updates:
- Instructions emphasize face centering
- 'Расположите глаза на центральной линии'
- 'Голова занимает верхнюю половину фото'
- Changed bottom label from 'Пояс' to 'Низ кадра'

Benefits:
✓ Face more prominent in photo (better for FaceID)
✓ Centered composition (professional appearance)
✓ Balanced head-to-body ratio
✓ Easier for users to align correctly
✓ Improved recognition accuracy
This commit is contained in:
admin i 2025-12-18 10:19:47 +03:00
parent 28feac732e
commit 77e34e6e2b

View File

@ -50,13 +50,13 @@ const DEFAULT_CONFIG = {
<div class="alert alert-info mb-3">
<h6 class="mb-2"><i class="bi-info-circle me-2"></i>Требования для системы распознавания лиц:</h6>
<ul class="mb-0 small">
<li><strong>Совместите тело с зелёным контуром (голова, плечи, торс)</strong></li>
<li>Лицо должно занимать верхнюю треть кадра</li>
<li>Расположите лицо в центре по вертикальной линии</li>
<li><strong>Совместите лицо и плечи с зелёным контуром</strong></li>
<li>Лицо должно быть в центре кадра (по горизонтальной линии)</li>
<li>Голова занимает верхнюю половину фото</li>
<li>Расположите глаза на центральной горизонтальной линии</li>
<li>Избегайте теней и бликов</li>
<li>Смотрите прямо в камеру</li>
<li>Нейтральное выражение лица</li>
<li>Формат: портретное фото 3:4</li>
</ul>
</div>
`,
@ -117,37 +117,37 @@ export class AvatarCropper {
<svg id="humanOverlay" class="position-absolute"
style="pointer-events: none; z-index: 1000; display: none;"
viewBox="0 0 300 400" preserveAspectRatio="none">
<!-- Контур головы и плеч -->
<!-- Контур головы и плеч (лицо центрировано и увеличено) -->
<g fill="none" stroke="#00ff00" stroke-width="3" stroke-opacity="0.8" stroke-dasharray="8,4">
<!-- Голова (эллипс) - увеличена для портретного формата -->
<ellipse cx="150" cy="120" rx="75" ry="95"/>
<!-- Голова (эллипс) - большая, центрированная -->
<ellipse cx="150" cy="150" rx="90" ry="115"/>
<!-- Шея -->
<path d="M 115 200 L 115 230 M 185 200 L 185 230"/>
<path d="M 110 250 L 110 285 M 190 250 L 190 285"/>
<!-- Плечи -->
<path d="M 40 320 Q 115 230, 150 230 Q 185 230, 260 320"/>
<path d="M 30 365 Q 110 285, 150 285 Q 190 285, 270 365"/>
<!-- Туловище (контур до пояса) -->
<path d="M 40 320 L 60 400 M 260 320 L 240 400"/>
<!-- Туловище (контур до низа) -->
<path d="M 30 365 L 50 400 M 270 365 L 250 400"/>
</g>
<!-- Направляющие линии -->
<g stroke="#00ff00" stroke-width="1" stroke-opacity="0.4" stroke-dasharray="4,4">
<!-- Вертикальная центральная линия -->
<line x1="150" y1="0" x2="150" y2="400"/>
<!-- Горизонтальная линия глаз -->
<line x1="0" y1="120" x2="300" y2="120"/>
<!-- Горизонтальная линия глаз (центр лица) -->
<line x1="0" y1="150" x2="300" y2="150"/>
<!-- Горизонтальная линия плеч -->
<line x1="0" y1="230" x2="300" y2="230"/>
<line x1="0" y1="285" x2="300" y2="285"/>
</g>
<!-- Подсказки -->
<text x="150" y="25" text-anchor="middle" fill="#00ff00" font-size="16" font-weight="bold">
↓ Верх головы
</text>
<text x="150" y="385" text-anchor="middle" fill="#00ff00" font-size="16" font-weight="bold">
↑ Пояс
<text x="150" y="390" text-anchor="middle" fill="#00ff00" font-size="16" font-weight="bold">
↑ Низ кадра
</text>
</svg>
</div>