Artificial Data made in Unreal Engine
I'm using a plugin btw. Think about the power
u/syntheticdata u/unrealengine
I'm using a plugin btw. Think about the power
u/syntheticdata u/unrealengine
Solo dev here. I kept owning things and forgetting where I put them, so I built Store & Forget.
The whole point is zero effort to catalog: you don't type or tag anything. Snap a photo and it auto-fills what the item is (the photo scan uses a cloud AI service). Later you find it by searching names, descriptions, or which box or room it's in, or tap "Smart Find" to search by meaning.
Local-first: everything sits in an on-device database, no account, no sign-up. Optional backup to your own Google Drive.
It's free, Android only. Would love feedback from other builders.
https://play.google.com/store/apps/details?id=dev.koalalab.storeandforget
Hi everyone,
We've been building LocalMesh for the past few weeks, and the beta just opened.
Short version: one photo goes in, and you get a 3D Gaussian splat (~60s on a 5090, ~2min on a 4060 laptop), then a textured mesh** (UV-unwrapped, photo reprojected, AO, normal map) exported as GLB/PLY/OBJ.
Everything runs locally. No upload, no queue, no credits. Turn off your Wi-Fi, it still works.
The mesh part is the bit we're proud of. Poisson reconstruction on gaussian centers drapes a tarp over your object: a Poisson solver has to close every surface, and can never say "I can see through here".
So instead: 60 virtual cameras on a golden-angle sphere, gsplat renders depth for each, every ray carves out the empty space it travels through, and the 60 depth maps fuse into a 768³ TSDF volume. Carving instead of guessing. (gs2mesh principle, written from scratch.)
Other things you might enjoy:
- It runs on 8 GB cards. The entire conversion (splat rendering, TSDF fusion, decimation, atlas bake) stays under 7.3 GB of VRAM, so a 4060 laptop finishes the exact same job as a 5090, just slower.
- No CUDA toolkit, no Visual Studio, no Python, no admin rights on the client. We ship a fat gsplat wheel with precompiled kernels, RTX 20 to 50.
Limits, upfront: one photo means the back of the object is invented, not measured. Windows + NVIDIA 8 GB only. No Authenticode cert yet, so SmartScreen will grumble on first launch.
7 days free, no card to start, then $39 once, no subscription, because there's no cloud to pay for: https://local-mesh.com
Break it and tell us, that's what the beta is for.
Happy to answer anything about the pipeline in the comments.
I work in a manufacturing environment and I'm exploring whether AI/computer vision can be used to automatically interpret 2D engineering drawings.
The goal is to identify and extract:
* Components and geometric features
* Dimensions and their associated features
* Tolerances
* GD&T symbols
* Hole specifications
* Surface-finish information
* Engineering notes and annotations
Ideally, the output would be structured data that could later be used for manufacturing, inspection, costing, BOM generation, or integration with other systems.
I'm aware that OCR can extract text, but the bigger challenge seems to be understanding the **relationship between dimensions, symbols and the actual geometry/features in the drawing**.
Has anyone worked on something similar?
I'm particularly interested in:
* Vision-language models
* OCR + computer vision pipelines
* Object detection/segmentation
* Engineering drawing datasets
* CAD-aware approaches
* Open-source models or commercial APIs
What would be the most practical architecture for solving this reliably with real-world engineering drawings?
I do Computer Vision as part of my job and just felt like it would be fun to spin up something to play this game.
Its not perfect, due to sometimes words being overlayed on each other which results in bad detection. But it does get the job done.
Any fellow Computer Vision Engineers playing Dota 2 as well?
I know you can just create a script like This post, where it just spams all the letters on the keyboard continuously. But I just thought this would be more fun, and treat it as a challenge to myself to develop the highest scoring solution based on computer vision techniques.
If people are interested in the code I will release it in the comments :)
The black (white) parts of the texture stand out more on a white (black) background. This effect, discovered by psychologist Bart Anderson, is related to the Munker-Benary-White effect, where solid gray regions of identical luminance appear either whitish and blackish. It's a vivid demonstration of the influence of boundary conditions (contrast polarity) on textural figure–ground layer segmentation. Are there any known computer vision algorithms that can segment textures into figure–ground layers in this fashion?
Play chess against frontier VLMs. Real-time vision powered by Overshoot.
Play now: VLM Chess
Running into the same wall on a couple of industrial inspection projects and curious how other people have dealt with it.
The line runs well, which is the problem. Out of a few hundred thousand parts we've got maybe 200 real defects, and they're spread across six or seven types, so some classes have under 20 examples. Classic supervised segmentation just doesn't have anything to learn from.
Options as I see them:
Anomaly detection on good samples only. PaDiM, PatchCore, that family. Works, but it flags anything unusual including a smudge on the lens or a part sitting at a weird angle, and the false positive rate on a real line has been rough.
Synthetic defects. Painting cracks and scratches onto good images. Ours look obviously fake next to real ones and I suspect the model is learning "was this pasted" rather than "is this damaged."
Buy or scrape more defect data. But defects are extremely specific to the part and the process. A scratch on someone else's aluminium housing doesn't look like a scratch on ours.
Just wait and collect. Realistic answer, but that's 18 months and the project needs to justify itself sooner.
What I'm actually unsure about is whether the 20-example classes are even worth modelling separately, or whether it's smarter to collapse everything into a binary defect/no-defect call and let a human sort the type afterwards. Losing the classification hurts the reporting side but it might be the only honest thing to do with that little data.
Anyone shipped something in this situation? Especially interested if you went anomaly detection and got the false positives down to something a QA team would tolerate.
Hi everyone! I am a software engineer who has worked in the following domains at major tech companies most of my career: XR, Graphics & GPU programming, Spatial algorithms and AI, and 3DGS.
I have a project I started a few months ago that I have recently hit a key milestone in. The idea is a focused library that implements 3DGS training from first principals with an emphasis on performance and safety. Think production use cases without relying on tools intended for research. VkSplat is an inspiration (along with other things) but I have intentionally not reviewed their, or anyone else's, code.
The recent milestone I reached was rendering a scene with 5 million splats at 60fps on my Ampere A6000. I have a few more goals I'd like to reach, but I do intend to publish on Github under MIT license. If it gains traction I would like to build some additional tools and infra using this project, but for right now the 1.0 MVP idea is a fully GPU resident solution for rendering and training at state of the art speeds. I plan to implement and optimize the following features:
I do have many more thoughts and ideas, but I am trying to take it one step at a time, so this is my goal for 1.0. This is my stack as of now:
Right now, the project is in a place where it is still extremely early, but it is starting to take shape and get large enough that more than one person can work on it comfortably. I am posting here looking for people interested in contributing. Knowledge is not a prerequisite as I am learning a lot myself in this endeavor, but passion is mandatory.
Currently I am mostly needing help in the areas of, CI/CD (build, package & deploy), nsight/gpu optimization, designing and implementing a good api, and figuring out how to test and benchmark appropriately.
If you have skills or experience in any of these areas, or you're just interested in contributing, please reach out!
I'm an undergraduate student.In next 2 semesters( which is probably the duration of 1 year) I need to do a thesis. I choose to do my thesis in the field of 'depth estimation' .
I read a lot of research papers(Monocular, stereo, Diffusion based). But I found most of the things got State of the art !! I'm reading and reading,not finding a single problem to solve or research!! I should also mention that i didn't understand all the topics 100%, but tried to get the concepts.
I'm trying but not even finding a single idea/problem/flaws !! What should I do? What am I missing? How to find a decent topic ? Please help me.
I am about to start my MSc. I wish to specialize in computer vision, then pursue a PhD. I eventually want to work in industry. I was initially excited about this path. However, AI fatigue is killing my motivation.
Honestly, I don't have any hope for the future. It has been around four years since GPT-3.5 was introduced. AI is now proving major conjectures. It recently came close to proving Riemann's hypothesis, and dominated(not only defeated) the best competitive programmers in the world at AtCoder World Finals. I can't see a place for myself in the future because of AI.
I keep going because I feel like I don't have any other choice. I was genuinely excited about computer vision, robotics, and autonomous driving. But I have convinced myself that all my effort is in vain.
I wish to ask people in a similar situation, what makes you keep going? What are your plans for the future?
I keep seeing CV projects where performance stalls and the first response is to add more images or try another model. Sometimes that helps. But sometimes the model is being asked to learn a rule that people haven’t agreed on.
A partially visible object, an uncertain boundary, or something cut off by the frame can all produce different “correct” annotations. More data just scales that inconsistency.
A simple check is to take 20–30 difficult images and have two people label them independently. Then review the disagreements, not just the agreement score. Each recurring disagreement becomes a written rule with one positive and one negative visual example. Run the same test again on a fresh sample before scaling.
I’d use a similar check for auto-labeling: measure missed objects and correction time per image, not only inference speed. Fast pre-labels aren’t useful if every image still needs a full review.
Disclosure: I work at Supervisely, a computer vision platform. This is a platform-independent observation.
What annotation edge case caused the most trouble in your dataset?
Hello everyone, I have a project that has to classify images for search purposes. Currently I have a layer that analyses surrounding text but I also need something that directly analyses the image itself. I don't want to use someone else's training data or model. Is it possible to train an image classifier that could perform well on general image classification at home using open datasets? Thanks
The glasses recognize products as I pick them up and automatically add them to a virtual cart. No barcode scanning, no ceiling cameras, and no major store retrofit.
I took on an ambitious project where I want to install AI detection at a meat processing plant according to HACCP rules. But I'm a beginner, I only know Claude code, so if you have any tips or life hacks, I would be very grateful for it
They are much smaller I would imagine they would be so cheap on there. I’m finding myself in the position where I have to rent a cloud gpu from runpod. I would much rather pay in api should be much cheaper.
I’ve just finished a major rebuild of ClearLab, my mobile image processing app for iPhone/iPad.
The new version adds histogram, RGB parade, waveform, line profile, pixel inspector, statistics, Canny/Sobel/Laplacian edge detection, enhancement tools, format conversion and PNG/CSV analysis export.
The idea is basically a small image-processing lab in your pocket rather than another photo-filter app.
It’s mostly native/deterministic processing, not generative AI.
ClearLab 2.0 is now on the App Store. Curious what people here think, especially anyone working with imaging or computer vision.
Since Ultralytics officially supports exporting YOLO26n-Depth to RKNN, I tried running it on RK3576.
With a simple Python video inference test, I’m getting around 3–4 FPS for now. The code and model haven’t been optimized yet, so I think there is still quite a lot of room for improvement.
One thing I noticed is that the RKNN model exported directly by Ultralytics has only one output.
For comparison, the optimized YOLO11 / YOLOv10 models from Rockchip’s rknn_model_zoo use 9 outputs, which seems to be better optimized for the Rockchip NPU and moves some of the decoding/post-processing outside the model.
So 3–4 FPS is just the initial result. I’m going to see if YOLO26n-Depth can be optimized in a similar way.
Has anyone already tried optimizing YOLO26 or YOLO26-Depth for RK3576/RK3588?
I spent a few days getting an SDXL-based provenance-removal pipeline (visible AI labels, C2PA metadata, SynthID-class pixel watermarks) to run properly on an M5 with 16 GB. Not "it launches" — actually correct and predictable. Almost everything I assumed was wrong, and the measurements are the interesting part, so here they are.
1. The four-step distillation LoRA invents texture, and more steps make it worse.
Low-strength img2img runs the tail of a long schedule (strength 0.15 → the last 4 of 27 steps). A LoRA distilled for four timesteps across the whole noise range is off-distribution there, and wherever nothing conditions it — flat dark fabric gives Canny no edges — it fills the gap from its prior. On a night photo that reads as coloured camouflage across black clothing.
| Global stage, 1448×1080, strength 0.15, seed 0 | Invented texture | PSNR | Wall |
|---|---|---|---|
| Lightning, 4 steps | 1.73× source | 28.54 dB | 41 s |
| Lightning, 8 steps | 1.80× | 28.19 dB | 29 s |
| Lightning, 16 steps | 1.84× | 27.85 dB | 62 s |
| Undistilled base, 16 steps | 1.19× | 29.25 dB | 71 s |
| Undistilled base, 24 steps | 1.20× | 29.17 dB | 132 s |
Asking the distilled model for more steps made it worse, which is what identified the distillation rather than the step count. Dropping the LoRA cost 3× the wall time and bought both fidelity and correctness.
Wrong theories I paid for first: the fp16 VAE (a bare round-trip is clean in fp16 and fp32, tiled or not, 34.6 dB), Metal's fp16 in general (bf16 measured marginally worse), and Canny picking up sensor noise (the Canny map of that region is empty — which was the actual clue).
2. Metal pages instead of failing, so memory has to be measured, not hoped for.
torch.mps.recommended_max_memory() reports 11.84 GiB on a 16 GB machine. Exceed it and nothing raises — the process just starts swapping and a run that should take 23 s takes an hour.
3. Sequential CPU offload works on MPS, and it's what makes 8 GB usable.
The stack is 7.7 GiB of weights; an 8 GB Mac gives you about 5.3 GiB. Streaming the weights module by module:
| Same frame, same seed | Peak device memory | Wall |
|---|---|---|
| Resident | 7.70 GiB | 7.1 s |
enable_sequential_cpu_offload(device="mps") |
0.28 GiB | 24.1 s |
27× less peak for 3.4× the time. The plan is chosen from the measured budget and printed, because a run three times slower looks broken unless it says why.
4. Two Metal gaps worth knowing if you're porting anything.
torch.float8_e4m3fn doesn't exist on MPS at all (RuntimeError: Undefined type Float8_e4m3fn). Any pipeline that streams float8 weights — a lot of the VRAM-managed stacks do — cannot load, full stop.5. The one that cost me the most: fp16 sampling on MPS silently returns zeros.
I added a memory optimisation — encode the fixed prompts once, drop the text encoders, save 1.52 GiB. Two of four face crops then came back as all-zero black rectangles. Deterministically, same seed, nothing raised.
The embeddings were innocent (CPU fp16, MPS fp16 and fp32 encodings of that prompt agree to 0.0009 on tensors with σ=3.06) and the same crop in isolation was fine. Freeing unrelated memory changed the allocation pattern the crops met after the global pass, and that was enough. I withdrew the optimisation and added a guard that drops any empty crop instead of compositing it.
If you're doing fp16 diffusion on Metal: check your output for degeneracy. It will not tell you.
What it doesn't claim. Regeneration is not payload deletion — faces, text and fine detail move, and the numbers above are the measured size of that. No public local decoder exists for SynthID-class marks, so identify reports unknown, never clean; verification is the provider's verifier or nothing. Metal isn't bit-identical to CUDA, so operating points transfer between backends but recorded verdicts don't. And it's for content you generated or own — the visible-mark registry takes AI-generation labels only, deliberately not stock or marketplace marks.
Because "how much did that cost my picture" is the whole question, it ships as a command:
pagedmark measure before.png after.png
PSNR over the frame, PSNR per detected face, and how much mid-band structure appeared where the source was flat and dark. That third metric is the one that caught the camouflage — per-pixel chroma statistics rank the artifact below the source, because the source's own sensor grain has more per-pixel variance than the invented blotches do.
uv tool install "pagedmark[diffusion]"
pagedmark invisible photo.png -o clean.png
Code: https://github.com/doofzoff/pagedMark · PyPI: https://pypi.org/project/pagedmark/
Happy to answer anything about the Metal specifics — that's the part I'd have wanted written down before I started.
TL;DR: Cropping in action with some extra algebraic and statistical magic applied: https://youtu.be/SetiZDbc8iE
I recently worked on determining the ball's position and reshaping the video from landscape to portrait based on that position. It often s looks like a layup: fixed camera, one class, find the thing. Then you look at what you're actually asking for: a small, blurry object is a handful of pixels, smeared across a few more, changing shape between consecutive frames. Not a crisp circle - a faint streak you can barely point at when the video is paused.
The part that tends to get skipped in the YOLO family is that those architectures downsample 32× before they reason. At stride 32, an 8-pixel object is a quarter of one feature cell. There is nothing left to detect. Fine-tune forever, buy a bigger GPU, adopt whatever dropped last week — the model is being asked to localize something it structurally cannot see. The extra-small heads help and still aren't built for this.
I believe great data and a simple model always beat poor data and a sophisticated model. Before this approach, I tried TrackNet v2/3/4, and the quality was awful; the public data used for training is not even close to what you meet in real practice.
What worked instead:
So, ~180k parameters total, ~125 fps on a 4090, ~4× realtime. Not fully optimized: custom Rust server with a CPU-bound FFmpeg decoder, ORT+TensorRT, and Rayon to speed things up a bit. Yet cannot use 100% of the GPU, capped by CPU-GPU PCIe transfers. Probably can reach 250-300 FPS with a more optimized inference design and int8.
The insight that mattered wasn't architectural. Blur is a signal, not a defect. The object is nearly invisible against a busy background and is almost always the fastest thing in the frame, so the frame-difference channel carries more information than any choice of backbone.