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