Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Amenintat cu moartea de un numar ...

La multi ani @AndReW99!

Alegere masina £15000 uk

TVR vrea sa lanseze o platforma d...
 Strategie investie pe termen lung...

Modulator FM ptr auto alimentat p...

orange cablu f.o. - internet fara...

Robinet care comuta traseul
 A fost lansata Fedora 40

Samsung S24 plus

Imi iau un Dell? (Vostro vs others)

Abonati Qobuz?
 transport -tren

Platforma electronica de eviden&#...

Cot cu talpa montat stramb in per...

Sfat achizitie sistem audio pentr...
 

cu sau fara framework-uri ?

* - - - - 1 votes
  • Please log in to reply
40 replies to this topic

#19
dani.user

dani.user

    Guru Member

  • Grup: Senior Members
  • Posts: 30,235
  • Înscris: 24.02.2007
Exemplele tale sunt cam ... biased. Mai mult ca sigur ca daca ai o problema foarte usor de exprimat (extrage-mi textul dintr-o imagine) dar cu o solutie foarte complexa in spate (precum OCR) vei ajunge sa recurgi la o solutie existanta (gratis sau pe bani ca unii mai si vand solutii altora).

In realitate insa nu prea ai ocazia sa te intalnesti doar cu astfel de probleme. Cand pe lista ai 20 de cerinte specifice si vezi ca o solutie indeplineste doar 10 si 5 partial iar alta doar 12 intr-un alt mod, lucrurile se complica mult mai mult. Alegi solutia A? Alegi solutia B? Nu-i deloc exclus sa alegi solutiile mult mai simple C si D si pe baza lor sa construiesti ceva care sa te satisfaca pe deplin.

#20
TruthHurts

TruthHurts

    Senior Member

  • Grup: Senior Members
  • Posts: 2,155
  • Înscris: 06.10.2018

View PostPlatonX, on 18 martie 2019 - 21:24, said:

Daca avem de facut un proiect nou, primul lucru este sa cautam o clasa pe internet si sa o folosim ?

De exemplu avem de facut un proiect care scaneaza facturi si trebuie sa introduca datele automat intr-o baza de date. Ce facem, cautam o clasa OCR pe internet sau scriem noi codul si algoritmul de la zero ?
Tot cu asta? :) Mie mi-ai trimis pe pm cu ceva timp in urma word-ul cu proiectul tau de licenta. Evident nu am codul sursa sa vad daca functioneaza, ci doar franturi de metode in care incerci sa explici tu cum detectezi conturul literelor si nici acolo nu-i clar daca face ce spui tu ca face... abia pe la sfarsit ai un picut mai mult cod pt. o metoda care zici tu ca face zoom "deoarece Visual C++ nu are funcţie de zoom" (well, daca ai gasit CImage, trebuia sa gasesti si asta) dar ce ai acolo nu pare sa aiba prea mult sens(o metoda fara parametri - bine e drept ca nu mai stiu eu cum finctioneaza visual de la m$, o cifra magica pe acolo la care imparti ceva si pornesti un loop in functie de restul impartirii la acea chestie, dupa care brusc resetezi o variabila locala pe care tocmai ai incrementat-o in loop, etc.) ... in fine... pretentiile ca ai facut ceva mai bun sau macar egal cu abbyy finereader, aia o echipa cu experienta in ani de zile, tu un student in cateva luni(si culmea, mentionezi aceste aspecte in proiect, laudandu-te cu ele) sunt bombastice rau de tot si e greu sa te ia cineva in serios... chiar si un non-programator, dar o persoana cat de cat tehnica, isi poate da seama ca exagerezi rau si esti nerealist) ... ok, hai sa zicem ca erai mai tanar, mai incepator si mai entuziasmat si ai exagerat, proiectul inteleg ca in 2009 l-ai facut, adica acu' 10 ani... dar daca tu nu ai inteles nimic pana azi si tot tii gaia matu' ca ai facut tu o treaba >= abbyy, pfffff :rolleyes:

Cautam "o clasa"? Nu, cautam proiecte, vedem daca sunt folosite de altii si cam care sunt rezultatele(+ si altele cum ar fi daca se lucreaza activ la proiect - daca e open source)... eventual incercam sa vedem daca ni se potriveste, daca rezolva ce avem nevoie... pentru scanat text, un candidat bun ar fi tesseract ... il incerci si vezi daca iti poti face treaba... poate ajungi chiar la abbyy daca sunt bani... nu, nicidecum nu scrii asta de la zero, mai ales daca functionalitatea asta e doar a parte a programului la care lucrezi... daca in schimb lucrezi la un soft original a carui functionalitate principala e chiar ocr-ul, se mai schimba datele problemei, dar si acolo te inspiri de la ce au facut altii si vezi ce poti imbunatati, ce poti aduce original... sa incerci tu ceva complet de la zero si (aparent) original e de obicei mare pierdere de vreme(sunt sanse sa te lupti cu probleme de care s-au lovit altii si le-au rezolvat deja) si putin probabil sa te plateasca pentru asa ceva, cu exceptia cazului in care e ceva nou, ce nu a mai fost incercat si exista o nevoie pentru respectiva chestie...

#21
MarianG

MarianG

    be that as it may

  • Grup: Moderators
  • Posts: 31,437
  • Înscris: 10.08.2005

View PostPlatonX, on 18 martie 2019 - 21:24, said:

Daca avem de facut un proiect nou, primul lucru este sa cautam o clasa pe internet si sa o folosim ?

De exemplu avem de facut un proiect care scaneaza facturi si trebuie sa introduca datele automat intr-o baza de date. Ce facem, cautam o clasa OCR pe internet sau scriem noi codul si algoritmul de la zero ?

depinde de facturi, au cod de bare/ DM / QR ?

#22
PlatonX

PlatonX

    Senior Member

  • Grup: Senior Members
  • Posts: 5,741
  • Înscris: 13.09.2009

View PostTruthHurts, on 18 martie 2019 - 23:44, said:

pretentiile ca ai facut ceva mai bun sau macar egal cu abbyy finereader, aia o echipa cu experienta in ani de zile, tu un student in cateva luni(si culmea, mentionezi aceste aspecte in proiect, laudandu-te cu ele) sunt bombastice rau de tot si e greu sa te ia cineva in serios... chiar si un non-programator, dar o persoana cat de cat tehnica, isi poate da seama ca exagerezi rau si esti nerealist) ... ok, hai sa zicem ca erai mai tanar, mai incepator si mai entuziasmat si ai exagerat, proiectul inteleg ca in 2009 l-ai facut, adica acu' 10 ani...
Nu trebuia sa compar cu AbyyFineReader, au fost multe abordari infantile atunci la acel proiect, dar pentru mine atunci in contextul ala, sa il fac in 8 luni a fost ceva. De atunci m-am mai perfectionat si mi-am dat seama ca nu a fost ceva profesional, nici macar nu l-am imapartit cum trebuie pe clase, am facut conturul literelor dar nu am luat in calcul daca lipsesc parti din litere. Noua ne-a spus ca la lucrarea de licenta trebuie sa facem ceva original, ceva ce nu exista, pai ce sa faci ce nu exista ?

View PostTruthHurts, on 18 martie 2019 - 23:44, said:

dar daca tu nu ai inteles nimic pana azi si tot tii gaia matu' ca ai facut tu o treaba >= abbyy, pfffff
Eu nu zic ca am facut o treaba mai buna ca AbyyFineReader, ce a fost in 2009 a fost infantil, inclusiv modul de abordare, felul in care e scris codul, proiect de incepator. In exemplele pe care le-am dat aici pe topic nu am mai amintit de acel proiect. Faptul ca spun mereu de OCR nu inseamna ca ma refer la acel proiect, astazi fac un proiect OCR care nu are nimic in comun cu algoritmul de acolo, mi-am dat seama ca nu a fost o abordare profesionista.
Eu am o singura problema cu tehnologia actuala OCR: nu poate spune cu acuratete 100% ca ce recunoaste este corect. Daca nu ar exista aceasta probabilitate, daca ar fi da si nu, 100% corect si gresit.

Ce exemplu sa dau ? Daca cineva cere un site primul lucru care il faci este sa cauti template-uri sau faci designul complet original ? Folosesti diferite functii scrise de altii pentru responsive sau le faci tu ?

View PostMarianG, on 18 martie 2019 - 23:52, said:

depinde de facturi, au cod de bare/ DM / QR ?
Daca facturile nu au cod de bare, numai scris, este un tabel cu produsul, cantitatea si pretul.

Edited by PlatonX, 19 March 2019 - 08:47.


#23
MarianG

MarianG

    be that as it may

  • Grup: Moderators
  • Posts: 31,437
  • Înscris: 10.08.2005
Esti dispus sa descrii mai pe larg abordarile infantile?

#24
PlatonX

PlatonX

    Senior Member

  • Grup: Senior Members
  • Posts: 5,741
  • Înscris: 13.09.2009
Modul in care am citit fisierul: dupa ce am facut conversia in alb-negru trebuia convertit in Bitmap Monochrome ca sa citesc 8 pixeli odata si sa il citesc in array unidimentional.
Faptul ca am facut conturul literei fara sa tin cont ca pot sa liseasca parti din litera sau pot fi 2 litere unite.

Acum am un mod de aboradare bazat pe o formula matematica de combinare, practic pe o suprafata data exista un numar limitat de combinatii de pixeli, ei nu se pot combina la nesfarsit. Pe o suprafata data S = L x l exista maxim 2S combinatii dar din acestea un foarte mic numar sunt litere. Daca litera este pe o suprafata mare se face zoom, se micsoreaza litera iar baza de date reprezinta toate combinatiile de pixeli de pe o suprafata. Evident, nu pot avea toate combinatiile, dar pot filtra dupa 1 linie, de exemplu din 12 linii se potrivesc 11.

De exemplu am scanat 2000 de pagini la 300dpi si litere de acelasi font si aceeasi dimensiune, pe masura ce intrau literele in baza de date, se repetau tot mai multe linii. Modul acesta se potriveste pentru un tipar fix - de exemplu ai facturi care le scanezei si facturile au mereu aceleasi fonturi si acelasi format, difera daor aranjearea caracterelor in text.
Pun aici un screenshot pentru o nota muzicala - la fel e si cu literele - suprafata este 16x12 pixeli. Latimea de 16 pixeli monocrome este converita in zecimal. Deci row2 inseamna a doua linie din cele 12 si contine 14 337 adica 00111000 00000001 - 0 inseamna culoarea negru, 1 culoarea alb.
Am atasat si algoritmul si parti din cod pentru ce a fost in 2009 - Word si PPT. Partea cu combinatiile este de acum, pentru asta lucrez la ea si este un proiect de lunga durata, dar ca idee am vazut ca functioneaza, atat pentru partituri cat si pentru text. Lucrez la el in timpul liber.

Attached Files


Edited by PlatonX, 19 March 2019 - 10:12.


#25
Mosotti

Mosotti

    Geniu umil

  • Grup: Senior Members
  • Posts: 33,295
  • Înscris: 21.04.2004

View PostPlatonX, on 19 martie 2019 - 08:32, said:

Noua ne-a spus ca la lucrarea de licenta trebuie sa facem ceva original, ceva ce nu exista, pai ce sa faci ce nu exista ?
Cine v-a spus? Pentru ca asta nu e cerinta de licenta, ci de doctorat, acolo ai ani de zile sa studiezi si sa aduci o contributie domeniului. Ce voiau sa spuna aia e sa nu copiezi din alta licenta, la aia se refera originalitatea :w00t:

Sigur ca nimic nu te opreste sa alegi sa faci ceva foarte ambitios, dar care este rostul sa faci ceva mult mai prost decit exista?

Anyway, daca ai de facut un program care are nevoie de OCR sau orice alta chestie supercomplicata, ultimul lucru pe care vrei sa-l faci e sa reinventezi roata, mai ales in conditiile in care experienta ta in fabricat roti este nula. Alergi dupa cai verzi, in timp ce competitia o sa scoata fix ideea ta pe piata, implementata cum se cuvine, concentrindu-se pe implementarea ideii in sine, folosind solutii existente, robuste si dovedite...

#26
PlatonX

PlatonX

    Senior Member

  • Grup: Senior Members
  • Posts: 5,741
  • Înscris: 13.09.2009
Da, am receptionat eu gresit mesajul cand a spus sa facem ceva ce nu exista, ceva original.
Timpul pentru licenta este prea scurt pentru asa ceva, exceptand cazul in care incepi lucrarea din primul an sau chiar din liceu.

Cat despre implementat chestii facute de altii sunt de acord atat timp cat esti multimut de rezultate. Noi folosim aici PHPExcel si nu am decodat noi formatul fisierul XLS. Pe de alta parte pe cat posibil facem noi cod.

Cu OCR-ul daca nu ar face confuzii as fi OK, dar daca im spune ca litera o este 'o' in 99% din cazuri si in 1% imi spune ca este 'e', atunci ce incredere pot sa am in algoritmul lor ?

Edited by PlatonX, 19 March 2019 - 11:21.


#27
BraviaAmpero

BraviaAmpero

    Member

  • Grup: Members
  • Posts: 923
  • Înscris: 03.11.2018

View PostPlatonX, on 16 martie 2019 - 08:59, said:

Mai programeaza cineva in ziua de azi fara framework-uri ?
Bineinteles, orice programator  stie sa programeze fara/si cu frameworkuri..

Daca se cere un cal, atunci un operator de framework(deci nu programator)  iti va face un cal cu 6 picioare(doarece  un framework te obliga sa  lucrezi intr-un anumit fel) dupa care va dezactiva 2 picioare.
Insa un programator iti va crea un cal cu 4 picioare fara frameworkuri. De asemenea un programator poate (daca este cazul) sa-si creeze propriul framework.
De asemeni,  un utilizator de  framework-uri are toate sansele sa foloseasca acel framework ca anti-pattern in rezolvarea unor taskuri(adica folosirea deficitara a frameworkului)

#28
Mosotti

Mosotti

    Geniu umil

  • Grup: Senior Members
  • Posts: 33,295
  • Înscris: 21.04.2004
Povestile cu cai sint fix pix. Daca-ti ia 6 luni sa faci un cacat de cal cu 4 picioare si 2 zile sa faci un cal cu 6 picioare si sa tai 2 picioare, tre sa fii debil sa faci cai cu 4 picioare de la zero.  Oricum decizia de a alege un framework este o chestie cit se poate de complexa si delicata si poate face diferenta intre un proiect de succes si unul care se duce dracului intr-un mod cit se poate de fabulos. Practic e la fel de complicat ca si alegerea limbajului...

#29
PlatonX

PlatonX

    Senior Member

  • Grup: Senior Members
  • Posts: 5,741
  • Înscris: 13.09.2009
Din cate inteleg chestiie facute de la zero se preteaza pentru cei care au timp sau bani sa studieze si sa cerceteze tot felul de algoritmi, nu pentru proiectele comericale unde exista deadline si conteaza ca proiectul sa fie livrat la timp si in siguranta iar drumul cunoscut este cel mai sigur.

#30
MarianG

MarianG

    be that as it may

  • Grup: Moderators
  • Posts: 31,437
  • Înscris: 10.08.2005
progress not perfection

#31
Mosotti

Mosotti

    Geniu umil

  • Grup: Senior Members
  • Posts: 33,295
  • Înscris: 21.04.2004

View PostPlatonX, on 19 martie 2019 - 12:41, said:

Din cate inteleg chestiie facute de la zero se preteaza pentru cei care au timp sau bani sa studieze si sa cerceteze tot felul de algoritmi, nu pentru proiectele comericale unde exista deadline si conteaza ca proiectul sa fie livrat la timp si in siguranta iar drumul cunoscut este cel mai sigur.
Chestiile facute de la zero se preteaza atunci cind nu ai ce sa alegi pentru ca implementarea ta sa se incadreze in parametrii de performanta, hardware, cost etc. Daca de exempu ai nevoie de OCR cu detectie 100% si nu gasesti decit cu 99%. Pe de alta parte good luck sa implementezi ma bine ceva ce implementeaza altii de ani si ani :lol:

#32
PlatonX

PlatonX

    Senior Member

  • Grup: Senior Members
  • Posts: 5,741
  • Înscris: 13.09.2009
Ceea ce implementeaza altii de ani si ani sunt solutii generale, eu fac ceva specific: facturile alea au un tipar fix, rezolutie fixa, aceleasi fonturi, aceleasi culori. Cu partiturile s-ar putea sa o dau in bara in sensul ca baza de date sa fie uriasa, nu stiu pana peste cativa ani, dar macar am satisfactia ca am incercat. Totusi, dupa parerea mea merita efortul, o forumula matematica bazata pe combinatii este sigura nu este probabila, nu o poate contrazice nimeni, se verifica matematic.

Daca eram multumit de Musictek SmartScore X2 si Neuratron PhotoScore nu ma puneam eu sa reinventez roata.

Edited by PlatonX, 19 March 2019 - 13:25.


#33
Mosotti

Mosotti

    Geniu umil

  • Grup: Senior Members
  • Posts: 33,295
  • Înscris: 21.04.2004
Si ce faci daca dupa ce termini aplicatia ta vine un prost si da din pix si se schimba complet formatul facturilor? Daca vrei sa adaugi tipuri noi de factura? Te apuci sa modifici codul? :w00t:

PhotoScore o fi cum o fi, da AudioScore e infinit mai penibil :lol:

#34
PlatonX

PlatonX

    Senior Member

  • Grup: Senior Members
  • Posts: 5,741
  • Înscris: 13.09.2009
AudioScore este un esec total.

Eu am facut receptii la niste magazine si acolo erau facturi, de la fiecare furnizor era un tipar fix. Daca scrie cu pixul evident ca nu va merge, trebuie sa fie tipar fix pentru fiecare factura. La introducerea manuala a datelor de pe foi de obicei e scris de tipar si aceleasi fonturi, pe asta ma bazez eu: singura variabila este aranjarea coaractelerelor in pagina - marimea, fontul si culoarea sunt fixe.

Edited by PlatonX, 19 March 2019 - 13:55.


#35
Mosotti

Mosotti

    Geniu umil

  • Grup: Senior Members
  • Posts: 33,295
  • Înscris: 21.04.2004
Pai io aia zic, sint fixe AZI. Intr-o buna zi o sa vina un furnizor si o sa zica "Hei, baieti, avem un nou tip de factura. De ce? Fara nici un motiv, ne-am hotarit sa schimbam noi asa layoutu, fonturile si culorile, in plus ne-am pus si sigla in background". De-aia treburile trebuie sa fie configurabile. De fapt nici cind sint configurabile nu e sigur ca e de-ajuns de configurabil. Eu am facut pe vremuri un program de etichete, puteai sa le  editezi cu mouse-ul cum vrei. Dupa citiva ani m-au sunat aia daca nu pot sa-l modific si sa mai adaug chestii. Evident ca nu m-am bagat, deci probabil ori a trebuit sa gaseasca pe cineva sa faca de la zero, ori sa gaseasca o aplicatie care sa faca ceva de genul, dar pe vremea aia cam greu :lol:

#36
black1990

black1990

    Active Member

  • Grup: Members
  • Posts: 1,290
  • Înscris: 09.04.2008
a inceput bine acest topic si a terminat prost. Am citit cateva postari cu interes.

Anunturi

Chirurgia endoscopică a hipofizei Chirurgia endoscopică a hipofizei

"Standardul de aur" în chirurgia hipofizară îl reprezintă endoscopia transnazală transsfenoidală.

Echipa NeuroHope este antrenată în unul din cele mai mari centre de chirurgie a hipofizei din Europa, Spitalul Foch din Paris, centrul în care a fost introdus pentru prima dată endoscopul în chirurgia transnazală a hipofizei, de către neurochirurgul francez Guiot. Pe lângă tumorile cu origine hipofizară, prin tehnicile endoscopice transnazale pot fi abordate numeroase alte patologii neurochirurgicale.

www.neurohope.ro

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate