{'fraction_non_alphanumeric': 0.030416005315418406, 'fraction_numerical': 0.01319626444206563, 'mean_word_length': 4.900359359686377, 'pattern_counts': {'":': 0, '<': 1, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 10, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Camera Based Optical Communications, Localization, Navigation, and Motion Capture: A Survey

Recently, a camera or an image sensor receiver based optical wireless communications (OWC) techniques have attracted particular interest in areas such as the internet of things, indoor localization, motion capture, and intelligent transportation systems. As a supplementary technique of high-speed OWC based on photo-detectors, communications hinging on image sensors as receivers do not need much modification to the current infrastructure, such that the implementation complexity and cost are quite low. Therefore, in this paper, we present a comprehensive survey of optical camera communication (OCC) techniques, and their use in localization, navigation, and motion capture. This survey is distinguishable from the existing reviews on this topic by covering multiple aspects of OCC and its various applications. The first part of the paper focuses on the standardization, channel characterization, modulation, coding, and synchronization of OCC systems while the second part of the article presents the literature on OCC based localization, navigation, and motion capture. Finally, in the last part of the paper, we present the challenges and future research directions of OCC.


I. INTRODUCTION
The demand for mobile data communications is overgrowing with the pervasive connectivity of the Internet of Things (IoT) and the growth of digital services such as social media and video contents. According to the latest forecast report of Ericsson, it is expected that the total mobile traffic will rise with annual growth rate of 42% [1]. In 2023, monthly global mobile data traffic will surpass 100 exaBytes (EB) [1]. To satisfy this exponentially increasing demand, either increasing the bandwidth or improving the spectral efficiency should be utilized. However, the increase in spectral efficiency is slow and is unable to meet this insatiable demand. Exploiting new spectrum becomes a unique solution, and a much wider spectrum bandwidth of terahertz (THz) is in demand. Under such circumstances, optical wireless communications (OWC) have attracted great research interest in recent years due to its many desirable properties, including a large amount of available spectrum (from 350 nm to 1550 nm), high energy-efficiency, independent regulation, and well-controlled communication security [2]- [4].
Hence, OWC appeared as an alternative and a complementary option to the existing radio frequency (RF) communications. OWC covers the ultraviolet (UV), infrared (IR) and visible bands. Based on the utilization of the spectrum, current research on terrestrial OWC can be divided into four categories: free space optical (FSO) communications, visible light communications (VLC), light-fidelity (Li-Fi), and optical camera communications (OCC) [5]. FSO communication systems consist of a laser diode (LD) transmitter and a photodiode (PD) receiver. It typically relies on UV or visible bands, offers high rate transmission in a long distance, and can be used for a backhaul of communication networks. However, FSO communications need a strict alignment, and consequently, their cost at transceivers is high. VLC hinging on visible bands is an LD or light emitting diode (LED) transmitter and PD receiver-based medium-range communication technology. VLC is capable of offering high data rate within a range of tens of meters but does not consider multiple user access. Different from VLC, Li-Fi is an LED transmitter based light networking technology that involves multiple user access, bidirectional communications, multi-cell handover, etc. The emerging Li-Fi supports mobile communications, enables seamless access and can offer a speed of megabits per second (Mbps). However, all the receivers of FSO, VLC, and Li-Fi technologies consist of PDs, which rarely exists in current receiver devices and the commercialization cost to change the receiver structure is high. Therefore, developing a practical OWC system to harness its immediate benefits using commercial off-the-shelf devices is still an open issue [6]. This motivates the concept of OCC. The different characteristics and limitations of OCC and VLC are presented in Table I. OCC is a communication technology that utilizes optical image sensors as receivers based on IR or visible bands, and thus it is also referred to as image sensor communications [7], [8]. Compared to other types of OWC technologies, OCC has many advantages. First, it does not need any modification on the receiver where current off-the-the-shelf smartphones, digital cameras, rear vehicle cameras, and surveillance cameras are all possible receiver candidates. Thus, OCC can facilitate a large body of applications. Second, the receivers of OCC are based on millions of pixels, and these pixels provide large degrees of freedom (DoFs) to transmit data and to handle the access of a massive number of users. Third, the image sensors of current cameras can usually deal with three colors which enable the transmission over the color domain. Owing to these advantages in cost, popularity, and information carrying capability, OCC has attracted much interest in areas such as IoT, indoor localization, motion capture, and intelligent transportation systems (ITS). However, OCC has its limitations which include but not limited to low data rate due to the low sampling rate at the receiver, out-of-focus effect, unstable frame rate, and random block. The research community on OCC has proposed different solutions to overcome the above limitations. Therefore, the central theme of this survey is to introduce the novice readers about various limitations of OCC and their solutions. Furthermore, we provide technical details of OCC such as channel modeling, modulation, coding, and synchronization. Also, we survey the literature on localization and motion capture systems developed based on OCC. Besides, challenges and future research directions for OCC are provided.

A. Related Surveys
The increasing demands of OCC applications lead to the publications of a few brief surveys on modulation and coding techniques for OCC. Most of the existing surveys on OCC have been focusing on modulation techniques. For example, in [9], the history, modulation technique, advantages, and limitations of OCC are briefly introduced. Furthermore, the paper is focused on addressing the weaknesses of OCC such as camera sampling rates, frame rate variations, and motion stabilization. Similarly, in [10], Saha et al presented a survey focusing on the vital technology consideration in IEEE 802.15.7r1 task group for OCC systems. In [11], the authors have presented a  [5] which also include possible architectures and applications of OCC. The latest survey works dedicated to OCC was presented in [12]- [14]. In [12], the authors reviewed OCC proposals of IEEE 802.15.7m task group, showed the essential technical consideration of the OCC specifications, and discussed the future research directions. A similar approach was followed in [13] where the authors have presented the design and implementations issues of OCC. Furthermore, the authors in [14], have reviewed different modulation techniques and discussed the specialized frame structures for each modulation technique. Comparison between all of the surveys mentioned above is presented in Table II. In this survey, we cover the existing literature on OCC, including the standardization, channel characterization, modulation, coding, synchronization, localization, navigation, and motion capture. We believe that including all these aspects of OCC into a survey form makes our work a unique contribution to the OCC, localization, motion capture research communities.

B. Survey Organization
The survey is organized as illustrated in Fig. 1. Section II presents the overview, history, and standardization of OCC. Section III provides a comprehensive taxonomy on OCC technologies including modulation and coding techniques, system synchronization techniques, detection methods, and medium access control (MAC) protocols. Section IV and V presents the literature on localization, navigation, and motion capture by using OCC respectively. In Section VI, we articulate the challenges and future research directions related to OCC. Finally, Section VIII concludes the paper.

II. BRIEF OVERVIEW AND STANDARDIZATION OF OCC
In this section we provide an overview on the development of OCC system in chronological order. Furthermore, various standardization activities for OCC are presented.

A. Overview
Recently, OCC has emerged as a new technology for the existing VLC systems. The comparison of OCC and VLC is presented in Table I where both the systems have their pros and cons. However, the advantages of low cost and large transmission range make OCC unique in the OWC family. The history of OCC dates back to 2001 when Leibowitz et al firstly presented FSO communications with the camera as a receiver [15]. Since the past decade, a lot of research has been done on OCC to improve the data rate, increase the transmission range, and to develop the efficient design and implementation schemes. The standardization group IEEE 802.15.7 was found in 2011 to provide a specification for the physical (PHY) and medium access control (MAC) layers for VLC which lead to the standardization of IEEE 802.15.7m for OCC.
As a standalone technique, OCC can be divided into three categories as illustrated in Fig. 2. The first category is single LED as a transmitter and camera as a receiver (LED2C), the second category consists of the LED array as a transmitter and camera as a receiver (LEDA2C) which is also referred to as visual MIMO [16]. The third category consists of a screen as a transmitter and camera as a receiver (S2C) [17].
Based on the above classification, the possible candidates for a transmitter in OCC systems are LEDs, Television screens, projector screens, monitor screens, traffic lights, and the car lights (Fig. 3). The light from all these different sources passes through the wireless channel and arrives at the lens of the receiver. Afterward, the light passes through the shutter which controls the exposure of the image sensor/camera. There exist two different types of the shutter, the global and rolling shutters. The global shutter controls the image sensors simultaneously, while the rolling shutter controls the image sensors to expose row by row [13]. An image of the source captured is generated at the image plane of the camera which can further be processed using image processing techniques to extract the data required for various applications. At the image sensors, the light is transformed to be electronic signal and quantized to be an image and compressed to a specific image format. By image processing and data extraction schemes, the information carried by space/time/color domain of the light can be decoded for localization and navigation. The variation of the light channel can be used for motion recognition. Even though the data rate is very limited due to the limited frame rate, it can convey some location-aware information at a low speed, and can also perform secure near field communication.

B. Standardization
The IEEE standards which cover the optical spectrum are IEEE 802.15.7-2011 (VLC), IEEE.802.15.7m (OCC), and IEEE 802.15.13 (Li-Fi). The standard of IEEE 802.15.7-2011 is well established for VLC systems. The release of a standard for VLC leads the researchers to investigate OCC which also complements the existing RF technologies and does not interfere with it. Therefore, it was required to develop a task group to come up with the standardization of OCC which includes the OCC transceivers, system architecture, PHY and MAC layers specification. A task group called TG7m was founded in 2014 to develop the technical requirements of OCC, and it is expected that the standardization of IEEE.802.15.7m will be completed by the end of 2018. Latest updates on the standardization of OCC are available in [18]. Currently, there are eight different standards for PHY layer modes proposed for OCC while the MAC layer is still under discussion. Each PHY layer mode is defined based on a different modulation scheme. The MAC layer of OCC is supposed to support the MAC layer modes of VLC, i.e., unidirectional data transfer, identification (ID) broadcast, and bidirectional data transfer. For example, the authors in [19] suggested the use ID broadcasting mode for OCC. The interested readers are referred to [8] for standardization of OCC and achievements of TG7m. By using the existing or minimally modified hardware, OCC will facilitate the development of interoperable and economically attractive products/solutions for a broad range of applications such as indoor positioning and navigation, augmented reality, and IoT applications.
III. OPTICAL CAMERA COMMUNICATIONS Optical camera communications have recently got much attention due to the phenomenal technology advancements in smart devices. To date, several prototypes based on OCC are developed. However, it has not been deployed commercially yet. In this section, we cover physical layer aspects of OCC which include channel modeling, modulation, and coding.

A. Channel Modeling
Generally, intensity modulated direct detection (IM/DD) scheme is used for OCC where the information signal modulates the light intensity for the transmission. The information signal is non-negative and is proportional to the intensity of the light. On the receiver side, a pixel is used as a basic unit for the power detection which represents the photon count rate at the receiver area. The received signal is affected by multiple phenomena such as scattering and different types of noise. The photons arrival rate at the receiver is a random process which is modeled by the Poisson distribution [20]. The intensity of the received signal is given as where h is the channel gain, X is the transmitted signal, and N b is the background noise intensity. In ideal case h = 1 and N b = N s + N p + N r , where N s is the shot noise for photons and dark current, N p is the noise due to non-uniform photoresponse in pixel output, and N r is the read noise which is a collection of noise independent of the signal. Then, the received signal in electrical form can be written as where Z b represents the background noise in electrical form. The signal to noise ratio (SNR) of the received signal is written as where E{X 2 } = (I p t) 2 and σ 2 b = σ 2 s + σ 2 p + σ 2 r is the variance of the background noise. t is the integration time in which I p number of photons are aggregated by each pixel. The variance of shot noise is given by where q is the quantization step, I b is the induced current due to background radiation, and I d is the dark current. Similarly, the variance of N p is given as where κ is the factor value for photo response non-uniformity. The read noise N r consists of an analog to digital conversion noise (AN), reset noise (RN), and source follower noise (SN) and therefore has variance given as Putting the values of σ 2 s , σ 2 p , and σ 2 r in (3) yields the SNR for OCC which depends on the pixel area, photo-current, integration time, and different types of noise. Moreover, the SNR can be improved by leveraging the spatial diversity (mapping of a single transmitter by combining multiple pixels into a block). In [16], the authors have taken the advantage of spatial diversity by using visual MIMO to improve the SNR, given as where k represents the LED's parameters such as irradiance angle, optical gain, the field of view, and Lambertian radiation pattern. P t represents the transmission power of a single LED, d is the distance between the LED and the camera, e is the electron charge density, R is the camera responsitivity, P n is the power of background light, W is the sampling rate of camera, f is the focal length of the camera, l is the diameter of LED, s is the edge length of a pixel, and d c = f l s is the critical distance at which the LED generates an image which falls onto a single pixel. It is clear from (7) that when d < d c there is a gain of the order of d 2 in the SNR of the camera receiver as compared to a single photo-diode receiver. In case of d ≥ d c there is no such gain in the SNR and is equal to the case of a single photo-diode receiver.
Based on the SNR calculation in (7), the capacity of OCC is given by Shannon formula in [16] as where W s is the spatial bandwidth, which is equivalent to the number of orthogonal or parallel channels. Based on the above formula, in [16] Ashok et al has analyzed the exact channel capacity of S2C communications where the results have indicated that there is a room for at least 2.5 times improvement in the throughput of the existing S2C prototypes.

B. Modulation Techniques
There are numerous modulation techniques developed for OCC, to name a few, twinkled variable pulse position modulation (VPPM), spatial 2-phase shift keying (S2-PSK), and pulse width modulation (PWM). However, the main obstacle for all of the OCC based modulation techniques is flickering. The existing flicker-free modulation techniques are limited by serving a camera at a short distance. The modulation techniques for OCC can be classified into the following two categories (see Fig. 4) based on the IEEE standardization: 1) IEEE Standardized Techniques: One of the most widely used modulation techniques for OCC is under-sampled frequency shift on-off keying which was first proposed by Intel [21]- [23]. It employs two different high frequencies to simultaneously modulate data and avoid flicking at the transmitter while the receivers do the sampling in a low frame rate. Similarly, Intel has also developed twinkled VPPM for OCC where the modulated signals consist of two signaling sources, i.e., a high and a low frame rate source. The low frame rate camera is used to locate the twinkle LEDs, which modulate the data while the high frame rate camera is adopted for variable pulse position modulated data. The duty cycle is variable in the low frame rate to generate the fickle amplitude and the position to modulate the high-rate data. Another wellknown standardized under-sampling modulation technique for OCC is S2-PSK which uses a spatial modulation scheme [24]. A randomly sampled image can be fully demodulated by using S2-PSK due to the separation between the cameras. S2-PSK can demodulate randomly sampled images which allow it to be used for variable frame rate cameras. Recently, several other hybrid modulation schemes have been standardized which include but not limited to pulse width modulation/pulse position modulation (PWM/PPM) [25], [26], camera multiple frequency shift keying (CM-FSK) [27]- [29], camera on-off keying (C-OOK) [30], rolling shutter frequency shift keying (RS-FSK) [30], asynchronous quick link (A-QL) [31], hidden asynchronous quick link (HA-QL) [31], and variable transparent amplitude shape code (VTASC) [31].
2) Non-Standardized Techniques: In this section, we highlight numerous modulation schemes for OCC which are not standardized yet. In [32], a RGB color coding based modulation technique has been used to transmit data from an LED display to the camera. The proposed technique in [32] has been tested for the transmission of different size images where the accuracy of the receiving camera decreases with the increase in image size. A flicker-free, 2-PSK modulation technique has been proposed in [33] for vehicular OCC which can achieve the data rate of 10 bps. Similarly, the authors in [34] have experimentally demonstrated OCC system by using time shift light intensity modulation with the data rate in bits per second. Moreover, the authors in [35] have used a polygon mirror with the image sensor to provide a data rate up to 120 bps. Pulse amplitude modulation (PAM) has been expermentally tested in [36] which was able to achieve the data rate of 100 bps. Further improvement in data rate up to 250 bps has been achieved in [37] and [38] where the authors have proposed under sampled PAM with subcarrier modulation. Correspondingly, to eliminate the phase uncertainity between the transmitter and the camera, a bulit-in gamma correction function has been considered in [37] and [38]. Consequently, in [39], the authors have developed a fast Haar wavelet transform (2D FHWT) in which data has been modulated on different spatial components based on the priority. The lowpriority data was modulated onto the high-frequency components while the high-priority data was modulated on the low-frequency components. The effectiveness of the proposed scheme in [39] has been experimentally tested and verified. Recently, the authors in [40] have demonstrated an undersampled quadrature amplitude modulation (QAM) subcarrier modulation technique for OCC. The proposed modulation technique in [40] was experimentally tested which was able to achieve the data rate of 500 bps for a transmission distance of 1.5 m. Although the achievable distance and data rate of [40] are low, it can be used for location-based services. A color shift keying technique (CSK) has been used in [41] to modulate the date by using different colors. The CSK technique has been tested on different smartphones where the maximum achievable data rate was 5.2 Kbps with symbol error rate less than 10 −3 . To improve the data rate for OCC, the authors in [42] have proposed a color intensity modulation (CIM) technique which achieves the data rate of 95 kbps over a transmission distance of 1.2 m. The authors in [43] have presented a code division multiple access (CDMA) like modulation technique with hierarchical frame structure called InFrame++. InFrame++ is able to embed messages into the video and can achieve the data rate of 360 kbps.
In addition to the trend of improving the data rate and transmission distance, efforts have been made to improve the system design for OCC, e.g., a spatial-angular modulation technique has been developed in [44] by using pixelated MIMO systems to simplify the receiver design. Furthermore, an image sensor with the MIMO technique has been used in [45] to reduce the inter-channel interference between the RGB signals. Additionally, a hybrid modulation scheme of M -FSK and N -PSK has been investigated in [29] where M is for multiple user access, and N is for increasing the data rate. To cope with the background ambient light, the authors in [46] have proposed a hybrid modulation scheme of spread spectrum and differential signaling. The authors in [47] have proposed OCC by using the watermarks embedded in the images. The proposed idea in [47] was tested by using an LCD as a transmitter and webcam as a receiver. A similar screen to camera communication technique (DisCo) has been developed in [48] which is robust to camera rotation, display size, occlusion, distortion, and blurring. The achievable data rate of DisCo was up to 1 kbps. Recently the authors in [49] have developed an OCC system called HYCACO which is based on spatial multiplexing and exploits the non-line of sight optical signals to improve the data rate up to 4.5 kbps. A LEDA2C communication system has been proposed in [50] where near-infrared LEDs were used for transmission. The proposed model in [50] was experimentally tested which has achieved centimeter level localization accuracy and data rate of 6.72 kbps for 100 cm transmission distance. The authors in [51] have proposed a quadrichromatic LED-based OCC to improve both illumination and data rate. Color ratio modulation was used in [51] which was able to achieve the data rate of 13.2 kbps at a distance of 2 cm. To improve the transmission rate and distance of S2C communications, the authors in [52] have used a dual-camera receiver with split shutter method. The experimental results in [52] have shown the achievable data rate of 11.52 kbps with a transmission distance of 2 m.
The information carrying capabilities of OCC is also highly dependent on the type of transmitters and receivers. Based on the camera receiver, including modified and off-the-shelf cameras, the achievable data rate for OCC systems is so diverse where a large body of demonstrations and experiments have been conducted. We have collected the experimental results of the literature and compared them in Table III.

C. Error Detection Coding Schemes
Error detection coding and decoding schemes for OCC has also been of great interest in the research community. In [59], the authors have presented an encoder and decoder for OCC, based on Manchester coding. An alpha channel based encoding technique is used in [76] for a screen to camera communications. The authors in [76] have developed a prototype (HiLight) to demonstrate the efficiency and robustness of the proposed encoding scheme. Similarly, the authors in [81] have proposed an RGB coding technique to improve the transmission rate for OCC. A prototype based on [81] was developed which was able to achieve the data rate of 450 kbps at a transmission distance of 1.5 meters. To further improve the data rate, the authors in [82], [83] have proposed an overlay coding technique in which original signals and inverted signals are transmitted for the long-range data while only original  LEDA2C Reed-Solomon coding -signals are transmitted for the short-range data. The authors in [86] have improved the throughput of OCC by using robust dynamic barcode (RDCode). The RDCode enables a block structure for data packets which consists of error correction mechanisms at each block. Based on the block structure of RDCodes, it provides high-level transmission reliability. An improved color barcode based coding scheme (Rainbar) has been proposed in [72] which allows accurate extraction of code and provides flexible synchronization which is essential for robust localization. A rateless channel coding approach (Soft-Light) has been proposed in [73] which considers the optical channel characteristics and adapts the data rate according to the qualities of the links. The authors in [87] have developed a LEDA2C communication system which uses the Alpha39 code and OOK modulation with the achievable data rate of 2.46 kbps for mobile phone payments. Recently, Manchester coding with OOK modulation has been used in [88] for OCC to achieve the data rate of 4.32 kbps. Reed-Solomon codes were proposed in [90] for LEDA2C communication to detect ultra long IDs of LEDs for improving the localization accuracy and reducing the complexity. Table IV summarizes

Ref.
System design Synchronization [84] LCD to camera Using linear codes [27] LEDA2C Using a common preamble [41] LEDA2C Using error correction codes [91] LEDA2C Not required [92] LED2C Using time of arrival measurements [93] [94] LEDA2C Using the standard deviation of light intensity the characteristics of different coding schemes for OCC.

D. Synchronization
Synchronization is an important issue for seamless communication between the transmitter and the receiver. In the case of OCC systems, the transmitter and receiver have different characteristics (LEDs have high data rate while the cameras have a low frame rate) which make the synchronization more challenging. In [84], the authors have proposed a synchronization method for LCDs and smartphone camera for OCC communication. A frame generator called LightSync was used for the LCD which modifies the original frames by adopting a linear code. The authors in [84] were able to recover the lost frames and synchronize the LCD to the smartphone camera. The authors in [27] proposed to simultaneously transmit a common preamble for the data packet to achieve synchronization. In their proposed synchronization scheme, they have shown that periodically transmitting the packets allows synchronization between the receiver and the infrastructure. The effect of synchronization between the transmitter and the receiver has been studied in the form of inter-frame packet loss for LEDA2C communication where an error correction coding scheme was proposed to solve this problem [41]. Recently, a flexible synchronization method of OCC systems has been proposed in [91] which does not require synchronization between the LEDs and the receiving camera. Moreover, the authors in [92] have used the smartphone microphones and camera to receive the acoustic signals and to synchronize time respectively. The transmitter in [92] consists of loudspeakers and an LED. Recently, the authors in [93] have proposed a synchronization method for the LEDA2C communication system which ensures effective synchronization to maintain the color uniformity for even a camera with the frame rate of 30 frames per second. The authors have further improved the time synchronization method in [94] where color independent characteristics of visual MIMO have been exploited. Table V summarizes the different synchronization methods developed for OCC.

E. Summary and Insights
In this section, we have covered the physical layer aspects of OCC which include channel characterization, modulation, coding, and synchronization. Two different channel models have been presented for a single LED and LED arrays respectively. The received signal in OCC is affected by different kinds of noise such as shot noise, read noise, and nonuniform photo response noise. Also, the gain of received signal increases in the case of using multiple LEDs for the transmission. Furthermore, different modulation schemes are classified based on the IEEE standardization. The literature on modulation schemes for OCC is rich where the research trend mainly focuses on developing novel modulation techniques to improve the data rate and transmission range. In addition to the modulation techniques, we have surveyed the existing coding schemes developed for OCC. Finally, we have highlighted the synchronization problem of OCC and presented the current synchronization schemes.

IV. LOCALIZATION AND NAVIGATION
Location-based services (LBS) require to develop positioning systems which are able to estimate the user location [95]. The most widely used positioning system in many applications such as navigation, tracking, surveillance, and public safety is global positioning system (GPS). However, in unfriendly environments such as indoor and urban canyons, the signals from the GPS satellites are obstructed which results in limited coverage and inaccurate results [96]. Therefore, a number of indoor positioning systems (IPS) have been developed in the past decade to overcome the limitations of GPS. These IPS are based on different wireless technologies such as radio frequency identification (RFID) [97], [98], Wi-Fi [99], Bluetooth [100], acoustic [101], infrared [102], and Zigbee [103]. Among all these technologies Wi-Fi and Bluetooth based IPS have been predominantly utilized and embedded in the current smart devices.
Recently, research on visible light communication (VLC) has gained much interest in both academia and industry due to the numerous applications of VLC systems [10], [104]- [106]. There are many applications of VLC systems, including, but not limited to, vehicular communication [107], underwater communication [108], [109], and IPS [110]. A number of localization algorithms have been proposed over the past few years for VLC and OCC based IPS [110]- [114]. Experiments on VLC based IPS have shown that it can provide a submeter level accuracy while the accuracy of Wi-Fi and Bluetooth based IPS have an accuracy of (1-7 m) and (2-5 m) respectively [112]. Nevertheless, (Visible light beacon system) developed in [115] can provide millimeter level of accuracy.
In the past few years, a good number of surveys have been published on VLC and VLC based IPS [10], [104]- [106]. For instance, the authors in [3] have studied the characteristics of VLC, medium access techniques, channel properties, system design, and applications of VLC. The literature on IPS by using VLC has been presented in [112]. The authors in [116] have compared the performance of three different VLC based IPS. A comprehensive survey on VLC based IPS have been presented in [113] which classifies the different IPS based on the localization technique used and its accuracy. The VLC based IPS can be broadly classified into PD based systems and OCC based systems as shown in Fig. 5. In this paper, we are mainly focusing on the OCC based IPS. 1) Image Transformations by Using Camera Only: It is one of the most widely used techniques for OCC based IPS where the LED transmits their three-dimensional (3D) position coordinates to the camera [111], [117]- [121]. The camera demodulates the signals from the LEDs and determines the 3D coordinates of the LEDs and itself. Fig. 6 explains the image transformation based IPS by using OCC. In Fig. 6 {x l , y l , z l } represents the local coordinate system of camera while {x i , y i , z i } represents the global coordinates of the i-th LED. The global coordinates and orientation of the camera are denoted by {x g , y g , z g } and {α, β, γ} respectively. The transformation factors T α , T β , T γ for the three-dimensional coordinates are given as follows and The transformation factors T α , T β , T γ are used for the rotation along x-axis, y-axis, and z-axis respectively [122]. In [123] the authors have used a camera with fish eye lens to capture the images from the LED lights and utilized the image processing tools to estimate the global coordinates of the camera. The authors in [123] have experimentally tested their proposed system at Niigeta university, Japan and achieved an accuracy of 10 cm. In [124] the authors have used photogrammetry to map the 3D environment into 2D image. Neural networks were used in [124] to estimate the distance to the LEDs. Recently, in [125] the authors have introduced the OCC-based localization for vehicles where photogrammetry is used to estimate the distance between the vehicles. Although such kind of systems can measure both the location and orientation of the camera but they require complex and costly image processing techniques. Therefore, the authors in [126] have proposed a more fast and accurate OCC based IPS which utilizes the intensity and carrier allocation methods. The authors in [34], [127] have also proposed an image processing based IPS by using two LED transmitters and a receiving camera. However, detection of images from LEDs by using smart phone camera and further processing them for localization is a challenging task because the hardware of smart phones is not designed to support OCC based positioning. Therefore, the authors in [128] have introduced the use of Miller codes to robustly decode the optical signals for OCC-IPS. Recently, the authors in [129], [130] have experimentally evaluated an angle difference of arrival (ADOA) based ranging for OCC-IPS where the authors have claimed an accuracy of 3.20 cm.
2) Image Transformation by Using Camera and Accelerometer: The complexity of the image transformations methods can be reduced by using the accelerometer [118]. Once the accelerometer is calibrated it can provide the coordinates information of the user device along each direction and facilitate to find the orientation angles of the camera. Hence, this approach does not rely fully on the image transformation methods to compute the orientation angles. Once the orientation angles are determined, the location of the user device is estimated by using the image transformation methods. In [131] the authors have proposed OCC based IPS which uses the difference in angle of arrival to compute the orientation angles, however, the authors in [131] assume that the receiver gain profile of the device is known prior which is not practical. Similarly, in [132], [133] the authors have presented an OCC-IPS based on phase difference of the received signals from different transmitters in the line of sight (LoS) condition. However, in the real indoor environment, the received signals may be reflected from different obstacles resulting in noisy ranges which can severely degrade the localization accuracy. Therefore, recently, in [134] the authors have proposed an OCC-IPS which computes the ranges from the accelerometer/gyrometer measurements and light intensity of the transmitters.
3) Image Transformation by Using Image Sensors and Multiple Lenses: The other way to reduce the complexity of geometrical relationships between the transmitter LEDs and the receiver is to use multiple image sensors where a lens is placed in front of each image sensor [135], [136]. The estimated location of the receiver is the midpoint of the line connecting the two lenses. This approach requires at least three non-collinear LEDs and the receiver position is estimated from the position difference of the LEDs. The use of multiple image sensors and lenses can reduce the complexity of the localization method but increases the overall cost of the system. Recently, the authors in [137] have formulated the problem of OCC-IPS as a multi-objective non-convex optimization where the information from image sensor and motion sensor were fused. Singular value decomposition based algorithm was proposed in [137] to fuse the information from the sensors.
4) Image Fingerprinting: The localization methods based on image transformations are overall complex, therefore, in [138] the authors have proposed an OCC-IPS where images were taken at different indoor locations and stored in the database. This approach is similar to the fingerprinting approach used in RF-based indoor localization systems. In image fingerprinting methods, the location of the receiver is estimated by comparing the image taken to the stored images. In recent years, a team of researchers from UC Berkeley led the research on using the database of images for indoor 3D localization. In [139], they have proposed a 3D indoor localization scheme by using the locally referenced images stored in a database. The proposed method in [139] have been tested in a shopping mall with retrieval rate of 94 % for 84 test images. Later on, they have further extended the idea in [140] to reduce the complexity of data acquisition in the image based indoor localization systems by reducing the number of sensors and time complexity. Moreover, the researchers from ETH Zurich have presented an image fingerprnting based localization method which focuses on the 3D reconstruction of handheld devices and smartphones [141]. The localization accuracy of the work presented in [139], [140] have been improved in [142] by using the feature extraction from each image. Additionally, the authors in [142] claims that their proposed approach works well in the presence of corridors. Recently, the authors in [143] have proposed a semi-supervised machine learning method for image fingerprinting based OCC-IPS which takes into account the influence of time and weather on the localization accuracy.
5) Summary and Insights: There are quite a few survey papers on VLC-based IPS, however, OCC-based IPS have not been the focus of those surveys. Therefore, in this section, we have surveyed and classified the literature on OCC-based IPS as shown in Fig. 5. All of the OCC-based IPS require image processing techniques to estimate the location of the user where the images from the LEDs are captured by the camera and further processed to find the location of the user. These image transformation based methods are very complex and thus are not suited for hardware of the smart phones. Therefore, recently, image fingerprinting has been the focus of the research where images captured by the camera are compared to a database of images to estimate the position of the user. Image fingerprinting for OCC-based IPS is relatively less complex and provide better accuracy. In Table VI we present well-known localization systems based on OCC.

V. MOTION CAPTURE
The idea of motion capture was first introduced by Eadweard Muybridge back in 1887 where the movement of birds and animals was studied. The motion of the subject was estimated by taking the photographs at discrete time intervals. Similarly, an experiment (moving light display) was conducted by Johansson in 1973 to visualize the biological motion of different subjects [146]. These experiments lead the research of motion capture which has grown up to support a large number of applications such as clinical studies, surveillance, character recognition, gesture recognition, and computer games.
The analysis of a visual event where the movement of a subject is represented mathematically is known as motion capture. For example, the task of observing the human actions which require movement can be accomplished by putting sensors on the body parts of the human where the movement of the body is estimated from the movement of the sensors. Motion capture has gained much interest recently, and the papers published in this research area has grown exponentially. The existing motion capture systems can be classified into four classes, i.e., acoustical, mechanical, magnetic, and optical systems (see Fig. 7). As this survey is focused on OCC, we will restrict our discussion to the optical systems. The idea of motion capture has recently been brought in as an added service to the VLCs, where the primary functions are communication and illumination [147]. Motion capture schemes are considered to be viable and attractive to control different smart devices. Numerous VLC based motion capture schemes have been developed [147]- [150] for various applications. However, the literature on motion capture schemes for OCC based systems is not rich. In [151] and [152], the authors have evaluated the performance of optical and inertial motion capture systems where the optical system provided better accuracy (sub-millimeter). The optical motion capture system developed in [151] and [152] consists of cameras which emit infrared light and reflective sensors placed on the subject which reflect back the light to the cameras. Indeed, there are a large number of commercial optical motion capture systems developed which are based on the concept of camera transmitting the infrared light and receiving the reflected light (see Fig. 8) [153]- [157]. Although optical motion capture systems based on the reflective technologies provide real time tracking of the movement but their accuracy is less than LEDs based technology. LEDs based active optical motion capture system is developed in [158], where each LED flashes at a particular frequency which makes it easier for tracking. In order to explain the working principle of LEDs based active motion capture, the receiving camera is considered as a pinhole camera where the light enters the camera aperture and is projected onto the image plane as shown in Fig. 9. Consider that p = {x, y, z} is a vector of camera coordinates of the subject, then the point in the image where p projects is given byp = Tp, where T is the projection matrix from real-world subject to the camera image plane. The projection matrix T is calculated based on the focal length f of the camera given as Undoubtedly, T in (6) represents the simplest form of the projection matrix. However, in reality the intrinsic and extrinsic parameters (calibration) is also required. The interested readers are referred to [158]- [160] for calibration of the camera in optical motion capture systems. Nevertheless, optical motion capture systems based on high-resolution cameras can be costly whereas the smart-phones cameras have improved significantly which supports the applications of motion capture. Shivani et al have proposed a smart-phone based motion capture system where they have used an 8 × 8 array of LEDs for the transmission, and a smart-phone camera is used as a receiver [161]. The screen of the smart-phone was divided into four quadrants where the proposed scheme was able to identify three different shapes, a line, L shape, and a circle. The authors have experimentally evaluated the OCC based motion capture system where the accuracy of 96 % is achieved with the data rate of 1216 bps. To further improve the detection and data rate of optical motion capture systems, the authors in [162] have proposed a neural network based Subject Camera Projected image approach. The experimental setup consists of an array of 8 × 8 LEDs as a transmitter and a smart-phone camera as a receiver. The proposed algorithm considers the neurons which were trained with the motion of the subject as well as with the data samples. The proposed scheme was able to detect accurately the shapes of a line, curve, circle, and semicircle and was also able to improve the data rate up to 3.759 kbps. Summary and Insights: In this section, we have briefly introduced the motion capture systems which can be implemented using different technologies. The literature on motion capture systems is rich; however, we have restricted our discussions to the optical motion capture systems. Unlike the traditional reflective systems, in optical motion capture systems, the cameras are responsible for collecting the images of the subject and estimate the movement. Although the optical motion capture systems are more adaptable and provide better accuracy, it requires accurate calibration of the cameras. Additionally, the correspondence in space and time domain is a significant challenge of optical motion capture systems which is still under research.

VI. RESEARCH CHALLENGES AND FUTURE DIRECTIONS
Despite various attractive characteristics of OCC, there are several challenging factors to implement practical OCC systems. In this section, we summarize several research challenges and provide future research directions for OCC.

A. Unified System Model and General Performance Analysis
Since the technical specifications of OCC are not completely standardized, there exists a lot of research on proposing different system architectures with different performance analysis. Therefore, one of the major challenges of OCC is its dependency on the structure of the receivers (cameras), diverse modulation and coding schemes, and different synchronization techniques which cannot be comprehensively compared. Moreover, the current performance analysis criteria in the literature are divergent. Each technique shows its performance where there is no optimality criteria or a performance bound defined to which the results can be compared. Therefore, the research community of OCC is required to develop a unified system model and performance bounds to analyze the performance of different specifications of OCC.

B. Low Frame Rate
The existing commercially available cameras have a low frame rate (around 30 frames per second) which limits to achieve high data rate in OCC. The quality of the received signal and decoding rate are both affected by the frame speed and exposure time of cameras which can be well explained by the fundamental concept of rolling shutter principle. Therefore, the exposure time of the camera should be necessarily small to decode the data efficiently because the long exposure time in cameras results in the problem of partial exposure problem where the contrast between the bright and the dark bands is reduced [84]. Therefore, to improve the data rate of OCC systems, high frame rate cameras need to be developed.

C. Modeling of Ambient Light
Ambient light is one of the primary sources which interfere with OCC. The ambient light modifies the luminance of the received pixels which originate errors in the decoding process and therefore results in an information loss. The ambient light also generates the primary source of noise, i.e., flicker noise which dramatically degrades the performance of the OCC systems. Most of the existing work neglect the effect of ambient light, for example, well known LED2C communication systems such as CeilingTalk system [89] and CamComSim [163] ignore the impact of ambient light. However, neglecting the effect of ambient light is not a practical solution and novel techniques which can eliminate or filter the ambient light from the received signals need to be further examined.

D. Defocusing
Defocusing is one of the significant challenges faced by OCC where the size of the transmitting source and the camera pixels mismatches even if the source is placed at the camera focus. Therefore, such defocusing is inevitable especially with handheld cameras which are not stable and can cause distortion to each pixel. Moreover, defocusing exists in stationary cases as well which distorts the pixels in the form of mixed frames and blur [164]. Although the impact of blur has been well investigated in the area of computer vision yet the subject on the combined effect of defocusing and blur is an open research problem for OCC.

E. Modeling of Signal Dependent Noise
The signal dependent shot noise at the receiver in OCC is modeled as a Poisson process due to the nature of the received optical signal. Also, the shot noise is approximated by the Gaussian model when the received photons are massive in number [20]. In this case, the optical channel is modeled by additive white Gaussian noise (AWGN) consisting of both signal depended noise and signal independent noise [77]. The inclusion of signal dependent noise in OCC systems makes it more challenging as compared to the common AWGN model used in conventional wireless communication systems. Therefore, sophisticated signal processing techniques need to be developed for the transmission and reception of optical signals in OCC systems.

F. Synchronization
As most of the commercially available cameras have low and diverse frame rates and are unstable, therefore, if the frame rates of the transmitter and the receiver mismatches, the problem of synchronization arises [84]. For example, the frame rate of a typical smart-phone camera is 30 frames per second while the conventional LCD has the frame rate of 30-60 frames per second. Similarly, the frame rates of LED and screen-based transmitters varies which results in losing the frames or mixing the frames at the receiver. Therefore, novel synchronization techniques are necessary for the development of OCC systems.

G. Hybrid Systems
The existing LED based communication is considered a significant milestone in the OWC society. In case of LED2C communications, the VLC, Li-Fi and OCC use LED as a transmitter, however the receiver is different in case of OCC (camera). The existing VLC and Li-Fi systems provide high data rate and secure communication but suffers from low SNR and short transmission range [165], [166]. However, OCC can provide long-range communication with high SNR but suffers from low data rate. Therefore, a hybrid system which can support VLC, Li-Fi, and OCC can be good solution to address different applications. However, a mechanism needs to be devised to switch between the various optical wireless technologies.

H. Robust Image Processing Techniques
In OCC systems, the received data is in the shape of images and therefore it requires reliable and robust image processing techniques to extract the useful data. Recently, neural and deep networks have been used to solve the complex problems of image recognition and classification. For example, a neural network based equalizer is used in [167] to reduce the intersymbol interference for VLC systems. Similarly, neural networks have been used in [168] to process images for object detection on the internet of multimedia things (IoMT). As major applications of OCC systems such as localization, navigation, and motion capture depend on image processing tools, therefore sophisticated algorithms need to be devised to improve the performance of all such applications.

I. Medium Access Control
Most of the existing research work on OCC is focusing on physical layer issues such as modulation, coding, and synchronization. However, other layers such as MAC and network layers are still unexplored. The existing OCC systems are based on the MAC layer protocols of VLC; however, unlike VLC, the OCC systems support mainly unidirectional communication which requires a re-examination of the MAC protocols. Novel MAC protocols need to be developed which can address the different challenges of OCC systems such as low frame rate, defocusing, visual MIMO support, and mobility.

J. Blockage
Blockage of the Line-of-Sight link is another critical issue for OCC systems due to the mobility of users or obstruction of objects. The received optical intensity is dramatically reduced in such cases which consequently degrades the performance of OCC systems. Although the authors in [169] have recently attempted to solve this problem, however, they have assumed very short distance (60 cm) between the transmitter and the camera. To the best of author's knowledge, the research on the blockage issue for OCC systems does not exist yet and therefore require attention. The user's random movements can be explicitly tracked by using Kalman filters to predict the blockage. Also, Markov chain can be used to estimate the probability of blockage in LoS conditions.

VII. CONCLUSIONS
In this paper, we presented a broad survey on optical camera based communications, localization, navigation, and motion capture. This survey covers different features of OCC which includes standardization, modulation and coding techniques, localization and navigation by using OCC, and motion capture with OCC. Firstly, the history and standardization of OCC have been presented followed by the literature on channel characterization, modulation techniques, coding schemes, and synchronization mechanisms. Additionally, OCC has been recently used for localization, navigation, and motion capture for various applications and therefore we have covered these aspects. Besides providing the technical details of physical layer characteristics of OCC, we have introduced several challenges and future research directions. In short, this survey helps the novice readers to understand OCC from its inception to the current developments in multiple perspectives. We believe that with the technological advancement and ongoing research, OCC systems have great potential in the near future.