Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Vtracer: Next-Gen Raster-to-Vector Conversion (github.com/visioncortex)
153 points by s1291 on Nov 23, 2023 | hide | past | favorite | 20 comments


It doesn't seem to do all that well on blueprint type line art.[1] It seems to do a lot better when it has areas to separate. Which is not surprising, considering the approach.

This is about as well as I was doing on scanned engineering drawings in 1983. I wrote Autodesk's CAD/Camera. 20 minutes of compute to process a drawing on an IBM PC/AT. You can be too early. By now, a product in that space should be recognizing not just lines, but dimensions, and generating a properly dimensioned CAD model.

[1] https://github.com/visioncortex/vtracer/blob/master/docs/ima...


>You can be too early.

I can sympathize. In the early/mid-90s when Apple released QuickTimeVR, a buddy of mine and I tried to start an early VR real estate virtual tour company. Realtors of the time had no idea, and the internet was still too new for people to really grok the concept. Early DSLR writing to floppy disks just put that little cherry on top


Right. I knew about convolution back then, but with an 80286, 640KB, no FPU, and E-size drawings at 300 DPI, there just wasn't enough compute power.


> You can be too early.

Yes, yes you can. I worked on a project than included hardware are related workflow for digitizing analog input to essentially a digital image processing workflow, just because the digital sensors weren't quite there yet. A few years later, they were.


For the generation of simplified Bézier paths, I hope they consider the new methods in kurbo[1]. These have some fairly fancy math behind them and result in pretty close to a global optimum in terms of the minimal number of segments needed to hit an error target. They don't do implicit low-pass filtering, rather treat the input as a source of truth, but perhaps options could be added for that.

[1]: https://docs.rs/kurbo/latest/kurbo/simplify/index.html


This is the most impressive raster to vector I have seen:

https://vectormagic.com

Vtracer doesn't seem to do as well.


I use Adobe Illustrator for the fairly rare occasions that I need to do it.

Since I already have it, and use it to generate almost all my graphic assets, it makes sense.


IME VectorMagic does a much better job on more complex drawings.


That may definitely be the case. I haven’t fed AI any really complex drawings.

However, there’s a lot of knobs and buttons on AI’s raster tracer.


This is the best I've found as well. They also have a new offering (different internal model, similar quality evidently) that I've used back when it was in a free unlimited trial. Not sure the status right now: https://vectorizer.ai/


There's a lot of handwritten texts out there. I spent a few months transcribing my great-great grandmother's journals as a military wife in the late 19the century. It was an enormous task - I'd spend an hour or two a week and got though a few dozen pages.

I used potrace and autotrace to darken the faded text strokes - I should give this a try and see if it can do a better job.


Maybe Facebook's Segment Anything could replace the first clustering step?


I had a similar idea the other day after fighting with inkscape tracing! The problem with auto tracing is lack of content awareness so it's just shapes and colors leading to strange objects that require lots of tinkering.

I'm going to try it: Use segment anything to get object masks, Trace each object separately and combine from there!


It may be much slower, though segment-anything works quite okay from my tests. But still - great work, cant wait to use it in my next design. :D


> Comparing to Potrace which only accept binarized inputs (Black & White pixmap), VTracer has an image processing pipeline which can handle colored high resolution scans. tl;dr: Potrace uses a O(n^2) fitting algorithm, whereas vtracer is entirely O(n).

What is the Big-O of the algorithm with Segment Anything or other segmentation approaches?

Potrace: https://en.wikipedia.org/wiki/Potrace

The Ctrl-L to Simplify Inkscape feature attempts to describe the same path with fewer points/bezier curves.

Could this approach also help with 3d digitization?


TIL about https://github.com/fogleman/primitive from "Comparison of raster-to-vector conversion software" https://en.wikipedia.org/wiki/Comparison_of_raster-to-vector... which does already list vtracer (2020)

visioncortex/vtracer: https://github.com/visioncortex/vtracer

Vector graphics https://en.wikipedia.org/wiki/Vector_graphics

Rotoscoping: https://en.wikipedia.org/wiki/Rotoscoping

Sprite (computer graphics) https://en.wikipedia.org/wiki/Sprite_(computer_graphics)

E.g. pygame-web can do SVG sprites; so that you don't have to do pixel art and sprite scaling just works.

2.5D: https://en.wikipedia.org/wiki/2.5D

3D scanning: https://en.wikipedia.org/wiki/3D_scanning

"Why Cities: Skylines 2 performs poorly" (2023) ... No AutoLOD Level of Depth https://news.ycombinator.com/item?id=38160089

Wavetale is a 3D game with extensive and visually impressive vector graphics.


This would make for a nice ComfyUI custom node.


Maybe now Affinity Designer can introduce a tracing feature and further catch up to Adobe Illustrator.


and inkscape


Rust needs some first class "best in the world" programs. Currently it has none.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: