- Real-time Object Detection on Android using Tensorflow
- Overview
- Objective
- Motivation and State of Art
- Literature Review
- Распознавание объектов на android с помощью TensorFlow: от подготовки данных до запуска на устройстве
- Подготовка данных
- Find the objects android
- About
- Find the objects android
- 15 лучших игр про поиск предметов на Android
- Убийство в Альпах
- Criminal Case
- Шерлок Холмс
- June’s Journey
- Demon Hunter 4: Riddles of Light
- NCIS: Hidden Crimes
- Enigmatis 3: The Shadow of Karkhala
- Seekers Notes
- Ravenhill
- Зазеркалья Альбиона
- Криминальный город
- Traveler Notes
- Сказки без конца 3: Мрачные топи
- Snark Busters: All Revved Up
- Mystery of the Enchanted Forest
Real-time Object Detection on Android using Tensorflow
Overview
Research shows that the detection of objects like a human eye has not been achieved with high accuracy using cameras and cameras cannot be replaced with a human eye. Detection refers to identification of an object or a person by training a model by itself. Detection of images or moving objects have been highly worked upon, and has been integrated and used in commercial, residential and industrial environments. But, most of the strategies and techniques have heavy limitations in the form of computational resources, lack of proper data analysis of the measured trained data, dependence of the motion of the objects, inability to differentiate one object from other, and also there is a concern over speed of the movement and Illuminacy. Hence, there is a need to draft, apply and recognize new techniques of detection that tackle the existing limitations.
Objective
A model based on Scalable Object Detection using Deep Neural Networks to localize and track people/cars/potted plants and many others in the camera preview in real-time. This is implemented in an android application and used handy in a mobile phone or any other smart device.
Motivation and State of Art
Humans learn to recognize objects or humans by learning starting from their birth. Same idea has been utilized by incorporating the intelligence by training into a camera using neural networks and TensorFlow. This enables to have the same intelligence in cameras, which can be used as an artificial eye and can be used in many areas such as surveillance, detection of objects/things etc.,
Literature Review
Currently, it is difficult to know when and where people occupy a building. The part of the difficulty arises due to the fact that the current sensor technology is not utilized to the full efficiency and also, due to the lack of utilization of proper data analysis methods. The comforting fact is that with the advent of 21st century, there has been a vast improvement in the sensor technology and arrival of the Internet of Thing (IoT) devices [1]. In an environment with clutter and noise, detection is even more challenging. One of the difficulties presented in literature for detection is to identify a human when stationary. This is a common problem for any sensor that is based on the reflection of acoustic, optical, or electromagnetic wave off a surface. However, the issue of stationary humans being identified as objects has been solved in my project. For example, fast moving objects in real time may cause confusion in identification or classification by computer vision techniques. At the tracking level, objects may be stationary for no apparent reasons or they may move in any direction spontaneously. This makes the tracking problem particularly challenging.
Furthermore, a particular type of technology may have difficulties meeting all necessary requirements in various lighting conditions, or rainy, foggy and inclement weather conditions, not to mention that most cameras or sensors have a limited field of view to monitor traffic in all directions. In addition, the clutter background and complex moving patterns of all objects on urban streets demand sophisticated and accurate real-time processing of sensor inputs to avoid false detection and recognition.
In order to overcome the aforementioned technical challenges, “You look only once” (Yolo) [2] detection system has been used not only to speed up the detection process, but also higher accuracy has been obtained. Yolo has not been implemented with android before and I have implemented this with android. One of the applications and advantages is that the android mobile devices are easily available with everyone, and in future, this detection system can be applied for Sousveillance [3].
Источник
Распознавание объектов на android с помощью TensorFlow: от подготовки данных до запуска на устройстве
Обучение нейросети распознаванию образов — долгий и ресурсоемкий процесс. Особенно когда под рукой есть только недорогой ноут, а не компьютер с мощной видеокартой. В этом случае на помощь придёт Google Colaboratory, которая предлагает совершенно бесплатно воспользоваться GPU уровня Tesla K80 (подробнее).
В этой статье описан процесс подготовки данных, обучения модели tensorflow в Google Colaboratory и её запуск на android устройстве.
Подготовка данных
В качестве примера попробуем обучить нейросеть распознавать белые игральные кости на черном фоне. Соответственно, для начала, надо создать набор данных, достаточный для обучения (пока остановимся на
Для обучения воспользуемся Tensorflow Object Detection API. Все необходимые для обучения данные мы подготовим на ноутбуке. Нам понадобится менеджер управления окружением и зависимостями conda. Инструкция по установке тут.
Создадим окружение для работы:
И активируем его:
Установим зависимости которые нам понадобятся:
Создадим папку object_detection, и положим все наши фотографии в папку object_detection/images.
В Google Colab есть ограничение на использование памяти, поэтому перед разметкой данных нужно снизить разрешение фотографий, чтобы в процессе обучения не столкнутся с ошибкой «tcmalloc: large alloc. «.
Создадим папку object_detection/preprocessing и добавим в неё подготовленные скрипты.
Для изменения размера фото используем скрипт:
Этот скрипт пробежится по папке с указанными фото, изменит их размер до 800×600 и сложит их в object_detection/images/resized. Теперь можно заменить ими оригинальные фотографии в object_detection/images.
Для разметки данных воспользуемся тулзой labelImg.
Клонируем репозиторий labelImg в object_detection
Переходим в папку labelImg
и выполняем команду:
После этого можно приступить к разметке данных (это самый долгий и скучный этап):
В “Open dir” указываем папку object_detection/images и проходим по всем фото, выделяя объекты для распознавания и указывая их класс. В нашем случае это номиналы игральных костей (1, 2, 3, 4, 5, 6). Сохраним метаданные (файлы *.xml) в той же папке.
Создадим папку object_detection/training_demo, которую мы чуть позже зальем в Google Colab для обучения.
Разделим наши фото (с метаданными) на тренировочные и тестовые в соотношение 80/20 и переместим их в соответствующие папки object_detection/training_demo/images/train и object_detection/training_demo/images/test.
Создадим папку object_detection/training_demo/annotations, в которую будем складывать файлы с метаданными необходимыми для обучения. Первым из них будет label_map.pbtxt, в котором укажем отношение класса объекта и целочисленного значения. В нашем случае это:
Помните метаданные, которые мы получили в процессе разметки данных? Чтобы использовать их для обучения, необходимо конвертировать их в формат TFRecord. Для конвертации воспользуемся скриптами из источника [1].
Проведем конвертацию в два этапа: xml -> csv и csv -> record
Источник
Find the objects android
Object Detection Android App
You can find an in depth walkthrough for training a TensorFlow lite model here.
git clone the repo and cd into it by running the following command:
Install Android Studio
The recommended way to develop applications for Android is by using Android Studio, which can be downloaded here
Open the project with Android Studio
Launch Android Studio and choose Open an existing Android Studio project
In the file selector, choose object-detection-android .
You will get a Gradle Sync popup, the first time you open the project, asking about using gradle wrapper. Click OK.
Set up an Android device
You can’t load the app from android studio onto your phone unless you activate developer mode and USB Debugging. This is a one time setup process.
Add your model files to the project
Copy the model_android directory generated from the classification walkthrough and paste it into the object-detection-android/app/src/main/assets folder of this repo.
In Android Studio run a Gradle sync so the build system can find your files.
Then hit play to start the build and install process.
About
📱 Custom Object Detection with TensorFlow Lite (not Real-Time)
Источник
Find the objects android
TensorFlow Lite Object Detection Android Demo
This is a camera app that continuously detects the objects (bounding boxes and classes) in the frames seen by your device’s back camera, using a quantized MobileNet SSD model trained on the COCO dataset. These instructions walk you through building and running the demo on an Android device.
The model files are downloaded via Gradle scripts when you build and run. You don’t need to do any steps to download TFLite models into the project explicitly.
Application can run either on device or emulator.
Build the demo using Android Studio
If you don’t have already, install Android Studio, following the instructions on the website.
You need an Android device and Android development environment with minimum API 21.
Android Studio 3.2 or later.
Open Android Studio, and from the Welcome screen, select Open an existing Android Studio project.
From the Open File or Project window that appears, navigate to and select the tensorflow-lite/examples/object_detection/android directory from wherever you cloned the TensorFlow Lite sample GitHub repo. Click OK.
If it asks you to do a Gradle Sync, click OK.
You may also need to install various platforms and tools, if you get errors like «Failed to find target with hash string ‘android-21′» and similar. Click the Run button (the green arrow) or select Run > Run ‘android’ from the top menu. You may need to rebuild the project using Build > Rebuild Project.
If it asks you to use Instant Run, click Proceed Without Instant Run.
Also, you need to have an Android device plugged in with developer options enabled at this point. See here for more details on setting up developer devices.
Switch between inference solutions (Task library vs TFLite Interpreter)
This object detection Android reference app demonstrates two implementation solutions:
(1) lib_task_api that leverages the out-of-box API from the TensorFlow Lite Task Library;
(2) lib_interpreter that creates the custom inference pipleline using the TensorFlow Lite Interpreter Java API.
The build.gradle inside app folder shows how to change flavorDimensions «tfliteInference» to switch between the two solutions.
Inside Android Studio, you can change the build variant to whichever one you want to build and run—just go to Build > Select Build Variant and select one from the drop-down menu. See configure product flavors in Android Studio for more details.
For gradle CLI, running ./gradlew build can create APKs for both solutions under app/build/outputs/apk .
Note: If you simply want the out-of-box API to run the app, we recommend lib_task_api for inference. If you want to customize your own models and control the detail of inputs and outputs, it might be easier to adapt your model inputs and outputs by using lib_interpreter .
Downloading, extraction and placing it in assets folder has been managed automatically by download.gradle.
If you explicitly want to download the model, you can download from here. Extract the zip to get the .tflite and label file.
Custom model used
This example shows you how to perform TensorFlow Lite object detection using a custom model. * Clone the TensorFlow models GitHub repository to your computer. git clone https://github.com/tensorflow/models/ * Build and install this repository. cd models/research python3 setup.py build && python3 setup.py install * Download the MobileNet SSD trained on Open Images v4 here. Extract the pretrained TensorFlow model files. * Go to models/research directory and execute this code to get the frozen TensorFlow Lite graph. python3 object_detection/export_tflite_ssd_graph.py \ —pipeline_config_path object_detection/samples/configs/ssd_mobilenet_v2_oid_v4.config \ —trained_checkpoint_prefix /model.ckpt \ —output_directory exported_model * Convert the frozen graph to the TFLite model. tflite_convert \ —input_shape=1,300,300,3 \ —input_arrays=normalized_input_image_tensor \ —output_arrays=TFLite_Detection_PostProcess,TFLite_Detection_PostProcess:1,TFLite_Detection_PostProcess:2,TFLite_Detection_PostProcess:3 \ —allow_custom_ops \ —graph_def_file=exported_model/tflite_graph.pb \ —output_file= /lite/examples/object_detection/android/app/src/main/assets/detect.tflite input_shape=1,300,300,3 because the pretrained model works only with that input shape.
allow_custom_ops is necessary to allow TFLite_Detection_PostProcess operation.
input_arrays and output_arrays can be drawn from the visualized graph of the example detection model. bazel run //tensorflow/lite/tools:visualize \ » /lite/examples/object_detection/android/app/src/main/assets/detect.tflite» \ detect.html
- Get labelmap.txt from the second column of class-descriptions-boxable.
- In DetectorActivity.java set TF_OD_API_IS_QUANTIZED to false .
Please do not delete the assets folder content. If you explicitly deleted the files, then please choose Build->Rebuild from menu to re-download the deleted model files into assets folder.
Источник
15 лучших игр про поиск предметов на Android
Заядлые геймеры, вероятно, будут знакомы со многими аббревиатурами, такими как MOBA, FPS или LotR, BfME2, RotWK. Хорошо, вы, вероятно, не знаете, что означает последний, но как насчет HOG? Это один из самых старых, но наиболее игнорируемых жанров в отрасли — поиск скрытых предметов. Звучит просто, правда? Легче сказать, чем сделать. Некоторые предметы будут спрятаны настолько хорошо, что вам потребуются целые часы, чтобы найти их.
В Google Play Маркет есть много подобных игр, но наш сыщик сказал, что это самые лучшие. Они доставят удовольствие даже тем, кто гордится своим соотношением убийств и смертей в Dota 2. В них вы будете путешествовать по множеству разнообразных мест, находя предметы по списку (молот, ботинок, компас) и решать логические головоломки. Большинство из них поддерживают русский язык, а в некоторые даже можно играть вдвоем.
Убийство в Альпах
Действие квест-игры Murder in the Alps происходит в 1930 году. Журналистка из Цюриха, Анна Майерс, свой отпуск встречает в отеле и рассчитывает хорошенько отдохнуть, но когда один из гостей не спускается к ужину, а затем и другие люди начинают исчезать, Анна решает найти преступника. Под подозрением каждый из 10 постояльцев отеля.
В поисках ответа вам придется спускаться в жуткие подвалы и искать предметы, которые помогут найти преступника. Вас также ждет общение с различными злодеями и решение головоломок. Действовать необходимо быстро, ведь убийца где-то рядом. Чтобы помочь игрокам с поиском, имеется специальное руководство, которое даёт подсказки на каждом шаге.
Criminal Case
В Criminal Case обязательно должны поиграть фанаты сериалов вроде CSI. В ней вы используете свои навыки в роли детектива, чтобы расследовать серию убийств, которая произошла в городе Гримсбороу. Исследуйте место преступления полностью сконцентрировавшись, иначе вы можете пропустить улики, которые помогут найти виновных и отправить их в тюрьму.
Если вы застряли на уровне, игра предложит вам кнопку с подсказками, которые облегчат поиск скрытых предметов. При желании, можете пригласить друзей в игру, чтобы выяснить, кто из вас лучший сыщик.
Шерлок Холмс
Если вы является поклонников аналитического метода, с помощью которого Шерлок Холмс распутывает преступления, то у нас для вас приятная новость — теперь вы можете испытать данный метод в одноименной игре Sherlock Holmes. Она подойдет как детям, так и взрослым. Всё, что вам нужно — это умение решать головоломки и хорошая концентрация.
В ней вас ждут тесты на память, поиск по картинкам и силуэтам, шифры, пазлы и поиск отличий на первый взгляд идентичных изображений. Если у вас возникнут трудности с решением, то можно будет воспользоваться подсказкой, для этого нажмите значок «Лампочка» в правом нижнем углу.
Игра предоставляет несколько сцен преступлений. В них вам предстоит помочь Холмсу обнаружить улики и распутать дело. Имеется более 1000 предметов, которые расположены на множестве уровнях. Сможете ли вы найти нужные?
June’s Journey
В June’s Journey вы играете за Джун Паркер и принимаете участие в её путешествии, в которое она отправилась, чтобы раскрыть семейный секрет. Вместе с основной целью — поиском предметов и прохождением уровней, игра предоставляет возможность обставить свой собственный остров на свой вкус. Однако, вам потребует зоркий глаз, чтобы найти скрытые подсказки, иначе на более высоком уровне вы останетесь в замешательстве.
Demon Hunter 4: Riddles of Light
Demon Hunter 4 — страшные тайны Древнего Египта грозят нашему миру. Вернулись старые боги и их планы ужасают. Дон Эшмур, знаменитая охотница за силами зла, готова к сопротивлению, но демоны берут её в плен и оставляют на руинах древнеегипетского храма. Лила, племянница Дон Эшмур, решает спасти тетю и приложить для того все усилия.
Вас ждет приключение по загадочным развалинам, находящимся под властью богов Древнего Египта. Вы проникнете в суть историй, скрытых в украшенных камнями сундуках. Лила в итоге узнает, что Дон похитил Сет, коварнейший из богов. Как можно быстро остановить Сета? Ведь со смертью последней охотницы за чудовищами, человечество покроет тьма.
NCIS: Hidden Crimes
NCIS: Hidden Crimes разработана по сюжету известного сериала с элементами боевика. На экраны вышел уже 14 сезон шоу, который показывают не менее чем в 200 странах, оно лидирует в списке лучших драматических сериалов Америки, а его аудитория составляет более 50 миллионов.
Вы будете играть за специального агента NCIS, который расследует дело об убийстве и шпионаже в корпусе морской пехоты США. Чтобы раскрыть дело, вам предстоит искать скрытые предметы, добывать улики, разгадывать секреты, проходить от одной сцены преступления к другой, чтобы в итоге добраться до преступника с помощью всей собранной информации.
Каждый день вас ждут новые загадки, мини-головоломки и 6 режимов игры. Ваши конкуренты из разных частей света будут наступать вам на пятки, но вы должны быть самым находчивым, чтобы получить желанную награду.
Enigmatis 3: The Shadow of Karkhala
Если вы считаете обычные игры про поиск предметов слегка монотонными, и ищете что-то более красочное, то вам стоит попробовать поиграть в Enigmatis 3, которая в отличие от других игр в этом списке, предлагает совершенно другой, более динамичный сюжет.
На высокой горе расположен старинный монастырь. Одержимый Пастор пришел сюда для осуществления свои коварных планов. Выследите безумного священнослужителя и раскройте тайны вершины Кархалы. В общей сложности вас ожидает 43 локации, с рисованной вручную графикой. Она настолько красивая, что вы не сможете оторваться от экрана, не распутав все нити детективного сюжета!
Seekers Notes
Seekers Notes предлагает поразительный набор загадок со спрятанными предметами, и все это подкреплено шикарным сюжетом с неожиданными поворотами. Игра предлагает выполнить более 6500 заданий и собрать коллекцию из более чем 830 уникальных предметов во время продвижения по уровням. Если найдете гадалку, инженера или кузнеца, то получите возможность создавать вещи и продавать их жителям Дарквуда, чтобы быстрее раскрыть все секреты.
Игре уже 3 года, но она бесплатно обновляется каждый месяц, предоставляя новые головоломки, локации и другие приятные бонусы. Разработчики хорошо постарались, поэтому вас ждёт восхитительная графика и незабываемые герои. Действие происходит в колоритных локациях. Вам предстоят захватывающие приключения и непредсказуемые открытия. Лишь избранный сможет разгадать тайны проклятого Дарквуда, и все знаки указывают на вас.
Ravenhill
Ravenhill — еще одна удивительная игра с поиском предметов, которая позволяет самостоятельно настроить персонажа прямо с самого начала, делая вас неотъемлемой и уникальной частью истории. Сюжет рассказывает о некогда процветающем городе, который внезапно превратился в город-призрак.
На разных локациях вам предстоит отыскать предметы, пытаясь разгадать, куда же исчезло все население города. Каждый уровень имеет определенное количество времени на поиск всех предметов, что добавляет немного волнения в скучный формат данного типа игр. Если вы не управитесь за отведенное время, то нужно будет заплатить игровое золото, чтобы получить еще немного времени.
Зазеркалья Альбиона
Игра «Зазеркалье Альбионы», которая была создана под вдохновением от новеллы «Алиса в Стране чудес» Льюиса Кэрролла отправит вас в сказочное путешествие, где нужно найти скрытые предметы, чтобы разбить злые планы Червонной Королевы. Здесь есть огромное количество разных мест, которые вам нужно будет исследовать. Их настолько много и они так запутаны, что пользователи пишут гневные отзывы в Google Play Маркет. А вы сможете не запутаться в Зазеркалье?
Криминальный город
В игре «Криминальный город» вы должны помочь детективу Дарку распутать все преступления, став сотрудником FBI и найдя спрятанные предметы, которые были раскиданы по всему месту преступления. Вам нужно будет собирать улики, опрашивать подозреваемых, чтобы разгадать все тайны в этой волнующей игре.
При желании вы можете играть с друзьями, чтобы активировать дополнительные возможности и пройти её полностью. Можно попробовать мод, где у предметов скрыт силуэт, если вы хотите поиграть во что-нибудь очень трудное. Впрочем, сюжет хорошо продуман, поэтому вы точно не заскучаете.
Traveler Notes
Возможно, вам интересно, почему я включил такую устаревшую игру в этот список. Это потому что я считаю её одной из самых сложных в жанре поиска предметов.
Traveler Notes благодаря плохому качеству графики, создает настоящее испытание, так как вам приходится смотреть очень близко, чтобы обнаружить спрятанные предметы. Здесь нет сюжета, однако каждая следующая сцена будет трудней предыдущей, ведь предметы здесь спрятаны очень хорошо. При желании можно выбрать один из двух игровых режимов, каждый из которых имеет свой набор головоломок.
Сказки без конца 3: Мрачные топи
В «Сказки без конца 3» вы играете за Памелу Кавендиш, знаменитого антрополога, которая отправляется в Шотландию, чтобы исследовать темное болото, которое заставляет проследовать за изумительной легендой о Красной Луне.
Помогите ей приоткрыть завесу тайны. Вам предстоит посетить 35 уникальный мест, решить более 40 головоломок и встретить 10 загадочных персонажей на своем пути. Эта игра буквально приклеит вас к экрану смартфона на очень продолжительное время.
Snark Busters: All Revved Up
Добро пожаловать в Snark Busters 2, в котором вас ждёт причудливый и красочный мир в стиле стимпанк, волшебными зеркалами и озорными кошками, разбивающими люстры. Вы будет играть за Джека Блэра, известного гонщика Формулы 0, который идет по стопам своего деда, который был не только лучшим гонщиком, но и лучшим ловцом Снарков! Тем не менее, он исчез после того, как проехал через туннель в своей последней гонке, но каким-то образом вы нашли его письмо, которое побуждает вас найти его.
Снарки — это существа, которые путешествуют из одного мира в другой, из измерения в измерение, и поймать их будет совсем не просто. Ищите все спрятанные подсказки, чтобы найти Снарка. Исследуйте лабораторию Джека и помогите ему найти необходимые инструменты, но это будет действительно сложно сделать из-за большого беспорядка в доме.
Готовы ли вы присоединиться к восхитительным приключениям, которые перенесут вас в другую реальность с мириадами воображаемых миров? Погрузитесь в одно зеркало и перенеситесь в доисторический век, чтобы разморозить мамонтов и встретить динозавров. Посмотрите в другое зеркало и появитесь на загадочной ярмарке с причудливыми клоунами и фокусниками!
Mystery of the Enchanted Forest
Исследуйте тайны зачарованного леса в игре Mystery of the Enchanted Forest. Она предоставит вам 30 уровней и сотни различных предметов, которые необходимо будет найти. В этих красивых уровнях, которые были нарисованы от руки, можно играть двумя способами. Можно выбрать уровень сложности, и если хотите, то можно получить возможность видеть скрытые объекты с помощью текстового описания, изображения или силуэта.
Источник