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
Post a Comment