Spaces:
Runtime error
Runtime error
# Tensorflow Lite MiDaS iOS Example | |
### Requirements | |
- XCode 11.0 or above | |
- iOS 12.0 or above, [iOS 14 breaks the NPU Delegate](https://github.com/tensorflow/tensorflow/issues/43339) | |
- TensorFlow 2.4.0, TensorFlowLiteSwift -> 0.0.1-nightly | |
## Quick Start with a MiDaS Example | |
MiDaS is a neural network to compute depth from a single image. It uses TensorFlowLiteSwift / C++ libraries on iOS. The code is written in Swift. | |
Paper: https://arxiv.org/abs/1907.01341 | |
> Towards Robust Monocular Depth Estimation: Mixing Datasets for Zero-shot Cross-dataset Transfer | |
> René Ranftl, Katrin Lasinger, David Hafner, Konrad Schindler, Vladlen Koltun | |
### Install TensorFlow | |
Set default python version to python3: | |
``` | |
echo 'export PATH=/usr/local/opt/python/libexec/bin:$PATH' >> ~/.zshenv | |
echo 'alias python=python3' >> ~/.zshenv | |
echo 'alias pip=pip3' >> ~/.zshenv | |
``` | |
Install TensorFlow | |
```shell | |
pip install tensorflow | |
``` | |
### Install TensorFlowLiteSwift via Cocoapods | |
Set required TensorFlowLiteSwift version in the file (`0.0.1-nightly` is recommended): https://github.com/AlexeyAB/midas_tf_ios/blob/main/Podfile#L9 | |
Install: brew, ruby, cocoapods | |
``` | |
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" | |
brew install mc rbenv ruby-build | |
sudo gem install cocoapods | |
``` | |
The TensorFlowLiteSwift library is available in [Cocoapods](https://cocoapods.org/), to integrate it to our project, we can run in the root directory of the project: | |
```ruby | |
pod install | |
``` | |
Now open the `Midas.xcworkspace` file in XCode, select your iPhone device (XCode->Product->Destination->iPhone) and launch it (cmd + R). If everything works well, you should see a real-time depth map from your camera. | |
### Model | |
The TensorFlow (TFlite) model `midas.tflite` is in the folder `/Midas/Model` | |
To use another model, you should convert it from TensorFlow saved-model to TFlite model (so that it can be deployed): | |
```python | |
saved_model_export_dir = "./saved_model" | |
converter = tf.lite.TFLiteConverter.from_saved_model(saved_model_export_dir) | |
tflite_model = converter.convert() | |
open(model_tflite_name, "wb").write("model.tflite") | |
``` | |
### Setup XCode | |
* Open directory `.xcworkspace` from the XCode | |
* Press on your ProjectName (left-top corner) -> change Bundle Identifier to `com.midas.tflite-npu` or something like this (it should be unique) | |
* select your Developer Team (your should be signed-in by using your AppleID) | |
* Connect your iPhone (if you want to run it on real device instead of simulator), select your iPhone device (XCode->Product->Destination->iPhone) | |
* Click in the XCode: Product -> Run | |
* On your iPhone device go to the: Settings -> General -> Device Management (or Profiles) -> Apple Development -> Trust Apple Development | |
---- | |
Original repository: https://github.com/intel-isl/MiDaS | |
### Examples: | |
|  |  |  |  | | |
|---|---|---|---| | |
## LICENSE | |
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | |
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | |
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | |
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE | |
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR | |
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF | |
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS | |
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN | |
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) | |
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE | |
POSSIBILITY OF SUCH DAMAGE. | |