Рубрики
Без рубрики

Обучите пользовательскую модель визуальной распознавания, используя клиент Python Clarifai

. Tagged Computerivery, API, Python, Clarifai.

В декабре наша V2 API Окончил предварительный просмотр разработчика к общей доступности Отказ Разве они не растут так быстро?! Таким образом, вот полезный учебник о том, как использовать один из самых популярных функций API Clarifai V2 – пользовательские тренировки. Пользовательское обучение дает вам возможность научить новых концепциях для нашей технологии распознавать только несколько примеров и пару строк кода!

Если вы видели наши новые Документация API V2 Вы, вероятно, заметили, что все немного по-другому, чем в V1 – новые SDK, прохладный новый визуальный инструмент, а новые проекты ждут вас, чтобы построить их с использованием пользовательских тренировок! В одном из наших предыдущих сообщений в блоге мы говорим о Как использовать Preview UI для пользовательских тренировок Отказ Хотя это было потрясающе (вроде очень потрясающе), мы собираемся записать это снаряжение и показать вам, как сделать некоторые из той же вещей, использующих Программирование Отказ

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

Во-первых, во-первых, нам нужно найти способ интерфейса с API с нашим кодом. Мы написали несколько разных клиентов для использования на нескольких разных языках. Для этого учебника мы собираемся придерживаться клиента Python. Кто не любит языки программирования, которые вышли из Монти Python ?

Примечание. Обязательно установите Питон это не менее 2,7 или выше. Если вы не уверены, что из чего вы могли бы иметь, пойти в свой терминал и проверить, что Python --version выходит для тебя. Например, это то, что происходит в моей системе:

$ python --version
Python 2.7.10
# Or if you are using Python3
# Python 3.5.1

Также для установки клиента API Clarifai мы будем уверены, что у нас есть PiP, Manager Package Package:

$ pip --version
pip 9.0.1 from /path/to/Python/2.7/site-packages (python 2.7)
# or if you are using Python3
# pip 9.0.1 from /path/to/python3.5/site-packages (python 3.5)

С этими двумя способами, теперь мы можем наконец добраться до установки клиента Python!

$ pip install clarifai
# NOTE: If this doesn't work, consider having a sudo in front of the command 
# to tell your computer who is boss.

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

Как только это сделано, вернитесь к терминалу и введите:

$ clarifai config

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

CLARIFAI_APP_ID: []: ************************************YQEd
CLARIFAI_APP_SECRET: []: ************************************gCqT

Поздравляю! Если вы сделали это так далеко, вы успешно добавили клиент Clarifai Python в вашу систему. Иди! Сейчас, с этим с дороги, мы будем писать какой-нибудь код!

С пользовательской подготовкой вы можете научить Clarifai узнать все, что вы хотите на изображении! Так для меня я научу учить Carrifai о Corgis (потому что Corgis лучшие). Для этой части вы можете найти 10-20 изображений, с которыми вы хотите тренировать свою модель. Это будет известно как «Учебный набор», набор изображений, которые вы используете для обучения с этим, будут иметь положительные и негативные примеры любой концепции, которую вы пытаетесь получить Clarifai, чтобы узнать.

Итак, я собрал 15 изображений Corgis снятого из разных углов (включая все важные «Corgi Butt» позу) с различными фоновыми объектами, чтобы убедиться, что Clarifai может распознать то, что я хочу. Хотя все мои изображения jps, Clarifai поддерживает файлы JPG, PNG, BMP и TIFF! В зависимости от того, что вы хотите тренироваться, это может быть лучше иметь более реалистичное фото того, что вы хотите, чтобы Clarifai искать, а иногда и все в порядке, чтобы нужен просто объект на передней части сплошного фона.

В папке «Мой проект» я сделал папку для дома всех изображений, которые я собираю для концепции. Так что все мои изображения в моем Corgi/ Каталог будет размещать изображения, которые будут иметь «Corgi» как концепцию.

Чтобы добавить объект изображения с концепцией Corgi, мы будем писать:

from clarifai.rest import ClarifaiApp
from clarifai.rest import Image as ClImage

# Our app
app = ClarifaiApp()

# Adding our image onto our app
app.inputs.create_image_from_filename('./corgi/corgi-1.jpg', concepts=['corgi'])

Когда мы запускаем это ( Python.py ), мы можем видеть наш вклад добавлен в наше приложение на Preview UI:

Чтобы использовать мощность программирования, мы автоматизируем процесс. Давайте сделаем функцию, которая импортирует все наши изображения внутри каталога с той же концепцией. В этом случае у нас будет все фотографии под Corgi/ С нашей концепцией «Corgi»!

# Packages for reading local files
import os
from glob import glob

def create_image_set(img_path, concepts):
    images = []
    for file_path in glob(os.path.join(img_path, '*.jpg')):
        print(file_path)
        img = ClImage(filename=file_path, concepts=concepts)
        images.append(img)

    return images

Это позволит нам легко брать в каких-либо изображениях, независимо от того, где, а также позволить нам установить некоторые изображения иметь концепции! Это просто какой-то мой код, и вы превышаете, чтобы улучшить его, чтобы соответствовать вашим потребностям.

ЗАМЕТКА: Для этой функции мы делаем предположение, что наше количество изображений на пакет относительно мало. Если вы отправляете большие наборы изображений одновременно, с номерами около 100 000+ изображений на вызов функции, вы можете рассмотреть возможность рассмотрения этой функции для асинхронной обработки, отправляющей запрос.

Так что теперь наш код будет больше похож на это:

from clarifai.rest import ClarifaiApp
from clarifai.rest import Image as ClImage
from glob import glob
import os

def main():
    app = ClarifaiApp()
    image_set = create_image_set('corgi/', ['corgi'])
    app.inputs.bulk_create_images(image_set)

def create_image_set(img_path, concepts):
    images = []
    for file_path in glob(os.path.join(img_path, '*.jpg')):
        img = ClImage(filename=file_path, concepts=concepts)
        images.append(img)

    return images

if __name__ == '__main__':
    main()

Обратите внимание, мы называем нашими create_image_set В основном методе и установите наши image_set равный возвращенным результатам. Затем мы отправляем это в app.inputs.bulk_create_images Отказ Теперь вы должны видеть все изображения, которые вы добавили, когда вы запускаете скрипт!

Теперь мы добавили некоторые изображения с нашей концепцией Corgi! Попробуем добавить это на модель и поезд!

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

def main():
    app = ClarifaiApp()
    # image_set = create_image_set('corgi/', ['corgi'])
    # app.inputs.bulk_create_images(image_set)

    model = app.models.create(model_id="puppy", concepts=['corgi'])
    model.train()

Здесь мы создали нашу модель с помощью model_id “Щеня” и концепции, которые находятся на модели, согласуются с понятиями, которые мы имеем на нашей модели. Оттуда мы обязательно называем поезд. Вуаля! Мы обучили нашу модель, чтобы узнать концепцию Corgis!

Теперь скажем, мы хотели использовать нашу модель и посмотреть, работает ли она, мы можем изменить нашу главное:

def main():
    app = ClarifaiApp()
    # image_set = create_image_set('corgi/', ['corgi'])
    # app.inputs.bulk_create_images(image_set)
    # model = app.models.create(model_id="puppy", concepts=['corgi'])
    # model.train()
    model = app.models.get('puppy')

    url = raw_input("URL of image: ")
    # if on Python3, change the above line to
    # url = input("URL of image: ")

    print model.predict_by_url(url)['outputs'][0]['data']['concepts']
    # if on Python3, change the above line to
    # print(model.predict_by_url(url)['outputs'][0]['data']['concepts'])

Мы попросим нашего пользователя дать нам URL-адрес, а затем мы будем печатать против нашей модели щенка! Это даст нам выход всех наших концепций нашей модели:

$ python app.py
URL of image: https://s-media-cache-ak0.pinimg.com/236x/37/5d/48/375d488c51f51c72a01e0e88420becca.jpg
[{u'app_id': u'b066d570bcae40b3b0d5d50176d09cef', u'id': u'corgi', u'value': 0.9865137, u'name': u'corgi'}]

Вот и это для этого учебника! Есть несколько функций и способов делать вещи в пользовательской подготовке. Если вам когда-нибудь понадобится помощь, обязательно обратитесь к нам в support@clarifai.com. . Мы более чем рады помочь!

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

  1. Обязательно указывайте свои входы (изображения) в вашем приложении и сообщите им, какие концепции (или не-концепции) они связаны с!
  2. Убедитесь, что у вас есть модель (место для группы концепций) и концепции! Просто наличие изображений в вашем приложении недостаточно.
  3. Если вы не уверены, как получить доступ к API, используя любые клиенты, обязательно проверьте документацию REPO. Для Python вы можете увидеть все доступные функции здесь Отказ

Выйди мои соотечественники мира. Учите компьютер, как увидеть мир с вашей точки зрения!

Оригинал: “https://dev.to/clarifai/train-a-custom-visual-recognition-model-using-clarifais-python-client”