<?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE article PUBLIC "-//NLM/DTD JATS (Z39.96) Journal Publishing DTD v1.2 20120330//EN" "http://jats.nlm.nih.gov/publishing/1.2/JATS-journalpublishing1.dtd">
    <!--<?xml-stylesheet type="text/xsl" href="article.xsl">-->
<article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:ns1="http://www.w3.org/1999/xlink" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" article-type="research-article" dtd-version="1.2" xml:lang="en">
	<front>
		<journal-meta>
			<journal-id journal-id-type="issn">2303-9868</journal-id>
			<journal-id journal-id-type="eissn">2227-6017</journal-id>
			<journal-title-group>
				<journal-title>Международный научно-исследовательский журнал</journal-title>
			</journal-title-group>
			<issn pub-type="epub">2303-9868</issn>
			<publisher>
				<publisher-name>ООО Цифра</publisher-name>
			</publisher>
		</journal-meta>
		<article-meta>
			<article-id pub-id-type="doi">10.60797/IRJ.2026.168.4</article-id>
			<article-categories>
				<subj-group>
					<subject>Brief communication</subject>
				</subj-group>
			</article-categories>
			<title-group>
				<article-title>Архитектурное обоснование сквозной модели для детекции и распознавания лиц в условиях низкой освещённости с сохранением идентичности</article-title>
			</title-group>
			<contrib-group>
				<contrib contrib-type="author" corresp="yes">
					<contrib-id contrib-id-type="orcid">https://orcid.org/0000-0001-5554-3887</contrib-id>
					<name>
						<surname>Кузнецова</surname>
						<given-names>Агнесса Сергеевна</given-names>
					</name>
					<email>agnessakyz@yandex.ru</email>
					<xref ref-type="aff" rid="aff-1">1</xref>
				</contrib>
				<contrib contrib-type="author">
					<name>
						<surname>Громов</surname>
						<given-names>Евгений Геннадьевич</given-names>
					</name>
					<email>jek_kot@mail.ru</email>
					<xref ref-type="aff" rid="aff-1">1</xref>
				</contrib>
				<contrib contrib-type="author">
					<contrib-id contrib-id-type="orcid">https://orcid.org/0000-0003-1470-8766</contrib-id>
					<name>
						<surname>Гилка</surname>
						<given-names>Вадим Викторович</given-names>
					</name>
					<email>gilka.vadim@yandex.ru</email>
					<xref ref-type="aff" rid="aff-1">1</xref>
				</contrib>
				<contrib contrib-type="author">
					<name>
						<surname>Морозов</surname>
						<given-names>Дмитрий Александрович</given-names>
					</name>
					<email>dimka5rus@yandex.ru</email>
					<xref ref-type="aff" rid="aff-1">1</xref>
				</contrib>
			</contrib-group>
			<aff id="aff-1">
				<institution-wrap>
					<institution-id institution-id-type="ROR">https://ror.org/041szz343</institution-id>
					<institution content-type="education">Федеральное государственное бюджетное образовательное учреждение высшего образования Волгоградский государственный технический университет</institution>
				</institution-wrap>
			</aff>
			<pub-date publication-format="electronic" date-type="pub" iso-8601-date="2026-06-17">
				<day>17</day>
				<month>06</month>
				<year>2026</year>
			</pub-date>
			<pub-date pub-type="collection">
				<year>2026</year>
			</pub-date>
			<volume>6</volume>
			<issue>168</issue>
			<fpage>1</fpage>
			<lpage>6</lpage>
			<history>
				<date date-type="received" iso-8601-date="2026-04-09">
					<day>09</day>
					<month>04</month>
					<year>2026</year>
				</date>
				<date date-type="accepted" iso-8601-date="2026-05-26">
					<day>26</day>
					<month>05</month>
					<year>2026</year>
				</date>
			</history>
			<permissions>
				<copyright-statement>Copyright: &amp;#x00A9; 2022 The Author(s)</copyright-statement>
				<copyright-year>2022</copyright-year>
				<license license-type="open-access" xlink:href="http://creativecommons.org/licenses/by/4.0/">
					<license-p>
						This is an open-access article distributed under the terms of the Creative Commons Attribution 4.0 International License (CC-BY 4.0), which permits unrestricted use, distribution, and reproduction in any medium, provided the original author and source are credited. See 
						<uri xlink:href="http://creativecommons.org/licenses/by/4.0/">http://creativecommons.org/licenses/by/4.0/</uri>
					</license-p>
					.
				</license>
			</permissions>
			<self-uri xlink:href="https://research-journal.org/archive/6-168-2026-june/10.60797/IRJ.2026.168.4"/>
			<abstract>
				<p>В работе представлено архитектурное решение задачи сквозной детекции и распознавания лиц, функционирующее в условиях недостаточной освещенности. Низкий уровень освещения вызывает критическое ухудшение качества входных данных: рост шумов, падение контраста и потерю текстурной информации, что негативно влияет на точность локализации объектов и стабильность извлекаемых биометрических эмбеддингов. Для преодоления указанных ограничений предлагается интегрировать модуль улучшения изображения, детектор и распознаватель в единый вычислительный контур. Такая структура, в отличие от классических каскадных решений с внешней предобработкой, обеспечивает согласованное обучение всех компонентов и целенаправленную оптимизацию признакового пространства, релевантного для сохранения identity-информации.Центральная методологическая проблема при реализации данного подхода заключается в некорректности использования нестабильного эмбеддинга из зашумленного темного кадра в качестве эталона для функции потерь идентичности. В работе анализируются два способа разрешения этого противоречия. Первый предполагает парное обучение с применением эталонных изображений нормальной освещенности. Второй, не требующий наличия светлых эталонов, базируется на механизме teacher–student дистилляции с momentum teacher, что позволяет стабилизировать процесс формирования биометрических представлений. Дополнительно рассматриваются аспекты стабилизации ключевых точек, гейтинг потерь на основе уверенности детектора и балансировка многокомпонентной целевой функции. Предложенная архитектура создает методологически обоснованную основу для разработки программного комплекса, ориентированного на высокую точность распознавания личности в условиях сложных световых сцен.</p>
			</abstract>
			<kwd-group>
				<kwd>низкая освещённость</kwd>
				<kwd> детекция лиц</kwd>
				<kwd> распознавание лиц</kwd>
				<kwd> сохранение идентичности</kwd>
				<kwd> общий энкодер</kwd>
				<kwd> teacher student дистилляция</kwd>
				<kwd> гейтинг потерь</kwd>
			</kwd-group>
		</article-meta>
	</front>
	<body>
		<sec>
			<title>HTML-content</title>
			<p>1. Введение</p>
			<p>Условия недостаточной освещённости ухудшают качество изображения не только визуально, но и на уровне признаков, которыми оперируют современные нейросетевые модели. Рост сенсорного шума, нестабильность экспозиции, локальные тени, снижение контраста и потеря высокочастотных деталей приводят к тому, что ключевые ориентиры лица определяются менее точно, а эмбеддинги, используемые для идентификации, становятся менее устойчивыми [1], [4]. Поэтому даже сильные модели детекции и распознавания, показавшие высокое качество на кадрах нормальной освещённости, в тёмных сценах демонстрируют выраженную деградацию точности [5], [7].</p>
			<p>Традиционная каскадная схема, в которой улучшение изображения предшествует детекции и распознаванию, удобна для инженерной реализации, однако разрывает единую оптимизацию между этапами. Модуль улучшения в таком конвейере ориентируется прежде всего на визуальную выразительность изображения и не контролирует сохранение биометрически значимых деталей, тогда как последующие блоки вынуждены работать с входами из иного распределения, чем то, на котором они изначально обучались [5], [7]. В результате внешнее улучшение может не только не помочь, но и ухудшить распознавание, если сглаживаются тонкие текстуры, искажается локальная геометрия или изменяется микроконтраст в областях глаз, носа и рта.</p>
			<p>В настоящей работе рассматривается сквозная постановка задачи, в которой улучшение изображения, детекция и распознавание объединяются в единый вычислительный граф. Базовая идея состоит в использовании общего энкодера признаков, к которому подключаются детекторные и распознавательные головы, а также механизмы сохранения идентичности, устойчивые к шуму, ошибкам раннего выравнивания и фотометрической деградации. Такой подход позволяет трактовать улучшение не как отдельную предобработку, а как часть общей процедуры формирования биометрически полезного представления [7].</p>
			<p>2. Методы и принципы исследования</p>
			<p>Исходное изображение рассматривается как входной тензор </p>
			<mml:math display="inline">
				<mml:mrow>
					<mml:mi>x</mml:mi>
					<mml:mo>∈</mml:mo>
					<mml:msup>
						<mml:mi>ℝ</mml:mi>
						<mml:mrow>
							<mml:mn>3</mml:mn>
							<mml:mi>×</mml:mi>
							<mml:mn>3</mml:mn>
							<mml:mi>×</mml:mi>
							<mml:mi>H</mml:mi>
							<mml:mi>×</mml:mi>
							<mml:mi>W</mml:mi>
						</mml:mrow>
					</mml:msup>
				</mml:mrow>
			</mml:math>
			<p>где [LATEX_FORMULA]B[/LATEX_FORMULA] обозначает размер пакета, а [LATEX_FORMULA]H[/LATEX_FORMULA] и [LATEX_FORMULA]W[/LATEX_FORMULA]задают пространственные размеры изображения. Общий [LATEX_FORMULA]E[/LATEX_FORMULA] энкодер строит многоуровневое представление признаков, предназначенное для последующей совместной обработки задач улучшения, локализации и идентификации.</p>
			<mml:math display="inline">
				<mml:mrow>
					<mml:mo stretchy="false">{</mml:mo>
					<mml:msub>
						<mml:mi>C</mml:mi>
						<mml:mn>2</mml:mn>
					</mml:msub>
					<mml:mo>,</mml:mo>
					<mml:msub>
						<mml:mi>C</mml:mi>
						<mml:mn>3</mml:mn>
					</mml:msub>
					<mml:mo>,</mml:mo>
					<mml:msub>
						<mml:mi>C</mml:mi>
						<mml:mn>4</mml:mn>
					</mml:msub>
					<mml:mo>,</mml:mo>
					<mml:msub>
						<mml:mi>C</mml:mi>
						<mml:mn>5</mml:mn>
					</mml:msub>
					<mml:mo stretchy="false">}</mml:mo>
				</mml:mrow>
			</mml:math>
			<mml:math display="inline">
				<mml:mrow>
					<mml:msub>
						<mml:mi>C</mml:mi>
						<mml:mi>k</mml:mi>
					</mml:msub>
					<mml:mo>∈</mml:mo>
					<mml:msup>
						<mml:mi>R</mml:mi>
						<mml:mrow>
							<mml:mi>B</mml:mi>
							<mml:mi>×</mml:mi>
							<mml:mi>C</mml:mi>
							<mml:mi>×</mml:mi>
							<mml:mrow>
								<mml:mo stretchy="true" fence="true" form="prefix">(</mml:mo>
								<mml:mfrac>
									<mml:mrow>
										<mml:mi>H</mml:mi>
									</mml:mrow>
									<mml:mrow>
										<mml:msup>
											<mml:mn>2</mml:mn>
											<mml:mi>k</mml:mi>
										</mml:msup>
									</mml:mrow>
								</mml:mfrac>
								<mml:mo stretchy="true" fence="true" form="postfix">)</mml:mo>
							</mml:mrow>
							<mml:mi>×</mml:mi>
							<mml:mrow>
								<mml:mo stretchy="true" fence="true" form="prefix">(</mml:mo>
								<mml:mfrac>
									<mml:mrow>
										<mml:mi>W</mml:mi>
									</mml:mrow>
									<mml:mrow>
										<mml:msup>
											<mml:mn>2</mml:mn>
											<mml:mi>k</mml:mi>
										</mml:msup>
									</mml:mrow>
								</mml:mfrac>
								<mml:mo stretchy="true" fence="true" form="postfix">)</mml:mo>
							</mml:mrow>
						</mml:mrow>
					</mml:msup>
				</mml:mrow>
			</mml:math>
			<mml:math display="inline">
				<mml:mrow>
					<mml:msub>
						<mml:mi>C</mml:mi>
						<mml:mn>3</mml:mn>
					</mml:msub>
					<mml:mo>,</mml:mo>
					<mml:msub>
						<mml:mi>C</mml:mi>
						<mml:mn>4</mml:mn>
					</mml:msub>
					<mml:mo>,</mml:mo>
					<mml:msub>
						<mml:mi>C</mml:mi>
						<mml:mn>5</mml:mn>
					</mml:msub>
				</mml:mrow>
			</mml:math>
			<p>Далее по уровням формируется пирамидальное представление признаков, обеспечивающее перенос информации между масштабами и позволяющее сохранить как локальные, так и более глобальные структуры лица.</p>
			<mml:math display="inline">
				<mml:mrow>
					<mml:mo stretchy="false">{</mml:mo>
					<mml:msub>
						<mml:mi>P</mml:mi>
						<mml:mn>3</mml:mn>
					</mml:msub>
					<mml:mo>,</mml:mo>
					<mml:msub>
						<mml:mi>P</mml:mi>
						<mml:mn>4</mml:mn>
					</mml:msub>
					<mml:mo>,</mml:mo>
					<mml:msub>
						<mml:mi>P</mml:mi>
						<mml:mn>5</mml:mn>
					</mml:msub>
					<mml:mo stretchy="false">}</mml:mo>
					<mml:mo>=</mml:mo>
					<mml:mrow>
						<mml:mi mathvariant="normal">F</mml:mi>
						<mml:mi mathvariant="normal">P</mml:mi>
						<mml:mi mathvariant="normal">N</mml:mi>
					</mml:mrow>
					<mml:mo stretchy="false">(</mml:mo>
					<mml:msub>
						<mml:mi>C</mml:mi>
						<mml:mn>3</mml:mn>
					</mml:msub>
					<mml:mo>,</mml:mo>
					<mml:msub>
						<mml:mi>C</mml:mi>
						<mml:mn>4</mml:mn>
					</mml:msub>
					<mml:mo>,</mml:mo>
					<mml:msub>
						<mml:mi>C</mml:mi>
						<mml:mn>5</mml:mn>
					</mml:msub>
					<mml:mo stretchy="false">)</mml:mo>
				</mml:mrow>
			</mml:math>
			<p>Полученное пирамидальное представление используется совместно в детекторе и распознавателе [6], [12]. Детектор[LATEX_FORMULA]D[/LATEX_FORMULA] для каждого лица оценивает положение рамки, ключевые точки и меру уверенности, которая далее используется не только для локализации, но и для управления силой распознавательных потерь.</p>
			<mml:math display="inline">
				<mml:mrow>
					<mml:mi>D</mml:mi>
					<mml:mo stretchy="false">(</mml:mo>
					<mml:msub>
						<mml:mi>P</mml:mi>
						<mml:mi>i</mml:mi>
					</mml:msub>
					<mml:mo stretchy="false">)</mml:mo>
					<mml:mo>=</mml:mo>
					<mml:mo stretchy="false">{</mml:mo>
					<mml:msub>
						<mml:mi>b</mml:mi>
						<mml:mi>i</mml:mi>
					</mml:msub>
					<mml:mo>,</mml:mo>
					<mml:msub>
						<mml:mi>l</mml:mi>
						<mml:mi>i</mml:mi>
					</mml:msub>
					<mml:mo>,</mml:mo>
					<mml:msub>
						<mml:mi>s</mml:mi>
						<mml:mi>i</mml:mi>
					</mml:msub>
					<mml:msubsup>
						<mml:mo stretchy="false">}</mml:mo>
						<mml:mrow>
							<mml:mi>i</mml:mi>
							<mml:mo>=</mml:mo>
							<mml:mn>1</mml:mn>
						</mml:mrow>
						<mml:mrow>
							<mml:mi>N</mml:mi>
						</mml:mrow>
					</mml:msubsup>
				</mml:mrow>
			</mml:math>
			<p>Где [LATEX_FORMULA]b_i [/LATEX_FORMULA] обозначает рамку;</p>
			<p>[LATEX_FORMULA]l = \{ i \}[/LATEX_FORMULA] — набор landmarks;</p>
			<mml:math display="inline">
				<mml:mrow>
					<mml:msub>
						<mml:mi>s</mml:mi>
						<mml:mi>i</mml:mi>
					</mml:msub>
					<mml:mo>∈</mml:mo>
					<mml:mo stretchy="false">[</mml:mo>
					<mml:mn>0</mml:mn>
					<mml:mo>,</mml:mo>
					<mml:mn>1</mml:mn>
					<mml:mo stretchy="false">]</mml:mo>
				</mml:mrow>
			</mml:math>
			<p>— confidence после подавления немаксимумов.</p>
			<p>На следующем шаге выполняются выравнивание лица по ключевым точкам и извлечение фиксированного окна признаков, что позволяет привести входы распознавателя к согласованному геометрическому виду.</p>
			<mml:math display="inline">
				<mml:mrow>
					<mml:msub>
						<mml:mi>t</mml:mi>
						<mml:mi>i</mml:mi>
					</mml:msub>
					<mml:mo>=</mml:mo>
					<mml:mrow>
						<mml:mi mathvariant="normal">R</mml:mi>
						<mml:mi mathvariant="normal">O</mml:mi>
						<mml:mi mathvariant="normal">I</mml:mi>
						<mml:mi mathvariant="normal">A</mml:mi>
						<mml:mi mathvariant="normal">l</mml:mi>
						<mml:mi mathvariant="normal">i</mml:mi>
						<mml:mi mathvariant="normal">g</mml:mi>
						<mml:mi mathvariant="normal">n</mml:mi>
					</mml:mrow>
					<mml:mo stretchy="true" fence="true" minsize="1.2em" maxsize="1.2em">(</mml:mo>
					<mml:mi>P</mml:mi>
					<mml:mo>,</mml:mo>
					<mml:mi>A</mml:mi>
					<mml:mo stretchy="false">(</mml:mo>
					<mml:msub>
						<mml:mi>b</mml:mi>
						<mml:mrow>
							<mml:mi>i</mml:mi>
							<mml:mo>,</mml:mo>
							<mml:mn>1</mml:mn>
						</mml:mrow>
					</mml:msub>
					<mml:mo stretchy="false">)</mml:mo>
					<mml:mo stretchy="true" fence="true" minsize="1.2em" maxsize="1.2em">)</mml:mo>
				</mml:mrow>
			</mml:math>
			<p>В этом выражении [LATEX_FORMULA]A[/LATEX_FORMULA] обозначает аффинное выравнивание к каноническому виду, а [LATEX_FORMULA]t_i[/LATEX_FORMULA] имеет фиксированный пространственный размер. После выравнивания распознавательная ветвь [LATEX_FORMULA]R[/LATEX_FORMULA] формирует нормированный эмбеддинг, который затем используется в термах идентичности и при необходимости в классификационной потере.</p>
			<mml:math display="inline">
				<mml:mrow>
					<mml:msub>
						<mml:mi>z</mml:mi>
						<mml:mi>i</mml:mi>
					</mml:msub>
					<mml:mo>=</mml:mo>
					<mml:mrow>
						<mml:mi mathvariant="normal">n</mml:mi>
						<mml:mi mathvariant="normal">o</mml:mi>
						<mml:mi mathvariant="normal">r</mml:mi>
						<mml:mi mathvariant="normal">m</mml:mi>
					</mml:mrow>
					<mml:mo stretchy="true" fence="true" minsize="1.2em" maxsize="1.2em">(</mml:mo>
					<mml:mi>R</mml:mi>
					<mml:mo stretchy="false">(</mml:mo>
					<mml:msub>
						<mml:mi>t</mml:mi>
						<mml:mi>i</mml:mi>
					</mml:msub>
					<mml:mo stretchy="false">)</mml:mo>
					<mml:mo stretchy="true" fence="true" minsize="1.2em" maxsize="1.2em">)</mml:mo>
				</mml:mrow>
			</mml:math>
			<mml:math display="inline">
				<mml:mrow>
					<mml:msub>
						<mml:mi>z</mml:mi>
						<mml:mi>i</mml:mi>
					</mml:msub>
					<mml:mo>∈</mml:mo>
					<mml:msup>
						<mml:mi>ℝ</mml:mi>
						<mml:mi>d</mml:mi>
					</mml:msup>
				</mml:mrow>
			</mml:math>
			<p>2.1. Архитектурная постановка identity loss</p>
			<p>Если эталонный эмбеддинг вычисляется непосредственно по тёмному входу, возникает логически замкнутый контур, в котором нестабильное представление используется как цель для собственной коррекции. В базовом варианте это можно записать следующим образом:</p>
			<mml:math display="inline">
				<mml:mrow>
					<mml:msub>
						<mml:mi>z</mml:mi>
						<mml:mi>x</mml:mi>
					</mml:msub>
					<mml:mo>=</mml:mo>
					<mml:mi>R</mml:mi>
					<mml:mo stretchy="true" fence="true" minsize="1.2em" maxsize="1.2em">(</mml:mo>
					<mml:mi>A</mml:mi>
					<mml:mo stretchy="false">(</mml:mo>
					<mml:mi>x</mml:mi>
					<mml:mo>,</mml:mo>
					<mml:msub>
						<mml:mi>l</mml:mi>
						<mml:mi>x</mml:mi>
					</mml:msub>
					<mml:mo stretchy="false">)</mml:mo>
					<mml:mo stretchy="true" fence="true" minsize="1.2em" maxsize="1.2em">)</mml:mo>
					<mml:mo>,</mml:mo>
					<mml:mspace width="1em"/>
					<mml:msub>
						<mml:mi>z</mml:mi>
						<mml:mi>y</mml:mi>
					</mml:msub>
					<mml:mo>=</mml:mo>
					<mml:mi>R</mml:mi>
					<mml:mo stretchy="true" fence="true" minsize="1.2em" maxsize="1.2em">(</mml:mo>
					<mml:mi>A</mml:mi>
					<mml:mo stretchy="false">(</mml:mo>
					<mml:mi>y</mml:mi>
					<mml:mo>,</mml:mo>
					<mml:msub>
						<mml:mi>l</mml:mi>
						<mml:mi>y</mml:mi>
					</mml:msub>
					<mml:mo stretchy="false">)</mml:mo>
					<mml:mo stretchy="true" fence="true" minsize="1.2em" maxsize="1.2em">)</mml:mo>
				</mml:mrow>
			</mml:math>
			<mml:math display="inline">
				<mml:mrow>
					<mml:msub>
						<mml:mi>L</mml:mi>
						<mml:mrow>
							<mml:mi>i</mml:mi>
							<mml:mi>i</mml:mi>
							<mml:mi>l</mml:mi>
						</mml:mrow>
					</mml:msub>
					<mml:mo>=</mml:mo>
					<mml:mn>1</mml:mn>
					<mml:mo>−</mml:mo>
					<mml:mi>cos</mml:mi>
					<mml:mrow>
						<mml:mo stretchy="true" fence="true" form="prefix">(</mml:mo>
						<mml:msub>
							<mml:mi>z</mml:mi>
							<mml:mrow>
								<mml:mi>x</mml:mi>
							</mml:mrow>
						</mml:msub>
						<mml:mo>,</mml:mo>
						<mml:msub>
							<mml:mi>z</mml:mi>
							<mml:mrow>
								<mml:mi>y</mml:mi>
							</mml:mrow>
						</mml:msub>
						<mml:mo stretchy="true" fence="true" form="postfix">)</mml:mo>
					</mml:mrow>
				</mml:mrow>
			</mml:math>
			<p>Здесь y обозначает улучшенное изображение. Ключевая проблема состоит в том, что при сильной деградации [LATEX_FORMULA]z_x[/LATEX_FORMULA] сам по себе может быть шумным и смещённым, поэтому генератор получает ненадёжную целевую функцию и начинает подстраиваться под искажённый эталон [5]. </p>
			<p>Если доступны парные данные, то есть эталонное изображение нормальной освещённости [LATEX_FORMULA]x^{\text{ref}}, \ \text{identityloss}[/LATEX_FORMULA] целесообразно определять по опорному изображению нормального качества: </p>
			<mml:math display="inline">
				<mml:mrow>
					<mml:msup>
						<mml:mi>z</mml:mi>
						<mml:mrow>
							<mml:mrow>
								<mml:mi mathvariant="normal">r</mml:mi>
								<mml:mi mathvariant="normal">e</mml:mi>
								<mml:mi mathvariant="normal">f</mml:mi>
							</mml:mrow>
						</mml:mrow>
					</mml:msup>
					<mml:mo>=</mml:mo>
					<mml:mrow>
						<mml:mi mathvariant="normal">n</mml:mi>
						<mml:mi mathvariant="normal">o</mml:mi>
						<mml:mi mathvariant="normal">r</mml:mi>
						<mml:mi mathvariant="normal">m</mml:mi>
					</mml:mrow>
					<mml:mspace width="negativethinmathspace"/>
					<mml:mrow>
						<mml:mo stretchy="true" fence="true" form="prefix">(</mml:mo>
						<mml:mi>R</mml:mi>
						<mml:mspace width="negativethinmathspace"/>
						<mml:mrow>
							<mml:mo stretchy="true" fence="true" form="prefix">(</mml:mo>
							<mml:mi>A</mml:mi>
							<mml:mspace width="negativethinmathspace"/>
							<mml:mrow>
								<mml:mo stretchy="true" fence="true" form="prefix">(</mml:mo>
								<mml:msup>
									<mml:mi>x</mml:mi>
									<mml:mrow>
										<mml:mrow>
											<mml:mi mathvariant="normal">r</mml:mi>
											<mml:mi mathvariant="normal">e</mml:mi>
											<mml:mi mathvariant="normal">f</mml:mi>
										</mml:mrow>
									</mml:mrow>
								</mml:msup>
								<mml:mo>,</mml:mo>
								<mml:msup>
									<mml:mi>l</mml:mi>
									<mml:mrow>
										<mml:mrow>
											<mml:mi mathvariant="normal">r</mml:mi>
											<mml:mi mathvariant="normal">e</mml:mi>
											<mml:mi mathvariant="normal">f</mml:mi>
										</mml:mrow>
									</mml:mrow>
								</mml:msup>
								<mml:mo stretchy="true" fence="true" form="postfix">)</mml:mo>
							</mml:mrow>
							<mml:mo stretchy="true" fence="true" form="postfix">)</mml:mo>
						</mml:mrow>
						<mml:mo stretchy="true" fence="true" form="postfix">)</mml:mo>
					</mml:mrow>
					<mml:mo>,</mml:mo>
					<mml:mspace width="1em"/>
					<mml:msup>
						<mml:mi>z</mml:mi>
						<mml:mrow>
							<mml:mi>y</mml:mi>
						</mml:mrow>
					</mml:msup>
					<mml:mo>=</mml:mo>
					<mml:mrow>
						<mml:mi mathvariant="normal">n</mml:mi>
						<mml:mi mathvariant="normal">o</mml:mi>
						<mml:mi mathvariant="normal">r</mml:mi>
						<mml:mi mathvariant="normal">m</mml:mi>
					</mml:mrow>
					<mml:mspace width="negativethinmathspace"/>
					<mml:mrow>
						<mml:mo stretchy="true" fence="true" form="prefix">(</mml:mo>
						<mml:mi>R</mml:mi>
						<mml:mspace width="negativethinmathspace"/>
						<mml:mrow>
							<mml:mo stretchy="true" fence="true" form="prefix">(</mml:mo>
							<mml:mi>A</mml:mi>
							<mml:mspace width="negativethinmathspace"/>
							<mml:mrow>
								<mml:mo stretchy="true" fence="true" form="prefix">(</mml:mo>
								<mml:mi>y</mml:mi>
								<mml:mo>,</mml:mo>
								<mml:msup>
									<mml:mi>l</mml:mi>
									<mml:mrow>
										<mml:mi>y</mml:mi>
									</mml:mrow>
								</mml:msup>
								<mml:mo stretchy="true" fence="true" form="postfix">)</mml:mo>
							</mml:mrow>
							<mml:mo stretchy="true" fence="true" form="postfix">)</mml:mo>
						</mml:mrow>
						<mml:mo stretchy="true" fence="true" form="postfix">)</mml:mo>
					</mml:mrow>
				</mml:mrow>
			</mml:math>
			<mml:math display="inline">
				<mml:mrow>
					<mml:msubsup>
						<mml:mi>L</mml:mi>
						<mml:mrow>
							<mml:mtext>pair</mml:mtext>
						</mml:mrow>
						<mml:mrow>
							<mml:mi>i</mml:mi>
						</mml:mrow>
					</mml:msubsup>
					<mml:mo>=</mml:mo>
					<mml:mn>1</mml:mn>
					<mml:mo>−</mml:mo>
					<mml:mi>cos</mml:mi>
					<mml:mspace width="negativethinmathspace"/>
					<mml:mrow>
						<mml:mo stretchy="true" fence="true" form="prefix">(</mml:mo>
						<mml:msup>
							<mml:mi>z</mml:mi>
							<mml:mrow>
								<mml:mrow>
									<mml:mi mathvariant="normal">r</mml:mi>
									<mml:mi mathvariant="normal">e</mml:mi>
									<mml:mi mathvariant="normal">f</mml:mi>
								</mml:mrow>
							</mml:mrow>
						</mml:msup>
						<mml:mo>,</mml:mo>
						<mml:msup>
							<mml:mi>z</mml:mi>
							<mml:mrow>
								<mml:mi>y</mml:mi>
							</mml:mrow>
						</mml:msup>
						<mml:mo stretchy="true" fence="true" form="postfix">)</mml:mo>
					</mml:mrow>
				</mml:mrow>
			</mml:math>
			<p>Такой режим разрывает замкнутый круг, поскольку эталонный эмбеддинг извлекается из качественного изображения и тем самым задаёт более устойчивую цель для оптимизации [1].</p>
			<p>При отсутствии парных данных предлагается использовать teacher student схему. В этой постановке teacher сеть [LATEX_FORMULA]R_{\tau}[/LATEX_FORMULA] обновляется по правилу экспоненциального скользящего среднего, что обеспечивает более плавную и устойчивую динамику формирования целевых представлений: </p>
			<mml:math display="inline">
				<mml:mrow>
					<mml:msub>
						<mml:mi>θ</mml:mi>
						<mml:mrow>
							<mml:mi>τ</mml:mi>
						</mml:mrow>
					</mml:msub>
					<mml:mo>←</mml:mo>
					<mml:mi>μ</mml:mi>
					<mml:msub>
						<mml:mi>θ</mml:mi>
						<mml:mrow>
							<mml:mi>τ</mml:mi>
						</mml:mrow>
					</mml:msub>
					<mml:mo>+</mml:mo>
					<mml:mo stretchy="false">(</mml:mo>
					<mml:mn>1</mml:mn>
					<mml:mo>−</mml:mo>
					<mml:mi>μ</mml:mi>
					<mml:mo stretchy="false">)</mml:mo>
					<mml:mspace width="0.167em"/>
					<mml:msub>
						<mml:mi>θ</mml:mi>
						<mml:mi>s</mml:mi>
					</mml:msub>
					<mml:mo>,</mml:mo>
					<mml:mspace width="1em"/>
					<mml:mi>μ</mml:mi>
					<mml:mo>∈</mml:mo>
					<mml:mo stretchy="false">(</mml:mo>
					<mml:mn>0</mml:mn>
					<mml:mo>,</mml:mo>
					<mml:mn>1</mml:mn>
					<mml:mo stretchy="false">)</mml:mo>
				</mml:mrow>
			</mml:math>
			<p>Здесь [LATEX_FORMULA]\theta_{\tau}[/LATEX_FORMULA] и [LATEX_FORMULA]\theta_s[/LATEX_FORMULA]обозначают параметры teacher и student соответственно. После обновления teacher формируются эмбеддинги, используемые для непарного варианта identity loss: </p>
			<mml:math display="inline">
				<mml:mrow>
					<mml:msub>
						<mml:mi>z</mml:mi>
						<mml:mrow>
							<mml:mi>τ</mml:mi>
						</mml:mrow>
					</mml:msub>
					<mml:mo>=</mml:mo>
					<mml:mrow>
						<mml:mi mathvariant="normal">n</mml:mi>
						<mml:mi mathvariant="normal">o</mml:mi>
						<mml:mi mathvariant="normal">r</mml:mi>
						<mml:mi mathvariant="normal">m</mml:mi>
					</mml:mrow>
					<mml:mspace width="negativethinmathspace"/>
					<mml:mrow>
						<mml:mo stretchy="true" fence="true" form="prefix">(</mml:mo>
						<mml:msub>
							<mml:mi>R</mml:mi>
							<mml:mrow>
								<mml:mi>τ</mml:mi>
							</mml:mrow>
						</mml:msub>
						<mml:mspace width="negativethinmathspace"/>
						<mml:mrow>
							<mml:mo stretchy="true" fence="true" form="prefix">(</mml:mo>
							<mml:mi>A</mml:mi>
							<mml:mo stretchy="false">(</mml:mo>
							<mml:mi>y</mml:mi>
							<mml:mo>,</mml:mo>
							<mml:msub>
								<mml:mi>l</mml:mi>
								<mml:mi>y</mml:mi>
							</mml:msub>
							<mml:mo stretchy="false">)</mml:mo>
							<mml:mo stretchy="true" fence="true" form="postfix">)</mml:mo>
						</mml:mrow>
						<mml:mo stretchy="true" fence="true" form="postfix">)</mml:mo>
					</mml:mrow>
					<mml:mo>,</mml:mo>
					<mml:mspace width="1em"/>
					<mml:msub>
						<mml:mi>z</mml:mi>
						<mml:mi>s</mml:mi>
					</mml:msub>
					<mml:mo>=</mml:mo>
					<mml:mrow>
						<mml:mi mathvariant="normal">n</mml:mi>
						<mml:mi mathvariant="normal">o</mml:mi>
						<mml:mi mathvariant="normal">r</mml:mi>
						<mml:mi mathvariant="normal">m</mml:mi>
					</mml:mrow>
					<mml:mspace width="negativethinmathspace"/>
					<mml:mrow>
						<mml:mo stretchy="true" fence="true" form="prefix">(</mml:mo>
						<mml:msub>
							<mml:mi>R</mml:mi>
							<mml:mi>s</mml:mi>
						</mml:msub>
						<mml:mspace width="negativethinmathspace"/>
						<mml:mrow>
							<mml:mo stretchy="true" fence="true" form="prefix">(</mml:mo>
							<mml:mi>A</mml:mi>
							<mml:mo stretchy="false">(</mml:mo>
							<mml:mi>y</mml:mi>
							<mml:mo>,</mml:mo>
							<mml:msub>
								<mml:mi>l</mml:mi>
								<mml:mi>y</mml:mi>
							</mml:msub>
							<mml:mo stretchy="false">)</mml:mo>
							<mml:mo stretchy="true" fence="true" form="postfix">)</mml:mo>
						</mml:mrow>
						<mml:mo stretchy="true" fence="true" form="postfix">)</mml:mo>
					</mml:mrow>
				</mml:mrow>
			</mml:math>
			<mml:math display="inline">
				<mml:mrow>
					<mml:msubsup>
						<mml:mi>L</mml:mi>
						<mml:mrow>
							<mml:mtext>int</mml:mtext>
						</mml:mrow>
						<mml:mrow>
							<mml:mi>m</mml:mi>
						</mml:mrow>
					</mml:msubsup>
					<mml:mo>=</mml:mo>
					<mml:mn>1</mml:mn>
					<mml:mo>−</mml:mo>
					<mml:mi>cos</mml:mi>
					<mml:mspace width="negativethinmathspace"/>
					<mml:mrow>
						<mml:mo stretchy="true" fence="true" form="prefix">(</mml:mo>
						<mml:msub>
							<mml:mi>z</mml:mi>
							<mml:mi>s</mml:mi>
						</mml:msub>
						<mml:mo>,</mml:mo>
						<mml:msub>
							<mml:mi>z</mml:mi>
							<mml:mrow>
								<mml:mi>τ</mml:mi>
							</mml:mrow>
						</mml:msub>
						<mml:mo stretchy="true" fence="true" form="postfix">)</mml:mo>
					</mml:mrow>
				</mml:mrow>
			</mml:math>
			<p>Поскольку teacher ветвь по определению схемы не получает градиент, остановка градиента в данном случае выступает техническим следствием выбранной организации обучения, а не самостоятельным методом стабилизации [9].</p>
			<p>Если доступны метки идентичности, в схему дополнительно включается ArcFace потеря:</p>
			<mml:math display="inline">
				<mml:mrow>
					<mml:msub>
						<mml:mi>L</mml:mi>
						<mml:mrow>
							<mml:mtext>arc</mml:mtext>
						</mml:mrow>
					</mml:msub>
					<mml:mo>=</mml:mo>
					<mml:mrow>
						<mml:mi mathvariant="normal">A</mml:mi>
						<mml:mi mathvariant="normal">r</mml:mi>
						<mml:mi mathvariant="normal">c</mml:mi>
						<mml:mi mathvariant="normal">F</mml:mi>
						<mml:mi mathvariant="normal">a</mml:mi>
						<mml:mi mathvariant="normal">c</mml:mi>
						<mml:mi mathvariant="normal">e</mml:mi>
						<mml:mi mathvariant="normal">L</mml:mi>
						<mml:mi mathvariant="normal">o</mml:mi>
						<mml:mi mathvariant="normal">s</mml:mi>
						<mml:mi mathvariant="normal">s</mml:mi>
					</mml:mrow>
					<mml:mo stretchy="false">(</mml:mo>
					<mml:mi>z</mml:mi>
					<mml:mo>,</mml:mo>
					<mml:mi>k</mml:mi>
					<mml:mo stretchy="false">)</mml:mo>
				</mml:mrow>
			</mml:math>
			<p>Указанный терм усиливает разделимость классов в пространстве эмбеддингов [5]. Если же метки идентичности отсутствуют, ArcFace потеря не используется, а сохранение идентичности обеспечивается исключительно через teacher student механизм и согласование представлений.</p>
			<p>2.2. Стабилизация выравнивания и landmarks</p>
			<p>На ранних этапах совместного обучения детектор и распознаватель ведут себя нестабильно, поскольку ошибки в landmarks немедленно отражаются на alignment и далее ухудшают эмбеддинги. Поэтому на этапе прогрева целесообразно использовать предобученный детектор [LATEX_FORMULA]D_0[/LATEX_FORMULA] как внешнего учителя для ключевых точек, а согласованность с его оценками вводить как дополнительный регуляризатор: </p>
			<mml:math display="inline">
				<mml:mrow>
					<mml:msup>
						<mml:mi>I</mml:mi>
						<mml:mrow>
							<mml:mo stretchy="false">(</mml:mo>
							<mml:mn>0</mml:mn>
							<mml:mo stretchy="false">)</mml:mo>
						</mml:mrow>
					</mml:msup>
					<mml:mo>=</mml:mo>
					<mml:msub>
						<mml:mi>D</mml:mi>
						<mml:mn>0</mml:mn>
					</mml:msub>
				</mml:mrow>
			</mml:math>
			<p>Такое ограничение сдерживает отклонение текущих landmarks от стабильной опорной траектории и позволяет подключать identity потери только после того, как выравнивание становится достаточно надёжным для передачи корректного сигнала в распознаватель [6], [8].</p>
			<fig id="F1">
				<label>Figure 1</label>
				<caption>
					<p>Схема обучения</p>
				</caption>
				<alt-text>Схема обучения</alt-text>
				<graphic ns1:href="/media/images/2026-06-15/47193e9a-8278-4117-a6d2-8d81803ab633.png"/>
			</fig>
			<p>Сначала выполняется прогрев общего энкодера и ветви улучшения, затем стабилизируется детекция и ключевые точки, после чего включается совместное обучение с identity потерями.</p>
			<p>3. Режимы данных и функция потерь</p>
			<p>Под парным режимом понимается наличие пары «тёмное изображение, эталонное изображение» для одной сцены или одного лица. Под непарным режимом понимается отсутствие такого фотометрического эталона. Это различие не совпадает автоматически с наличием identity меток: метки личности могут присутствовать как в парном, так и в непарном сценарии. Такое разделение принципиально важно для корректного выбора супервизии.</p>
			<p>Общая функция потерь модели записывается следующим выражением:</p>
			<mml:math display="inline">
				<mml:mrow>
					<mml:mi>L</mml:mi>
					<mml:mo>=</mml:mo>
					<mml:msub>
						<mml:mi>λ</mml:mi>
						<mml:mrow>
							<mml:mrow>
								<mml:mi mathvariant="normal">e</mml:mi>
								<mml:mi mathvariant="normal">n</mml:mi>
								<mml:mi mathvariant="normal">h</mml:mi>
							</mml:mrow>
						</mml:mrow>
					</mml:msub>
					<mml:msub>
						<mml:mi>L</mml:mi>
						<mml:mrow>
							<mml:mrow>
								<mml:mi mathvariant="normal">e</mml:mi>
								<mml:mi mathvariant="normal">n</mml:mi>
								<mml:mi mathvariant="normal">h</mml:mi>
							</mml:mrow>
						</mml:mrow>
					</mml:msub>
					<mml:mo>+</mml:mo>
					<mml:msub>
						<mml:mi>λ</mml:mi>
						<mml:mrow>
							<mml:mrow>
								<mml:mi mathvariant="normal">r</mml:mi>
								<mml:mi mathvariant="normal">a</mml:mi>
								<mml:mi mathvariant="normal">d</mml:mi>
							</mml:mrow>
						</mml:mrow>
					</mml:msub>
					<mml:msub>
						<mml:mi>L</mml:mi>
						<mml:mrow>
							<mml:mrow>
								<mml:mi mathvariant="normal">r</mml:mi>
								<mml:mi mathvariant="normal">a</mml:mi>
								<mml:mi mathvariant="normal">d</mml:mi>
							</mml:mrow>
						</mml:mrow>
					</mml:msub>
					<mml:mo>+</mml:mo>
					<mml:msub>
						<mml:mi>λ</mml:mi>
						<mml:mrow>
							<mml:mrow>
								<mml:mi mathvariant="normal">d</mml:mi>
								<mml:mi mathvariant="normal">e</mml:mi>
								<mml:mi mathvariant="normal">t</mml:mi>
							</mml:mrow>
						</mml:mrow>
					</mml:msub>
					<mml:msub>
						<mml:mi>L</mml:mi>
						<mml:mrow>
							<mml:mrow>
								<mml:mi mathvariant="normal">d</mml:mi>
								<mml:mi mathvariant="normal">e</mml:mi>
								<mml:mi mathvariant="normal">t</mml:mi>
							</mml:mrow>
						</mml:mrow>
					</mml:msub>
					<mml:mo>+</mml:mo>
					<mml:msub>
						<mml:mi>λ</mml:mi>
						<mml:mrow>
							<mml:mrow>
								<mml:mi mathvariant="normal">a</mml:mi>
								<mml:mi mathvariant="normal">r</mml:mi>
								<mml:mi mathvariant="normal">c</mml:mi>
							</mml:mrow>
						</mml:mrow>
					</mml:msub>
					<mml:msub>
						<mml:mi>L</mml:mi>
						<mml:mrow>
							<mml:mrow>
								<mml:mi mathvariant="normal">a</mml:mi>
								<mml:mi mathvariant="normal">r</mml:mi>
								<mml:mi mathvariant="normal">c</mml:mi>
							</mml:mrow>
						</mml:mrow>
					</mml:msub>
					<mml:mo>+</mml:mo>
					<mml:msub>
						<mml:mi>λ</mml:mi>
						<mml:mrow>
							<mml:mrow>
								<mml:mi mathvariant="normal">i</mml:mi>
								<mml:mi mathvariant="normal">d</mml:mi>
							</mml:mrow>
						</mml:mrow>
					</mml:msub>
					<mml:msub>
						<mml:mi>L</mml:mi>
						<mml:mrow>
							<mml:mrow>
								<mml:mi mathvariant="normal">i</mml:mi>
								<mml:mi mathvariant="normal">d</mml:mi>
							</mml:mrow>
						</mml:mrow>
					</mml:msub>
					<mml:mo>+</mml:mo>
					<mml:msub>
						<mml:mi>λ</mml:mi>
						<mml:mrow>
							<mml:mrow>
								<mml:mi mathvariant="normal">c</mml:mi>
								<mml:mi mathvariant="normal">o</mml:mi>
								<mml:mi mathvariant="normal">n</mml:mi>
								<mml:mi mathvariant="normal">s</mml:mi>
							</mml:mrow>
						</mml:mrow>
					</mml:msub>
					<mml:msub>
						<mml:mi>L</mml:mi>
						<mml:mrow>
							<mml:mrow>
								<mml:mi mathvariant="normal">c</mml:mi>
								<mml:mi mathvariant="normal">o</mml:mi>
								<mml:mi mathvariant="normal">n</mml:mi>
								<mml:mi mathvariant="normal">s</mml:mi>
							</mml:mrow>
						</mml:mrow>
					</mml:msub>
				</mml:mrow>
			</mml:math>
			<p>где, [LATEX_FORMULA]L_{\text{cons}}[/LATEX_FORMULA] </p>
			<p>В парном режиме модуль улучшения естественно задаётся как сумма пиксельной, структурной и признаковой составляющих, что позволяет одновременно контролировать фотометрическое соответствие и сохранение признаков, значимых для распознавания:</p>
			<mml:math display="inline">
				<mml:mrow>
					<mml:msubsup>
						<mml:mi>L</mml:mi>
						<mml:mrow>
							<mml:mrow>
								<mml:mi mathvariant="normal">e</mml:mi>
								<mml:mi mathvariant="normal">n</mml:mi>
								<mml:mi mathvariant="normal">h</mml:mi>
							</mml:mrow>
						</mml:mrow>
						<mml:mrow>
							<mml:mrow>
								<mml:mi mathvariant="normal">p</mml:mi>
								<mml:mi mathvariant="normal">a</mml:mi>
								<mml:mi mathvariant="normal">i</mml:mi>
								<mml:mi mathvariant="normal">r</mml:mi>
							</mml:mrow>
						</mml:mrow>
					</mml:msubsup>
					<mml:mo>=</mml:mo>
					<mml:msub>
						<mml:mrow>
							<mml:mo stretchy="true" fence="true" form="prefix">‖</mml:mo>
							<mml:mi>y</mml:mi>
							<mml:mo>−</mml:mo>
							<mml:msup>
								<mml:mi>x</mml:mi>
								<mml:mrow>
									<mml:mrow>
										<mml:mi mathvariant="normal">r</mml:mi>
										<mml:mi mathvariant="normal">e</mml:mi>
										<mml:mi mathvariant="normal">f</mml:mi>
									</mml:mrow>
								</mml:mrow>
							</mml:msup>
							<mml:mo stretchy="true" fence="true" form="postfix">‖</mml:mo>
						</mml:mrow>
						<mml:mn>1</mml:mn>
					</mml:msub>
					<mml:mo>+</mml:mo>
					<mml:mi>α</mml:mi>
					<mml:mi>·</mml:mi>
					<mml:mrow>
						<mml:mo stretchy="true" fence="true" form="prefix">(</mml:mo>
						<mml:mn>1</mml:mn>
						<mml:mo>−</mml:mo>
						<mml:mrow>
							<mml:mi mathvariant="normal">S</mml:mi>
							<mml:mi mathvariant="normal">S</mml:mi>
							<mml:mi mathvariant="normal">I</mml:mi>
							<mml:mi mathvariant="normal">M</mml:mi>
						</mml:mrow>
						<mml:mo stretchy="false">(</mml:mo>
						<mml:mi>y</mml:mi>
						<mml:mo>,</mml:mo>
						<mml:msup>
							<mml:mi>x</mml:mi>
							<mml:mrow>
								<mml:mrow>
									<mml:mi mathvariant="normal">r</mml:mi>
									<mml:mi mathvariant="normal">e</mml:mi>
									<mml:mi mathvariant="normal">f</mml:mi>
								</mml:mrow>
							</mml:mrow>
						</mml:msup>
						<mml:mo stretchy="false">)</mml:mo>
						<mml:mo stretchy="true" fence="true" form="postfix">)</mml:mo>
					</mml:mrow>
					<mml:mo>+</mml:mo>
					<mml:mi>β</mml:mi>
					<mml:mi>·</mml:mi>
					<mml:msub>
						<mml:mi>L</mml:mi>
						<mml:mrow>
							<mml:mrow>
								<mml:mi mathvariant="normal">f</mml:mi>
								<mml:mi mathvariant="normal">e</mml:mi>
								<mml:mi mathvariant="normal">a</mml:mi>
								<mml:mi mathvariant="normal">t</mml:mi>
							</mml:mrow>
						</mml:mrow>
					</mml:msub>
					<mml:mo stretchy="false">(</mml:mo>
					<mml:mi>y</mml:mi>
					<mml:mo>,</mml:mo>
					<mml:msup>
						<mml:mi>x</mml:mi>
						<mml:mrow>
							<mml:mrow>
								<mml:mi mathvariant="normal">r</mml:mi>
								<mml:mi mathvariant="normal">e</mml:mi>
								<mml:mi mathvariant="normal">f</mml:mi>
							</mml:mrow>
						</mml:mrow>
					</mml:msup>
					<mml:mo stretchy="false">)</mml:mo>
				</mml:mrow>
			</mml:math>
			<p>Коэффициенты α и β регулируют вклад структурной и признаковой частей. В непарном режиме вместо прямого эталона используются zero reference регуляризаторы, ориентированные на самосогласованность и корректное поведение улучшателя без явного фотометрического образца:</p>
			<mml:math display="inline">
				<mml:mrow>
					<mml:msub>
						<mml:mi>L</mml:mi>
						<mml:mrow>
							<mml:mrow>
								<mml:mi mathvariant="normal">e</mml:mi>
								<mml:mi mathvariant="normal">n</mml:mi>
								<mml:mi mathvariant="normal">h</mml:mi>
							</mml:mrow>
						</mml:mrow>
					</mml:msub>
					<mml:mo>=</mml:mo>
					<mml:msubsup>
						<mml:mi>L</mml:mi>
						<mml:mrow>
							<mml:mrow>
								<mml:mi mathvariant="normal">e</mml:mi>
								<mml:mi mathvariant="normal">n</mml:mi>
								<mml:mi mathvariant="normal">h</mml:mi>
							</mml:mrow>
						</mml:mrow>
						<mml:mrow>
							<mml:mrow>
								<mml:mi mathvariant="normal">p</mml:mi>
								<mml:mi mathvariant="normal">a</mml:mi>
								<mml:mi mathvariant="normal">i</mml:mi>
								<mml:mi mathvariant="normal">r</mml:mi>
							</mml:mrow>
						</mml:mrow>
					</mml:msubsup>
					<mml:mo>,</mml:mo>
					<mml:mtext> </mml:mtext>
					<mml:mtext>если доступна пара </mml:mtext>
					<mml:mo stretchy="false">(</mml:mo>
					<mml:mi>x</mml:mi>
					<mml:mo>,</mml:mo>
					<mml:msup>
						<mml:mi>x</mml:mi>
						<mml:mrow>
							<mml:mrow>
								<mml:mi mathvariant="normal">r</mml:mi>
								<mml:mi mathvariant="normal">e</mml:mi>
								<mml:mi mathvariant="normal">f</mml:mi>
							</mml:mrow>
						</mml:mrow>
					</mml:msup>
					<mml:mo stretchy="false">)</mml:mo>
				</mml:mrow>
			</mml:math>
			<mml:math display="inline">
				<mml:mrow>
					<mml:msub>
						<mml:mi>L</mml:mi>
						<mml:mrow>
							<mml:mo>−</mml:mo>
						</mml:mrow>
					</mml:msub>
					<mml:mi>e</mml:mi>
					<mml:mi>n</mml:mi>
					<mml:mi>h</mml:mi>
					<mml:mo>=</mml:mo>
					<mml:mi>L</mml:mi>
					<mml:mi>_</mml:mi>
					<mml:mi>Z</mml:mi>
					<mml:mo stretchy="false">(</mml:mo>
					<mml:mi>y</mml:mi>
					<mml:mo stretchy="false">)</mml:mo>
					<mml:mo>,</mml:mo>
					<mml:mtext> если пары нет </mml:mtext>
				</mml:mrow>
			</mml:math>
			<p>Аналогично adversarial часть включается только в том случае, если выбран GAN режим:</p>
			<mml:math display="inline">
				<mml:mrow>
					<mml:msub>
						<mml:mi>L</mml:mi>
						<mml:mrow>
							<mml:mrow>
								<mml:mi mathvariant="normal">a</mml:mi>
								<mml:mi mathvariant="normal">d</mml:mi>
								<mml:mi mathvariant="normal">v</mml:mi>
							</mml:mrow>
						</mml:mrow>
					</mml:msub>
					<mml:mo>=</mml:mo>
					<mml:mn>0</mml:mn>
					<mml:mo>,</mml:mo>
					<mml:mtext> </mml:mtext>
					<mml:mtext>если GAN не используется</mml:mtext>
				</mml:mrow>
			</mml:math>
			<p>Таким образом, непарность относится только к отсутствию фотометрического эталона и не отменяет возможность supervision для распознавания [2], [4]. Это позволяет разделять источник данных для улучшения и источник сигналов для идентификации без логических противоречий.</p>
			<p>4. Балансировка
многокомпонентной оптимизации</p>
			<p>Поскольку отдельные функции потерь могут формировать разнонаправленные градиенты, статический подбор коэффициентов не всегда приводит к устойчивому обучению. Один из практических вариантов заключается в использовании обучаемых весов, связанных с гомоскедастической неопределённостью:</p>
			<mml:math display="inline">
				<mml:mrow>
					<mml:mi>L</mml:mi>
					<mml:mo>=</mml:mo>
					<mml:msubsup>
						<mml:mo>∑</mml:mo>
						<mml:mrow>
							<mml:mi>i</mml:mi>
							<mml:mo>=</mml:mo>
							<mml:mn>1</mml:mn>
						</mml:mrow>
						<mml:mrow>
							<mml:mi>N</mml:mi>
						</mml:mrow>
					</mml:msubsup>
					<mml:mrow>
						<mml:mo stretchy="true" fence="true" form="prefix">(</mml:mo>
						<mml:mfrac>
							<mml:mrow>
								<mml:mn>1</mml:mn>
							</mml:mrow>
							<mml:mrow>
								<mml:mn>2</mml:mn>
								<mml:msubsup>
									<mml:mi>σ</mml:mi>
									<mml:mi>i</mml:mi>
									<mml:mn>2</mml:mn>
								</mml:msubsup>
							</mml:mrow>
						</mml:mfrac>
						<mml:msub>
							<mml:mi>L</mml:mi>
							<mml:mi>i</mml:mi>
						</mml:msub>
						<mml:mo>+</mml:mo>
						<mml:mi>log</mml:mi>
						<mml:mo stretchy="false">(</mml:mo>
						<mml:msub>
							<mml:mi>σ</mml:mi>
							<mml:mi>i</mml:mi>
						</mml:msub>
						<mml:mo stretchy="false">)</mml:mo>
						<mml:mo stretchy="true" fence="true" form="postfix">)</mml:mo>
					</mml:mrow>
				</mml:mrow>
			</mml:math>
			<p>В этом выражении [LATEX_FORMULA]\sigma_i[/LATEX_FORMULA] обозначают обучаемые параметры, а индекс i соответствует отдельным задачам модели, например улучшению, детекции и распознаванию [10]. Такая форма позволяет автоматически перераспределять вклад задач по мере обучения. В качестве альтернативы может использоваться подход GradNorm, в котором контролируются нормы градиентов по общим параметрам:</p>
			<mml:math display="inline">
				<mml:mrow>
					<mml:msub>
						<mml:mi>G</mml:mi>
						<mml:mi>i</mml:mi>
					</mml:msub>
					<mml:mo>=</mml:mo>
					<mml:msub>
						<mml:mo>∇</mml:mo>
						<mml:mi>w</mml:mi>
					</mml:msub>
					<mml:mrow>
						<mml:mo stretchy="true" fence="true" form="prefix">(</mml:mo>
						<mml:msub>
							<mml:mi>w</mml:mi>
							<mml:mi>i</mml:mi>
						</mml:msub>
						<mml:msubsup>
							<mml:mi>L</mml:mi>
							<mml:mi>i</mml:mi>
							<mml:mn>2</mml:mn>
						</mml:msubsup>
						<mml:mo stretchy="true" fence="true" form="postfix">)</mml:mo>
					</mml:mrow>
				</mml:mrow>
			</mml:math>
			<p>Здесь </p>
			<mml:math display="inline">
				<mml:mrow>
					<mml:msub>
						<mml:mi>w</mml:mi>
						<mml:mi>i</mml:mi>
					</mml:msub>
				</mml:mrow>
			</mml:math>
			<p>—[10]</p>
			<p>Результаты. Результатом проведённого анализа является непротиворечивая архитектурная схема, в которой улучшение, детекция и распознавание связаны через общий энкодер и согласованные функции потерь. По сравнению с каскадным конвейером предложенная постановка допускает прямое влияние задач детекции и распознавания на формирование общего пространства признаков. Это означает, что модуль улучшения оптимизируется не только по фотометрическим критериям, но и с учётом требований к локализации и устойчивости эмбеддингов </p>
			<p>[7]</p>
			<p>Существенным результатом является устранение логической проблемы замкнутого круга identity loss. Показано, что использование эмбеддинга тёмного входа в качестве эталона методологически ненадёжно, тогда как парный эталон и teacher student схема формируют более устойчивые и интерпретируемые цели для оптимизации </p>
			<p>[1][9][6][8]</p>
			<p>Отдельный результат связан с вычислительной организацией системы. Если головы детекции и распознавания подключены непосредственно к общему энкодеру, декодер улучшения может быть отключён на этапе инференса без потери основной функциональности, при условии, что обучение проводилось в том же режиме и градиенты от задач детекции и распознавания действительно влияли на общий энкодер. Это делает предложенную архитектуру применимой не только для офлайн обработки, но и для сценариев с ограниченным вычислительным бюджетом.</p>
			<p>Дополнительным результатом является повышение отказоустойчивости за счёт гейтинга по уверенности детектора. Пусть </p>
			<mml:math display="inline">
				<mml:mrow>
					<mml:msub>
						<mml:mi>s</mml:mi>
						<mml:mi>i</mml:mi>
					</mml:msub>
				</mml:mrow>
			</mml:math>
			<code>[LATEX_FORMULA]g(s_i) = \sigma\bigl(k(s_i - \tau)\bigr), \quad k &amp;gt; 0[/LATEX_FORMULA]</code>
			<p>Соответствующий гейтированный identity loss принимает вид:</p>
			<mml:math display="inline">
				<mml:mrow>
					<mml:msubsup>
						<mml:mi>L</mml:mi>
						<mml:mrow>
							<mml:mrow>
								<mml:mi mathvariant="normal">i</mml:mi>
								<mml:mi mathvariant="normal">d</mml:mi>
							</mml:mrow>
						</mml:mrow>
						<mml:mrow>
							<mml:mrow>
								<mml:mi mathvariant="normal">g</mml:mi>
								<mml:mi mathvariant="normal">a</mml:mi>
								<mml:mi mathvariant="normal">t</mml:mi>
								<mml:mi mathvariant="normal">e</mml:mi>
							</mml:mrow>
						</mml:mrow>
					</mml:msubsup>
					<mml:mo>=</mml:mo>
					<mml:msub>
						<mml:mo>∑</mml:mo>
						<mml:mrow>
							<mml:mi>i</mml:mi>
						</mml:mrow>
					</mml:msub>
					<mml:mi>g</mml:mi>
					<mml:mo stretchy="false">(</mml:mo>
					<mml:msub>
						<mml:mi>s</mml:mi>
						<mml:mi>i</mml:mi>
					</mml:msub>
					<mml:mo stretchy="false">)</mml:mo>
					<mml:mo stretchy="false">(</mml:mo>
					<mml:mn>1</mml:mn>
					<mml:mo>−</mml:mo>
					<mml:mi>cos</mml:mi>
					<mml:mo stretchy="false">(</mml:mo>
					<mml:msub>
						<mml:mi>z</mml:mi>
						<mml:mrow>
							<mml:mi>s</mml:mi>
							<mml:mo>,</mml:mo>
							<mml:mi>i</mml:mi>
						</mml:mrow>
					</mml:msub>
					<mml:mo>,</mml:mo>
					<mml:msub>
						<mml:mi>z</mml:mi>
						<mml:mrow>
							<mml:mi>τ</mml:mi>
							<mml:mo>,</mml:mo>
							<mml:mi>i</mml:mi>
						</mml:mrow>
					</mml:msub>
					<mml:mo stretchy="false">)</mml:mo>
					<mml:mo stretchy="false">)</mml:mo>
				</mml:mrow>
			</mml:math>
			<p>Аналогичным образом определяется и гейтированная ArcFace потеря:</p>
			<mml:math display="inline">
				<mml:mrow>
					<mml:msubsup>
						<mml:mi>L</mml:mi>
						<mml:mrow>
							<mml:mrow>
								<mml:mi mathvariant="normal">a</mml:mi>
								<mml:mi mathvariant="normal">r</mml:mi>
								<mml:mi mathvariant="normal">c</mml:mi>
							</mml:mrow>
						</mml:mrow>
						<mml:mrow>
							<mml:mrow>
								<mml:mi mathvariant="normal">g</mml:mi>
								<mml:mi mathvariant="normal">a</mml:mi>
								<mml:mi mathvariant="normal">t</mml:mi>
								<mml:mi mathvariant="normal">e</mml:mi>
							</mml:mrow>
						</mml:mrow>
					</mml:msubsup>
					<mml:mo>=</mml:mo>
					<mml:msub>
						<mml:mo>∑</mml:mo>
						<mml:mrow>
							<mml:mi>i</mml:mi>
						</mml:mrow>
					</mml:msub>
					<mml:mi>g</mml:mi>
					<mml:mo stretchy="false">(</mml:mo>
					<mml:msub>
						<mml:mi>s</mml:mi>
						<mml:mi>i</mml:mi>
					</mml:msub>
					<mml:mo stretchy="false">)</mml:mo>
					<mml:msub>
						<mml:mi>L</mml:mi>
						<mml:mrow>
							<mml:mrow>
								<mml:mi mathvariant="normal">a</mml:mi>
								<mml:mi mathvariant="normal">r</mml:mi>
								<mml:mi mathvariant="normal">c</mml:mi>
							</mml:mrow>
							<mml:mo>,</mml:mo>
							<mml:mi>i</mml:mi>
						</mml:mrow>
					</mml:msub>
				</mml:mrow>
			</mml:math>
			<p>Такая форма ослабляет влияние распознавания на ранних и слабодетектируемых примерах, не отключая распознаватель полностью и не разрушая совместную оптимизацию.</p>
			<p>Предложенная схема показывает, что ключевые инженерные риски в задачах low light распознавания лиц определяются не столько выбором конкретного backbone, сколько согласованием источников супервизии и моментом включения распознавательных термов. Если identity loss привязан к нестабильному эмбеддингу тёмного входа, система получает ошибочную цель вне зависимости от мощности генератора. Напротив, при использовании согласованных признаков общего энкодера и при подключении identity термов только после стабилизации landmarks архитектура становится существенно более устойчивой как с методологической, так и с вычислительной точки зрения.</p>
			<p>Не менее важна и вычислительная организация модели. Shared encoder с прямыми подключениями к головам детекции и распознавания уменьшает избыточную стоимость обработки, а возможность отключения декодера на инференсе делает схему пригодной для практических систем, где критичны время отклика и объём памяти. Дополнительный гейтинг распознавательных потерь по уверенности детектора естественным образом учитывает качество наблюдения и снижает риск разрушительных градиентов на ранних стадиях обучения.</p>
			<p>Дополнительное методологическое значение предложенной архитектуры состоит в том, что она позволяет явно развести фотометрическую и биометрическую составляющие задачи, не разрывая их на уровне обучения. В классических каскадах между этими составляющими обычно отсутствует обратная связь: модуль улучшения стремится восстановить визуальную разборчивость кадра, а распознаватель лишь пассивно принимает полученный результат. В рассматриваемой схеме, напротив, улучшение подчиняется требованиям последующих задач и тем самым оптимизируется в контексте конечной цели. Это особенно важно для сцен с неравномерным освещением, локальными пересветами, тенями и сенсорным шумом, где визуально «приятное» восстановление не всегда совпадает с сохранением идентичностно значимых микропризнаков. Следовательно, даже без проведения экспериментальной части уже на уровне архитектурного анализа можно утверждать, что согласование источников супервизии и последовательности включения потерь является критическим условием устойчивой работы системы.</p>
			<p>Практическая перспектива дальнейшей верификации такой модели связана с поэтапной экспериментальной проверкой на наборах данных, содержащих как контролируемые, так и естественные низкоосвещённые сцены. На первом этапе необходимо подтвердить устойчивость детекции и корректность landmarks после прогрева и регуляризации, на втором этапе — оценить влияние парного и непарного режимов на сохранение идентичности, а на третьем этапе — сопоставить качество распознавания при включённом и отключённом декодере улучшения на инференсе. Подобная стратегия не меняет предложенную архитектурную логику, но позволяет последовательно проверить те допущения, которые были сформулированы в данной статье на теоретическом уровне. Тем самым предложенная схема выступает не только как концептуальная модель, но и как практически пригодный каркас для построения последующих экспериментальных протоколов.</p>
			<p>5. Заключение</p>
			<p>Предложенная сквозная архитектура объединяет улучшение изображения, детекцию и распознавание лиц в единый вычислительный контур и устраняет ключевые противоречия, характерные для каскадных схем. Основной вклад работы состоит в том, что улучшение рассматривается не как внешняя предобработка, а как часть процесса формирования биометрически полезного представления. Благодаря этому фотометрическая коррекция связывается с требованиями к точности детекции и к устойчивости эмбеддингов.</p>
			<p>Показано, что наиболее критичным риском является использование нестабильного тёмного эмбеддинга как эталона для identity loss. Для устранения этого риска предложены два согласованных режима: первый основан на парном эталонном изображении, второй использует teacher student дистилляцию с momentum teacher. Кроме того, обоснована необходимость ранней стабилизации landmarks, адаптивного взвешивания многокомпонентной функции потерь и гейтинга распознавательных термов по уверенности детектора.</p>
			<p>С практической точки зрения наибольший интерес представляет вариант с общим энкодером и прямыми подключениями голов детекции и распознавания, поскольку он позволяет отключать декодер улучшения на этапе инференса и тем самым снижать вычислительную нагрузку. Следовательно, сформулированная архитектурная схема может служить основой для дальнейшей программной реализации, экспериментальной верификации и прикладного внедрения в задачах распознавания лиц при низкой освещённости.</p>
		</sec>
		<sec sec-type="supplementary-material">
			<title>Additional File</title>
			<p>The additional file for this article can be found as follows:</p>
			<supplementary-material xmlns:xlink="http://www.w3.org/1999/xlink" id="S1" xlink:href="https://doi.org/10.5334/cpsy.78.s1">
				<!--[<inline-supplementary-material xlink:title="local_file" xlink:href="https://research-journal.org/media/articles/24456.docx">24456.docx</inline-supplementary-material>]-->
				<!--[<inline-supplementary-material xlink:title="local_file" xlink:href="https://research-journal.org/media/articles/24456.pdf">24456.pdf</inline-supplementary-material>]-->
				<label>Online Supplementary Material</label>
				<caption>
					<p>
						Further description of analytic pipeline and patient demographic information. DOI:
						<italic>
							<uri>https://doi.org/10.60797/IRJ.2026.168.4</uri>
						</italic>
					</p>
				</caption>
			</supplementary-material>
		</sec>
	</body>
	<back>
		<ack>
			<title>Acknowledgements</title>
			<p/>
		</ack>
		<sec>
			<title>Competing Interests</title>
			<p/>
		</sec>
		<ref-list>
			<ref id="B1">
				<label>1</label>
				<mixed-citation publication-type="confproc">Chen C. Learning to see in the dark / C. Chen, Q. Chen Q., J. Xu, V. Koltun // In: Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. — 2018. — № 16. DOI: 10.1109/CVPR.2018.00347. [in English]</mixed-citation>
			</ref>
			<ref id="B2">
				<label>2</label>
				<mixed-citation publication-type="confproc">Guo C. Zero-reference deep curve estimation for low-light image enhancement / C. Guo, C. Li, J. Guo // 2020 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR). — 2020. — DOI: 10.1109/CVPR42600.2020.00185.</mixed-citation>
			</ref>
			<ref id="B3">
				<label>3</label>
				<mixed-citation publication-type="confproc">Ma L. Toward fast, flexible, and robust low-light image enhancement / L. Ma, T. Ma, R. Liu // Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. — 2022. — DOI: 10.1109/CVPR52688.2022.00555.</mixed-citation>
			</ref>
			<ref id="B4">
				<label>4</label>
				<mixed-citation publication-type="confproc">Jiang Y. EnlightenGAN: deep light enhancement without paired supervision / Y. Jiang , X. Gong, D. Liu // IEEE Transactions on Image Processing. — 2021. — № 30. — с. 2340-23-49. DOI: 10.1109/TIP.2021.3051462. [in English]</mixed-citation>
			</ref>
			<ref id="B5">
				<label>5</label>
				<mixed-citation publication-type="confproc">Deng J. ArcFace: additive angular margin loss for deep face recognition / J. Deng , J. Guo, N. Xue , S. Zafeiriou // Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. — 2019. — № 22. DOI: 10.1109/CVPR.2019.00482. [in English]</mixed-citation>
			</ref>
			<ref id="B6">
				<label>6</label>
				<mixed-citation publication-type="confproc">Deng J. RetinaFace: single-shot multi-level face localisation in the wild / J. Deng , J. Guo , E. Ververas , I. Kotsia, S. Zafeiriou // Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. — 2020. — № 6. DOI: 10.1109/CVPR42600.2020.00525. [in English]</mixed-citation>
			</ref>
			<ref id="B7">
				<label>7</label>
				<mixed-citation publication-type="confproc">Wang W. HLA-Face: joint high-low adaptation for low-light face detection / W. Wang , W. Yang , J. Liu // Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. — 2021. — № 77. DOI: 10.1109/CVPR46437.2021.01593. [in English]</mixed-citation>
			</ref>
			<ref id="B8">
				<label>8</label>
				<mixed-citation publication-type="confproc">Визильтер Ю.В. Одноэтапный детектор лиц и особых точек на цифровых изображениях / Ю.В. Визильтер , В.С. Горбацевич, А.С. Моисеенко // Компьютерная оптика. — 2020. — № 44 (4). — с. 589–595. DOI: 10.18287/2412-6179-CO-674.</mixed-citation>
			</ref>
			<ref id="B9">
				<label>9</label>
				<mixed-citation publication-type="confproc">Tarvainen A. Mean teachers are better role models: weight-averaged consistency targets improve semi-supervised deep learning results / A. Tarvainen, H. Valpola // arXiv. — 2017. — DOI: 10.48550/arXiv.1703.01780</mixed-citation>
			</ref>
			<ref id="B10">
				<label>10</label>
				<mixed-citation publication-type="confproc">Kendall A. Multi-task learning using uncertainty to weigh losses for scene geometry and semantics / A. Kendall , Y. Gal , R. Cipolla // Proceedings of the IEEE/CVF. — 2018. — № 21. DOI: 10.1109/CVPR.2018.00781. [in English]</mixed-citation>
			</ref>
		</ref-list>
	</back>
	<fundings/>
</article>