Chief Delphi

Chief Delphi (http://www.chiefdelphi.com/forums/index.php)
-   Programming (http://www.chiefdelphi.com/forums/forumdisplay.php?f=51)
-   -   USB MS Lifecam HD 3000 Exposure Issues (http://www.chiefdelphi.com/forums/showthread.php?t=145829)

EthanJF123 16-03-2016 20:18

USB MS Lifecam HD 3000 Exposure Issues
 
After several weeks of adjusting and playing with calibrations, I have found that the lifecam's exposure seems to be binary. What we are using is a USB MS Lifecam HD 3000 on Labview with NI Vision example code, and we are using a green LED to try to track the target. In the code I am setting the exposure by making it custom.
When I set the exposure to zero, the camera sees a green target and recognizes it properly. However, even when I change the value to one, the camera sees a white target and cannot find the target. I will change the values to go from one to one-hundred, and I cannot see any change. So, is the exposure acting binary, or am I doing something wrong?

TimTheGreat 16-03-2016 20:44

Re: USB MS Lifecam HD 3000 Exposure Issues
 
Quote:

Originally Posted by EthanJF123 (Post 1558528)
After several weeks of adjusting and playing with calibrations, I have found that the lifecam's exposure seems to be binary. What we are using is a USB MS Lifecam HD 3000 on Labview with NI Vision example code, and we are using a green LED to try to track the target. In the code I am setting the exposure by making it custom.
When I set the exposure to zero, the camera sees a green target and recognizes it properly. However, even when I change the value to one, the camera sees a white target and cannot find the target. I will change the values to go from one to one-hundred, and I cannot see any change. So, is the exposure acting binary, or am I doing something wrong?

We had this problem (although the exposure change was going from 5-6). Our solution? Tape a polarized sunglass lens over the camera. Works like a dream.

billbo911 16-03-2016 21:40

Re: USB MS Lifecam HD 3000 Exposure Issues
 
I have found this behavior to be typical for this camera.
Time to get creative!

techhelpbb 16-03-2016 22:19

Re: USB MS Lifecam HD 3000 Exposure Issues
 
I agree: this is a common issue with this camera and the tinted or polarized lens does help.

nickbrickmaster 16-03-2016 22:45

Re: USB MS Lifecam HD 3000 Exposure Issues
 
I've been setting the exposure using the Lifecam software. It's been working well so far.

virtuald 16-03-2016 23:21

Re: USB MS Lifecam HD 3000 Exposure Issues
 
I haven't tried using any of the FRC software to set the exposure, but I noticed that OpenCV has issues setting it as well. I've found that you can install v4l-utils (via opkg), and execute the following command:

Code:

v4l2-ctl -c exposure_auto=1 -c exposure_absolute=10
Works every time.

Cinnamon Toast 17-03-2016 13:53

Re: USB MS Lifecam HD 3000 Exposure Issues
 
I've been having the same problem with some vision I've been running with open cv. Is it possible to integrate that command into the camera capture object? If I could do this in the initiation of my code that would be great. If possible how so?

virtuald 17-03-2016 14:13

Re: USB MS Lifecam HD 3000 Exposure Issues
 
Quote:

Originally Posted by Cinnamon Toast (Post 1558956)
I've been having the same problem with some vision I've been running with open cv. Is it possible to integrate that command into the camera capture object? If I could do this in the initiation of my code that would be great. If possible how so?

Depends on your language, there are multiple ways to run external processes in each language. In python it would be something like:

Code:

import os
...
os.system('v4l2-ctl ... ')

And in C++ it'll probably be something like:

Code:

#include <stdlib.h>
...

system("v4l2-ctl ...");

And in java it'll be something like this:

Code:

Runtime.getRuntime().exec("v4l2-ctl ...");
Obviously, you will want to do error checking, and some languages provide better ways of doing this as well.

teku14 17-03-2016 14:13

Re: USB MS Lifecam HD 3000 Exposure Issues
 
Quote:

Originally Posted by EthanJF123 (Post 1558528)
After several weeks of adjusting and playing with calibrations, I have found that the lifecam's exposure seems to be binary. What we are using is a USB MS Lifecam HD 3000 on Labview with NI Vision example code, and we are using a green LED to try to track the target. In the code I am setting the exposure by making it custom.
When I set the exposure to zero, the camera sees a green target and recognizes it properly. However, even when I change the value to one, the camera sees a white target and cannot find the target. I will change the values to go from one to one-hundred, and I cannot see any change. So, is the exposure acting binary, or am I doing something wrong?

hey i know you

TheOtherGuy 17-03-2016 14:15

Re: USB MS Lifecam HD 3000 Exposure Issues
 
Java? http://stackoverflow.com/questions/8...d-line-in-java

C++? http://stackoverflow.com/questions/8...om-a-c-program

Labview? http://digital.ni.com/public.nsf/all...2564C400579DBA

AdamHeard 18-03-2016 00:42

Re: USB MS Lifecam HD 3000 Exposure Issues
 
Anyone find a USB camera you can adjust exposure on?

techhelpbb 18-03-2016 11:33

Re: USB MS Lifecam HD 3000 Exposure Issues
 
A few years ago, when Patrick was a student on FRC11, and doing hard core collection of frames from Video4Linux directly into his own Java code on my Dell Mini 9's with Microsoft USB cameras we discovered an annoying issue that basically abstracts away your ability to control the exposure (auto white balance) via the exposed registers on Linux (Ubuntu 9 Karmic at the time) with the Microsoft USB cameras we had and the newer models are not much different. Keeping in mind you have Linux on the RoboRIO but it is not Ubuntu.

We contacted the package maintainer who was part of the V4L project, which OpenCV draws from and GRIP depends on, but between us we weren't able to expose whatever Microsoft had done with the OmniVision CMOS sensor in the core of their camera. I've been a long time user of OmniVision products which are at the core of some of the best webcams (more than 10 years) and it's clearly something particular with the way this was used or the sensor was configured. I tried to pull in some friends from Microsoft but was not successful. A little transparency would have long ago solved this issue.

We were able get this to work from V4L directly into Java and OpenCV with Logitech cameras. Logitech has been pretty forthcoming with the Linux community for a long time (considering how many Logitech 3 button mice I used to buy for X-terminals where the middle button was a tricky matter).

This issue, by the way, is the reason I provided FRC11 the Logitech C920 USB cameras and why I recommended to several people on ChiefDelphi the Logitech cameras.

Take those same Microsoft branded cameras and put them on a Windows laptop and you'll see the issue is much less a problem. The Windows drivers do something to the camera configuration that expands the response. I did consider, at one time, reversing the camera communications with my logic analyzer but, to be honest, the camera is too cheap to waste that kind of energy.

Normally I don't expose this kind of interaction but this topic has been respectful so please continue to be polite so I don't regret pointing out the likely problem.

ahartnet 18-03-2016 14:25

Re: USB MS Lifecam HD 3000 Exposure Issues
 
Please see the thread here: http://www.chiefdelphi.com/forums/sh...d.php?t=142633 (or other posts by robert1356).

Basically, you are not doing anything wrong, there's a problem in the USBCamera class that prevents it from working correctly. You might be able to copy and modify the existing class, but it sends a value between 0-100 when it should be something much greater.

techhelpbb 18-03-2016 15:22

Re: USB MS Lifecam HD 3000 Exposure Issues
 
I don't know if this works on a RoboRIO, but this does work on other Linux distributions:

http://www.techytalk.info/webcam-set...ng-system-cli/

This is a way to get V4L to tell you the range it thinks it can set for a value to the camera.
If V4L gives you the wrong range - then I am not at all surprised everything else would as well.

One way to test, if this can't be built or compiled on the RoboRIO, is to put the camera on a similar enough Linux distribution on a PC or more open embedded system and try it. I may try this, this weekend, on my Intel Edison or ODroid XU4 or Raspberry Pi 2 with Yocto. I just want to see what range V4L thinks is available at the bottom of the stack. The RoboRIO might not be identical.

billbo911 18-03-2016 15:46

Re: USB MS Lifecam HD 3000 Exposure Issues
 
Because of this thread, and because I had some time to kill, I pulled out my RPi 2 and tried a few tests to see what I could figure out for the LifeCam HD-3000 and adjusting exposure.

The first step was to see if
Code:

V4l2-ctl -L
would list out a setting for exposure. Sure enough it does. You can set it to manual or Aperture Priority mode (auto).
When in manual mode, you need to set the exposure value with exposure_absolute. The range of values it reports as acceptable are: min=5, max=20000.

In testing I found that it still had what amounted to a binary response to inputs while in manual. Any value above 5 resulted in over exposure. 5 resulted in under exposure. It didn't matter if I used anything from 6 to 20000, it was over exposed. 5 resulted in under exposure.

So now the next test is, can we set it to an exposure_absolute=5 and have a bright enough light shine on the target to get acceptable tracking of the target? (Enter the 3 X 3w LED ring).:cool:


All times are GMT -5. The time now is 03:08.

Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi