Virtual Camera
Danh from United States  [79 posts]
15 year

How hard would it be to improve the Virtual Camera so that it can pipe the image to multiple applications? - similiar to the DVdriver below:


I've been using the Virtual Camera to do RoboRealm process along with piping a raw image over to another cam program (this is the Sift interface from Evolution Robotics). However, I need to also pipe the image to other programs such as the face tracker from the OpenCV samples and perhaps even other programs in the future.


Danh from United States  [79 posts] 15 year

I found something for free that allows for multiple programs to access the same web camera simultaneously:


Other than adware it's pretty good. Takes up a lot of CPU cycles when I have 5 programs accessing the same image but I'm surprised that it even works. I've had two copies of roborealm, two OpenCV programs and an Evolution robotics program all accessing the same image. Matlab however crashes hard and blue screens my laptop.

Anonymous 15 year

Wow, you are truely a machine vision power user! I don't think we ever heard of anyone running that much on one machine.

To ease the trouble of running so many apps we've upped the VCam limit to 5 apps so that you should be able to use RR to spread the video stream to the other applications ... just gives you one less app to worry about! If you need more streams just let us know.

See for the new VCam driver. You will need to update the RR VCam driver in the Computer Management interface in the Control Panel .. just repoint it to the newly downloaded RR folder and it should take care of the rest. Let us know if this does not work for you.

Too bad about Matlab. Something strange must be going on in there. Too bad we don't have a copy to play with and see what could be causing that. Based on your error it must be something in the virtual driver that Matlab is calling and causing to crash.

Danh from United States  [79 posts] 15 year
You guys far exceeded my expectations!

I ran the new VCam driver with 5 separate cam applications and it worked well. However, there seems to be some issues with running multiple copies of RoboRealm. The first instance runs fine (using the original WebCam image). The second instance runs fine (using the VCAM image). The third instance however doesn't show an image or it may show a snapshot but not update.

In another experiment the first instance of RoboRealm runs fine. I'll then run an OpenCV app to access the VCAM and it runs fine. However, a 2nd instance of RoboRealm when launched doesn't appear to use the VCAM properly.

Matlab still doesn't run VCAM properly - it still reports the huge image size as the default but that's ok because I'll just access the image through the API. I think I remember reading that the newer versions of Matlab do a better job of getting Webcam images.

In case you're wondering here is my motivation for wanting to run several programs simulataneously while accessing the same image. Note: all of my apps will have some type of simple TCPIP server interface like RoboRealm.

-My first running app will be running the Evolution Robotics object recognition. It will recognize objects trained in a database using the Sift algorithm for identifying common things around the house such as a can of Coke sitting on the counter or in the fridge.

-The second running app will be running the RoboRealm matching routines for detecting the cards in a deck of cards. I will be getting special card decks that have large features that were designed for the seeing impaired. Hopefully, this will make it easier to recognize the cards. If needed, I will use your OCR module when available to help with number recognition. As a start, I want the robot to play a game of "Card Shark". The computer has to recognize some cards and guess whether the next one is higher or lower.

-The third running app will have some type of gesture recognition software

-The 4th app will have some type of facial recognition software for detecting emotion on a person (laughing, sad, happy, etc)

-The 5th app will be a teleoperation app (Skype, etc)

-6th app??? (SLAM, etc)

There will be a main app that will poll all of the running CAM apps for basic information using some common server interface to all the apps. If I run out of CPU power I'll add more motherboards to my bot to spread the processing. I think the PR2 bot from Willow Garage has 4 or 5 computers on board! I'm thinking from 1 to 3 motherboards on my bot.

My approach isn't the most elegant but it's seems pretty simple. If I want more or less features I just control the number of running apps. Also, if an app crashes it won't take down the other apps.

Thanks again for the VCAM changes. I'm sure it won't be hard to fix the minor bug.

Anonymous 15 year

Wow, that's quite a system. Very impressive. Will be fantastic to see all of that put together. We'll try to help out as much as we can as it is a huge task!

The VCam driver was updated already in version which should take care of the issues you mentioned. We tested it on a couple different apps and found most to work well with the exception of one application that also does not work with SplitCam so that might be an interesting exception. (You will have to update the "RoboRealm, Virtual Camera" driver in "Computer Management" again).

Note that we still limited the VCam to 5 connections for now ... but that's not for any specific reason other than if anyone will really use more than 5 connections. I expect that you might be one of the few given the apps you describe above! Let us know if you need more ...

Also one other question ... how many objects are you recognizing with the ER solution? Is it just the plant? Or many other objects? The reason I ask is we were wondering how many objects does a typically application need to recognize. This naturally decides speed of recognition versus correctness.

Danh from United States  [79 posts] 15 year

Thanks for the VCAM change.

I was only recognizing one object with the ER solution. The plant really wasn't an ideal object because it didn't have a lot of features but it was good enough to illustrate the idea.

In terms of the number of objects to detect I have some applications that require from just a couple of objects to a lot of objects.

In one application I want to detect a wall switch so that I can turn lights on/off. In another application I have to detect a microwave, refrigerator &  door so that I can operate them. When I open the refrigerator, I would like to  detect my favorite beverage (this may require multiple images since the soda label could be in any of 360 degree orientation).

Finally, in an application that involve card games I need to detect all of the suites in a deck of cards. I have ordered some special cards for the seeing impaired that have big letters and cheater symbols so I'll let you know what it's like to detect those.

I've been experimenting with detecting the cards in the game UNO and I can tell you that it is a difficult tasks to detect cards that can be in any tilt, rotation, & distance. The Sift algorithm does a pretty good job but it can't distinguish between a 9 card or a 6 card since they look the same if you rotate the cards. I need to use some additional algorithms and that is where RoboRealm will come in. It helps out a lot that I can use VCAM to send the images to multiple applications.

BTW - you can request a demo copy of the Vision Tool from Evolution to get an idea of the image detection.

I appreciate all your efforts. I estimate that it will take me about 4 months to build this bot. I'll be sure to continue passing on any learnings / feature requests to you'll.


Danh from United States  [79 posts] 15 year

I tested the newest version of VCAM in I installed the driver and ran RoboRealm but then non of my applications could connect to VCAM. I found out that if I install the latest VCAM from but then run the RoboRealm interface from that things work as expected. I can run my external apps and multiple version of RoboRealm without any problems. There appears to be some type of VCAM issue with the .23 interface.

wavelet from China  [1 posts] 15 year
beside splitcamera, there are also others virtual camera driver you can make use of.    http://www.manycam.com.  manycam or magic camera. manycam is quite a good one. unfortunately, in matlab its format is 720*480. these two software have its real format as 320*240,  with stabile running capability. For quite a time, it's a misery for me to find a good virtual camera driver for matlab and other directshow supported video-processing software. Wish that could help. I also try to build an own one without success. if you have a better idea, it will be really appreciated to connect me with hawk.feather@163.com

This forum thread has been closed due to inactivity (more than 4 months) or number of replies (more than 50 messages). Please start a New Post and enter a new forum thread with the appropriate title.

 New Post   Forum Index