Воронина П. А.
Яковлева Д. В.
РГПУ им. А. И. Герцена,
г. Санкт-Петербург
Подходы к обучению учителей информатики технологиям искусственного
интеллекта на примере машинного обучения и компьютерного зрения
Статья посвящена
проблеме развития компетентности будущих учителей информатики в сфере
технологий искусственного интеллекта. Целью исследования является разработка
подходов к обучению бакалавров педагогического образованиям технологиям
машинного обучению в целом и, в частности, алгоритмам трекинга для выявления
объектов в видеопотоке.
Voronina P.
A.
Yakovleva
D. V.
HSPU,
St. Petersburg,
Russia
Approaches to teaching teacher’s computer science artificial intelligence
based on machine learning and computer vision
The article is devoted to the problem of developing
the competence of future informatics teachers in the field of artificial
intelligence technologies. The aim of the study is to develop approaches to
teaching bachelors of pedagogical education in machine learning technologies in
general and, in particular, tracking algorithms for identifying objects in a
video stream.
XXI век является веком
высоких технологий. Технологии развиваются и усовершенствуются с каждым днем,
появляются новые системы и приложения, устройства и функции.
В частности,
технологии искусственного интеллекта становятся неотъемлемой частью жизни общества,
человека:
- голосовые помощники (чат-боты) широко используются в различных сферах,
- разработки в области естественного языка позволяют быстро получить перевод
текста на иностранный язык или преобразовать речь в текст
- технологии компьютерного зрения используются для обнаружения и отслеживания
поведения объектов - в целях безопасности, для поиска пропавших людей, для
реализации механизмов прокторинга и т.д.
- рекомендательные системы позволяют настроить контент цифрового ресурса на
потребности конкретного пользователя и т.д.
В связи с этим
актуальной, и в то же время недостаточно разработанной, является тематика,
связанная с преподаванием искусственного интеллекта в школе, чтобы с раннего
возраста человек мог быть вовлечен в данную тему [1]. Необходимо готовить
будущих учителей информатики для профессиональной деятельности в этой области:
разрабатывать подходы к обучению различным технологиям искусственного
интеллект, методики, учебно-методические материалы, цифровые ресурсы,
демонстрационные примеры, контрольно-измерительные материалы и т.д.
Рассмотрим
разрабатываемые авторами подходы к обучению технологиям искусственного
интеллекта на примере машинного обучения и компьютерного зрения.
Машинное обучение –
это раздел теории искусственного интеллекта, предметом которого является поиск
методов решения задач путем обучения в процессе решения сходных задач. Для
построения таких методов используются средства алгебры, математической
статистики, дискретной математики, теории оптимизации, численных методов, и других
разделов математики.[5]
Основными задачами машинного обучения
является кластеризация, классификация, поиск правил, уменьшение размерности,
регрессия, нейронные сети. Классическое машинное обучения делится на обучение с
учителем и обучение без учителя. Обучение «с учителем» подразумевает, что
данные, на основе которых необходимо составить прогноз собраны. А обучение «без
учителя» подразумевает, что есть данные, свойства которых нам необходимо
определить.
В настоящий момент разработано и
представлено большое количество цифровых образовательных ресурсов для обучения
технологиям искусственного интеллекта. При создании любого курса необходимо проанализировать
существующие курсы и на основе собранных материалов создавать собственный
ресурс для обучения. Проведенный нами анализ таких ресурсов по машинному
показал, что курс, представленный на открытой платформе Stepic, по нашему
мнению, в наибольшей степени подходит для использования при обучении учителей
информатики. В рамках данного исследования рассмотрим цифровой ресурс «ИИ
Старт» [6].
Ресурс включает широкий набор тем,
отражающий весь спектр теории машинного обучения. Курс разбит на лекции и
практические задания. Тематическое планирование отражено на главной странице и
включает двадцать шесть тем. Перечислим некоторые из них: «Циклы и работы со
строками», «Библиотека Numpy», «Введение в машинное обучение», «Линейная
регрессия» и др. Исходя из перечисленных тем, можно сделать вывод о том, что
курс имеет достаточно обширное содержание, включает в себя основы
программирования на языке Python.
Лекции, изучаемого ресурса, представлены
в формате видео, сопровождаются интерактивной презентацией. Практические
задания включают решение математических задач или задач по программированию на языке
Python. Уровень сложности заданий сопоставим с уровнем знаний студентов старших
курсов по таким предметам как «Дискретная математика», «Теория вероятностей и
математическая статистика», «Математическая логика и формальные языки».
Изучения языка
программирования, не является основным в рамках изучения темы «Машинное
обучение». В связи с этим, считаем рациональным при создании авторского курса
убрать данный раздел из содержания. Так как цели изучения двух направлений
отличаются и изучение машинного обучения предполагает знание языка
программирования. Перед началом изучения курса необходимо провести
тестирование. Для того, чтобы определить уровень знаний обучающихся по
программированию на Python. Оно состоит из блоков
вопросов по темам: работа со строками и числами, циклы, функций, массивы,
библиотеки Python.
В разрабатываемом нами курсом
предлагается увеличить количество практических заданий. Они должны быть
направлены на работу с фрагментами кода программ. Практические задания целесообразно
разделить на уровни сложности. Данный принцип поможет ученикам выявить уровень
своих знаний на начальном этапе и достигнуть желаемого результата. С помощью
такого подхода к организации практических заданий будет реализован принцип
индивидуализации и персонализации обучения.
Исходя из проанализированных нами курсов
и литературы по машинному обучению составим тематическое планирование курса. Сложность
его формирования состоит в том, что необходима фундаментальная математическая
база для понимания идеи и смысла алгоритмов. В связи с этим необходимо отобрать
математические модели такого уровня, который был бы доступен для понимания
студентам, изучающим математику, учитывая, что математика не являлась
первостепенным предметом изучения. Поэтому в рамках изучения курса
рассматриваются следующие темы: классификация, кластеризация, линейная
регрессия.
Рассмотрим демонстрационный вариант задачи кластеризации. Данными, на основе которых будет составлен прогноз будет классический набор данных ирисов Фишера. Он представлен в виде набора из 150 записей с пятью атрибутами. И класс, соответствующий одному из трех видов, обозначенных 0, 1, 2, соответственно. Наш алгоритм должен принимать четыре свойства одного конкретного цветка и предсказывать, к какому классу он принадлежит. Обучающимся предлагается текст программы с комментариями [7]:
# Импортируем библиотеки
from sklearn
import datasets
import matplotlib.pyplot as plt
# Загружаем набор данных
iris_df = datasets.load_iris()
# Методы, доступные для набора данных
print(dir(iris_df))
# Признаки
print(iris_df.feature_names)
# Метки
print(iris_df.target)
# Имена меток
print(iris_df.target_names)
# Разделение набора данных
x_axis = iris_df.data[:, 0] # Sepal Length
y_axis = iris_df.data[:, 1] # Sepal Width
# Построение
plt.xlabel(iris_df.feature_names[0])
plt.ylabel(iris_df.feature_names[1])
plt.scatter(x_axis, y_axis,
c=iris_df.target)
plt.show()
На рисунке 1 представлен результат
работы программы:

Рис.1
На диаграмме фиолетовым цветом обозначен
вид Setosa, зеленым – Versicolor и желтым – Virginica. При построении были
взяты лишь два признака.
Создаваемый курс предлагается завершить
проектной работой. Данный способ поможет ученикам сгруппировать все полученные
знаний и умения в один ресурс. Проект может быть направлен на создание
фрагмента ресурса по обучению школьников машинному обучению. То есть
адаптированы для школьников старших классов математические модели, представлены
простые алгоритмы. Или же проект может быть направлен на создание упражнений
для школьников по теме «Машинное обучение». Отобраны программы и адаптированы
под их уровень знаний. Так как создаваемый нами курс направлен на студентов
педагогических вузов, то и проект может быть реализован в данной сфере.
Рассмотрим подход к обучению студентов
алгоритмам трекинга для выявления объектов в видеопотоке, базирующихся на
технологиях машинного обучения. Разнообразие систем трекинга напрямую повлияло
на широту применения технологии. Наиболее распространенные сферы это медицина,
промышленность, вооруженные силы и игровая индустрия. В Российскую систему
образования, за последние 5 лет, активно внедрялась система прокторинга,
обеспечивающая возможность визуального контроля за онлайн сдачей экзаменов с
использованием алгоритмов детектирования, основанных на технологии трекинга.
Базовыми понятиями в области алгоритмов
трекинга являются:
- цель – объект, расположение которого в кадре необходимо детектировать;
- сцена – пространство, обозреваемое камерой;
- динамический объект (объект интереса) – объект в сцене, расположение
которого изменяется в течении времени;
- статический объект – объект в сцене, положение которого не изменяется в
течение времени.
Алгоритмы трекинга состоят из следующих
этапов [2]:
- выделение признаков - характерных особенностей объекта, по которым
осуществляется его выявление в видеопотоке среди других объектов сцены;
- выбор цели, определение ее местоположения в сцене, ее дальнейшее сопровождение
– выявление таких характеристик как: траектория движения, прослеживаемая при
переходе от кадра к кадру либо вычисление координат объекта [4];
- постобработка полученной информации для последующего вывода или использования
- подсчет количества отслеживаемых объектов и цветовое выделение их положения в
сцене.
Перед извлечением информации из
видеопотока его необходимо предварительно подготовить. Примерами первичной
обработки может служить бинаризация - преобразование цветового пространства, масштабирование
кадра для уменьшения объема обрабатываемой информации. [3] Для отслеживания
цели и обработки входных данных используют алгоритмы оценки характерных
параметров объектов.
Для программной реализации алгоритмов
трекинга используется открытая библиотека компьютерного зрения OpenCV (Open
source Computer Vision Library) с большим количеством модулей обработки и
распознавания объектов. [2]
Алгоритмы трекинга базируются на сложном
математическом аппарате, в частности, математическом анализе, теории вероятностей,
дискретной математике и т.д., программная реализация также требует от
разработчика профессиональных знаний в области программирования. При отборе
содержания обучения необходимо учитывать уровень владения студентами этими
предметными областями. В разрабатываемый курс обучения предполагается включить
следующие темы, формирующие представление об алгоритмах трекинга и способах
программной реализации:
1. Базовые понятия алгоритмов трекинга.
Области применения технологий трекинга.
2. Цветовые пространства, библиотека
OpenCV.
3. Алгоритмы поиска объекта в сцене.
Каскад Хаара.
Лекционный материал содержит краткое
описание используемого математического аппарата и примеры программ на языке
Python c пояснениями и комментариями. При выполнении лабораторных работ
студенты разбирают предложенные им программы, модифицируют их, исполняют для
различных входных наборов данных, анализируют результаты, оценивают качество
работы программы.
Например, лекционный материал по теме
«Алгоритмы поиска объекта в сцене. Каскад Хаара» включает следующие основные
понятия, алгоритмы и методы: трекинг, классификатор, первичная обработка,
признаки объекта, алгоритмы изменения цветового пространства, отрисовки контура
объекта по его координатам, каскад Хаара, методы захвата видеопотока с камеры и
вывода результатов в отдельном окне.
Алгоритм «Каскад Хаара» сканирует кадр
по прямоугольным зонам, выявляет области с резким изменением яркости, вычисляет
разность яркости между пикселями, которая становится значением признака
детектируемого объекта определенного размера. Схожие по признакам элементы
формируют координаты объекта на изображении, которые в результате постобработки
используются для отрисовки контура найденного объекта. [3]
В качестве практического задания студентам предлагается изучить программу по обнаружению лиц на языке Python c использованием библиотеки OpenCV. – Создается окно, в котором отображается видеопоток с камеры, далее сцена проходит этап преобразования цветового пространства и этап сканирования каскадом Хаара, в результате чего детектируемые объекты обводятся в прямоугольные области.
import cv2
# загрузка обученного скрипта каскада Хаара
face_cascade =
cv2.CascadeClassifier("haarcascade_frontalface_default.xml")
# объект для считывания видео
cap = cv2.VideoCapture(0)
while True:
# захват видео с камеры
ret, frame = cap.read()
if not ret:
break
# бинаризация видеопотока
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
# обнаружение лиц в окне
faces = face_cascade.detectMultiScale(gray,
scaleFactor=1.1, minNeighbors=5)
#отрисовка прямоугольного контура у найденного лица
for (x, y, w, h)
in faces:
cv2.rectangle(frame, (x, y), (x + w, y + h),
(0, 0, 255), 2)
# вывод результата в отдельном окне
cv2.imshow("Face
Detection", frame)
# остановка захвата кадра
if cv2.waitKey(1) & 0xFF ==
ord('q'):
break
# закрытие окон и отключение камеры
cap.release()
cv2.destroyAllWindows()
Для уточнения представления студентов о
сути алгоритма им могут быть даны следующие задания: проанализировать параметры
функции face_cascade и выявить, как их изменение влияет на качество получаемого
результата; ответить на вопрос, в каком случае статический объект может быть
детектирован как лицо и т.д.
Предлагаемое задание предназначено для
развития у студентов навыков анализа и корректировки параметров используемых
методов обработки относительно получаемого результата обработки кадра. В случае
уменьшения значений параметров предполагается появление в сцене объектов, не
представляющих интерес в их идентификации. Конкретная реализация трекера –
алгоритма поиска лиц, должна стать результатом тщательного исследования условий
применяемых методов обработки.
Вывод. Предложенные авторами подходы к
обучению будущих учителей информатики технологиям машинного обучения учитывают
уровень подготовки студентов в области математики и информатики, содержат
большое количество практических заданий для уточнения представления студентов о
технологиях машинного обучения и формирования навыков программной реализации
простых алгоритмов. Подготовленные учебные материалы могут быть использованы
студентами в будущей профессиональной деятельности.
Литература:
1. Баранова Е. В., Симонова И. В, Подготовка
будущих учителей информатики области искусственного интеллекта, Методика
преподавания в современной школе: проблемы и инновационные решения. 2022. С.
119-125, ISBN: 978-5-8064-3253-8.
2. Кудрявцев, Н. Г. Практика применения
компьютерного зрения и элементов машинного обучения в учебных проектах :
учебное пособие / Н. Г. Кудрявцев, И. Н. Фролов. — Горно-Алтайск : ГАГУ, 2022.
— 180 с. — Текст : электронный // Лань : электронно-библиотечная система. —
URL: https://e.lanbook.com/book/271100
(дата обращения: 12.02.2023). — Режим доступа: для авториз. пользователей (2П)
3. Кэлер, А. Изучаем OpenCV 3. Разработка
программ компьютерного зрения на C++ с применением библиотеки OpenCV / А.
Кэлер, Г. Брэдски ; перевод с английского А. А. Слинкина. — Москва : ДМК Пресс,
2017. — ISBN 978-5-97060-471-7. — Текст : электронный // Лань :
электронно-библиотечная система. — URL: https://e.lanbook.com/book/108126 (дата
обращения: 9.02.2023). — Режим доступа: для авториз. пользователей. — С. 744.).
4. Лошаков К. П., Мамонова Т.Е. Алгоритм
отслеживания и выделения движущихся объектов в видеопотоке. 2019. С 77-86. ISSN
1814-1196
5. Миронов А. М., Машинное обучение, Часть 1,
Москва, ООО "МАКС Пресс", ISBN
978-5-317-06012-1, 90 с.
6. Курс по машинному обучению. Проект «ИИ
Старт», URL:https://stepik.org/course/125587/syllabus
, дата обращения (10.01.2023).
7. Задача кластеризации, URL: https://proglib.io/p/unsupervised-ml-with-python , дата обращения (14.01.2023).