Skip to content

Commit

Permalink
Updated BT samples to use the BT SDK 1.1.1 (microsoft#66)
Browse files Browse the repository at this point in the history
* Fixed cmake issues

* Update BT samples to use the Body Tracking SDK 1.1.1

Co-authored-by: Vache Katsadze <v-vkatsadze@microsoft.com>
  • Loading branch information
fkavache and Vache Katsadze authored Mar 16, 2022
1 parent 369e153 commit 9af4b10
Show file tree
Hide file tree
Showing 35 changed files with 1,449 additions and 199 deletions.
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

cmake_minimum_required(VERSION 3.9.0)

cmake_policy(SET CMP0048 NEW)
set(CMAKE_POLICY_DEFAULT_CMP0063 NEW)

project(Azure-Kinect-Samples LANGUAGES C CXX
VERSION 1.4)
Expand Down
27 changes: 27 additions & 0 deletions body-tracking-samples/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,34 @@
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License.

if (NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/extern/glfw/src/CMakeLists.txt")
find_package(Git REQUIRED QUIET)
if (Git_FOUND)
message(STATUS "Fetching git modules...")
execute_process(
COMMAND
${GIT_EXECUTABLE} submodule update --init --recursive
WORKING_DIRECTORY
${CMAKE_CURRENT_SOURCE_DIR}
RESULT_VARIABLE
GIT_SUBMODULE_UPDATE_RESULT
OUTPUT_VARIABLE
GIT_SUBMODULE_UPDATE_OUTPUT
)

if (NOT (${GIT_SUBMODULE_UPDATE_RESULT} EQUAL 0))
message(FATAL_ERROR "git submodule update failed: ${GIT_SUBMODULE_UDPATE_OUTPUT}")
endif()
endif()
endif()

list(INSERT CMAKE_MODULE_PATH 0 ${CMAKE_CURRENT_LIST_DIR}/cmake)

add_subdirectory(extern)
add_subdirectory(camera_space_transform_sample)
add_subdirectory(floor_detector_sample)
add_subdirectory(jump_analysis_sample)
add_subdirectory(offline_processor)
add_subdirectory(simple_3d_viewer)
add_subdirectory(simple_sample)
add_subdirectory(sample_helper_libs)
11 changes: 11 additions & 0 deletions body-tracking-samples/camera_space_transform_sample/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License.

add_executable(camera_space_transform_sample
main.cpp
)

target_link_libraries(camera_space_transform_sample PRIVATE
k4a
k4abt
)
Original file line number Diff line number Diff line change
Expand Up @@ -14,19 +14,19 @@
<VCProjectVersion>15.0</VCProjectVersion>
<ProjectGuid>{A7D2F1BE-0030-4436-B391-FEDE1E756B02}</ProjectGuid>
<RootNamespace>cameraspacetransformsample</RootNamespace>
<WindowsTargetPlatformVersion>10.0.17134.0</WindowsTargetPlatformVersion>
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v142</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v142</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
Expand Down Expand Up @@ -91,18 +91,16 @@
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
<Import Project="$(SolutionDir)\packages\Microsoft.Azure.Kinect.Sensor.1.3.0\build\native\Microsoft.Azure.Kinect.Sensor.targets" Condition="Exists('$(SolutionDir)\packages\Microsoft.Azure.Kinect.Sensor.1.3.0\build\native\Microsoft.Azure.Kinect.Sensor.targets')" />
<Import Project="$(SolutionDir)\packages\Microsoft.Azure.Kinect.BodyTracking.1.0.1\build\native\Microsoft.Azure.Kinect.BodyTracking.targets" Condition="Exists('$(SolutionDir)\packages\Microsoft.Azure.Kinect.BodyTracking.1.0.1\build\native\Microsoft.Azure.Kinect.BodyTracking.targets')" />
<Import Project="$(SolutionDir)\packages\Microsoft.Azure.Kinect.BodyTracking.Dependencies.0.9.1\build\native\Microsoft.Azure.Kinect.BodyTracking.Dependencies.targets" Condition="Exists('$(SolutionDir)\packages\Microsoft.Azure.Kinect.BodyTracking.Dependencies.0.9.1\build\native\Microsoft.Azure.Kinect.BodyTracking.Dependencies.targets')" />
<Import Project="$(SolutionDir)\packages\Microsoft.Azure.Kinect.BodyTracking.Dependencies.cuDNN.0.9.1\build\native\Microsoft.Azure.Kinect.BodyTracking.Dependencies.cuDNN.targets" Condition="Exists('$(SolutionDir)\packages\Microsoft.Azure.Kinect.BodyTracking.Dependencies.cuDNN.0.9.1\build\native\Microsoft.Azure.Kinect.BodyTracking.Dependencies.cuDNN.targets')" />
<Import Project="$(SolutionDir)\packages\Microsoft.Azure.Kinect.Sensor.1.4.1\build\native\Microsoft.Azure.Kinect.Sensor.targets" Condition="Exists('$(SolutionDir)\packages\Microsoft.Azure.Kinect.Sensor.1.4.1\build\native\Microsoft.Azure.Kinect.Sensor.targets')" />
<Import Project="$(SolutionDir)\packages\Microsoft.Azure.Kinect.BodyTracking.1.1.1\build\native\Microsoft.Azure.Kinect.BodyTracking.targets" Condition="Exists('$(SolutionDir)\packages\Microsoft.Azure.Kinect.BodyTracking.1.1.1\build\native\Microsoft.Azure.Kinect.BodyTracking.targets')" />
<Import Project="$(SolutionDir)\packages\Microsoft.Azure.Kinect.BodyTracking.ONNXRuntime.1.10.0\build\native\Microsoft.Azure.Kinect.BodyTracking.ONNXRuntime.targets" Condition="Exists('$(SolutionDir)\packages\Microsoft.Azure.Kinect.BodyTracking.ONNXRuntime.1.10.0\build\native\Microsoft.Azure.Kinect.BodyTracking.ONNXRuntime.targets')" />
</ImportGroup>
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('$(SolutionDir)\packages\Microsoft.Azure.Kinect.Sensor.1.3.0\build\native\Microsoft.Azure.Kinect.Sensor.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\packages\Microsoft.Azure.Kinect.Sensor.1.3.0\build\native\Microsoft.Azure.Kinect.Sensor.targets'))" />
<Error Condition="!Exists('$(SolutionDir)\packages\Microsoft.Azure.Kinect.BodyTracking.1.0.1\build\native\Microsoft.Azure.Kinect.BodyTracking.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\packages\Microsoft.Azure.Kinect.BodyTracking.1.0.1\build\native\Microsoft.Azure.Kinect.BodyTracking.targets'))" />
<Error Condition="!Exists('$(SolutionDir)\packages\Microsoft.Azure.Kinect.BodyTracking.Dependencies.0.9.1\build\native\Microsoft.Azure.Kinect.BodyTracking.Dependencies.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\packages\Microsoft.Azure.Kinect.BodyTracking.Dependencies.0.9.1\build\native\Microsoft.Azure.Kinect.BodyTracking.Dependencies.targets'))" />
<Error Condition="!Exists('$(SolutionDir)\packages\Microsoft.Azure.Kinect.BodyTracking.Dependencies.cuDNN.0.9.1\build\native\Microsoft.Azure.Kinect.BodyTracking.Dependencies.cuDNN.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\packages\Microsoft.Azure.Kinect.BodyTracking.Dependencies.cuDNN.0.9.1\build\native\Microsoft.Azure.Kinect.BodyTracking.Dependencies.cuDNN.targets'))" />
<Error Condition="!Exists('$(SolutionDir)\packages\Microsoft.Azure.Kinect.Sensor.1.4.1\build\native\Microsoft.Azure.Kinect.Sensor.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\packages\Microsoft.Azure.Kinect.Sensor.1.4.1\build\native\Microsoft.Azure.Kinect.Sensor.targets'))" />
<Error Condition="!Exists('$(SolutionDir)\packages\Microsoft.Azure.Kinect.BodyTracking.1.1.1\build\native\Microsoft.Azure.Kinect.BodyTracking.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\packages\Microsoft.Azure.Kinect.BodyTracking.1.1.1\build\native\Microsoft.Azure.Kinect.BodyTracking.targets'))" />
<Error Condition="!Exists('$(SolutionDir)\packages\Microsoft.Azure.Kinect.BodyTracking.ONNXRuntime.1.10.0\build\native\Microsoft.Azure.Kinect.BodyTracking.ONNXRuntime.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\packages\Microsoft.Azure.Kinect.BodyTracking.ONNXRuntime.1.10.0\build\native\Microsoft.Azure.Kinect.BodyTracking.ONNXRuntime.targets'))" />
</Target>
</Project>
</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="main.c">
<ClCompile Include="main.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
Expand All @@ -24,4 +24,4 @@
<None Include="dnn_model_2_0.onnx" />
<None Include="$(MSBuildThisFileDirectory)..\..\content\**\*.*" />
</ItemGroup>
</Project>
</Project>
55 changes: 54 additions & 1 deletion body-tracking-samples/camera_space_transform_sample/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,58 @@ void transform_body_index_map_from_depth_to_color(
K4ABT_BODY_INDEX_MAP_BACKGROUND), "Failed to transform body index map to color space!");
}

int main()
bool ProcessArguments(k4abt_tracker_configuration_t& tracker_config, int argc, char** argv)
{
#ifdef _WIN32
printf("Usage: k4abt_camera_space_transform_sample PROCESSING_MODE[CUDA, CPU, DirectML ( default ), or TensorRT](optional) -model MODEL_FILEPATH(optional).\n");
#else
printf("Usage: k4abt_camera_space_transform_sample PROCESSING_MODE[CUDA ( default ), CPU, or TensorRT](optional) -model MODEL_FILEPATH(optional).\n");
#endif

for (int i = 1; i < argc; i++)
{
if (0 == strcmp(argv[i], "TensorRT"))
{
tracker_config.processing_mode = K4ABT_TRACKER_PROCESSING_MODE_GPU_TENSORRT;
}
else if (0 == strcmp(argv[i], "CUDA"))
{
tracker_config.processing_mode = K4ABT_TRACKER_PROCESSING_MODE_GPU_CUDA;
}
else if (0 == strcmp(argv[i], "CPU"))
{
tracker_config.processing_mode = K4ABT_TRACKER_PROCESSING_MODE_CPU;
}
#ifdef _WIN32
else if (0 == strcmp(argv[i], "DirectML"))
{
tracker_config.processing_mode = K4ABT_TRACKER_PROCESSING_MODE_GPU_DIRECTML;
}
#endif
else if (0 == strcmp(argv[i], "-model"))
{
if( i < argc - 1 )
tracker_config.model_path = argv[++i];
else
{
printf("Error: model filepath missing\n");
return false;
}
}
else
{
#ifdef _WIN32
printf("Invalid processing mode ! Accepted values are CUDA, CPU, DirectML ( default ), or TensorRT.\n");
#else
printf("Invalid processing mode ! Accepted values are CUDA ( default ), CPU, or TensorRT.\n");
#endif
return false;
}
}
return true;
}

int main(int argc, char** argv)
{
k4a_device_configuration_t device_config = K4A_DEVICE_CONFIG_INIT_DISABLE_ALL;
device_config.depth_mode = K4A_DEPTH_MODE_NFOV_UNBINNED;
Expand All @@ -106,6 +157,8 @@ int main()

k4abt_tracker_t tracker = NULL;
k4abt_tracker_configuration_t tracker_config = K4ABT_TRACKER_CONFIG_DEFAULT;
if (!ProcessArguments(tracker_config, argc, argv))
exit(1);
VERIFY(k4abt_tracker_create(&sensor_calibration, tracker_config, &tracker), "Body tracker initialization failed!");

// Preallocated the buffers to hold the depth image in color space and the body index map in color space
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Microsoft.Azure.Kinect.BodyTracking" version="1.0.1" targetFramework="native" />
<package id="Microsoft.Azure.Kinect.BodyTracking.Dependencies" version="0.9.1" targetFramework="native" />
<package id="Microsoft.Azure.Kinect.BodyTracking.Dependencies.cuDNN" version="0.9.1" targetFramework="native" />
<package id="Microsoft.Azure.Kinect.Sensor" version="1.3.0" targetFramework="native" />
<package id="Microsoft.Azure.Kinect.BodyTracking" version="1.1.1" targetFramework="native" />
<package id="Microsoft.Azure.Kinect.BodyTracking.ONNXRuntime" version="1.10.0" targetFramework="native" />
<package id="Microsoft.Azure.Kinect.Sensor" version="1.4.1" targetFramework="native" />
</packages>
Loading

0 comments on commit 9af4b10

Please sign in to comment.