bachelor-proposal-latex-writing-recognition.tex 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236
  1. \documentclass[a4paper]{scrartcl}
  2. \usepackage{amssymb, amsmath} % needed for math
  3. \usepackage[utf8]{inputenc} % this is needed for umlauts
  4. \usepackage[english]{babel} % this is needed for umlauts
  5. \usepackage[T1]{fontenc} % this is needed for correct output of umlauts in pdf
  6. \usepackage[margin=2.5cm]{geometry} %layout
  7. \usepackage{hyperref} % links im text
  8. \usepackage{color}
  9. \usepackage{framed}
  10. \usepackage{enumerate} % for advanced numbering of lists
  11. \usepackage{csquotes}
  12. \usepackage{ifxetex,ifluatex}
  13. \usepackage{etoolbox}
  14. \usepackage[svgnames]{xcolor}
  15. \usepackage{tikz}
  16. \usepackage{framed}
  17. \usepackage{parskip}
  18. \usepackage{cite}
  19. \usepackage{fancyref}
  20. \usepackage{mystyle}
  21. \clubpenalty = 10000 % Schusterjungen verhindern
  22. \widowpenalty = 10000 % Hurenkinder verhindern
  23. \hypersetup{
  24. pdfauthor = {Martin Thoma},
  25. pdfkeywords = {Bachelor proposal, LaTeX, handwriting recognition},
  26. pdftitle = {Proposal for a Bachelor of Science Thesis:\\Interactive on-line handwriting recognition of mathematical formulae}
  27. }
  28. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  29. \begin{document}
  30. \title{Proposal for a Bachelor of Science Thesis:\\Interactive on-line handwriting recognition of mathematical formulae}
  31. \author{Martin Thoma}
  32. \maketitle
  33. \section{The problem backgound}
  34. There are people who don't know how to write even
  35. simple mathematical formulae with \LaTeX{} like
  36. \[\pi/\alpha=\sum_{n=-\infty}^\infty \frac{\sin^2 (c+n)\alpha}{(c+n)^2}=\int_{-\infty}^\infty \frac{\sin^2 (c+n)\alpha}{(c+n)^2}\, \text{d}n\]
  37. or who need much time to do so. Currently, there are several online
  38. services, programms and apps that help to write mathematical
  39. formulae, but all programms I know have serious disadvantages:
  40. \begin{itemize}
  41. \item \href{http://detexify.kirelabs.org/classify.html}{detexify.kirelabs.org}
  42. recognizes \textbf{only symbols},
  43. \item the formel editor of LibreOffice Writer 3.6 as showen
  44. in \Fref{fig:libre-office-3.6} offers some
  45. guidiance by grouping common operations while showing
  46. a WYSIWYG editor, but it has \textbf{no handwriting recognition}.
  47. Another drawback is the fact that it is \textbf{not available
  48. as an online service}, so you have to install LibreOffice
  49. which might not be possible on all devices.
  50. \item The \enquote{Daum Equation Editor} (see \Fref{fig:daum-editor}) is available online
  51. and offers guidiance through the creation of equations,
  52. but does not offer handwriting recognition. Although
  53. it might be OpenSource, the \textbf{source code is difficult to
  54. find}. This means if you want to improve the recognition,
  55. it is not possible. It also makes use of Adobe Flash
  56. which is not available on many smartphones and tablet
  57. computers.
  58. \item Maple seems to offer handwritten symbol recognition (\href{http://www.maplesoft.com/products/maple/features/handwritten.aspx}{source}),
  59. but on the one hand I was not able to test that, because
  60. it is \textbf{not available for free}. On the other hand you
  61. have to install additional software, it seems not to be
  62. available for tablet computers and it does only recognize
  63. single symbols.
  64. \item Wolfram Mathematica seems to be able to do complete
  65. formula recognition at least for simple formulae (\href{http://reference.wolfram.com/mathematica/tutorial/HandwrittenMathRecognition.html}{source})
  66. by using Microsofts \href{http://windows.microsoft.com/en-ph/windows7/use-math-input-panel-to-write-and-correct-math-equations}{Math Input Panel},
  67. but this is neither OpenSource nor available as an
  68. online service. Additionally it is not
  69. available for Linux systems, so I can't test it.
  70. \end{itemize}
  71. A more comprehensive list can be found at \href{https://en.wikipedia.org/wiki/Formula_editor}{https://en.wikipedia.org/wiki/Formula\_editor}.
  72. A problem of some of the projects presented there is that they
  73. require the client to execute Java Applets which is a security
  74. risk.
  75. \begin{figure}[h]
  76. \centering
  77. \includegraphics*[width=5cm, keepaspectratio]{figures/libreoffice-writer.png}
  78. \caption{LibreOffice Writer 3.6 - Formel Editor}
  79. \label{fig:libre-office-3.6}
  80. \end{figure}
  81. \begin{figure}[h]
  82. \centering
  83. \includegraphics*[width=15cm, keepaspectratio]{figures/daum-editor.png}
  84. \caption{Daum Equation editor}
  85. \label{fig:daum-editor}
  86. \end{figure}
  87. \break
  88. \section{The problem statement}
  89. What I would like to have is an interactive on-line handwriting
  90. recognition service, that is available as a web service which makes
  91. use of touchscreens. Additionally, it should be for free and
  92. OpenSource, the source code should be easy to find and documented.
  93. This means:
  94. \begin{itemize}
  95. \item \textbf{Service}: The program can be accessed over the web, so
  96. that the user does only have to have a modern browser.
  97. As a consequence, the software could be used with any
  98. device that has a touch screen.
  99. \item \textbf{On-line handwriting recognition}: The service
  100. starts recognizing while the user enters a formula.
  101. \item \textbf{Interactive}: The service offers symbols and constructs
  102. to the user before the user starts typing. These suggestions
  103. might chage depending on what the user has typed before.
  104. \item \textbf{OpenSource}: Any license in this list: \href{http://opensource.org/licenses}{http://opensource.org/licenses}
  105. \item \textbf{Easy to find}: Ideally, the project should have
  106. an own domain that contains the source code, the service
  107. and documentation. But it might be enough to provide
  108. an email address to a developer within the top of
  109. of the source code of the delivered HTML document.
  110. \end{itemize}
  111. \section{Significance}
  112. For me as a Linux user, there no software that I can test and which
  113. offers on-line, interactive math handwriting recognition. But the
  114. need of such a software is there.
  115. But there are more reasons why this bachelor's thesis matters:
  116. Projects like \LaTeX{}, Linux, Apache or FireFox have shown that
  117. OpenSoure software can enrich the develpment in specific areas. The
  118. \enquote{Browser Wars} might be the most famous result of an active
  119. OpenSource community. Internet Explorer 6 had
  120. a market share of over 80\% in 2003. Prequels of Firefox and the Mozilla
  121. foundation already existed, but Firefox 1.0 was released not until
  122. November 2004. After that, Firefox and other open browsers added many
  123. features that Internet Explorer had to compete with, like tabbed browsing,
  124. HTML4 standard conformance, support of the \texttt{<canvas>} tag and
  125. speed of HTML rendering and JavaScript execution.\footnote{\href{http://www.evolutionoftheweb.com/}{www.evolutionoftheweb.com} offers a graphical overview. Although supporting standards like HTML4 or CSS~2 is not done with one version, but rather an incremental process.} Some of these
  126. questions are interesting for science such as many problems related
  127. to layouts and just-in-time compilation (JIT). With OpenSource software
  128. that makes it easy to find its source and offers good documentation,
  129. researchers can simply try their ideas without being blocked by
  130. having to try to access the source code.
  131. Additionally, such a project might give researchers more time to
  132. concentrate on the tasks they really want to do rather than spending
  133. hours by learning \LaTeX{}.
  134. \section{Time schedule}
  135. \begin{itemize}
  136. \item[70h] Literature research about on-line handwriting recognition
  137. techniques and gamification.
  138. \item[5h] Defining browsers and devices that should get supported
  139. and required client side software like HTML5, CSS 3
  140. and ECMAScript (better known as JavaScript). Also,
  141. required input methods like touchscreens and stylus
  142. should be mentioned.
  143. \item[20h] Writing use cases. This is includes writing example
  144. formula that the user shoud type and the system should
  145. be able to recognize; finding people with different
  146. knowledge of \LaTeX{} and from different fields who
  147. want to participate in user tests.
  148. \item[60h] Implementing the core of the application: Handwriting
  149. recognition of digits and symbols by using only
  150. HTML, CSS and on the client side. This includes implementing
  151. a way for the user to enter new symbols and to correct the
  152. symbol that was suggested by the recognition system.
  153. \item[20h] Introduce testers that already know \LaTeX{} to the
  154. current system. At this point, the system does only do
  155. symbol recognition. The testers should train it,
  156. insert symbols like $a-z, A-Z, 0-9, \alpha-\omega, A-\Omega, \cdot, \circ, \dots$
  157. \item[10h] Get feedback by the users. This feedback will not be included
  158. in the thesis, but the improvements will get documented.
  159. \item[60h] Finding structures and ways how to enter them. Examples
  160. of structures that can be nested are sums:
  161. \begin{verbatim}\sum_{<some structure>}^{<another strcuture>} <a third structure>\end{verbatim}
  162. Implement the recognition of those strucutres.
  163. \item[30h] Observe \enquote{fresh} testers while they try to use
  164. the system.
  165. \item[70h] Improving the software to fix problems that were found
  166. with user tests
  167. \item[50h] Fix bugs, improve code quality and readability as well
  168. as documentation.
  169. \item[45h] Usability testing: Try Hallway testing. The results
  170. of these tests get documented and will be part of the
  171. bachelor's thesis. If possible, I would like
  172. to let the testers use their own devices.
  173. \item[10h] Mentioning open questions and ideas how they could be
  174. analyzed with the service that was created.
  175. \end{itemize}
  176. \section{Outline}
  177. I have described in which steps I would like to write the software,
  178. but almost all points include writing the bachelor's thesis document.
  179. A first draft of the outline could be like this:
  180. \begin{enumerate}
  181. \item Introduction
  182. \item Definitions
  183. \begin{enumerate}
  184. \item Hardware: What is available and what is the distribution?
  185. \item Software: What is available and what is the distribution?
  186. \item Support of standards like HTML, CSS, ECMA-Script, Flash, Cookies, ...
  187. \item Choice of hardware, software and standards that should get supported as well as the choice of Libraries and the required server-side software
  188. \item Application to the domain of math recognition
  189. \end{enumerate}
  190. \item On-line handwriting techniques
  191. \begin{enumerate}
  192. \item Description of techniques in general
  193. \item Application to the domain of math recognition
  194. \end{enumerate}
  195. \item Gamification techniques
  196. \begin{enumerate}
  197. \item Description of techniques in general
  198. \item Application to the domain of math recognition in the web
  199. \end{enumerate}
  200. \item Software Project
  201. \begin{enumerate}
  202. \item Structure of the code
  203. \item Availability of documentation
  204. \item Availability of the service
  205. \end{enumerate}
  206. \item Summary
  207. \begin{enumerate}
  208. \item Future Work
  209. \end{enumerate}
  210. \end{enumerate}
  211. \break
  212. \renewcommand\refname{Related Literature}
  213. \nocite{*}
  214. \bibliographystyle{itmalpha}
  215. \bibliography{literatur}
  216. This literature list is only a list that seems to make sense to me
  217. by now. As I proceed I might find more usefull sources for the different
  218. topics. So I might add, but also remove elements from this list.
  219. Especially for gamification I might read documents from
  220. \href{http://gamification-research.org/}{gamification-research.org}.
  221. \end{document}