Обработка порогов авто: Чем обработать пороги автомобиля? – статья в автомобильном блоге Тонирование.RU
alexxlab | 28.05.2023 | 0 | Разное
Обработка порогов автомобиля – как выбрать средство и правильно нанести? + видео » АвтоНоватор
Коррозия, мелкие камушки, песок и соли наносят существенный вред вашему “железному коню”, поэтому крайне желательно знать, как именно осуществляется антикоррозийная обработка порогов автомобиля, своими руками вы сможете выполнить ее после прочтения нашей статьи. Первый раз сделать эту процедуру рекомендуется, конечно, у специалистов, а в дальнейшем можно будет обойтись и своими силами, просто поддерживая актуальность защиты.
Обработка порогов – посетить СТО или сделать самостоятельно?
При современном состоянии автопрома антикор для корпуса делают еще на заводе-производителе, но, дабы машина не вышла из строя раньше, чем предполагает гарантийное обслуживание, его следует повторять каждые два года. Благодаря этому вы сможете поддерживать целостность заводского покрытия максимально длительный срок. Таким образом, вы защитите наиболее уязвимые места вашего авто, а ими являются сварные швы, скрытые полости, колесные арки, пороги, днище и загибочные соединения.
Главным отличием между антикоррозионной обработкой, которую вы сделаете дома, и обработкой на специализированной станции является, конечно, наличие профессионального оборудования у вторых. Благодаря этому намного проще тщательно вымыть днище авто, а затем осуществить его принудительную сушку. Кроме того, на станциях производится комплексная обработка несколькими покрытиями, естественно, можно попытаться все это сделать и самостоятельно, но тогда вам такой эксперимент обойдется в копеечку, да и отсутствие опыта возьмет свое, так что экономия будет сомнительной.
Также специалисты обязательно установят брызговики и подкрылки, таким образом, защита наружной части автомобиля от воды песка и гравия будет более надежной.
Антикоррозионная обработка порогов автомобиля своими руками
Повторная обработка порогов авто проводится самостоятельно, для этого понадобятся: антикоррозионное средство (Otrix, Rand, Novol, Car System, Roberlo и т. д.), средство от ржавчины, наждачная бумага или металлическая щетка, респиратор и перчатки. Покупая антикоррозионное средство, следует обращать внимание на все мелочи: назначение, срок годности, особенности применения
Приступаем к обработке приобретенным средством. Его равномерно нанесите на пороги автомобиля и другие части, требующие защиты с помощью данного состава. Остается просушить авто в течение суток. Важно помнить, что нельзя работать рядом с огнём или нагревательными приборами, так как, в основном, все вышеперечисленные средства легко воспламеняемы. Кроме того, чтобы не нанести вред своему здоровью, рекомендуется работать в перчатках и респираторе.
Обработка порогов антигравием – последовательность операций
Обработка порогов антигравием происходит практически аналогично:
- авто тщательно моется и высушивается;
- наждачной бумагой удаляется ржавчина и облущенная краска;
- с помощью газет и скотча закрываем все места, прилегающие к порогам, чтобы не запачкать их. кстати, это необходимо делать в каждом случае, когда используется баллончик с распылителем;
- потрясите баллончик на протяжении 3–5 минут;
- нанесите антигравий с расстояния 25 см;
- дайте нанесенному слою высохнуть на протяжении 5 минут;
- повторите процедуру еще 1-2 раза;
- просушите авто в естественных условиях в течение хотя бы двух часов.
- Автор: Егор
- Распечатать
Оцените статью:
(1 голос, среднее: 1 из 5)
Поделитесь с друзьями!
Adblock
detector
Как покрасить пороги автомобиля антигравием – полезные советы
Как покрасить пороги автомобиля антигравием – полезные советы
Сколько крупных неприятностей легковому транспорту приносят мелкие камешки на дорогах, знают опытные водители. Солевая и реагентная обработка трасс в зимний период также влияет на автомобили не лучшим образом. Каким же элементам машины достается больше всего? Конечно же, порогам. Они первыми попадают под воздействие ржавчины. И хотя известно несколько восстановительных вариантов для порогов авто, простота и дешевизна антигравийного покрытия превосходит многие из них. Каким же образом «задуваются» пороги при использовании антигравия, будем разбираться.
Содержание
1
Необходимые материалы2
Порядок действий3
О типичных ошибках4
Цветовые решения5
Как добиться заводского эффекта?1
Какой материал необходим для покраски порогов?
Материальная база состоит из небольшого количества подручных средств.
Нужно «вооружиться»:
- Щеткой для болгарки. Это основной инструмент по удалению красочного слоя.
- Наждачной бумагой. Ее номер особого значения не имеет, поэтому диапазон велик от 80 до 240.
- Растворителем. Обычно используют растворяющую жидкость МОЖХИМ под номером 646.
- Смывкой силикона – чистящим и обезжиривающим спецрастворителем.
- Краскопультом.
- Малярным скотчем и укрывочной пленкой. Допустимо использование старых газет.
- Грунтом.
- Антигравием – защитным покрытием на базе полимера, как правило, выпускается в баллончиках.
2
Каков порядок действий?
Антигравийное покрытие наносится, согласно следующего порядка:
- Наклейка скотча. Это поможет четко обозначить зону работ.
- Машина заклеивается с помощью пленки, чтобы в процессе работы на иные участки не попал грунт или антигравий.
- Посредством болгарки, оснащенной спецщеткой, с порогов снимается ржавчина.
- Вскрытые дыры (если они обнаружатся) завариваются и обтачиваются. Иногда их просто покрывают эпоксидкой. В «предпродажном» случае используется обычная шпатлевка.
- Не счищающаяся богларкой краска заматовывается наждачкой.
- Нанесение грунта. Следует дождаться его высыхания.
- Прогрунтованные зоны заматовываются наждачкой. Ее номер в пределах от 180 до 240.
- Затем выполняется обезжиривание порогов.
- Нанесение антигравия. Срок его высыхание в пределах 60 минут. Однако специалисты рекомендуют делать два слоя. После первого следует семиминутная просушка, затем выполняется второй. В этом случае сушка длится до десяти часов.
После расклейки машины можно насладиться плодами своего труда.
Об оптимальных условиях для нанесения антигравия:
- Для работы потребуется теплое, обязательно проветриваемое помещение.
- Мастеру рекомендуется пользоваться перчатками и респиратором.
- Баллончик с антигравием встряхивается до 7 минут. Температура самой упаковки также важна – более 25 ºС.
- Дистанция до обрабатываемой поверхности при распылении не менее 200-250 мм.
Видео сюжет расскажет, как быстро нанести антигравий из баллончика на пороги атомобиля
youtube.com/embed/HWLGp3lG1kg?feature=oembed” frameborder=”0″ allow=”autoplay; encrypted-media” allowfullscreen=””/>3
О типичных ошибках
Чего нельзя делать, если речь идет о качественной антигравийной покраске:
- Покрывать антигравием участки с ржавчиной. Последует быстрое отваливание нового покрытия, а процесс гниения только ускорится.
- Для голого металла антигравий также не показан. Защитное покрытие обладает пористостью, то есть способностью дышать. Значит и коррозийные процессы не будут «дремать» – ржавчина появится в ближайшее время.
- Нанесение без матования. Адгезивные свойства антигравия в общем то не подлежат сомнению. Материал хорошо ложится на грунтованную поверхность, неплохо держится на краске. Однако отсутствие матовки грозит отваливанием крупных кусков, если мойка автомобиля выполняется оборудованием Керхер или подобным.
Безусловно, на указанные ошибки не стоит обращать внимание, если авто подготавливается к продаже.
В иных случаях экономить и спешить не рекомендуется.4
Цветовые решения антигравийных покрытий
Привычный черный цвет порогов (арок), контрастирующий с белым колером (иным цветом отличным от черного) автомобиля, выглядит непривлекательно. Для эстетов внешний вид такой машины будет «дешевым». Здесь подразумевается не уровень затрат.
Возможно, не всем заинтересованным лицам известно о полном спектре рыночных предложений в рассматриваемом сегменте:
- О белом и сером антигравийных покрытиях.
- О возможностях колеровки.
При ответственном подходе к данному вопросу достигается цветовая идентичность колерованного антигравийного покрытия порогов с цветом авто. Конечно, не все случаи заканчиваются стопроцентной схожестью. Например, затруднительно приблизится к цвету металлик. Однако вполне реально ликвидировать бросающийся в глаза контраст, к тому же это сделать очень просто.
5
Как добиться заводского эффекта применительно к защите порогов?
Характерный нюанс новых машин – антигравийное покрытие на порогах и сверху краска, аналогичная кузовному цвету.
Можно использовать данную технологию самостоятельно – «в домашних условиях»:
- Сначала следует выполнить пункты, описанные выше.
- Высохшее покрытие матировать наждачкой, здесь номера 600 достаточно.
- Обезжирить и нанести краску соответствующего колера.
- Финишным покрытием служит лак на акриловой основе.
От заводских порогов не отличишь.
Для справки. Для некоторых антигравийных составов применение лака и краски недопустимо.
Видео сюжет расскажет, как покрыть пороги авто антигравием пульверизатором
Все статьи >
Автор:
Равиль Салихов
КОММЕНТАРИИ: (0)
Auto Threshold
Содержание этой страницы не проверялось с тех пор, как она была удалена из MediaWiki. Если вы хотите помочь, ознакомьтесь с руководством по оказанию помощи!
Этот подключаемый модуль объединяет 8- и 16-битные изображения с использованием различных глобальных (на основе гистограммы) методов пороговой обработки. Сегментированная фаза всегда отображается белым цветом (255).
Для локального порогового значения, а не глобального, см. плагин Auto Local Threshold.
Установка
ImageJ : требуется версия 1.42m или новее. Загрузите Auto_Threshold-X.Y.Z.jar и скопируйте его в папку ImageJ/plugins и либо перезапустите ImageJ, либо выполните команду Help › Update Menus. После этого в Image › Adjust › Auto Threshold должна появиться новая команда.
Fiji : этот плагин является частью дистрибутива Fiji, скачивать его не нужно.
Использование
Метод выбирает применяемый алгоритм (подробно описанный ниже).
Игнорировать черный и Параметры Игнорировать белый устанавливают ячейки гистограммы изображения для уровней серого [0] и [255] на 0 соответственно. Это может быть полезно, если оцифрованное изображение имеет недо- или переэкспонированные пиксели.
Белый объект на черном фоне закрашивает белыми пиксели со значениями выше порогового значения (в противном случае закрашивает белыми значения, меньшие или равные пороговому).
Установить пороговое значение вместо порогового значения (одиночные изображения) устанавливает LUT с пороговым значением без изменения данных пикселей. Это работает только для одиночных изображений.
Если вы обрабатываете стек, доступны две дополнительные опции: Стек может использоваться для обработки всех слайсов (порог каждого слайса будет вычисляться отдельно). Если этот параметр не отмечен, будет обрабатываться только текущий срез. Использовать гистограмму стека сначала вычисляет гистограмму всего стека, затем вычисляет пороговое значение на основе этой гистограммы и, наконец, объединяет все срезы с этим единственным значением. Выбор этой опции также выбирает Опция Stack выше автоматически.
Важные примечания:
1. Доступ к этому плагину осуществляется через пункт меню Image › Auto Threshold, однако методы определения порога также частично реализованы в апплете порогового значения ImageJ, доступном через пункт меню Image › Adjust › Threshold…. В то время как плагин Auto Threshold может использовать или игнорировать крайние значения гистограммы изображения (игнорировать черный цвет, игнорировать белый цвет), апплет не может: метод «по умолчанию» игнорирует крайние значения гистограммы, а другие методы — нет. Это означает, что применение двух команд к одному и тому же изображению может привести к совершенно разным результатам. По сути, плагин Auto Threshold при правильных настройках может воспроизводить результаты апплета, но не наоборот.
2. Начиная с версии 1.12 плагин поддерживает пороговое значение 16-битных изображений. Поскольку плагин Auto Threshold обрабатывает все пространство оттенков серого, он может работать медленно при работе с 16-битными изображениями. Обратите внимание, что апплет порогового значения ImageJ также обрабатывает 16-битные изображения, но на самом деле ImageJ сначала вычисляет гистограмму с 256 бинами. Поэтому могут быть различия в результатах, полученных на 16-битных изображениях при использовании апплета, и реальных 16-битных результатах, полученных с помощью этого плагина. Обратите внимание, что для ускорения гистограмма заключена в квадратные скобки, чтобы включать только диапазон бинов, содержащих данные (и избегать обработки пустых бинов гистограммы в обоих крайних точках).
3. Результатом 16-битных изображений и стеков (при обработке всех слайсов) является 8-битный контейнер, показывающий результат белым цветом [255] для соответствия концепции «бинарного изображения» (т.е. 8 бит с 0 и 255 значений). Однако для стеков, в которых пороговым значением является только 1 слайс, в результате получается 16-битный контейнер с пороговой фазой, показанной белым цветом [65535]. Это делается для того, чтобы данные в оставшихся срезах оставались нетронутыми. Параметр «Попробовать все» сохраняет 16-битный формат, чтобы по-прежнему отображались изображения с методами, которые могут не получить пороговое значение. Изображения и стеки, которые невозможно пороговое значение, остаются без изменений.
4. Одно и то же изображение в 8 и 16 битах (без масштабирования ) возвращает одно и то же пороговое значение, однако метод Ли первоначально возвращал разные значения, когда данные изображения имели смещение (например, при добавлении фиксированного значения к все пиксели). Текущая реализация позволяет избежать этой проблемы, зависящей от смещения.
5. То же самое изображение , масштабированное до на фиксированное значение (например, при умножении всех пикселей на фиксированное значение), возвращает аналогичный пороговый результат (в пределах 2 уровней серого от исходного немасштабированного изображения) для всех методов, кроме Huang, Li и Triangle из-за того, как работают эти алгоритмы. Например. метод треугольника применяется к 8-битному изображению и к тому же изображению, преобразованному в 16-битное с масштабированием может привести к другим пороговым значениям. Это связано с тем, что масштабирование от 8 до 16 бит создает пустые интервалы между масштабированными значениями серого. Метод треугольника (основанный на геометрическом подходе) находит в новой 16-битной гистограмме искусственные пропуски, которые удовлетворяют ограничениям метода, но которых не было бы в исходном 8-битном изображении. Этого нельзя избежать (например, путем обнаружения пустых бинов гистограммы), поскольку это будет мешать анализу, когда на изображении существуют настоящие пустые бины (в отличие от искусственных).
6. Добавлен двухуровневый порог изображения. Спасибо Уэйну Расбанду и Вильгельму Бургеру. Когда изображение состоит только из 2 разных значений пикселей (любых двух значений интенсивности), плагин автоматически установит для него пороговые значения 0 и 255, игнорируя при этом выбранный метод порогового значения. Это связано с тем, что большинство методов, ожидающих бимодальных гистограмм, потерпят неудачу, поскольку двухуровневые изображения иногда могут быть интерпретированы как одномодальные (например, изображение, состоящее из двух смежных значений в гистограмме).
Доступные методы
Попробовать все
Какой метод лучше всего сегментирует ваши данные? Можно попытаться ответить на этот вопрос, используя опцию Try all . Это создает монтаж с результатами всех методов, что позволяет исследовать, как различные алгоритмы работают с конкретным изображением или стеком. При использовании стеков в некоторых случаях может быть нецелесообразно сегментировать каждый срез по отдельности, а не использовать единый порог для всех слайсов (попробуйте mri-stack.tif из образцов изображений, чтобы лучше понять эту проблему).
Исходное изображение
Попробуйте все способы.
При обработке стеков с большим количеством фрагментов монтажи могут стать очень большими (примерно в 16 раз больше исходного размера стека), и существует риск нехватки оперативной памяти. Появится всплывающее окно (если в стеках более 25 срезов), чтобы подтвердить, должна ли процедура отображать смонтированные результаты. Выберите Нет , чтобы вычислить пороговые значения и отобразить их в окне журнала.
По умолчанию
Это оригинальный метод автоматического определения порога, доступный в ImageJ, который является разновидностью алгоритма IsoData (описан ниже). Параметр Default должен возвращать те же значения, что и Image › Adjust › Threshold › Auto при выборе Ignore black и Ignore white . Чтобы указать сегментацию нужной фазы, используйте параметр Белые объекты на черном фоне . Метод IsoData также известен как итерационных промежуточных средних .
Huang
Реализует нечеткий пороговый метод Huang. При этом используется энтропийная функция Шеннона (можно также использовать энтропийную функцию Ягера).
doi:10.1016/0031-3203(94)E0043-K (PDF)
Перенесено из подпрограмм ME Celebi Fourier_0. 8 1 и 2.
Huang2
впечатляющее преимущество в скорости на 16-битных изображениях. Однако на некоторых изображениях метод возвращает значения, отличные от исходного метода Хуанга, описанного выше.
Интермоды
Предполагается бимодальная гистограмма. Гистограмма итеративно сглаживается с использованием скользящего среднего размера 3, пока не останется только два локальных максимума: j и k. Затем пороговое значение t вычисляется как (j+k)/2. Изображения с гистограммами, имеющими крайне неравномерные пики или широкую и плоскую впадину, не подходят для этого метода. method
doi:10.1111/j.1749-6632.1965.tb11715.x
Перенесено из кода MATLAB Антти Ниемисто. См. здесь отличную презентацию слайдов и его оригинальный код MATLAB.
IsoData
Итерационная процедура, основанная на алгоритме isodata:
doi:10.1109/TSMC.1978.4310039
порог и пиксели выше вычисляются. Вычисляются средние значения этих двух значений, увеличивается пороговое значение, и процесс повторяется до тех пор, пока пороговое значение не станет больше составного среднего значения. То есть
порог = (средний фон + средние объекты)/2.
Существует несколько реализаций этого метода. Дополнительные комментарии см. в исходном коде.
Li
Реализует метод установления порога минимальной перекрестной энтропии Ли на основе итеративной версии алгоритма (вторая ссылка ниже).
DOI: 10.1016/0031-3203 (93) -D
DOI: 10.1016/S0167-8655 (98) 00057-9 (PDF)
DOI: 10.117/1,1631315
. 3 и 4.
MaxEntropy
Реализует пороговый метод Капура-Саху-Вонга (Максимальная энтропия):
doi:10.1016/0734-189X(85)
-2В качестве порога используется среднее значение уровней серого. Он используется некоторыми другими методами в качестве порога первого предположения.
doi:10.1006/cgip.1993.1040
MinError(I)
Итеративная реализация порогового значения минимальной ошибки Киттлера и Иллингворта.
Похоже, эта реализация сходится чаще, чем исходная. Тем не менее иногда алгоритм не сходится к решению. В этом случае в окно журнала выводится предупреждение, а результатом по умолчанию является начальная оценка порога, которая вычисляется с использованием метода среднего значения. Параметры Игнорировать черный или Игнорировать белый могут помочь избежать этой проблемы.
doi:10.1016/0031-3203(86)-0
Перенесено из кода MATLAB Антти Ниемисто. См. здесь отличную презентацию слайдов и исходный код MATLAB.
Минимум
Подобно методу Intermodes, он предполагает бимодальную гистограмму. Гистограмма итеративно сглаживается с использованием скользящего среднего размера 3, пока не останется только два локальных максимума. Порог t таков, что yt−1 > yt <= yt+1.
Изображения с гистограммами, имеющими крайне неравные пики или широкую и плоскую впадину, не подходят для этого метода.
doi:10.1111/j.1749-6632.1965.tb11715.x
Перенесено из кода MATLAB Антти Ниемисто. См. здесь отличную презентацию слайдов и исходный код MATLAB.
Моменты
Метод Цая пытается сохранить моменты исходного изображения в пороговом результате.
doi:10.1016/0734-189X(85)-1
Перенесено из подпрограмм 7 и 8 Fourier_0.8 М.Э. Селеби. определяется как взвешенная сумма дисперсий двух классов.
doi:10.1109/TSMC.1979.4310076
См. также статью в Википедии о методе Оцу.
Перенесено из кода C++ Джорданом Бевиком.
Процентиль
Предполагается, что доля пикселей переднего плана равна 0,5.
doi:10.1145/321119.321123
Перенесено из кода MATLAB Антти Ниемисто. См. здесь отличную презентацию слайдов и исходный код MATLAB.
Энтропия Реньи
Аналогичен методу MaxEntropy , но вместо этого используется энтропия Реньи.
doi:10.1016/0734-189X(85)
-2Перенесено из подпрограмм ME Celebi Fourier_0.8 9и 10.
Shanbhag
doi: 10.1006/cgip.1994.1037
Портированные из ME Celebi’s Fourier_0.8. .70454
Изменено из плагина Йоханнеса Шинделина Triangle_Algorithm.
См. также: http://www.ph.tn.tudelft.nl/Courses/FIP/noframes/fip-Segmenta.html#Heading118
Алгоритм треугольника, геометрический метод, не может определить, искажены ли данные в в ту или иную сторону, но предполагает максимальный пик (моду) вблизи одного конца гистограммы и осуществляет поиск в направлении другого конца. Это вызывает проблему при отсутствии информации о типе обрабатываемого изображения или когда максимум не находится рядом с одним из экстремумов гистограммы (что приводит к двум возможным пороговым областям между этим максимумом и экстремумами). Здесь алгоритм был расширен, чтобы найти, с какой стороны максимального пика данные идут дальше всего, и искать порог в этом самом большом диапазоне.
Yen
Implements Yen’s thresholding method from:
doi:10.1109/83.366472
doi:10.1117/1.1631315
Ported from ME Celebi’s fourier_0.8 routines 13 and 14.
Vehicle Detection in Videos using OpenCV and Python
Обзор
- В восторге от идеи умных городов? Вам понравится это руководство по созданию собственной системы обнаружения транспортных средств .
- Сначала мы поймем, как обнаруживать движущиеся объекты в видео, прежде чем погрузиться в реализацию, часть 9.0272
- Мы будем использовать OpenCV и Python для создания автоматического детектора транспортных средств
Введение
Мне нравится идея умных городов. Мысль об автоматизированных интеллектуальных энергетических системах, электрических сетях, портах доступа в одно касание — это захватывающая концепция! Честно говоря, это мечта специалиста по данным, и я рад, что многие города по всему миру стремятся стать умнее.
Одним из основных компонентов умного города является автоматизированное управление дорожным движением. И это заставило меня задуматься: могу ли я использовать свои знания в области обработки данных для создания модели обнаружения транспортных средств, которая могла бы сыграть роль в интеллектуальном управлении дорожным движением?
Подумайте об этом — если бы вы могли интегрировать систему обнаружения транспортных средств в камеру светофора, вы могли бы легко отслеживать несколько полезных вещей одновременно:
- Сколько автомобилей находится на перекрестке в течение дня?
- Во сколько увеличивается трафик?
- Какие транспортные средства пересекают перекресток (тяжелые транспортные средства, легковые автомобили и т. д.)?
- Есть ли способ оптимизировать трафик и распределить его по другой улице?
И так далее. Приложения бесконечны!
Мы, люди, можем мгновенно обнаружить и распознать объекты в сложных сценах. Однако перенос этого мыслительного процесса на машину требует от нас изучения искусства обнаружения объектов с помощью алгоритмов компьютерного зрения.
Итак, в этой статье мы будем создавать автоматический детектор транспортных средств и модель счетчика. Вот вкус того, что вы можете ожидать:
Возбуждены? Давайте включим зажигание и проверим это!
Примечание. Вы не знакомы с глубоким обучением и компьютерным зрением? Вот два популярных курса, которые помогут вам начать глубокое обучение:
.- Основы глубокого обучения
- Компьютерное зрение с использованием глубокого обучения
Содержание
- Идея обнаружения движущихся объектов в видео
- Реальные случаи использования обнаружения объектов в видео
- Основные понятия, которые вы должны знать о обнаружении видеообъектов
— Различение кадров
— Пороговое значение изображения
— Поиск контуров
— Расширение изображения - Создайте систему обнаружения транспортных средств с помощью OpenCV
Идея обнаружения движущихся объектов в видео
Обнаружение объектов — увлекательная область компьютерного зрения. Это выходит на совершенно новый уровень, когда мы имеем дело с видеоданными. Сложность возрастает на ступеньку выше, но и награды тоже!
Мы можем выполнять сверхполезные высокоценные задачи, такие как наблюдение, управление дорожным движением, борьба с преступностью и т. д., используя алгоритмы обнаружения объектов. Вот GIF, демонстрирующий идею:
Источник: giphy.com
Существует ряд подзадач, которые мы можем выполнять при обнаружении объектов, таких как подсчет количества объектов, определение относительного размера объектов или определение относительного расстояния между объектами. Все эти подзадачи важны, поскольку они способствуют решению некоторых из самых сложных реальных проблем.
Если вы хотите узнать об обнаружении объектов с нуля, я рекомендую следующие руководства:
- Пошаговое введение в основные алгоритмы обнаружения объектов
- Обнаружение объектов в реальном времени с помощью SlimYOLOv3
- Другие статьи и ресурсы по обнаружению объектов
Давайте рассмотрим некоторые из захватывающих реальных случаев использования обнаружения объектов.
Реальные случаи использования обнаружения объектов в видео
В настоящее время видеообнаружение объектов используется в самых разных отраслях. Варианты использования варьируются от видеонаблюдения до спортивных трансляций и роботизированной навигации.
Хорошая новость: возможности безграничны, когда речь заходит о будущих вариантах использования для обнаружения и отслеживания видеообъектов. Здесь я перечислил некоторые интересные приложения:
- Подсчет толпы
- Обнаружение и распознавание номерных знаков автомобилей
- Отслеживание мяча в спорте
- Робототехника
- Управление трафиком (идея, которую мы рассмотрим в этой статье)
Основные понятия, которые вы должны знать о обнаружении видеообъектов
Прежде чем приступить к созданию системы видеообнаружения, необходимо ознакомиться с некоторыми ключевыми понятиями. Как только вы познакомитесь с этими основными понятиями, вы сможете создать свою собственную систему обнаружения для любого варианта использования по вашему выбору.
Итак, как бы вы хотели обнаружить движущийся объект на видео?
Наша цель — зафиксировать координаты движущегося объекта и выделить этот объект на видео. Рассмотрим этот кадр из видео ниже:
Мы хотели бы, чтобы наша модель обнаруживала движущийся объект в видео, как показано на изображении выше. Движущийся автомобиль обнаруживается, и вокруг автомобиля создается ограничивающая рамка.
Существует несколько методов решения этой проблемы. Вы можете обучить модель глубокого обучения обнаружению объектов или выбрать предварительно обученную модель и настроить ее на своих данных. Однако это подходы к обучению с учителем, и для обучения модели обнаружения объектов им требуются размеченные данные.
В этой статье мы сосредоточимся на неконтролируемом способе обнаружения объектов в видео, то есть на обнаружении объектов без использования каких-либо помеченных данных . Мы будем использовать технику разности кадров . Давайте разберемся, как это работает!
Разность кадров
Видео — это набор кадров, сложенных вместе в правильной последовательности. Итак, когда мы видим объект, движущийся на видео, это означает, что объект находится в другом месте в каждом последующем кадре.
Если предположить, что кроме этого объекта в паре последовательных кадров больше ничего не двигалось, то разница пикселей первого кадра со вторым будет выделять пиксели движущегося объекта. Теперь у нас будут пиксели и координаты движущегося объекта. Примерно так работает метод разностных кадров.
Возьмем пример. Рассмотрим следующие два кадра из видео:
.Можете ли вы найти разницу между двумя кадрами?
Да – это положение руки, держащей перо, изменилось от кадра 1 к кадру 2. Остальные объекты вообще не двигались. Итак, как я упоминал ранее, чтобы найти движущийся объект, мы выполним разность кадров. Результат будет выглядеть так:
Вы можете видеть выделенную или белую область, где изначально присутствовала рука. Кроме того, блокнот также немного выделен по краям. Это может быть связано с изменением освещенности движением руки. Желательно избавиться от нежелательного обнаружения стационарных объектов. Следовательно, нам нужно будет выполнить определенные шаги предварительной обработки изображения на кадрах.
Пороговое значение изображения
В этом методе значениям пикселей изображения в градациях серого присваивается одно из двух значений, представляющих черный и белый цвета, на основе порогового значения. Таким образом, если значение пикселя больше порогового значения, ему присваивается одно значение, в противном случае ему присваивается другое значение.
В нашем случае мы применим порог изображения к выходному изображению кадра, отличающегося на предыдущем шаге:
Вы можете видеть, что большая часть нежелательной выделенной области исчезла. Выделенные края блокнота больше не видны. Полученное изображение также можно назвать бинарным, так как в нем всего два цвета. На следующем шаге мы увидим, как захватить эти выделенные области.
Поиск контуров
Контуры используются для определения формы области изображения, имеющей тот же цвет или интенсивность. Контуры похожи на границы вокруг областей интереса. Итак, если мы применим контуры к изображению после шага пороговой обработки, мы получим следующий результат:
Белые области были окружены сероватыми границами, которые представляют собой не что иное, как контуры. Мы можем легко получить координаты этих контуров. Это означает, что мы можем получить расположение выделенных регионов.
Обратите внимание, что выделено несколько областей, и каждая область обведена контуром. В нашем случае искомой областью является контур, имеющий максимальную площадь. Следовательно, лучше иметь как можно меньше контуров.
На изображении выше все еще есть ненужные фрагменты белой области. Есть еще возможности для улучшения. Идея состоит в том, чтобы объединить близлежащие белые области, чтобы было меньше контуров, и для этого мы можем использовать другую технику, известную как расширение изображения.
Расширение изображения
Это операция свертки изображения, при которой ядро (матрица) передается по всему изображению. Просто чтобы дать вам интуицию, изображение справа является увеличенной версией изображения слева:
.Итак, применим к нашему изображению расширение изображения и тогда мы снова найдем контуры:
Оказывается, многие фрагментированные области слились друг с другом. Теперь мы снова можем найти контуры на этом изображении:
Здесь у нас есть только четыре контура-кандидата, из которых мы выберем тот, у которого наибольшая площадь. Вы также можете нанести эти контуры на исходный кадр, чтобы увидеть, насколько хорошо контуры окружают движущийся объект:
Создание системы обнаружения транспортных средств с использованием OpenCV и Python
Мы готовы построить нашу систему обнаружения транспортных средств! В этой реализации мы будем часто использовать библиотеку компьютерного зрения OpenCV (версия — 4. 0.0). Давайте сначала импортируем необходимые библиотеки и модули.
Импорт библиотек
Посмотреть код на Gist.
Импорт видеокадров и исследование данных
Загрузите кадры оригинального видео по этой ссылке.
Храните фреймы в папке с именем «frames» внутри вашего рабочего каталога. Из этой папки мы импортируем кадры и сохраняем их в списке, а затем для исследования данных давайте отобразим два последовательных кадра:
.Код Python:
Трудно найти разницу в этих двух кадрах, не так ли? Как обсуждалось ранее, определение разницы значений пикселей двух последовательных кадров поможет нам наблюдать за движущимися объектами. Итак, давайте воспользуемся техникой на двух вышеприведенных кадрах:
.Посмотреть код на Gist.
Теперь мы можем четко видеть движущиеся объекты на 13-м и 14-м кадрах. Все остальное, что не двигалось, было вычтено.
Предварительная обработка изображения
Давайте посмотрим, что произойдет после применения порога к изображению выше:
Посмотреть код на Gist.
Теперь движущиеся объекты (транспортные средства) выглядят более многообещающе, а большая часть шума (нежелательные белые области) исчезла. Однако выделенные области немного фрагментированы. Итак, мы можем применить расширение изображения к этому изображению:
Посмотреть код на Gist.
У движущихся объектов более сплошные выделенные области. Будем надеяться, что количество контуров для каждого объекта в кадре будет не более трех.
Однако мы не собираемся использовать весь кадр для обнаружения движущихся транспортных средств. Сначала мы выберем зону, и если транспортное средство въедет в эту зону, то будет обнаружено только оно.
Итак, позвольте мне показать вам зону, с которой мы будем работать:
Посмотреть код на Gist.
Область ниже горизонтальной линии y = 80 является нашей зоной обнаружения транспортных средств. Мы обнаружим любое движение, происходящее только в этой зоне. Вы можете создать свою собственную зону обнаружения, если хотите поиграть с концепцией.
Теперь найдем контуры в зоне обнаружения кадра выше:
# найти контуры контуры, иерархия = cv2.findContours(thresh.copy(),cv2.RETR_TREE,cv2.CHAIN_APPROX_NONE)
Приведенный выше код находит все контуры на всем изображении и сохраняет их в переменной « контуров» . Так как нам нужно найти только те контуры, которые присутствуют в зоне обнаружения, применим пару проверок обнаруженных контуров.
Первая проверка, должна ли верхняя левая координата y контура быть >= 80 (я включаю еще одну проверку, координата x <= 200). Другая проверка заключается в том, что площадь контура должна быть >= 25. Вы можете найти площадь контура с помощью cv2.contourArea() функция.
Посмотреть код на Gist.
Далее наносим контуры вместе с исходным кадром:
Посмотреть код на Gist.
Круто! Видны контуры только тех транспортных средств, которые находятся в зоне обнаружения. Так мы будем обнаруживать транспортные средства на всех кадрах.
Обнаружение автомобиля в видео
Пришло время применить одинаковые преобразования изображения и операции предварительной обработки ко всем кадрам и найти нужные контуры. Просто чтобы повторить, мы выполним следующие шаги:
- Применение различий кадров для каждой пары последовательных кадров
- Применить порог изображения к выходному изображению предыдущего шага
- Выполнить расширение изображения на выходном изображении предыдущего шага
- Найти контуры в выходном изображении предыдущего шага
- Контуры Shortlist появляются в зоне обнаружения
- Сохранение кадров вместе с окончательными контурами
Посмотреть код на Gist.
Подготовка видео
Здесь мы добавили контуры всех движущихся машин на всех кадрах. Пришло время сложить кадры и создать видео:
# указать название видео pathOut = 'vehicle_detection_v3.mp4' # указать количество кадров в секунду кадров в секунду = 14,0
Далее мы прочитаем последние кадры в списке:
кадр_массив = [] files = [f для f в os.