180 lines
11 KiB
XML
180 lines
11 KiB
XML
<Window x:Class="OpenFaceOffline.MainWindow"
|
|
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
|
xmlns:local="clr-namespace:OpenFaceOffline"
|
|
xmlns:OpenFaceOffline="clr-namespace:OpenFaceOffline"
|
|
mc:Ignorable="d"
|
|
Title="OpenFace offline" Height="500" Width="1300" MinWidth="700" MinHeight="350" Closing="Window_Closing" WindowStartupLocation="CenterScreen">
|
|
<Grid Name="MainGrid">
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="2.1*"/>
|
|
<ColumnDefinition Width="0.8*"/>
|
|
<ColumnDefinition Width="1*"/>
|
|
<ColumnDefinition Width="1.6*"/>
|
|
<ColumnDefinition Width="0.01*"/>
|
|
</Grid.ColumnDefinitions>
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="20"/>
|
|
<RowDefinition Height="3*" MinHeight="220"/>
|
|
<RowDefinition Height="0.4*"/>
|
|
<RowDefinition Height="auto"/>
|
|
</Grid.RowDefinitions>
|
|
<Menu IsMainMenu="True" Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="5">
|
|
<MenuItem Header="File">
|
|
<MenuItem Header="Open video(s)" Click="videoFileOpenClick">
|
|
</MenuItem>
|
|
<MenuItem Header="Open image directory (as sequence)" Click="imageSequenceFileOpenClick">
|
|
</MenuItem>
|
|
<MenuItem Header="Open image(s)" Click="individualImageFilesOpenClick">
|
|
</MenuItem>
|
|
<MenuItem Header="Open image directory" Click="imageFileOpenClick">
|
|
</MenuItem>
|
|
</MenuItem>
|
|
<MenuItem Name="RecordingMenu" Header="Record" >
|
|
<MenuItem IsCheckable="True" Header="Record AUs" IsChecked="{Binding RecordAUs}"/>
|
|
<MenuItem IsCheckable="True" Header="Record pose" IsChecked="{Binding RecordPose}"/>
|
|
<MenuItem IsCheckable="True" Header="Record 2D landmarks" IsChecked="{Binding Record2DLandmarks}" />
|
|
<MenuItem IsCheckable="True" Header="Record gaze" IsChecked="{Binding RecordGaze}"/>
|
|
<MenuItem IsCheckable="True" Header="Record 3D landmarks" IsChecked="{Binding Record3DLandmarks}"/>
|
|
<MenuItem IsCheckable="True" Header="Record HOG" IsChecked="{Binding RecordHOG}"/>
|
|
<MenuItem IsCheckable="True" Header="Record model parameters" IsChecked="{Binding RecordModelParameters}" />
|
|
<MenuItem IsCheckable="True" Header="Record aligned faces" IsChecked="{Binding RecordAligned}"/>
|
|
</MenuItem>
|
|
<MenuItem Name="SettingsMenu" Header="Recording settings">
|
|
<MenuItem Name="OutputLocationItem" Header="Set output location..." Click="OutputLocationItem_Click" ></MenuItem>
|
|
<MenuItem Header="Set output image size..." Click="setOutputImageSize_Click"></MenuItem>
|
|
</MenuItem>
|
|
<MenuItem Name="AUSetting" Header="OpenFace settings" >
|
|
<MenuItem IsCheckable="True" Header="Use dynamic AU models" IsChecked="{Binding DynamicAUModels}"/>
|
|
<MenuItem Header="Set Camera parameters..." Click="setCameraParameters_Click"/>
|
|
</MenuItem>
|
|
<MenuItem Header="View">
|
|
<MenuItem IsCheckable="True" Header="Show Video" Click="VisualisationChange" IsChecked="{Binding ShowTrackedVideo}"/>
|
|
<MenuItem IsCheckable="True" Header="Show Appearance" Click="VisualisationChange" IsChecked="{Binding ShowAppearance}"/>
|
|
<MenuItem IsCheckable="True" Header="Show Geometry" Click="VisualisationChange" IsChecked="{Binding ShowGeometry}"/>
|
|
<MenuItem IsCheckable="True" Header="Show AUs" Click="VisualisationChange" IsChecked="{Binding ShowAUs}"/>
|
|
</MenuItem>
|
|
</Menu>
|
|
<Border Grid.Row="1" Grid.Column="4">
|
|
<Label></Label>
|
|
</Border>
|
|
<Border Name="VideoBorder" Grid.Row="1" Grid.Column="0" BorderBrush="Black" BorderThickness="1" Background="LightGray" Margin="5,5,0,0">
|
|
<OpenFaceOffline:OverlayImage x:Name="video" />
|
|
</Border>
|
|
|
|
<GroupBox Name="AppearanceBorder" Grid.Row="1" Grid.Column="1" BorderBrush="Black" BorderThickness="1" MinHeight="100">
|
|
<GroupBox.Header>
|
|
Appearance features
|
|
</GroupBox.Header>
|
|
<Grid HorizontalAlignment="Center">
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="auto"/>
|
|
</Grid.ColumnDefinitions>
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="*"/>
|
|
<RowDefinition Height="*"/>
|
|
</Grid.RowDefinitions>
|
|
<Border Grid.Row="0">
|
|
<OpenFaceOffline:SimpleImage x:Name="AlignedFace" MaxHeight="150"/>
|
|
</Border>
|
|
<Border Grid.Row="1">
|
|
<OpenFaceOffline:SimpleImage x:Name="AlignedHOG" MaxHeight="150"/>
|
|
</Border>
|
|
</Grid>
|
|
</GroupBox>
|
|
|
|
<GroupBox Name="GeometryBorder" Grid.Row="1" Grid.Column="2" BorderBrush="Black" BorderThickness="1" MinHeight="100">
|
|
<GroupBox.Header>
|
|
Geometry features
|
|
</GroupBox.Header>
|
|
<Grid>
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="*"/>
|
|
<RowDefinition Height="*"/>
|
|
</Grid.RowDefinitions>
|
|
<StackPanel Orientation="Vertical" Grid.Row="0" >
|
|
<StackPanel Orientation="Horizontal" VerticalAlignment="Center" HorizontalAlignment="Center">
|
|
<StackPanel Width="120" >
|
|
<Label Name="headOrientationLabel" FontSize="18" HorizontalContentAlignment="Left">Orientation</Label>
|
|
<StackPanel Orientation="Horizontal">
|
|
<Label Margin="5,0,0,0" FontSize="12" Width="60" HorizontalContentAlignment="Left">Turn:</Label>
|
|
<Label Name="YawLabel" FontSize="12" MinWidth="30" HorizontalContentAlignment="Right">0°</Label>
|
|
</StackPanel>
|
|
<StackPanel Orientation="Horizontal">
|
|
<Label Margin="5,0,0,0" FontSize="12" Width="60" HorizontalContentAlignment="Left">Up/down:</Label>
|
|
<Label Name="PitchLabel" FontSize="12" Width="30" HorizontalContentAlignment="Right">0°</Label>
|
|
</StackPanel>
|
|
<StackPanel Orientation="Horizontal">
|
|
<Label Margin="5,0,0,0" FontSize="12" Width="60" HorizontalContentAlignment="Left">Tilt:</Label>
|
|
<Label Name="RollLabel" FontSize="12" Width="30" HorizontalContentAlignment="Right">0°</Label>
|
|
</StackPanel>
|
|
</StackPanel>
|
|
<Line X1="0" X2="0" Y1="20" Y2="90" Width="2" Stroke="Gray"></Line>
|
|
<StackPanel>
|
|
<Label Name="headPoseLabel" FontSize="18" HorizontalContentAlignment="Left">Pose</Label>
|
|
<StackPanel Orientation="Horizontal">
|
|
<Label Margin="5,0,0,0" FontSize="12" HorizontalContentAlignment="Left" Width="20">X:</Label>
|
|
<Label Name="XPoseLabel" FontSize="12" HorizontalContentAlignment="Right" Width="50">0 mm</Label>
|
|
</StackPanel>
|
|
<StackPanel Orientation="Horizontal">
|
|
<Label Margin="5,0,0,0" FontSize="12" HorizontalContentAlignment="Left" Width="20">Y:</Label>
|
|
<Label Name="YPoseLabel" FontSize="12" HorizontalContentAlignment="Right" Width="50">0 mm</Label>
|
|
</StackPanel>
|
|
<StackPanel Orientation="Horizontal">
|
|
<Label Margin="5,0,0,0" FontSize="12" HorizontalContentAlignment="Left" Width="20">Z:</Label>
|
|
<Label Name="ZPoseLabel" FontSize="12" HorizontalContentAlignment="Right" Width="50">0 mm</Label>
|
|
</StackPanel>
|
|
</StackPanel>
|
|
</StackPanel>
|
|
<StackPanel>
|
|
<StackPanel Width="120" >
|
|
<Label Name="gazePanelLabel" FontSize="18" HorizontalContentAlignment="Left">Gaze</Label>
|
|
<StackPanel Orientation="Horizontal">
|
|
<Label Margin="5,-5,0,0" FontSize="12" Width="60" HorizontalContentAlignment="Left">Left-right:</Label>
|
|
<Label Margin="0,-5,0,0" Name="GazeXLabel" FontSize="12" MinWidth="30" HorizontalContentAlignment="Right">0</Label>
|
|
</StackPanel>
|
|
<StackPanel Orientation="Horizontal">
|
|
<Label Margin="5,-5,0,0" FontSize="12" Width="60" HorizontalContentAlignment="Left">Up/down:</Label>
|
|
<Label Margin="0,-5,0,0" Name="GazeYLabel" FontSize="12" Width="30" HorizontalContentAlignment="Right">0</Label>
|
|
</StackPanel>
|
|
</StackPanel>
|
|
</StackPanel>
|
|
</StackPanel>
|
|
<StackPanel Grid.Row="1" VerticalAlignment="Center">
|
|
<OpenFaceOffline:MultiBarGraph x:Name="nonRigidGraph" HorizontalAlignment="Center" MinHeight="100"/>
|
|
<Label HorizontalAlignment="Center">Non rigid parameters</Label>
|
|
</StackPanel>
|
|
</Grid>
|
|
</GroupBox>
|
|
<GroupBox Name="ActionUnitBorder" Grid.Row="1" Grid.Column="3" BorderBrush="Black" BorderThickness="1" MinHeight="100">
|
|
<GroupBox.Header>
|
|
Action Units
|
|
</GroupBox.Header>
|
|
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
|
|
<GroupBox>
|
|
<GroupBox.Header>
|
|
Classification
|
|
</GroupBox.Header>
|
|
<OpenFaceOffline:MultiBarGraphHorz x:Name="auClassGraph" HorizontalAlignment="Center" MinWidth="100"/>
|
|
<!--"<StackPanel Name="AU_classes_panel">
|
|
</StackPanel>-->
|
|
</GroupBox>
|
|
<GroupBox>
|
|
<GroupBox.Header>
|
|
Regression
|
|
</GroupBox.Header>
|
|
<OpenFaceOffline:MultiBarGraphHorz x:Name="auRegGraph" HorizontalAlignment="Center" MinWidth="100"/>
|
|
</GroupBox>
|
|
</StackPanel>
|
|
</GroupBox>
|
|
<StackPanel Grid.Row="2" Grid.Column="0" Orientation="Horizontal" HorizontalAlignment="Center">
|
|
<Button VerticalAlignment="Top" IsEnabled="False" Click="PauseButton_Click" Name="PauseButton">Pause</Button>
|
|
<Button VerticalAlignment="Top" IsEnabled="False" Click="StopButton_Click" Name="StopButton">Stop</Button>
|
|
<Button VerticalAlignment="Top" IsEnabled="False" Click="SkipButton_Click" Name="NextFrameButton">>> 1</Button>
|
|
<Button VerticalAlignment="Top" IsEnabled="False" Click="SkipButton_Click" Name="NextFiveFramesButton">>> 5</Button>
|
|
</StackPanel>
|
|
|
|
</Grid>
|
|
</Window>
|