## 3 Results  
The bright field images were taken in a CUBE (Meadowlark Optics, Frederick, CO, USA) holographic optical tweezers (HOT) platform. The platform consisted of an IPG Photonics Nd-YAG fiber optic 5 W infra-red laser with wavelength of 1064 nm (Oxford, MA, USA), an ASI Controls workstage (San Ramon, CA, USA), and a proprietary \(512\times 512\) spatial light modulator (Meadowlark Optics, Frederick, CO, USA) with a phase mask generation software running on a desktop computer. The microscope objective was an oil-immersion Olympus 40x/1.35 numerical aperture (NA) lens (Center Valley, PA, USA). The OT system was equipped with a high speed 300 frames per second GigE Vision camera (Teledyne DALSA, Waterloo, ON, Canada) to capture the endothelial cell and clustered bead images, albeit under different illumination conditions. A different \(\mu\)Eye camera (IDS, Inc., Cambridge, MA, USA) was used to record the _Dictyostelium discoideum_ (dicty) cell images using a Nikon Plan Apo 60x/1.4 NA (Melville, NY, USA) oil-immersion objective. The sequence \(I^{iw}(x,y)\) contained 1000 images of resolution \(1024\times 600\) from time-lapse experiments performed with silica beads and ditty cells in water. Both \(I^{sw}(x,y)\) and \(I^{sm}(x,y)\) included 500 images of resolution \(640\times 480\) from separate experiments carried out with silica beads and human umbilical vein endothelial cells (HUVECs) in water and Matrigel, respectively. The sequence \(I^{cm}(x,y)\) was comprised of 24 microscopy images of clustered silica beads in Matrigel, which were then split into 2000 sub images. The silica beads always had nominal diameters of 5.0 \(\upmu\)m.  
The entire microscale object perception method was run on an Intel core i5 processor (Hillsboro, OR, USA) with 2.3 GHz clock speed and 8 GB RAM. The convolutional neural net (CNN) was, however, trained on an Intel i7 7700k 4.2 GHz Quad-Core processor with the help of an NVIDIA GTX 1080 GPU (Santa Clara, CA, USA) and 16 GB of RAM. It was built using the Keras library [48]. Python 2.7.10 with an OpenCV 3.0.0 library was used for initial prototyping purposes. The final method was implemented using C++ in Visual Studio 2013 integrated development environment (IDE) (Microsoft Corporation, Redmond, WA, USA) to support direct interfacing with the HOT hardware system. To train the CNN, we needed both positive and negative training samples. All the training samples were centered around the pixels of interest, which were either labeled as positive corresponding to bead centers or negative corresponding to non-bead centers. The convolution system automatically learned the features to classify the pixels. Partial beads in the middle of the original images were treated as negative samples since they would appear as full beads in some sub images. Beads on the edges of the original images were classified as positive. Figure 17 and Figure 18 show examples of positively and negatively labeled samples, respectively. The labeled data set was then split into independent training and testing data. Figure 17: Examples of positive training samples for the convolutional neural network. We chose a minimum area of 90 pixels square and a minimum circularity of 0.85 for the blob detection step. In the CLAHE algorithm, a grid size of \(4\times 4\) and a clip limit of 2.2 were used, where the clip limit specified a contrast enhancement threshold with higher values resulting in more contrast. For the Canny edge detector, in the case of the dicty cells, lower and higher thresholds were chosen to be 0.66 and 1.33 times the median grayscale value of the images, respectively. In the case of the HUVECs, corresponding threshold values were 1.23 and 1.96 times the median grayscale image values, respectively, regardless of the medium type. For the dilation and erosion steps, a square kernel of size \(14\times 14\) was used for the dicty cells, and a square kernel of size \(6\times 6\) was used for the HUVECs.