<filename>lab_01/text/main.tex<gh_stars>1-10
%!TEX TS-program = xelatex

% Шаблон документа LaTeX создан в 2018 году
% Алексеем Подчезерцевым
% В качестве исходных использованы шаблоны
% 	<NAME> (<EMAIL>) 
%		https://www.writelatex.com/coursera/latex/5.2.2
%	LaTeX-шаблон для русской кандидатской диссертации и её автореферата.
%		https://github.com/AndreyAkinshin/Russian-Phd-LaTeX-Dissertation-Template

\documentclass[a4paper,14pt]{article}

\input{data/preambular.tex}
\begin{document} % конец преамбулы, начало документа
    \input{data/title.tex}
    \tableofcontents
    \pagebreak


    \section{Задание}

    \begin{enumerate}
        \item Собрать электрическую схему подключения необходимых устройств.

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

        \item Разработать код управления подключенными устройствами;
        \item Реализовать нейронную сети MobileNet с использованием Raspberry Pi;
        \item Загрузить все материалы в репозиторий github.
    \end{enumerate}


    \section{Выполнение работы}

    \subsection{Сборка устройства}

    Схема подключение светодиода изображена на рис.~\ref{fig:led}.
    Светодиод нельзя напрямую подключать к выводам GPIO, поэтому последовательно с ним ставится резистор.

    \begin{figure}[H]
        \centering
        \includegraphics[width=0.95\linewidth]{schemas/led_bb}
        \caption{Схема подключения светодиода}
        \label{fig:led}
    \end{figure}

    Схема подключение сервомотора изображена на рис.~\ref{fig:servo}.
    Для подключения данного устройства необходимо добавить дополнительное питание.

    \begin{figure}[H]
        \centering
        \includegraphics[width=0.95\linewidth]{schemas/servo_bb}
        \caption{Схема подключения сервомотора}
        \label{fig:servo}
    \end{figure}

    Камера подключается посредством USB.

    \subsection{Код управления поиска красных круглых объектов}

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

    {\small \VerbatimInput{../raspberrypi_lab_01/hardware.py}}

    Далее представлен код работы детектора красных кругов.
    Приложение в цикле получает изображение, подготавливает его и ищет целевые объекты.
    При нахождении подсвечивает их зеленым кругом.
    Кроме того, на светодиод отправляется команда в зависимости от наличия цели.
    Если самая крупная цель находится не по центру изображения, отправляется команда на поворот камеры.

    {\small \VerbatimInput{../raspberrypi_lab_01/task_01_red_detection.py}}

    \subsection{Реализация нейронной сети MobileNet}

    Далее представлен код, реализующий поиск объектов с помощью MobileNet.
    При детектировании такого объекта выделяется область данного объекта и добавляется подпись с вероятностью принадлежности к определенному классу.

    {\small \VerbatimInput{../raspberrypi_lab_01/task_02_mobile_net.py}}


    \section{Исходные коды}

    Исходные коды доступны на \href{https://github.com/AsciiShell/hse_hlimds_labs}
    {https://github.com/AsciiShell/hse\_hlimds\_labs}.

    Pull request работы \href{https://github.com/AsciiShell/hse_hlimds_labs/pull/1}
    {https://github.com/AsciiShell/hse\_hlimds\_labs/pull/1}.

    Релизы \href{https://github.com/AsciiShell/hse_hlimds_labs/releases}
    {https://github.com/AsciiShell/hse\_hlimds\_labs/releases}.


    \section{Выводы по работе}

    В ходе работы получен опыт работы с Raspberry Pi.
    Был получен опыт написания кода для управления периферийными устройствами.
    Был получен опыт работы с библиотекой opencv.
    Изучены и созданы программы для обработки видеоряда с помощью данной библиотеки.
    Была написана программа для детектирования красных круглых объектов на видео.
    Был создан модуль для управления периферийными устройствами.
    Была применена модель MobileNet для детектирования объектов на видео.
    Итоговый проект был протестирован на плате.

\end{document} % конец документа
