Skip to content

Repository files navigation

ICSee

ICSee logo

ICSee is an application that helps people with visual impairments see more clearly. It is developed by SciFY.

We created an application that allows people with visual impairments to read!

You can watch a video of the application in action here.

With ICSee:

  • The user can simply point their smartphone/tablet’s camera to what they want to take a better look at, and they see a processed, clearer image on their screen.
  • In this way, they can read a small text (e.g. the check or menu at a restaurant, the charge amount on the taxi meter, the name on a doorbell).

How does it work? ICSee:

  • processes the image/video from a smartphone/table’s camera in real-time,
  • applies a series of filters, and
  • projects a result that’s easier to read or identify on the screen.

Abstract

It is an application for small portable devices (smart phones, tablets) that will help people with severe visual impairments see more clearly. How? The user simply directs the camera of his/her smartphone or tablet to the point he/she wants and… that was it! The application processes the image on the screen according to the user’s needs (conversion to negative or greyscale, increase the contrast, etc.) and provides in real time an image that is is easier for the user to see! Who is it for? It is intended to be used by people with severe visual impairments. The Application provides an audio tutorial when starting.

Implementation

The ICSee project involves a software solution for Android hand-held devices. We can support filtering on a camera-streamed image (real-time), applying a wide variety of filters on it.

Compilation - Requirements

The minimum SDK version is 16 (Android 4.1). A device with a camera is required. For the auto-focus feature, the camera should support auto-focus. This is a Gradle-based project. The required Open-CV library is included in the Android project (see app/build.gradle file).

Properties files setup

Make sure to make a copy of sentry.properties.example:

cp sentry.properties.example sentry.properties

And fill out the fields in the file.

To produce a signed release build, also make a copy of keystore.properties.example:

cp keystore.properties.example keystore.properties

And fill it out with the path to your upload keystore and its credentials. Without this file, assembleRelease / bundleRelease still work but produce an unsigned build.

Deployment

This Application is deployed as a normal Android app. To ship a new release to the Play Store:

  1. Locate the existing ICSee upload keystore and its credentials. Play Store updates must be signed with the same upload key as previous releases — signing with a different/newly generated keystore will make Play Console reject the update permanently for this app.

  2. Wire the keystore into the build, if not already set up on your machine:

    cp keystore.properties.example keystore.properties

    Edit keystore.properties with the path to the keystore file and its credentials:

    storeFile=/absolute/path/to/your-existing.jks
    storePassword=...
    keyAlias=...
    keyPassword=...
    

    keystore.properties is gitignored and never committed. Without it, assembleRelease/bundleRelease still build, but produce an unsigned artifact.

  3. Bump the version — update versionCode and versionName in app/build.gradle.

  4. Build the signed release App Bundle:

    ./gradlew bundleRelease

    The signed .aab is output to app/build/outputs/bundle/release/app-release.aab.

  5. Upload to the Play Console (App bundle explorer → "Create new release") — this is a manual step, not automated by this repo. Also upload the mapping file and native symbols so crashes can be deobfuscated:

    Navigate to the "App Bundle Explorer" section of the Play Console, and click on the "Downloads" tab:

    img.png

    • For the ReTrace mapping file, click "Upload" and upload the file generated by the build, located at app/build/outputs/mapping/release/mapping.txt.
    • For the native symbols, navigate to app/build/intermediates/merged_native_libs/release/mergeReleaseNativeLibs/out/lib, zip the arm64-v8a, armeabi-v7a, and x86_64 directories (the zip's name doesn't matter), and upload that zip to the Play Console.

Main Technologies

OpenCV

LICENSE

Copyright 2022

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Sponsors

SciFY logo Ίδρυμα Λάτση logo SHAPES EU project logo

About

ICSee runs on small portable devices (smartphones, tablets) and makes reading and object identification easier. Simply, conveniently and always available!

Topics

Resources

Stars

13 stars

Watchers

9 watching

Forks

Releases

Packages

Used by

Contributors

Languages