Kirjoittaja Aihe: Pythonin cv2 johdatti tutkimaan pakettia  (Luettu 236 kertaa)

ilkant

  • Käyttäjä
  • Viestejä: 1831
  • Kubuntu
    • Profiili
Pythonin cv2 johdatti tutkimaan pakettia
« : 10.10.26 - klo:05.30 »
FaceBookissa oli kuvana koodi, joka osaisi napata kuvassa olevan tekstin. Naputtelin sen, paitsi en pääohjelman graafista Tkinter-käyttöliittymää. ChatGPT antoi muutaman vinkin, jolla tekstin tunnistusta pystyi parantamaan kun aluksi se löysi aika outoja sepustuksia kuvan python-koodista. Niillä vinkeillä se osasikin sitten saada kuvasta python-kielisen ohjelman. Yksi pieni vika: tabulointia se ei osannut. En tiedä vaikuttiko siihen se, että kuvassa jokainen ohjelmarivi oli numeroitu.

ChatGPT ehdotti ast-paketin parsea + unparsea. Tätä en kuitenkaan nyt alkanut kokeilla.

Sitävastoin ChatGPT vinkkasi, että cv2-moduulia ei ole pythonissa vaan se on opencv-python. Sen versio oli 5.0.0. Pyysin sitten linkkejä dokumentointiin. Version 5 uudet ominaisuudet löytyvät täältä ja version 5 manuaali täältä.

Tuo ei olekaaan pelkkä teksti kuvasta paketti. Se on laaja konenäön työkalupakki, josta voi olla iloa monenlaisissa Python-projekteissasi.

OpenCV:ssä on esimerkiksi:
- Kuvankäsittely: kontrastin parantaminen, suodatus, kohinan poisto, reunojen tunnistus ja perspektiivikorjaukset.
- Konenäkö: muotojen, piirteiden ja kohteiden tunnistaminen.
- Videoanalyysi: liikkeen seuranta ja videokuvan käsittely.
- 3D ja kamerat: kameran kalibrointi, syvyystiedon arviointi ja kolmiulotteinen geometria.
- Koneoppiminen: neuroverkkomallien hyödyntäminen esimerkiksi kuvien luokittelussa ja kohteiden tunnistamisessa.
« Viimeksi muokattu: 10.10.26 - klo:05.37 kirjoittanut ilkant »

nm

  • Käyttäjä
  • Viestejä: 17119
    • Profiili
Vs: Pythonin cv2 johdatti tutkimaan pakettia
« Vastaus #1 : 10.10.26 - klo:11.38 »
Tuo ei olekaaan pelkkä teksti kuvasta paketti. Se on laaja konenäön työkalupakki, josta voi olla iloa monenlaisissa Python-projekteissasi.

OpenCV:ssä on tehokkaita toteutuksia monenlaisista perustason kuvankäsittelyoperaatioista ja joitain monimutkaisempia konenäköön liittyviä malleja mm. kasvontunnistukseen. Varsinaista OCR:ää (optical character recognition) siinä ei kuitenkaan ole, eli sitä varten tarvitaan lisäksi muita paketteja, kuten Tesseract tai modernimpi PaddleOCR.

ilkant

  • Käyttäjä
  • Viestejä: 1831
  • Kubuntu
    • Profiili
Vs: Pythonin cv2 johdatti tutkimaan pakettia
« Vastaus #2 : 10.10.26 - klo:20.03 »
Pyysin ChatGPT:n lisäksi Claude Opusta kirjoittamaan koodin. Se otti OCR-paketin ja muitakin eli teki isomman koodimäärän. Mutta sekään ei tabulointiongelmaa ratkaissut. Tässä nyt todettakoon, että ongelma on pythonin pakettien kyvyttämyydessä, ei tekoälyn. Tekoäly osaa muodostaa kuvasta tekstimuotoisen python-ohjelman. Clauden tekemä Tkniter-käyttöliittymällisessä ohjalmssa oli täppä, jossa pyrtyi ruksimaan kuvan sisältävän nimenomaan python-koodia. Mutta ei se auttanut. Ruksittuna se otti kuvasta rivinumerot mukaan, mutta ei osannut tabulointeja. Ruksaamattomana antoi koodin rivinumeroitta.

Jostain syystä tänään ChatGPT ei enää osannut tehdä kuvasta python-koodia vaan sanoi, ettei ymmärrä.  :) Maksullinen Claude osaa. Ehkä olen käyttänyt ilmaisen ChatGPT:n päivän resurssit niin vähiin, ettei kuvia analysoida. Tai sitten se ei enää halua niin tehdä koskaan.

nm

  • Käyttäjä
  • Viestejä: 17119
    • Profiili
Vs: Pythonin cv2 johdatti tutkimaan pakettia
« Vastaus #3 : tänään kello 16:00 »
Olen itsekin kehittänyt OCR-sovelluksia, joissa on ollut tarvetta mm. tulkita erilaisia melko vapaamuotoisia taulukoita. Python-ohjelmakoodin lukeminen toimivaan muotoon vaatii tosiaan sisennysten tulkinnan, mutta on sinänsä aika helposti ratkaistavissa. Lisäksi rivinumerot pitää poistaa, jos ne tulevat mukaan, ja koodi kannattaa ajaa syntaksitarkistuksen läpi. Pyysitkö Claudea ratkaisemaan nimenomaan OCR:llä sisään luettavan Python-koodin sisennysongelman? Sen pitäisi kyllä hoksata mistä on kysymys, ja osata ratkaista tämä, jos vain osaat muotoilla tehtävän ymmärrettävästi.

Sovelluskohde on kyllä jokseenkin erikoinen. Hieman ihmettelen, miksi Facebooksissa jaettu ohjelmakoodi on kuvana eikä tekstinä, ja onko siinä koodinpätkässä jotain niin erikoista, ettei LLM osaisi koodata samaa suoraankin?