3,072 karma · joined June 28, 2013
---
X-Maps: Using a tiny laser projector and an event camera to estimate depth at 60 Hz on a laptop CPU. The algorithm is using only the time stamps of when the laser passes over the scene, not its color or intensity, so you can project any content you like. Fun for AR demos!
https://fraunhoferhhi.github.io/X-maps/
---
Self-Organizing Gaussian Grids: 3D data is awkward to compress. But there's plenty of solutions for compressing 2D data (images!). So let's organize our 3D data into a 2D grid, where grid neighbors are also close in 3D. That's a hard problem, but we can leverage novel assignment algorithms with GPU power for parallelizing that, to get the sorting done in a few seconds.
https://fraunhoferhhi.github.io/Self-Organizing-Gaussians/
---
https://www.3dgs.zip/ resources on 3D Gaussian Splatting from our research group.
https://survey.3dgs.zip/ - a comparison of different compression methods for 3D Gaussian Splatting scenes.
Good documentation should do this work for you. It should explain somewhat atomic concepts to you, that you can immediately adapt, and compose. Where it already works is for the "detection" and "window" parameters, which are straightforward. But the actions of trimming in the start/middle/end, and how to configure how long the silence lasts before trimming, whether to ignore short bursts of noise, whether to skip every nth silence period, these are all ideas and concepts that get mushed together in 10 parameters which are called start/stop-duration/threshold/silence/mode/periods.
If you want to apply this filter, it takes a long time to build mental models for these 10 parameters. You do have some example calls, which is great, but which doesn't help if you need to adjust any of these - then you probably need to understand them all.
Some stuff I stumbled over when reading it:
"To remove silence from the middle of a file, specify a stop_periods that is negative. This value is then treated as a positive value [...]" - what? Why is this parameter so heavily overloaded?
"start_duration: Specify the amount of time that non-silence must be detected before it stops trimming audio" - parameter is named start_something, but it's about stopping? Why?
"start_periods: [...] Normally, [...] start_periods will be 1 [...]. Default value is 0."
"start_mode: Specify mode of detection of silence end at start": start_mode end at start?
It's very clunky. Every parameter has multiple modes of operation. Why is it start and stop for beginning and end, and why is "do stuff in the middle" part of the end? Why is there no global mode?
You could nitpick this stuff to death. In the end, naming things is famously one of the two hard problems in computer science (the others being cache invalidation and off-by-one errors). And writing good documentation is also very, very hard work. Just exposing the internals of the algorithm is often not great UX, because then every user has to learn how the thing works internally before they can start using it (hey, looking at you, git).
So while it's easy to point out where these docs fail, it would be a lot of work to rewrite this documentation from the top down, explaining the concepts first. Or even rewriting the interface to make this more approachable, and the parameters less overloaded. But since it's hard work, and not sexy to programmers, it won't get done, and many people will come after, having to spend time on reading and re-reading this current mess.
Good god. You couldn't make that any more convoluted and hard-to-grasp if you wanted to. You gotta love ffmpeg!
I now think this might be a good solution:
ffmpeg -i video-audio.m4a \
-af "silenceremove=start_periods=1:stop_periods=-1:stop_duration=0.15:stop_threshold=-40dB:detection=rms" \
-c:a aac -b:a 128k output.m4a -yIn the idea of making more of an OpenAI minute, don't send it any silence.
E.g.
ffmpeg -i video-audio.m4a \
-af "silenceremove=start_periods=1:start_duration=0:start_threshold=-50dB:\
stop_periods=-1:stop_duration=0.02:stop_threshold=-50dB,\
apad=pad_dur=0.02" \
-c:a aac -b:a 128k output_minpause.m4a -y
will cut the talk down from 39m31s to 31m34s, by replacing any silence (with a -50dB threshold) longer than 20ms by a 20ms pause. And to keep with the spirit of your post, I measured only that the input file got shorter, I didn't look at all at the quality of the transcription by feeding it the shorter version.https://www.fraunhofer.de/en/about-fraunhofer/profile-struct...
Should be quite exciting going forward, as fine-tuning might be possible on consumer hardware / single Desktop machines (like it is with LLMs). So I would expect a lot of experiments coming out in this space, soon-ish. If the results hold true, it'll be pretty exciting to drop slow and cumbersome COLMAP processing and scene optimization for a single forward pass that lasts a few seconds.
I'm sure getting to this point was quite difficult, and on the project page you can read how it involved discussions with lots and lots of smart and capable people. But there's no big "aha" moment in the paper, so it feels like another hit for The Bitter Lesson in the end: They used a giant bunch of [data], a year and a half of GPU time to [train] the final model, and created a model with a billion parameters that outperforms all specialized previous models.
Or in the words of the authors, from the paper:
> We also show that it is unnecessary to design a special network for 3D reconstruction. Instead, VGGT is based on a fairly standard large transformer [119], with no particular 3D or other inductive biases (except for alternating between frame-wise and global attention), but trained on a large number of publicly available datasets with 3D annotations.
Fantastic to have this. But it feels.. yes, somewhat bitter.
[The Bitter Lesson]: http://www.incompleteideas.net/IncIdeas/BitterLesson.html (often discussed on HN)
[data]: "Co3Dv2 [88], BlendMVS [146], DL3DV [69], MegaDepth [64], Kubric [41], WildRGB [135], ScanNet [18], HyperSim [89], Mapillary [71], Habitat [107], Replica [104], MVS-Synth [50], PointOdyssey [159], Virtual KITTI [7], Aria Synthetic Environments [82], Aria Digital Twin [82], and a synthetic dataset of artist-created assets similar to Objaverse [20]."
[train]: "The training runs on 64 A100 GPUs over nine days", that would be around $18k on lambda labs in case you're wondering
[0]: https://fraunhoferhhi.github.io/Self-Organizing-Gaussians/
The smiling emoji at the end of the first paragraph indicates that these statements were made somewhat in jest, or perhaps exaggerated. Of course some uses can be found for absolute pitch. I saw one a couple weeks back, when Jacob Collier was tuning the audience choir to lead into "Somebody to Love" played on the piano. But, hadn't he had absolute pitch, he might just have picked up a reference note from the piano or his in-ear monitors, like a filthy commoner. Usually when making music, having good relative pitch is required, and a reference instrument is mostly handy, making perfect pitch somewhat redundant. But do tell what you're doing with perfect pitch, I'm curious.
And on curiosity, I went to your website and randomly listened to "The Fugue Song" [0]. Really loved it! Very nice moment when the singing comes in, repeating the phrase from the fugy guitar intro. Good song! (I'm a total sucker for Nina Simone's "Love Me Or Leave me", do you know that? A song where she's inserting some counterpoint improvisations in the middle). I'm listening to a bit of "Hiss" now.
> 8.3%
Rounded to the next semitone of course, I left that detail out, it's in the paper.
A couple of months ago, this paper made the rounds: Absolute pitch in involuntary musical imagery [0]. In a small sample group, nearly half the time (44.7%) when someone was asked to sing their current earworm, were they perfectly in pitch. Random chance would be 8.3%.
It’s a fun thing to try for yourself. Just hum your current earworm into a voice memo, and check the correct pitch against the recording of the original song. You may discover a skill you never knew you had, implicit perfect pitch on involuntary music!
Trying to make this more interesting, reproducing a particular song on demand (there’s references to that too in the paper - it also works better than random chance, but less so than the involuntary kind), I find it works best for songs that start off with a single note, preferably sung. Or then at least you can immediately check whether you were right, e.g. “Tom’s Diner”. I’ve been having a lot of fun humming the first tone to Laufey’s cover of Sunny side of the street [1] whenever I open YouTube. I’m more often right than wrong, and if I was wrong, I can just listen to the whole thing to brighten my day anyways.
[0]: https://link.springer.com/article/10.3758/s13414-024-02936-0
I was wondering: have you thought about automation bias or automation complacency [0]? Sticking with the drop-tables example: if you have an agent that works quite well, the human in the loop will nearly always approve the task. The human will then learn over time that the agent "can be trusted", and will stop reviewing the pings carefully. Hitting the "approve" button will become somewhat automated by the human, and the risky tasks won't be caught by the human anymore.
The workflow of typing, then selecting a file name to save at the very end makes me somewhat uncomfortable. What happens if the app or the computer crashes? Will everything be gone?
This stops me from writing for really long sessions in there. Don’t want to type for an hour only to find everything is gone.
It was sometimes possible to travel to western/international conferences - of course only after the Stasi gathered from interviews with all your colleagues and neighbors that you loved your children, and were likely to come back. And even then they were not allowed to make any contact with western scientists at the conferences, making any kind of useful exchange near-impossible.
After finding and reading a book on Bionics, which was a bit of a hype topic at the time, he noticed that the biologists were talking about the inexplicable nature of bats' echolocation. As he had experience with code multiplexing, he wrote a paper on the signal theory behind that, in 1974 [0]. As this topic was considered completely harmless, it was no problem to get this published in the GDR. After a request, it was even published in a journal in West Germany. But then being invited to give a talk on it in Frankfurt/Main, the authorization was given three times by the institute, and then revoked again each time (by higher-ups/Stasi). He was then asked to cease any communication with West-German researchers (who had sent him a book manuscript to review). It was a bitter-sweet thing for him. In later years, he was often asked about bat echolocation, as it made for a good pop science topic. But of course he would have loved to publish, and exchange, on his actual research topics at the time much more.
My grandpa died a couple of years ago. When I travel to international conferences now - being able to present whatever I like, talking to whoever I choose - this history often comes back to mind. Sometimes these stories feel like a very distant past. But then I read about how Linux maintainers are removed just for having a Russian email address, as happened recently. So maybe we haven't come as far as we think. I believe it's important to be conscious of the great freedoms most of us currently enjoy, how precious they are, and how brittle they can be.
[0]: https://link.springer.com/article/10.1007/BF00611870 - paywalled, unfortunately. And German!
> Renowned author Dan Brown woke up in his luxurious four-poster bed in his expensive $10 million house – and immediately he felt angry. Most people would have thought that the 48-year-old man had no reason to be angry. After all, the famous writer had a new book coming out. But that was the problem. A new book meant an inevitable attack on the rich novelist by the wealthy wordsmith’s fiercest foes. The critics.
> Renowned author Dan Brown hated the critics. Ever since he had become one of the world’s top renowned authors they had made fun of him. They had mocked bestselling book The Da Vinci Code, successful novel Digital Fortress, popular tome Deception Point, money-spinning volume Angels & Demons and chart-topping work of narrative fiction The Lost Symbol.
> The critics said his writing was clumsy, ungrammatical, repetitive and repetitive. They said it was full of unnecessary tautology. They said his prose was swamped in a sea of mixed metaphors...
https://onehundredpages.wordpress.com/2013/06/12/dont-make-f...
https://notebooklm.google.com/notebook/a240cb12-8ca1-41b4-ab... (7m59s)
As always, it's not actually much of a technical deep dive, but gives a quite decent overview of the pieces involved, and its applications.
As a paying customer from EU, I’m not happy about it. What’s the reasoning for this being held back (while normal voice mode is available)?
At the time I was working for a startup called VideoStitch, later Orah, which had launched the Orah 4i, a much smaller, 4-lens, 360 degree 4K live streaming camera. Expectations were huge, that 360 degree video streaming would go through the roof, with a camera at every wedding. Didn’t really work out that way, I wonder whether stereo 180 degree “Spatial Videos” in the Apple ecosystem will go the same way.
[0] https://www.jonaspfeil.de/ballcamera/ [1] https://www.theverge.com/2013/11/12/5092670/panono-camera-ba...
In our case it's for saving space in the paper, and also for reducing spam. This small change may now seem silly in the age of LLMs, but the papers that have full email addresses in them get a considerable amount of fake conference and journal participation emails, which is annoying.
I think it’ll be hard growing a discussion platform, if there’s barriers of entry like that to even populate your profile.