fixed conclusion, final draft
@ -668,7 +668,7 @@ status open
|
|||||||
\begin_inset Graphics
|
\begin_inset Graphics
|
||||||
filename ../media/ObjectivesSummary.png
|
filename ../media/ObjectivesSummary.png
|
||||||
lyxscale 30
|
lyxscale 30
|
||||||
width 50col%
|
width 45col%
|
||||||
|
|
||||||
\end_inset
|
\end_inset
|
||||||
|
|
||||||
@ -715,7 +715,7 @@ Connection Quality
|
|||||||
Introducing multiple sources to the experiences increases complexity in
|
Introducing multiple sources to the experiences increases complexity in
|
||||||
many ways.
|
many ways.
|
||||||
When assuming geographically distant sources it could also be assumed there
|
When assuming geographically distant sources it could also be assumed there
|
||||||
will be different network conditions between each and the server.
|
will be different network conditions between each of these and the server.
|
||||||
How the server handles and presents differences in connection quality will
|
How the server handles and presents differences in connection quality will
|
||||||
be critical to the user experience when consumed in AR or VR where such
|
be critical to the user experience when consumed in AR or VR where such
|
||||||
discrepancies would otherwise be clear and harmful.
|
discrepancies would otherwise be clear and harmful.
|
||||||
@ -744,7 +744,7 @@ The bandwidth for multiple sources can be expected to scale linearly in
|
|||||||
only.
|
only.
|
||||||
For an already demanding service, this could require additional management.
|
For an already demanding service, this could require additional management.
|
||||||
An expected environment for the server would be a cloud-based environment
|
An expected environment for the server would be a cloud-based environment
|
||||||
where bandwidth can be expected to be high, investigations into it's behaviour
|
where bandwidth can be expected to be high, investigations into its behaviour
|
||||||
in this scenario are presented in section
|
in this scenario are presented in section
|
||||||
\begin_inset CommandInset ref
|
\begin_inset CommandInset ref
|
||||||
LatexCommand ref
|
LatexCommand ref
|
||||||
@ -770,9 +770,9 @@ Synchronising sources for display poses the largest challenge to a seamless
|
|||||||
The previous conference call example would be one where this offset would
|
The previous conference call example would be one where this offset would
|
||||||
not be tolerable, the audio delay incurred during transatlantic phone calls
|
not be tolerable, the audio delay incurred during transatlantic phone calls
|
||||||
can make communication harder in the same way.
|
can make communication harder in the same way.
|
||||||
Additionally it is likely that such a system would need to be situated
|
Additionally, such a system would likely need to be situated in the main
|
||||||
in the main processing flow of frames at the server, as such a high performance
|
processing flow of frames at the server, as such a high-performance implementat
|
||||||
implementation must be found in order not to detriment the overall performance.
|
ion must be found in order not to detriment the overall performance.
|
||||||
Two theories of synchronisation are presented in section
|
Two theories of synchronisation are presented in section
|
||||||
\begin_inset CommandInset ref
|
\begin_inset CommandInset ref
|
||||||
LatexCommand ref
|
LatexCommand ref
|
||||||
@ -851,23 +851,20 @@ LiveScan
|
|||||||
Challenges
|
Challenges
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Itemize
|
||||||
The biggest challenge to the mobile AR migration is the scope of changes
|
The biggest challenge to the mobile AR migration is the scope of changes
|
||||||
being made to the codebase, changing the base library used to create and
|
being made to the codebase, changing the base library used to create and
|
||||||
manage the AR environment.
|
manage the AR environment.
|
||||||
This is a significant change and poses many opportunities to cause issues
|
This is a significant change and poses many opportunities to cause issues
|
||||||
compounded by the goal of building for a different device than initially
|
compounded by the goal of building for a different device than initially
|
||||||
intended implying a different build toolset.
|
intended implying a different build toolset.
|
||||||
\begin_inset Flex TODO Note (Margin)
|
|
||||||
status open
|
|
||||||
|
|
||||||
\begin_layout Plain Layout
|
|
||||||
frame rate challenge?
|
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\end_inset
|
\begin_layout Itemize
|
||||||
|
The biggest challenge in implementing dynamic frame rate throttling is defining
|
||||||
|
how this system reacts to changing network conditions, it is important
|
||||||
|
to balance both frame rate and latency as detriment either too heavily
|
||||||
|
can significantly detriment the final experience.
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Subsection
|
\begin_layout Subsection
|
||||||
@ -950,7 +947,7 @@ passive
|
|||||||
using the included NTP functionality, source synchronisation attempts to
|
using the included NTP functionality, source synchronisation attempts to
|
||||||
match frames captured at the same time during display.
|
match frames captured at the same time during display.
|
||||||
Passive sync acts as a coarse match and aims to keep frames within a tolerable
|
Passive sync acts as a coarse match and aims to keep frames within a tolerable
|
||||||
latency interval by responding to current environment conditions.
|
latency interval by responding to current environmental conditions.
|
||||||
Within this work, this is exemplified by throttling transmitted frame rate
|
Within this work, this is exemplified by throttling transmitted frame rate
|
||||||
to make all sources meet the same latency requirement.
|
to make all sources meet the same latency requirement.
|
||||||
Active sync acts as a fine control, tightly matching source frames of the
|
Active sync acts as a fine control, tightly matching source frames of the
|
||||||
@ -995,8 +992,8 @@ PointCloudReceiver
|
|||||||
\emph on
|
\emph on
|
||||||
Stale
|
Stale
|
||||||
\emph default
|
\emph default
|
||||||
source were defined as sources that have not delivered a frame to the server
|
sources were defined as sources that have not delivered a frame to the
|
||||||
within a given time interval.
|
server within a given time interval.
|
||||||
This allows them to be removed from live display in order to maintain the
|
This allows them to be removed from live display in order to maintain the
|
||||||
experience of other connected sources.
|
experience of other connected sources.
|
||||||
This was implemented through the
|
This was implemented through the
|
||||||
@ -1010,7 +1007,7 @@ SourceCollection
|
|||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
The settings object previously maintained globally was redefined as being
|
The settings object previously maintained globally was redefined as being
|
||||||
a source level variable.
|
a source-level variable.
|
||||||
Containing calibration information, this allowed sources to be set up in
|
Containing calibration information, this allowed sources to be set up in
|
||||||
multi-view configurations.
|
multi-view configurations.
|
||||||
These settings objects were also stored within the
|
These settings objects were also stored within the
|
||||||
@ -1086,7 +1083,7 @@ LiveScan
|
|||||||
\noun default
|
\noun default
|
||||||
specific code, the network behaviour was also as expected and the client
|
specific code, the network behaviour was also as expected and the client
|
||||||
connected to the server without issue.
|
connected to the server without issue.
|
||||||
At this point it was discovered that the included geometry shader used
|
At this point, it was discovered that the included geometry shader used
|
||||||
by the
|
by the
|
||||||
\noun on
|
\noun on
|
||||||
Android
|
Android
|
||||||
@ -1144,7 +1141,7 @@ This system was tested in both a local and cloud-based environment with
|
|||||||
these variables.
|
these variables.
|
||||||
Using figure-only capture, a dynamic step was shown to successfully control
|
Using figure-only capture, a dynamic step was shown to successfully control
|
||||||
the otherwise unbounded latency.
|
the otherwise unbounded latency.
|
||||||
The limitations of this approach is discussed including the observed wide
|
The limitations of this approach are discussed including the observed wide
|
||||||
oscillations around the requirement as a result of the linear step motion.
|
oscillations around the requirement as a result of the linear step motion.
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
@ -1184,11 +1181,7 @@ LiveScan3D
|
|||||||
\begin_inset Newline newline
|
\begin_inset Newline newline
|
||||||
\end_inset
|
\end_inset
|
||||||
|
|
||||||
The
|
Section
|
||||||
\noun on
|
|
||||||
LiveScan3D
|
|
||||||
\noun default
|
|
||||||
suite is described and evaluated in section
|
|
||||||
\begin_inset CommandInset ref
|
\begin_inset CommandInset ref
|
||||||
LatexCommand vref
|
LatexCommand vref
|
||||||
reference "sec:LiveScan3D"
|
reference "sec:LiveScan3D"
|
||||||
@ -1198,7 +1191,11 @@ noprefix "false"
|
|||||||
|
|
||||||
\end_inset
|
\end_inset
|
||||||
|
|
||||||
, the original state is outlined and the impact of subsequent developments
|
describes and evaluates the
|
||||||
|
\noun on
|
||||||
|
LiveScan3D
|
||||||
|
\noun default
|
||||||
|
suite; the original state is outlined and the impact of subsequent developments
|
||||||
are discussed.
|
are discussed.
|
||||||
\begin_inset Newline newline
|
\begin_inset Newline newline
|
||||||
\end_inset
|
\end_inset
|
||||||
@ -1393,7 +1390,7 @@ noprefix "false"
|
|||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
\begin_inset Newpage newpage
|
\begin_inset Newpage pagebreak
|
||||||
\end_inset
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
@ -1590,8 +1587,18 @@ cted.
|
|||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
With the increasing computational power of computers and GPUs, methods to
|
With the increasing computational power of computers and GPUs
|
||||||
do so in real-time with high frame rates have been demonstrated
|
\begin_inset Foot
|
||||||
|
status open
|
||||||
|
|
||||||
|
\begin_layout Plain Layout
|
||||||
|
Graphics Processing Unit, processors specialising in parallel computing
|
||||||
|
with applications in graphics rendering
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
, methods to do so in real-time with high frame rates have been demonstrated
|
||||||
\begin_inset CommandInset citation
|
\begin_inset CommandInset citation
|
||||||
LatexCommand cite
|
LatexCommand cite
|
||||||
key "cuda-visual-hull"
|
key "cuda-visual-hull"
|
||||||
@ -1666,7 +1673,7 @@ literal "false"
|
|||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
These techniques draw data from tightly calibrated camera viewpoints, however,
|
These techniques draw data from tightly calibrated camera viewpoints, however
|
||||||
when considering consumer-grade applications this is typically not available.
|
when considering consumer-grade applications this is typically not available.
|
||||||
The use of infra-red structured light and
|
The use of infra-red structured light and
|
||||||
\emph on
|
\emph on
|
||||||
@ -2186,16 +2193,6 @@ literal "false"
|
|||||||
experiences for developing worker balance to aid in working at elevation
|
experiences for developing worker balance to aid in working at elevation
|
||||||
and AR experiences incorporated into the workplace for aiding in task sequencin
|
and AR experiences incorporated into the workplace for aiding in task sequencin
|
||||||
g to reduce the effect of memory on safety.
|
g to reduce the effect of memory on safety.
|
||||||
\begin_inset Flex TODO Note (Margin)
|
|
||||||
status open
|
|
||||||
|
|
||||||
\begin_layout Plain Layout
|
|
||||||
Link with work?
|
|
||||||
\end_layout
|
|
||||||
|
|
||||||
\end_inset
|
|
||||||
|
|
||||||
|
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
@ -2306,8 +2303,8 @@ Android
|
|||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
The advancement of mobile AR bolstered by the growing ubiquity of compatible
|
The advancement of mobile AR, bolstered by the growing ubiquity of compatible
|
||||||
hardware has led it to become a rapidly growing and popular form of XR.
|
hardware, has led it to become a rapidly growing and popular form of XR.
|
||||||
The introduction of OS-level SDK's in
|
The introduction of OS-level SDK's in
|
||||||
\noun on
|
\noun on
|
||||||
Google
|
Google
|
||||||
@ -2347,7 +2344,8 @@ literal "false"
|
|||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
These frameworks provide native AR environments in which important prerequisites
|
These frameworks provide native AR environments in which important prerequisites
|
||||||
including rear-camera pass-through, device motion tracking and plane tracking
|
including rear-camera pass-through, device motion tracking and plane tracking
|
||||||
are implemented with the performance expected of an OS-level library.
|
are implemented with the performance and development tools expected of
|
||||||
|
an OS-level library.
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
@ -2404,7 +2402,7 @@ Unity
|
|||||||
\noun default
|
\noun default
|
||||||
's greatest strengths lies in its native cross-platform deployment allowing
|
's greatest strengths lies in its native cross-platform deployment allowing
|
||||||
building for the largest PC, mobile and games console platforms.
|
building for the largest PC, mobile and games console platforms.
|
||||||
This in conjunction with
|
This, in conjunction with
|
||||||
\noun on
|
\noun on
|
||||||
Google
|
Google
|
||||||
\noun default
|
\noun default
|
||||||
@ -2416,7 +2414,7 @@ ARCore
|
|||||||
\noun on
|
\noun on
|
||||||
Unity
|
Unity
|
||||||
\noun default
|
\noun default
|
||||||
package facilitated Selinis' migration of the
|
package, facilitated Selinis' migration of the
|
||||||
\noun on
|
\noun on
|
||||||
Hololens
|
Hololens
|
||||||
\noun default
|
\noun default
|
||||||
@ -2758,36 +2756,10 @@ OpenCV
|
|||||||
in calibration.
|
in calibration.
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
|
||||||
\begin_inset Flex TODO Note (inline)
|
|
||||||
status open
|
|
||||||
|
|
||||||
\begin_layout Plain Layout
|
|
||||||
Link to livescan?
|
|
||||||
\end_layout
|
|
||||||
|
|
||||||
\end_inset
|
|
||||||
|
|
||||||
|
|
||||||
\end_layout
|
|
||||||
|
|
||||||
\begin_layout Subsection
|
\begin_layout Subsection
|
||||||
Multi-Source Holoportation
|
Multi-Source Holoportation
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
|
||||||
\begin_inset Flex TODO Note (inline)
|
|
||||||
status open
|
|
||||||
|
|
||||||
\begin_layout Plain Layout
|
|
||||||
More?
|
|
||||||
\end_layout
|
|
||||||
|
|
||||||
\end_inset
|
|
||||||
|
|
||||||
|
|
||||||
\end_layout
|
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
The space of multi-source holoportation has been explored by
|
The space of multi-source holoportation has been explored by
|
||||||
\begin_inset CommandInset citation
|
\begin_inset CommandInset citation
|
||||||
@ -2938,7 +2910,7 @@ name "fig:World-in-Miniature-group-by-group"
|
|||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
In comparison to
|
In comparison to
|
||||||
\noun on
|
\noun on
|
||||||
LiveScan
|
LiveScan,
|
||||||
\noun default
|
\noun default
|
||||||
these provide domain-specific applications, the implementation developed
|
these provide domain-specific applications, the implementation developed
|
||||||
within this project aims to provide a general many-to-one application of
|
within this project aims to provide a general many-to-one application of
|
||||||
@ -2999,11 +2971,11 @@ telepresence
|
|||||||
\emph default
|
\emph default
|
||||||
was presented.
|
was presented.
|
||||||
Domain-specific examples of multi-source holoportation were described to
|
Domain-specific examples of multi-source holoportation were described to
|
||||||
contextualise this projects aim to produce a general implementation.
|
contextualise this project's aim to produce a general implementation.
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
\begin_inset Newpage newpage
|
\begin_inset Newpage pagebreak
|
||||||
\end_inset
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
@ -3887,20 +3859,7 @@ The addition of buffers allows the presentation layer to request frames
|
|||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
\begin_inset Flex TODO Note (Margin)
|
\begin_inset Newpage pagebreak
|
||||||
status open
|
|
||||||
|
|
||||||
\begin_layout Plain Layout
|
|
||||||
comparison between multi-view and multi-source
|
|
||||||
\end_layout
|
|
||||||
|
|
||||||
\end_inset
|
|
||||||
|
|
||||||
|
|
||||||
\end_layout
|
|
||||||
|
|
||||||
\begin_layout Standard
|
|
||||||
\begin_inset Newpage newpage
|
|
||||||
\end_inset
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
@ -4037,7 +3996,7 @@ Implementation
|
|||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
During initial testing frames received from a live sensor were intercepted
|
During initial testing, frames received from a live sensor were intercepted
|
||||||
and serialized to XML in local storage.
|
and serialized to XML in local storage.
|
||||||
These frames were then loaded into memory as the server was started and
|
These frames were then loaded into memory as the server was started and
|
||||||
merged with those received live before display.
|
merged with those received live before display.
|
||||||
@ -4286,11 +4245,11 @@ LiveScan3D
|
|||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
To accomplish this a dictionary was used as the shared variable with each
|
To accomplish this, a dictionary was used as the shared variable with each
|
||||||
client's frame referenced by its source ID.
|
client's frame referenced by its source ID.
|
||||||
In doing so only one frame per client is kept and each new frame overrides
|
In doing so only one frame per client is kept and each new frame overrides
|
||||||
the last.
|
the last.
|
||||||
During rendering the dictionary is iterated through and each point cloud
|
During rendering, the dictionary is iterated through and each point cloud
|
||||||
combined.
|
combined.
|
||||||
During combination, a client-specific transformation is retrieved from
|
During combination, a client-specific transformation is retrieved from
|
||||||
an instance of the
|
an instance of the
|
||||||
@ -5069,8 +5028,10 @@ Although capturing frames at the same rate (30Hz), it is highly unlikely
|
|||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
Secondly, during transmission a variable amount of latency will be introduced
|
Secondly, during transmission a variable amount of latency will be introduced
|
||||||
as a result of the network conditions and distance from client to server
|
as a result of the network conditions and distance between client, server
|
||||||
and from server to UE.
|
and UE.
|
||||||
|
This likely presents the majority of the whole value and as such is focused
|
||||||
|
on.
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
@ -5134,20 +5095,13 @@ Active
|
|||||||
synchronisation includes efforts to tightly match frames during processing
|
synchronisation includes efforts to tightly match frames during processing
|
||||||
at the server in order to minimise the difference in latency since capture.
|
at the server in order to minimise the difference in latency since capture.
|
||||||
In practice, this could be achieved at the point where frames are moved
|
In practice, this could be achieved at the point where frames are moved
|
||||||
from the various receiving buffers to the live buffer
|
from the various receiving buffers to the live buffer.
|
||||||
\begin_inset Flex TODO Note (Margin)
|
|
||||||
status open
|
|
||||||
|
|
||||||
\begin_layout Plain Layout
|
|
||||||
implementation?
|
|
||||||
\end_layout
|
|
||||||
|
|
||||||
\end_inset
|
|
||||||
|
|
||||||
.
|
|
||||||
Positioned within the critical processing pipeline, active methods have
|
Positioned within the critical processing pipeline, active methods have
|
||||||
access to only a tight interval of frames and must operate quickly making
|
access to only a tight interval of frames and must operate quickly making
|
||||||
them more sensitive to wide latency differences in sources.
|
them more sensitive to wide latency differences in sources.
|
||||||
|
This sensitivity and tight interval of frames from which to pick matched
|
||||||
|
frames will likely also make active sync methods more fragile if latency
|
||||||
|
deltas are too wide.
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
@ -5241,8 +5195,8 @@ Google ARCore
|
|||||||
\noun on
|
\noun on
|
||||||
LiveScan
|
LiveScan
|
||||||
\noun default
|
\noun default
|
||||||
specific objects responsible for receiving and constructing holograms within
|
specific objects and C# scripts responsible for receiving and constructing
|
||||||
the AR scene.
|
holograms within the AR scene.
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
@ -5289,11 +5243,11 @@ name "fig:Existing-scripts"
|
|||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
This
|
The layout of
|
||||||
\noun on
|
\noun on
|
||||||
LiveScan
|
LiveScan
|
||||||
\noun default
|
\noun default
|
||||||
specific code can be seen in figure
|
specific C# components can be seen in figure
|
||||||
\begin_inset CommandInset ref
|
\begin_inset CommandInset ref
|
||||||
LatexCommand ref
|
LatexCommand ref
|
||||||
reference "fig:Existing-scripts"
|
reference "fig:Existing-scripts"
|
||||||
@ -5354,12 +5308,25 @@ Unity
|
|||||||
\noun default
|
\noun default
|
||||||
allowed the restructuring of this architecture into one capable of supporting
|
allowed the restructuring of this architecture into one capable of supporting
|
||||||
multi-source experiences with minimal code additions.
|
multi-source experiences with minimal code additions.
|
||||||
A source prefab
|
A source
|
||||||
\begin_inset Flex TODO Note (Margin)
|
\emph on
|
||||||
|
prefab
|
||||||
|
\emph default
|
||||||
|
|
||||||
|
\begin_inset Foot
|
||||||
status open
|
status open
|
||||||
|
|
||||||
\begin_layout Plain Layout
|
\begin_layout Plain Layout
|
||||||
does prefab need defining?
|
A
|
||||||
|
\emph on
|
||||||
|
prefab
|
||||||
|
\emph default
|
||||||
|
is a preconfigured
|
||||||
|
\noun on
|
||||||
|
Unity
|
||||||
|
\noun default
|
||||||
|
GameObject with defined parameters and attached C# scripts capable of easily
|
||||||
|
being instantiated in the scene
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\end_inset
|
\end_inset
|
||||||
@ -5517,7 +5484,7 @@ A source could be considered
|
|||||||
stale
|
stale
|
||||||
\emph default
|
\emph default
|
||||||
when a frame has not been received for it within a certain time threshold,
|
when a frame has not been received for it within a certain time threshold,
|
||||||
the default was decided as 5 seconds.
|
the default was defined as 5 seconds.
|
||||||
Beyond this, the source should be considered, if at least temporarily,
|
Beyond this, the source should be considered, if at least temporarily,
|
||||||
disconnected.
|
disconnected.
|
||||||
\end_layout
|
\end_layout
|
||||||
@ -5661,16 +5628,6 @@ KinectSettings
|
|||||||
KinectServer
|
KinectServer
|
||||||
\noun default
|
\noun default
|
||||||
is capable of delivering the current settings to each client.
|
is capable of delivering the current settings to each client.
|
||||||
\begin_inset Flex TODO Note (Margin)
|
|
||||||
status open
|
|
||||||
|
|
||||||
\begin_layout Plain Layout
|
|
||||||
settings window figure?
|
|
||||||
\end_layout
|
|
||||||
|
|
||||||
\end_inset
|
|
||||||
|
|
||||||
|
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Subsubsection
|
\begin_layout Subsubsection
|
||||||
@ -5778,8 +5735,9 @@ While no applications for such a configuration are posed here, this could
|
|||||||
.
|
.
|
||||||
However, the constant transmission of a source ID also extends the possibility
|
However, the constant transmission of a source ID also extends the possibility
|
||||||
for error.
|
for error.
|
||||||
During debugging, what was assumed to be a malformed packet could cause
|
Rarely, during debugging what was assumed to be a malformed packet could
|
||||||
a frame to be entered for a different source as the source ID was corrupted.
|
cause a frame to be entered for a different source as the source ID was
|
||||||
|
corrupted.
|
||||||
While a single frame error doesn't necessarily constitute a catastrophic
|
While a single frame error doesn't necessarily constitute a catastrophic
|
||||||
error, it could prove detrimental to the experience.
|
error, it could prove detrimental to the experience.
|
||||||
|
|
||||||
@ -5841,11 +5799,17 @@ LiveScan
|
|||||||
\noun default
|
\noun default
|
||||||
suite have been presented.
|
suite have been presented.
|
||||||
The suite is now capable of supporting multi-source experiences from client
|
The suite is now capable of supporting multi-source experiences from client
|
||||||
to mobile AR application.
|
to mobile AR application although tests have not been conducted due to
|
||||||
The viewfinder display at the server also provides an interactive space
|
a lack of access to multiple
|
||||||
to view all connected sources.
|
\noun on
|
||||||
The limitations of the mobile AR application have been described, notably
|
Kinect
|
||||||
the lack of individual touch interaction.
|
\noun default
|
||||||
|
sensors.
|
||||||
|
The viewfinder display at the server provides an interactive space to view
|
||||||
|
all connected sources, each can be moved using keyboard controls.
|
||||||
|
Despite being able to view multiple sources concurrently, the limitations
|
||||||
|
of the mobile AR application have been described, notably the lack of individua
|
||||||
|
l touch interaction.
|
||||||
Two concepts of synchronisation have been introduced,
|
Two concepts of synchronisation have been introduced,
|
||||||
\emph on
|
\emph on
|
||||||
active
|
active
|
||||||
@ -5885,7 +5849,7 @@ KinectSettings
|
|||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
\begin_inset Newpage newpage
|
\begin_inset Newpage pagebreak
|
||||||
\end_inset
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
@ -6009,16 +5973,19 @@ literal "false"
|
|||||||
\end_inset
|
\end_inset
|
||||||
|
|
||||||
effect of rear-camera pass-through natural to handheld AR experiences.
|
effect of rear-camera pass-through natural to handheld AR experiences.
|
||||||
\begin_inset Flex TODO Note (Margin)
|
|
||||||
status open
|
|
||||||
|
|
||||||
\begin_layout Plain Layout
|
|
||||||
expand?
|
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\end_inset
|
\begin_layout Standard
|
||||||
|
Methods to do acquire such permissions were not identified and in an effort
|
||||||
|
to properly generalise the application,
|
||||||
|
\noun on
|
||||||
|
Unity's
|
||||||
|
\noun default
|
||||||
|
|
||||||
|
\noun on
|
||||||
|
ARFoundation
|
||||||
|
\noun default
|
||||||
|
was instead investigated.
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Subsection
|
\begin_layout Subsection
|
||||||
@ -6404,7 +6371,7 @@ Android
|
|||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
\begin_inset Newpage newpage
|
\begin_inset Newpage pagebreak
|
||||||
\end_inset
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
@ -6446,8 +6413,10 @@ y the transmission buffer of the client.
|
|||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
A proposed hypothesis for reducing this delay is to limit the transmitted
|
A proposed hypothesis for reducing this delay is to limit the transmitted
|
||||||
frame rate.
|
frame rate.
|
||||||
It follows that this would reduce the population of each buffer and reduce
|
It follows that this would reduce the time required to deliver a unit time's
|
||||||
the time that each frame spent within each.
|
worth of footage.
|
||||||
|
Additionally this would theoretically reduce the population of each buffer
|
||||||
|
and reduce the time that each frame spent within each.
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
@ -7105,7 +7074,7 @@ name "fig:TestCloud"
|
|||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
\begin_inset Newpage newpage
|
\begin_inset Newpage pagebreak
|
||||||
\end_inset
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
@ -7555,7 +7524,7 @@ noprefix "false"
|
|||||||
\end_inset
|
\end_inset
|
||||||
|
|
||||||
.
|
.
|
||||||
While the extent of the lag varies, in the figures
|
While the extent of the lag varies, in figures
|
||||||
\begin_inset CommandInset ref
|
\begin_inset CommandInset ref
|
||||||
LatexCommand ref
|
LatexCommand ref
|
||||||
reference "fig:a-1"
|
reference "fig:a-1"
|
||||||
@ -7577,7 +7546,7 @@ noprefix "false"
|
|||||||
|
|
||||||
there can be seen to be roughly 10 seconds between the expected rate intersecti
|
there can be seen to be roughly 10 seconds between the expected rate intersecti
|
||||||
ng the actual FPS and the induced drop.
|
ng the actual FPS and the induced drop.
|
||||||
Additionally, in these cases the expected frame rate has already started
|
Additionally, in these cases, the expected frame rate has already started
|
||||||
increasing before the actual frame rate properly responds.
|
increasing before the actual frame rate properly responds.
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
@ -7610,9 +7579,9 @@ noprefix "false"
|
|||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
As a whole, in general the observed frame rate can be seen initially to
|
When considering an individual latency spike, in general the observed frame
|
||||||
drop with the expected value before flattening and peaking at a similar
|
rate can be seen initially to drop with the expected value before flattening
|
||||||
time to latency.
|
and peaking at a similar time to latency.
|
||||||
Latency and frame rate in many cases drop at similar times before the FPS
|
Latency and frame rate in many cases drop at similar times before the FPS
|
||||||
then rises in line with the expected value.
|
then rises in line with the expected value.
|
||||||
\end_layout
|
\end_layout
|
||||||
@ -7920,7 +7889,7 @@ noprefix "false"
|
|||||||
\end_inset
|
\end_inset
|
||||||
|
|
||||||
presents the average transmission latency with an uncontrolled frame drop
|
presents the average transmission latency with an uncontrolled frame drop
|
||||||
rate.
|
rate in a cloud environment.
|
||||||
The used bandwidth is also visualised averaging around 10Mbps, the rated
|
The used bandwidth is also visualised averaging around 10Mbps, the rated
|
||||||
upload speed for the domestic internet connection.
|
upload speed for the domestic internet connection.
|
||||||
The latency can be seen to increase linearly and constantly with the exponentia
|
The latency can be seen to increase linearly and constantly with the exponentia
|
||||||
@ -8076,6 +8045,23 @@ name "fig:unstable-cloud-based-latency"
|
|||||||
|
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Standard
|
||||||
|
This was the extent of data able to be gathered in the cloud environment,
|
||||||
|
the dynamic step proved ineffectual as the drop rate was not promptly transmitt
|
||||||
|
ed to the connected client.
|
||||||
|
This resulted in an unbounded latency increase as seen in figure
|
||||||
|
\begin_inset CommandInset ref
|
||||||
|
LatexCommand ref
|
||||||
|
reference "fig:raw-cloud-latency"
|
||||||
|
plural "false"
|
||||||
|
caps "false"
|
||||||
|
noprefix "false"
|
||||||
|
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
.
|
||||||
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
\begin_inset Newpage newpage
|
\begin_inset Newpage newpage
|
||||||
\end_inset
|
\end_inset
|
||||||
@ -8089,9 +8075,9 @@ Discussion
|
|||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
Demonstrated in both the LAN and cloud environment, it can be seen that
|
Demonstrated in both the LAN and cloud environment, it can be seen that
|
||||||
a high enough frame drop rate maintains a constant latency while lowering
|
a low enough expected frame rate maintains a constant latency while increasing
|
||||||
this beyond a critical value induces a constant linear increase.
|
this beyond a critical value induces a constant linear increase.
|
||||||
This would suggest that below this critical value the server is not able
|
This would suggest that above this critical value the server is not able
|
||||||
to receive frames at a rate higher than they are being produced at the
|
to receive frames at a rate higher than they are being produced at the
|
||||||
client allowing the latency to begin increasing as a backlog of frames
|
client allowing the latency to begin increasing as a backlog of frames
|
||||||
is produced.
|
is produced.
|
||||||
@ -8135,7 +8121,7 @@ noprefix "false"
|
|||||||
network is being stressed most, this would be just beforehand when the
|
network is being stressed most, this would be just beforehand when the
|
||||||
latency is increasing.
|
latency is increasing.
|
||||||
With an empty buffer, the latency drops and the frame rate falls to the
|
With an empty buffer, the latency drops and the frame rate falls to the
|
||||||
expected value, more able to closely follow it with the less contested
|
expected value, more able to closely follow it with the less congested
|
||||||
network conditions.
|
network conditions.
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
@ -8198,8 +8184,9 @@ noprefix "false"
|
|||||||
|
|
||||||
).
|
).
|
||||||
As this is included in the header of each request it was concluded that
|
As this is included in the header of each request it was concluded that
|
||||||
requests were being queued at the server unable to be transmitted over
|
these were either being queued at the server unable to be transmitted over
|
||||||
the socket busy receiving frames.
|
the socket busy receiving frames or queued at the client ready for processing
|
||||||
|
and responding to the request.
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Subsubsection
|
\begin_layout Subsubsection
|
||||||
@ -8236,10 +8223,11 @@ An alternative would be to allow the server to independently implement this
|
|||||||
This could be done by dynamically controlling the rate of frame requests
|
This could be done by dynamically controlling the rate of frame requests
|
||||||
made by the server as opposed to the rate of frames created at the client.
|
made by the server as opposed to the rate of frames created at the client.
|
||||||
An advantage could be found in the increased efficiency.
|
An advantage could be found in the increased efficiency.
|
||||||
Currently the server requests frames at a constant rate and the client
|
Currently, the server requests frames at a constant rate and the client
|
||||||
decides whether a frame should be delivered in response.
|
decides whether a frame should be delivered in response.
|
||||||
With a higher step (and therefore lower expected frame rate) a higher proportio
|
With a higher step (and therefore lower expected frame rate) a higher proportio
|
||||||
n of requests made by the server are unnecessary.
|
n of requests made by the server are unnecessary, in a real-time application
|
||||||
|
this should be minimised.
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Subsection
|
\begin_layout Subsection
|
||||||
@ -8266,7 +8254,7 @@ The cloud environment was shown to be highly unstable, such that representative
|
|||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
\begin_inset Newpage newpage
|
\begin_inset Newpage pagebreak
|
||||||
\end_inset
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
@ -8514,7 +8502,8 @@ A system of frame rate throttling was successfully implemented in order
|
|||||||
It's applicability to source synchronisation was discussed and preliminary
|
It's applicability to source synchronisation was discussed and preliminary
|
||||||
data from both a local and cloud-based environment was presented.
|
data from both a local and cloud-based environment was presented.
|
||||||
The implemented method was successfully shown to limit latency by controlling
|
The implemented method was successfully shown to limit latency by controlling
|
||||||
transmitted frame rate.
|
transmitted frame rate in the LAN environment.
|
||||||
|
The limitations encountered in the cloud environment were also presented.
|
||||||
Possible drawbacks with the method were highlighted and alternative implementat
|
Possible drawbacks with the method were highlighted and alternative implementat
|
||||||
ions were proposed.
|
ions were proposed.
|
||||||
\end_layout
|
\end_layout
|
||||||
@ -8523,6 +8512,10 @@ ions were proposed.
|
|||||||
Possible future developments and investigations were outlined including
|
Possible future developments and investigations were outlined including
|
||||||
those working from the developments of this project and those inherent
|
those working from the developments of this project and those inherent
|
||||||
to the suite itself.
|
to the suite itself.
|
||||||
|
\begin_inset Newpage pagebreak
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Section
|
\begin_layout Section
|
||||||
@ -8537,13 +8530,17 @@ name "sec:Conclusions"
|
|||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
Holoportation and multi-source configurations thereof are important technologies
|
Holoportation and multi-source configurations thereof are important for
|
||||||
for extended reality experiences with broad appeal to many applications.
|
all forms of extended reality experiences.
|
||||||
The use of consumer hardware, specifically the
|
The use of consumer hardware, specifically the
|
||||||
\noun on
|
\noun on
|
||||||
Kinect
|
Kinect
|
||||||
\noun default
|
\noun default
|
||||||
, has accelerated the space.
|
, has accelerated the space and allowed access to the technology without
|
||||||
|
a dedicated lab environment.
|
||||||
|
With broad appeal to many applications, the generic real-time collection
|
||||||
|
and transmission of 3D video will facilitate both existing XR experiences
|
||||||
|
and a future of those based on live broadcast.
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
@ -8556,16 +8553,33 @@ rce version can be seen to further generalise the application suite.
|
|||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
Unfortunately, the impact of the COVID-19 pandemic severely impacted the
|
This project presents such a development, allowing the capture of multiple
|
||||||
latter third of the project resulting in an inability to both quantitatively
|
scenes simultaneously with presentation both at the server and in a mobile
|
||||||
evaluate the multi-source server and implement the mobile AR application
|
AR context.
|
||||||
touch controls.
|
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
Despite the obstacles, additional objectives allowed extra investigations
|
Unfortunately, the impact of the COVID-19 pandemic severely impacted the
|
||||||
to be made into the suite with significant progress made in making the
|
latter third of the project resulting in an inability to both quantitatively
|
||||||
mobile application cross-platform and data gathered on the network behaviour.
|
evaluate the multi-source server and implement individual touch controls
|
||||||
|
for the mobile AR application.
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Standard
|
||||||
|
Despite this, additional objectives allowed extra investigations to be made
|
||||||
|
into the suite with significant progress made in making the mobile application
|
||||||
|
cross-platform.
|
||||||
|
Finally, data was gathered on a form of
|
||||||
|
\emph on
|
||||||
|
passive
|
||||||
|
\emph default
|
||||||
|
sync, the network behaviour of the suite was evaluated as transmitted frame
|
||||||
|
rate was limited in order to control transmission latency.
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Standard
|
||||||
|
Overall, although the majority of the objectives have been met, quantitative
|
||||||
|
evaluation remains to be completed.
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
|
Before Width: | Height: | Size: 96 KiB After Width: | Height: | Size: 74 KiB |
Before Width: | Height: | Size: 57 KiB After Width: | Height: | Size: 43 KiB |
Before Width: | Height: | Size: 122 KiB After Width: | Height: | Size: 95 KiB |
Before Width: | Height: | Size: 96 KiB After Width: | Height: | Size: 126 KiB |