| | <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:i="http://schemas.microsoft.com/expression/2010/interactivity" |
| | xmlns:Sys="clr-namespace:System;assembly=mscorlib" |
| | 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="individualImageDirectoryOpenClick"> |
| | </MenuItem> |
| | <MenuItem Header="Open webcam" Click="openWebcamClick"> |
| | </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 IsCheckable="True" Header="Record tracked images/videos" IsChecked="{Binding RecordTracked}"/> |
| | </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 IsCheckable="True" Header="Mask aligned image" IsChecked="{Binding MaskAligned}"/> |
| | </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> |
| |
|
| | <MenuItem Header="Face Detector" Name="FaceDetectorMenu"> |
| | <MenuItem x:Name="FaceDetHaar" Header="OpenCV (Haar)" IsCheckable="true" IsChecked="{Binding DetectorHaar}" Click="ExclusiveMenuItem_Click"></MenuItem> |
| | <MenuItem x:Name="FaceDetHOG" Header="dlib (HOG-SVM)" IsCheckable="true" IsChecked="{Binding DetectorHOG}" Click="ExclusiveMenuItem_Click"></MenuItem> |
| | <MenuItem x:Name="FaceDetCNN" Header="OpenFace (MTCNN)" IsCheckable="true" IsChecked="{Binding DetectorCNN}" Click="ExclusiveMenuItem_Click"></MenuItem> |
| | </MenuItem> |
| |
|
| | <MenuItem Header="Landmark Detector" Name="LandmarkDetectorMenu"> |
| | <MenuItem x:Name="LandmarkDetCLM" Header="CLM" IsCheckable="true" IsChecked="{Binding LandmarkDetectorCLM}" Click="ExclusiveMenuItem_Click"></MenuItem> |
| | <MenuItem x:Name="LandmarkDetCLNF" Header="CLNF" IsCheckable="true" IsChecked="{Binding LandmarkDetectorCLNF}" Click="ExclusiveMenuItem_Click"></MenuItem> |
| | <MenuItem x:Name="LandmarkDetCECLM" Header="CE-CLM" IsCheckable="true" IsChecked="{Binding LandmarkDetectorCECLM}" Click="ExclusiveMenuItem_Click"></MenuItem> |
| | </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="overlay_image" /> |
| | </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"/> |
| | |
| | |
| | </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> |
| |
|