РАСПОЗНАВАНИЕ АВТОМОБИЛЬНЫХ НОМЕРОВ С ПОМОЩЬЮ PYTHON | КОМПЬЮТЕРНОЕ ЗРЕНИЕ | PYTESSERACT, OPENCV

Поделиться
HTML-код
  • Опубликовано: 10 ноя 2024

Комментарии • 138

  • @GoldenHandsCooking
    @GoldenHandsCooking 11 месяцев назад +1

    Здравствуйте! Спасибо за Урок! вы сможете сделать такой урок !
    Дверь открывается с распознавание лицо человека!
    1) Когда камера обнаруживает лицо первого человека и Приветствует с озвучкой (Приветь Самир добро пожаловать домой чтоб открыт дверь положите ваш палец в сканнер отпечатки пальцев ) и когда я положу палец в сканнер отпечатки пальцев дверь открывается !
    и еще надо написать код для случай при не срабатывание отпечатки пальцев и распознавание лиц как на смартфоне
    2) Когда подойдет сосед к двери чтоб постучать дверь тут же камера распознает чужого человека и сообщает что Хозяева нет дома но он вас видеть через виде наблюдение над вашим головой, если хотите отправит сообщение им то нажмите красную кнопку и отправьте голосовое сообщение. и если он захочет этого сделать нажимает на кнопку и отправляет голосовое сообщение ей смартфону! если он не захочет отправить сообщение то хозяин дома получает смс сообщение то что кто то подошёл к двери!

  • @mak32
    @mak32 Год назад +14

    Тема благодатная. Думаю согласятся многие, что продолжения будем ждать с нетерпением. И не только данный проект, а также и другие проекты с этой библиотекой.

    • @PythonToday
      @PythonToday  Год назад +1

      Благодарю за фидбэк!

  • @Денис-п1ю2ц
    @Денис-п1ю2ц Год назад +24

    Летом писал этот проект, весь интернет перерыл чтоб некие подсказки найти, теперь смотрю с радостью что я понимаю что-то)

    • @PythonToday
      @PythonToday  Год назад +1

      Делись кодом если есть возможность)

    • @Денис-п1ю2ц
      @Денис-п1ю2ц Год назад +1

      @@PythonToday к сожалению я его потерял(( но делал все точно также как на видео, при помощи неиронки ловил номер и давал немного место (т.к. иногда номер не весь захватывала) переводил в черно белый и считывал номер при помощи pytesseract, правда сложность была в том что это все надо было делать в видеопотоке, зачастую он распозновал номер, но иногда ни в какую ее хотел

    • @thegamesinsideme6624
      @thegamesinsideme6624 Год назад

      А где взять предобученную модель из папки hear_cascades?

    • @АлександрЗайцев-р7е
      @АлександрЗайцев-р7е Год назад

      @@Денис-п1ю2ц обычно камеры, определяющие номера и следящие за потоком движения машин, имеют не 25-30 кадров в секунду как обычная камера, а больше 50. Возможно поэтому были проблемы с определением, т.к. смазывался номер на кадре.

  • @AlexAlex-ei7zf
    @AlexAlex-ei7zf 18 дней назад

    Чувак, огромное Тебе спасибо! Это именно то, что мне нужно) Добра и мира Тебе

  • @Zer-st6qv
    @Zer-st6qv Год назад +17

    Воу! Какой-же ты красавчик, огромное спасибо за такую интересную практику! Конечно "за" продолжение, будь здоров!)

    • @PythonToday
      @PythonToday  Год назад +1

      Взаимно! Спасибо за поддержку!

  • @srjsibg6osdaab946
    @srjsibg6osdaab946 Год назад

    PythonToday - !SUPER! - Forever!

  • @garage-3243
    @garage-3243 Год назад

    Здравствуйте! Тема классная, поставил лайк! Хотелось бы развить ее. Работаю в личной охране. Сопровождение на авто - одна из уязвимых способ для слежки за моим клиентом. Хотелось программу отслеживание автономеров в дороге, и если программа заметила повторный номер и автомобиль более трех раз на протяжении определенного маршрута, в течении недели, то помечала бы это автономер в отдельный файл. Видео брать с видеорегистратора, т.е. архив.

  • @TheAutonomoos
    @TheAutonomoos Год назад +1

    Я понимаю, что тут весь код - по сути просто клей между уже готовыми, написанными кем-то другим функциями. Но это всё равно круто. Буду ждать продолжения.

  • @oxyroy8057
    @oxyroy8057 Год назад +1

    Я в этом нихрена не понимаю. Но автор красавчик!! Только окунаюсь в тему it

    • @PythonToday
      @PythonToday  Год назад

      Сам живу с этим чувством, каждый раз что-то новое. Спасибо за фидбэк!

  • @sergdef1
    @sergdef1 Год назад +2

    Круто. Я как раз работаю над подобным. Хочу получать фото с камеры видеонаблюдения. И ваш код по распознованию автономера как раз находка. Супер. Давайте продолжение!!!!!!!!!!!!

    • @PythonToday
      @PythonToday  Год назад

      Благодарю за фидбэк! Рад если будет полезно)

    • @AlexUUU1728
      @AlexUUU1728 7 месяцев назад

      Ну и? Как успехи? Смог распознать хотя бы 50%

    • @sergdef1
      @sergdef1 7 месяцев назад

      @@AlexUUU1728 Смог. Работает. Немного пришлось переделать для RTSP чтобы делал картинку и после распозновал. Но для моих задач на то время этого хватало. Сейчас работает все на другом коде и с другой оболочкой.

    • @AlexUUU1728
      @AlexUUU1728 7 месяцев назад

      @@sergdef1 Ну получить картинку с видео это да, другая задача. Тут ковырнул - ну нихера тисеракт не распознает. Я уж и контуры обвел, и мелочь убрал и в битовое перевел. Хер, а не буквы. Вернее так, распознает, с 99% ошибок.

    • @sergdef1
      @sergdef1 7 месяцев назад

      @@AlexUUU1728 А весии те что из видео или новые? Я уже год как не проверял код. Сейчас у меня работает на заводской программе и оборудовании.

  • @ЭльчинМехтиев-й3т

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

  • @gaben_aTan
    @gaben_aTan Год назад +3

    Интересная тема. Думаю в снт сделать на въезд , на шлагбаум

  • @Александр-з5ь8б
    @Александр-з5ь8б Год назад

    Спасибо за труды!

  • @darkunderground8103
    @darkunderground8103 Год назад +1

    Спасибо за видео, работает все кроме вывода текста

  • @ВикторСавицкий-з1к

    Как всегда, отлично! Жду продолжения

    • @PythonToday
      @PythonToday  Год назад

      Большое спасибо за фидбэк!

  • @hideokojima002
    @hideokojima002 Год назад +2

    Спасибо, годно, но хотелось бы побольше подобного.

  • @Antonio-e5t3s
    @Antonio-e5t3s Год назад

    Очень полезное видео, это то что я искал👍

  • @ЕрмолинНикита-у7м

    СУПЕР!!!) Ждём продолжения!)

    • @PythonToday
      @PythonToday  Год назад

      Благодарю за поддержку!

  • @zaurdzantiev6560
    @zaurdzantiev6560 Год назад +1

    Классно было б ещё узнавать тип автомобиля: легковой, грузовой и т.п.

  • @unaibekovbakhyt6517
    @unaibekovbakhyt6517 Год назад

    Спасибо, емко и понятно. ждем еще)

    • @PythonToday
      @PythonToday  Год назад

      Большое спасибо за фидбэк!

  • @SkyfUA999
    @SkyfUA999 Год назад +2

    Спасибо за поздравление в Телеге. Вы настоящий мотиватор учёбы для многих, кто не до учился в политехе и совковых до потопных системах, где из гениальных молодых интелектуальных студентов - делают тупоголовых орангутангов с корочкой, на которую даже не намажешь маслом. Пусть в следующем году вы будете ещё ярче. 🎄

  • @Star_Rider7
    @Star_Rider7 Год назад

    Ждем продолжение! Респект!

    • @PythonToday
      @PythonToday  Год назад

      Спасибо за поддержку!

  • @vigauss1889
    @vigauss1889 Год назад +4

    Очень интересная тема) Большое спасибо за шпаргалки по настройкам, само собой лайк за продолжение! p.s у меня tesseract порой даёт осечки, на мой взгляд с кириллицей дела так себе обстоят. В номерах используется "типо" латиница, но буквы русские, может поэтому всё же ошибается. Но в видео например с цифрой что-то не понравилось 🤷‍♂

    • @PythonToday
      @PythonToday  Год назад +1

      Большое спасибо за фидбэк! Да, тоже замечал пропуски, но есть альтернативы. Моджно с ними попробовать поработать, на канале было видео по распознаванию текста

  • @wildberris4832
    @wildberris4832 Год назад

    Суперский урок!!!!!!

  • @BOOT-e8o
    @BOOT-e8o Год назад

    Однозначно лайк!!! А сделать считывание номеров не с фото а с видео?

  • @аавыф-б4о
    @аавыф-б4о Год назад

    Нормально, поразвлекался, спасибо

  • @EugenioHorvat
    @EugenioHorvat Год назад

    Огромное тебе спасибо за информацию !!!

    • @PythonToday
      @PythonToday  Год назад +1

      Огромное спасибо за фидбэк)

  • @BLRplex
    @BLRplex Год назад +1

    Интересно было бы посмотреть поточную обработку видео с номерами машин. На вход идет поток с видео, на выходе коллекция строк с номерами авто. Причем, хорошо бы допилить так, чтобы номера были в кириллице

    • @iscanderkov9656
      @iscanderkov9656 Год назад

      Кто мешает сделать словарь замен символов?

  • @deus7204
    @deus7204 Год назад +2

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

    • @PythonToday
      @PythonToday  Год назад

      Вливайся) Спасибо за фидбэк!

  • @jagpanther1814
    @jagpanther1814 Год назад +1

    Аххаах, только вчера думал что у pythontoday такого видео нет

  • @artemzaecev7751
    @artemzaecev7751 Год назад

    Очень очень очень интересная тема!!!)

    • @PythonToday
      @PythonToday  Год назад

      Спасибо за фидбэк!

  • @vengr3020
    @vengr3020 Год назад

    Достойно!!

  • @Влад-ю1ц6н
    @Влад-ю1ц6н Год назад

    спасибо за практику!

    • @PythonToday
      @PythonToday  Год назад

      Спасибо за фидбэк!

  • @kmakurov
    @kmakurov Год назад +10

    С номером о917ун33 распозналась вместо буквы О, цифра ноль

    • @Motivatios666
      @Motivatios666 Год назад +1

      поставь условие, что первый, пятый и шестой символы это буквы а не цифры

  • @valarg5756
    @valarg5756 Год назад

    Жду продолжения

  • @ckab10
    @ckab10 Год назад

    Было бы очень круто, если бы еще в описание была ссылка на код. Видео топ!!!

    • @PythonToday
      @PythonToday  Год назад

      Благодарю за фидбэк! В описании их даже 2, код в телеграм канале.

    • @ГлебКолесников-г4е
      @ГлебКолесников-г4е Год назад

      @@PythonToday а как открыть его в пайтон файле?

  • @masluk2
    @masluk2 Год назад

    супер! спасибо!

  • @igorkulibaba7287
    @igorkulibaba7287 Год назад

    Да да да продолжение однозначноо

    • @PythonToday
      @PythonToday  Год назад

      Спасибо за поддержку!

  • @skayral7197
    @skayral7197 Год назад

    Добрый день! Безумно нравится ваш контент. Недавно я начал изучать парсинг сайтов на Python по книжкам, могли бы, пожалуйста, подсказать как Вы начинали обучаться парсингу? Заранее спасибо.

  • @bersty
    @bersty 11 месяцев назад

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

  • @wyrineejt5425
    @wyrineejt5425 Год назад +1

    4:31 а можно вопрос что это за файл? xml, нашел в тг был! канал очень годный

  • @lynxesss
    @lynxesss Год назад

    пишу комментарий в копилку обозначенной цели

  • @wythuk87
    @wythuk87 Год назад

    Тоже думал такой проект написать, с видеорегистратора записи взять и запустить, пусть базу создаёт

    • @PythonToday
      @PythonToday  Год назад

      Супер, делись кодом если есть желание

    • @ВиталийКучер-о6ю
      @ВиталийКучер-о6ю Год назад

      А какаой в этом толк? Базы номеров закрытые

    • @agrotok1587
      @agrotok1587 Год назад

      @@ВиталийКучер-о6ю еще
      вас ждут великие открытия ...

    • @ВиталийКучер-о6ю
      @ВиталийКучер-о6ю Год назад

      @@agrotok1587 в смысле?)

    • @agrotok1587
      @agrotok1587 Год назад

      @@ВиталийКучер-о6ю зная пути, базы станут открыты . все хотят исть

  • @ОлегЧеркашин-ш7с

    Как называется расширение Explorer где отображаются файлы и папки ?

  • @oraz639
    @oraz639 Год назад +1

    Очень интересно и полезно 👍
    Как быть с распознованием номера с камеры видеонаблюдения?

    • @PythonToday
      @PythonToday  Год назад

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

  • @ДаняСкоряк-л6ь
    @ДаняСкоряк-л6ь Год назад +1

    Сними видео как найти и подключиться к IP web camera телефона

  • @ЯрославШмидт-л3р

    Продолжение нужно

  • @elnursh
    @elnursh Год назад

    хотелось бы увидеть видео о распознавании речи в реальном времени

  • @tresTein
    @tresTein Год назад

    Ураа )))

  • @stakancheck
    @stakancheck Год назад

    Спасибо за видос, что за эквалайзер на верхней панели? Кто-то подскажет?

    • @PythonToday
      @PythonToday  Год назад +2

      Спасибо за фидбэк! Таск менеджер в kali, cpu/memory

  • @myvsevolods
    @myvsevolods Год назад +1

    Како линукс ты используешь?

  • @МиллиардерлерТарихы

    можно видео про авторегистрации в сайтах например фейсбук как сделать с пайтона авторегер и он сам делакт регистрации например нужен 10 фб создать создает тебе пайтон.

  • @ГлебКолонин
    @ГлебКолонин 2 месяца назад

    А где взять код из ролика?

  • @ПриманкаТВ-о6ш
    @ПриманкаТВ-о6ш Год назад

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

  • @StButcher26
    @StButcher26 Год назад

    может кто поможет, проблема в самом начале... не один медот не отображается у cv2, может там какое то обновление вышло?

  • @You2Ber42
    @You2Ber42 Год назад +2

    так а как решать то проблему с 5=9?

  • @djavyd
    @djavyd Год назад

    Если на фотографии будет несколько машин, то как отработает код?

  • @evgeniyershov
    @evgeniyershov Год назад

    А есть еще какие-нибудь каскады Хаара, кроме номеров авто?

  • @valeraussuriysk
    @valeraussuriysk Год назад

    надо продолжение

  • @abroygibatolla7445
    @abroygibatolla7445 Год назад

    Python Today, сделай пожалуйста ролик на тему - распознавание прогресс бара. Допустим есть индикатор зеленого цвета - уровень жизни персонажа, человек может определить его примерно. А как это сделать на python?

    • @michaelsopunov
      @michaelsopunov 11 месяцев назад

      Вам гораздо практичнее для этой задачи подойдёт ArtMoney - она специально для подобных целей создавалась

  • @АндрейРублевский-этимол.фонем

    как создать обученную модель???

  • @tresTein
    @tresTein Год назад

    Жалко только кода нет хотел скопировать и проверить как работать с видео будет, но к сожелению надо уежжать через неделю так и быть сделаем что задумали))

    • @mrdraud1726
      @mrdraud1726 Год назад

      код есть в телеграме

    • @PythonToday
      @PythonToday  Год назад +2

      Код достуепн в телеграме и на github

  • @_test_test
    @_test_test Год назад

    не понял, зачем тут матплотлиб для вывода картинки, если у cv2 есть свой метод

  • @awesome_stalker593
    @awesome_stalker593 Год назад

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

  • @p0katushki
    @p0katushki Год назад

    А если на фото вообще нет номера, и пытаемся распознать его, что делать?

  • @nikolaydd6219
    @nikolaydd6219 9 месяцев назад

    нах эта вставка в начале видео? Для проматывания?

  • @helix.d
    @helix.d Год назад +1

    500 likes "eto nash piton"

  • @Kalinin-Roman
    @Kalinin-Roman Год назад

    Номер В878КЕ95 тоже распознан не верно, он выдал ВВ78КЕ95

  • @ПростоНекит-ь9й
    @ПростоНекит-ь9й 9 месяцев назад

    Ребят, помогите, пожалуйста, что за ошибка и как ее фиксить cv2.error: OpenCV(4.9.0) D:\a\opencv-python\opencv-python\opencv\modules\imgproc\src
    esize.cpp:4030: error: (-215:Assertion failed) func != 0 in function 'cv::hal::resize'

    • @kinorelaxxx
      @kinorelaxxx 5 месяцев назад +1

      Ошибка `cv2.error: OpenCV(4.9.0) D:\a\opencv-python\opencv-python\opencv\modules\imgproc\src
      esize.cpp:4030: error: (-215:Assertion failed) func != 0 in function 'cv::hal::resize'` указывает на то, что в функции `cv::hal::resize` происходит ошибка, связанная с неверными входными параметрами для функции `resize`.
      Эта ошибка может возникать по разным причинам, но чаще всего она связана с проблемами при передаче параметров в функцию `cv2.resize()`. В частности, это может быть вызвано следующими проблемами:
      1. **Нулевые или отрицательные размеры изображения**: Возможно, передается пустое изображение или изображение с неверными размерами.
      2. **Неверный формат данных изображения**: Данные изображения могут быть повреждены или иметь неверный формат.
      ### Как исправить
      1. **Проверьте входное изображение**:
      Убедитесь, что изображение, передаваемое в функцию `cv2.resize`, действительно загружено и не пустое.
      ```python
      import cv2
      img = cv2.imread('path_to_your_image.jpg')
      if img is None:
      print("Ошибка: не удалось загрузить изображение")
      ```
      2. **Проверьте размеры изображения**:
      Убедитесь, что размеры изображения корректны и не равны нулю.
      ```python
      print("Размер изображения:", img.shape)
      ```
      3. **Проверьте аргументы функции `cv2.resize`**:
      Убедитесь, что вы правильно передаете параметры в функцию `cv2.resize`.
      ```python
      # Пример правильного использования
      img_resized = cv2.resize(img, (width, height))
      ```
      ### Пример кода
      Вот пример корректного использования функции `cv2.resize`:
      ```python
      import cv2
      # Загрузка изображения
      img = cv2.imread('path_to_your_image.jpg')
      if img is None:
      raise ValueError("Ошибка: не удалось загрузить изображение")
      # Вывод размеров изображения
      print("Оригинальные размеры изображения:", img.shape)
      # Определение новых размеров
      new_width, new_height = 640, 480
      # Изменение размера изображения
      img_resized = cv2.resize(img, (new_width, new_height))
      # Вывод новых размеров изображения
      print("Новые размеры изображения:", img_resized.shape)
      # Сохранение или отображение изображения
      cv2.imwrite('resized_image.jpg', img_resized)
      cv2.imshow('Resized Image', img_resized)
      cv2.waitKey(0)
      cv2.destroyAllWindows()
      ```
      Этот пример проверяет, загружено ли изображение, и изменяет его размер до заданных ширины и высоты. Убедитесь, что путь к изображению правильный и что изображение действительно существует.

  • @БОЙФРЕНДИОЗОДА9999ХУМАШ

    Как взломат бот на телеграмма и эго изменит

  • @KynomiFn
    @KynomiFn Год назад

    Что это за дистрибутив линукса?

  • @АнастасияСтолярова-р8и

    Помогите, пожалуйста. Вылазит ошибка. Что она может значить?
    Tesseract Open Source OCR Engine v3.05.00dev with Leptonica read_params_file: Can't open 6 read_params_file: Can't open -oem read_params_file: Can't open 3 read_params_file: Can't open c read_params_file: Can't open tessedit_char_whitelist=ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 read_params_file: Can't open txt Warning in pixReadMemPng: work-around: writing to a temp file libpng warning: Application built with libpng-1.4.3 but running with 1.5.14 Error in pixReadStreamPng: png_ptr not made Error in pixReadMemPng: pix not read Error in pixReadMem: png: no pix returned Error during processing.")

  • @mlqt
    @mlqt Год назад

    Это мертвый подход, начиная от каскада Хаара для детекции планок, заканчивая тесерактом для символов. Пройденный этап. Ну и пайтон... Если хотите, чтобы работало быстро это плюсы.

    • @blockedchannel7032
      @blockedchannel7032 Год назад

      А как надо? Научи. И какие фреймворки глубокого обучения есть на плюсы? Tensorflow, который билдится через мертворождённый basil? Или же LibTorch который работает за счёт pybind11?

  • @romanpr6691
    @romanpr6691 Год назад +1

    pytesseract создает временные файлы и тупо вызывает tesseract.exe

  • @ko-prometheus
    @ko-prometheus Год назад

    🚜🚛🚚🛻🚙🚘🚗🚖🚕🚔🚓🚒🚑🚐🚎🚍🚌🚋🚞🚝🚊🚉🚆

  • @iml404
    @iml404 Год назад

    Автор, это точно видеоурок? Используем то, передаём это, а в чем идея - не понятно. Рассказал бы для начала про либы которые ты импортировал ну и так далее. А читать мы все умеем

  • @drimmtim
    @drimmtim Год назад

    не работает

  • @random0nik
    @random0nik Год назад

    1 ошибка из 5 качественных фото. Ну даже не знаю😮😢

  • @vladimirkikalov234
    @vladimirkikalov234 Год назад

    еще

  • @БОЙФРЕНДИОЗОДА9999ХУМАШ

    Как откриват откривать картинку от Md5. Хашироване

    • @darkunderground8103
      @darkunderground8103 Год назад

      он поддерживает только форматы:
      SUPPORTED_FORMATS = {
      'JPEG',
      'JPEG2000',
      'PNG',
      'PBM',
      'PGM',
      'PPM',
      'TIFF',
      'BMP',
      'GIF',
      'WEBP',
      }

  • @BaradaFreeman
    @BaradaFreeman Год назад

    Кирилицу не понимает?

    • @PythonToday
      @PythonToday  Год назад +1

      Понимает, есть разные словари, под языки. Just google

  • @АлексейЕршов-у3г

    Pytesseract распознаёт плохо.

    • @PythonToday
      @PythonToday  Год назад

      Есть альтернативы?

    • @ВиталийКучер-о6ю
      @ВиталийКучер-о6ю Год назад

      Модель можно обучить на своих данных и будет хорошо распознавать

    • @ВиталийКучер-о6ю
      @ВиталийКучер-о6ю Год назад

      @@PythonToday
      Python + OpenCV + Keras т.е обучить свою модель

    • @agrotok1587
      @agrotok1587 Год назад

      @@ВиталийКучер-о6ю все есть давно ... но для индустрии . а эта песочница для яслей

  • @ДенисНикитин-р3э
    @ДенисНикитин-р3э 10 месяцев назад

    Пытаюсь повторить выдаёт такую ошибку может подскажете в чём дело? File "f:\PythonProject\Car_Plate_Detection\main.py", line 9, in open_img
    carplate_img = cv2.cvtColor(carplate_img, cv2.COLOR_BGR2RGB)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    cv2.error: OpenCV(4.9.0) D:\a\opencv-python\opencv-python\opencv\modules\imgproc\src\color.cpp:196: error: (-215:Assertion failed) !_src.empty() in function 'cv::cvtColor'

    • @ДенисНикитин-р3э
      @ДенисНикитин-р3э 10 месяцев назад +1

      Спасибо разобрался путь к изображению был в формате windows, а надо было обратные "/" сделать

  • @sv818
    @sv818 Год назад

    Где вы берете эти методы и команды все?

    • @PythonToday
      @PythonToday  Год назад

      Из документаций модулей, всё доступно в интернете