All SD cards are formatted with “Disk Utility” on the Mac OS, using GPT partitions. Make one partition, use the FAT filesystem, and apply. This actually creates two partitions, a small (200MB) EFI partition (say /dev/sdb1) and the requested FAT partition (say /dev/sdb2).

To enter the EFI boot menu on Macintosh hardware, hold down the option key at boot.

The generated SD card may work as-is on newer Mac Pro models when connected to the machine via a USB SD card reader inserted into the front panel USB interface on the machine. However, to boot Mac Airs, one must put the generated SD card into the SD card slot, not via USB.

OS:

Use unetbootin to create a 14.04 Netinstall x86_64 boot disk on any SD flash card >= 8GB. Insert it in the SD slot on a macbook Air, plug in another mSD/SD card via USB and install onto it. Both netinstall and the mac version of the live cd have some issues with putting GRUB on the MBR. On what partition should GRUB be installed such that the SD card that is used for the installation can actually be booted? Open question….

Use the updated Fedora 20 livecd from the respins to make a bootable live SD disk. Use the –efi command to make it bootable on EFI systems. Like so:

The performance of such algorithms as Classifier::detectMultiScale and opencv_traincascade can be optimized via the installation of additional packages, and then enabling them when rebuilding OpenCV with various build flags.

Looking through the opencv.spec SRPM file, various enable flags are provided for configuration tweaking and tuning purposes when rebuilding with rpmbuild.

The most relevant for optimization:

--with eigen3
--with sse3

The most relevant for extending capabilities:

--with ffmpeg
--with openni

The default package can be rebuilt with these optimizations using syntax like:

However, even when using these flags on f20, the output provided by cmake at configuration time as per doesn’t enthuse. So, rebuild upstream sources without RPM to master the package configuration, and then bring this knowledge back into the RPM package. Old school, yo.

Looking at the upstream source repository, and then rebasing the f20 sources to the latest release of OpenCV (2.4.9) starts off the SRPM hacking. To get a cmake build going, build the opencv sources as specified in the link, to get dependency tracking working.

To enable WITH_IPP, more elaborate configuration is required. First, install Intel Performance Primitives (aka IPP). From the User’s Guide: Note that opencv_traincascade application can use TBB for multi-threading. To use it in multicore mode OpenCV must be built with TBB.

After IPP is installed, the system must be configured to use it easily. To fixup PATHs, pick one of two options.

One: add the following to LD_LIBRARY_PATH and LD_RUN_PATH:

/opt/intel/ipp/lib/intel64:/opt/intel/lib/intel64/

Two: edit /etc/ldso.conf.d and add

tbb.conf
/opt/intel/lib/intel64
ipp.conf
/opt/intel/ipp/lib/intel64

Furthermore, for OpenCV configuration to find the installed IPP at SRPM build time, the environment variable IPPROOT must be set, as follows:

setenv IPPROOT /opt/intel/ipp

Build SRPM

Build the modified opencv package with the following custom SPEC file. No configuration options are necessary: WITH_IPP, WITH_TBB, WITH_EIGEN are all enabled.

This chugs for a bit, and then on restart the screen may go black or appear hung on firstboot for
some time before booting into a desktop splash screen. One may need to wait for as long as 45 minutes here, so be chill. Grab a cocktail or go to lunch.

For the mac, you’ll need to create the usual EFI boot disk (netinst and use –efi in iso-usb-to-disk).

Get FaceTracker library. See video explaining it. Get ofxFaceTracker addon for openframeworks.

Things that Don’t Work:

bluetooth broken or missing when using MATE desktop. Frankly, bluetooth in *any* desktop is pretty flaky on current linux, but when using MATE it’s missing. This is a known issue with the bluez-libs upgrade to the 5.x version. In ye old days of previous Fedora’s, one could download the srpm for bluetooth-mate and rebuild it, solving everything. This approach doesn’t work with f20, and the suggestion to install bluedevil requires the invocation of the following as root to connect to the previously paired keyboard.

bluedevil-wizard

And then selecting the bluetooth device in the GUI and explicitly connecting.