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.
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.
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.
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).
Make sure to make a copy of sentry.properties.example:
cp sentry.properties.example sentry.propertiesAnd 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.propertiesAnd 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.
This Application is deployed as a normal Android app. To ship a new release to the Play Store:
-
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.
-
Wire the keystore into the build, if not already set up on your machine:
cp keystore.properties.example keystore.properties
Edit
keystore.propertieswith the path to the keystore file and its credentials:storeFile=/absolute/path/to/your-existing.jks storePassword=... keyAlias=... keyPassword=...keystore.propertiesis gitignored and never committed. Without it,assembleRelease/bundleReleasestill build, but produce an unsigned artifact. -
Bump the version — update
versionCodeandversionNameinapp/build.gradle. -
Build the signed release App Bundle:
./gradlew bundleRelease
The signed
.aabis output toapp/build/outputs/bundle/release/app-release.aab. -
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:
- 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 thearm64-v8a,armeabi-v7a, andx86_64directories (the zip's name doesn't matter), and upload that zip to the Play Console.
- For the ReTrace mapping file, click "Upload" and upload the file generated by the build, located at
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.
|
|
|




