Oops, I forgot the attachment. Here it is :-) I believe it will help you further to decide, but what it CAN do: - find whitelines - map a zone to a certainn character probability - train itself. it does NOT decide whether it is a certain character or not, this needs to be decided on the host, not the gpu.
2018-04-28 8:09 GMT+00:00 ShreeDevi Kumar <[email protected]>: > @zdenko This discussion maybe better suited for tesseract-dev forum or do > you want to track it as a issue on github? > > ShreeDevi > ____________________________________________________________ > भजन - कीर्तन - आरती @ http://bhajans.ramparivar.com > > On Sat, Apr 28, 2018 at 1:19 PM, Janpieter Sollie < > [email protected]> wrote: > >> Would it be a problem for you if I rewrite the opencl engine completely, >> and you people provide me help to link the tesseract kernel -> opencl >> engine parts? >> in attachment, I already have a list of features I'd like to port to >> openCL. As this uses the GPU in a heavy way, I will implement multi-card >> support on the host. >> Is it a problem for you guys to think of tesseract 5.0 as a milestone? >> >> >> 2018-04-27 15:53 GMT+00:00 Janpieter Sollie <[email protected]>: >> >>> if I'm right, a neural net is about the engine parts, not the image >>> characterisation rendering method, am I right? because I see many >>> presentations, and most of them talk about the history of tesseract, but >>> that's not what I need >>> >>> 2018-04-27 14:27 GMT+00:00 ShreeDevi Kumar <[email protected]>: >>> >>>> Please see >>>> >>>> https://github.com/tesseract-ocr/tesseract/wiki/4.0-with-LSTM >>>> >>>> For info about neural nets used by tesseract >>>> >>>> On Fri 27 Apr, 2018, 7:48 PM Janpieter Sollie, < >>>> [email protected]> wrote: >>>> >>>>> I had a quick thought about what you could offload to opencl. I will >>>>> need some help from you people (I am a C programmer, not C++, at least not >>>>> experienced) to do the host code, but this algorithm is perfectly >>>>> optimizeable in openCL. >>>>> the way I'd do it: >>>>> >>>>> prerequirements: >>>>> - you can define 65k offsets (x,y) in whose you want the openCL engine >>>>> to look for dots (x,y), the optimal position and closest neighbour can be >>>>> reported in the first part. >>>>> - you can make a RAW image of both the image and the characters. size >>>>> of the letters doesn't matter, but they must be trimmed properly >>>>> >>>>> 1. you give me a matrix of 256*256 offsets(short, short) to analyze, >>>>> with a max of 64 dots (char, char) (I assume these are neurons) to analyze >>>>> in each offset. >>>>> so, this gives you a start memory usage of 2⁸ * 2⁸ *4 + 64*2 = 256k >>>>> + 128 bytes >>>>> each dot MUST contain a black pixel. >>>>> then we add the image, this is a charimage of max (to be discussed >>>>> with you guys), I assume a 4096*4096 pixel image would be fine, especially >>>>> when a character can contain a 4x4 matrix defining a 0/1 (black/white) >>>>> value. >>>>> 2. Then I follow these steps in the openCL engine: >>>>> - we analyze the neurons >>>>> - draw a cirle around them of x black points. (this circle can be >>>>> 0, in which case the neuron is white), for which the circle is completely >>>>> black >>>>> - when we encounter one or more white points, a direction of the >>>>> points is calculated. if there's no whitespace at the other side, the >>>>> neuron offset is moved for x/2 in the opposite direction and analyze >>>>> neuron >>>>> is restarted for x/2. else, quit the 'analyze neuron' part. This can be >>>>> done in local memory, in which case it will cost you 256*2=512 bytes of >>>>> local ram to determine the optimal neuron position. Most graphic cards >>>>> have >>>>> a limit of 32k ram, so this is no problem :-) >>>>> - determine the closest dot next to this one: >>>>> for each dot != this one, draw a line of black points, if no line >>>>> can be found, jump to next dot. >>>>> watch distance. If it's smaller than the previous neuron && this >>>>> dot id hasn't a link pointing from the destination to this one, save dot >>>>> id. >>>>> so, at the end: >>>>> - each neuron of each offset is optimally centered in a return >>>>> matrix of 256*256*64*2 = 2²³ = 8M of memory >>>>> - each neuron has a unique id to its closest neighbour, to which >>>>> it's guaranteed to be attached. an id of -1 means no id could be found. >>>>> 256*256*64 = 4M of memory >>>>> >>>>> 3. we focus on neuron list -> character mapping. this is a separate >>>>> kernel. A "probability" factor is involved here, but I will think about it >>>>> further. I suggest to use a list of 64 character images at once, >>>>> otherwise >>>>> you need lots of memory :-) >>>>> - define the top, left and right neuron. create a zoom factor for the >>>>> image. calculate the aspect ratio. The probability is >>>>> 1-diff(aspect_ratio1, aspect_ratio2) >>>>> - analyze each link in the font character. total probability *= >>>>> (found_link_length / total_link_length) >>>>> - report the probability. >>>>> On the PC: the character with the highest probability is the character >>>>> you 're looking for. Be aware that you need to compare the possibilities >>>>> of the different offsets if they overlap. >>>>> >>>>> if the tesseract project can use this, please let me know >>>>> >>>>> 2018-04-27 9:36 GMT+00:00 Zdenko Podobny <[email protected]>: >>>>> >>>>>> Only documentation we have is code itself ;-) But you can start with >>>>>> searching for opencl issue in tesseract issue tracker on github... >>>>>> >>>>>> Zdenko >>>>>> >>>>>> >>>>>> pi 27. 4. 2018 o 10:56 Janpieter Sollie <[email protected]> >>>>>> napísal(a): >>>>>> >>>>>>> I'd be glad to help. using tesseract 4, I am able to perform a 90% >>>>>>> accuracy on OpenCL. I do not have any experience with neural networks >>>>>>> (i'm >>>>>>> just a high-school (no college educated IT-support guy with some >>>>>>> knowledge >>>>>>> about OpenCL), so can you recommend me some documentation to understand >>>>>>> the >>>>>>> engine of tesseract 4? >>>>>>> >>>>>>> 2018-04-27 10:50 GMT+02:00 Zdenko Podobny <[email protected]>: >>>>>>> >>>>>>>> If you have experience your help will be warmly welcomed. >>>>>>>> OpenCL is not maintained and it is on good way to be removed if >>>>>>>> maintainer/contributor will not be found. >>>>>>>> Anyway it is not used extensively, so there is a place for >>>>>>>> improvement, >>>>>>>> >>>>>>>> Zdenko >>>>>>>> >>>>>>>> >>>>>>>> pi 27. 4. 2018 o 10:21 Janpieter Sollie <[email protected]> >>>>>>>> napísal(a): >>>>>>>> >>>>>>>>> Hello everyone, >>>>>>>>> >>>>>>>>> I have a question about the openCL selection procedure of >>>>>>>>> tesseract: >>>>>>>>> >>>>>>>>> my output: >>>>>>>>> >>>>>>>>> [DS] Profile read from file (tesseract_opencl_profile_devi >>>>>>>>> ces.dat). >>>>>>>>> [DS] Device[1] 1:Fiji score is 0.202927 >>>>>>>>> [DS] Device[2] 1:Ellesmere score is 1.468799 >>>>>>>>> [DS] Device[3] 1:Ellesmere score is 1.468799 >>>>>>>>> [DS] Device[4] 1:Bonaire score is 1.533776 >>>>>>>>> [DS] Device[5] 1:Tonga score is 0.184236 >>>>>>>>> [DS] Device[6] 0:(null) score is 1.123015 >>>>>>>>> [DS] Selected Device[5]: "Tonga" (OpenCL) >>>>>>>>> >>>>>>>>> Ugh, this is weird .. why does tesseract take my Tonga instead of >>>>>>>>> my fiji device? can I force it to use the fiji? >>>>>>>>> I understand the ellesmere have lower access times (they 're >>>>>>>>> behind a pcie switch), but fiji and tonga are both directly connected >>>>>>>>> via a >>>>>>>>> pcie 2.0 X16 bus. Do we need a better tesseract selection procedure? >>>>>>>>> If so, I'm quite skilled at opencl, I'd be glad to help! >>>>>>>>> >>>>>>>>> kind regards, >>>>>>>>> >>>>>>>>> Janpieter >>>>>>>>> >>>>>>>>> -- >>>>>>>>> You received this message because you are subscribed to the Google >>>>>>>>> Groups "tesseract-ocr" group. >>>>>>>>> To unsubscribe from this group and stop receiving emails from it, >>>>>>>>> send an email to [email protected]. >>>>>>>>> To post to this group, send email to >>>>>>>>> [email protected]. >>>>>>>>> Visit this group at https://groups.google.com/group/tesseract-ocr. >>>>>>>>> To view this discussion on the web visit >>>>>>>>> https://groups.google.com/d/msgid/tesseract-ocr/4568b2b8-532 >>>>>>>>> d-457c-920b-60407e7b278e%40googlegroups.com >>>>>>>>> <https://groups.google.com/d/msgid/tesseract-ocr/4568b2b8-532d-457c-920b-60407e7b278e%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>>>>>> . >>>>>>>>> For more options, visit https://groups.google.com/d/optout. >>>>>>>>> >>>>>>>> -- >>>>>>>> You received this message because you are subscribed to a topic in >>>>>>>> the Google Groups "tesseract-ocr" group. >>>>>>>> To unsubscribe from this topic, visit >>>>>>>> https://groups.google.com/d/topic/tesseract-ocr/uNRDFTavDfc/ >>>>>>>> unsubscribe. >>>>>>>> To unsubscribe from this group and all its topics, send an email to >>>>>>>> [email protected]. >>>>>>>> To post to this group, send email to [email protected] >>>>>>>> . >>>>>>>> Visit this group at https://groups.google.com/group/tesseract-ocr. >>>>>>>> To view this discussion on the web visit >>>>>>>> https://groups.google.com/d/msgid/tesseract-ocr/CAJbzG8wHCUB >>>>>>>> mAs3Q8%3D%2BzBPODuuDPS2g%3DZ-6Gve%3DLWpzVWwvTkw%40mail.gmail.com >>>>>>>> <https://groups.google.com/d/msgid/tesseract-ocr/CAJbzG8wHCUBmAs3Q8%3D%2BzBPODuuDPS2g%3DZ-6Gve%3DLWpzVWwvTkw%40mail.gmail.com?utm_medium=email&utm_source=footer> >>>>>>>> . >>>>>>>> >>>>>>>> For more options, visit https://groups.google.com/d/optout. >>>>>>>> >>>>>>> >>>>>>> -- >>>>>>> You received this message because you are subscribed to the Google >>>>>>> Groups "tesseract-ocr" group. >>>>>>> To unsubscribe from this group and stop receiving emails from it, >>>>>>> send an email to [email protected]. >>>>>>> To post to this group, send email to [email protected]. >>>>>>> Visit this group at https://groups.google.com/group/tesseract-ocr. >>>>>>> To view this discussion on the web visit >>>>>>> https://groups.google.com/d/msgid/tesseract-ocr/CAJEYFEaZNSW >>>>>>> sV-hL-9DYWJahUR-8_3Wi%2BO5XwRkwFPWZHZgSOA%40mail.gmail.com >>>>>>> <https://groups.google.com/d/msgid/tesseract-ocr/CAJEYFEaZNSWsV-hL-9DYWJahUR-8_3Wi%2BO5XwRkwFPWZHZgSOA%40mail.gmail.com?utm_medium=email&utm_source=footer> >>>>>>> . >>>>>>> For more options, visit https://groups.google.com/d/optout. >>>>>>> >>>>>> -- >>>>>> You received this message because you are subscribed to a topic in >>>>>> the Google Groups "tesseract-ocr" group. >>>>>> To unsubscribe from this topic, visit https://groups.google.com/d/to >>>>>> pic/tesseract-ocr/uNRDFTavDfc/unsubscribe. >>>>>> To unsubscribe from this group and all its topics, send an email to >>>>>> [email protected]. >>>>>> To post to this group, send email to [email protected]. >>>>>> Visit this group at https://groups.google.com/group/tesseract-ocr. >>>>>> To view this discussion on the web visit >>>>>> https://groups.google.com/d/msgid/tesseract-ocr/CAJbzG8yBJ8U >>>>>> cP-Oy-fkJ_zcszj2OUDag3zJdEd_qZbQpD0F6Yg%40mail.gmail.com >>>>>> <https://groups.google.com/d/msgid/tesseract-ocr/CAJbzG8yBJ8UcP-Oy-fkJ_zcszj2OUDag3zJdEd_qZbQpD0F6Yg%40mail.gmail.com?utm_medium=email&utm_source=footer> >>>>>> . >>>>>> >>>>>> For more options, visit https://groups.google.com/d/optout. >>>>>> >>>>> >>>>> -- >>>>> You received this message because you are subscribed to the Google >>>>> Groups "tesseract-ocr" group. >>>>> To unsubscribe from this group and stop receiving emails from it, send >>>>> an email to [email protected]. >>>>> To post to this group, send email to [email protected]. >>>>> Visit this group at https://groups.google.com/group/tesseract-ocr. >>>>> To view this discussion on the web visit >>>>> https://groups.google.com/d/msgid/tesseract-ocr/CAJEYFEYVKhs >>>>> UxP280ZXwMZoS262d8scEbYrCF9QE-0BseUdg6w%40mail.gmail.com >>>>> <https://groups.google.com/d/msgid/tesseract-ocr/CAJEYFEYVKhsUxP280ZXwMZoS262d8scEbYrCF9QE-0BseUdg6w%40mail.gmail.com?utm_medium=email&utm_source=footer> >>>>> . >>>>> For more options, visit https://groups.google.com/d/optout. >>>>> >>>> -- >>>> You received this message because you are subscribed to a topic in the >>>> Google Groups "tesseract-ocr" group. >>>> To unsubscribe from this topic, visit https://groups.google.com/d/to >>>> pic/tesseract-ocr/uNRDFTavDfc/unsubscribe. >>>> To unsubscribe from this group and all its topics, send an email to >>>> [email protected]. >>>> To post to this group, send email to [email protected]. >>>> Visit this group at https://groups.google.com/group/tesseract-ocr. >>>> To view this discussion on the web visit https://groups.google.com/d/ms >>>> gid/tesseract-ocr/CAG2NduVubSs4PBoX21Yx06foCunrOedBf1Tzq-_fT >>>> 19MWtN55A%40mail.gmail.com >>>> <https://groups.google.com/d/msgid/tesseract-ocr/CAG2NduVubSs4PBoX21Yx06foCunrOedBf1Tzq-_fT19MWtN55A%40mail.gmail.com?utm_medium=email&utm_source=footer> >>>> . >>>> >>>> For more options, visit https://groups.google.com/d/optout. >>>> >>> >>> >> -- >> You received this message because you are subscribed to the Google Groups >> "tesseract-ocr" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected]. >> To post to this group, send email to [email protected]. >> Visit this group at https://groups.google.com/group/tesseract-ocr. >> To view this discussion on the web visit https://groups.google.com/d/ms >> gid/tesseract-ocr/CAJEYFEYc6eNJQKzg4s_n1%3DyhmEwTp3VMHO6%3Dc >> bPa3iengCsv8Q%40mail.gmail.com >> <https://groups.google.com/d/msgid/tesseract-ocr/CAJEYFEYc6eNJQKzg4s_n1%3DyhmEwTp3VMHO6%3DcbPa3iengCsv8Q%40mail.gmail.com?utm_medium=email&utm_source=footer> >> . >> >> For more options, visit https://groups.google.com/d/optout. >> > > -- > You received this message because you are subscribed to a topic in the > Google Groups "tesseract-ocr" group. > To unsubscribe from this topic, visit https://groups.google.com/d/ > topic/tesseract-ocr/uNRDFTavDfc/unsubscribe. > To unsubscribe from this group and all its topics, send an email to > [email protected]. > To post to this group, send email to [email protected]. > Visit this group at https://groups.google.com/group/tesseract-ocr. > To view this discussion on the web visit https://groups.google.com/d/ > msgid/tesseract-ocr/CAG2NduV8D%3DU%3D1eX-u8GzhHN5MvD_ > bwFdiSM5nPdYXZ9QhMEErg%40mail.gmail.com > <https://groups.google.com/d/msgid/tesseract-ocr/CAG2NduV8D%3DU%3D1eX-u8GzhHN5MvD_bwFdiSM5nPdYXZ9QhMEErg%40mail.gmail.com?utm_medium=email&utm_source=footer> > . > > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "tesseract-ocr" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/tesseract-ocr. To view this discussion on the web visit https://groups.google.com/d/msgid/tesseract-ocr/CAJEYFEayhtVuA81_e8QRREAOj6q8PzcKvEN3K2xaqeZV6H_YfQ%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
openclkernels.cl
Description: Binary data

