[-]
Szybkie szukanie


Baner sklepu jdtech.pl
Odpowiedz 
 
Ocena wątku:
  • 0 Głosów - 0 Średnio
  • 1
  • 2
  • 3
  • 4
  • 5
OpenCV i dekapcie
04-08-2016, 10:06
Post: #1
OpenCV i dekapcie
Czy ktos próbował napisac program do rozwiązywania kapci?
Tu znalazłem https://github.com/aero2a/kape-
jakies przykłady
Znajdź wszystkie posty użytkownika
Podziękuj Odpowiedz cytując ten post
04-08-2016, 14:35
Post: #2
OpenCV i dekapcie
To tylko spis kilku kapci zapisany na githubie dla innych do analizy.
Generator samych kodów też kiedyś też znaleźliśmy.
Ale kapeć jest niezłej jakości i nie bardzo da się go tanio rozwiązać, a na pewno nie przez analizę ID i kodów. (to są liczby losowe).
Znajdź wszystkie posty użytkownika
Podziękuj Odpowiedz cytując ten post
06-08-2016, 12:38 (Ten post był ostatnio modyfikowany: 06-08-2016 12:39 przez mikolaj.)
Post: #3
OpenCV i dekapcie
A czy ktoś próbował?
OpenCV ma rozpoznawanie twarzy. Dzieli obraz na maleńkie kawałki (idealne tu właśnie bo to wyjdą zakończenia liter)
Z tego co wiem jest gotowy skrypt do szukania obiektów.
Nauczyć program tych kilkudziesięciu znaków i po problemie. Odczytanie nawet na routerze by poszło. Niestety nauka to chyba duże wyzwanie. Może ktoś ma lepszy komp.

Jeśli jest znany algorytm generowania tych kapci to czy nie dało by się zrobić wyrównanie tego obrazu?
teraz jest porozciągany a nie da się go porozciągac odwrotnie by wyszedł zwykły obraz?
Znajdź wszystkie posty użytkownika
Podziękuj Odpowiedz cytując ten post
06-08-2016, 22:53
Post: #4
OpenCV i dekapcie
Poczytaj trochę o CAPTCHA - ekipa z Aero2 wybrała całkiem dobry generator. To nie jest trywialna praca. wyprostowanie i segmentacja w takich warunkach często jest bardzo trudne.
Znajdź wszystkie posty użytkownika
Podziękuj Odpowiedz cytując ten post
16-08-2016, 21:28
Post: #5
RE: OpenCV i dekapcie
alez poczytałem, wyprostowanie nie powinno byc trudne.
jeden obrazek jest wygięty dwoma funkcjami, które są znane. to sinus i cosinus z jakąś wartością.

sumujemy punkty pionowo i poziomo. jesli uzyskamy najwiekszy pik poziomo (kreska) i w miarę odzielone litery (grzebien) pionowo powinno dac się to odczytać. Można nawet metoda prób i błedów. Tylko trzeba napisać to w C . Próbowałem to pisac w skryptowych językach i jest to strasznie długo. Stąd prośba o pomoc w opencv lub innej bibliotece by to wyprostować.

Co więcej. Można by było zapuścić głębokie uczenie i wtedy algorytm sam się znajdzie. Niestety aby to zrobić trzeba mieć duży sprzet. Na prawde duży klaster rzędu kilkunastu komputerów przez tydzień.

P.S. Mam wrażenie , że zamiast zachecac dołujesz by nie napisac jakoś inaczej
Znajdź wszystkie posty użytkownika
Podziękuj Odpowiedz cytując ten post
16-08-2016, 22:14
Post: #6
OpenCV i dekapcie
Ja po prostu mam doświadczenie programistyczne z obróbki obrazu (praca magisterska), interesowałem się historią CAPTCHA jeszcze przed Aero2. Nie jestem specem od łamania tego, ale rozumiem jak to działa.
Jak dobrze poszukasz, znajdziesz generator używany przez Aero2 (szukałem w 2014 jak to wprowadzili i znalazłem, potem ponownie szukałem i nie udało mi się Smile ale nie miałem tyle czasu.
Sam algorytm przeanalizowałem, a do tego biorę pod uwagę:
- skalę zainteresowania
- potencjalny efekt (zmiana algorytmu)
- ramy czasowe (grudzień 2016)
I słabo to widzę. Choć nie zmienia to faktu, że jak czujesz żyłkę badacza algorytmów CAPTCHA, to chętnie potestuję, może w wolnej chwili (na ile dziecko mi pozwoli) pomogę.

Podpowiem, że problemy są dwa:
- Prostowanie (de facto nie jest to największy problem)
- Segmentacja (czarna linia pociągnięta przez napis ma to uniemożliwiać)

Zabawa w algorytm genetyczny nie bardzo ma sens bez głębszej wiedzy (nie mówię o kosztach wynajęcia klastra, załóżmy, że te kilkaset dolarów mamy i umiemy to użyć):
- Minimalna zmiana w parametrach generowania CAPTCHA i algorytm w ten sposób uzyskany może być do wymiany.
- Nie ma pewności, że w ogóle coś ci się uda stworzyć sensownego w ten sposób.

To co ma większe szanse powodzenia to użycie Captcha Brotherhood lub podobnego systemu. I to działa, sam testowałem.
Znajdź wszystkie posty użytkownika
Podziękuj Odpowiedz cytując ten post
19-08-2016, 12:06
Post: #7
OpenCV i dekapcie
Jeśli znasz się na obrazach to powiedz mi jak to wyprostować.

jeszcze raz powtarzam, to jest wygiecie o sinus i cosinus razy x,y
jak chcesz znajde jeszcze raz algotyrm w php

Myslisz, ze usluga sie skonczy w 2016?
Znajdź wszystkie posty użytkownika
Podziękuj Odpowiedz cytując ten post
19-08-2016, 21:06
Post: #8
OpenCV i dekapcie
Może i tak, ale w dwóch wymiarach, co trochę komplikuje sprawę. Jak bym poszukał generatora (jak mówiłem kiedyś go już znalazłem, teraz nie daję rady) i spróbował wykombinować parametry, jakie mu zostały podane.

Nie wiem, ale na razie oficjalnie tak.
Znajdź wszystkie posty użytkownika
Podziękuj Odpowiedz cytując ten post
31-08-2016, 17:28
Post: #9
RE: OpenCV i dekapcie
Jak to zwykle bywa moje zapiski trzeba bylo odtwarzac z backupu ;-( ale to tak zawsze jak coś się zmienia.
Kod jest w php i jest znany.

http://code.google.com/p/cool-php-captcha
font jest znany bo bardzo stara czcionka. Antykwa http://jmn.pl/en/antykwa-poltawskiego/ w katalogu fonts jest

można zatem wygenerować sobie mnóstwo przykładów pojedyńczych liter.

główny kod to:

protected function WaveImage() {
// X-axis wave generation
$xp = $this->scale*$this->Xperiod*rand(1,3);
$k = rand(0, 100);
for ($i = 0; $i < ($this->width*$this->scale); $i++) {
imagecopy($this->im, $this->im,
$i-1, sin($k+$i/$xp) * ($this->scale*$this->Xamplitude),
$i, 0, 1, $this->height*$this->scale);
}
// Y-axis wave generation
$k = rand(0, 100);
$yp = $this->scale*$this->Yperiod*rand(1,2);
for ($i = 0; $i < ($this->height*$this->scale); $i++) {
imagecopy($this->im, $this->im,
sin($k+$i/$yp) * ($this->scale*$this->Yamplitude), $i-1,
0, $i, $this->width*$this->scale, 1);
}
}

Jak widzisz to losowe liczby od 1 do 2 i proste dwie funkcje.
Nie trzeba idealnie ich znać by rozszyfrowac kapcia. OCR który odpalisz na routerze spokojnie poradzi sobie z drobnymi zmianami. Niestety próbowałem uczyć OpenCV i brakło mi procesora, nauka tesseracta nie powiodła sie. Może źle konfigurowałem
Znajdź wszystkie posty użytkownika
Podziękuj Odpowiedz cytując ten post
31-08-2016, 20:16
Post: #10
OpenCV i dekapcie
Jeżeli uważasz to za możliwe, to ja bym zaczął od wyprostowania (wyznaczenie współczynników wygięcia), a następnie segmentacji - na litery. Ale nie mam pomysłu, jak się za to zabrać, choć szeryfy pomagają.
Znajdź wszystkie posty użytkownika
Podziękuj Odpowiedz cytując ten post
09-09-2016, 14:06
Post: #11
RE: OpenCV i dekapcie
(31-08-2016 20:16)jakubd napisał(a):  Jeżeli uważasz to za możliwe, to ja bym zaczął od wyprostowania (wyznaczenie współczynników wygięcia), a następnie segmentacji - na litery. Ale nie mam pomysłu, jak się za to zabrać, choć szeryfy pomagają.

Na początek nie wiem jak przeczytać pixel i zobaczyć jaki ma kolor.

Najprostszym sposobem to zsumowanie pixeli po x i po y
dostajemy tablicę z ilością pixeli poziomo i pionowo.
to pozwoli nam ocenić które wygięcie jest lepsze.
przerwy między literami będą widoczne na sumach pionowych

zaś poziomo zobaczymy linię i jeśli dane będą bardziej zwarte.

Teraz pytanie do Ciebie. Pomożesz napisać to w C?
a) obliczyć sumy pikseli (chodzi o to by to liczyc szybko, liczyłem w ruby, ale to wolne jest nie na router)
b) wylosować takie same liczby tylko odwrotnie skierowane i przekształcić obrazek

Oczywiście eksperymentalnie (może sieci neuronowe) trzeba by bylo nauczyć które wygięcie jest lepsze a które gorsze, ale nawet od biedy można po prostu zapuścic ocr i czy lepiej przeczyta (bez błedów) też może być taka funkcją.

to wszystko.
Znajdź wszystkie posty użytkownika
Podziękuj Odpowiedz cytując ten post
09-09-2016, 22:17
Post: #12
OpenCV i dekapcie
Liczenie sum pikseli nie ma sensu - znaki się nie tylko pokrzywione góra/dół, ale też na boki.
Nie zrobisz łatwo segmentacji - bo po to są linie przechodzące przez znaki.

Losowanie znaków - nie rozumiem po co.

To co trzeba zrobić, to znaleźć argumenty funkcji wykrzywiającej.
Znajdź wszystkie posty użytkownika
Podziękuj Odpowiedz cytując ten post
10-09-2016, 09:33
Post: #13
RE: OpenCV i dekapcie
(09-09-2016 22:17)jakubd napisał(a):  Liczenie sum pikseli nie ma sensu - znaki się nie tylko pokrzywione góra/dół, ale też na boki.
Nie zrobisz łatwo segmentacji - bo po to są linie przechodzące przez znaki.

Rozumiem, ze zakladamy repozytorium i probujemy? Pokaz mi szybkie sumowanie pixeli, a ja Ci pokaze ze to cos daje. To bedzie nasza funkcja wartosciujaca jak dobrze lub jak zle wyprostowalismy obrazek.
Znajdź wszystkie posty użytkownika
Podziękuj Odpowiedz cytując ten post
14-09-2016, 08:22
Post: #14
RE: OpenCV i dekapcie
(10-09-2016 09:33)mikolaj napisał(a):  
(09-09-2016 22:17)jakubd napisał(a):  Liczenie sum pikseli nie ma sensu - znaki się nie tylko pokrzywione góra/dół, ale też na boki.
Nie zrobisz łatwo segmentacji - bo po to są linie przechodzące przez znaki.

Rozumiem, ze zakladamy repozytorium i probujemy? Pokaz mi szybkie sumowanie pixeli, a ja Ci pokaze ze to cos daje. To bedzie nasza funkcja wartosciujaca jak dobrze lub jak zle wyprostowalismy obrazek.

rozumiem
Znajdź wszystkie posty użytkownika
Podziękuj Odpowiedz cytując ten post
14-09-2016, 21:00
Post: #15
OpenCV i dekapcie
Są gotowe procedury do OpenCV, z tego co zobaczyłem - napisanie tego to kilka chwil na głupich forach.
Ja w tej chwili po prostu nie dysponuję czasem na to.
Znajdź wszystkie posty użytkownika
Podziękuj Odpowiedz cytując ten post
04-10-2016, 22:21
Post: #16
RE: OpenCV i dekapcie
(14-09-2016 21:00)jakubd napisał(a):  Są gotowe procedury do OpenCV, z tego co zobaczyłem - napisanie tego to kilka chwil na głupich forach.
Ja w tej chwili po prostu nie dysponuję czasem na to.

myslisz, ze wyzywanie kogoś i mówienie o głupich forach ma sens?
Znajdź wszystkie posty użytkownika
Podziękuj Odpowiedz cytując ten post
05-10-2016, 12:49
Post: #17
OpenCV i dekapcie
Sorry, zadziałała autokorekta w telefonie. Chodziło o różne fora - na których można znaleźć gotowe recepty na typ;owe zadania w OpenCV.
Znajdź wszystkie posty użytkownika
Podziękuj Odpowiedz cytując ten post
Odpowiedz