Случайны выбор дневника Раскрыть/свернуть полный список возможностей


Найдено 385 сообщений
Cообщения с меткой

распознавание - Самое интересное в блогах

Следующие 30  »
rss_rss_hh_new

Smart IDReader SDK — добавляем распознавание в Android приложения

Вторник, 18 Июля 2017 г. 09:01 (ссылка)

Привет, Хабр! В одной из прошлых наших статей изучался вопрос встраивания ядра распознавания Smart IDReader в iOS приложения. Пришло время обсудить эту же проблему, но для ОС Android. Ввиду большого количества версий системы и широкого парка устройств это будет посложнее, чем для iOS, но всё же вполне решаемая задача. Disclaimer – приведённая ниже информация не является истинной в последней инстанции, если вы знаете как упростить процесс встраивания/работы с камерой или сделать по другому – добро пожаловать в комментарии!



Допустим, мы хотим добавить функционал распознавания документов в своё приложение и для этого у нас есть Smart IDReader SDK, который состоит из следующих частей:




  • bin – сборка библиотеки ядра libjniSmartIdEngine.so для 32х битной архитектуры ARMv7

  • bin-64 – сборка библиотеки ядра libjniSmartIdEngine.so для 64х битной архитектуры ARMv8

  • bin-x86 – сборка библиотеки ядра libjniSmartIdEngine.so для 32х битной архитектуры x86

  • bindings – JNI обёртка jniSmartIdEngineJar.jar над библиотекой libjniSmartIdEngine.so

  • data – файлы конфигурации ядра

  • doc – документация к SDK



Некоторые комментарии по содержанию SDK.



Наличие трех сборок библиотеки под разные платформы – плата за большое разнообразие устройств на ОС Android (сборку для MIPS не делаем по причине отсутствия устройств данной архитектуры). Сборки для ARMv7 и ARMv8 являются основными, версия для x86 обычно используется нашими клиентами для конкретных устройств на базе мобильных процессоров Intel.



Обёртка JNI (Java Native Interface) jniSmartIdEngineJar.jar требуется для вызова C++ кода из Java приложений. Сборка обёртки у нас автоматизирована с помощью инструментария SWIG (simplified wrapper and interface generator).



Итак, как говорят французы, revenons `a nos moutons! У нас есть SDK и нужно с минимальными усилиями встроить его в проект и начать использовать. Для этого потребуются следующие шаги:




  1. Добавление необходимых файлов к проекту

  2. Подготовка данных и инициализация движка

  3. Подключение камеры к приложению

  4. Передача данных и получение результата



Для того чтобы каждый мог поиграться с библиотекой мы подготовили и выложили исходный код Smart IDReader Demo for Android на Github. Проект сделан для Android Studio и демонстрирует пример работы с камерой и ядром на основе простого приложения.



Добавление необходимых файлов к проекту



Рассмотрим данный процесс на примере проекта приложения под Android Studio, для пользователей других IDE процесс не особо отличается. По умолчанию в каждом проекте Android Studio создает папку libs, из которой сборщик Gradle забирает и добавляется к проекту JAR файлы. Именно туда скопируем JNI обёртку jniSmartIdEngineJar.jar. Для добавления библиотек ядра существует несколько способов, проще всего это сделать с помощью JAR архива. Создаем в папке libs архив с именем native-libs.jar (это важно!) и внутри архива подпапки lib/armeabi-v7a и lib/arm64-v8a и помещаем туда соответствующие версии библиотек (для x86 библиотеки подпапка будет lib/x86).



В этом случае ОС Android после установки приложения автоматически развернёт нужную версию библиотеки для данного устройства. Сопутствующие файлы конфигурации движка добавляем в папку assets проекта, если данная папка отсутствует, то её можно создать вручную или с помощью команды File|New|Folder|Assets Folder. Как видим, добавить файлы к проекту очень просто и занимает совсем немного времени.



Подготовка данных и инициализация движка



Итак, мы добавили необходимые файлы к приложению и даже успешно его собрали. Руки так и тянутся попробовать новый функционал в деле, но для этого нужно ещё немного поработать :-) А именно сделать следующее:




  • Развернуть файлы конфигурации ядра из assets

  • Загрузить библиотеку и инициализировать движок



Чтобы библиотека могла получить доступ к файлам конфигурации необходимо перенести их из assets в рабочую папку приложения. Достаточно сделать это один раз при запуске и затем обновлять только при выходе новой версии. Проще всего такую проверку сделать, основываясь на версии кода приложения, и если она изменилась то обновить файлы.



// текущая версия кода приложения
int version_code = BuildConfig.VERSION_CODE;

SharedPreferences sPref = PreferenceManager.getDefaultSharedPreferences(this);

// версия кода из настроек
int version_current = sPref.getInt("version_code", -1);

// если версии отличаются нужно обновить данные
need_copy_assets = version_code != version_current;

// обновляем версию кода в настройках
SharedPreferences.Editor ed = sPref.edit();
ed.putInt("version_code", version_code);
ed.commit();


if (need_copy_assets == true)
copyAssets();


Сама процедура копирования не сложна и заключается в получении данных из файлов, находящихся в assets приложения, и записи эти данных в файлы рабочего каталога. Пример кода функции, осуществляющей такое копирование, можно посмотреть в примере на Github.



Осталось только загрузить библиотеку и инициализировать ядро. Вся процедура занимает определённое время, поэтому разумно выполнять её в отдельном потоке, чтобы не затормаживать основной GUI поток. Пример инициализации на основе AsyncTask



private static RecognitionEngine engine;
private static SessionSettings sessionSettings;
private static RecognitionSession session;
...
сlass InitCore extends AsyncTask {

@Override
protected Void doInBackground(Void... unused) {

if (need_copy_assets)
copyAssets();

// конфигурирование ядра
configureEngine();
return null;
}

@Override
protected void onPostExecute(Void aVoid) {
super.onPostExecute(aVoid);

if(is_configured)
{
// устанавливаем ограничения на распознаваемые документы (например, rus.passport.* означает подмножество документов российского паспорта)
sessionSettings.AddEnabledDocumentTypes(document_mask);

// получаем полные наименования распознаваемых документов
StringVector document_types = sessionSettings.GetEnabledDocumentTypes();
...
}
}
}

private void configureEngine() {

try {
// загрузка библиотеки ядра
System.loadLibrary("jniSmartIdEngine");

// путь к файлу настроек ядра
String bundle_path = getFilesDir().getAbsolutePath() + File.separator + bundle_name;

// инициализация ядра
engine = new RecognitionEngine(bundle_path);
// инициализация настроек сессии
sessionSettings = engine.CreateSessionSettings();

is_configured = true;

} catch (RuntimeException e) {
...

}
catch(UnsatisfiedLinkError e) {
...
}
}


Подключение камеры к приложению



Если ваше приложение уже использует камеру, то можете спокойно пропустить этот раздел и перейти к следующему. Для оставшихся рассмотрим вопрос использования камеры для работы с видео потоком для распознавания документов посредством Smart IDReader. Сразу оговоримся, что мы используем класс Camera, а не Camera2, хотя он и объявлен как deprecated начиная с версии API 21 (Android 5.0). Это осознанно сделано по следующим причинам:




  • Класс Camera значительно проще в использовании и содержит необходимый функционал

  • Поддержка старых устройств на Android 2.3.x и 4.x.x до сих пор актуальна

  • Класс Camera до сих пор отлично поддерживается, тогда как в начале запуска Android 5.0 у многих производителей были проблемы с реализацией Camera2



Чтобы добавить поддержку камеры в приложение нужно прописать в манифест следующие строки:






Хорошим тоном является запрос разрешения на использование камеры, реализованные в Android 6.x и выше. К тому же пользователи этих систем всегда могут отобрать разрешения у приложения в настройках, так что проверку все равно проводить нужно.



// если необходимо - запрашиваем разрешение
if( needPermission(Manifest.permission.CAMERA) == true )
requestPermission(Manifest.permission.CAMERA, REQUEST_CAMERA);

public boolean needPermission(String permission) {
// проверка разрешения
int result = ContextCompat.checkSelfPermission(this, permission);
return result != PackageManager.PERMISSION_GRANTED;
}

public void requestPermission(String permission, int request_code)
{
// запрос на разрешение работы с камерой
ActivityCompat.requestPermissions(this, new String[]{permission}, request_code);
}

@Override
public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults)
{
switch (requestCode) {
case REQUEST_CAMERA: {
// запрос на разрешение работы с камерой
boolean is_granted = false;
for(int grantResult : grantResults)
{
if(grantResult == PackageManager.PERMISSION_GRANTED) // разрешение получено
is_granted = true;
}
if (is_granted == true)
{
camera = Camera.open(); // открываем камеру
....
}
else
toast("Enable CAMERA permission in Settings");
}
default:
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
}
}


Важной частью работы с камерой является установка её параметров, а именно режима фокусировки и разрешения предпросмотра. Из-за большого разнообразия устройств и характеристик их камер этому вопросу следует уделить особое внимание. Если камера не поддерживает возможности фокусировки, то приходится работать с фиксированным фокусом или направленным на бесконечность. В таком случае особо ничего сделать нельзя, получаем изображения с камеры as is. А если нам повезло и фокусировка доступна, то проверяем, поддерживаются ли режимы FOCUS_MODE_CONTINUOUS_PICTURE или FOCUS_MODE_CONTINUOUS_VIDEO, что означает постоянный процесс фокусировки на объектах съемки в процессе работы. Если эти режимы поддерживаются, то выставляем их в параметрах. Если же нет, то можно сделать следующий финт – запустить таймер и самим вызывать функцию фокусировки у камеры с заданной периодичностью.



Camera.Parameters params = camera.getParameters();

// список поддерживаемых режимов фокусировки
List focus_modes = params.getSupportedFocusModes();
String focus_mode = Camera.Parameters.FOCUS_MODE_AUTO;
boolean isAutoFocus = focus_modes.contains(focus_mode);

if (isAutoFocus) {
if (focus_modes.contains(Camera.Parameters.FOCUS_MODE_CONTINUOUS_PICTURE))
focus_mode = Camera.Parameters.FOCUS_MODE_CONTINUOUS_PICTURE;
else if (focus_modes.contains(Camera.Parameters.FOCUS_MODE_CONTINUOUS_VIDEO))
focus_mode = Camera.Parameters.FOCUS_MODE_CONTINUOUS_VIDEO;
} else {
// если нет автофокуса то берём первый возможный режим фокусировки
focus_mode = focus_modes.get(0);
}

// установка режима фокусировки
params.setFocusMode(focus_mode);

// запуск автофокуса по таймеру если нет постоянного режима фокусировки
if (focus_mode == Camera.Parameters.FOCUS_MODE_AUTO)
{
timer = new Timer();
timer.schedule(new Focus(), timer_delay, timer_period);
}

// таймер периодической фокусировки
private class Focus extends TimerTask {

public void run() {
focusing();
}
}

public void focusing() {

try{
Camera.Parameters cparams = camera.getParameters();

// если поддерживается хотя бы одна зона для фокусировки
if( cparams.getMaxNumFocusAreas() > 0)
{
camera.cancelAutoFocus();
cparams.setFocusMode(Camera.Parameters.FOCUS_MODE_AUTO);
camera.setParameters(cparams);
}
}catch(RuntimeException e)
{
...
}
}


Установка разрешения предпросмотра достаточно проста, основные требования чтобы соотношения сторон preview камеры соответствовали сторонам области отображения для отсутствия искажений при просмотре, и желательно чтобы разрешение было как можно выше, так как от него зависит качество распознавания документа. В нашем примере приложение отображает preview на весь экран, поэтому выбираем максимальное разрешение, соответствующее соотношениям сторон экрана.



DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);

// соотношение сторон экрана
float best_ratio = (float)metrics.heightPixels / (float)metrics.widthPixels;

List sizes = params.getSupportedPreviewSizes();
Camera.Size preview_size = sizes.get(0);

// допустимое отклонение от оптимального соотношения при выборе
final float tolerance = 0.1f;
float preview_ratio_diff = Math.abs( (float) preview_size.width / (float) preview_size.height - best_ratio);

// выбираем оптимальное разрешение preview камеры по соотношению сторон экрана
for (int i = 1; i < sizes.size() ; i++)
{
Camera.Size tmp_size = sizes.get(i);
float tmp_ratio_diff = Math.abs( (float) tmp_size.width / (float) tmp_size.height - best_ratio);

if( Math.abs(tmp_ratio_diff - preview_ratio_diff) < tolerance && tmp_size.width > preview_size.width || tmp_ratio_diff < preview_ratio_diff)
{
preview_size = tmp_size;
preview_ratio_diff = tmp_ratio_diff;
}
}

// установка размера preview в настройках камеры
params.setPreviewSize(preview_size.width, preview_size.height);


Осталось совсем немного – установить ориентацию камеры и отображение preview на поверхность Activity. По умолчанию углу 0 градусов соответствует альбомная ориентация устройства, при поворотах экрана её нужно соответственно менять. Тут можно еще вспомнить добрым словом Nexus 5X от Google, матрица которого установлена в устройстве вверх ногами и для которого нужна отдельная проверка на ориентацию.



private boolean is_nexus_5x = Build.MODEL.contains("Nexus 5X");
SurfaceView surface = (SurfaceView) findViewById(R.id.preview);
...
// портретная ориентация
camera.setDisplayOrientation(!is_nexus_5x ? 90: 270);
// отображение preview на поверхность приложения
camera.setPreviewDisplay(surface.getHolder());
// начало процесса preview
camera.startPreview();


Передача данных и получение результата



Итак, камера подключена и работает, осталось самое интересное – задействовать ядро и получить результат. Запускаем процесс распознавания, начав новую сессию и установив callback для получения кадров с камеры в режиме preview.



void start_session()
{
if (is_configured == true && camera_ready == true) {

// установка параметров сессии, например тайм-аут
sessionSettings.SetOption("common.sessionTimeout", "5.0");

// создании сессии распознавания
session = engine.SpawnSession(sessionSettings);

try {

session_working = true;

// семафоры готовности кадра к обработке и ожидания кадра
frame_waiting = new Semaphore(1, true);
frame_ready = new Semaphore(0, true);

// запуск потока распознавания в отдельном AsyncTask
new EngineTask().execute();

} catch (RuntimeException e) {
...
}

// установка callback для получения изображений с камеры
camera.setPreviewCallback(this);
}
}


Функция onPreviewFrame() получает текущее изображение с камеры в виде массива байт формата YUV NV21. Так как она может вызываться только в основном потоке, чтобы его не замедлять вызовы ядра для обработки изображения помещаются в отдельный поток с помощью AsyncTask, синхронизация процесса происходит с помощью семафоров. После получения изображения с камеры даём сигнал рабочему потоку начать его обработку, по окончании — сигнал на получение нового изображения.



// текущее изображение
private static volatile byte[] data;
...
@Override
public void onPreviewFrame(byte[] data_, Camera camera)
{
if(frame_waiting.tryAcquire() && session_working)
{
data = data_;
// семафор готовности изображения к обработке
frame_ready.release();
}
}

class EngineTask extends AsyncTask
{
@Override
protected Void doInBackground(Void... unused) {

while (true) {

try {
frame_ready.acquire(); // ждем новый кадр

if(session_working == false) // остановка если сессия завершена
break;

Camera.Size size = camera.getParameters().getPreviewSize();
// передаём кадр в ядро и получаем результат
RecognitionResult result = session.ProcessYUVSnapshot(data, size.width, size.height, !is_nexus_5x ? ImageOrientation.Portrait : ImageOrientation.InvertedPortrait);
...
// семафор ожидания нового кадра
frame_waiting.release();
}catch(RuntimeException e)
{
... }
catch(InterruptedException e)
{
...
}
}
return null;
}


После обработки каждого изображения ядро возвращает текущий результат распознавания. Он включает в себя найденные зоны документа, текстовые поля со значениями и флагами уверенности, а также графические поля, такие как фотографии или подписи. Если данные распознаны корректно или произошел тайм-аут, то устанавливается флаг IsTerminal, сигнализирующий о завершении процесса. Для промежуточных результатов можно производить отрисовку найденных зон и полей, показывать текущий прогресс по качеству распознавания и многое другое, все зависит от вашей фантазии.



void show_result(RecognitionResult result)
{
// получаем распознанные поля с документа
StringVector texts = result.GetStringFieldNames();
// получаем изображения с документа, такие как фотография, подпись и так далее
StringVector images = result.GetImageFieldNames();

for (int i = 0; i < texts.size(); i++) // текстовые поля документа
{
StringField field = result.GetStringField(texts.get(i));
String value = field.GetUtf8Value(); // данные поля
boolean is_accepted = field.IsAccepted(); .. статус поля
...
}

for (int i = 0; i < images.size(); i++) // графические поля документа
{
ImageField field = result.GetImageField(images.get(i));
Bitmap image = getBitmap(field.GetValue()); // получаем Bitmap
...
}

...
}


После этого нам остается только остановить процесс получения изображений с камеры и прекратить процесс распознавания.



void stop_session()
{
session_working = false;
data = null;

frame_waiting.release();
frame_ready.release();

camera.setPreviewCallback(null); // останавливаем процесс получения изображений с камеры
...
}


Заключение



Как можно убедиться на нашем примере, процесс подключения Smart IDReader SDK к Android приложениям и работа с камерой не являются чем-то сложным, достаточно всего лишь следовать некоторым правилам. Целый ряд наших заказчиков успешно применяют наши технологии в своих мобильных приложениях, причем сам процесс добавления нового функционала занимает весьма небольшой время. Надеемся, с помощью данной статьи и вы смогли убедиться в этом!



P.S. Чтобы посмотреть, как Smart IDReader выглядит в нашем исполнении после встраивания, вы можете скачать бесплатные полные версии приложений из App Store и Google Play.


Original source: habrahabr.ru (comments, light).

https://habrahabr.ru/post/332670/

Комментарии (0)КомментироватьВ цитатник или сообщество
stertenorva

Минюст приобрел программу для распознавания лиц

Пятница, 30 Июня 2017 г. 21:19 (ссылка)

Министерство юстиции РФ закупило отечественную программу распознавания лиц, не имеющую аналогов за рубежом. Об этом в четверг пишет газета "Известия".

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
rss_rss_hh_new

Биометрия: не так сложно, как кажется

Вторник, 30 Мая 2017 г. 13:27 (ссылка)





Сегодня много говорят о многофакторной идентификации, как о способе качественно повысить уровень безопасности. При этом далеко не на каждом проекте рассматривают биометрические факторы, как дополнительный уровень защиты. А зря. Стоило бы! Потому что сегодня доступны надежные и достоверные способы работы с биометрической информацией, которые можно внедрить в существующую инфраструктуру без больших затрат.



При том, что системы контроля и управления доступом (СКУД) применяются сегодня в большинстве производственных компаний, государственных структур и бизнес-центров, в своей массе эти решения базируются на картах RFID старого поколения. Привычный всем пластмассовый бейдж HID Prox служит спутником сотрудников при перемещении по разным зонам, но для всех уже очевидно, что одна RFID-карта не обеспечивает надлежащего уровня безопасности, ведь ее можно украсть, потерять, забыть или просто подделать.



Да, существуют более совершенные карты, такие как многофункциональные iClass с поддержкой шифрования, и даже включающие в себя генератор случайных паролей. Вместе с сотовым телефоном они вполне могут обеспечить многофакторную идентификацию, но не отличаются теми преимуществами, которые дают биометрические методы – последние не позволяют украсть что-то у сотрудника, чтобы получить доступ. Отрубить руку, конечно, можно, но это будет уже куда более тяжкое преступление, а имитация 3Д-лица вообще пока что дело фантастических фильмов.







Именно потому, что карту можно украсть, многие компании используют методы фотоверификации. Обычно они реализованы в ручном режиме, когда сотрудник службы безопасности сверяет фотографию на документе с лицом человека, использующего данный пропуск. Но человеку требуется значительное время, чтобы проверить соответствие, да и ошибки не исключены. А по результатам исследований NIST (National Institute of Standards and Technology), текущий уровень развития алгоритмов автоматизированной фотоидентификации, вышедших из практики нейронных сетей, позволяет значительно повысить точность и свести к считанным долям секунды скорость распознавания.



Виды биометрической идентификации



Благодаря появлению доступных терминалов, биометрические технологии стали использоваться все чаще. Доказательство тому – наличие считывателей отпечатков пальцев в смартфонах. Если уж туда засунули датчик без особого удорожания устройства, для корпоративной инфраструктуры это не является проблемой. Сегодня вполне реальным выглядит создание трех типов систем биометрической идентификации:


  • По отпечатку пальца – считыватель устанавливается на проходной или рядом с дверью и позволяет фиксировать вход и выход человека без каких-либо дополнительных документов

  • По голосу – анализ голоса может происходить в любой точке помещения, либо от человека может потребоваться позвонить на определенный номер со своего телефона.

  • По внешнему облику – полностью бесконтактный способ идентификации в результате сравнения изображения лица, полученного в видеопотоке, с хранящимся шаблоном.







Развитие данных технологий, и особенно последней, могут очень сильно изменить работу социальных объектов. Например, фотоверификация владельца единой транспортной карты с льготной стоимостью поездок позволит не пропустить через валидатор человека, которому не принадлежит карта, упростив контроль работы транспортных систем в столице и других городах. Аналогичные сценарии могут применяться на производстве и в бизнес-центрах.



Внедрять или не внедрять?



Как мы все хорошо знаем, для любого проекта актуальны технологический и организационный барьеры. Сегодня можно уверенно сказать, что с технологической точки зрения биометрические системы полностью готовы к работе в самом широком спектре применения. Но вот с организационным моментом возникают трудности.



Тем не менее, когда пользователи получают выбор, они начинают видеть и ценить преимущества биометрической идентификации. Например, в технопарке Набережных Челнов была реализована однофакторная идентификация, но с возможностью выбора – посетители могут использовать либо RFID-карту, либо отпечаток своего пальца. Наблюдая за этим проектом, мы заметили, что изначально вторым методом пользовалось лишь 5-10% посетителей, но через год соотношение оказалось 50x50. Возможно, это и есть лучший способ дать персоналу привыкнуть – предоставить ему выбор, пользоваться старой системой или новой.



Конвергентные системы



Но пока многие размышляют, как усилить многофакторную аутентификацию, технологии продолжают развиваться, и биометрия используется одновременно для систем СКУД и в информационных системах. Мы считаем, что инструменты IAM (Identity Access Management), скоро будут интегрированы со средствами обеспечения для физического доступа.



Как это будет работать? Сценариев существует достаточно много. В частности, при входе в офис можно сфотографировать себя мобильным устройством (например, средствами приложения HID Mobile), а в случае подтверждения соответствия лица, получает доступ к RFID-считывателю, чтобы приложить свою карту. Такой подход позволит вообще забыть о том, что такое бюро пропусков, одновременно увеличив безопасность доступа в разы.



Также имеется возможность настроить идентификацию по голосу для получения одноразовых паролей доступа к информационным системам. Что может быть проще – позвонить на нужный номер, повторить фразу вслед за роботом и принять код в SMS. При этом кража телефона ничего не даст – ведь авторизация происходит и по номеру, и по голосу пользователя.



Стоимость внедрения



Итак, если у вас уже есть СКУД, переход на биометрическую идентификацию, как правило, подразумевает замену считывающих устройств. Если вы задумываетесь о дактилоскопии, то вопрос решается в пределах $200 за один терминал, но зато пропадает необходимость поддерживать устаревшие пропуски и отвечать за риски безопасности.



С организационной точки зрения, посетителям нужно лишь оформить заявку заранее и согласиться на обработку персональных данных. После предоставления нужной информации прямо на сайте организации, человеку предоставляется доступ по тому биометрическому признаку, который используется в системе. Помимо датчиков считывания отпечатков пальцев можно установить видеокамеры, а если у вас уже развернута система видеонаблюдения – настроить аналитические инструменты для работы с картинкой. Таким образом, внедрение биометрии оказывается значительно проще, чем многие другие методы многофакторной аутентификации, одновременно делая жизнь сотрудников и посетителей более комфортной.
Original source: habrahabr.ru (comments, light).

https://habrahabr.ru/post/329774/

Комментарии (0)КомментироватьВ цитатник или сообщество
rss_rss_hh_new

Smart IDReader SDK — как добавить распознавание в iOS приложение за 5 минут — теперь и на Github

Понедельник, 29 Мая 2017 г. 09:53 (ссылка)



Ранее мы, Smart Engines, уже писали про наши технологии распознавания (паспорта РФ, банковских карт и многих других). Основной ценностью SDK является "ядро" или "движок" распознавания Smart IDReader, который объединяет функциональность сканирования всего, что мы умеем сканировать, под единым интерфейсом.



Библиотека распознавания написана на С++ для достижения максимальной производительности, но для использования с различными языками программирования у нас есть версии интерфейсов библиотеки на C++, C, C#, Objective-C, Java и даже Visual Basic. Мы поддерживаем все популярные операционные системы: iOS, Android, Windows, Linux, MacOS, Solaris и, разумеется, Эльбрус и AstraLinux. Наши алгоритмы оптимизированы под такие архитектуры, как ARMv7-v8, AArch64, x86, x86_64, SPARC, E2K.



Мы решили выложить демо-версию нашего SDK на Github, чтобы вы могли ознакомиться с интерфейсом библиотеки (как Objective-C часть, так и C++), почитать документацию и попробовать встроить Smart IDReader в ваше приложение. Репозиторий с демо-версией Smart IDReader iOS SDK доступен по ссылке: https://github.com/SmartEngines/SmartIDReader-iOS-SDK



Чтобы посмотреть, как Smart IDReader выглядит в нашем исполнении после встраивания, вы можете скачать бесплатные полные версии приложений из App Store и Google Play.



В этой статье мы расскажем, как iOS разработчик может использовать наши технологии для добавления функциональности распознавания документов в своё приложение.

Читать дальше →

https://habrahabr.ru/post/329574/?utm_source=habrahabr&utm_medium=rss&utm_campaign=best

Комментарии (0)КомментироватьВ цитатник или сообщество
Аноним

Среда, 01 Декабря 1970 г. 03:00 (ссылка)

Комментарии ()КомментироватьВ цитатник или сообщество
Аноним

Среда, 01 Декабря 1970 г. 03:00 (ссылка)

Комментарии ()КомментироватьВ цитатник или сообщество
Arielu

Большое значение в распознавании II стадии гипертонической болезни имеет исследование глазного дна.

Понедельник, 17 Апреля 2017 г. 10:10 (ссылка)

Стадии гипертонической болезни


Гипертоническая болезнь iii стадии, стадии гипертонической болезни больных гипертонической

Стадии гипертонической болезни


Проявления гипертонической болезни зависят от величины артериального давления, так как именно оно приводит к повреждению сосудов различных органов: сердца, головного реабилитация больных гипертонической болезнью - статьи мозга, сетчатки глаза, почек.


В зависимости от активности ренина плазмы крови различают норморенинную (гиперадренергическую), гиперренинную и гипоренинную гипертензию. Однако эта классификация не нашла широкого применения в клинике из-за трудностей реабилитация больных гипертонической болезни определения ренина плазмы крови.


Общепринятой является классификация ВОЗ, в которой учитываются уровень артериального давления и степень поражения органов. По течению выделяют доброкачественную (медленно прогрессирующую) и злокачественную формы гипертензии. Согласно классификации, различают три стадии медленно прогрессирующей гипертонической болезни.


I стадия гипертонической болезни


I стадия гипертонической болезни проявляется регистр артериальной гипертонии приказы скудными нестойкими симптомами, легко возникающими и быстро проходящими. Субъективные симптомы сводятся в основном к функциональным нарушениям со стороны нервной системы: снижается умственная работоспособность, появляются раздражительность, головные боли, нарушается сон. Иногда субъективные симптомы вообще отсутствуют.


Повышение АД обычно обнаруживается случайно. Оно неустойчиво болотов гипертония, может периодически возрастать под влиянием эмоциональных перегрузок. Систолическое давление варьирует в пределах 160-179 мм рт. ст. диастолическое - 95-104, среднее-110-124 мм рт. ст. Исключительно редко развиваются больных гипертонией гипертензивные кризы. Следует отметить, что АД в покое снижается до нормы или уровня пограничной гипертензии (149/90-159/94 мм рт. ст.) и стойко удерживается больных артериальной гипертонией на нем без применения лекарственных препаратов. В таких ситуациях для выявления тенденции к повышению АД можно использовать стандартизованные психоэмоциональные пробы.


При I стадии гипертонической болезни органические поражения органов отсутствуют. Физикальное исследование сердца отклонений от нормы не выявляет. Электрокардиограмма больница гипертония отзыв в покое, эхокардиограмма и рентгенограмма без патологических изменений. Как правило, не обнаруживаются и изменения на глазном дне или могут определяться преходящие сужения артерий сетчатки.


На этой стадии диагностика сводится к измерению АД, что не представляет трудностей.


II стадия гипертонической болезни


II стадия гипертонической болезни характеризуется выраженной клинической картиной. Больные жалуются регистры артериальной гипертонии европа на головные боли, головокружение, боли в области сердца, снижение работоспособности, нарушение сна. АД у них постоянно повышено: систолическое - 180-199 мм рт. ст. диастол ическое - 105- 114, среднее-125-139 мм рт. ст. Причем в одних случаях гипертензия лабильна, т. е. АД периодически спонтанно больные гипертонической болезнью на лечении в пятигорске снижается, но не до нормы, в других - АД стабильно держится на высоком уровне и снижается только под влиянием медикаментозного лечения.


У больных нередко возникают ребенок подросток гипертония гипертензивные кризы. При физикальном обследовании выявляются признаки гипертрофии левого желудочка, ослабление I тона, акцент II тона, в зоне верхушки сердца может выслушиваться систолический шум, обусловленный изменением тонуса сосочковых мышц или относительной недостаточностью митрального клапана.


На ЭКГ регистрируются изменения, свойственные гипертрофии левого желудочка. Признаки больные люди гипертонией гипертрофии обнаруживаются и рентгенологически, и при эхокардиографическом исследовании. На поздних этапах фиксируются еще более выраженные изменения, отражающие разнообразные нарушения ритма и проводимости сердца, нарушение коронарного кровообращения. В это время больничный при гипертонии могут нарушаться мозговое кровообращение, снижаться концентрационная способность почек, после кризов в моче обнаруживаться следы белка, в осадке - единичные эритроциты, гиалиновые цилиндры.


Большое значение в распознавании II стадии гипертонической болезни имеет исследование глазного дна. При этом выявляются симптомы Салюса - Гунна больница гипертония, Гвиста, "медной и серебряной проволоки".


При II стадии гипертонической болезни диагностика относительнб проста: достаточно обнаружения боль в сердце при гипертоническом кризе повышения АД до соответствующего уровня, гипертрофии левого желудочка и изменений на глазном дне при отсутствии выраженного повреждения почек и головного мозга.


III стадия гипертонической болезни


III стадия гипертонической болезни характеризуется высоким устойчивым АД: систолическое - 200-229 мм рт. ст. диастолическое-115-129, среднее-140-154 мм рт. ст. Однако на этой стадии боль челюсти гипертония АД может снижаться, в некоторых случаях довольно значительно и достигать меньшего уровня, чем на II стадии. Состояние, когда снижено систолическое АД и повышено диастолическое АД, называют обезглавленной гипертензией. Оно обусловливается снижением сократительной функции миокарда. Если к этому присоединяется атеросклероз аорты, снижается больным гипертонией в неблагоприятные дни важно и уровень диастолического давления.


При III стадии гипертонической больница лечение гипертонии болезни развиваются осложнения со стороны различных органов:



  • сердца: инфаркт миокарда, левожелудочковая недостаточность;

  • мозга: кровоизлияние в область мозговой коры, мозжечка или ствола, гипертоническая энцефалопатия;

  • почек: нефроангиосклероз, почечная недостаточность;

  • глазного дна: кровоизлияние в сетчатку, экссудаты, выраженная гипертоническая реабилитация больного с артериальной гипертонией ангиопатия.


При физикальном обследовании больных на этой стадии определяются выраженная гипертрофия левого желудочка, различные виды аритмии, ослабление I тона, нередко прослушивается патологический III тон, что создает мелодию протодиастолического ритма галопа, акцент II тона над аортой, систолический шум над верхушкой сердца. Рентгенологически больной артериальной гипертонией выявляются гипертрофия левого желудочка, изменения аорты, на ЭКГ - признаки гипертрофии левого желудочка, нарушения коронарного кровообращения. При обследовании нервной системы обнаруживаются эмоциональная лабильность, неадекватность реакций, повышенная сонливость реабилитация больных гипертонией, значительное снижение или полная потеря работоспособности.


На III стадии гипертонической болезни часто возникают гипертензивные кризы больных гипертонической болезнью, сопровождающиеся расстройством мозгового кровообращения, парезами и параличами. Значительным изменениям подвергаются сосуды почек, в результате чего развиваются артериологиалиноз, артериолосклероз и, как следствие,- первично сморщенная почка, что приводит к хронической почечной реабилитация больных гипертонической болезнью недостаточности. Однако в клинической картине преобладает кардиальная или церебральная патология, которая приводит к летальному исходу в 60 и 30 % случаев соответственно, т. е. раньше, чем разовьется хроническая почечная недостаточность.


Как уже отмечалось, выраженные изменения происходят больницы в г.тюмень по гипертонии на глазном дне: появляются симптомы перекреста, "серебряной проволоки", иногда острая ишемия сетчатки с потерей зрения, отек сосков зрительных нервов, отек сетчатки и ее отслойка, геморрагии.


При III стадии гипертонической болезни диагностика основывается на выявлении высокого реабилитация при гипертонии АД и выраженного повреждения сердца, мозга, сетчатки глаза, почек.


"Стадии гипертонической болезни" и другие статьи из раздела Гипертония


Консультации врача и запись на прием по телефону

Современные препараты для лечения гипертоническая болезнь беременность шехтман скачать гипертонии должны не только и не столько понижать высокое давление. Их задача – предупредить необратимые повреждения органов-мишеней, удержать целевые цифры артериального давления, предотвратить гипертонические кризы и осложнения гипертензии. Назначая то или иное лекарство, врач учитывает возможные риски, старается самое эффективное средство при гипертонусе гинипрал? максимально сократить перечень побочных эффектов. Рассмотрим общие принципы выбора, список гипотензивных средств последнего поколения.


Лазерная терапия кардиоваскулярных артериальных гипертензий осуществляется в проекционной зоне дуги гипертония мягкая аорты, локтевой артерии, области сердца.


Обычно больной располагается лежа на спине или боку, иногда сидя. Приемы лечение гипертонии гвоздикой массажа грудной клетки. поглаживание – поверхностное, плоскостное, обхватывающее снизу вверх и кнаружи, к подмышечным впадинам; растирание круговое; разминание поперечное и вибрация – сотрясение, точечная.


Ретарпен &#8212; антибактериальное средство. Блокирует синтез клеточной оболочки микробов калина ягода при гипертонии, вызывая их гибель. Применяется внутримышечно, детям кардилогический центр гипертония до 12 лет &#8212; 1,2 млн МЕ каждые 2-4 недели, взрослым &#8212; 2,4 млн МЕ 1 раз в неделю. При первичном серопозитивном и вторичном свежем сифилисе &#8212; 2,4 млн МЕ дважды, с интервалом в 1 неделю. При вторичном рецидивном и скрытом раннем сифилисе первую инъекцию производят в дозе 4,8 млн МЕ (по 2,4 млн МЕ в каждую ягодицу), вторую и третью инъекцию &#8212; по 2,4 млн МЕ с интервалом в 1 неделю, новорожденным и детям младшего возраста &#8212; 1,2 капустный сок давление гипертония млн МЕ.



Группа антагонистов кальция


Препараты от гипертонии из группы кальциевых антагонистов не пропускают ионы кальция внутрь клеток. Установлено, что это способствует снятию напряжения со стенки сосудов шизофрения и гипертоническая болезнь, расслаблению миокарда. Препараты, считающиеся особенно результативными: Амлодипин, Лерканидипин, Нормодипин, Дилтиазем, Верапамил, Нифедипин.


Группы ингибиторов АПФ и блокаторов ангиотензина


Препараты обеспечивают противодействие самому как отличить гипертонус от преждевременных схваток важному механизму, повышающему давление: они устраняют ферменты, способствующие выработке гипертензивных веществ на клеточном уровне. Показаны для лечения гипертонии «со стажем». Кроме уже известных препаратов, таких как Рамиприл, Каптоприл, Капотен, Эналаприл, в группу входят средства шиатцу при гипертонии последнего поколения (Престариум, Периндоприл).


Среди блокаторов ангиотензина важную роль в терапии играют Кандесартан, Валсартан, Лозартан, Лозап.


Препараты этих групп хорошо переносятся пациентами, дозировка подбирается для монотерапии, имеются лекарства с продленным эффектом как лучьше лечить гипертонию, которые следует принимать только один раз в день.


Группа ?-блокаторов


Лекарственные препараты блокируют определенные виды нервных окончаний в сосудистой стенке, делая их невосприимчивыми к спазму. Их важное действие — урежение частоты сокращений сердца, обеспечение максимальной разгрузки миокарда, снижение потребности в кислороде.



Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
Agnesl

Главной ее задачей является распознавание и уничтожение «врагов» – чужеродных клеток, бактерий, вирусов.

Воскресенье, 16 Апреля 2017 г. 08:28 (ссылка)

Главной ее задачей является распознавание и уничтожение как вызвать у женщины бесплодие «врагов» – чужеродных клеток, бактерий, вирусов. Биоптат исследуется гистологически, секреторная как алкоголь влияет на бесплодие трансформация эндометрия с точностью до 90% указывает на произошедшую овуляцию. Марьин корень ядовит, как все представители семейства лютиковых – обратите на это как выйти из депрессии бесплодия внимание, точно соблюдайте дозировку. В настоящее время в ЗАО «Покровское» состояние кормовой базы находится на уровне как вылечить бесплодие 2 степени, позволяющая обеспечивать животноводство биологически полноценными кормами. Поскольку бесплодие у женщин вызывается разными патологическими состояниями, то в клинической картине будут как вылечит бесплодие у мужчины доминировать определенные симптомы. L. vavilovi Atab.



Забор как вылечит бесплодию 1 степени секрета осуществляется после массажа предстательной железы. Под влиянием стресса у маточных труб снижаются природные функции как вы лечили мужское бесплодие, которые способствуют продвижению в матку оплодотворенной яйцеклетки как алкоголь вызывает бесплодие, где она и прикрепляется, так может возникнуть риск внематочной беременности и достаточно серьезных проблем и последствий. Проверка содержания как вылечить вторичное бесплодие гормонов особенно важна, если у мужчины в детстве наблюдалась задержка полового бесплодие отчаяние созревания. Для этого проводится реабилитационная и общеукрепляющая терапия, которая позволяет улучшить качество спермы и нормализовать процесс сперматогенеза. Вред алкоголя. половых органов и оканчивается бесплодием как вызвать бесплодие у женщины.


Но один месяц забыла его пропить, и вот бесплодие от обид тут беременность и наступила. Настой: 3-4 столовые ложки сухой или свежей травы залить 0,5 литра кипятка. Совсем просто: 1) Ехать на лечение как вы сказали мужу о бесплодии, лучше весной, осенью, зимой бесплодие отчитка, чтобы не тянуло искупаться в море. Только процедура эта неприятная и не все ее выдерживают, т. к. очень тяжело как выглядят бесплодие у женщин удержать грязь в "нужном" месте. Кстати, через 2 месяца после грязелечения, мой тест на беременность оказался положительным!


Видимо восстановилась проходимость маточной трубы, я не проверяла какой бесплодие паттайя именно, уже в этом не было необходимости бесплодие паротит))) На лечение я потратила за месяц 3500 гривен, примерно 14 тысяч рублей. Нарушается гормональная регуляция, как на уровне яичек, вырабатывающих тестостерон, так и на уровне как выглядит справка о бесплодии выброса и синтеза химических соединений головным как вызвать бесплодие у мужчины мозгом. Тогда забрала два подписанных экземпляра, отдав один женской консультации, второй оставив себе. …" Поэтому большинство супружеских как вы лечили мужа от бесплодия пар, как правило, достигают беременности уже в течение одного года. В дальнейшем разворачивании бесплодие паразиты событий акушеры-гинекологи, как правило, бессильны – внешних причин для бездетности нет, следовательно, для них фронта работ бесплодие пережить тоже нет. Яхина Алия бесплодие от кофе? Она уже вышла из декрета? я наблюдалась у неё во время первой беременности.


Вследствие приема препарата возможна многоплодная беременность; Янна2014 Но настолько ли это взаимоисключающие методы бесплодие питание — высокие технологии и препараты растительного как бороться с бесплодием женщин происхождения? Скорее всего они могут быть союзниками в лечении некоторых форм бес­плодия.

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
Fomandd0

Главной ее задачей является распознавание и уничтожение «врагов» – чужеродных клеток, бактерий, вирусов.

Воскресенье, 16 Апреля 2017 г. 08:16 (ссылка)

Считается, что образование антиспермальных антител на фоне инфекционных заболеваний обусловлено способностью вирусных, бактериальных бесплодие и марихуана и грибковых организмов цепляться к мембране самих сперматозоидов, вызывая при этом перекрестные реакции. Иногда иммунологическое женское бесплодие они гибнут при встрече с антителами, имеющимися в цервикальной слизи женщины или при бесплодие и отчаяние контакте с яйцеклеткой. Связано это в большей степени иммунологический факторы бесплодия с тем, что вошел в привычку нездоровый образ жизни: чрезмерное употребление алкоголя, частое курение, низкая физическая активность. Главной ее задачей изменения эндометрия при бесплодии является распознавание и уничтожение «врагов» – чужеродных клеток, бактерий, вирусов икона святой при бесплодии молитва. Менопауза, наступившая в возрасте до 40 лет, называется преждевременной менопаузой, она встречается у 1–4 % женщин. Выявляемый измаген при бесплодии как принимать еще в подростковом возрасте, врожденный гипогонадизм будет причиной задержки полового развития, что также можно считать признаком бесплодие и наркотики потенциального бесплодия у мужчины. В большинстве случаев эта программа позволяет точно выяснить причины бесплодия и определить методику бесплодие и менингит его лечения. * гистеросальпингография обследование маточных труб, в процессе которого используется иммунологическом бесплодии лечение контрастное вещество и рентген. Действительно, бесплодие у женщин встречается чаще, чем у мужчин, но сегодня обследованию подлежат оба партнера, так израиль святые места при бесплодии как врачи должны выявить и исключить все факторы риска иммунологическом бесплодии мужчины.



Перед тем как сдать сперму на анализ, пациенту следует придерживаться определённых требований бесплодие и массаж. Преимущество данного препарата по сравнению с другими решениями, существующими на рынк бесплодие и облепиха е сегодня, заключается в том, что: Сам по себе не вызывает бесплодия, но, может стать причиной выкидыша и врожденных иммунологическое бесплодия реферат уродств у ребенка. Рентгеновское облучение сначала возбуждает, а затем тормозит нервную вегетативную систему, улучшается кровообращение, снижает иммунное мужское бесплодие лечение выраженный болевой синдром. Ее содержимое в скором времени приобретает темно-коричневый цвет, в связи с чем такую кисту называют «шоколадной бесплодие и метформин». Возможные причины могут включать в себя неспособность яичек генерировать сперму; либо яички производят иммунологическим фактором бесплодия сперму, но из-за того, что семявыводящий канал либо заблокирован либо не развился, при эякуляции иконы которым молятся от бесплодия сперма не наблюдается. Лечение бесплодия у женщин проводится только после комплексной диагностики.


При вере в Силу Господнюю икона которая помогает от бесплодия, молитвенное обращение будет услышано, и вы сможете забеременеть ребенком икона пояс богородицы от бесплодия. Во время беременности уровень этого гормона также снижается. Перед проведением процедуры экстракорпорального оплодотворения иммунологическое бесплодие у мужчин (далее - ЭКО) в медицинских организациях государственной системы здравоохранения города Москвы пациенткой (супружеской парой) принимается решение в отношении не использованных при иммунологическое бесплодие у женщин проведении лечения с применением ВРТ эмбрионов (при икси по квоте при мужском бесплодии их получении): хранение эмбрионов за счет личных средств и иных средств, предусмотренных законодательством Российской Федерации, или утилизация. Андролог там ниже этажом принимал раньше.


Если при этом будет выявлено заболевание, то врачи вовремя начнут лечение, которое будет направлено на то, чтобы выяснить возбудителя заболевания и снять воспаление уретры у мужчин иммунное бесплодие у мужчин лечение.

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
tiavocegin1987

Без заголовка

Среда, 15 Марта 2017 г. 12:39 (ссылка)

Сканирование и распознавание документов v Kazani
Подробнее тут - http://kazankopy.ru/


Компания Копицентр на Парина
г. Казань, ул.Академика Парина, д.16

Телефон:+7 (937) 625-21-53, +7 (843) 203-21-53 Почта: 2032153@bk.ru
http://kazankopy.ru/

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
kiev2376393

Распознавание речи с аппаратным ускорением. Специализированный ASIC потребляет менее 8 мВт

Четверг, 23 Февраля 2017 г. 19:52 (ссылка)

Технические характеристики специализированной микросхемы ASIC для распознавания речи Голосовые команды — самый естественный и удобный интерфейс для управления электроникой. Можно представить, что в будущем понимать команды хозяина будут практически все

Читать далее...
Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
kiev2376393

Точность технологии распознавания речи Google выросла на 30% с 2012 года

Суббота, 11 Февраля 2017 г. 19:51 (ссылка)

С 2012 года точность технологии распознавания речи Google увеличилась на 30%. Об этом заявил ведущий программный инженер компании Джефф Дин на конференции AI Frontiers, которая проходит в Калифорнии.

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
Karikatury

Электронные щиты показывают водителям контекстную рекламу

Вторник, 01 Ноября 2016 г. 19:09 (ссылка)

Для идентификации водителей, которые будут читать эту рекламу, применяется распознавание номеров автомобилей. http://secnews.ru/russian/9999.htm.
advertising (700x497, 139Kb)

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество

Следующие 30  »

<распознавание - Самое интересное в блогах

Страницы: [1] 2 3 ..
.. 10

LiveInternet.Ru Ссылки: на главную|почта|знакомства|одноклассники|фото|открытки|тесты|чат
О проекте: помощь|контакты|разместить рекламу|версия для pda