Skip to content

Lednik7/Mask-R-CNN

Repository files navigation

Mask r-cnn tutorial

P.S. подразумевается, что вы используете среду Anaconda для реализации от matterport

Этот репозиторий ещё не доделан

Подготовка:

Для начала просмотрите requirements.txt

Давайте посмотрим на структуру проекта:

---Project:
  ---models:
    ---....
    ---research:
      ---use_protobuf.py
      ---....
      ---oblect_detection:
        ---train.py
        ---xml_to_csv.py
        ---generate_tfrecord.py
        ---images
        ---....
  ---labelImg.exe
  ---delete.py
  ---convertor.py

Начало работы:

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

Алгоритм действий:

  1. Ищем изображения
  2. Через Chrome сохраняем страницу с выдачей(полностью)
  3. Находим папку с материалами страницы
  4. Удаляем все лишние элементы(должны остаться: i, i(1), i(2)...)
  5. Скачайте файл convertor.py в дерикторию с папкой
  6. Запустите файл

После этих действий необходимо удостовериться, что в папке нет копий. Для этого скачайте файл delete.py и повторите шаги 5,6 с ним.

Теперь поместите эти изображения в папку images.

Аннотрирование:

Один из вариантов для реализации от matterport:

Теперь приступим к аннотированию изображений. Я предпочитаю использовать веб-инструмент VIA(VGG Image Annotator).

На главной странице можно увидеть "Getting Started" - прочитайте его. Скачайте файл в формате json строки(Annotation => Save as JSON)

Мы же используем labelImg.exe из этого репозитория:

Ипользуйте этот инструмент. После каждого аннотирования изображения и сохраните его, как показано на картинке:

Image alt

Preprocessing:

  1. В generate_tfrecord.py найдите функцию class_text_to_int и проставьте метки к классам, как показано на рисунке(метками могут быть только натуральные числа):

Image alt

  1. Для начала давайте скачаем репозиторий в каталог с нашим проектом согласно структуре проекта.

  2. Теперь откроем консоль(Win+R) и напишем:

set PYTHONPATH=F:\Programming\geeksforgeeks_project\models-master;F:\Programming\geeksforgeeks_project\models-master\research;F:\Programming\geeksforgeeks_project\models-master\research\slim
  1. Перейдем в каталог research и используем:
  python use_protobuf.py  .\object_detection\protos\ .\bin\protoc
  1. В этой же директории используем:
  python setup.py build
  python setup.py install
  1. Перейдем в каталог object_detection:
  python xml_to_csv.py
  1. Здесь же:
  python generate_tfrecord.py --csv_input =images/train_labels.csv --image_dir=images/train --output_path=train.record
  python generate_tfrecord.py --csv_input =images/test_labels.csv --image_dir=images/test --output_path=test.record
  1. В каталоге oblect_detection создадим папку traning. Там создадим файл labelmap.pbtxt. Дл каждого класса сделаем такой item:

Image alt

Больше информации:

http://espressocode.top/ml-training-image-classifier-using-tensorflow-object-detection-api/

https://engineering.matterport.com/splash-of-color-instance-segmentation-with-mask-r-cnn-and-tensorflow-7c761e238b46

https://github.com/matterport/Mask_RCNN

https://www.youtube.com/watch?v=-lIVq52AAPc&list=PL7MfTiaPHGdFIqw16GLMsLKrrly8FtN91

https://www.youtube.com/watch?v=dM_LPsgMe84&list=PL4_hYwCyhAvZeq93ssEUaR47xhvs7IhJM&index=13

About

tutorial for object detection

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages