[HN Gopher] Quaternions in Signal and Image Processing
       ___________________________________________________________________
        
       Quaternions in Signal and Image Processing
        
       Author : teleforce
       Score  : 73 points
       Date   : 2024-07-01 05:47 UTC (17 hours ago)
        
 (HTM) web link (ieeexplore.ieee.org)
 (TXT) w3m dump (ieeexplore.ieee.org)
        
       | teleforce wrote:
       | Abstract:
       | 
       | Quaternions are still largely misunderstood and often considered
       | an "exotic" signal representation without much practical utility
       | despite the fact that they have been around the signal and image
       | processing community for more than 30 years now. The main aim of
       | this article is to counter this misconception and to demystify
       | the use of quaternion algebra for solving problems in signal and
       | image processing. To this end, we propose a comprehensive and
       | objective overview of the key aspects of quaternion
       | representations, models, and methods and illustrate our journey
       | through the literature with flagship applications. We conclude
       | this work by an outlook on the remaining challenges and open
       | problems in quaternion signal and image processing.
        
         | the__alchemist wrote:
         | I can't comment on the DSP applications in the article, but for
         | representing rotations and orientations in 3D (Computer
         | rendersing, robotics, aerospace etc), they can be effectively
         | treated as black boxes. There are a handful of operations you
         | can perform between quaternions and other quaternions, vectors,
         | and scalers, to do anything you would want in this domain.
         | Practially, you may just be calling functions like
         | "Quaternion::from_unit_vecs()` etc.
         | 
         | Call it a Rotor if you'd like; it doesn't matter when viewing
         | it this way! Both implementation and application will be the
         | same. The conceptual aspect people prefer about rotors is N/A
         | here. You could also call it a `Orientation` or `Rotation` (eg
         | the struct/class name); maybe that's better than either.
        
           | teleforce wrote:
           | Check this application of quaternion for robust UAV flight
           | control:
           | 
           | Quaternion vs Euler Angles for UAV position control:
           | 
           | https://www.youtube.com/watch?v=0VAc_G79POE
        
       | frozenport wrote:
       | "exotic" signal representation without much practical utility
       | despite the fact that they have been around the signal and image
       | processing community for more than 30 years now.
       | 
       | Maybe they aren't that good? Maxwell's equations got a lot better
       | when they dumped them, same thing with the few uses in video game
       | physics/camera tracing.
        
         | bdjsiqoocwk wrote:
         | > Maxwell's equations got a lot better when they dumped them,
         | 
         | Tell me you don't understand special relativity.
        
           | messe wrote:
           | Tell me you don't understand differential forms.
        
             | Iwan-Zotow wrote:
             | geometric algebra anyone?
        
             | bdjsiqoocwk wrote:
             | My PhD suggests otherwise lol
        
         | rowanG077 wrote:
         | I didn't think quaternions are even exotic and have used the
         | extensively to represent rotations. I'm not familiar with video
         | games but it seems a pretty natural fit to the problem. What is
         | the alternative that is so much better?
        
           | okaleniuk wrote:
           | Rotors. https://marctenbosch.com/quaternions/
        
             | MyFirstSass wrote:
             | Thank you for this link.
             | 
             | I just dabbled in webgl/threejs and tried creating a small
             | movement engine and was confused from beginning to end.
             | Quaternions as a black box is pretty accurate.
        
             | empiricus wrote:
             | From your link: "We can notice that 3D Rotors look a lot
             | like Quaternions". "In fact the code/math is basically the
             | same!"
        
               | dandanua wrote:
               | Yeah, why remove quaternions if the math is the same as
               | with rotors? They also have their own value, without
               | applications to geometry. The article is good, though.
               | 
               | BTW, it's easy to understand the relations between i,j,k
               | if you're familiar with Pauli matrices.
        
             | klodolph wrote:
             | In 3D space, rotors are quaternions with different labels.
             | If rotors are better, then the only conclusion we can draw
             | is that people don't like the name "quaternion".
        
               | bee_rider wrote:
               | They do sound weird.
               | 
               | I propose we call them fanciful numbers.
        
               | zardo wrote:
               | I mean if you're in highschool and poking under the hood
               | of Roblox or whatever to write your first mod, rotor _is_
               | a better name for the thing that manages rotations than
               | quaternion.
        
               | klodolph wrote:
               | I would go for something like "orientation". Or
               | "rotation". Ordinary English words that represent what
               | are, more or less, ordinary, familiar concepts.
               | 
               | The fact that it's a "quaternion" or a "rotor" is kind of
               | an implementation detail.
               | 
               | Of these four terms, Quaternion is the most _precisely
               | correct_. The reason is that rotors are, by definition,
               | constrained. Quaternions can take any value. Due to
               | floating-point precision problems, your rotor will not
               | always be _exactly_ a rotor, but may some multivector
               | which is not a rotor.
               | 
               | This is kind of like representing a point on a sphere
               | using (x,y,z) coordinates. You can call it PointOnSphere
               | or Vector. I would rather call it Vector, because
               | PointOnSphere implies a constraint which won't be
               | _exactly_ satisfied, and I want to be reminded of that
               | fact. The type name (Vector here, and Quaternion above)
               | represents the object's structure and the constraints
               | which are actually enforced by the underlying
               | representation.
        
             | rowanG077 wrote:
             | The article itself says they are the same in 3D space. Not
             | very convincing that they are actually better. In fact a
             | rotor is a unit quaternion...
        
           | 141205 wrote:
           | To add to what the other guy said, rotors (by extension
           | Clifford Algebra) is better. A fatal issue with Quaternions
           | is that while they handle rotations perfectly, things like
           | the norm or cross product of two vectors is messy.
           | 
           | This is unsurprising when several of your coordinates become
           | -1 when multiplied. That's why historically Gibbs Heaviside
           | (dot and cross product) became the dominant vector algebra
           | over quaternions.
           | 
           | Clifford Algebra is the better than both, as you can
           | seamlessly do dot, cross (wedge in CA) and can also embed
           | quaternions within the system. I've heard that it can also
           | accommodate some of the nonmetrical aspects that make
           | differential forms appealing for manifold integration, but
           | that's currently outside of my range of knowledge.
        
         | bsdooby wrote:
         | Dare to elaborate why Maxwell's equations got better, and the
         | use cases in the gaming industry which improved thanks to
         | dropping them?
        
           | esturk wrote:
           | Assuming this is not a tongue in cheek question, you can read
           | about it more here:
           | 
           | https://hsm.stackexchange.com/questions/8173/did-maxwell-
           | ori...
           | 
           | The answer also includes a link that shows many other
           | representations including Einstein's "4d generally covariant
           | tensor calculus".
           | 
           | The point is that the most common formulation today is not
           | the one Maxwell made (with 12 equations). The idea is
           | preserved, but it was Gibbs and Heaviside that formulated the
           | current 4 equation representation.
        
         | teleforce wrote:
         | Actually Maxwell's equation become unintuitive and become very
         | difficult to model when not using quaternion. Unlike other
         | waveform for example sound, electromagnetic (EM) waves has
         | polarization components that can be intuitively, properly and
         | comprehensively modeled using quaternion. Currently we are
         | using quaternion to model robust and reliable wireless PHY
         | modulation based on polarization that can work in a very
         | limited Line of sight (LoS) environment, the performance is
         | much better than conventional wireless PHY.
        
           | someguydave wrote:
           | are you referring to a particular EM modeling software or
           | codebase?
        
             | teleforce wrote:
             | I'm referring to the EM model of propagation including its
             | polarization in 3D representing the real world scenario.
        
       | roger_ wrote:
       | Preprint: http://w3.cran.univ-
       | lorraine.fr/perso/sebastian.miron/docume...
        
       | theanonymousone wrote:
       | My friend worked on this for his Msc thesis (2010-11). I went to
       | his defence presentation but still couldn't figure out what these
       | "things" are :-|
       | 
       | These and Monads will bite me forever.
        
         | BenoitP wrote:
         | You should jump straight to geometric algebra. It's actually
         | simple there. Quaternions and Complex Numbers are about just
         | some not so special multivectors.
         | 
         | Here are 2 45mn videos you'll not regret:
         | 
         | https://youtu.be/htYh-Tq7ZBI?si=qi9HfU40qKcc_HNc
         | 
         | https://youtu.be/60z_hpEAtD8?si=1M3dDAh7vPjx2Q8Y
        
       | adelpozo wrote:
       | For the visually inclined I enjoyed Visualizing Quaternions by
       | Andrew Hanson. Haven't yet read the article in the post but I am
       | curious on the applications mentioned.
        
       | James_K wrote:
       | Quaternions cannot be understood without first understanding
       | geometric algebra, at which point the quaternions themselves
       | cease to be of consequence.
        
         | chpatrick wrote:
         | They're not that magical. Multiplication with complex numbers
         | is a neat way to do 2D rotation and scaling. It's the same idea
         | with multiple dimensions.
        
           | James_K wrote:
           | An idea which is encapsulated much better by geometric
           | algebra, in which quaternions and complex numbers follow the
           | same rules.
        
             | chpatrick wrote:
             | That's true but you definitely don't need to understand it
             | first.
        
               | James_K wrote:
               | I think it would be self-damaging not to.
        
         | catgary wrote:
         | I think this is pretty on par with telling someone they need to
         | understand category theory if they're playing around with
         | Haskell/FP. I have lots of experience using quaternions in
         | robotics/animation, but I never found geometric algebra
         | particularly compelling - and I've given it several tries to
         | sit down and read through various textbooks (and I have a PhD
         | in Category theory/differential geometry, I don't think it can
         | be attributed to a skill issue with algebra or geometry).
        
           | James_K wrote:
           | Notice my use of the term "understand". If you are just using
           | from some library quaternions as a black-box, you really
           | needn't understand anything about them, but if you want
           | understand them it's probably easier to go through geometric
           | algebra first. Otherwise you're basically just learning
           | geometric algebra with half the rules missing and it makes no
           | sense.
        
       ___________________________________________________________________
       (page generated 2024-07-01 23:01 UTC)