preparation of report for NN advanced
This commit is contained in:
commit
db496f087a
53
.gitignore
vendored
Normal file
53
.gitignore
vendored
Normal 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
|
||||
10
chapters/00_introduction.tex
Normal file
10
chapters/00_introduction.tex
Normal 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
3
chapters/01_dataset.tex
Normal file
@ -0,0 +1,3 @@
|
||||
\chapter*{Данные для обучения нейронной сети}
|
||||
\addcontentsline{toc}{chapter}{Данные для обучения нейронной сети} % Добавляем введение в оглавление
|
||||
|
||||
99
chapters/02_choose.tex
Normal file
99
chapters/02_choose.tex
Normal 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
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
BIN
images/res_block_edsr.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 11 KiB |
BIN
images/screenshot001.png
Normal file
BIN
images/screenshot001.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 245 KiB |
29
main.tex
Normal file
29
main.tex
Normal 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
62
preamble.tex
Normal 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
85
references.bib
Normal 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
42
title.tex
Normal 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}
|
||||
Loading…
x
Reference in New Issue
Block a user