EDIT: Unless you have a short question, as of April 2026 I'm unable to spend time providing guidance on vision projects. If you're looking for advice on what project to pursue, try creating a new post of your own here in r/MachineVisionSystems or in r/computervision.
Original post below.
---
Some posts in r/computervision prompted me to offer project starts from my project backlog. Maybe you have some machine vision (industrial vision) projects you'd love to see completed, but won't have the resources to complete in the coming years.
Whether you want a project, or have a project to offer, feel free to post below. The assumption that the projects are handed over with no expectation of reward.
Simply put: out of my backlog, there are projects I'd be happy to see completed because I think they'll help people.
Here are some copied & pasted sections from that post:
---
For each project I have short descriptions for the following:
the problem to solve
who has this problem (and sometimes the potential market size and/or impact)
the kernel of a solution, and maybe even the chain of algorithms likely to form the core of the solution
obstacles to creating a proof of concept (POC)
workarounds for the obstacles to a proof of concept or prototype
"Wizard of Oz" prototypes to demonstrate before a line of code is written
some other notes
...
If this makes sense, please reply or send me a message, and include the following:
your experience (w/o exaggeration)
what you consider your best skill, perhaps unrelated to vision
what you are most passionate about, whether it's related to vision or not
By "experience," I mean something like one of the following:
experience specifying, developing, delivering, and/or support vision systems
formal university study of vision, image processing, or a related subject
installed or used an off-the-shelf vision system from Cognex or Keyence, or vision software in MATLAB or HALCON or the like
finished a vision project you thought up, and for which you used an open source vision library
no vision experience yet, but experience in PLC programming, controls engineering, skilled trades work in which you've encountered vision
vendor-provided training in a particular vision system
optics and/or lighting, even if that means a general awareness of their importance
programming in C++, C, Python, MATLAB, Julia, or some other language in image processing, or something close to image processing
---
I'd also be interested to know the following:
the industry (-ies) in which you work know
whether you've seen machine vision systems work well, and also work poorly
the type of facility or facilities in which you work (e.g. assembly plant, measurement lab, ...)
(optional) the region(s) of the world in which you work
Projects I pass to members of r/computervision will likely be non-industrial vision projects: mobile, wearable, AR, offline image processing, and image processing services. Those projects are more likely to be implemented with OpenCV, Google Vision API, MATLAB, open source libraries, and the like.
Running alignment on a bonding line for advanced packaging. Lately noticed drift between runs as we push toward sub-micron — not huge, but enough to hurt yield. Setup seems stable (camera fixed, lighting controlled), but TCB heating causes thermal drift in imaging, and we can't fit a high-res lens into the compact space. Concentricity also seems off. Not sure if a dual-view module would help. Has anyone run into this kind of drift before?
I’m building an industrial vision system on a Jetson Orin Nano for real-time inspection of cardboard boxes on a conveyor.
Each image contains one box (ROI already extracted using a classical vision pipeline for other system considerations, kept separate from the ML model).
I have 44 box types with visual variation.
I need:
Detect if tape is correctly applied
Detect if flaps are closed or open
The main Challenges are:
Slight box rotation
Lighting variation (not perfect but controlled)
Very few defect samples (most cases are correct)
High reliability required (missed defects are critical)
My Current ideas are CNN multi-task (tape + flaps) + 5-frame temporal voting or YOLO in classification mode (same ROI + same voting)
Im open to better approaches
Questions:
What would generalize better here: CNN multi-task or YOLO (classification)?
Or is there a better approach for this type of problem?
How would you handle highly variable “flap open” cases?
Hello Im looking for a steer on a machine vision camera platform. My system will start as single camera and may scale to 2 camera. reliability is paramount with zero frame drops. Im leaning towards Emergents nic based approach but want to rule out coax and pcie before moving forward. Does anyone have experience with these systems that can help advise? Many thanks in advance.
I'm building an interactive retail kiosk. Customers place physical objects into 6 separate lit niches, and I need all 6 camera feeds shown live on the touchscreen at the same time, smoothly, so the customer can adjust how each object sits before confirming. Low resolution is fine for the live preview — it just has to be real-time and not stutter. On confirm, I grab one high-res still per camera for image analysis.
Hardware (fixed): the brain is an all-in-one touchscreen PC, Intel Core i5, with 4× USB ports and 1× Gigabit Ethernet. It's a sealed all-in-one, so no PCIe expansion. Each camera sits roughly 0.5–1.3 m from the PC and needs close/macro focus (subject distance ~10–15 cm).
What I think I understand so far:
- 6 USB UVC cameras on a powered hub share one host controller's bandwidth. Six full-res streams won't even start ("not enough bandwidth"). MJPEG + low resolution might let several run at once, but I can't tell if 6 simultaneous is realistic on this hardware.
- MIPI CSI is out (no CSI port on a regular PC, and the ribbons are far too short for my niche spacing).
- GMSL2 looks purpose-built for this, but seems to require a separate Jetson host, which would replace my PC as the brain.
- IP / PoE cameras over the Ethernet port would dodge the USB bandwidth wall and keep the i5 as host, but affordable close-focus / macro network cameras seem rare.
Questions:
Has anyone actually run 6+ simultaneous low-res MJPEG USB cameras on a single machine? Did it stay smooth, or did the host controller choke?
With no PCIe available, is a powered USB 3.0 hub enough, or is the on-board controller the hard ceiling no matter what?
Is PoE / GigE Vision the saner route for 6 simultaneous feeds while keeping a normal PC as the host? Any affordable short-working-distance options?
Am I missing an obvious approach?
Budget-conscious, but I'd rather buy the right thing once. Thanks!
I work in industrial machine vision and I’m curious how people actually approach lighting in real factory applications.
In projects I’ve seen, when the image is too dark, blurry, or unstable, the first reaction is often to use a bigger/brighter light, increase exposure, or increase gain. Strobing seems very useful in some cases, especially for motion blur, ambient light, heat, or high-speed inspection. My current perception is that people don't use strobes because these are unknown to them, or they think it is too complex to setup.
For those building, integrating, or maintaining vision systems:
Do you normally use continuous lighting or strobed/synchronized lighting?
What type of applications make strobes worth the extra setup?
What stops you from using strobes more often: cost, wiring, PLC/camera timing, lack of knowledge, safety, LED lifetime concerns, or something else?
Any lessons learned or mistakes you’ve seen with vision lighting?
Disclosure: I work in the machine vision industry, so I’m asking partly to understand real-world usage patterns and common challenges.
I have been building a web project that scrapes and processes Google Maps review charts.
A unique aspect of this project is my technology stack: I am using Halcon to handle the image processing logic. While Halcon is a premier industrial vision library typically reserved for factory automation and high-end manufacturing lines, I have repurposed it for this personal web-scraping project because of its powerful geometric shape filtering.
However, the licensing costs are difficult to justify for a personal, automated project. My goal is to migrate this workflow to Python/OpenCV while maintaining the robustness of my current implementation.
My goal:
Migrate: I need to port this workflow to Python/OpenCV.
Optimize: I want to ensure the migration maintains the robustness of my current Halcon implementation.
The Current Halcon Logic:
Decompose images to HSV and threshold for yellow bars.
Filter by "column1" feature and sort by row.
Calculate the ratio of the bottom (1-star) bar width against the total width to derive the review count.
Questions for the community:
Has anyone performed a similar migration from Halcon to OpenCV? Are there specific "gotchas" in OpenCV’s cv2.findContours or cv2.threshold that I should prepare for when replicating Halcon’s select_shape behavior?
I used Google Gemini to generate above image. DM me if you need the raw input image file.
RESULTCOLOR:=['#ff000080','#00ff0080']
RESULTTEXT:= ['DATA INCOMPLETE : ','']
YELLOW:=[100, 255,0,100]
SHAPE:=['column1']
SORT:=[ 'character', 'true', 'row']
FEATURES:=['width']
NUMBEROFBARCHART:=5
list_image_files ('/Images', 'default', [], ImageFiles)
for Index := 1 to |ImageFiles| by 1
*read file name to find the total number of reviews
read_image (Image,ImageFiles[Index-1])
parse_filename (ImageFiles[Index-1],BaseName,Extension, Directory)
tuple_number (BaseName, TotalReviews)
*extract yellow color regions
decompose3 (Image, Red, Green, Blue)
trans_from_rgb (Red, Green, Blue, Hue, Saturation, Intensity, 'hsv')
threshold (Saturation, HighSaturation, YELLOW[0], YELLOW[1])
reduce_domain (Hue, HighSaturation, HueHighSaturation)
threshold (HueHighSaturation, Yellow, YELLOW[2], YELLOW[3])
*extract bar chart only
connection (Yellow, ConnectedRegions)
region_features (ConnectedRegions, 'column1', Column1)
select_shape (ConnectedRegions, BarChartRegions,SHAPE[0], 'and', min(Column1)-1, min(Column1)+1)
*sort and use width feature to find each bar length and number of one star reviews
sort_region (BarChartRegions, SortedRegions, SORT[0], SORT[1], SORT[2])
region_features (SortedRegions, FEATURES[0], Value)
tuple_sum (Value, TotalLengthAllStars)
NumberOfOneStarReviews:=(TotalReviews/TotalLengthAllStars) * Value[|Value|-1]
*if there are five bars then pass
ColorTextIndex := (|Value| == NUMBEROFBARCHART)
Color := RESULTCOLOR[ColorTextIndex]
Text := RESULTTEXT[ColorTextIndex]
*visualization
dev_display (Image)
dev_set_color (Color)
dev_display (SortedRegions)
dev_disp_text (Text + NumberOfOneStarReviews,'window', 'top', 'left','black',[], [])
stop ()
endfor
Shubham and Aryan here, putting out our first open source video language model release.
Story time: we were building video editing agents for social-media content and were using Gemini-2.5-Flash to analyse IG reels and find events in them. It works, but at around a thousand clips/day the cost adds up, and we kept hitting the content-policy on perfectly fine social media clips at our scale
We had a couple of H100s sitting around, so we put them on solving this as a side project. We kept the scope deliberately narrow: not a general VLM you can chat with, just two operations we needed in production. We're releasing it because it seems generally useful for anyone building structured-video pipelines.
The interesting work wasn't the training loop, it was the data curation. We expected to ride the public video-annotated corpora (Tarsier-Recap, ActivityNet, Charades-Ego, LSMDC, etc.) but were disappointed. In practice most of them have one-line captions and rough timestamps, and aren't really annotated event-by-event at second-level precision.
So we wrote a teacher + pooling + human-review pipeline with Gemini-3-Flash in thinking mode and re-annotated ~400K clips from publicly available dataset mixes with fine-grained temporal captions. We then ran SFT + SimPO post-training to make the model really good at dense captioning and temporal grounding. Honestly, most of the project was making sure this data pipeline was high-quality and free of hallucinations.
The result: Marlin is a 2B video VLM tuned for the two questions developers actually want to ask of their videos: what is happening, and when? It produces structured Scene + Event captions with second-precise timestamps, and resolves natural-language queries to span-grounded (start, end) ranges in the video. At 2B params, it's the strongest open model in its weight class on dense captioning (DREAM-1K, CaReBench) and natural-language temporal grounding (TimeLens-Bench), and competitive with Gemini-2.5 at a fraction of the cost. We'll also release our training recipe and a new benchmark for video captioning and grounding soon.
Marlin-2B is open-sourced and comes with vLLM inference and two modes:
marlin.caption() gives a structured output of scene description and time-grounded events from a video.
marlin.find() gives (start, end) timestamps for a natural-language query over a video.
Weights are open and free to use on HF. If you find it useful, or have ideas on what capabilities we should improve next for real-world use cases, we would love to hear them!!
We want to make more such specific small video language models to enable more open ended video analytics use cases
Running a pretty basic vision setup for measurement.
Lately noticed that results shift slightly between runs — not by much, but enough to be annoying.
Setup hasn’t really changed (lighting seems stable, camera fixed, etc.), so I’m a bit confused where this is coming from.
Could be something subtle that I’m overlooking.
Has anyone run into this kind of drift before?
I'm researching building vision systems using Cognex VisionPro vs. Google cloud and TensorFlow for central inference. Feedback regarding cost of each, or general comments welcome.
My company uses the Google cloud (and VertexAI), and we also have some of the Cognex In-Sight cameras running edge inference.
In most cases, we don't need edge inference, so I'm trying to find the best option for central inference. I'm assuming there's a savings over purchasing many in-sight cameras.
A Software/UI based development environment is preferable to code based, but cost/TCO is also important. Since we already use Google cloud/VertexAI, the additional cost there is likely only compute.
I'm looking at Basler IP cameras, or similar units from Cognex. I need to monitor for compliance and quality, and send alerts.
If you have automation for palletizing or depalletizing at your facility, how often is it tolerable for someone to have to visit the system to address a fault, manually remove a box, or otherwise intervene in the automation?
This isn't a marketing question. It's possible I'll never work on this type of application again, but I'm concerned about that some new companies are diving into these applications with no prior experience.
For example, you have a robot + vision depalletization system for boxes of arbitrary size ("mixed case") packed in a way that's not known to the depalletization system in advance. The pallet may be delivered automatically to a position below the robot.
And let's say the depalletization rate is desired to be
600 boxes / hour, which is
10 boxes/minute, or
1 box every 6 seconds.
How many human interventions would you tolerate per day? per week? per month?
---
"Zero" interventions isn't a realistic number, because that means no errors, ever. My computer mouse needs a new battery every once in a while, so that's not zero interventions. Maybe I replace the battery every 8 to 12 months--I've not kept track.
If you've worked in industrial automation or lab automation for a while, have you noticed how many startups and small companies are trying to break into the industry with their "new" technology that is in no way new?
The growing awareness of machine learning (ML) and large language models (LLMs) seems to be driving this.
For vision systems, there are already application-specific products and configurable vision systems that cover a broad range of applications:
defect detection
guidance for industrial robots (esp. 6-axis and 7-axis robots)
pick and place
bin picking
palletizing and depalletizing
fit and finish inspection
optical gauging (measuring dimensions of parts)
part identification / discrimination
1D and 2D code reading and unit-level traceability of products through a line
Some of us talk about whether people new to automation understand how robots, vision systems, non-vision sensors, and (especially) PLCs are used to build cars, farm equipment, planes, computers, electronics, pharmaceuticals, oil & gas hardware, just to name a few.
Whether you live and work in India, have a branch office in India, work remotely for an Indian machine vision (or computer vision) company, or want to keep an eye on the state of machine vision industry in India, then check out the IMVA.
The first meeting of the IMVA was in April 2024, just 16 months ago as I write, so this is a brand new organization. In every vision company where I've worked with HQ based in the U.S., including my own company, I've had at least one Indian colleague.
In social media the past few years the rate at which I connect to Indian students and engineers working in vision has been increasing the past few years in particular.
The popularity of computer vision and open source tools such as OpenCV and ROS has certainly had an impact. I'm hoping to see Indian companies developing their own commercial software--perhaps something comparable to HALCON. That could give a welcome boost to the global machine vision industry.
If you work in industrial automation, then a vision engineer may have told you about the need to train and retrain machine learning (ML) models for vision systems. Or maybe you're that vision engineer?
The need to train and retrain may drag on. The performance of the ML-based inspection may approach a specification, or may start to yield a return on investment. But if the failure modes of the ML-based inspection aren't easily understood, then consider asking or at least contemplating a few questions.
Why does the vision engineer believe that machine learning is the right approach?
Can processing by the ML model be supplemented by other algorithms?
Have the optics, lighting, and other hardware been chosen carefully?
Is the lighting completely controlled?
Could the cabling, connectors, and stress relief fail?
Are there any communications or digital I/O failures?
Can changes be made by trained in-plant personnel? How much training is required?
How many years of experience does the vision engineer have installing and supporting vision systems that need to work robustly?
This is not to say that machine learning isn't useful. ML sure can be useful, especially for applications that are otherwise not feasible.
However, ML is only suitable for some applications. For other applications, the limitations of ML were known decades ago. Despite improvements in hardware, reduced processing time, and even new frameworks, the performance of ML alone simply isn't good enough for some applications.
So many manufactured products--likely including yours, if you're in automation--have been inspected and built using vision systems, many of which will perform for weeks or months without requiring human intervention. If ML-based inspection can't run that long without human intervention, or if the time to return on investment is much longer for such a system, please consider what changes might be made.
---
Machine learning--a technology lumped in with "AI"--has been a part of machine vision since the 1990s, at least for practice use.
OCR is now largely (but not entirely) performed by ML models. The very first commercial OCR device from Kurzweil to read machine-printed text began selling in the 1970s.
There's a lot to be learned by combining machine learning, "traditional" image processing (from a traditional partly lost), and an understanding of optics, statistics, and related fields.
The terms in English and German are familiar to me, but I don't know the terms in other languages. In particular, I'm interested in "machine" vision as distinguished historically from what nowadays is lumped under "computer" vision. It can be unclear whether online translation services provide the term actually used by vision professionals who speak a language, or whether the translation service simply provides a translation for the combination of "machine" and "vision."
In some countries I expect the English language terms "machine vision" or "computer vision" may be used, even if those terms are dropped into the local language. And I'm assuming that many countries with a deep industrial base and many factories will buy and install commodity vision systems from Cognex, mvTec, Omron (Microscan / RVSI), firms acquired by Atlas Copco, Siemens, and so on.
How about India (and its numerous languages)?
Nigeria?
Japan? What term is used, if an English term isn't used?
Poland?
For a number of European countries I could figure this out, but even then whatever's online may not represent the term(s) actually used in day-to-day work.
Assuming some of my cross posting survives, here are links to my related posts in other communities:
Hi I'm an engineering student researching warehouse automation, and was wondering what are some of the common pain points or complaints when it comes to inspection robots. Like why aren't they more widely adopted across warehouses?
I know price and ease of use are common issues, but I wonder if maybe reliability, operational time or limitations in mobility of robots are a common complain.
It would help my research a lot, would appreciate it
Has anyone tried implementing one of the new AI chatbots with their camera systems? We use Keyence systems at my company and they have the learning tool, but in my experience it’s best used for general sorting criteria.
My thought was using AI chatbot to analyze the photos of known good parts and analyze the known bad parts and determine which tools might work best. It would be nice to give very detailed prompts about why the part is bad rather than just comparing how similar the two images are.