Automatic age estimation is a challenging problem attracting attention of the computer vision and pattern recognition communities due to its many practical applications. Artificial neural networks, such as CNNs are a popular tool for tackling this problem, and several datasets which can be used for training models are available. Despite the fact that dogs are the most well studied species in animal science, and that ageing processes in dogs are in many aspects similar to those of humans, the problem of age estimation for dogs has so far been overlooked. In this paper we present the DogAge dataset and an associated challenge, hoping to spark the interest of the scientific community in the yet unexplored problem of automatic dog age estimation.
Заключительная часть цикла вводных заметок в машинное зрение посвящена использованию предобученных сетей в задаче детектирования. В частности использование сетей, обученных на датасете Coco на базе фреймворка TensorFlow Object Detection API.
В отличие от предыдущих статей, которые могли быть выполнены в стандартном окружении Python, эту часть рекомендуется выполнять в Jupyter Notebook, запущеном в контейнере (либо пользоваться облачными сервисами, например colab.research.google.com в силу того, что в процессе будут устанавливаться компоненты.
Установка TensorFlow Object Detection API
Первым делом необходимо установить необходимые компоненты TensorFlow Object Detection API. Для его установки необходимо клонировать репозиторий, скомпилировать модели и запустить тесты.
Получите tenorflow/models или cd в родительский каталог репозитория.
import os
import pathlib
if "models" in pathlib.Path.cwd().parts:
while "models" in pathlib.Path.cwd().parts:
os.chdir('..')
elif not pathlib.Path('models').exists():
!git clone --depth 1 https://github.com/tensorflow/models
Скомпилируйте protobufs и установите пакет object_detection
%%bash
cd models/research/
protoc object_detection/protos/*.proto --python_out=.
%%bash
cd models/research/
protoc object_detection/protos/*.proto --python_out=.
Импортируем зависимости и добавим в системные пути расположение TensorFlow Object Detection API
import sys, os
sys.path.append('models/research')
sys.path.append('models/research/object_detection')
import numpy as np
import six.moves.urllib as urllib
import tarfile
import zipfile
import cv2
from PIL import Image
from matplotlib import pyplot as plt
import tensorflow as tf
from object_detection.utils import ops as utils_ops
from utils import label_map_util
from utils import visualization_utils as vis_util
Загрузка предобученной модели
Зададим URL, где хранятся предобученные модели и имя планируемой к использованию модели.
Следующим этапом введения в компьютерное зрение является переход к более широкораспространенному инструменту в современных исследованиях, а именно нейронным сетям.
Знакомство с нейронными сетями начнем с фреймворка Keras. И на базе того же датасета MNIST попробуем сначала обучить собственную сверточную нейронную сеть.
По умолчанию Keras имеет в своей основе TensorFlow, который имеет достаточно хорошую поддержку GPU.
В качестве простейшей иллюстрации рассмотрим классификацию датасета MNIST двумя подходами, и. заодно, познакомимся с двумя инструментами.
Датасет MNIST представляет собой набор из 70000 изображений рукописных цифр от 0 до 9, который делится на 60000 обучающих изображений и 10000 тестовых. Подробное его описание и он сам доступены по адресу https://www.openml.org/d/554.
Цифры были нормализованы по размеру и центрированы на изображении фиксированного размера. Исходные черно-белые изображения из NIST были нормализованы по размеру, чтобы поместиться в поле размером 20×20 пикселей при сохранении их соотношения сторон. После нормализации изображения сглажены, вследствие чего содержат уровни серого. Полученные изображения центрированы в поле 28×28 путем вычисления центра масс пикселей и перемещения изображения таким образом, чтобы расположить эту точку в центре.
Когда-то этот датасет был одним из соревновательных датасетов для научных исследований в области классификации изображений, однако, на данный момент современными средствами и методами точность классификации приблизилась к 100%, а датасет получил роль учебного и является хорошей базой для первых шагов в машинном обучении.
Одним из наиболее известных фреймворков для машинного обучения с использованием классических методов является scikit-learn.
Статья является вводной в проблему компьютерного зрения. Разумеется, в рамках одной статьи невозможно подробно рассказать об инструментах и научить ими пользоваться, однако целью ставится введение в задачу реализации компьютерного зрения, зачем оно нужно и где применяется на данный момент, а где планируется.
Эта страница является переводом условий нашего соревнования на конференции ICANN19. Оригинал.
Добро пожаловать на страницу соревнования по машинному обучению «Automatic Estimation of Dog Age»
Автоматическая оценка возраста является сложной проблемой, привлекающей внимание ученых, занимающихся вопросами компьютерного зрения и распознавания образов из-за множества практических применений. Искусственные нейронные сети, такие как CNN, являются популярным инструментом для решения подобных проблем, а нами предлагается несколько наборов данных, которые можно использовать для обучения моделей.
Несмотря на то, что собаки являются наиболее хорошо изученными видами в науке о животных, и что процессы старения у собак во многих аспектах сходны с таковыми у людей, проблема оценки возраста собак до сих пор игнорируется.
Целью этого соревнования является разработка моделей, которые будут точно прогнозировать возраст собаки по ее изображению.
Это соревнование основано на наборе данных DogAge, который был тщательно собран в сотрудничестве ученых, работающих в области информационных технологий и исследований животных. Датасет содержит изображения собак, сопоставленных с одним из трех классов: молодые (от 0 до 2 лет), взрослые (от 2 до 5 лет) или старые (> 6 лет).
В настоящее время набор данных состоит из двух частей:
Экспертные данные: содержит 1373 изображения, собранные учеными и включает в себя домашних собак, собак из приютов, лабораторий, кинологических организаций и коммерческих питомников. Их возраст и разделение на три группы были тщательно проверены. Изображения в основном являются качественными портретами с мордой собаки, направленной вверх.
Данные Petfinder: содержит 26190 изображений, собранных с помощью API Petfider, портала для поиска домашних животных. Разделение собак на группы не проверено, а сами собаки сняты с разнообразных углов и расстояний. Необработанные данные были очищены: удалены фотографии с более чем одной собакой, содержащие других домашних животных или большие части людей, а также изображения низкого качества.
Две части набора тренировочных данных можно найти здесь.
Организаторы
Данное соревнование организовано:
ICANN’19: International Conference on Artificial Neural Networks
School of Biology and Environmental Sciences, University of Salford
Важные даты:
Представление решения открывается: 1 мая 2019 г.
Срок подачи решения истекает 10 сентября 2019 г.
Объявление победителя: 14-17 сентября, на ICANN’19
Победитель будет определен в соответствии с критериями, определенными ниже, и получит приз. Ожидается, что победитель, а также другие участники представят статьи, описывающие их методологические подходы, для публикации в рецензируемом журнале (обсуждается).
Критерием успеха будет достижение как минимум 60% средней точности (мАР). Среди них лучший результат mAP будет выбран в качестве финального победителя.
Для обучающихся по направлению специальности «Управление в технических системах», очень важно иметь практику работы с реальными объектами. Будущие бакалавры и магистры должны точно знать, как работают многие технические объекты, и любые теоретические знания, полученные на лекционных занятиях, должны быть подкреплены практикой. Студентам желательно уметь разрабатывать систему управления не только теоретически, но и иметь навыки реализовать её на разных устройствах. Например, уметь программировать промышленные контроллеры.
В прошлой статье мы рассмотрели, как можно решать системы линейных алгебраических уравнений, однако возможности TensorFlow этим не ограничиваются. Несмотря на то, что в явном виде библиотека не содержит инструментария для решения нелинейных систем, в ней есть множество инструментов для решения оптимизационных задач, а численное решение сиcтемы уравнений сводится как раз к такой задаче.
Библиотека TensorFlow широко известна, в основном, в контексте машинного обучения и нейронных сетей. Однако, TensorFlow изначально не является библиотекой машинного обучения в чистом виде, а позиционируется разработчиками, как библиотека для высокопроизводительных вычислений (high perfomance computing), а это значит, что область ее применения значительно шире. Итак, выступая на конференции с докладом о том, как мы применяли TensorFlow для задачи оценки показателей надежности, я получил вполне закономерный вопрос: «А можно ли использовать TF для решения систем уравнений?». Ответ, естественно, положительный, и в этой статье рассмотрим, как решать системы линейных алгебраических уравнений.
В статье предложена иерархическая модель процесса нейросетевого диагностирования систем управления турбоагрегатами. Выделены два уровня обработки данных, которые последовательно оценивают степени принадлежности симптомов к каждой из потенциальных неисправностей и ставят диагноз техническому состоянию. Для ускорения обучения нейронной сети предложен метод многоэтапного тренинга. На примере системы управления газовой турбиной анализируется эффективность предложенной архитектуры интеллектуального диагностического аппарата с сетью прямого распространения и LSTM-сетью.
Доклад представлен на международной научной конференции «IEEE Northwest Russia Conference On Mathematical Methods In Engineering And Technology: ММEТ NW 2018»