Skip to content

Update to latest version of SkiaSharp #7413

@chaojian-zhang

Description

@chaojian-zhang

System Information (please complete the following information):

  • OS & Version: Windows 10
  • ML.NET Version: ML.NET v4.0.2
  • .NET Version: .NET 8.0

Describe the bug

In https://github.com/dotnet/machinelearning-samples, open ObjectDetection project, explicitly depend on SkiaSharp package 3.116.1, run, and observe failure:

=====Identify the objects in the images=====

System.InvalidOperationException: Splitter/consolidator worker encountered exception while consuming source data
 ---> System.MissingMethodException: Method not found: 'System.ReadOnlySpan`1<Byte> SkiaSharp.SKBitmap.GetPixelSpan()'.
   at Microsoft.ML.Data.MLImage.get_Pixels()
   at Microsoft.ML.Transforms.Image.ImagePixelExtractingTransformer.Mapper.<>c__DisplayClass5_0`1.<GetGetterCore>b__1(VBuffer`1& dst)
   at Microsoft.ML.Transforms.Onnx.OnnxTransformer.Mapper.NamedOnnxValueGetterVec`1.GetNamedOnnxValueCore()
   at Microsoft.ML.Transforms.Onnx.OnnxTransformer.Mapper.NamedOnnxValueGetterVec`1.GetNamedOnnxValueKnownSize()
   at Microsoft.ML.Transforms.Onnx.OnnxTransformer.Mapper.NamedOnnxValueGetterVec`1.GetNamedOnnxValue()
   at Microsoft.ML.Transforms.Onnx.OnnxTransformer.Mapper.UpdateCacheIfNeeded(Int64 position, INamedOnnxValueGetter[] srcNamedOnnxValueGetters, List`1 activeOutputColNames, OnnxRuntimeOutputCacher outputCache)
   at Microsoft.ML.Transforms.Onnx.OnnxTransformer.Mapper.<>c__DisplayClass14_0`1.<MakeTensorGetter>b__0(VBuffer`1& dst)
   at Microsoft.ML.Data.DataViewUtils.Splitter.InPipe.Impl`1.Fill()
   at Microsoft.ML.Data.DataViewUtils.Splitter.<>c__DisplayClass7_1.<ConsolidateCore>b__2()
   --- End of inner exception stack trace ---
   at Microsoft.ML.Data.DataViewUtils.Splitter.Batch.SetAll(OutPipe[] pipes)
   at Microsoft.ML.Data.DataViewUtils.Splitter.Cursor.MoveNextCore()
   at Microsoft.ML.Data.RootCursorBase.MoveNext()
   at Microsoft.ML.Data.ColumnCursorExtensions.GetColumnArrayDirect[T](IDataView data, Int32 col)+MoveNext()
   at System.Linq.Enumerable.SelectEnumerableIterator`2.MoveNext()
   at System.Linq.Enumerable.TryGetElement[TSource](IEnumerable`1 source, Int32 index, TSource& element)
   at System.Linq.Enumerable.ElementAt[TSource](IEnumerable`1 source, Int32 index)
   at ObjectDection.Program.Main(String[] args) in C:\Projects\Intermediate\machinelearning-samples\samples\csharp\getting-started\DeepLearning_ObjectDetection_Onnx\ObjectDetectionConsoleApp\Program.cs:line 43
========= End of Process..Hit any Key ========

Root cause is ImageAnalytics.

To Reproduce
Steps to reproduce the behavior:

  1. Download and use https://github.com/dotnet/machinelearning-samples
  2. Open samples\csharp\getting-started\DeepLearning_ObjectDetection_Onnx\ObjectDetectionConsoleApp.ObjectDetection.csproj
  3. Use NuGet to explicitly install SkiaSharp version 3.116.1
  4. Run
  5. Fail

Expected behavior

Shouldn't fail or are there alternatively/ways to configure?
Also the package dependency of ML.Net.ImageAnalytics claims SkiaSharp >2.88

Screenshots, Code, Sample Projects
See log error above.

Additional context
I am using ML.Net in a project that already depends on SkiaSharp explicitly.

Metadata

Metadata

Labels

imageBugs related image datatype tasks

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions