Pull to refresh

Comments 31

Я недавно на хабре видел решение по доступу к данным ЦИКа через их API

UFO landed and left these words here
Спасибо, прочитал статью с доступом по api
Работа интересная. Опыт полезный.
Но… А на самом деле API нет у ЦИКа?
На момент решения задачи не знал о существования api.
А зачем вы все операции попиксельно производили, если Pillow всё это умеет?
Что именно вы имеете ввиду, не совсем понял?
Зачем вы перебираете в циклах пиксели, когда все операции с изображениями, которые у вас реализованы вручную, умеет библиотека, которую вы используете для работы с изображением?
tesseract плохо работает с мелкими изображениями и с наклоненными у нее не всегда. Странно, что здесь нейросеть сразу с ходу с изображениями работает корректно. Мне приходилось даже не уже не мелкие цифры масштабировать, а потом обучать. Здесь же совсем крошечные, судя по картинке.
Интересно, не знал о таком инструменте, спасибо!
Момент разметки изображений в статье опущен или я что-то не понимаю и нейронка работает на магии?
Разметка была достаточно простая, цифры, которые нарезал раскидал по папкам с именами этих цифр
Только от 0 до 9, очень простая капча.

Увидел и опознал сразу знакомую капчу!
На ЦИК все субъектов была именно она. Чёрные понятные цифры на зелёном фоне.
Но да, докучала изрядно (реально ВСЯ навигация по сайту была через неё)

Что-то не строится модель (
На шаге 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)
В следующей строке тоже ошибка?:
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)?
Спасибо, функцию поправил.
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)
Эх, все равно не едет:
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))
По поводу нарезки капчи, поправил статью, там цифры перезаписывались, в коде была ошибка.
Нарезка все равно нарезает только 1000 цифр вместо 5000.
А после приходит твит, который изменил мою жизнь

В реальности история с капчей имела продолжение — довольно неприятное для ее организатора. Не знаю, многие ли посетители Хабра заметили связанную с этим новость, поэтому копирую ее сюда:
МОСКВА, 30 сен — РИА Новости. Михаил Попов покинул по собственному желанию должность руководителя Федерального центра информатизации при ЦИК после претензий к появлению множественной капчи на сайтах с результатами выборов, сообщила председатель ЦИК Элла Памфилова.
По итогам единого дня голосования многие эксперты высказали претензии к появлению множественных проверок пользователей (капчи) на сайте с результатами выборов. Попов объяснил это необходимостью сохранять работоспособность сайта в условиях множественных атак. Памфилова поручила убрать множественную капчу с сайта.
Да, о ситуации с тем, что капча ушла я узнал уже во время сбора информации с сайта, она странным образом начала пропадать)
Из 100500 способов опубликовать данные так, чтобы ничего не падало, они выбрали один из самых неудобных. Логично.
Sign up to leave a comment.

Articles