preparation of report for NN advanced

This commit is contained in:
Artur Mukhamadiev 2025-10-16 21:55:58 +03:00
commit db496f087a
11 changed files with 383 additions and 0 deletions

53
.gitignore vendored Normal file
View File

@ -0,0 +1,53 @@
*.acn
*.acr
*.alg
*.aux
*.bak
*.bbl
*.bcf
*.blg
*.brf
*.bst
*.dvi
*.fdb_latexmk
*.fls
*.glg
*.glo
*.gls
*.idx
*.ilg
*.ind
*.ist
*.lof
*.log
*.lol
*.lot
*.maf
*.mtc
*.mtc1
*.nav
*.nlo
*.nls
*.out
*.pdf
*.pyg
*.run.xml
*.snm
*.synctex.gz
*.tex.backup
*.tex~
*.thm
*.toc
*.vrb
*.xdy
*.xml
*blx.bib
.bak
.mtc
build/
*.fdb_latexmk
*.xml
*.pdf
*.fls
*.bcf
*.pyg

View File

@ -0,0 +1,10 @@
\chapter*{Введение}
\addcontentsline{toc}{chapter}{Введение} % Добавляем введение в оглавление
Хирургический комплекс «da Vinci» считается “золотым стандартом” в роботизированной хирургии, предоставляя оперирующему хирургу уникальную систему трехмерной (3D) визуализации операционного поля. Однако ассистенты, ординаторы и остальной персонал лишены возможности стереоскопического обзора, что затрудняет их эффективное участие в операции и ограничивает образовательный процесс. Создание дублирующей системы видеоконтроля, транслирующей стереоскопическое изображение с минимальной задержкой («glass-to-glass»), является актуальной задачей, позволяющей улучшить командное взаимодействие, повысить безопасность и эффективность хирургических вмешательств. Помимо прочего, разработка данной платформы открывает возможности для интеграции дополнительного XR функционала в операционной области ассистентов на операции. Одним из подобных направлений является измерение линейных размеров анатомических структур при проведении лапароскопических операций в реальном времени. Для реализации данной задачи необходимо внедрить два элемента компьютерного зрения в систему, один из которых будет выполнять задачу оконтуривания анатомических структур на изображении, а другой по обученным данным в паре с LiDAR измерять линейные размеры оконтуренных объектов.
В то время как задача оконтуривания является требовательной к разрешению входного изображения и конечный результат напрямую зависит от качества входных данных, измерение линейных размеров уже оконтуренных объектов упирается в точность измерения у LiDAR, что приводит нас к возможности уменьшения входного изображения, с целью снижения уровня алгоритмических задержек в системе. Данный модуль будет на выход выдавать одно число - результат измерения размеров анатомической структуры и не требователен.
Однако обе данных задачи являются достаточно объемными для текущего этапа работы, поэтому был выбран обучающий вариант, чтобы научиться работать с нейронными сетями и столкнуться с подводными камнями, связанными с работой в реальном времени.
Задача повышения разрешения является широко исследованной по состоянию на 2025 год и уже имеется большое количество апробированных реализаций в данной области \cite{li2020deep}, что делает ее хорошим кандидатом для обучающего проекта.

3
chapters/01_dataset.tex Normal file
View File

@ -0,0 +1,3 @@
\chapter*{Данные для обучения нейронной сети}
\addcontentsline{toc}{chapter}{Данные для обучения нейронной сети} % Добавляем введение в оглавление

99
chapters/02_choose.tex Normal file
View File

@ -0,0 +1,99 @@
\chapter*{Выбор архитектуры нейронной сети}
\addcontentsline{toc}{chapter}{Выбор архитектуры нейронной сети} % Добавляем введение в оглавление
\section{Super Resolution Convolutional Neural Network (SRCNN)}
Использование сверточных нейронных сетей для данной работы является стандартом, поэтому и начать стоит с нее. Super Resolution Convolutional Neural Network\cite{DongLHT15} является одним из популярных решений для данной задачи. Архитектура сверточной нейронной сети (рис. \ref{fig:screenshot001})представлена в виде 3 слоев, входного слоя с 3 входами для каждого цвета и 64 фичами, после которых идет один скрытый сверточный слой и один выходной слой. В данном случае, первый слой извлекает набор фич из изображения, в то время, как второй слой нелинейно размечает данные фичи на патчи с высоким разрешением, а последний слой комбинирует предсказания с оценкой окружающих патчей и отдает на выход изображение с повышенным разрешением.
\begin{figure}[h!]
\centering
\includegraphics[width=0.8\linewidth]{screenshot001}
\caption{Архитектура нейронной сети SRCNN \cite{DongLHT15}}
\label{fig:screenshot001}
\end{figure}
Стоит отметить, что в данной архитектуре входное изображение уже должно быть нужного разрешения, увеличивая вычислительную сложность нейронной сети. Что является потенциальным решающим фактором в пользу более продвинутых реализаций методов повышения разрешения.
\begin{lstlisting}[
style=compactpython,
caption=Протестированная реализация SRCNN,
label={lst:SRCNN}
]
class SimpleSuperResolutionNet(nn.Module):
def __init__(self, kernel_size=3, n_feats=64, colors=3):
super(SimpleSuperResolutionNet, self).__init__()
self.conv = nn.Conv2d(
colors, n_feats, kernel_size=kernel_size, padding=kernel_size//2)
half_feats = n_feats//2
self.conv2 = nn.Conv2d(
n_feats, half_feats, kernel_size=kernel_size, padding=kernel_size//2)
self.conv3 = nn.Conv2d(
half_feats, colors, kernel_size=kernel_size, padding=kernel_size//2)
def forward(self, x):
x = torch.relu(self.conv(x))
x = torch.relu(self.conv2(x))
x = self.conv3(x)
return x
\end{lstlisting}
Можно увидеть в листинге \ref{lst:SRCNN}, что размер ядра был выбран отличным от представленных в работе, связано это с тем, что при обучении на наших тестовых данных, одинаковое ядро показало лучшие результаты, в сравнении с оригинальными.
\section{Fast Super Resolution Convolutional Neural Network (FSRCNN)}
sdada
\section{Enhanced Deep Super Resolution (EDSR)}
Некоторым продвижением в задаче повышения разрешения можно считать применение в сверточных нейронных сетях остаточных блоков.\cite{he2016deep} В ключевой реализации \cite{LimSKNL17} была предложена архитектура состоящая из большого количества скрытых остаточных блоков (рис. \ref{fig:resblockedsr}), после начального входного слоя.
% TODO: \usepackage{graphicx} required
\begin{figure}[h!]
\centering
\includegraphics[width=0.2\linewidth]{res_block_edsr}
\caption[Структура остаточного блока в сети EDSR]{}
\label{fig:resblockedsr}
\end{figure}
В отличии от стандартных остаточных блоков, использованных в ResNet \cite{HeZRS15}, в EDSR из остаточного блока удален блок пакетной нормализации, так как данный блок может быть нежелательным в данной задаче
% TODO: \usepackage{graphicx} required
\begin{figure}[h!]
\centering
\includegraphics[width=0.6\linewidth]{edsr_arch}
\caption[Архитектура нейронной сети EDSR \cite{LimSKNL17}]{}
\label{fig:edsrarch}
\end{figure}
Были проверены две реализации: "state-of-the-art", предоставленная авторами статьи, уже предобученная модель, а также своя реализация по образу и подобию предоставленной авторами.
Сеть состояла из 8 остаточных блоков, в каждом из которых было по 64 фичи, с ядром размера 3х3, и значением множителя 0.1
\begin{lstlisting}[
style=compactpython,
caption=Структура остаточного блока,
label={lst:ResBlock}
]
class ResidualBlock(nn.Module):
def __init__(self, n_feats, kernel_size, bias=True, bn=False, act=nn.ReLU(True), res_scale=1.0):
super(ResidualBlock, self).__init__()
m = []
for i in range(2):
m.append(nn.Conv2d(n_feats, n_feats, kernel_size,
padding=(kernel_size//2), bias=bias))
if bn:
m.append(nn.BatchNorm2d(n_feats))
if i == 0:
m.append(act)
self.body = nn.Sequential(*m)
self.res_scale = res_scale
def forward(self, x):
res = self.body(x).mul(self.res_scale)
res += x
return res
\end{lstlisting}

BIN
images/edsr_arch.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

BIN
images/res_block_edsr.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

BIN
images/screenshot001.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 245 KiB

29
main.tex Normal file
View File

@ -0,0 +1,29 @@
% --- ОСНОВНОЙ ФАЙЛ ДОКУМЕНТА ---
\documentclass[a4paper, 12pt]{report}
% --- ПОДКЛЮЧЕНИЕ ПРЕАМБУЛЫ ИЗ ОТДЕЛЬНОГО ФАЙЛА ---
\input{preamble.tex}
% --- ДАННЫЕ ДЛЯ ТИТУЛЬНОГО ЛИСТА ---
% Эти команды можно переопределить здесь при необходимости
\title{Применение нейронных сетей для повышения разрешения выходного изображения в реальном времени в области лапароскопической хирургии}
\author{Мухамадиев Артур Юрисович}
\date{\today}
\begin{document}
% --- ТИТУЛЬНЫЙ ЛИСТ ---
\input{title.tex}
% --- СОДЕРЖАНИЕ ---
%\tableofcontents
%\newpage
% --- ПОДКЛЮЧЕНИЕ ГЛАВ ИЗ ПАПКИ chapters ---
\input{chapters/00_introduction.tex}
\input{chapters/01_dataset.tex}
\input{chapters/02_choose.tex}
% --- СПИСОК ЛИТЕРАТУРЫ ---
\printbibliography[title={Список использованных источников}]
\end{document}

62
preamble.tex Normal file
View File

@ -0,0 +1,62 @@
% --- ПРЕАМБУЛА: ПОДКЛЮЧАЕМЫЕ ПАКЕТЫ И НАСТРОЙКИ ---
% --- КОДИРОВКА И ЯЗЫК ---
\usepackage[T2A]{fontenc} % Кодировка для кириллицы
\usepackage[utf8]{inputenc} % Кодировка исходного файла
\usepackage[russian]{babel} % Поддержка русского языка
\usepackage{titling}
\usepackage{sourcecodepro}
% --- ГЕОМЕТРИЯ СТРАНИЦЫ (ПОЛЯ) ПО ГОСТ 7.32-2017 ---
\usepackage[left=3cm, right=1.5cm, top=2cm, bottom=2cm]{geometry}
% --- ШРИФТЫ И ИНТЕРВАЛЫ ---
\usepackage{setspace}
\onehalfspacing % Полуторный интервал
\usepackage{indentfirst} % Красная строка для первого абзаца в разделе
\usepackage{titlesec}
\titleformat{\chapter}[display]{\fontsize{16pt}{16pt}\bfseries}{}{5pt}{}
\titlespacing{\chapter}{0pt}{24pt}{1\baselineskip}
\titleformat{\section}[display]{\fontsize{14pt}{14pt}\bfseries}{}{5pt}{\arabic{section} }
% --- МАТЕМАТИКА ---
\usepackage{amsmath, amsfonts, amssymb, amsthm, mathtools}
% --- ГРАФИКА ---
\usepackage{graphicx}
\graphicspath{{images/}} % Указываем папку для изображений
\usepackage{caption} % Для настройки подписей к рисункам и таблицам
\captionsetup[figure]{labelsep=period, name=Рисунок} % Подпись "Рисунок 1."
\captionsetup[table]{labelsep=period, name=Таблица} % Подпись "Таблица 1."
% --- БИБЛИОГРАФИЯ (ГОСТ) ---
\usepackage[
backend=biber,
style=gost-numeric, % Стиль цитирования по ГОСТ
sorting=none
]{biblatex}
\addbibresource{references.bib} % Файл с библиографией
\usepackage{listings}
\usepackage{xcolor}
\lstdefinestyle{compactpython}{
language=Python,
basicstyle=\ttfamily\footnotesize, % Smaller font
upquote=true, % Correct quotes
commentstyle=\color{gray}\itshape, % Smaller, italic comments
keywordstyle=\color{blue}\bfseries, % Bold keywords
stringstyle=\color{red}, % Red strings
numberstyle=\tiny\color{gray}, % Tiny line numbers
numbers=left, % No line numbers (or 'left' if desired)
frame=single, % No frame around the listing
showstringspaces=false, % Don't show spaces in strings
breaklines=true, % Allow lines to break
tabsize=2, % Smaller tab size
% For even more compactness, consider removing line numbers, frames, or captions.
% numbers=none,
% frame=none,
% captionpos=b, % Caption below
}
% --- ГИПЕРССЫЛКИ И НАВИГАЦИЯ (опционально, но удобно для PDF) ---
\usepackage[unicode, colorlinks=true, linkcolor=blue, citecolor=green]{hyperref}

85
references.bib Normal file
View File

@ -0,0 +1,85 @@
@article{li2020deep,
title={Deep learning methods in real-time image super-resolution: a survey},
author={Li, Xiaofang and Wu, Yirui and Zhang, Wen and Wang, Ruichao and Hou, Feng},
journal={Journal of Real-Time Image Processing},
volume={17},
number={6},
pages={1885--1909},
year={2020},
publisher={Springer}
}
@article{HeZRS15,
author = {Kaiming He and
Xiangyu Zhang and
Shaoqing Ren and
Jian Sun},
title = {Deep Residual Learning for Image Recognition},
journal = {CoRR},
volume = {abs/1512.03385},
year = {2015},
url = {http://arxiv.org/abs/1512.03385},
eprinttype = {arXiv},
eprint = {1512.03385},
timestamp = {Wed, 25 Jan 2023 11:01:16 +0100},
biburl = {https://dblp.org/rec/journals/corr/HeZRS15.bib},
bibsource = {dblp computer science bibliography, https://dblp.org}
}
@article{LimSKNL17,
author = {Bee Lim and
Sanghyun Son and
Heewon Kim and
Seungjun Nah and
Kyoung Mu Lee},
title = {Enhanced Deep Residual Networks for Single Image Super-Resolution},
journal = {CoRR},
volume = {abs/1707.02921},
year = {2017},
url = {http://arxiv.org/abs/1707.02921},
eprinttype = {arXiv},
eprint = {1707.02921},
timestamp = {Tue, 20 Feb 2024 13:39:57 +0100},
biburl = {https://dblp.org/rec/journals/corr/LimSKNL17.bib},
bibsource = {dblp computer science bibliography, https://dblp.org}
}
@article{DongLT16,
author = {Chao Dong and
Chen Change Loy and
Xiaoou Tang},
title = {Accelerating the Super-Resolution Convolutional Neural Network},
journal = {CoRR},
volume = {abs/1608.00367},
year = {2016},
url = {http://arxiv.org/abs/1608.00367},
eprinttype = {arXiv},
eprint = {1608.00367},
timestamp = {Wed, 18 Sep 2024 14:53:44 +0200},
biburl = {https://dblp.org/rec/journals/corr/DongLT16.bib},
bibsource = {dblp computer science bibliography, https://dblp.org}
}
@article{DongLHT15,
author = {Chao Dong and
Chen Change Loy and
Kaiming He and
Xiaoou Tang},
title = {Image Super-Resolution Using Deep Convolutional Networks},
journal = {CoRR},
volume = {abs/1501.00092},
year = {2015},
url = {http://arxiv.org/abs/1501.00092},
eprinttype = {arXiv},
eprint = {1501.00092},
timestamp = {Wed, 18 Sep 2024 14:53:44 +0200},
biburl = {https://dblp.org/rec/journals/corr/DongLHT15.bib},
bibsource = {dblp computer science bibliography, https://dblp.org}
}
@inproceedings{he2016deep,
author = {He, Kaiming and Zhang, Xiangyu and Ren, Shaoqing and Sun, Jian},
title = {Deep Residual Learning for Image Recognition},
booktitle = {2016 Computer Vision and Pattern Recognition},
year = {2016},
month = {June},
abstract = {Abstract},
publisher = {IEEE},
url = {https://www.microsoft.com/en-us/research/publication/deep-residual-learning-for-image-recognition/},
pages = {770-778},
}

42
title.tex Normal file
View File

@ -0,0 +1,42 @@
% --- ТИТУЛЬНЫЙ ЛИСТ ---
\begin{titlepage}
\centering % Вместо окружения center для лучшего контроля
\thispagestyle{empty} % Убираем нумерацию на титульной странице
\normalsize\textbf{
МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ}
\normalsize
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ АВТОНОМНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ
\normalsize\textbf{
НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ УНИВЕРСИТЕТ ИТМО
}
\vspace{3cm}
\large
\textbf{\MakeUppercase{\thetitle}}
\large
для дисциплины \\
«Основы нейронных сетей (продвинутый уровень)»
\vspace{5cm}
\begin{flushright}
\large
\textbf{Выполнил:} \\
аспирант 2-го года \\
Физико-Технического мегафакультета \\
направления 2.2.4 \\
«Приборы и методы измерения (оптические величины)» \\
\theauthor \\
\vspace{1cm}
\textbf{Проверил:} \\
профессор, д.т.н. \\
Бессметрный Игорь Александрович
\end{flushright}
\vspace{\fill} % Растягивает пространство до нижнего края
\large
Санкт-Петербург, \the\year
\end{titlepage}