<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE article  PUBLIC "-//NLM//DTD Journal Publishing DTD v3.0 20080202//EN" "http://dtd.nlm.nih.gov/publishing/3.0/journalpublishing3.dtd"><article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" dtd-version="3.0" xml:lang="en" article-type="research article"><front><journal-meta><journal-id journal-id-type="publisher-id">JCC</journal-id><journal-title-group><journal-title>Journal of Computer and Communications</journal-title></journal-title-group><issn pub-type="epub">2327-5219</issn><publisher><publisher-name>Scientific Research Publishing</publisher-name></publisher></journal-meta><article-meta><article-id pub-id-type="doi">10.4236/jcc.2016.44014</article-id><article-id pub-id-type="publisher-id">JCC-65952</article-id><article-categories><subj-group subj-group-type="heading"><subject>Articles</subject></subj-group><subj-group subj-group-type="Discipline-v2"><subject>Computer Science&amp;Communications</subject></subj-group></article-categories><title-group><article-title>
 
 
  A Vision-Based Fingertip-Writing Character Recognition System
 
</article-title></title-group><contrib-group><contrib contrib-type="author" xlink:type="simple"><name name-style="western"><surname>hing-Long</surname><given-names>Shih</given-names></name><xref ref-type="aff" rid="aff1"><sup>1</sup></xref><xref ref-type="corresp" rid="cor1"><sup>*</sup></xref></contrib><contrib contrib-type="author" xlink:type="simple"><name name-style="western"><surname>Wen-Yo</surname><given-names>Lee</given-names></name><xref ref-type="aff" rid="aff2"><sup>2</sup></xref></contrib><contrib contrib-type="author" xlink:type="simple"><name name-style="western"><surname>Yu-Te</surname><given-names>Ku</given-names></name><xref ref-type="aff" rid="aff1"><sup>1</sup></xref></contrib></contrib-group><aff id="aff1"><addr-line>Department of Electrical Engineering, National Taiwan University of Science and Technology, Taiwan</addr-line></aff><aff id="aff2"><addr-line>Department of Computer Network and Technology, Lunghwa University of Science and Technology, Taiwan</addr-line></aff><author-notes><corresp id="cor1">* E-mail:<email>shihcl@mail.ntust.edu.tw(HS)</email>;</corresp></author-notes><pub-date pub-type="epub"><day>18</day><month>03</month><year>2016</year></pub-date><volume>04</volume><issue>04</issue><fpage>160</fpage><lpage>168</lpage><history><date date-type="received"><day>2</day>	<month>March</month>	<year>2016</year></date><date date-type="rev-recd"><day>accepted</day>	<month>2016</month></date><date date-type="accepted"></date></history><permissions><copyright-statement>&#169; Copyright  2014 by authors and Scientific Research Publishing Inc. </copyright-statement><copyright-year>2014</copyright-year><license><license-p>This work is licensed under the Creative Commons Attribution International License (CC BY). http://creativecommons.org/licenses/by/4.0/</license-p></license></permissions><abstract><p>
 
 
  This paper presents a vision-based fingertip-writing character recognition system. The overall system is implemented through a CMOS image camera on a FPGA chip. A blue cover is mounted on the top of a finger to simplify fingertip detection and to enhance recognition accuracy. For each character stroke, 8 sample points (including start and end points) are recorded. 7 tangent angles between consecutive sampled points are also recorded as features. In addition, 3 features angles are extracted: angles of the triangle consisting of the start point, end point and average point of all (8 total) sampled points. According to these key feature angles, a simple template matching K-nearest-neighbor classifier is applied to distinguish each character stroke. Experimental result showed that the system can successfully recognize fingertip-writing character strokes of digits and small lower case letter alphabets with an accuracy of almost 100%. Overall, the proposed finger-tip-writing recognition system provides an easy-to-use and accurate visual character input method.
 
</p></abstract><kwd-group><kwd>Visual Character Recognition</kwd><kwd> Fingertip Detection</kwd><kwd> Template Matching</kwd><kwd>  K-Nearest-Neighbor Classifier</kwd><kwd> FPGA</kwd></kwd-group></article-meta></front><body><sec id="s1"><title>1. Introduction</title><p>As the demand for intelligent vision-based human and computer/machine interfaces continues to grow, more intuitive and cost-efficient alternatives to conventional human-machine interfaces such as mice, keyboards, and touch-screens are required. Examples of such interfaces are vision-based hand gesture recognition system and handwriting recognition systems [<xref ref-type="bibr" rid="scirp.65952-ref1">1</xref>] - [<xref ref-type="bibr" rid="scirp.65952-ref3">3</xref>] . In sign language recognition, hand gestures are interpreted as symbols and words. On-line handwriting recognition systems provide a natural, convenient, and touch-free interface for human-computer interaction. This opens the door to new wireless character-inputting methods. Human fingertip can be used as a pointer input interface in place of a pen or a mouse, making the interaction/interface more user- friendly. A fingertip writing recognition system has applications, such as virtual mouse, signature input device and application selector.</p><p>In general, a visual fingertip/handwriting recognition system consists of 3 modules: visual data acquisition, feature extraction, and handwriting recognition. Based on a user’s body position, 3D trajectories of the human body, arm and/or hand can be reconstructed [<xref ref-type="bibr" rid="scirp.65952-ref4">4</xref>] [<xref ref-type="bibr" rid="scirp.65952-ref5">5</xref>] . An easier way for human hand or fingertip movement detection is based on image segmentation methods, such as skin color segmentation, background subtraction, etc. [<xref ref-type="bibr" rid="scirp.65952-ref6">6</xref>] - [<xref ref-type="bibr" rid="scirp.65952-ref8">8</xref>] . The connecting vectors between sampled points of the trajectory serve as features for the handwriting recognition system. The key-features selected are trajectory points, tangent angles, curvatures, etc. [<xref ref-type="bibr" rid="scirp.65952-ref8">8</xref>] [<xref ref-type="bibr" rid="scirp.65952-ref9">9</xref>] . Commonly used handwriting recognition techniques include template matching, DTW (dynamic time wrap) based KNN classifiers, hidden Markov models (HMM), neural networks, etc. [<xref ref-type="bibr" rid="scirp.65952-ref5">5</xref>] [<xref ref-type="bibr" rid="scirp.65952-ref7">7</xref>] [<xref ref-type="bibr" rid="scirp.65952-ref9">9</xref>] [<xref ref-type="bibr" rid="scirp.65952-ref10">10</xref>] .</p><p>Most earlier handwriting or fingertip-writing character recognition interfaces are built on PC-based systems with image input from USB cameras or Microsoft Kinect RGB-D sensors. This work focuses on an entirely FPGA based implementation with input from a CMOS image sensor. The proposed system achieved recognition accuracy of 100% for digits and lower case alphabets, and it could deal with scaled finger motion. One requirement of the system is that a fingertip blue cover is mounted on the user’s finger and is visible to the camera.</p></sec><sec id="s2"><title>2. Main Approach</title><sec id="s2_1"><title>2.1. System Overview</title><p>The proposed vision-based fingertip-writing character recognition system, as shown in <xref ref-type="fig" rid="fig1">Figure 1</xref>, is built on the Altera DE2-115 FPGA development board. A LCD display with a camera module (VEEK_MT) is connected to the DE2-115. A fingertip blue cover is mounted on the top of the user’s finger in order to simplify fingertip detection and to enhance the recognition accuracy. The main functional modules of this fingertip-writing character visual recognition system, as shown in <xref ref-type="fig" rid="fig2">Figure 2</xref>, consist of (1) fingertip detection, (2) fingertip tracking and recording, (3) character stroke feature angle extraction, and (4) template matching with a KNN classifier.</p></sec><sec id="s2_2"><title>2.2. Character Stroke Feature Angles</title><p>For each fingertip stroke, 9 feature points are extracted. The stroke's starting point is denoted by<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/14-1730334x7.png" xlink:type="simple"/></inline-formula>, and the end point by<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/14-1730334x8.png" xlink:type="simple"/></inline-formula>. Another 6 curve feature points<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/14-1730334x9.png" xlink:type="simple"/></inline-formula>, <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/14-1730334x10.png" xlink:type="simple"/></inline-formula>, are then uniformly sampled along the stroke curve between start to end. The last feature point, <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/14-1730334x11.png" xlink:type="simple"/></inline-formula>, is the average point of the above 8 sampled points,</p><disp-formula id="scirp.65952-formula1285"><label>(1)</label><graphic position="anchor" xlink:href="http://html.scirp.org/file/14-1730334x12.png"  xlink:type="simple"/></disp-formula><p>Each stroke curve is encoded with 10 key feature angles, as shown in <xref ref-type="fig" rid="fig3">Figure 3</xref>. The first seven feature angles, <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/14-1730334x13.png" xlink:type="simple"/></inline-formula>, <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/14-1730334x14.png" xlink:type="simple"/></inline-formula>, are tangent angles of vectors between consecutive sample points,</p><disp-formula id="scirp.65952-formula1286"><label>(2)</label><graphic position="anchor" xlink:href="http://html.scirp.org/file/14-1730334x15.png"  xlink:type="simple"/></disp-formula><fig id="fig1"  position="float"><label><xref ref-type="fig" rid="fig1">Figure 1</xref></label><caption><title> A fingertip writing character recognition system setup</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/14-1730334x16.png"/></fig><fig id="fig2"  position="float"><label><xref ref-type="fig" rid="fig2">Figure 2</xref></label><caption><title> Functional modules of the visual character recognition system: (1) fingertip detection, (2) fingertip tracking and recording, (3) character stroke feature angle extraction, and (4) template matching</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/14-1730334x17.png"/></fig><fig id="fig3"  position="float"><label><xref ref-type="fig" rid="fig3">Figure 3</xref></label><caption><title> Illustration of a character stroke's 10 feature angles</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/14-1730334x18.png"/></fig><p>The function <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/14-1730334x19.png" xlink:type="simple"/></inline-formula> is a four quadrant arctangent function, such that</p><disp-formula id="scirp.65952-formula1287"><label>(3)</label><graphic position="anchor" xlink:href="http://html.scirp.org/file/14-1730334x20.png"  xlink:type="simple"/></disp-formula><p>The last three features angles <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/14-1730334x21.png" xlink:type="simple"/></inline-formula> are angles of the triangle consisting of the start point<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/14-1730334x21.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/14-1730334x22.png" xlink:type="simple"/></inline-formula>, end point <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/14-1730334x21.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/14-1730334x22.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/14-1730334x23.png" xlink:type="simple"/></inline-formula> and average point<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/14-1730334x21.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/14-1730334x22.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/14-1730334x23.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/14-1730334x24.png" xlink:type="simple"/></inline-formula>, and are obtained using the cosine theorem,</p><disp-formula id="scirp.65952-formula1288"><label>(4)</label><graphic position="anchor" xlink:href="http://html.scirp.org/file/14-1730334x25.png"  xlink:type="simple"/></disp-formula><disp-formula id="scirp.65952-formula1289"><label>(5)</label><graphic position="anchor" xlink:href="http://html.scirp.org/file/14-1730334x26.png"  xlink:type="simple"/></disp-formula><p>and</p><disp-formula id="scirp.65952-formula1290"><label>(6)</label><graphic position="anchor" xlink:href="http://html.scirp.org/file/14-1730334x27.png"  xlink:type="simple"/></disp-formula><p>where <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/14-1730334x28.png" xlink:type="simple"/></inline-formula> are edge lengths of the triangle.</p></sec><sec id="s2_3"><title>2.2. Template Matching and Kth-Nearest-Neighbor Classifier</title><p>The proposed character recognition is based on template matching using a K-near-neighbor (KNN) classifier. Feature angles of reference characters (in the template i-th j-th feature angle table) are denoted by<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/14-1730334x29.png" xlink:type="simple"/></inline-formula>, <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/14-1730334x29.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/14-1730334x30.png" xlink:type="simple"/></inline-formula>, <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/14-1730334x29.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/14-1730334x30.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/14-1730334x31.png" xlink:type="simple"/></inline-formula>, where i stand for the i-th character in the alphabet sequence of<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/14-1730334x29.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/14-1730334x30.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/14-1730334x31.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/14-1730334x32.png" xlink:type="simple"/></inline-formula>, as shown in Appendix. The match distance between input stroke, encoded with feature angles<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/14-1730334x29.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/14-1730334x30.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/14-1730334x31.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/14-1730334x32.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/14-1730334x33.png" xlink:type="simple"/></inline-formula>, and each character template i is then computed by</p><disp-formula id="scirp.65952-formula1291"><label>(7)</label><graphic position="anchor" xlink:href="http://html.scirp.org/file/14-1730334x34.png"  xlink:type="simple"/></disp-formula><p>where</p><disp-formula id="scirp.65952-formula1292"><label>(8)</label><graphic position="anchor" xlink:href="http://html.scirp.org/file/14-1730334x35.png"  xlink:type="simple"/></disp-formula><p>Let <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/14-1730334x36.png" xlink:type="simple"/></inline-formula> denote the reference character satisfying<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/14-1730334x36.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/14-1730334x37.png" xlink:type="simple"/></inline-formula>, then the KNN classifier output is</p><disp-formula id="scirp.65952-formula1293"><label>(9)</label><graphic position="anchor" xlink:href="http://html.scirp.org/file/14-1730334x38.png"  xlink:type="simple"/></disp-formula><p>zero stands for an unknown character stroke.</p></sec></sec><sec id="s3"><title>3. Fingertip Detection and Tracking</title><p>The fingertip detection image processing module captures real-time images with a CMOS image sensor, image capture is followed by fingertip detection, character stroke tracking, and feature points recording. <xref ref-type="fig" rid="fig4">Figure 4</xref> shows the functional block diagram of fingertip detection image processing module. The processing pipeline includes color space transformation, histogram equalization, color detection, filtering, object tracking and recording.</p><p>The RGB to YCbCr color transform is defined as</p><disp-formula id="scirp.65952-formula1294"><label>(10)</label><graphic position="anchor" xlink:href="http://html.scirp.org/file/14-1730334x39.png"  xlink:type="simple"/></disp-formula><p>where <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/14-1730334x40.png" xlink:type="simple"/></inline-formula> and<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/14-1730334x40.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/14-1730334x41.png" xlink:type="simple"/></inline-formula>. Color space transform is followed by histogram equalization for the <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/14-1730334x40.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/14-1730334x41.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/14-1730334x42.png" xlink:type="simple"/></inline-formula> component. Let histogram density function of <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/14-1730334x40.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/14-1730334x41.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/14-1730334x42.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/14-1730334x43.png" xlink:type="simple"/></inline-formula> be denoted by</p><disp-formula id="scirp.65952-formula1295"><label>(11)</label><graphic position="anchor" xlink:href="http://html.scirp.org/file/14-1730334x44.png"  xlink:type="simple"/></disp-formula><p>where <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/14-1730334x45.png" xlink:type="simple"/></inline-formula> is the total number of pixels, then the histogram equalization function is</p><fig id="fig4"  position="float"><label><xref ref-type="fig" rid="fig4">Figure 4</xref></label><caption><title> The image processing of fingertip detection and tracking</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/14-1730334x46.png"/></fig><disp-formula id="scirp.65952-formula1296"><label>(12)</label><graphic position="anchor" xlink:href="http://html.scirp.org/file/14-1730334x47.png"  xlink:type="simple"/></disp-formula><p>Then, the fingertip blue-cover color segmentation is performed as</p><disp-formula id="scirp.65952-formula1297"><label>(13)</label><graphic position="anchor" xlink:href="http://html.scirp.org/file/14-1730334x48.png"  xlink:type="simple"/></disp-formula><p>where <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/14-1730334x49.png" xlink:type="simple"/></inline-formula> denotes the <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/14-1730334x49.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/14-1730334x50.png" xlink:type="simple"/></inline-formula> component after histogram equalization. Finally, a rank order filter in a <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/14-1730334x49.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/14-1730334x50.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/14-1730334x51.png" xlink:type="simple"/></inline-formula> window,</p><disp-formula id="scirp.65952-formula1298"><label>(14)</label><graphic position="anchor" xlink:href="http://html.scirp.org/file/14-1730334x52.png"  xlink:type="simple"/></disp-formula><p>is applied twice to generate binary image, where pixels in the <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/14-1730334x53.png" xlink:type="simple"/></inline-formula> window are numbered from 1 to 25 from left to right and then top to bottom, with <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/14-1730334x53.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/14-1730334x54.png" xlink:type="simple"/></inline-formula> being the center pixel. True pixels indicate potential fingertip positions. The detected fingertip position is recoded and tracked at a frequency of 7 times per seconds.</p></sec><sec id="s4"><title>4. FPGA Implementation and Experiment</title><p>The proposed fingertip-writing visual character recognition system is implemented as a dedicated logic circuit on a FPGA chip. Real-time image input is feed to the FPGA chip line by line. Up to 5 rows of a image are stored in line-buffers (FIFO) in a pipelined fashion. The image processing pixel clock is 96 MHz. The raw image data is captured by a color camera with <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/14-1730334x55.png" xlink:type="simple"/></inline-formula> resolution and a frame rate of 7 fps (frames per second). The raw image is converted to a <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/14-1730334x55.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/14-1730334x56.png" xlink:type="simple"/></inline-formula> 24-bit RGB image (by a local neighborhood of every four scanned pixels). <xref ref-type="fig" rid="fig5">Figure 5</xref> shows the image processing pipeline for fingertip detection and tracking.</p><p>Two mathematical functions, arccos(x) and arctan2(y,x), are required when computing a character stroke's feature angles. The arccosine function is implemented using a lookup-table with a resolution of 1.0 degrees. CORDIC algorithm [<xref ref-type="bibr" rid="scirp.65952-ref11">11</xref>] with 12-bit input data is applied to compute tangent angles. <xref ref-type="fig" rid="fig6">Figure 6</xref> shows the pipelined CORDIC design for computing first-quadrant inverse tangent on the FPGA chip. The four-quadrant inverse tangent function can then be obtained from Equation (3). The synthesis results for all character recognition system architectures are shown in <xref ref-type="table" rid="table1">Table 1</xref>. The overall percentages of total FPGA resource are enclosed in parenthesis.</p><fig id="fig5"  position="float"><label><xref ref-type="fig" rid="fig5">Figure 5</xref></label><caption><title> The image processing pipeline of fingertip detection and tracking</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/14-1730334x57.png"/></fig><fig id="fig6"  position="float"><label><xref ref-type="fig" rid="fig6">Figure 6</xref></label><caption><title> Pipelined CORDIC design for computing first quadrant inverse tangent</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/14-1730334x58.png"/></fig><table-wrap-group id="1"><label><xref ref-type="table" rid="table1">Table 1</xref></label><caption><title> Synthesis results and FPGA device utilization</title></caption><table-wrap id="1_1"><table><tbody><thead><tr><th align="center" valign="middle" >Cyclone IV EP4CE115F29</th><th align="center" valign="middle" >Logic elements</th><th align="center" valign="middle" >Registers</th><th align="center" valign="middle" >Memory bits</th></tr></thead><tr><td align="center" valign="middle" >total elements</td><td align="center" valign="middle" >114,480 (bits)</td><td align="center" valign="middle" >114,480 (bits)</td><td align="center" valign="middle" >3,981,312 (bits)</td></tr><tr><td align="center" valign="middle" >used elements</td><td align="center" valign="middle" >43,773 (38%)</td><td align="center" valign="middle" >13,770 (12%)</td><td align="center" valign="middle" >55,804 (2%)</td></tr></tbody></table></table-wrap><table-wrap id="1_2"><table><tbody><thead><tr><th align="center" valign="middle" >Functional module</th><th align="center" valign="middle" >Logic elements</th><th align="center" valign="middle" >Registers</th><th align="center" valign="middle" >Memory bits</th></tr></thead><tr><td align="center" valign="middle" >FPGA used elements</td><td align="center" valign="middle" >43,773 (bits)</td><td align="center" valign="middle" >13,770 (bits)</td><td align="center" valign="middle" >55,804 (bits)</td></tr><tr><td align="center" valign="middle" >RAW to RGB</td><td align="center" valign="middle" >100 (&lt;1%)</td><td align="center" valign="middle" >53 (&lt;1%)</td><td align="center" valign="middle" >19,152 (34%)</td></tr><tr><td align="center" valign="middle" >RGB to YcbCr</td><td align="center" valign="middle" >104 (&lt;1%)</td><td align="center" valign="middle" >53 (&lt;1%)</td><td align="center" valign="middle" >0</td></tr><tr><td align="center" valign="middle" >histogram equalization</td><td align="center" valign="middle" >11,634 (27%)</td><td align="center" valign="middle" >9728 (70%)</td><td align="center" valign="middle" >0</td></tr><tr><td align="center" valign="middle" >blue color detection</td><td align="center" valign="middle" >15 (&lt;1%)</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td></tr><tr><td align="center" valign="middle" >rank order filter 1</td><td align="center" valign="middle" >82 (&lt;1%)</td><td align="center" valign="middle" >37 (&lt;1%)</td><td align="center" valign="middle" >3990 (7%)</td></tr><tr><td align="center" valign="middle" >rank order filter 2</td><td align="center" valign="middle" >82 (&lt;1%)</td><td align="center" valign="middle" >37 (&lt;1%)</td><td align="center" valign="middle" >3990 (7%)</td></tr><tr><td align="center" valign="middle" >fingertip tracking and recording</td><td align="center" valign="middle" >8987 (21%)</td><td align="center" valign="middle" >1505 (11%)</td><td align="center" valign="middle" >0</td></tr><tr><td align="center" valign="middle" >feature angle extractions</td><td align="center" valign="middle" >8580 (20%)</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td></tr><tr><td align="center" valign="middle" >sdram control</td><td align="center" valign="middle" >991 (2%)</td><td align="center" valign="middle" >696 (5%)</td><td align="center" valign="middle" >28,672 (52%)</td></tr><tr><td align="center" valign="middle" >template matching</td><td align="center" valign="middle" >1172 (3%)</td><td align="center" valign="middle" >177 (1%)</td><td align="center" valign="middle" >0</td></tr><tr><td align="center" valign="middle" >others</td><td align="center" valign="middle" >12,026 (27%)</td><td align="center" valign="middle" >1484 (11%)</td><td align="center" valign="middle" >0</td></tr></tbody></table></table-wrap></table-wrap-group><p><xref ref-type="fig" rid="fig7">Figure 7</xref> shows a typical fingertip detection and character recognition execution. The start of the fingertip writing process is triggered by moving the fingertip to a start button box shown on the LCD screen. The recognition system then starts to track and record a character stroke after 4 seconds. The end of a stroke is signaled by holding the fingertip stationary for 2 seconds. The recognition result is shown on the LCD screen thereafter. The entire process takes about a few seconds. <xref ref-type="fig" rid="fig8">Figure 8</xref> shows a 2-character writing recognition experiment, in which the recognition of the second character starts right after the first character is recognized by 3 seconds.</p><p>The following character stroke pairs are similar and are more difficult to distinguish, hence the requirement for special distinction mechanisms.</p><p>(1) Digit 0 and alphabet o: digit 0 is written clock-wise, and alphabet o counter clock-wise.</p><p>(2) Digit 2 and alphabet z: alphabet z is written with an additional up-tick stroke.</p><p>(3) Digit 5 and alphabet s: alphabet s is written with a smoother curvature.</p><p>(4) Digit 9 and alphabet g: alphabet g is written with an additional up-tick stroke.</p><p>(5) Alphabets f and t: alphabet f is finished with an left-up tick stroke.</p><p><xref ref-type="fig" rid="fig9">Figure 9</xref> shows the experimental sample character strokes of digits 0 - 9 and lower case alphabets a - z. The</p><fig-group id="fig7"><label><xref ref-type="fig" rid="fig7">Figure 7</xref></label><caption><title> Experimental fingertip writing and recognition process. (a) Start of fingertip writing; (b) Stroke curve tracking; (c) End of character stroke; (d) Character recognition result.</title></caption><fig id ="fig7_1"><label> (b)</label><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/14-1730334x59.png"/></fig><fig id ="fig7_2"><label>(c)</label><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/14-1730334x60.png"/></fig><fig id ="fig7_3"><label> (d)</label><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/14-1730334x61.png"/></fig><fig id ="fig7_4"><label></label><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/14-1730334x62.png"/></fig></fig-group><fig-group id="fig8"><label><xref ref-type="fig" rid="fig8">Figure 8</xref></label><caption><title> Experimental 2-character writing recognition.</title></caption><fig id ="fig8_1"><label></label><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/14-1730334x63.png"/></fig><fig id ="fig8_2"><label></label><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/14-1730334x64.png"/></fig><fig id ="fig8_3"><label></label><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/14-1730334x65.png"/></fig></fig-group><fig id="fig9"  position="float"><label><xref ref-type="fig" rid="fig9">Figure 9</xref></label><caption><title> Experimental 36 character strokes of 0 - 9 and a - z</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/14-1730334x66.png"/></fig><p>proposed system demonstrated 100% recognition accuracy in our experiments. We tested each sample character 10 times (a total of 360 character strokes), and no recognition error occurred.</p></sec><sec id="s5"><title>5. Conclusion</title><p>We have presented a simple but effective vision-based fingertip writing character stroke recognition system. The proposed system is implemented on a single FPGA chip with input from a CMOS image sensor. The recognition system achieved accuracy 100% for digits and lower case alphabets, and it could deal with scaled finger motion. One additional requirement of the system is that a blue cover is mounted on the user’s fingertip and is visible to the camera. In future work, we would like to perform recognition of words with a few characters.</p></sec><sec id="s6"><title>Acknowledgements</title><p>This work is supported by Taiwan Ministry of Science and Technology grants MOST-103-2221-E-011-101 and MOST 104-2221-E-011-035.</p></sec><sec id="s7"><title>Cite this paper</title><p>Ching-Long Shih,Wen-Yo Lee,Yu-Te Ku, (2016) A Vision-Based Fingertip-Writing Character Recognition System. Journal of Computer and Communications,04,160-168. doi: 10.4236/jcc.2016.44014</p></sec><sec id="s8"><title>Appendix</title><table-wrap id="table2" ><label><xref ref-type="table" rid="table2">Table 2</xref></label><caption><title> Template of character stroke feature angles</title></caption><table><tbody><thead><tr><th align="center" valign="middle" ></th><th align="center" valign="middle" >1</th><th align="center" valign="middle" >2</th><th align="center" valign="middle" >3</th><th align="center" valign="middle" >4</th><th align="center" valign="middle" >5</th><th align="center" valign="middle" >6</th><th align="center" valign="middle" >7</th><th align="center" valign="middle" >8</th><th align="center" valign="middle" >9</th><th align="center" valign="middle" >10</th></tr></thead><tr><td align="center" valign="middle" >0</td><td align="center" valign="middle" >50</td><td align="center" valign="middle" >343</td><td align="center" valign="middle" >292</td><td align="center" valign="middle" >237</td><td align="center" valign="middle" >191</td><td align="center" valign="middle" >147</td><td align="center" valign="middle" >85</td><td align="center" valign="middle" >87</td><td align="center" valign="middle" >91</td><td align="center" valign="middle" >0</td></tr><tr><td align="center" valign="middle" >1</td><td align="center" valign="middle" >274</td><td align="center" valign="middle" >261</td><td align="center" valign="middle" >275</td><td align="center" valign="middle" >262</td><td align="center" valign="middle" >265</td><td align="center" valign="middle" >276</td><td align="center" valign="middle" >261</td><td align="center" valign="middle" >37</td><td align="center" valign="middle" >37</td><td align="center" valign="middle" >180</td></tr><tr><td align="center" valign="middle" >2</td><td align="center" valign="middle" >43</td><td align="center" valign="middle" >359</td><td align="center" valign="middle" >290</td><td align="center" valign="middle" >232</td><td align="center" valign="middle" >212</td><td align="center" valign="middle" >2</td><td align="center" valign="middle" >4</td><td align="center" valign="middle" >26</td><td align="center" valign="middle" >39</td><td align="center" valign="middle" >151</td></tr><tr><td align="center" valign="middle" >3</td><td align="center" valign="middle" >25</td><td align="center" valign="middle" >309</td><td align="center" valign="middle" >205</td><td align="center" valign="middle" >11</td><td align="center" valign="middle" >304</td><td align="center" valign="middle" >221</td><td align="center" valign="middle" >140</td><td align="center" valign="middle" >46</td><td align="center" valign="middle" >46</td><td align="center" valign="middle" >99</td></tr><tr><td align="center" valign="middle" >4</td><td align="center" valign="middle" >179</td><td align="center" valign="middle" >183</td><td align="center" valign="middle" >50</td><td align="center" valign="middle" >42</td><td align="center" valign="middle" >302</td><td align="center" valign="middle" >274</td><td align="center" valign="middle" >265</td><td align="center" valign="middle" >44</td><td align="center" valign="middle" >74</td><td align="center" valign="middle" >64</td></tr><tr><td align="center" valign="middle" >5</td><td align="center" valign="middle" >182</td><td align="center" valign="middle" >232</td><td align="center" valign="middle" >334</td><td align="center" valign="middle" >343</td><td align="center" valign="middle" >264</td><td align="center" valign="middle" >175</td><td align="center" valign="middle" >175</td><td align="center" valign="middle" >45</td><td align="center" valign="middle" >29</td><td align="center" valign="middle" >160</td></tr><tr><td align="center" valign="middle" >6</td><td align="center" valign="middle" >181</td><td align="center" valign="middle" >232</td><td align="center" valign="middle" >292</td><td align="center" valign="middle" >334</td><td align="center" valign="middle" >57</td><td align="center" valign="middle" >161</td><td align="center" valign="middle" >180</td><td align="center" valign="middle" >57</td><td align="center" valign="middle" >22</td><td align="center" valign="middle" >130</td></tr><tr><td align="center" valign="middle" >7</td><td align="center" valign="middle" >83</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >309</td><td align="center" valign="middle" >265</td><td align="center" valign="middle" >276</td><td align="center" valign="middle" >219</td><td align="center" valign="middle" >288</td><td align="center" valign="middle" >39</td><td align="center" valign="middle" >44</td><td align="center" valign="middle" >118</td></tr><tr><td align="center" valign="middle" >8</td><td align="center" valign="middle" >150</td><td align="center" valign="middle" >245</td><td align="center" valign="middle" >320</td><td align="center" valign="middle" >244</td><td align="center" valign="middle" >129</td><td align="center" valign="middle" >39</td><td align="center" valign="middle" >43</td><td align="center" valign="middle" >104</td><td align="center" valign="middle" >77</td><td align="center" valign="middle" >7</td></tr><tr><td align="center" valign="middle" >9</td><td align="center" valign="middle" >137</td><td align="center" valign="middle" >212</td><td align="center" valign="middle" >302</td><td align="center" valign="middle" >25</td><td align="center" valign="middle" >293</td><td align="center" valign="middle" >265</td><td align="center" valign="middle" >281</td><td align="center" valign="middle" >19</td><td align="center" valign="middle" >66</td><td align="center" valign="middle" >109</td></tr><tr><td align="center" valign="middle" >a</td><td align="center" valign="middle" >163</td><td align="center" valign="middle" >234</td><td align="center" valign="middle" >295</td><td align="center" valign="middle" >29</td><td align="center" valign="middle" >85</td><td align="center" valign="middle" >295</td><td align="center" valign="middle" >4</td><td align="center" valign="middle" >33</td><td align="center" valign="middle" >85</td><td align="center" valign="middle" >69</td></tr><tr><td align="center" valign="middle" >b</td><td align="center" valign="middle" >262</td><td align="center" valign="middle" >267</td><td align="center" valign="middle" >281</td><td align="center" valign="middle" >355</td><td align="center" valign="middle" >43</td><td align="center" valign="middle" >162</td><td align="center" valign="middle" >168</td><td align="center" valign="middle" >88</td><td align="center" valign="middle" >12</td><td align="center" valign="middle" >86</td></tr><tr><td align="center" valign="middle" >c</td><td align="center" valign="middle" >148</td><td align="center" valign="middle" >196</td><td align="center" valign="middle" >223</td><td align="center" valign="middle" >259</td><td align="center" valign="middle" >307</td><td align="center" valign="middle" >358</td><td align="center" valign="middle" >14</td><td align="center" valign="middle" >68</td><td align="center" valign="middle" >40</td><td align="center" valign="middle" >75</td></tr><tr><td align="center" valign="middle" >d</td><td align="center" valign="middle" >262</td><td align="center" valign="middle" >275</td><td align="center" valign="middle" >278</td><td align="center" valign="middle" >182</td><td align="center" valign="middle" >161</td><td align="center" valign="middle" >56</td><td align="center" valign="middle" >2</td><td align="center" valign="middle" >95</td><td align="center" valign="middle" >10</td><td align="center" valign="middle" >82</td></tr><tr><td align="center" valign="middle" >e</td><td align="center" valign="middle" >3</td><td align="center" valign="middle" >78</td><td align="center" valign="middle" >164</td><td align="center" valign="middle" >220</td><td align="center" valign="middle" >277</td><td align="center" valign="middle" >331</td><td align="center" valign="middle" >1</td><td align="center" valign="middle" >16</td><td align="center" valign="middle" >77</td><td align="center" valign="middle" >95</td></tr><tr><td align="center" valign="middle" >f</td><td align="center" valign="middle" >4</td><td align="center" valign="middle" >92</td><td align="center" valign="middle" >219</td><td align="center" valign="middle" >275</td><td align="center" valign="middle" >290</td><td align="center" valign="middle" >265</td><td align="center" valign="middle" >122</td><td align="center" valign="middle" >42</td><td align="center" valign="middle" >55</td><td align="center" valign="middle" >87</td></tr><tr><td align="center" valign="middle" >g</td><td align="center" valign="middle" >178</td><td align="center" valign="middle" >220</td><td align="center" valign="middle" >355</td><td align="center" valign="middle" >29</td><td align="center" valign="middle" >265</td><td align="center" valign="middle" >244</td><td align="center" valign="middle" >127</td><td align="center" valign="middle" >39</td><td align="center" valign="middle" >34</td><td align="center" valign="middle" >180</td></tr><tr><td align="center" valign="middle" >h</td><td align="center" valign="middle" >264</td><td align="center" valign="middle" >274</td><td align="center" valign="middle" >265</td><td align="center" valign="middle" >179</td><td align="center" valign="middle" >53</td><td align="center" valign="middle" >355</td><td align="center" valign="middle" >276</td><td align="center" valign="middle" >42</td><td align="center" valign="middle" >35</td><td align="center" valign="middle" >147</td></tr><tr><td align="center" valign="middle" >i</td><td align="center" valign="middle" >52</td><td align="center" valign="middle" >71</td><td align="center" valign="middle" >96</td><td align="center" valign="middle" >182</td><td align="center" valign="middle" >274</td><td align="center" valign="middle" >295</td><td align="center" valign="middle" >307</td><td align="center" valign="middle" >78</td><td align="center" valign="middle" >62</td><td align="center" valign="middle" >43</td></tr><tr><td align="center" valign="middle" >j</td><td align="center" valign="middle" >288</td><td align="center" valign="middle" >264</td><td align="center" valign="middle" >265</td><td align="center" valign="middle" >260</td><td align="center" valign="middle" >198</td><td align="center" valign="middle" >127</td><td align="center" valign="middle" >108</td><td align="center" valign="middle" >66</td><td align="center" valign="middle" >26</td><td align="center" valign="middle" >97</td></tr><tr><td align="center" valign="middle" >k</td><td align="center" valign="middle" >264</td><td align="center" valign="middle" >274</td><td align="center" valign="middle" >81</td><td align="center" valign="middle" >320</td><td align="center" valign="middle" >129</td><td align="center" valign="middle" >101</td><td align="center" valign="middle" >32</td><td align="center" valign="middle" >65</td><td align="center" valign="middle" >61</td><td align="center" valign="middle" >54</td></tr><tr><td align="center" valign="middle" >l</td><td align="center" valign="middle" >265</td><td align="center" valign="middle" >265</td><td align="center" valign="middle" >274</td><td align="center" valign="middle" >355</td><td align="center" valign="middle" >4</td><td align="center" valign="middle" >4</td><td align="center" valign="middle" >355</td><td align="center" valign="middle" >42</td><td align="center" valign="middle" >37</td><td align="center" valign="middle" >131</td></tr><tr><td align="center" valign="middle" >m</td><td align="center" valign="middle" >67</td><td align="center" valign="middle" >348</td><td align="center" valign="middle" >281</td><td align="center" valign="middle" >71</td><td align="center" valign="middle" >43</td><td align="center" valign="middle" >290</td><td align="center" valign="middle" >295</td><td align="center" valign="middle" >42</td><td align="center" valign="middle" >43</td><td align="center" valign="middle" >112</td></tr><tr><td align="center" valign="middle" >n</td><td align="center" valign="middle" >265</td><td align="center" valign="middle" >267</td><td align="center" valign="middle" >87</td><td align="center" valign="middle" >65</td><td align="center" valign="middle" >3</td><td align="center" valign="middle" >289</td><td align="center" valign="middle" >265</td><td align="center" valign="middle" >30</td><td align="center" valign="middle" >44</td><td align="center" valign="middle" >156</td></tr><tr><td align="center" valign="middle" >o</td><td align="center" valign="middle" >124</td><td align="center" valign="middle" >181</td><td align="center" valign="middle" >223</td><td align="center" valign="middle" >288</td><td align="center" valign="middle" >334</td><td align="center" valign="middle" >42</td><td align="center" valign="middle" >85</td><td align="center" valign="middle" >103</td><td align="center" valign="middle" >79</td><td align="center" valign="middle" >0</td></tr><tr><td align="center" valign="middle" >p</td><td align="center" valign="middle" >55</td><td align="center" valign="middle" >330</td><td align="center" valign="middle" >230</td><td align="center" valign="middle" >140</td><td align="center" valign="middle" >327</td><td align="center" valign="middle" >278</td><td align="center" valign="middle" >281</td><td align="center" valign="middle" >14</td><td align="center" valign="middle" >76</td><td align="center" valign="middle" >98</td></tr><tr><td align="center" valign="middle" >q</td><td align="center" valign="middle" >147</td><td align="center" valign="middle" >244</td><td align="center" valign="middle" >4</td><td align="center" valign="middle" >251</td><td align="center" valign="middle" >265</td><td align="center" valign="middle" >79</td><td align="center" valign="middle" >25</td><td align="center" valign="middle" >39</td><td align="center" valign="middle" >63</td><td align="center" valign="middle" >82</td></tr><tr><td align="center" valign="middle" >r</td><td align="center" valign="middle" >309</td><td align="center" valign="middle" >274</td><td align="center" valign="middle" >244</td><td align="center" valign="middle" >95</td><td align="center" valign="middle" >78</td><td align="center" valign="middle" >43</td><td align="center" valign="middle" >26</td><td align="center" valign="middle" >53</td><td align="center" valign="middle" >49</td><td align="center" valign="middle" >81</td></tr><tr><td align="center" valign="middle" >s</td><td align="center" valign="middle" >136</td><td align="center" valign="middle" >193</td><td align="center" valign="middle" >281</td><td align="center" valign="middle" >327</td><td align="center" valign="middle" >294</td><td align="center" valign="middle" >196</td><td align="center" valign="middle" >123</td><td align="center" valign="middle" >39</td><td align="center" valign="middle" >33</td><td align="center" valign="middle" >173</td></tr><tr><td align="center" valign="middle" >t</td><td align="center" valign="middle" >2</td><td align="center" valign="middle" >64</td><td align="center" valign="middle" >180</td><td align="center" valign="middle" >258</td><td align="center" valign="middle" >267</td><td align="center" valign="middle" >304</td><td align="center" valign="middle" >56</td><td align="center" valign="middle" >38</td><td align="center" valign="middle" >38</td><td align="center" valign="middle" >143</td></tr><tr><td align="center" valign="middle" >u</td><td align="center" valign="middle" >262</td><td align="center" valign="middle" >309</td><td align="center" valign="middle" >25</td><td align="center" valign="middle" >65</td><td align="center" valign="middle" >85</td><td align="center" valign="middle" >258</td><td align="center" valign="middle" >316</td><td align="center" valign="middle" >39</td><td align="center" valign="middle" >34</td><td align="center" valign="middle" >166</td></tr><tr><td align="center" valign="middle" >v</td><td align="center" valign="middle" >305</td><td align="center" valign="middle" >306</td><td align="center" valign="middle" >341</td><td align="center" valign="middle" >57</td><td align="center" valign="middle" >64</td><td align="center" valign="middle" >65</td><td align="center" valign="middle" >71</td><td align="center" valign="middle" >48</td><td align="center" valign="middle" >40</td><td align="center" valign="middle" >106</td></tr><tr><td align="center" valign="middle" >w</td><td align="center" valign="middle" >288</td><td align="center" valign="middle" >1</td><td align="center" valign="middle" >68</td><td align="center" valign="middle" >308</td><td align="center" valign="middle" >295</td><td align="center" valign="middle" >78</td><td align="center" valign="middle" >55</td><td align="center" valign="middle" >38</td><td align="center" valign="middle" >42</td><td align="center" valign="middle" >128</td></tr><tr><td align="center" valign="middle" >x</td><td align="center" valign="middle" >307</td><td align="center" valign="middle" >309</td><td align="center" valign="middle" >124</td><td align="center" valign="middle" >50</td><td align="center" valign="middle" >212</td><td align="center" valign="middle" >230</td><td align="center" valign="middle" >223</td><td align="center" valign="middle" >52</td><td align="center" valign="middle" >46</td><td align="center" valign="middle" >88</td></tr><tr><td align="center" valign="middle" >y</td><td align="center" valign="middle" >327</td><td align="center" valign="middle" >348</td><td align="center" valign="middle" >57</td><td align="center" valign="middle" >230</td><td align="center" valign="middle" >233</td><td align="center" valign="middle" >219</td><td align="center" valign="middle" >223</td><td align="center" valign="middle" >37</td><td align="center" valign="middle" >60</td><td align="center" valign="middle" >88</td></tr><tr><td align="center" valign="middle" >z</td><td align="center" valign="middle" >359</td><td align="center" valign="middle" >245</td><td align="center" valign="middle" >219</td><td align="center" valign="middle" >244</td><td align="center" valign="middle" >11</td><td align="center" valign="middle" >55</td><td align="center" valign="middle" >140</td><td align="center" valign="middle" >138</td><td align="center" valign="middle" >23</td><td align="center" valign="middle" >54</td></tr></tbody></table></table-wrap></sec><sec id="s9"><title>NOTES</title></sec></body><back><ref-list><title>References</title><ref id="scirp.65952-ref1"><label>1</label><mixed-citation publication-type="other" xlink:type="simple">Jin, L., Yang, D., Zhen, L. and Huang, J. (2007) A Novel Vision Based Finger-Writing Character Recognition System. Journal of Journal of Circuits, Systems, and Computers, 16, 421-436. http://dx.doi.org/10.1142/S0218126607003757</mixed-citation></ref><ref id="scirp.65952-ref2"><label>2</label><mixed-citation publication-type="other" xlink:type="simple">Zafrulla, Z., Brashear, H., Starner, T., Hamilton, H. and Presti, P. (2011) American Sign Language Recognition with the Kinect. ICMI’11 Proceedings of the 13th International Conference on Multimodal Interfaces, 279-286.  
http://dx.doi.org/10.1145/2070481.2070532</mixed-citation></ref><ref id="scirp.65952-ref3"><label>3</label><mixed-citation publication-type="other" xlink:type="simple">Mitra, S. and Acharya, T. (2007) Gesture Recognition: A Survey. IEEE Transactions on Systems, Man, and Cybernetics, Part C: Applications and Reviews, 37, 311-324. http://dx.doi.org/10.1109/TSMCC.2007.893280</mixed-citation></ref><ref id="scirp.65952-ref4"><label>4</label><mixed-citation publication-type="other" xlink:type="simple">Schick, A., van de Camp, F., Ijsselmuiden, J. and Stiefelhagen, R. (2009) Extending Touch: Towards Interaction with Large-Scale Surfaces. Proceedings of ACM International Conference on Interactive Tabletops and Surfaces, 117-124.  
http://dx.doi.org/10.1145/1731903.1731927</mixed-citation></ref><ref id="scirp.65952-ref5"><label>5</label><mixed-citation publication-type="other" xlink:type="simple">Phung, S.L., Bouzerdoum, A. and Chai, D. (2005) Skin Segmentation Using Color Pixel Classification: Analysis and Comparison. IEEE Transactions on Pattern Analysis and Machine Intelligent, 27, 148-154.  
http://dx.doi.org/10.1109/TPAMI.2005.17</mixed-citation></ref><ref id="scirp.65952-ref6"><label>6</label><mixed-citation publication-type="other" xlink:type="simple">Schick, A., Morlock, D., Amma, C., Schultz, T. and Stiefelhagen, R. (2012) Vision-Based Handwriting Recognition for Unrestricted Text Input in Mid-Air. ICMI’12 Proceedings of the 14th International Conference on Multimodal Interfaces, Santa Monica, October 2012, 217-220. http://dx.doi.org/10.1145/2388676.2388719</mixed-citation></ref><ref id="scirp.65952-ref7"><label>7</label><mixed-citation publication-type="other" xlink:type="simple">Ye, Z., Zhang, X., Jin, L., Feng, Z. and Xu, S. (2013) Finger-Writing-in-the-Air System Using Kinect Sensor. IEEE International Conference on Multimedia and Expo Workshops (ICMEW), San Jose, July 2013, 1-4.</mixed-citation></ref><ref id="scirp.65952-ref8"><label>8</label><mixed-citation publication-type="other" xlink:type="simple">Lee, D. and Lee, S. (2011) Vision-Based Finger Action Recognition by Angle Detection and Contour Analysis. Journal of ETRI, 33, 415-422. http://dx.doi.org/10.4218/etrij.11.0110.0313</mixed-citation></ref><ref id="scirp.65952-ref9"><label>9</label><mixed-citation publication-type="other" xlink:type="simple">Vikram, S., Li, L. and Russel, S. (2013) Handwriting and Gestures in the Air, Recognizing on the Fly. Proceedings of the CHI’13, Paris, April 2013, 1179-1184.</mixed-citation></ref><ref id="scirp.65952-ref10"><label>10</label><mixed-citation publication-type="other" xlink:type="simple">Plamondon, R. and Srihari, S.N. (2000) On-Line and Off-Line Handwriting Recognition: a Comprehensive Survey. Transactions on Pattern Analysis, 22, 63-84.</mixed-citation></ref><ref id="scirp.65952-ref11"><label>11</label><mixed-citation publication-type="other" xlink:type="simple">Hu, Y.H. (1992) CORDIC-Based VLSI Architectures Digital Signal Processing. IEEE Signal Processing Magazine, 9, 16-35. http://dx.doi.org/10.1109/79.143467</mixed-citation></ref></ref-list></back></article>