浏览代码

Merge branch 'aisv647_visualizations' of https://github.com/Unity-Technologies/com.unity.perception into aisv647_visualizations

/aisv647_visualizations
Jon Hogins 4 年前
当前提交
a0d99b39
共有 40 个文件被更改,包括 3958 次插入369 次删除
  1. 21
      .yamato/publish.yml
  2. 4
      .yamato/promote.yml
  3. 4
      TestProjects/PerceptionHDRP/Assets/IdLabelConfig.asset
  4. 11
      TestProjects/PerceptionHDRP/Assets/Scenes/SampleScene.unity
  5. 4
      TestProjects/PerceptionURP/Assets/ExampleScripts/CustomAnnotationAndMetricReporter.cs
  6. 4
      TestProjects/PerceptionURP/Assets/Scenes/SampleScene.unity
  7. 18
      com.unity.perception/CHANGELOG.md
  8. 13
      com.unity.perception/Documentation~/index.md
  9. 75
      com.unity.perception/Documentation~/GettingStarted.md
  10. 204
      com.unity.perception/Documentation~/images/PerceptionCameraFinished.png
  11. 366
      com.unity.perception/Documentation~/images/MainCameraLabelConfig.PNG
  12. 125
      com.unity.perception/Documentation~/images/IDLabelingConfigurationFinished.PNG
  13. 4
      com.unity.perception/Documentation~/DatasetCapture.md
  14. 2
      com.unity.perception/Runtime/GroundTruth/Labelers/CameraLabeler.cs
  15. 3
      com.unity.perception/Runtime/GroundTruth/Labelers/SemanticSegmentationLabeler.cs
  16. 23
      com.unity.perception/Runtime/GroundTruth/Labelers/Visualization/ControlPanel.cs
  17. 14
      com.unity.perception/Runtime/GroundTruth/Labelers/Visualization/HUDPanel.cs
  18. 10
      com.unity.perception/Runtime/GroundTruth/Labelers/Visualization/KeyValuePanel.cs
  19. 13
      com.unity.perception/Runtime/GroundTruth/Labelers/Visualization/VisualizationCanvas.cs
  20. 6
      com.unity.perception/Runtime/GroundTruth/PerceptionCamera.cs
  21. 6
      com.unity.perception/Runtime/GroundTruth/SimulationState_Json.cs
  22. 2
      com.unity.perception/Tests/Editor/DatasetCaptureEditorTests.cs
  23. 5
      com.unity.perception/Tests/Runtime/GroundTruthTests/SegmentationGroundTruthTests.cs
  24. 2
      com.unity.perception/package.json
  25. 1
      TestProjects/PerceptionHDRP/Assets/csc.rsp
  26. 7
      TestProjects/PerceptionHDRP/Assets/csc.rsp.meta
  27. 1
      TestProjects/PerceptionURP/Assets/csc.rsp
  28. 7
      TestProjects/PerceptionURP/Assets/csc.rsp.meta
  29. 759
      com.unity.perception/Documentation~/images/smartcamera.png
  30. 1001
      com.unity.perception/Documentation~/images/synthdet.png
  31. 1001
      com.unity.perception/Documentation~/images/controls.gif
  32. 599
      com.unity.perception/Documentation~/images/visualized.png
  33. 5
      com.unity.perception/Documentation~/TableOfContents.md
  34. 7
      com.unity.perception/Documentation~/filter.yml
  35. 0
      /.yamato/promote.yml
  36. 0
      /com.unity.perception/Documentation~/images/PerceptionCameraFinished.png
  37. 0
      /com.unity.perception/Documentation~/images/MainCameraLabelConfig.PNG
  38. 0
      /com.unity.perception/Documentation~/images/IDLabelingConfigurationFinished.PNG
  39. 0
      /com.unity.perception/Tests/Editor/DatasetCaptureEditorTests.cs
  40. 0
      /com.unity.perception/Tests/Editor/DatasetCaptureEditorTests.cs.meta

21
.yamato/publish.yml


{% metadata_file .yamato/environments.yml %}
---
{% for variant in package_variants %}
name: Publish {{ variant.name }} package to internal registry
name: Publish Perception package to internal registry
agent:
type: Unity::VM
image: package-ci/win10:stable

triggers:
tags:
only:
- "/^(r|R)(c|C)-+(-preview(+)?)?$/"
- /^(r|R)(c|C)-\d+\.\d+\.\d+(-preview(\.\d+)?)?$/
- .yamato/upm-ci-full.yml#pack_{{ variant.name }}
{% for editor in test_editors %}
{% for platform in test_platforms %}
- .yamato/upm-ci-full.yml#pkg_test_{{variant.name}}_{{platform.name}}_{{editor.version}}
- .yamato/upm-ci-full.yml#pack_Perception
{% for editor in publish_editors %}
{% for platform in publish_platforms %}
{% for suite in suites %}
{% for project in projects %}
- .yamato/upm-ci-full.yml#pkg_test_Perception_{{platform.name}}_{{editor.version}}
- .yamato/upm-ci-testprojects.yml#{{project.name}}_windows_{{suite.name}}_{{editor.version}}
{% endfor %}
{% endfor %}
{% endfor %}

4
.yamato/promote.yml


{% for platform in publish_platforms %}
{% for suite in suites %}
{% for project in projects %}
{% for variant in package_variants %}
- .yamato/upm-ci-full.yml#pkg_test_{{variant.name}}_{{platform.name}}_{{editor.version}}
- .yamato/upm-ci-full.yml#pkg_test_Perception_{{platform.name}}_{{editor.version}}
{% endfor %}
{% endfor %}
{% endfor %}
{% endfor %}

4
TestProjects/PerceptionHDRP/Assets/IdLabelConfig.asset


m_Name: IdLabelConfig
m_EditorClassIdentifier: Unity.Perception.Runtime:UnityEngine.Perception.GroundTruth:IdLabelConfig
m_LabelEntries:
- label: Box
- label: Crate
- label: Crate
- label: Box
id: 3
autoAssignIds: 1
startingLabelId: 1

11
TestProjects/PerceptionHDRP/Assets/Scenes/SampleScene.unity


asm: Unity.Perception.Runtime}
data:
enabled: 1
foldout: 0
labelingConfiguration: {fileID: 11400000, guid: be3971a848968144e8d07d9136a5bf49,
idLabelConfig: {fileID: 11400000, guid: 034ffd4e09ffb7348b2fe6634259058a,
type: 2}
00000001:
type: {class: SemanticSegmentationLabeler, ns: UnityEngine.Perception.GroundTruth,

foldout: 0
m_TargetTextureOverride: {fileID: 0}
foldout: 0
m_LabelingConfiguration: {fileID: 11400000, guid: be3971a848968144e8d07d9136a5bf49,
m_LabelConfig: {fileID: 11400000, guid: 034ffd4e09ffb7348b2fe6634259058a,
type: 2}
00000003:
type: {class: RenderedObjectInfoLabeler, ns: UnityEngine.Perception.GroundTruth,

foldout: 0
labelingConfiguration: {fileID: 11400000, guid: be3971a848968144e8d07d9136a5bf49,
idLabelConfig: {fileID: 11400000, guid: 034ffd4e09ffb7348b2fe6634259058a,
type: 2}
--- !u!1 &1640252278
GameObject:

4
TestProjects/PerceptionURP/Assets/ExampleScripts/CustomAnnotationAndMetricReporter.cs


[RequireComponent(typeof(PerceptionCamera))]
public class CustomAnnotationAndMetricReporter : MonoBehaviour
{
public GameObject light;
public GameObject targetLight;
public GameObject target;
MetricDefinition lightMetricDefinition;

public void Update()
{
//Report the light's position by manually creating the json array string.
var lightPos = light.transform.position;
var lightPos = targetLight.transform.position;
DatasetCapture.ReportMetric(lightMetricDefinition,
$@"[{{ ""x"": {lightPos.x}, ""y"": {lightPos.y}, ""z"": {lightPos.z} }}]");
//compute the location of the object in the camera's local space

4
TestProjects/PerceptionURP/Assets/Scenes/SampleScene.unity


- id: 1
- id: 2
- id: 3
m_VisualizationEnabled: 1
showVisualizations: 1
references:
version: 1
00000000:

type: {class: SemanticSegmentationLabeler, ns: UnityEngine.Perception.GroundTruth,
asm: Unity.Perception.Runtime}
data:
enabled: 0
enabled: 1
annotationId: 12F94D8D-5425-4DEB-9B21-5E53AD957D66
labelConfig: {fileID: 11400000, guid: c140c5aa05dd09e4fadaa26de31b1f39, type: 2}
m_TargetTextureOverride: {fileID: 0}

18
com.unity.perception/CHANGELOG.md


# Changelog
All notable changes to this package will be documented in this file.
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)

### Removed
### Fixed
Fixed compilation warnings with latest com.unity.simulation.core package.
## [0.3.0-preview.1] - 2020-07-31
### Added
Added realtime visualization capability to the perception package.
Added visualizers for built-in labelers: Semantic Segmentation, 2D Bounding Boxes, Object Count, and Render Object Info.
### This is the first release of the _Perception_ package

13
com.unity.perception/Documentation~/index.md


[Setting up your first perception scene](GettingStarted.md)
## Example projects using Perception
### SynthDet
<img src="images/synthdet.png"/>
[SynthDet](https://github.com/Unity-Technologies/SynthDet) is an end-to-end solution for training a 2d object detection model using synthetic data.
### Unity Simulation Smart Camera Example
<img src="images/smartcamera.png"/>
The [Unity Simulation Smart Camera Example](https://github.com/Unity-Technologies/Unity-Simulation-Smart-Camera-Outdoor) illustrates how Perception could be used in a smart city or autonomous vehicle simulation. Datasets can be generated locally or at scale in [Unity Simulation](https://unity.com/products/unity-simulation).
## Package contents
|Feature|Description

75
com.unity.perception/Documentation~/GettingStarted.md


# Getting Started with Perception
<img src="images/ScriptableRendererStep.PNG" align="middle"/>
<img src="images/ScriptableRendererStep.png" align="middle"/>
3. Select the Main Camera and reset the Position transform to 0
3. Select the Main Camera and reset the Position transform to 0
1. In the inspector panel of the main camera select Add Component
2. Add a **Perception Camera** component
1. In the inspector panel of the main camera select Add Component
2. Add a **Perception Camera** component
<img src="images/MainCameraConfig.PNG" align="middle"/>
<img src="images/PerceptionCameraFinished.png" align="middle"/>
1. Create a cube by right-clicking in the Hierarchy window, select 3D Object -> Cube
1. Create 2 more cubes this way
1. Change the names of the cubes to Cube, Box, and Crate
1. Position the Cubes in front of the main Camera
1. Create a cube by right-clicking in the Hierarchy window, select 3D Object -> Cube
2. Create 2 more cubes this way
3. Change the names of the cubes to Cube, Box, and Crate
4. Position the Cubes in front of the main Camera
1. On each cube, from the inspector panel add a **Labeling** component
5. On each cube, from the inspector panel add a **Labeling** component
1. In the Project panel right click -> Perception -> Labeling Configuration
1. Select the new **Labeling Configuration**
6. In the Project panel right click -> Perception -> Labeling Configuration
7. Select the new **ID Label Config**
3. Add a numerical value to the value field
Make sure the labels all have different values, for this example use increments of 10,000 to ensure they show up as very distinct colors in the segmentation images
<img src="images/IDLabelingConfigurationFinished.PNG" align="middle"/>
<img src="images/LabelingConfigurationFinished.PNG" align="middle"/>
8. Select the Main Camera in the Hierarchy panel
9. In the Perception Camera attach the ID Label Config created in previous step for each ID Label config
1. Select the Main Camera in the Hierarchy panel
1. In the Perception Camera attach the Labeling Configuration created in previous step
<img src="images/MainCameraLabelConfig.PNG" align="middle"/>
<img src="images/MainCameraConfig.PNG" align="middle"/>
## Step 5: Run simulation and generate dataset
## Step 5: Run simulation and generate dataset
>Example file path on a Windows PC : `C:/Users/<User Name>/AppData/LocalLow/DefaultCompany/UnityTestFramework\2e10ec21-9d97-4cee-b5a2-7e95e299afa4\RGB18f61842-ef8d-4b31-acb5-cb1da36fb7b1`
> Example file path on a Windows PC : `C:/Users/<User Name>/AppData/LocalLow/DefaultCompany/UnityTestFramework\2e10ec21-9d97-4cee-b5a2-7e95e299afa4\RGB18f61842-ef8d-4b31-acb5-cb1da36fb7b1`
- RGB captures
- Semantic segmentation images
- Logs
- JSON dataset
- RGB captures
- Semantic segmentation images
- Logs
- JSON dataset
<img src="images/rgb_2.png" align="middle"/>
_RGB image_

_Example semantic segmentation image_
_Example semantic segmentation image_
## Optional Step: Realtime visualization of labelers
The perception package now comes with the ability to show realtime results of the labeler in the scene. To enable this capability:
<img src="images/visualized.png" align="middle"/>
_Example of perception running with show visualizations on_
1. To use the visualizer, verify that *Show Visualizations* is checked on in the Inspector pane. This turns on the built in labelers which includes segmentation data, 2D bounding boxes, pixel and object counts.
2. Turning on the visualizer creates new UI controls in the editor's game view. These controls allow you to atomically control each of the individual visualizers. Each individual can be turned on/off on their own. Some visualizers also include controls to change their output.
<img src="images/controls.gif" align="middle"/>
_Visualization controls in action_
***Important Note:*** The perception package takes advantage of asynchronous processing to ensure reasonable frame rates of a scene. A side effect of realtime visualization is that the labelers have to be applied to the capture in its actual frame, which will potentially adversely affect the scene's framerate.

204
com.unity.perception/Documentation~/images/PerceptionCameraFinished.png

之前 之后
宽度: 701  |  高度: 415  |  大小: 45 KiB

366
com.unity.perception/Documentation~/images/MainCameraLabelConfig.PNG

之前 之后
宽度: 701  |  高度: 830  |  大小: 76 KiB

125
com.unity.perception/Documentation~/images/IDLabelingConfigurationFinished.PNG

之前 之后
宽度: 704  |  高度: 280  |  大小: 12 KiB

4
com.unity.perception/Documentation~/DatasetCapture.md


[RequireComponent(typeof(PerceptionCamera))]
public class CustomAnnotationAndMetricReporter : MonoBehaviour
{
public GameObject light;
public GameObject targetLight;
public GameObject target;
MetricDefinition lightMetricDefinition;

public void Update()
{
//Report the light's position by manually creating the json array string.
var lightPos = light.transform.position;
var lightPos = targetLight.transform.position;
DatasetCapture.ReportMetric(lightMetricDefinition,
$@"[{{ ""x"": {lightPos.x}, ""y"": {lightPos.y}, ""z"": {lightPos.z} }}]");
//compute the location of the object in the camera's local space

2
com.unity.perception/Runtime/GroundTruth/Labelers/CameraLabeler.cs


/// Called immediately after <see cref="setup"/>. Implement this to initialize labeler's visualization
/// capability if one exists <see cref="supportVisualization"/>.
/// </summary>
/// <param name="panel">The target control panel for the labeler's visualization component</param>
/// <param name="enabled">The current enabled state of the visualizer</param>
protected virtual void OnVisualizerEnabledChanged(bool enabled) {}
/// <summary>
/// Called during the Update each frame the the labeler is enabled and <see cref="SensorHandle.ShouldCaptureThisFrame"/> is true.

3
com.unity.perception/Runtime/GroundTruth/Labelers/SemanticSegmentationLabeler.cs


height = targetTexture.height,
path = localPath
};
asyncRequest.Start((r) =>
asyncRequest.Enqueue((r) =>
{
Profiler.BeginSample("Encode");
var pngBytes = ImageConversion.EncodeArrayToPNG(r.data.data.ToArray(), GraphicsFormat.R8G8B8A8_UNorm, (uint)r.data.width, (uint)r.data.height);

r.data.data.Dispose();
return AsyncRequest.Result.Completed;
});
asyncRequest.Execute();
}
/// <inheritdoc/>

23
com.unity.perception/Runtime/GroundTruth/Labelers/Visualization/ControlPanel.cs


/// <summary>
/// Adds a new UI control to the control panel. If the control cannot be added and the method will
/// return false. Also, all UI elements must have a LayoutElement component and if they do not,
/// return false. Also, all UI elements must have a LayoutElement component and if they do not,
/// <param name="uiControl">The control that is to be added to the control panel</param>
/// <returns>True if the control could be added, false if it there was a problem adding it</returns>
public bool AddNewControl(GameObject uiControl)
{
if (uiControl.GetComponent<RectTransform>() == null)

/// false if the element does not exist. Returns true on a successful removal.
/// The caller is responsible for destroying the control.
/// </summary>
/// <param name="uiControl">The control that needs to be removed from the panel</param>
/// <returns>True if the control could be removed, false if there was an issue removing the control</returns>
public bool RemoveControl(GameObject uiControl)
{
if (m_Controls.Remove(uiControl))

}
/// <summary>
/// Creates a new toogle control with passed in name. The passed in listener will be
/// Creates a new toggle control with passed in name. The passed in listener will be
/// Returns the control panel elemet upon a succssful add.
/// Returns the control panel element upon a successful add.
/// <param name="name">The name of the toggle</param>
/// <param name="listener">The callback action that will be triggered when the toggle's state changes</param>
/// <returns>The created toggle</returns>
public GameObject AddToggleControl(string name, UnityAction<bool> listener)
{
if (listener == null)

}
/// <summary>
/// Creates a new slider control with the passed in name and default value. The passed in listener will be
/// called on slider changes. If anything goes wrong this method will return null.
/// Returns the control panel elemet upon a succssful add.
/// Creates a new slider control with the passed in name and default value. The slider's value runs from 0 to 1.
/// The passed in listener will be called on slider changes. If anything goes wrong this method will return null.
/// Returns the control panel element upon a successful add.
/// <param name="name">The name of the slider control</param>
/// <param name="defaultValue">The default value of the slider, between 0 and 1</param>
/// <param name="listener">The callback action that will be triggered when the slider's value changes</param>
/// <returns>The created slider</returns>
public GameObject AddSliderControl(string name, float defaultValue, UnityAction<float> listener)
{
if (listener == null)

14
com.unity.perception/Runtime/GroundTruth/Labelers/Visualization/HUDPanel.cs


Dictionary<string, (bool, KeyValuePanel)> entries = new Dictionary<string, (bool, KeyValuePanel)>();
Stack<KeyValuePanel> orphans = new Stack<KeyValuePanel>();
/// <summary>
/// The panel that will hold all of the key value panel elements, this reference is needed to be able to hide the panel
/// </summary>
/// <summary>
/// The scroll rect of the HUD panel, this reference is needed to be able to hide the panel
/// </summary>
/// <summary>
/// The background image of the HUD panel, this reference is needed to be able to hide the panel
/// </summary>
public Image img = null;
void Update()

/// <summary>
/// Updates (or creates) an entry with the passed in key value pair
/// </summary>
/// <param name="key">The key of the HUD entry</param>
/// <param name="value">The value of the entry</param>
public void UpdateEntry(string key, string value)
{
(bool, KeyValuePanel) val;

/// <summary>
/// Removes the key value pair from the HUD
/// </summary>
/// <param name="key">The key of the entry to remove</param>
public void RemoveEntry(string key)
{
if (entries.ContainsKey(key))

/// <summary>
/// Removes all of the passed in entries from the HUD
/// </summary>
/// <param name="keys">List of keys to remove from the panel</param>
public void RemoveEntries(List<string> keys)
{
foreach (var k in keys) RemoveEntry(k);

/// Removes all of the passed in entries from the HUD
/// </summary>
/// <param name="keys">List of keys t remove from the panel</param>
public void RemoveEntries(string[] keys)
{
foreach (var k in keys) RemoveEntry(k);

10
com.unity.perception/Runtime/GroundTruth/Labelers/Visualization/KeyValuePanel.cs


namespace UnityEngine.Perception.GroundTruth
{
/// <summary>
///
/// Key value pair panel UI object
/// <summary>
/// Key UI text element of the panel
/// </summary>
/// <summary>
/// Value UI text element of the panel
/// </summary>
/// <param name="k">The key of the key/value pair</param>
public void SetKey(string k)
{
if (k == null || k == string.Empty) return;

/// <summary>
/// Sets the value of this key value pair
/// </summary>
/// <param name="v">The value of the key/value pair</param>
public void SetValue(string v)
{
value.text = v;

13
com.unity.perception/Runtime/GroundTruth/Labelers/Visualization/VisualizationCanvas.cs


/// </summary>
public class VisualizationCanvas : MonoBehaviour
{
/// <summary>
/// The control panel contains the UI control elements used to interact with the labelers.
/// </summary>
/// <summary>
/// The HUD panel displays realtime key/value pair data on a UI panel.
/// </summary>
/// <summary>
/// Game object which acts as the scene container for all of the dynamic labeler visuals
/// </summary>
public GameObject dynaicContentHolder;
// Start is called before the first frame update

/// the entire screen. Pass in setAsLowestElement if the component should be rendered behind all other components.
/// This method will return false if the element could not be added, true if everything works properly.
/// </summary>
/// <param name="component">UI component that should be added to this UI canvas</param>
/// <param name="fullScreen">Should this component's rect transform be set to fill the entire dimensions of the parent, defaults to true</param>
/// <param name="setAsLowestElement">Should this UI component be rendered as the lowest UI component in the scene, defaults to false</param>
/// <returns>True if the component was added properly, false if an error occurred.</returns>
public bool AddComponent(GameObject component, bool fullScreen = true, bool setAsLowestElement = false)
{
if (component == null)

6
com.unity.perception/Runtime/GroundTruth/PerceptionCamera.cs


bool m_CapturedLastFrame;
Ego m_EgoMarker;
#pragma warning disable 414
#pragma warning restore 414
/// <summary>
/// Turns on/off the realtime visualization capability.
/// </summary>
[SerializeField]
public bool showVisualizations = true;

6
com.unity.perception/Runtime/GroundTruth/SimulationState_Json.cs


PendingCaptures = pendingCapturesToWrite,
SimulationState = this
};
req.Start(r =>
req.Enqueue(r =>
req.Execute(AsyncRequest.ExecutionContext.JobSystem);
}
m_SerializeCapturesSampler.End();

MetricFileIndex = m_MetricsFileIndex,
PendingMetrics = pendingMetricsToWrite
};
req.Start(r =>
req.Enqueue(r =>
req.Execute();
}
m_MetricsFileIndex++;

2
com.unity.perception/Tests/Editor/DatasetCaptureEditorTests.cs


using NUnit.Framework;
using UnityEngine.Perception.GroundTruth;
namespace GroundTruth
namespace GroundTruthTests
{
public class DatasetCaptureEditorTests
{

5
com.unity.perception/Tests/Runtime/GroundTruthTests/SegmentationGroundTruthTests.cs


using NUnit.Framework;
using Unity.Collections;
using UnityEngine;
using UnityEngine.Experimental.Rendering;
using UnityEngine.Rendering.HighDefinition;
using UnityEngine.Experimental.Rendering;
using UnityEngine.UIElements;
using Object = UnityEngine.Object;
namespace GroundTruthTests

[UnityTest]
public IEnumerator SemanticSegmentationPass_WithTextureOverride_RendersToOverride()
{
int timesSegmentationImageReceived = 0;
var expectedPixelValue = new Color32(0, 0, 255, 255);
var targetTextureOverride = new RenderTexture(2, 2, 1, RenderTextureFormat.R8);

2
com.unity.perception/package.json


"displayName": "Perception",
"name": "com.unity.perception",
"unity": "2019.3",
"version": "0.1.0-preview.4"
"version": "0.3.0-preview.1"
}

1
TestProjects/PerceptionHDRP/Assets/csc.rsp


-warnaserror+

7
TestProjects/PerceptionHDRP/Assets/csc.rsp.meta


fileFormatVersion: 2
guid: b590f0b421136b44098ad7e92fc45f3e
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

1
TestProjects/PerceptionURP/Assets/csc.rsp


-warnaserror+

7
TestProjects/PerceptionURP/Assets/csc.rsp.meta


fileFormatVersion: 2
guid: 1800f44b598c0b647bf3fad2f5c9b957
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

759
com.unity.perception/Documentation~/images/smartcamera.png

之前 之后
宽度: 701  |  高度: 209  |  大小: 201 KiB

1001
com.unity.perception/Documentation~/images/synthdet.png
文件差异内容过多而无法显示
查看文件

1001
com.unity.perception/Documentation~/images/controls.gif
文件差异内容过多而无法显示
查看文件

599
com.unity.perception/Documentation~/images/visualized.png
文件差异内容过多而无法显示
查看文件

5
com.unity.perception/Documentation~/TableOfContents.md


* [Installation Instructions](SetupSteps.md)
* [Getting Started](GettingStarted.md)
* [Labeling](GroundTruth-Labeling.md)
* [Perception Camera](PerceptionCamera.md)
* [Dataset Capture](DatasetCapture.md)

7
com.unity.perception/Documentation~/filter.yml


apiRules:
- exclude:
uidRegex: Tests$
type: Namespace
- exclude:
uidRegex: Tests
type: Type

/.yamato/promotion.yml → /.yamato/promote.yml

/com.unity.perception/Documentation~/images/PerceptionCamera.png → /com.unity.perception/Documentation~/images/PerceptionCameraFinished.png

/com.unity.perception/Documentation~/images/MainCameraConfig.PNG → /com.unity.perception/Documentation~/images/MainCameraLabelConfig.PNG

/com.unity.perception/Documentation~/images/LabelingConfigurationFinished.PNG → /com.unity.perception/Documentation~/images/IDLabelingConfigurationFinished.PNG

/com.unity.perception/Tests/Editor/SimulationManagerEditorTests.cs → /com.unity.perception/Tests/Editor/DatasetCaptureEditorTests.cs

/com.unity.perception/Tests/Editor/SimulationManagerEditorTests.cs.meta → /com.unity.perception/Tests/Editor/DatasetCaptureEditorTests.cs.meta

正在加载...
取消
保存