From 46e101d9757520af35bbd8710ee8d0280db2d950 Mon Sep 17 00:00:00 2001 From: Yunlong Wang Date: Tue, 28 Apr 2015 17:19:19 +0200 Subject: [PATCH 1/2] Plane fitting of input images --- .../Extensions/EmguExtensions.cs | 2 +- Engine/Huddle.Engine/App.config | 20 +- .../Huddle.Engine/Data/RotationMatrixData.cs | 72 +++++++ Engine/Huddle.Engine/Huddle.Engine.csproj | 25 ++- .../Processor/Complex/CameraRotation.cs | 158 ++++++++++++++ .../Processor/Complex/ImageWarpPerspective.cs | 143 +++++++++++++ .../Processor/Complex/RansacFitPlane.cs | 199 ++++++++++++++++++ .../Processor/Sensors/Senz3DIntel.cs | 12 +- .../Processor/Sensors/Utils/Senz3DUtils.cs | 42 ++++ .../Templates/ComplexTemplates.xaml | 22 ++ Engine/Huddle.Engine/packages.config | 6 + Pipelines/HuddleLamp.hep | 2 +- Pipelines/final_pipeline.hep | 1 + Pipelines/test.hep | 1 + lib/Aforge.NET/AForge.Imaging.dll | Bin 262144 -> 0 bytes lib/Aforge.NET/AForge.Math.dll | Bin 68096 -> 0 bytes .../AForge.Vision.GlyphRecognition.dll | Bin 24064 -> 24064 bytes lib/Aforge.NET/AForge.dll | Bin 17408 -> 0 bytes 18 files changed, 690 insertions(+), 15 deletions(-) create mode 100644 Engine/Huddle.Engine/Data/RotationMatrixData.cs create mode 100644 Engine/Huddle.Engine/Processor/Complex/CameraRotation.cs create mode 100644 Engine/Huddle.Engine/Processor/Complex/ImageWarpPerspective.cs create mode 100644 Engine/Huddle.Engine/Processor/Complex/RansacFitPlane.cs create mode 100644 Pipelines/final_pipeline.hep create mode 100644 Pipelines/test.hep delete mode 100644 lib/Aforge.NET/AForge.Imaging.dll delete mode 100644 lib/Aforge.NET/AForge.Math.dll delete mode 100644 lib/Aforge.NET/AForge.dll diff --git a/Engine/Emgu.CV.External/Extensions/EmguExtensions.cs b/Engine/Emgu.CV.External/Extensions/EmguExtensions.cs index f1fdfde..c1de444 100644 --- a/Engine/Emgu.CV.External/Extensions/EmguExtensions.cs +++ b/Engine/Emgu.CV.External/Extensions/EmguExtensions.cs @@ -131,7 +131,7 @@ public static BitmapSource ToGradientBitmapSource(this Image image, { var index = (int)((Gradient.Length - 1) * (255.0 - depth) / 255.0); if (index < 0) index = 0; - if (index > Gradient.Length) index = Gradient.Length - 1; + if (index >= Gradient.Length) index = Gradient.Length - 1; color = Gradient[index]; } gradientImage[y, x] = color; diff --git a/Engine/Huddle.Engine/App.config b/Engine/Huddle.Engine/App.config index 5740b3b..12762f8 100644 --- a/Engine/Huddle.Engine/App.config +++ b/Engine/Huddle.Engine/App.config @@ -1,17 +1,29 @@ - + - +
- + + + + + + + + + + + + + - + diff --git a/Engine/Huddle.Engine/Data/RotationMatrixData.cs b/Engine/Huddle.Engine/Data/RotationMatrixData.cs new file mode 100644 index 0000000..309c1d2 --- /dev/null +++ b/Engine/Huddle.Engine/Data/RotationMatrixData.cs @@ -0,0 +1,72 @@ +using Emgu.CV; +using Huddle.Engine.Processor; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Huddle.Engine.Data +{ + public class RotationMatrixData : BaseData + { + #region properties + + #region RotationMatrix + + /// + /// The property's name. + /// + public const string RotationMatrixPropertyName = "RotationMatrix"; + + private Matrix _rotationMatrix; + + /// + /// Sets and gets the RotationMatrix property. + /// Changes to that property's value raise the PropertyChanged event. + /// + public Matrix RotationMatrix + { + get + { + return _rotationMatrix; + } + + set + { + if (_rotationMatrix == value) + { + return; + } + + RaisePropertyChanging(RotationMatrixPropertyName); + _rotationMatrix = value; + RaisePropertyChanged(RotationMatrixPropertyName); + } + } + + #endregion + + #endregion + + #region ctor + + public RotationMatrixData(IProcessor source, string key, Matrix rotationMatrix) + : base(source, key) + { + RotationMatrix = rotationMatrix; + } + + #endregion + + public override IData Copy() + { + return new RotationMatrixData(Source, Key, RotationMatrix); + } + + public override void Dispose() + { + + } + } +} diff --git a/Engine/Huddle.Engine/Huddle.Engine.csproj b/Engine/Huddle.Engine/Huddle.Engine.csproj index 1e37667..6c7b1ed 100644 --- a/Engine/Huddle.Engine/Huddle.Engine.csproj +++ b/Engine/Huddle.Engine/Huddle.Engine.csproj @@ -162,17 +162,26 @@ true - + False - ..\..\lib\Aforge.NET\AForge.dll + ..\..\packages\Accord.2.14.0\lib\net40\Accord.dll - + False - ..\..\lib\Aforge.NET\AForge.Imaging.dll + ..\..\packages\Accord.Math.2.14.0\lib\net40\Accord.Math.dll - + False - ..\..\lib\Aforge.NET\AForge.Math.dll + ..\..\packages\Accord.Statistics.2.14.0\lib\net40\Accord.Statistics.dll + + + ..\..\packages\AForge.2.2.5\lib\AForge.dll + + + ..\..\packages\AForge.Imaging.2.2.5\lib\AForge.Imaging.dll + + + ..\..\packages\AForge.Math.2.2.5\lib\AForge.Math.dll False @@ -309,6 +318,7 @@ ExceptionMessageBox.xaml + @@ -321,7 +331,10 @@ + + + diff --git a/Engine/Huddle.Engine/Processor/Complex/CameraRotation.cs b/Engine/Huddle.Engine/Processor/Complex/CameraRotation.cs new file mode 100644 index 0000000..5e352d9 --- /dev/null +++ b/Engine/Huddle.Engine/Processor/Complex/CameraRotation.cs @@ -0,0 +1,158 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Diagnostics; +using System.Linq; +using System.Runtime.Serialization; +using System.Text; +using System.Threading; +using System.Threading.Tasks; +using GalaSoft.MvvmLight; +using GalaSoft.MvvmLight.Threading; +using Huddle.Engine.Data; +using Huddle.Engine.Util; +using Emgu.CV; +using Emgu.CV.CvEnum; +using Emgu.CV.Structure; +using Accord.Math; + +namespace Huddle.Engine.Processor.Complex +{ + /// + /// calculate the table plane and the camera rotation + /// established on 27/4/2015 by Yunlong + /// + [ViewTemplate("Camera Rotation", "CameraRotation")] + public class CameraRotation : BaseProcessor + { + Image depthImage1 = null; + Image depthImage2 = null; + Image depthImage3 = null; + Image depthImage4 = null; + Image depthImage0 = null; + double[] eula0 = { 0.0, 0.0, 0.0 }; + bool dataReady = false; + int shakeNum = 0; + bool init = false; + int cnt = 0; + Matrix cameraRotation = new Matrix(3, 3); + Matrix rotationMatrix; + + public override IDataContainer PreProcess(IDataContainer dataContainer) + { + // EmguCv depth image + foreach (GrayFloatImage imageData in dataContainer.OfType()) + { + //initialize Matrix homoGraph + if (!init) + { + Init(); + init = true; + } + cnt++; + if (cnt == 5) + { + Stopwatch sw = Stopwatch.StartNew(); + rotationMatrix = GetCameraRotation(imageData.Image); + Console.WriteLine("time Rotation: " + sw.ElapsedMilliseconds); + cnt = 0; + } + Stage(new RotationMatrixData(this, "cameraRotation", rotationMatrix)); + } + + Push(); + return null; + } + + public override IData Process(IData data) + { + return null; + } + + private void Init(){ + cameraRotation.SetZero(); + cameraRotation.Data[0, 0] = 1; cameraRotation.Data[1, 1] = 1; cameraRotation.Data[2, 2] = 1; + } + + private Matrix GetCameraRotation(Image depthImage) + { + //time filter + if (!dataReady) + { + depthImage1 = depthImage2 = depthImage3 = depthImage4 = depthImage; + dataReady = true; + } + depthImage0 = depthImage; + depthImage = (depthImage0 + depthImage1 + depthImage2 + depthImage3 + depthImage4) / 5.0; + depthImage4 = depthImage3; depthImage3 = depthImage2; depthImage2 = depthImage1; depthImage1 = depthImage0; + + //median filter + depthImage = depthImage.SmoothMedian(3); + + //subImage !! depthImage.Data [240,320,1] !! + int padding = 8; + int widthSubImage = (int)Math.Ceiling(depthImage.Width * (1.0 - (2.0 / padding))); + int heightSubImage = (int)Math.Ceiling(depthImage.Height * (1.0 - (2.0 / padding))); + int originalX = (int)Math.Ceiling(depthImage.Width * (1.0 / padding)); + int originalY = (int)Math.Ceiling(depthImage.Height * (1.0 / padding)); + Image depthImageSub = new Image(widthSubImage, heightSubImage); + for (int j = 0; j < heightSubImage; j++) + { + for (int i = 0; i < widthSubImage; i++) + { + depthImageSub.Data[j, i, 0] = depthImage.Data[originalY + j, originalX + i, 0]; + } + } + + //sampling + //convent to world coordinates + //move coordinate original to center + int samplingSpace = 3; + int widthSampling = widthSubImage / samplingSpace; + int heightSampling = heightSubImage / samplingSpace; + double focalLengthDepth = depthImage.Width / (2 * Math.Tan((double)(74 * 3.14 / 180) / 2)); + float[, ,] depthData = depthImageSub.Data; + Point3[] depthDataSamples = new Point3[widthSampling * heightSampling]; + for (int j = 0; j < heightSampling; j++) + { + for (int i = 0; i < widthSampling; i++) + { + float z = Math.Abs(depthData[samplingSpace * j, samplingSpace * i, 0]); + float x = (float)((originalX + i * samplingSpace - depthImage.Width / 2.0) * z / focalLengthDepth); + float y = (float)((originalY + j * samplingSpace - depthImage.Height / 2.0) * z / focalLengthDepth); + depthDataSamples[j * widthSampling + i] = new Point3(x, y, z); + } + } + //Ransac + Stopwatch sw = Stopwatch.StartNew(); + RansacFitPlane ransacFitPlane = new RansacFitPlane(depthDataSamples, 5, 20); + Plane plane = ransacFitPlane.FitPlane(); + if (plane != null) + { + Console.WriteLine(plane.A / plane.Offset + " " + plane.B / plane.Offset + " " + plane.C / plane.Offset + " " + plane.Offset); + + //calc rotation matrix + double[] eula = { Math.Atan((plane.B) / (plane.C)), -Math.Atan((plane.A) / (plane.C)), 0 }; + Console.WriteLine("Xaxis: " + Math.Atan((plane.B) / (plane.C)) * 180 / Math.PI + " Yaxis: " + Math.Atan((plane.A) / (plane.C)) * 180 / Math.PI); + //avoid shaking + if (Math.Abs(eula0[0] - eula[0]) > 2 * Math.PI / 180 || Math.Abs(eula0[1] - eula[1]) > 2 * Math.PI / 180) + { + shakeNum++; + if (shakeNum == 5) + { + shakeNum = 0; + eula0[0] = eula[0]; eula0[1] = eula[1]; + } + } + else + { + shakeNum = 0; + } + cameraRotation = RansacFitPlane.EulaArray2Matrix(eula0); + Console.WriteLine("time: " + sw.ElapsedMilliseconds); + + } + return cameraRotation; + } + } +} diff --git a/Engine/Huddle.Engine/Processor/Complex/ImageWarpPerspective.cs b/Engine/Huddle.Engine/Processor/Complex/ImageWarpPerspective.cs new file mode 100644 index 0000000..2718899 --- /dev/null +++ b/Engine/Huddle.Engine/Processor/Complex/ImageWarpPerspective.cs @@ -0,0 +1,143 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Diagnostics; +using System.Linq; +using System.Runtime.Serialization; +using System.Text; +using System.Threading; +using System.Threading.Tasks; +using GalaSoft.MvvmLight; +using GalaSoft.MvvmLight.Threading; +using Huddle.Engine.Data; +using Huddle.Engine.Util; +using Emgu.CV; +using Emgu.CV.CvEnum; +using Emgu.CV.Structure; +using Accord.Math; + +namespace Huddle.Engine.Processor.Complex +{ + /// + /// image warpPerspective + /// this should be called after depth image is cropped + /// established on 27/4/2015 by Yunlong + /// + [ViewTemplate("Image WarpPerspective", "ImageWarpPerspective")] + public class ImageWarpPerspective : BaseProcessor + { + Matrix cameraRotation = new Matrix(3, 3); + Matrix homoGraphy = new Matrix(3, 3); + + public override IDataContainer PreProcess(IDataContainer dataContainer) + { + foreach (RotationMatrixData cameraMatrix in dataContainer.OfType()) + { + cameraRotation = cameraMatrix.RotationMatrix; + } + + if (cameraRotation == null) + { + return dataContainer; + } + foreach (GrayFloatImage imageData in dataContainer.OfType()) + { + FindHomoGraphy(cameraRotation, imageData.Image.Width, imageData.Image.Height); + if (imageData.Key.Equals("depth")) + { + Image warpDepthImage = imageData.Image.WarpPerspective(homoGraphy, Emgu.CV.CvEnum.INTER.CV_INTER_CUBIC, Emgu.CV.CvEnum.WARP.CV_WARP_DEFAULT, new Gray()); + Stage(new GrayFloatImage(this, "depth", warpDepthImage)); + } + + } + foreach (RgbImageData imageData in dataContainer.OfType()) + { + FindHomoGraphy(cameraRotation, imageData.Image.Width, imageData.Image.Height); + if (imageData.Key.Equals("color")) + { + Image warpColorImage = imageData.Image.WarpPerspective(homoGraphy, Emgu.CV.CvEnum.INTER.CV_INTER_CUBIC, Emgu.CV.CvEnum.WARP.CV_WARP_DEFAULT, new Rgb(0, 0, 0)); + Stage(new RgbImageData(this, "wrappedColor", warpColorImage)); + } + else if (imageData.Key.Equals("confidence")) + { + Image warpConfidence = imageData.Image.WarpPerspective(homoGraphy, Emgu.CV.CvEnum.INTER.CV_INTER_CUBIC, Emgu.CV.CvEnum.WARP.CV_WARP_DEFAULT, new Rgb(0, 0, 0)); + Stage(new RgbImageData(this, "wrappedConfidence", warpConfidence)); + } + } + Push(); + + return null; + } + + public override IData Process(IData data) + { + return data; + } + + private void FindHomoGraphy(Matrix rotateMatrix, int width, int height) + { + //Camera inner parameter + double fov = 74 * 3.14 / 180; + double focalLength = width / (2 * Math.Tan(fov / 2)); + //KK = [focalLength 0 width/2; + // 0 focalLength height/2; + // 0 0 1 ] + Matrix KK = new Matrix(3, 3); + KK.SetValue(0); + KK.Data[0, 0] = (double)focalLength; KK.Data[0, 2] = (double)width / 2; + KK.Data[1, 1] = (double)focalLength; KK.Data[1, 2] = (double)height / 2; + KK.Data[2, 2] = 1; + Matrix KKInv = new Matrix(3, 3); + //KKInv.SetValue(0); + //KKInv.Data[0, 0] = 0.0024; KKInv.Data[0, 2] = -0.7536; + //KKInv.Data[1, 1] = 0.0024; KKInv.Data[1, 2] = -0.5652; + //KKInv.Data[2, 2] = 1; + CvInvoke.cvInvert(KK.Ptr, KKInv.Ptr, SOLVE_METHOD.CV_LU); + + homoGraphy = KK * rotateMatrix; + homoGraphy = homoGraphy * KKInv; + homoGraphy = homoGraphy / homoGraphy.Data[2, 2]; + + /* + //By this way, the size of the warped image can be thounds, so keep all the pixel is not propriat + //calc the size and translation of warped iamge + // (0,0) ________ (w, 0) + // | | + // |________| + // (0,h) (w,h) + Matrix box = new Matrix(3, 4); + box.SetValue(1); + box.Data[0, 0] = 0; box.Data[0, 1] = colorImage.Width; box.Data[0, 2] = colorImage.Width; box.Data[0, 3] = 0; + box.Data[1, 0] = 0; box.Data[1, 1] = 0; box.Data[1, 2] = colorImage.Height; box.Data[1, 3] = colorImage.Height; + Matrix boxWarp = homoGraphy * box; + boxWarp.Data[0, 0] = boxWarp.Data[0, 0] / boxWarp.Data[2, 0]; boxWarp.Data[0, 1] = boxWarp.Data[0, 1] / boxWarp.Data[2, 1]; boxWarp.Data[0, 2] = boxWarp.Data[0, 2] / boxWarp.Data[2, 2]; boxWarp.Data[0, 3] = boxWarp.Data[0, 3] / boxWarp.Data[2, 3]; + boxWarp.Data[1, 0] = boxWarp.Data[1, 0] / boxWarp.Data[2, 0]; boxWarp.Data[1, 1] = boxWarp.Data[1, 1] / boxWarp.Data[2, 1]; boxWarp.Data[1, 2] = boxWarp.Data[1, 2] / boxWarp.Data[2, 2]; boxWarp.Data[1, 3] = boxWarp.Data[1, 3] / boxWarp.Data[2, 3]; + double maxX = Math.Max(Math.Max(boxWarp.Data[0, 0], boxWarp.Data[0, 1]),Math.Max(boxWarp.Data[0, 2], boxWarp.Data[0, 3])); + double minX = Math.Min(Math.Min(boxWarp.Data[0, 0], boxWarp.Data[0, 1]), Math.Min(boxWarp.Data[0, 2], boxWarp.Data[0, 3])); + double maxY = Math.Max(Math.Max(boxWarp.Data[1, 0], boxWarp.Data[1, 1]), Math.Max(boxWarp.Data[1, 2], boxWarp.Data[1, 3])); + double minY = Math.Min(Math.Min(boxWarp.Data[1, 0], boxWarp.Data[1, 1]), Math.Min(boxWarp.Data[1, 2], boxWarp.Data[1, 3])); + widthWarp = maxX - minX; + heightWarp = maxY - minY; + */ + + //Using the center of the image as shift standard + Matrix center = new Matrix(3, 1); + center.Data[0, 0] = width / 2; + center.Data[1, 0] = height / 2; + center.Data[2, 0] = 1; + Matrix centerWarp = homoGraphy * center; + centerWarp.Data[0, 0] = centerWarp.Data[0, 0] / centerWarp.Data[2, 0]; + centerWarp.Data[1, 0] = centerWarp.Data[1, 0] / centerWarp.Data[2, 0]; + double minX = centerWarp.Data[0, 0] - center.Data[0, 0]; + double minY = centerWarp.Data[1, 0] - center.Data[1, 0]; + Matrix preWarp = new Matrix(3, 3); + preWarp.SetValue(0); + preWarp.Data[0, 0] = 1; preWarp.Data[0, 2] = -minX; + preWarp.Data[1, 1] = 1; preWarp.Data[1, 2] = -minY; + preWarp.Data[2, 2] = 1; + homoGraphy = preWarp * homoGraphy; + + } + + } +} diff --git a/Engine/Huddle.Engine/Processor/Complex/RansacFitPlane.cs b/Engine/Huddle.Engine/Processor/Complex/RansacFitPlane.cs new file mode 100644 index 0000000..55ba556 --- /dev/null +++ b/Engine/Huddle.Engine/Processor/Complex/RansacFitPlane.cs @@ -0,0 +1,199 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Accord.Math; +using Accord.Math.Decompositions; +using Accord.Statistics; +using Accord; +using Emgu.CV; + +namespace Huddle.Engine.Processor.Complex +{ + public class RansacFitPlane + { + public Point3[] points { get; set; } + public double threshold { get; set; } + public int maxEvaluations { get; set; } + + private int[] inliers; + private double[] d2; + private int maxSamplings = 5; + private Plane bestPlane; + + public RansacFitPlane(Point3[] points, double threshold, int maxEvaluations) + { + this.points = points; + this.threshold = threshold; + this.maxEvaluations = maxEvaluations; + this.d2 = new double[points.Length]; + } + + public Plane FitPlane() + { + // Initial argument checks + if (points.Length < 3) + throw new ArgumentException("At least three points are required to fit a plane"); + + computeInliers(); + if (inliers.Length == 0) + return null; + + // Compute the final plane + Plane plane = fitting(points.Submatrix(inliers)); + return plane; + + } + + private void computeInliers() + { + int[] bestInliers = null; + int maxInliers = 0; + int size = this.points.Length; + Plane plane = null; + + int count = 0; // Total number of trials performed + double N = maxEvaluations; // Estimative of number of trials needed. + + // While the number of trials is less than our estimative, + // and we have not surpassed the maximum number of trials + while (count < N) + { + + int[] sample = null; + int samplings = 0; + + // While the number of samples attempted is less + // than the maximum limit of attempts + while (samplings < maxSamplings) + { + // Select at random s data points to form a trial model. + sample = Accord.Statistics.Tools.RandomSample(size, 3); + + if (!Point3.Collinear(points[sample[0]], points[sample[1]], points[sample[2]])) + { + Point3[] randPoints = { points[sample[0]], points[sample[1]], points[sample[2]] }; + // Fit model using the random selection of points + plane = fitting(randPoints); + break; + } + + samplings++; // Increase the samplings counter + } + + if (plane == null) + throw new ConvergenceException("A model could not be inferred from the data points"); + + // Now, evaluate the distances between total points and the model returning the + // indices of the points that are inliers (according to a distance threshold t). + inliers = distance(plane, this.threshold); + + // Check if the model was the model which highest number of inliers: + if (bestInliers == null || inliers.Length > maxInliers) + { + // Yes, this model has the highest number of inliers. + + maxInliers = inliers.Length; // Set the new maximum, + bestPlane = plane; // This is the best model found so far, + bestInliers = inliers; // Store the indices of the current inliers. + + // Update estimate of N, the number of trials to ensure we pick, + // with probability p, a data set with no outliers. + double pInlier = (double)inliers.Length / (double)size; + double pNoOutliers = 1.0 - System.Math.Pow(pInlier, 3); + + N = System.Math.Ceiling(System.Math.Log(1.0 - 0.99) / System.Math.Log(pNoOutliers)); + } + Console.WriteLine("trail " + count + " out of " + N); + count++; // Increase the trial counter. + if (count > maxEvaluations) + { + int[] temp = { }; + inliers = temp; + return; + } + } + + inliers = bestInliers; + + } + + private Plane fitting(Point3[] points) + { + // Set up constraint equations of the form AB = 0, + // where B is a column vector of the plane coefficients + // in the form b(1)*X + b(2)*Y +b(3)*Z + b(4) = 0. + // + // A = [XYZ' ones(npts,1)]; % Build constraint matrix + if (points.Length < 3) + return null; + + if (points.Length == 3) + return Plane.FromPoints(points[0], points[1], points[2]); + + float[,] A = new float[points.Length, 4]; + for (int i = 0; i < points.Length; i++) + { + A[i, 0] = points[i].X; + A[i, 1] = points[i].Y; + A[i, 2] = points[i].Z; + A[i, 3] = -1; + } + + SingularValueDecompositionF svd = new SingularValueDecompositionF(A, + computeLeftSingularVectors: false, computeRightSingularVectors: true, + autoTranspose: true, inPlace: true); + + float[,] v = svd.RightSingularVectors; + + float a = v[0, 3]; + float b = v[1, 3]; + float c = v[2, 3]; + float d = v[3, 3]; + + float norm = (float)Math.Sqrt(a * a + b * b + c * c); + + a /= norm; + b /= norm; + c /= norm; + d /= norm; + + return new Plane(a, b, c, -d); + } + + + private int[] distance(Plane p, double t) + { + for (int i = 0; i < points.Length; i++) + d2[i] = p.DistanceToPoint(points[i]); + + return Matrix.Find(d2, z => z < t); + } + + public static Matrix EulaArray2Matrix(double[] eula) + { + Matrix t = new Matrix(1, 3); + t.Data[0, 0] = eula[0]; t.Data[0, 1] = eula[1]; t.Data[0, 2] = eula[2]; + double theta = t.Norm; + t = t / theta; + double x = t.Data[0, 0]; double y = t.Data[0, 1]; double z = t.Data[0, 2]; + + double c = Math.Cos(theta); double s = Math.Sin(theta); double C = 1 - c; + double xs = x * s; double ys = y * s; double zs = z * s; + double xC = x * C; double yC = y * C; double zC = z * C; + double xyC = x * yC; double yzC = y * zC; double zxC = z * xC; + + Matrix T = new Matrix(3, 3); + + // T = [ x*xC+c xyC-zs zxC+ys 0 + // xyC+zs y*yC+c yzC-xs 0 + // zxC-ys yzC+xs z*zC+c 0 + // 0 0 0 1]; + T.Data[0, 0] = x * xC + c; T.Data[0, 1] = xyC - zs; T.Data[0, 2] = zxC + ys; + T.Data[1, 0] = xyC + zs; T.Data[1, 1] = y * yC + c; T.Data[1, 2] = yzC - xs; + T.Data[2, 0] = zxC - ys; T.Data[2, 1] = yzC + xs; T.Data[2, 2] = z * zC + c; + return T; + } + } +} diff --git a/Engine/Huddle.Engine/Processor/Sensors/Senz3DIntel.cs b/Engine/Huddle.Engine/Processor/Sensors/Senz3DIntel.cs index d5db12b..7a8a50d 100644 --- a/Engine/Huddle.Engine/Processor/Sensors/Senz3DIntel.cs +++ b/Engine/Huddle.Engine/Processor/Sensors/Senz3DIntel.cs @@ -69,7 +69,7 @@ public class Senz3DIntel : BaseProcessor /// public const string IsAdaptiveSensingPropertyName = "IsAdaptiveSensing"; - private bool _isAdaptiveSensing = true; + private bool _isAdaptiveSensing = false; /// /// Sets and gets the IsAdaptiveSensing property. @@ -709,6 +709,10 @@ private void GrabFrames() var depth = _pp.QueryImage(PXCMImage.ImageType.IMAGE_TYPE_DEPTH); var depthImageAndConfidence = Senz3DUtils.GetHighPrecisionDepthImage(depth, MinDepthValue, MaxDepthValue); + /* Get original depth image */ + var originalDepth = Senz3DUtils.GetDepthImage(depth, 100, 1000); + var originalDepthImage = (Image)originalDepth; + // do adaptive sensing (alternating low/high confidence threshold) on depth image if enabled if (IsAdaptiveSensing) depthImageAndConfidence = PerformAdaptiveSensing(depthImageAndConfidence); @@ -730,7 +734,7 @@ private void GrabFrames() RenderImages(colorImage, depthImage, confidenceMapImage); // publish images finally - PublishImages(colorImage, depthImage, confidenceMapImage); + PublishImages(colorImage, depthImage, confidenceMapImage, originalDepthImage); } _pp.Close(); @@ -746,13 +750,15 @@ private void GrabFrames() private void PublishImages( Image colorImage, Image depthImage, - Image confidenceMapImage) + Image confidenceMapImage, + Image OriginalDepthImage) { var dc = new DataContainer(++_frameId, DateTime.Now) { new RgbImageData(this, "color", colorImage), new GrayFloatImage(this, "depth", depthImage), new RgbImageData(this, "confidence", confidenceMapImage), + new GrayFloatImage(this, "originalDepth", OriginalDepthImage), }; Publish(dc); diff --git a/Engine/Huddle.Engine/Processor/Sensors/Utils/Senz3DUtils.cs b/Engine/Huddle.Engine/Processor/Sensors/Utils/Senz3DUtils.cs index eda9192..e8d212a 100644 --- a/Engine/Huddle.Engine/Processor/Sensors/Utils/Senz3DUtils.cs +++ b/Engine/Huddle.Engine/Processor/Sensors/Utils/Senz3DUtils.cs @@ -94,6 +94,48 @@ public static IImage[] GetHighPrecisionDepthImage(PXCMImage depthImage, float mi return returnImages; } + public static IImage GetDepthImage(PXCMImage depthImage, float minValue, float maxValue) + { + var inputWidth = Align16(depthImage.info.width); /* aligned width */ + var inputHeight = (int)depthImage.info.height; + + var returnImages = new Image(inputWidth, inputHeight); + + PXCMImage.ImageData cdata; + if (depthImage.AcquireAccess(PXCMImage.Access.ACCESS_READ, PXCMImage.ColorFormat.COLOR_FORMAT_DEPTH, out cdata) < + pxcmStatus.PXCM_STATUS_NO_ERROR) return returnImages; + + var depthValues = cdata.ToShortArray(0, inputWidth * inputHeight); + depthImage.ReleaseAccess(ref cdata); + + var depthReturnImage = ((Image)returnImages); + var depthReturnImageData = depthReturnImage.Data; + + Parallel.For(0, inputHeight, y => + { + for (int x = 0; x < inputWidth; x++) + { + float depth = depthValues[y * inputWidth + x]; + if (depth != EmguExtensions.LowConfidence && depth != EmguExtensions.Saturation) + { + + if (depth > maxValue) + depth = maxValue; + else if (depth < minValue) + depth = minValue; + + depthReturnImageData[y, x, 0] = depth; + } + else + { + depthReturnImageData[y, x, 0] = depth; + } + } + }); + + return returnImages; + } + /// /// Get UV Map of a PXCMImage. /// diff --git a/Engine/Huddle.Engine/Templates/ComplexTemplates.xaml b/Engine/Huddle.Engine/Templates/ComplexTemplates.xaml index 95e6509..625aec8 100644 --- a/Engine/Huddle.Engine/Templates/ComplexTemplates.xaml +++ b/Engine/Huddle.Engine/Templates/ComplexTemplates.xaml @@ -114,4 +114,26 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Engine/Huddle.Engine/packages.config b/Engine/Huddle.Engine/packages.config index 93869a4..a19d027 100644 --- a/Engine/Huddle.Engine/packages.config +++ b/Engine/Huddle.Engine/packages.config @@ -1,5 +1,11 @@  + + + + + + diff --git a/Pipelines/HuddleLamp.hep b/Pipelines/HuddleLamp.hep index 2b1e7ee..423dd58 100644 --- a/Pipelines/HuddleLamp.hep +++ b/Pipelines/HuddleLamp.hep @@ -1 +1 @@ -0true0false0false0false0false0false0false0false0true0true0false0false0false0false1490.925984049896759.69077174635560BlobData0false0false0false0false753.11199587254623399.24961830260094050255true981.40869867287756402.101169864665450true221226.1738765895329405.41852316890618095ColorBlob4400falsetruetruefalsetruetruetruefalse95105853.5359501490.9468534664036400.1753634900465501852.7596645909418117.909154433533802198.9950774886006276.0801344503291800false0false0false0false0false299.98384407694147491.724621891866490colorRgbImageData514.73033087231079492.25222322403340truetruetruefalse72012800000000.5737.25383399934162594.7909674534552101041.0598457471974657.41836107728319725false10.41248.803775292092665.229416273148560Marker1975.0032285367117485.9418215697889400false0false1816.3724160408749803.808582762595620010019481860.7902882211235633.001020089068790Disconnected1375.0371209030777420.8286980749361400.0831168759728917881065.15891402933252.223052327437479098DepthBlob2102truetruetruefalsefalsetruetruetrue98107.525450338074737382135950771.6112785201455648.6476229123252540false11529.8471148092747946.135364005292310truetruetruetrue160283193600001312.13216167797611248.6116184081430rgbInDepthROIROI560.54368617296245228.089977254550520truetruefalsetrue160283193600001321.3107155322089294.4823357536470350depthGrayFloatImage37.095200541360718248.693234322488820521280 x 72008330092falsefalse52676324.80114561962665-53.4354429003112440confidence0000.69425870283257329 \ No newline at end of file +0true0false0false0false0false0false0false0false0true0true0false0false0false0false1490.925984049896759.69077174635560BlobData0false0false0false0false753.11199587254623399.24961830260094050255true981.40869867287756402.101169864665450true221226.1738765895329405.41852316890618095ColorBlob4400falsetruetruefalsetruetruetruefalse95105853.5359501490.9468534664036400.1753634900465501852.7596645909418117.909154433533802198.9950774886006276.0801344503291800false0true0false0false0false299.98384407694147491.724621891866490colorRgbImageData514.73033087231079492.25222322403340truetruetruefalse72012800000000.5737.25383399934162594.7909674534552101041.0598457471974657.41836107728319725false10.41248.803775292092665.229416273148560Marker1975.0032285367117485.9418215697889400false0false1816.3724160408749803.808582762595620010019481860.7902882211235633.001020089068790Disconnected1375.0371209030777420.8286980749361400.0831168759728917881065.15891402933252.223052327437479098DepthBlob2102truetruetruefalsefalsetruetruetrue98107.525450338074737382135950771.6112785201455648.6476229123252540false11529.8471148092747946.135364005292310truetruetruetrue158286104200001312.13216167797611248.6116184081430rgbInDepthROIROI560.54368617296245228.089977254550520truetruefalsetrue158286104200001321.3107155322089294.4823357536470350depthGrayFloatImage37.095200541360718248.6932343224888203261280 x 72008330010falsefalse52676324.80114561962665-53.4354429003112440confidence0000.69425870283257329 \ No newline at end of file diff --git a/Pipelines/final_pipeline.hep b/Pipelines/final_pipeline.hep new file mode 100644 index 0000000..2a3eb97 --- /dev/null +++ b/Pipelines/final_pipeline.hep @@ -0,0 +1 @@ +0true0false0false0false0false0true0false65.5582216083551658.686429394077890originalDepthGrayFloatImage0false0false0false0false0false321.3107155322089294.4823357536470350depthGrayFloatImage0false0false0true0false0false1137.9566291005226-214.730425874455480truetruefalsefalse1100000011289.7616344996377-69.9364874740259380false110true0false0false0false0false1635.2511110171031-0.690148719516214370BlobData0false0false0false0false753.11199587254623399.24961830260094050255true981.40869867287756402.101169864665450true221226.1738765895329405.41852316890618095ColorBlob4400falsetruetruefalsetruetruetruefalse95105853.5359501638.2173911880432366.3031398140692501944.067397978358576.67340387147502198.9950774886006276.0801344503291800false0false0false0false532.3036593903397618.739658983697150truetruetruefalse4806400000001737.25383399934162594.7909674534552101052.8414887649283642.69130730511909725false10.41248.803775292092665.229416273148560Marker2166.4549275748432484.4691161925724700false0false1816.3724160408749803.808582762595620010019481860.7902882211235633.001020089068790Disconnected1500.3506382490502665.69419173947510.0831168759728917881098.693616291807119.528517020182463098DepthBlob2102truetruetruefalsefalsetruetruetrue9825.717.5254503380747373821359501084.4606812051843231.023314919967930truetruefalsefalse110000001846.24876730910819231.640284188375920562.01639155017949244.289736403930930falsefalsefalsetrue15928694100001312.13216167797611248.6116184081430rgbInDepthROIROI600.53697291566323-86.40811994418240falsefalsetruetrue15928694100001868.47029687101747-144.733609074064730354.28840869122661770.779474235827930826.98922000295306815.796869874407660299.98384407694147491.724621891866490colorRgbImageData-142.40087713101929322.561027787357320191280 x 72008330041falsefalse52676352.78254778673823-93.1984880851536560confidence0000.7313734023799765 \ No newline at end of file diff --git a/Pipelines/test.hep b/Pipelines/test.hep new file mode 100644 index 0000000..6875eae --- /dev/null +++ b/Pipelines/test.hep @@ -0,0 +1 @@ +0true0false0false0false0false0false0false65.5582216083551658.686429394077890originalDepthGrayFloatImage0false0false0false0false0false321.3107155322089294.4823357536470350depthGrayFloatImage0false0false0true1004.5074925367971-99.524886116586060truetruefalsefalse1100000011036.456309618412240.5164158172030110false110false0false0false0false0false1490.925984049896759.69077174635560BlobData0false0false0false0false753.11199587254623399.24961830260094050255true981.40869867287756402.101169864665450true221226.1738765895329405.41852316890618095ColorBlob4400falsetruetruefalsetruetruetruefalse95105853.5359501490.9468534664036400.1753634900465501852.7596645909418117.909154433533802198.9950774886006276.0801344503291800false0false0false0false514.73033087231079492.25222322403341truetruetruefalse4806400000001737.25383399934162594.7909674534552101041.0598457471974657.41836107728309725false10.41248.803775292092665.229416273148560Marker1975.0032285367117485.9418215697889400false0false1816.3724160408749803.808582762595620010019481860.7902882211235633.001020089068790Disconnected1500.3506382490502665.69419173947500.0831168759728917881252.176677217138446.415047259493008098DepthBlob2102truetruetruefalsefalsetruetruetrue98107.525450338074737382135950560.54368617296245228.089977254550520truetruefalsetrue176233353300001312.13216167797611248.6116184081430rgbInDepthROIROI546.046873958657112.2631403293154480falsefalsetruetrue176233353300001750.65386669370571-71.098340213245450349.87029255957736713.343964524388750591.35635964833057765.724887049050720299.98384407694147491.724621891866490colorRgbImageData37.095200541360718248.69323432248882045640 x 4800833002falsefalse52676324.80114561962665-53.4354429003112440confidence0000.67902244092442732 \ No newline at end of file diff --git a/lib/Aforge.NET/AForge.Imaging.dll b/lib/Aforge.NET/AForge.Imaging.dll deleted file mode 100644 index a3cf49d9c382c18f08fa6d37065828d22b2e009b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 262144 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 literal 24064 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 diff --git a/lib/Aforge.NET/AForge.dll b/lib/Aforge.NET/AForge.dll deleted file mode 100644 index cfa351c949d6d9e7a354fed35c7a2d17aa9145a0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17408 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 P=3nCA{{NUh&IA7!szJ*p From ea03e08537409af54b550c5781c3c5621028db8c Mon Sep 17 00:00:00 2001 From: Yunlong Wang Date: Tue, 28 Apr 2015 19:35:01 +0200 Subject: [PATCH 2/2] add property to ImageWarpPerspective --- .../Processor/Complex/ImageWarpPerspective.cs | 86 ++++++++++++++----- .../Templates/ComplexTemplates.xaml | 1 + Pipelines/final_pipeline.hep | 2 +- 3 files changed, 66 insertions(+), 23 deletions(-) diff --git a/Engine/Huddle.Engine/Processor/Complex/ImageWarpPerspective.cs b/Engine/Huddle.Engine/Processor/Complex/ImageWarpPerspective.cs index 2718899..5a5ec23 100644 --- a/Engine/Huddle.Engine/Processor/Complex/ImageWarpPerspective.cs +++ b/Engine/Huddle.Engine/Processor/Complex/ImageWarpPerspective.cs @@ -26,42 +26,84 @@ namespace Huddle.Engine.Processor.Complex [ViewTemplate("Image WarpPerspective", "ImageWarpPerspective")] public class ImageWarpPerspective : BaseProcessor { - Matrix cameraRotation = new Matrix(3, 3); - Matrix homoGraphy = new Matrix(3, 3); + #region public properties - public override IDataContainer PreProcess(IDataContainer dataContainer) + #region IsWarpImage + /// + /// The property's name. + /// + public const string IsWarpImagePropertyName = "IsWarpImage"; + // IsInitialized is used to set ROI if filter is used the first time. + private bool _isWarpImage = true; + public bool IsWarpImage { - foreach (RotationMatrixData cameraMatrix in dataContainer.OfType()) + get { - cameraRotation = cameraMatrix.RotationMatrix; + return _isWarpImage; } - if (cameraRotation == null) + set { - return dataContainer; - } - foreach (GrayFloatImage imageData in dataContainer.OfType()) - { - FindHomoGraphy(cameraRotation, imageData.Image.Width, imageData.Image.Height); - if (imageData.Key.Equals("depth")) + if (_isWarpImage == value) { - Image warpDepthImage = imageData.Image.WarpPerspective(homoGraphy, Emgu.CV.CvEnum.INTER.CV_INTER_CUBIC, Emgu.CV.CvEnum.WARP.CV_WARP_DEFAULT, new Gray()); - Stage(new GrayFloatImage(this, "depth", warpDepthImage)); + return; } + RaisePropertyChanging(IsWarpImagePropertyName); + _isWarpImage = value; + RaisePropertyChanged(IsWarpImagePropertyName); } - foreach (RgbImageData imageData in dataContainer.OfType()) + } + + #endregion + #endregion + + Matrix cameraRotation = new Matrix(3, 3); + Matrix homoGraphy = new Matrix(3, 3); + + public override IDataContainer PreProcess(IDataContainer dataContainer) + { + if (IsWarpImage) { - FindHomoGraphy(cameraRotation, imageData.Image.Width, imageData.Image.Height); - if (imageData.Key.Equals("color")) + foreach (RotationMatrixData cameraMatrix in dataContainer.OfType()) + { + cameraRotation = cameraMatrix.RotationMatrix; + } + + if (cameraRotation == null) { - Image warpColorImage = imageData.Image.WarpPerspective(homoGraphy, Emgu.CV.CvEnum.INTER.CV_INTER_CUBIC, Emgu.CV.CvEnum.WARP.CV_WARP_DEFAULT, new Rgb(0, 0, 0)); - Stage(new RgbImageData(this, "wrappedColor", warpColorImage)); + return dataContainer; } - else if (imageData.Key.Equals("confidence")) + foreach (GrayFloatImage imageData in dataContainer.OfType()) + { + FindHomoGraphy(cameraRotation, imageData.Image.Width, imageData.Image.Height); + if (imageData.Key.Equals("depth")) + { + Image warpDepthImage = imageData.Image.WarpPerspective(homoGraphy, Emgu.CV.CvEnum.INTER.CV_INTER_CUBIC, Emgu.CV.CvEnum.WARP.CV_WARP_DEFAULT, new Gray()); + Stage(new GrayFloatImage(this, "depth", warpDepthImage)); + } + + } + foreach (RgbImageData imageData in dataContainer.OfType()) + { + FindHomoGraphy(cameraRotation, imageData.Image.Width, imageData.Image.Height); + if (imageData.Key.Equals("color")) + { + Image warpColorImage = imageData.Image.WarpPerspective(homoGraphy, Emgu.CV.CvEnum.INTER.CV_INTER_CUBIC, Emgu.CV.CvEnum.WARP.CV_WARP_DEFAULT, new Rgb(0, 0, 0)); + Stage(new RgbImageData(this, "wrappedColor", warpColorImage)); + } + else if (imageData.Key.Equals("confidence")) + { + Image warpConfidence = imageData.Image.WarpPerspective(homoGraphy, Emgu.CV.CvEnum.INTER.CV_INTER_CUBIC, Emgu.CV.CvEnum.WARP.CV_WARP_DEFAULT, new Rgb(0, 0, 0)); + Stage(new RgbImageData(this, "wrappedConfidence", warpConfidence)); + } + } + } + else + { + foreach (IData imageData in dataContainer) { - Image warpConfidence = imageData.Image.WarpPerspective(homoGraphy, Emgu.CV.CvEnum.INTER.CV_INTER_CUBIC, Emgu.CV.CvEnum.WARP.CV_WARP_DEFAULT, new Rgb(0, 0, 0)); - Stage(new RgbImageData(this, "wrappedConfidence", warpConfidence)); + Stage(imageData); } } Push(); diff --git a/Engine/Huddle.Engine/Templates/ComplexTemplates.xaml b/Engine/Huddle.Engine/Templates/ComplexTemplates.xaml index 625aec8..ca56d96 100644 --- a/Engine/Huddle.Engine/Templates/ComplexTemplates.xaml +++ b/Engine/Huddle.Engine/Templates/ComplexTemplates.xaml @@ -134,6 +134,7 @@ + \ No newline at end of file diff --git a/Pipelines/final_pipeline.hep b/Pipelines/final_pipeline.hep index 2a3eb97..3ac8635 100644 --- a/Pipelines/final_pipeline.hep +++ b/Pipelines/final_pipeline.hep @@ -1 +1 @@ -0true0false0false0false0false0true0false65.5582216083551658.686429394077890originalDepthGrayFloatImage0false0false0false0false0false321.3107155322089294.4823357536470350depthGrayFloatImage0false0false0true0false0false1137.9566291005226-214.730425874455480truetruefalsefalse1100000011289.7616344996377-69.9364874740259380false110true0false0false0false0false1635.2511110171031-0.690148719516214370BlobData0false0false0false0false753.11199587254623399.24961830260094050255true981.40869867287756402.101169864665450true221226.1738765895329405.41852316890618095ColorBlob4400falsetruetruefalsetruetruetruefalse95105853.5359501638.2173911880432366.3031398140692501944.067397978358576.67340387147502198.9950774886006276.0801344503291800false0false0false0false532.3036593903397618.739658983697150truetruetruefalse4806400000001737.25383399934162594.7909674534552101052.8414887649283642.69130730511909725false10.41248.803775292092665.229416273148560Marker2166.4549275748432484.4691161925724700false0false1816.3724160408749803.808582762595620010019481860.7902882211235633.001020089068790Disconnected1500.3506382490502665.69419173947510.0831168759728917881098.693616291807119.528517020182463098DepthBlob2102truetruetruefalsefalsetruetruetrue9825.717.5254503380747373821359501084.4606812051843231.023314919967930truetruefalsefalse110000001846.24876730910819231.640284188375920562.01639155017949244.289736403930930falsefalsefalsetrue15928694100001312.13216167797611248.6116184081430rgbInDepthROIROI600.53697291566323-86.40811994418240falsefalsetruetrue15928694100001868.47029687101747-144.733609074064730354.28840869122661770.779474235827930826.98922000295306815.796869874407660299.98384407694147491.724621891866490colorRgbImageData-142.40087713101929322.561027787357320191280 x 72008330041falsefalse52676352.78254778673823-93.1984880851536560confidence0000.7313734023799765 \ No newline at end of file +0true0false0false0false0false0true0false65.5582216083551658.686429394077890originalDepthGrayFloatImage0false0false0false0false0false321.3107155322089294.4823357536470350depthGrayFloatImage0false0false0false0false0false1137.9566291005226-214.730425874455480truetruefalsefalse1100000011289.7616344996377-69.9364874740259380false110false0false0false0false0false1635.2511110171031-0.690148719516214370BlobData0false0false0false0false753.11199587254623399.24961830260094050255true981.40869867287756402.101169864665450true221242.5813641478039367.1343855329402095ColorBlob4400falsetruetruefalsetruetruetruefalse95105853.5359501638.2173911880432366.3031398140692501944.067397978358576.67340387147502198.9950774886006276.0801344503291800false0false0false0false582.893412695009908.60527251315830truetruetruefalse4806400000001785.10900604429946622.1367800505743201054.2087793947842598.9380071497309725false10.41308.9645630057523747.266854064504290Marker2166.4549275748432484.4691161925724700false0false1816.3724160408749803.808582762595620010019481860.7902882211235633.001020089068790Disconnected1414.2113285681269541.2707444225853810.0831168759728917881098.693616291807119.528517020182463098DepthBlob2102truetruetruefalsefalsetruetruetrue9825.717.5254503380747373821359501084.4606812051843231.023314919967930truetruefalsefalse110000001754.640295108760693.5439305729258170true562.01639155017949244.289736403930930falsefalsefalsetrue159287104100001312.13216167797611248.6116184081430rgbInDepthROIROI600.53697291566323-86.40811994418240falsefalsetruetrue159287104100001868.47029687101747-144.733609074064730true354.28840869122661770.779474235827930524.81799080479129688.63884129780570true299.98384407694147491.724621891866490colorRgbImageData-142.40087713101929322.561027787357320161280 x 7200833003falsefalse52676352.78254778673823-93.1984880851536560confidence0000.7313734023799765 \ No newline at end of file