gifts2017

Серийное фотографирование - новый подход

Опубликовал Дмитрий (dvim) в раздел Программирование - Мобильные приложения

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

В последние годы очень остро встал вопрос фотографирования, даже cкорее фотофиксации (Фотофиксация - это фотографирование в невысоком качестве исключительно с техническими целями)

Наличие фотографий  позволяет  "отбиться" от большинства претензий  и показать заказчикам культуру работы.
Потому в холдинге  очень остро встал вопрос о системе для массового фотографирования и дальнейшей привязки фотографий в базы.

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

Потом мы перешли к "серийному" фотографированию фотоаппаратами (fuji XP80). Фотографировался QR код, и далее - необходимые объекты. Далее эти папки скидывали программе, где шло распознавание  и выстраивание фотографий по кодам, с последующей загрузкой в базу.   У хороших  сотрудников 95% фотографий  привязывалось верно.

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

Было решено использовать Андроид устройства (водозащищенный самсунг можно купить немногим дороже 10 тыс.  )
Фото  с телефонов вполне удовлетворяли по качеству.
В итоге была разработана система для потоковой фотофиксации, также она применима и для второстепенных целей.  (Фото сотрудников, номенклатуры, паспортов)

Логика работы пользователя  с ПО

 - Запустил, ввел код (или сосканировал ШК) , запустил фотографирование и делаешь  ряд снимков.
Снимки идут в папку, названную по коду.
Снимки сами синхронизируются через сеть.

Цель программы - это фотографирование серий фотографий с последующей их передачей для обработки.

 

"Классическое" применение - массовое фотографирование  изделий и привязка фотографий к штрих коду.

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

 

В нынешний цифровой век нет ничего дешевле цифрового снимка.

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

Помимо этого, данная система легко используется для фотографирования людей (с привязкой к коду), имущества, товаров.

 

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

 

При фотографировании в названии файла запоминается код и дополнительная информация.  Фотографии  складываются в папки, названные по названию "номера".

Номер  можно прочитать через сканер штрихкодов или внести руками.


Фотографии в асинхронном  режим закачиваются на FTP/Яндекс диск .
Также в работе активно используем SOAP (веб сервис) и HTTP POST, но данный код вырезан, так как требует серверной части.

Есть режим без закачки - тогда фотографии просто остаются на карте.

Цель асинхронности - это дать возможность работать эффективно в условиях неполного кусочного покрытия территории  разными сетями (wi fi + 3G) .

 

В настойках предусмотрен выбор качества (размера) изображения.

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

 

При фотографирование предусмотрена возможность вкл/выкл вспышки, а также подсветки ее в режиме фонаря. Последний режим удобен при съемках в замкнутых просранствах (фуры, контейнера, вагоны)

 

 

При запуске программы отобразится главное окно.

1 - Индикатор закачки данных на сервер.  Показывает сколько еще фотографий не передано на сервер.

2 - Кнопка сканирования штрихкода.
ПО кнопке вызывается связанная программа Barcode Scanner ZXing Team (При отсутствии ее предложат скачать). 
Далее, после распознавания штрихкода,  он будет проставлен в программе для фотографирования.

Такое решение выбрано, как оптимальное (Использование Intent внешнего приложения, специально заточенного под сканирование шк).

3 Кнопка очистки набранного поля

4 Кнопка начала фотографирования -  при ее нажатию вы перейдете в режим камеры.

5 Поле  с выбранным или набранным кодом

6 Выбор "режима". У нас это используется, чтобы связать код с происходящим событием (Например, указать участок, где фотографируется изделие)

Номер режима передается в названии файла на сервер и может использоваться там.

При отсутствии необходимости можно не использовать.

7 Меню вызова настроек

 

Начало работы

1 Вводим код, к которому будем привязывать серию фотографий

 

1.1  Либо запускаем сканер штрихкодов (нажимаем на кнопку)

 

Далее в нем указываем ШК.  программа сама распознает его и вернет данные в систему фотографирования.

Разницы между ШК из распознавателя Barcode Scanner и вручную вбитым кодом нет

 

2 После указания кода запускаем режим фотографирования

на экране фотографирования есть 2 кнопки. 
Кнопка управления режимом вспышки и собственно кнопка "спуска", фотографирования.

Также  система показывает пользователю, на какой именно код будет навешена серия  снимков.

Повторюсь, программа адаптирована для работе по схеме "отсканировал код - сделал 10 снимков - отсканировал код....".

 

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

 

При фотографировании экран немного замирает - идет автофокусировка.

При удачной фокусировке качество фотографий более чем достаточное.   

Единственная область, где смартфон проигрывает классическим фотоаппаратам  - это  съемки на открытой улице ночью, в условиях встречного освещения.

Тут ему банально не хватает светосилы.

 

3 Отснятые фотографии асинхронно, не мешая работе пользователя передаются на сервер.

Это может быть FTP (на мой взгляд оптимально по соотношению простота/надежность), ЯндексДиск ( простейший способ для маленьких).

В нашем основном проекте мы в итоге остановились на собственном веб-сервисе.

Плюс веб-сервиса - синхронность, то есть данные попадают в систему управления мгновенно.  
Минус - нужно писать серверную часть.  У нас  это - небольшой проект на ASP.NET.

В исходники ветка с SOAP (использует kSOAP) не включена именно по причине неработоспособности ее без сервера.

 

Пользователь, смотря на надпись Ост видит количество файлов, которые не успели синзронизироваться.

 

4 Фотографии храняться в файловой системе смартфона до момента передачи на сервер.

 

После этого они удаляются с телефона.

В настойках есть режим (сейчас он поставлен по умолчанию),  при котором программа не отправляет сделанные фотографии, а просто оставляет их на карте.

Важно :  при изменении режима программа обработает и отправит все файлы фото на карте, расположенных в папке ПО

 

 

 

Фотографии хранятся следующим образом. Имя папки и окончание имени фотографии - это введенный код.
Средняя часть F1-F4  это указание на режим съемки. 

Первая часть это время съемки (мес/день/время с секундами)

 

5 Настройки.

В программе реализовано сохранение настроек.  

В целом вопрос необходимости настроек именно в рабочей версии спорный.

( В рабочей версии у нас используется  контроль сохранения настроек через код.

Ибо - сотрудник может по ошибке сделать систему нерабочей.  При работе 24/7  Главное, о чем надо думать - это стабильность)

 

 

Общее окно настроек - содержит в себе название четырех "режимов", режим записи и учетные данные.

Также внизу располагается выбор качества фотографирования.

Для 90% работы нам нравятся фото по 50-100 килобайт.    Но система дает вохможность делать и средние и полные по качеству фото.

 

 

Важно

Для режима ЯндексДиск пишем

URL = webdav.yandex.ru   (режим может работать и с другими вебдав серверами)

Логин и пароль - логин и пароль яндеса

После изменения типа закачки необходимо перезапустить ПО ( с убиением оного)

 

для ftp запись URL = Адрес ftp , например ftp23.xxxxx.ru

Логин и пароль - данные для доступа на этот ftp

 префиксы ftp: и https: не нужны!

 

1C часть.

Написан и используется (для второстепенного направоения) простой код по закачке фотографий номеклатуры.

Работает с УТ 11. 

Может работать с c ftp  напрямую, либо с диском.  (Установленный клиент ЯндексДиска прекрасно синхронизирует его с локальной папкой)

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

 

Идея выставить веб сервис 1С "наружу"    повергла СБ в полный шок, потому даже не рассматривалась.

У некоторых людей вместо "чужого" Яндекс Диска используется "свой " ownCloud . Отличий в работе  нет.

Скачать файлы

Наименование Файл Версия Размер Кол. Скачив.
Android приложение (исходный код)
.zip 12,90Mb
14.06.16
1
.zip 1 12,90Mb 1 Скачать
Android приложение для массовой фотофиксации
.apk 1,36Mb
14.06.16
1
.apk 1 1,36Mb 1 Скачать
Загрузка файлов (по имени папки) с диска и с FTP
.epf 9,08Kb
12.06.16
1
.epf 1 9,08Kb 1 Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. deadman66 (deadman66) 14.06.16 15:01
Тот же принцип используем: адроид программа, выгрузка по воздуху на сервер БД, 1С из БД забирает для анализа. У нас важны только геометки и читаемость надписей определенных. Скорости и Аналитики хватает под наши задачи.
2. Дмитрий (dvim) 14.06.16 17:58
Ну в реальности очень хочется устройство с физическими клавишами, но не нашли.
Все хотели протестировать ТСД Атолл , но в Питере никто его показать не может.

А так - в целом решение рабочее.
Имхо плюс публикации "людям" - готовый исходник, который относительно несложно адаптировать.
3. Ruslan (flyer) 14.06.16 20:26
почему vpn не рассматривали при работе?
4. Дмитрий (dvim) 14.06.16 23:55
Зачем ?
Если нужна большая безопасность - то более чем достаточно просты вывесить отдельный веб-сервис.
Собственно в "основной компании" так и сделано, через kSOAP
(Из примера код убран, просто чтобы не выкладывать еще и код "серверной" части)
Но если он интересен - пишите, поделюсь и расскажу

Для небольших компаний оптимально либо FTP либо ЯндексДиск. Ибо админа там либо вообще нет, либо лучше бы не было.
5. Игорь Про (ISP) 27.06.16 07:04
Интересная статья.

Мне надо, чтобы сделать систему по автораспознованию продукции. Вижу примерно так - на рулоны стали наклеины QR коды сотрудник фотографирует рулон, файл уходит на сервер, где происходит распознование.
С помощью чего можно сделать распознование QR кода
6. Дмитрий (dvim) 06.07.16 12:26
(5) ISP, Я же написал - библиотека MessagingToolkit.Barcode 1.7.0.2
В целом - все более чем реально.

Но у нас - на стали было 6 кодов (тупые сотрудники очень часто сканировали код артикула, а не изделия )
Свои коды, наклеенные отсыревали и портились при дождях.

Сейчас, кстати, это решение перевожу со сканера на вебкамеру (HP4310).
Если интерес будет - может напишу статью
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа