Serwatka asked . 2022-01-13

Why webcams won't work with Image Acquisition tool when connected via USB hub?

Hi,
 
I am currently doing a project that involves 3D reconstruction using a camera array.
 
I have 16 Microsoft HD-3000 webcams, Matlab R2017a on Windows 7 (64bit) OS.
 
I need the pictures to be taken simultaneously, which I found out is impossible with those webcams. Therefore I am recording short 'overlapping videos', measuring time difference between individual cameras triggering and ultimately extracting specific frames from the videos.
 
So far I have wrote a matlab code which detects how many cameras are plugged to the computer, then set camera parameters, records videos, saves them into the folder and measures time differences.
 
The code works fine when the cameras are plugged directly via computer's USB ports (tested on max. 8 cameras at a time since that is how many USB ports my computer has). However when I try plugging in the cameras via USB hub (StarTech), it won't work. It detects the cameras, sets parameters for each of them and 'tries' to take a video (it even gives me time difference), but the videos never appear on the drive. I am also getting following warning at the very beginning of running the code:
 
"Warning: An object in OBJ could not be started, was already started, or is invalid. "
 
All cameras are accessible and available for the preview in Image Acquisition Toolbox.
 
FYI, the USB Hub was supposed to be socket-powered, however it doesn't seem to work and I was testing it while powered from the computer.
 
Do you have any idea how to make it work? I have been struggling with this for the last couple of days.

webcam , usb hub , matlab , image processing

Expert Answer

Prashant Kumar answered . 2024-04-25 02:50:31

In my experience, it would not be uncommon for a computer with 8 USB ports to internally have 3 USB busses split over 2 USB controllers, with the second controller also handling the keyboard and mouse and Bluetooth.
 
 
For frame-level synchronization, ideally each camera should be on its own USB 3.0 bus. I would not consider putting more than 2 cameras on the same USB 2.0 bus (and would expect occasional glitches); I might generally be willing to test with 3 cameras on the same USB 3.0 bus but certainly not for real-time work -- and since those particular webcams only have USB 2.0 capacity, USB 3.0 ports would have to hold their speed down to USB 2.0 so with a USB 3.0 bus you would, in such a case, only get the benefit of a faster controller that might have more memory.
 
 
USB hubs are not really transparent to the USB process. You can examine your USB configuration and you will see each hub and you will see the ports attached to each of its ports.
 
 
Anyhow, for purposes like yours, it would be better to be using a data acquisition system that had one bus per slot and time-stamped the data and bundled it for transfer... especially if you can do that through a real external bus like PCIe instead of through a USB connection.
 
 
As best I recall at the moment, no-one has posted reporting being able to handle more than 7 USB cameras simultaneously, with the 8th camera leading to USB problems.
 
 
USB is a serial protocol with a master/slave relationship in which only one device per bus can be communicating, with the master polling each device to find out which one has data to transfer and then going around and telling each one in sequence "Okay, you can send this much of your data". It does not in itself support triggers -- there is no way to tell all the cameras on a single bus to take a frame at the same time. There is certainly no way to have multiple cameras on the same bus transfer frames at the same time.
 
For frame synchronization work, you would prefer to have GENLOCK or equivalent. Some of the National Instruments data acquisition boxes support GENLOCK of multiple channels, for the cases where the important factor is not that the devices be triggered at a particular absolute time controlled by the host computer but rather that the devices all be triggered at the same time relative to each other.


Not satisfied with the answer ?? ASK NOW

Frequently Asked Questions

MATLAB offers tools for real-time AI applications, including Simulink for modeling and simulation. It can be used for developing algorithms and control systems for autonomous vehicles, robots, and other real-time AI systems.

MATLAB Online™ provides access to MATLAB® from your web browser. With MATLAB Online, your files are stored on MATLAB Drive™ and are available wherever you go. MATLAB Drive Connector synchronizes your files between your computers and MATLAB Online, providing offline access and eliminating the need to manually upload or download files. You can also run your files from the convenience of your smartphone or tablet by connecting to MathWorks® Cloud through the MATLAB Mobile™ app.

Yes, MATLAB provides tools and frameworks for deep learning, including the Deep Learning Toolbox. You can use MATLAB for tasks like building and training neural networks, image classification, and natural language processing.

MATLAB and Python are both popular choices for AI development. MATLAB is known for its ease of use in mathematical computations and its extensive toolbox for AI and machine learning. Python, on the other hand, has a vast ecosystem of libraries like TensorFlow and PyTorch. The choice depends on your preferences and project requirements.

You can find support, discussion forums, and a community of MATLAB users on the MATLAB website, Matlansolutions forums, and other AI-related online communities. Remember that MATLAB's capabilities in AI and machine learning continue to evolve, so staying updated with the latest features and resources is essential for effective AI development using MATLAB.

Without any hesitation the answer to this question is NO. The service we offer is 100% legal, legitimate and won't make you a cheater. Read and discover exactly what an essay writing service is and how when used correctly, is a valuable teaching aid and no more akin to cheating than a tutor's 'model essay' or the many published essay guides available from your local book shop. You should use the work as a reference and should not hand over the exact copy of it.

Matlabsolutions.com provides guaranteed satisfaction with a commitment to complete the work within time. Combined with our meticulous work ethics and extensive domain experience, We are the ideal partner for all your homework/assignment needs. We pledge to provide 24*7 support to dissolve all your academic doubts. We are composed of 300+ esteemed Matlab and other experts who have been empanelled after extensive research and quality check.

Matlabsolutions.com provides undivided attention to each Matlab assignment order with a methodical approach to solution. Our network span is not restricted to US, UK and Australia rather extends to countries like Singapore, Canada and UAE. Our Matlab assignment help services include Image Processing Assignments, Electrical Engineering Assignments, Matlab homework help, Matlab Research Paper help, Matlab Simulink help. Get your work done at the best price in industry.