Как варить щи из свежей капусты: вкусные и простые рецепты. Что такое щи

Распознаванием лиц в 2018 году никого не удивишь – каждый студент, может, даже школьник, его делал. Но всё становится немного сложнее, когда у вас не датасет на 1 млн пользователей, а:

  • 330 миллионов пользовательских аккаунтов;
  • ежедневно заливается 20 млн пользовательских фотографий;
  • максимальное время на обработку одного фото не должно превышать 0.2 сек ;
  • ограниченные объемы оборудования для решения задачи.

В этой статье мы поделимся опытом разработки и запуска системы распознавания лиц на пользовательских фотографиях в социальной сети Одноклассники и расскажем про все ”от А до Я”:

  • математический аппарат;
  • техническую реализацию;
  • результаты запуска;
  • и акцию StarFace , которую мы использовали для PR-а нашего решения.

Задача

Более 330 млн аккаунтов зарегистрировано в Одноклассниках, в этих аккаунтах содержится более 30 млрд фото.


Пользователи ОК заливают 20 млн фото в сутки. На 9 млн загруженных за сутки фотографий присутствуют лица, а всего детектируется 23 млн лиц. То есть, в среднем 2.5 лица на фотографию, содержащую хотя бы одно лицо.


У пользователей есть возможность отмечать людей на фотографии, но обычно они ленятся. Мы решили автоматизировать поиск друзей на фотографиях, чтобы увеличить информированность пользователя о загруженных с ним фотографиях и объем фидбека для пользовательских фотографий.



Система распознавания пользователей в соц сети

Распознавание лиц на загруженном фото

Пользователь загружает фото с любого клиента (с браузера или мобильных приложений iOS, Android), оно попадает на детектор, задача которого найти лица и выровнять их.


После детектора нарезанные и предобработанные лица попадают на нейросетевой распознаватель, который строит характеристический профиль лица пользователя. После этого происходит поиск наиболее похожего профиля в базе. Если степень похожести профилей больше граничного значения, то пользователь автоматически детектируется, и мы отсылаем ему уведомление, что он есть на фото.



Рисунок 1. Распознавание пользователей на фото


Перед тем, как запустить автоматические распознавание, нужно создать профиль каждого пользователя и заполнить базу.

Построение пользовательских профилей

Для работы алгоритмов распознавания лиц, достаточно всего одной фотографии, например аватарки. Но будет ли эта аватарка содержать фото профиля? Пользователи ставят на аватарки фотографии звёзд, а профили изобилуют мемасиками или содержат только групповые фотографии.



Рисунок 2. Трудный профиль


Рассмотрим профиль пользователя, состоящий только из групповых фотографий.
Определить владельца аккаунта (рис. 2) можно если учитывать его пол и возраст, а также друзей, профили которых были построены ранее.



Рисунок 3. Построение пользовательских профилей


Мы строили профиль пользователя следующим образом (Рис. 3):


1) Выбирали наиболее качественные фотографии пользователя


Если фотографий было слишком много, мы использовали не более ста лучших.
Качество фотографий определяли на основе:

  • наличия отметок пользователей на фото (фотопинов) ручным способом;
  • метаинформации фотографии (фото загружено с мобильного телефона, снято на фронтальную камеру, в отпуске, ...);
  • фото было на аватарке

2) Искали на этих фотографиях лица

  • не страшно, если это будут другие пользователи (на шаге 4 мы их отфильтруем)

3) Вычисляли характеристический вектор лица

  • такой вектор называется эмбеддингом

4) Производили кластеризацию векторов


Задача этой кластеризации – определить, какой именно набор векторов принадлежит владельцу аккаунта. Основная проблема – это наличие друзей и родственников на фотографиях. Для кластеризации мы используем алгоритм DBScan.


5) Определяли лидирующий кластер


Для каждого кластера мы считали вес на основании:

  • размера кластера;
  • качества фотографий, по которым построены эмбеддинги в кластере;
  • наличия фотопинов, привязанных к лицам из кластера;
  • соответствия пола и возраста лиц в кластере с информаций из профиля;
  • близость центроида кластера к профилям друзей, вычисленным ранее.

Коэффициенты параметров, участвующих в вычислении веса кластера обучим линейной регрессией. Честный пол и возраст профиля – отдельная сложная задача, об этом расскажем далее.


Чтобы кластер считался лидером, нужно чтобы его вес был больше ближайшего конкурента на константу, рассчитанную на обучающей выборке. Если лидер не найден, мы еще раз переходим к пункту 2, но используем большее число фотографий. Для некоторых пользователей мы сохраняли два кластера. Такое бывает для совместных профилей - некоторые семьи имеют общий профиль.


6) Получали эмбеддинги пользователя по его кластерам

  • Наконец, строим вектор, который будет характеризовать внешность владельца аккаунта, – “эмбеддинг пользователя”.

Эмбеддинг пользователя – это центроид отобранного для него (лидирующего) кластера.
Строить центроиды можно множеством разных способов. После многочисленных экспериментов мы вернулись к самому простому из них: усреднение входящих в кластер векторов.


Как и кластеров, эмбеддингов у пользователя может быть несколько.


За время итерации мы обработали восемь миллиардов фото, проитерировали 330 млн профилей и построили эмбеддинги для трехсот миллионов аккаунтов. В среднем, для построения одного профиля мы обрабатывали 26 фотографий. При этом для построения вектора достаточно даже одной фотографии, но чем больше фото, тем больше наша уверенность, что построенный профиль принадлежит именно владельцу аккаунта.


Процесс построения всех профилей на портале мы производили несколько раз, так как наличие информации о друзьях повышает качество выбора кластера.
Объем данных необходимый для хранения векторов ~300 GB.

Детектор лиц

Первую версию детектора лиц ОК запустили в 2013 году на базе стороннего решения, схожего по характеристикам с детектором на базе метода Виолы - Джонса. За 5 лет это решение устарело, современные решения, основанные на MTCNN , показывают точность в два раза выше. Поэтому мы решили следовать трендам и построили свой каскад из сверточных нейронных сетей (MTCNN).


Для работы старого детектора мы использовали более 100 “стареньких” серверов с CPU. Практически все современные алгоритмы нахождения лиц на фото основаны на свёрточных нейронных сетях, которые наиболее эффективно работают на GPU. Закупить большое число видеокарт мы не имели возможности по объективным причинам: дорого все скупили майнеры. Решено было запускаться c детектором на CPU (ну не выкидывать же сервера).


Для детектирования лиц на заливаемых фотографиях мы используем кластер из 30 машин (остальные пропили сдали в утиль). Детектирование при построении пользовательских векторов (итерации по аккаунтам) мы делаем на 1000 виртуальных ядрах с низким приоритетом в нашем облаке. Облачное решение детально описано в докладе Олега Анастасьева : One-cloud - ОС уровня дата-центра в Одноклассниках .


При анализе времени работы детектора мы столкнулись с таким худшим случаем: сеть верхнего уровня пропускает слишком много кандидатов на следующий уровень каскада, и детектор начинает работать долго. Например, время поиска достигает 1.5 секунд на таких фотографиях:



Рисунок 4. Примеры большого количества кандидатов после первой сети в каскаде


Оптимизируя этот случай, мы высказали предположение, что на фотографии обычно немного лиц. Поэтому, после первого этапа каскада мы оставляем не больше 200 кандидатов, опираясь на уверенность соответствующей нейросети в том, что это лицо.
Такая оптимизация уменьшила время худшего случая до 350 мс, то есть в 4 раза.


Применив пару оптимизаций (например, заменив Non-Maximum Suppression после первой ступени каскада на фильтрацию на основе Blob detection), разогнали детектор ещё в 1.4 раза без потери качества.
Впрочем прогресс на месте тоже не стоял, и сейчас искать лица на фото принято более элегантными методами - см. FaceBoxes . Не исключаем, что в ближайшее время и мы переедем на нечто подобное.

Распознаватель лиц

При разработке системы распознавателя мы экспериментировали с несколькими архитектурами: Wide ResNet , Inception-ResNet , Light CNN .
Немного лучше остальных себя показала Inception-ResNet, пока остановились на ней.


Для работы алгоритма нужна обученная нейронная сеть. Её можно найти на просторах интернета, купить, либо обучить самим. Для обучения нейронных сетей необходим некоторый набор данных (датасет), на котором происходит обучение и валидация. Так как распознавание лиц - известная задача, для неё уже существуют готовые датасеты: MSCeleb, VGGFace/VGGFace2, MegaFace. Однако, тут вступает в дело суровая реальность: обобщающая способность современных нейросетей в задачах идентификации по лицу (да и вообще) оставляет желать лучшего.
А на нашем портале лица сильно отличаются от того, что можно найти в открытых датасетах:

  • Иное распределение возрастов – на наших фото есть дети;
  • Другое распределение этносов;
  • Попадаются лица в очень низком качестве и разрешении (фото с телефона, снятые 10 лет назад, групповые фото).

Третий пункт легко побороть, искусственно уменьшив разрешение и наложив артефакты jpeg-а, а вот остальное качественно сэмулировать не получится.
Поэтому мы решили составить собственный датасет.


В процессе построения набора методом проб и ошибок мы пришли к такой процедуре:

  1. Выкачиваем фото из ~100k открытых профилей
    Профили выбираем случайно, минимизируя количество тех, кто состоит друг с другом в дружеских отношениях. Вследствие этого считаем, что каждый человек из датасета появляется только в одном профиле
  2. Строим вектора (эмбеддинги) лиц
    Для построения эмбеддингов используем предобученную опенсорсную нейросеть (мы взяли отсюда).
  3. Кластеризуем лица в рамках каждого аккаунта
    Пара очевидных наблюдений:

    • Мы не знаем, сколько разных людей появляются на фото из аккаунта. Следовательно, кластеризатор не должен требовать количество кластеров в качестве гиперпараметра.
    • В идеале для лиц одного и того же человека надеемся получить очень похожие вектора, образующие плотные сферические кластеры. Но Вселенной нет дела до наших чаяний, и на практике эти кластера расползаются в замысловатые формы (например, для человека в очках и без кластер обычно состоит из двух сгустков). Поэтому centroid-based методы тут нам не помогут, нужно использовать density-based.

      По этим двум причинам и результатам экспериментов выбрали DBSCAN . Гиперпараметры подбирали руками и валидировали глазами, тут всё стандартно. Для самого главного из них – eps в терминах scikit-learn – придумали простенькую эвристику от количества лиц в аккаунте.

  4. Фильтруем кластера
    Основные источники загрязнения датасета и как мы с ними боролись:

    • Иногда лица разных людей сливаются в один кластер (из-за несовершенства нейросети-рекогнайзера и density-based природы DBSCAN-а).
      Помогла нам простейшая перестраховка: если два или более лиц в кластере пришли из одной фотографии, мы такой кластер на всякий случай выкидывали.
      Это значит, любители селфи-коллажей в наш датасет не попадали, но оно того стоило, ибо количество ложных “слияний” уменьшилось в разы.
    • Случается и обратное: одно и то же лицо образует несколько кластеров (например, когда есть фотографии в очках и без, в макияже и без и т.д.).
      Здравый смысл и эксперименты привели нас к следующему. Измеряем расстояние между центроидами пары кластеров. Если оно больше определённого порога - объединяем, если достаточно велико, но порог не проходит - выкидываем один из кластеров от греха подальше.
    • Бывает, детектор ошибается, и в кластерах оказываются вовсе не лица.
      К счастью, нейросеть-распознаватель легко заставить фильтровать такие ложные срабатывания. Подробнее об этом ниже.
  5. Дообучаем нейросеть на том, что получилось, возвращаемся с ней к пункту 2
    Повторять 3-4 раза до готовности.
    Постепенно сеть становится лучше, и на последних итерациях надобность в наших эвристиках для фильтрации вовсе отпадает.

Решив, что чем разнообразнее, тем лучше – подмешиваем к нашему новенькому датасету (3.7M лиц, 77K людей; кодовое название - OKFace) что-нибудь ещё.
Самым полезным чем-нибудь ещё оказался VGGFace2 – достаточно большой и сложный (повороты, освещение). Как водится, составлен из найденных в Гугле фото знаменитостей. Неудивительно, что очень “грязный”. К счастью, почистить его дообученной на OKFace нейросетью – дело тривиальное.

Функция потерь

Хорошая функция потерь для Embedding learning – всё ещё открытая задача. Мы попытались подойти к ней, опираясь на следующее положение: нужно стремиться, чтобы функция потерь максимально соответствовала тому, как модель будет использоваться после обучения


А использоваться наша сеть будет самым стандартным образом.


При нахождении на фото лица его эмбеддинг будет сравниваться с центроидами из профилей кандидатов (самого пользователя + его друзей) по косинусному расстоянию. Если , то заявляем, что на фото - кандидат номер .


Соответственно, хотим, чтобы:



Отклонение от этого идеала будем наказывать по квадрату, потому что все так делают эмпирически так оказалось лучше. То же самое на языке формул:


А сами центроиды – это просто параметры нейросети, обучаются, как и всё остальное, градиентным спуском.


У такой функции потерь есть свои проблемы. Во-первых, она плохо подходит для обучения с нуля. Во-вторых, подбирать целых два параметра - и - довольно утомительно. Тем не менее, дообучение с её использованием позволило добиться более высокой точности, чем остальными известными нам функциями: Center Loss , Contrastive-Center Loss , LMCL (CosFace) .

И стоило оно того?


цифры в таблице - средние результаты 10 замеров +-стандартное отклонение


Важный для нас показатель - TP@FP: какой процент лиц мы опознаем при фиксированной доле ложных срабатываний (здесь - 0.1%).
С лимитом ошибок 1 на 1000 и без дообучения нейросети на нашем датасете мы могли распознавать лишь половину лиц на портале.

Минимизируем ложные срабатывания детектора

Детектор порой находит лица там, где их нет, причём на пользовательских фото делает это часто (4% срабатываний ложные).
Довольно неприятно, когда такой “мусор” попадает в тренировочный датасет.
Очень неприятно, когда мы настойчиво просим наших пользователей “отметить друга” в букете роз или на текстуре ковра.
Решить проблему можно, и самый очевидный способ – собрать побольше не-лиц и прогнать через нейросеть-рекогнайзер их выявлять.


Мы же по обыкновению решили начать с быстрого костыля:




Интересно здесь то, что сеть-распознаватель отправляет всё разнообразие не-лиц всего в несколько областей в пространстве эмбеддингов, хотя её такому никто не учил.

Все врут или определение реального возраста и пола в социальной сети

Пользователи часто не указывают свой возраст или указывают его неправильно. Поэтому возраст пользователя будем оценивать используя его граф друзей. Тут нам поможет кластеризация возрастов друзей: в общем случае возраст пользователя в наибольшем кластере возрастов его друзей, а с определением пола нам помогли имена и фамилии.

Архитектура решения

Так как вся внутренняя инфраструктура ОК построена на Java, то и все компоненты мы завернем в Java. Inference на detector и recognizer работает под управлением TensorFlow через Java API. Detector работает на CPU так как удовлетворяет нашим требованиям и работает на уже имеющемся оборудовании. Для Recognizer-а мы установили 72 GPU карты, так как запуск Inception-ResNet не целесообразен на CPU с точки зрения ресурсов.


В качестве базы данных для хранения векторов пользователя используем Cassandra.
Так как суммарный объем векторов всех пользователей портала ~300Gb, то для быстрого доступа к векторам добавляем кэш. Кэш реализован в off-heap, детали можно прочитать в статье Андрея Паньгина : «Использование разделяемой памяти в Java и off-heap кеширование ».


Построенная архитектура выдерживает нагрузку до 1 млрд фото в сутки при итерации по пользовательским профилям, при этом параллельно продолжается обработка новых заливаемых фотографий ~20 млн фото в сутки.



Рисунок 6. Архитектура решения

Результаты

В результате мы запилили систему, натренированную на реальных данных социальной сети, дающую хорошие результаты при ограниченных ресурсах.


Качество распознавания на датасете, построенном на реальных профилях из ОК, составило TP=97.5% при FP=0.1%. Среднее время обработки одной фотографии составляет 120 мс, а 99 перцентиль укладывается в 200 мс. Система самообучающаяся, и чем больше тегируют пользователя на фото, тем точнее становится его профиль.


Теперь после загрузки фото пользователи, найденные на них, получают уведомления и могут подтвердить себя на фотографии или удалить, если фото им не нравится.



Автоматическое распознавание привело к 2-кратному росту показов событий в ленте об отметках на фотографиях, а количество кликов на эти события выросло в 3 раза. Интерес пользователей к новой фиче очевиден, но мы планируем вырастить активность еще больше за счет улучшения UX и новых точек применения, таких как Starface.

Флешмоб StarFace

За первые дни акции пользователи уже загрузили более 10 тысяч фото со знаменитостями. Выкладывали селфи и фотографии со звездами, фото на фоне афиш и, конечно, “фотошоп”. Фото пользователей, получивших ВИП-статус:


Планы

Так как большая часть времени тратится на детектор, то дальнейшую оптимизацию скорости нужно проводить именно в детекторе: заменить его или перенести на GPU.

Добавить метки

Без щей и борща немыслим традиционный русский стол. Несмотря на то, что борщ характерен, главным образом, для Украины и южных регионов России, а щи «тяготеют» к центральным и северным русским областям, оба этих вкусных и наваристых супа любимы в нашей стране повсеместно. Известны эти кушанья с очень давних времен. Но какое же из них появилось раньше? Ответить на этот вопрос с полной определенностью сложно, поскольку ни в одном документе не сохранилась дата приготовления первого борща и первых щей. Однако, можно предположить, что щи имеют более солидный возраст. Что же позволяет сделать такой вывод?

Письменные источники

Щи впервые упоминаются в «Повести временных лет», документе XI века. Слово «борщ» встречается впервые в «Домострое» -- письменном источнике XVI века. Само по себе это не говорит, конечно же, о возрасте того или иного кушанья, ведь понятно, что борщ варили уже до написания «Домостроя», раз автор так активно рекомендует это блюдо к приготовлению.

Происхождение названия

Само происхождение слова «щи» выдает его глубокую старину. Некоторые специалисты считают, что название этого супа происходит от древнерусского слова «съто» -- еда, пропитание или «съти» --- жидкое варево. Само звучание этого старого слова напоминает современное «сытый, сытость». Понятно, что изначально щи – это еда вообще. Другие историки выводят название «щи» от славянского слова «щавьнъ» -- щавель, что наводит на мысль о том, что такое варево научились готовить еще до появления на территории России капусты. Что касается названия «борщ», то и здесь мнения расходятся. Одни полагают, что оно происходит от растения борщевик, которое в старину добавляли в кушанье. Не нужно путать этот старинный съедобный борщевик с современным зловредным растением, вызывающим ожоги. Другие считают, что слово «борщ» имеет двусоставную основу: «бор», которая указывает на красный цвет блюда (свеклу в южных областях называют и сейчас «бурак») и «щ», напоминающее о старых-добрых щах. В письменных документах московского царского двора упоминаются «щти борщевые», что так же дает нам основания предполагать производное от щей происхождение борща.

Время появления овощей

Всем известно, что основа щей – капуста, а борща – красная свекла. Оба эти овоща были в разное время завезены в Россию. Капуста получила у нас широкое распространение в XI веке, ее уже тогда употребляли в пищу как свежую, так и квашеную. Свекла приехала позже. Впервые с ней познакомились в XIII веке. Попала к нам она, видимо, из Византийской империи. Греки любили свеклу, считая ее лекарственным растением. Повсеместно на Руси свеклу стали сажать значительно позднее, лишь в XV веке. Видимо, тогда и появился впервые ярко-красный суп.

Особенности рецептуры

Рецепт приготовления щей выдает его глубокую архаику. Готовится этот суп, как известно, на мясном или овощном бульоне, с добавлением грибов, иной раз и с рыбой. Непременно добавляют в щи овощи: капусту, репу, морковь, лук. Позднее вместо репы стали добавлять картофель. Историк русской кухни Похлебкин отмечает парадоксальную вещь: ни один из этих ингредиентов не является обязательным. Мясо может быть, а может и не быть, грибы можно добавлять, а можно и нет. Даже капуста, при том, что она считается основой щей, присутствует не обязательно. Все знают зеленые щи, сваренные со щавелем, крапивой и другими травами. Очевидно, что готовили щи исстари по принципу: все, что есть в доме – клади в горшок. По этой причине существует такое множество разновидностей щей: мясные, богатые, сборные, грибные, постные, рыбные, зеленые и т.п. Хозяйка помещала в горшок все, чем была богата, заливала водой и ставила в печь. Этим технологические тонкости приготовления щей, вероятно, исчерпывались. Не стоит забывать и о такой архаичной особенности рецепта щей, как добавление в кушанье мучной болтушки, чтобы сделать варево более сытным. От муки отказались лишь в XIX веке, когда в моду вошла французская кухня.

Что касается борща, то здесь мы не найдем патриархальной простоты горшка со щами. Готовят классический борщ на свекольном квасе, непременно с использованием зажарки, что характерно для кухни, уже знающей, что такое изысканное приготовление. Многие продукты для борща должны подвергаться серьезной предварительной обработке. Если хозяйка обходится без свекольного кваса, она должна потушить или запечь свеклу, чтобы добиться желаемого красного цвета и характерного вкуса, лук и морковь так же предварительно жарятся или тушатся, помидоры измельчаются в пасту. И, разумеется, даже и речи нет о введении мучной болтушки, которая испортит благородный вкус красного супа. «Забелить» борщ можно только сметаной и никак иначе.

По этой же теме:

Украинский борщ и русские щи: что появилось раньше Над чем раньше смеялись русские Что раньше называли Россией до появления современной России

Рецепт приготовления щей выдает его глубокую архаику. Готовится этот суп, как известно, на мясном или овощном бульоне, с добавлением грибов, иной раз и с рыбой. Непременно добавляют в щи овощи: капусту, репу, морковь, лук. Позднее вместо репы стали добавлять картофель. Историк русской кухни Похлебкин отмечает парадоксальную вещь: ни один из этих ингредиентов не является обязательным. Мясо может быть, а может и не быть, грибы можно добавлять, а можно и нет. Даже капуста, при том, что она считается основой щей, присутствует не обязательно. Все знают зеленые щи, сваренные со щавелем, крапивой и другими травами. Очевидно, что готовили щи исстари по принципу: все, что есть в доме – клади в горшок. По этой причине существует такое множество разновидностей щей: мясные, богатые, сборные, грибные, постные, рыбные, зеленые и т.п. Хозяйка помещала в горшок все, чем была богата, заливала водой и ставила в печь. Этим технологические тонкости приготовления щей, вероятно, исчерпывались. Не стоит забывать и о такой архаичной особенности рецепта щей, как добавление в кушанье мучной болтушки, чтобы сделать варево более сытным. От муки отказались лишь в XIX веке, когда в моду вошла французская кухня.

Что касается борща, то здесь мы не найдем патриархальной простоты горшка со щами. Готовят классический борщ на свекольном квасе, непременно с использованием зажарки, что характерно для кухни, уже знающей, что такое изысканное приготовление. Многие продукты для борща должны подвергаться серьезной предварительной обработке. Если хозяйка обходится без свекольного кваса, она должна потушить или запечь свеклу, чтобы добиться желаемого красного цвета и характерного вкуса, лук и морковь так же предварительно жарятся или тушатся, помидоры измельчаются в пасту. И, разумеется, даже и речи нет о введении мучной болтушки, которая испортит благородный вкус красного супа. «Забелить» борщ можно только сметаной и никак иначе.

Щи

Щи - основное жидкое горячее блюдо на русском столе вот уже более тысячелетия. Оно устойчиво сохранялось в разные эпохи, хотя вкусы менялись, и никогда не знало социальных преград, его употребляли все слои населения. Разумеется, щи были не для всех одинаковыми: одни, более полные по составу, так и назывались - «богатые», про другие говорили - «пустые», так как их порой варили из одной капусты да лука. Однако при всех многочисленных вариациях от «богатых» до «пустых» и при всех региональных (областных) разновидностях щей всегда сохранялся традиционный способ их приготовления и связанный с ним вкус и аромат. Огромное значение для создания неповторимого вкуса щей имело то, что они приготовлялись, а затем томились (настаивались) в русской печи. Не истребимый ничем аромат щей - «щаной дух» - всегда стоял в русской избе. Со значением щей в повседневной жизни были связаны русские поговорки: «Щи - всему голова», «Щи да каша - пища наша» и др.
Поразительное долголетие щей можно объяснить, пожалуй, их неприедаемостью. Щи не надоедают при частом употреблении. Их можно есть чуть ли не ежедневно в любое время года.
Щи в их наиболее полном варианте состоят из шести основных компонентов: капусты (или заменяющей ее ведущей овощной массы), мяса (или, в очень редких случаях, рыбы, грибов - сушеных или соленых), кореньев (моркови, корня петрушки), пряной заправы (лука, сельдерея, чеснока, укропа, перца, лаврового листа) и кислой заправы (сметаны, яблок, капустного рассола). Из этих шести компонентов первый и последний, т. е. овощная ведущая масса и кислая заправа, совершенно обязательны. Самые простые щи могут состоять только из них, продолжая оставаться щами.
Что касается ведущей овощной массы в щах, то чаще всего ею бывает капуста - свежая или квашеная. Но это отнюдь не означает, что щи - это суп с капустой. Признаком щей является кислота, создаваемая чаще всего рассолом квашеной капусты (либо в составе капусты, либо в чистом виде) или, вместо нее, щавелем (зеленые щи), разваром зеленых, диких или антоновских яблок, солеными грибами, а также сметаной (в щах из свежей капусты). Вот почему капусту можно заменять в щах различной зеленой, кислой или нейтральной массой (щавелем, снытью, крапивой, борщевиком - в так называемых зеленых борщевых щах), а также овощной нейтральной массой, хорошо впитывающей кислоту (репой или редькой - в так называемых репяных щах).
Технология приготовления всех видов щей одинакова. Вначале отдельно с кореньями и луком отваривают мясо или грибы. Затем в готовый бульон добавляют капусту или ее заменители и кислоту. Если для щей используют кислую капусту, то ее варят отдельно от мясного бульона и соединяют с ним после его готовности. В обоих случаях лишь после разваривания овощной массы до необходимой мягкости добавляют соль и пряную заправку. Сметаной заправляют готовые щи, чаще всего во время их подачи.
Первоначально в щи вводили еще и мучную заправку (вместе с капустой), чтобы сделать бульон щей более плотным. Это было принято обычно в западных и южных областях России. Однако такая заправка ухудшает вкус щей, огрубляет их аромат. Поэтому с появлением картофеля в целях крахмализации бульона в щи стали добавлять одну-две картофелины - в целом виде, до закладки капусты и кислой основы. Причем часто картофель затем изымают из щей, так как от кислоты он затвердевает. Уплотнению консистенции бульона в постных и зеленых щах способствует также добавление небольшого количества крупы, обычно гречневой (1 ст. ложка на всю кастрюлю), которая полностью разваривается.
Чем проще овощной состав щей, чем постнее они, тем больше умения требуется для их приготовления. Настоящие щи немыслимы без пряной заправы, которая играет немалую роль в создании «щаного духа». Прежде всего огромное значение имеет внесение лука в щи. Наилучшим способом является его двойная закладка: первый раз - целой луковицей вместе с мясом, кореньями и грибами (затем эту луковицу вынимают) и второй раз - мелко нарезанным луком (крошеным) вместе с капустой. В щи нельзя вносить пережаренный отдельно на масле лук - в таком виде он не свойствен настоящим щам.
Точно так же дважды вносят в щи и другую пряную заправу - петрушку и сельдерей: первый раз - корешком, который вынимают затем вместе с луковицей, вторично - в конце варки, в виде зелени. Остальные пряности - лавровый лист, черный перец горошком (раздавленный), укроп и чеснок - вносят так: первые два вида - за 15 мин до готовности, вторые два - вместе с зеленью петрушки в конце варки. После этого щи должны обязательно постоять под крышкой, помлеть, чтобы настояться, минут 10-15 как минимум. Именно в это время щи «доходят до настоящего вкуса»: капуста становится мягкой, кислота и аромат пряностей передаются овощам. Поэтому прежде оставляли щи млеть и томиться после приготовления в легком духу русской печи, где они не остывали, или же отставляли на край плиты, где тепло сохранялось, но кипение прекращалось. Особенно нуждаются в этом щи из кислой капусты. Их хорошо ставить в слабо нагретую духовку на 10-15 мин, а то и более. Иногда настаивание щей может длиться несколько часов (от 12 до 24), отчего они приобретают лучший и более своеобразный вкус. Такие щи называются суточными, их готовят загодя, за сутки.
Наконец, надо обратить внимание еще на два обстоятельства, влияющие на качество щей, - это выбор мяса и подбелка или забелка. На щи идет говядина, преимущественно жирная - грудинка, тонкий и толстый край, огузок. Для создания особого запаха к говядине можно добавлять небольшое количество ветчины: десятую - восьмую (а на юге России даже третью) часть от массы говядины. При этом говядину в щах всегда отваривают целым куском, а ветчину измельчают. Только в сборных щах измельчению подвергают все мясные компоненты. Щи из одной свинины, встречающиеся главным образом в пограничных с Украиной областях России, не типичны для русской кухни. То же можно сказать и о встречающихся в отдельных областях России щах с рыбой вместо мяса. Для таких щей когда-то непременно требовались особый подбор рыб (сочетание соленой красной - белужины и осетрины с речной - окунями, карасями и линями) и их раздельная тепловая обработка. Приготовление щей с другой рыбой дает не столь вкусное блюдо, которое потому и не получило распространения.
Что касается забелки, то хорошие щи не могут обойтись без нее. Роль забелки и одновременно подкислителя обычно выполняет сметана. Иногда сметану заменяют простоквашей или просто молоком. В богатых щах из кислой капусты забелкой служит смесь сметаны и сливок в пропорции 4:1. Это очень вкусная забелка.
Несколько слов о консистенции щей. Щи всех видов могут быть густыми либо жидкими, в зависимости от соотношения воды и массы вложенных продуктов. Когда-то идеальными считались густые щи, в которых «ложка стоит», или «щи с горкой», т. е. когда кусок мяса возвышается над поверхностью налитой в тарелку жидкости и гущи. Наши рецепты рассчитаны на щи более чем средней густоты; это означает, что количество жидкости на 1 порцию не должно превышать 350 мл. Холодной воды надо заливать не более 2 л на 4 порции, а лучше 1,5 л, чтобы готовый бульон составлял 1,25-1 л (после выкипания). Варить следует 2 ч. Пряности вносят в щи за 5-10 мин до готовности.
Едят щи обычно с черным ржаным хлебом.


. В.В. Похлебкин . 2005 .

Щи – национальное русское блюдо. Отличаются кислым вкусом, создаваемым квашеной капустой, обычно используемой в щах. Но кислоту могут придавать и другие растения, например, щавель, крапива, или нейтральные травы с последующей заправкой капустным или другим рассолом. Закладка овощей в суп как правило производится в сыром виде, без предварительного обжаривания. Жидкой основой щей может служить мясной, рыбный, грибной бульоны, отвары из овощей или круп. Полностью овощные щи называют «пустыми». Хорошо известны «суточные» щи, которые приобретают свой вкус только через сутки после их приготовления. Часто щи «забеливают» сметаной, сливками или молоком.

  1. При варке щей квашеную капусту кладут в холодный бульон (или воду), а тушеную – в кипящий.
  2. Вкусные щи можно приготовить даже из очень кислой капусты. Для этого нужно часть кислой капусты заменить свежей. При этом тушат только квашеную капусту, а свежую кладут в кипящий бульон.
  3. Щи из свежей капусты без картофеля рекомендуют заправлять поджаренной мукой.
  4. Щи сами по себе обладают нежным вкусом и тонким ароматом, поэтому не стоит добавлять в них томат, желательно ограничить также количество специй.
Приготовьте щи по нашему рецепту, сделайте фото ваших щей и разместите его под рецептом - угостите всех вашими щами. Пусть готовить вкусные щи научатся все!