Комментарии 31
Я недавно на хабре видел решение по доступу к данным ЦИКа через их API
Работа интересная. Опыт полезный.
Но… А на самом деле API нет у ЦИКа?
Но… А на самом деле API нет у ЦИКа?
accuracy = 1.0000? Наконец-то нейросеть=человек!
А зачем вы все операции попиксельно производили, если Pillow всё это умеет?
tesseract такую капчу распознает довольно уверенно.
tesseract плохо работает с мелкими изображениями и с наклоненными у нее не всегда. Странно, что здесь нейросеть сразу с ходу с изображениями работает корректно. Мне приходилось даже не уже не мелкие цифры масштабировать, а потом обучать. Здесь же совсем крошечные, судя по картинке.
Момент разметки изображений в статье опущен или я что-то не понимаю и нейронка работает на магии?
Увидел и опознал сразу знакомую капчу!
На ЦИК все субъектов была именно она. Чёрные понятные цифры на зелёном фоне.
Но да, докучала изрядно (реально ВСЯ навигация по сайту была через неё)
Что-то не строится модель (
На шаге train_data = X_train.reshape(X_train.shape[0], 10*10) пишет:
AttributeError: 'list' object has no attribute 'shape'
ps.
type(X_train)
<class 'list'>
А функция нарезки капч нарезает только первую цифру капчи. Итого из 1000 капч только 1000 цифр…
На шаге train_data = X_train.reshape(X_train.shape[0], 10*10) пишет:
AttributeError: 'list' object has no attribute 'shape'
ps.
type(X_train)
<class 'list'>
А функция нарезки капч нарезает только первую цифру капчи. Итого из 1000 капч только 1000 цифр…
Да согласен, моя вина, забыл добавить кусок кода с преобразованием X_train в np.array
X_Train = np.array(X_Train)
y_train = np.array(y_train)
X_Train = np.array(X_Train)
y_train = np.array(y_train)
В следующей строке тоже ошибка?:
test_data = X_test.reshape(X_test.shape[0], 10*10)
AttributeError: 'list' object has no attribute 'reshape'
Однако, если по аналогии прописать:
X_test = np.array(X_test)
y_test = np.array(y_test)
То все равно вываливается:
Кроме того, строку def mnist_make_model(10,10): не пропускает.
Скорее всего def mnist_make_model(x,y)?
test_data = X_test.reshape(X_test.shape[0], 10*10)
AttributeError: 'list' object has no attribute 'reshape'
Однако, если по аналогии прописать:
X_test = np.array(X_test)
y_test = np.array(y_test)
То все равно вываливается:
batch_input_shape = (batch_size,) + tuple(kwargs['input_shape'])
TypeError: 'int' object is not iterable
Кроме того, строку def mnist_make_model(10,10): не пропускает.
Скорее всего def mnist_make_model(x,y)?
Спасибо, функцию поправил.
По поводу подготовки тестовых данных, после загрузки изображений из папок сразу преобразовать лист в np.array
def mnist_make_model(image_w: int, image_h: int):
# Neural network model
model = Sequential()
model.add(Dense(image_w*image_h, activation='relu', input_shape=(image_h*image_h)))
model.add(Dense(10, activation='softmax'))
model.compile(loss='categorical_crossentropy', optimizer=RMSprop(), metrics=['accuracy'])
return model
По поводу подготовки тестовых данных, после загрузки изображений из папок сразу преобразовать лист в np.array
X_Digit = np.array(X_Digit)
y_digit = np.array(y_digit)
Эх, все равно не едет:
*X_Digit уже в np.array формируется в цикле: X_Digit.append(np.array(im2))
in mnist_make_model
model.add(Dense(image_w*image_h, activation='relu', input_shape=(image_h*image_h)))
...
batch_input_shape = (batch_size,) + tuple(kwargs['input_shape'])
TypeError: 'int' object is not iterable
*X_Digit уже в np.array формируется в цикле: X_Digit.append(np.array(im2))
По поводу нарезки капчи, поправил статью, там цифры перезаписывались, в коде была ошибка.
А после приходит твит, который изменил мою жизнь
В реальности история с капчей имела продолжение — довольно неприятное для ее организатора. Не знаю, многие ли посетители Хабра заметили связанную с этим новость, поэтому копирую ее сюда:
МОСКВА, 30 сен — РИА Новости. Михаил Попов покинул по собственному желанию должность руководителя Федерального центра информатизации при ЦИК после претензий к появлению множественной капчи на сайтах с результатами выборов, сообщила председатель ЦИК Элла Памфилова.
По итогам единого дня голосования многие эксперты высказали претензии к появлению множественных проверок пользователей (капчи) на сайте с результатами выборов. Попов объяснил это необходимостью сохранять работоспособность сайта в условиях множественных атак. Памфилова поручила убрать множественную капчу с сайта.
А вы могли бы и в этом году такую же модную парсилку сделать? :)
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Как задача из классического сбора данных перешла в решение простенькой задачи MNIST. Или как я спарсил сайт ЦИК