Featured

Scan Mata Uang Indonesia

 


Tutorial Bagaimana caranya menggunakan library tensorflow pada android studio

# skripsi-sample
Deteksi mata uang asli dan palsu menggunakan Tensorflow

# Proses Pre-Processing pada gambar
Resize gambar
index_resize.py

from PIL import Image
import os
import argparse
def rescale_images(directory, size):
for img in os.listdir(directory):
im = Image.open(directory+img)
im_resized = im.resize(size, Image.ANTIALIAS)
im_resized.save(directory+img)
if __name__ == '__main__':
parser = argparse.ArgumentParser(description="Rescale images")
parser.add_argument('-d', '--directory', type=str, required=True,    help='Directory containing the images')
parser.add_argument('-s', '--size', type=int, nargs=2, required=     True,metavar=('width', 'height'), help='Image size')
args = parser.parse_args()
rescale_images(args.directory, args.size)

Convert dataset meta labels xml to csv
python xml_For_csv.py

import os
import glob
import pandas as pd
import xml.etree.ElementTree as ET
def xml_to_csv(path):
xml_list = []
for xml_file in glob.glob(path + '/*.xml'):
tree = ET.parse(xml_file)
root = tree.getroot()
for member in root.findall('object'):
value = (root.find('filename').text,
int(root.find('size')[0].text),
int(root.find('size')[1].text),
member[0].text,
int(member[4][0].text),
int(member[4][1].text),
int(member[4][2].text),
int(member[4][3].text)
)
xml_list.append(value)
column_name = ['filename', 'width', 'height', 'class', 'xmin', 'ymin','xmax',     'ymax']
xml_df = pd.DataFrame(xml_list, columns=column_name)
return xml_df
def main():
for directory in ['train','test']:
image_path = os.path.join(os.getcwd(), 'images/{}'.format(directory))
xml_df = xml_to_csv(image_path)
#Storing the csv file into the data directory.
xml_df.to_csv('images/{}label.csv'.format(directory), index=None)
print('Successfully converted xml to csv.')
main()

Convert csv dataset labels to TFRecord file format

python tfrecord.py --type=train --csv_input=data/trainlabels.csv  --output_path=data/train.record
python tfrecord.py --type=test --csv_input=data/testlabels.csv  --output_path=data/test.record

# Simpan di directory training untuk pemodelan
wget http://download.tensorflow.org/models/object_detection/ssd_mobilenet_v1_coco_2018_01_28.tar.gz

atau bisa Download (http://download.tensorflow.org/models/object_detection/ssd_mobilenet_v1_coco_2018_01_28.tar.gz)

# Setting Konfigurasi model dan class pada object
wget https://github.com/tensorflow/models/blob/master/research/object_detection/samples/configs/ssd_mobilenet_v1_pets.config

```
atau bisa Download (https://github.com/tensorflow/models/blob/master/research/object_detection/samples/configs/ssd_mobilenet_v1_pets.config)

# Memulai pelatihan pada model

Proses Pelatihan Berjalan
python train.py --logtostderr --train_dir=training/ --pipeline_config_path=training/ssd_mobilenet_v1_pets.config

Export graph dan Model yang telah kita latih
Proses Pelatihan Berjalan
python export_inference_graph.py \
    --input_type image_tensor \
    --pipeline_config_path training/ssd_mobilenet_v1_pets.config \
    --trained_checkpoint_prefix training/model.ckpt-1000 \
    --output_directory uang

# Buka Android Studio

clone tensorflow android repo buka folder project
git clone https://github.com/tensorflow/tensorflow.git
atau bisa [clik aja](https://github.com/tensorflow/tensorflow.git)

Install Bazel Download di (https://docs.bazel.build/versions/master/install.html)

Build untuk .so pada file bazel
bazel build -c opt //tensorflow/contrib/android:libtensorflow_inference.so 
  --crosstool_top=//external:android/crosstool
  --host_crosstool_top=@bazel_tools//tools/cpp:toolchain
  --cpu=armeabi-v7a

Build  Java counterpart
bazel build //tensorflow/contrib/android:android_tensorflow_inference_java

Open android studio kemudian klik  Click open the **existing project** buka direktori /tensorflow/examples/android
libtensorflow_inference.so and libandroid_tensorflow_inference_java.jar disimpan pada folder android
libandroid_tensorflow_inference_java.jar di set pada **Add As Library**

libtensorflow_inference.so diset pada **Link C++ Project with Gradle** kemudian pilih  CMake.txt

Kemudian Run Project

atau bisa cek di https://github.com/mungkas/skripsi-sample


Comments

Popular Posts