There's probably pretty good reason this specific bit went open source. The vision tracking community usually tends to make leaps and bounds on open source projects. People will easily be downloading openCV and modifying it in different ways for their home projects. These modifications will then be usefull to darpa.
Considering that the vision tracking isn't a core function of one of their devices they probably aren't as interested in hoarding it. Why not let some other people do the work?
It's worth pointing out that the U.S. Department of Defense, including DARPA, has a long history of using and actively supporting free and open source software. Here's what the CIO of the DoD says if you don't believe me (the last link there is a report I wrote):
Open source licensing is an amazingly effective way to build up communities that enable innovation for everyone, including for example anyone with an iPhone or Android in their pocket. The trick to staying competitive in software, whether in the commercial market or in the military, is not to retreat inside of some tiny shell of "owned" developers only, but using those developers to help you ride at very edge of the wave of fast-moving innovation that emerges when you start letting everyone contribute their small piece to a puzzle that everyone wants solved. I flatly assure you that if open source had been banned rather than embraced by the U.S. Department of Defense ten years ago, the phone you are now carrying would be as dumb as a stump.
I'm glad you pointed that out! It has long been a peculiar point that many just get confused about. Yes, the DoD crowdsources. I've heard many people express concern that their work will go into military technology, though. It is a legitimate concern and I really don't know what to tell them when they bring it up.
I've interacted in the past with a number of those communities that are leary of DoD work, and our approach has always been to be very respectful of their views. Truly free and open source software is available to everyone globally, and it's important to keep in mind both when creating it and when using it that it's not just defense groups that could use it in ways you might not agree to personally. Also, unlike the U.S. DoD, some of those other groups could care less what you think about how your software gets used.
For just such reasons I'm a strong advocate in both commercial and military software of the pyramid model: Use open source for your broad base of infrastructure (exactly as is done in iPhones and Androids), but keep the much smaller set of truly key algorithms or software that you either value or don't want spread about either under proprietary license or not distributed at all (again, exactly as in iPhones and Androids, with iPhones keeping that chunk a lot larger).
Using the pyramid model keeps you from wasting very costly human-based programming and verification resources mostly to maintain some enormous Windows-scale code base that doesn't really provide you with anything unique. Instead, it lets you focus your best people on solving hard problems that will make your product truly unique. They will be happier, and you will make more money.
Keeping key parts to yourself also enables you to keep your parts of the software from being used in ways you may not desire, such as military applications. (And don't forget those other global players who will be a lot less nice about respecting your desires for how your software is used.)