Intelligence System Final Project : Face Scanning System

Background

We would like to create a contact book which could be add real-time. It is basically the ultimate contact book. The idea started when we would like to try to detect face and it attribute to generate a model for each user. It fell upon a unique system for adding face data and his/her attribute. So, it would be able to sync up with our face database and the person face.

How It Works

Scanning

  • In the interface, we’re using Node JS to send data to Python Flask
  • Python Flask then compare the picture image it receive with our face database
  • We create a embedding of the image to be compare with our SVC (Support Vector Classifier – a subset of SVM ~ Support Vector Machine) which has been fitted with a linear kernel.
  • It would output the person data which is save in TXT file
  • Falsk would send back the result to Node JS

Training

  • In Training mode, Node JS would send 20 pictures to FLASK
  • It would be split 80% Training & 20% Testing
  • Then, It’ll use MTCNN to brake down the images to their face
  • Using Facenet to get the facial features
  • After that, create an embedding of the faces
  • Using SVC to train the model
  • Lastly, Add all of it to a single save state file

Problem

  • We face an error in call thread function when combining flask and tensorflow
  • We solved it by calling the function via os.system(“”)

Future Works

We would like to connect it with social media API. Then, we could compare their facial data with the profile picture. Afterwards, we ask like is this the person your looking for.

Pictures

Team Members

Yoksan
Longlong
Ivan

Link

Code :
https://drive.google.com/file/d/1BzYfJZPkoyOnLcVSunSVA56CZBHG1Sds/view?usp=sharing
Presentation :
https://drive.google.com/file/d/1436KBpAeyKhypgvkXGDJwDRmfTnJ15kR/view?usp=sharing
Video :
https://drive.google.com/file/d/1436KBpAeyKhypgvkXGDJwDRmfTnJ15kR/view?usp=sharing

Intelligence System

Image result for ai vs ml vs dl

Artificial Intelligence

Any technique which enables computer to mimic human behavior

Machine Learning

Subset of AI techniques which use statistical methods to enable machines to improve with experiences

Deep Learning

Subset of ML which make the computation of multi-layer neural networks feasible

Type of Machine Learning Techniques

  • Supervised
    ” Optimize performance criteria using experience”
  • Unsupervised
    ” Find features for categorization”
    ” Taken place in real time”
  • Reinforcement
    ” To maximize some notion of cumulative reward”

Comparison Supervised versus Unsupervised

ParametersSupervisedUnsupervised
ProcessInput & Output will be givenOnly Input data will be given
Input DataLabeledUnlabeled
AlgorithmsSVM (Support Vector Machine), Neural Network, Linear and Logistics Regression, Random Forest, Classification TreesClustering Algorithm, K-Means, Hierarchical clustering
Computational ComplexitySimplerComplex
Use of DataTraining Data (Link Input with Output)Doesn’t use Output Data
Accuracy of ResultsHighly accurate Less accurate
Real Time LearningOfflineReal time
Number of ClassesKnownUnknown
Main DrawbackBig Data can be a real challengeCannot get precise information

Multimedia and Human Computer Interaction (Project’s Report)

Project Report
Team Members :
Ivan Ezechial Suratno      2101693920         http://2101693920ivan.blog.binusian.org/
David Honasan                 2101693933         http://2101693933david.blog.binusian.org/
Frendy Bodhi Susanto     2101693883         http://2101693883frendy.blog.binusian.org/
Game’s Name : “Cellmunity” – Human Cell on Immunity
Theme : Biology (Human Immunity)
Description : We’re trying to create a White Blood Cell (WBC) simulation.
Publish Game :
Cellmunity (ezeutno.github.io)
Project Details :
In this project, We try to create as close as 8 Golden Rules and Human Immunity System.

The 8 Golden Rules,

  1. Strive for consistency
    1. All the buttons use the same design, color, and interaction.

       
    2. Button alignment tend to be set in vertical.

      (Game Glossary, Game Play | Home Screen | Tutorial )
    3. In playing time, It’s always be reminded of Human Body Status.

      (Game Play | Game Glossary)
    4. In all the non-game, it will always include a moving WBC vs Bacteria as the background.
  2. Enable frequent users to use shortcuts

    1. On Jump to Game Play,
      You can simply go directly to game play by pressing “P” two times.
    2. On Tutorial,
      You can next/previous the details using the arrow keys
    3. On Game Play,
      You can simply pause the game by pressing “P” on your keyboard.
  3. Offer informative feedback

    1. Volume button would change from Volume Silent to Non Silent, when settings the game sound effects.

      (ON | OFF)
    2. Feedback when you hover on a button.

      (Non-Hover | On-Hover)
  4. Design dialog to yield closure
    1. Health Bar, to indicate alive level.
    2. Heart Rate Pulse, to indicate are the host still beating (as in the real world)
    3. Temperature, to indicate the host degree as the bacteria arise.
  5. Offer simple error handling
    1. (Exception) There are no error that can be detected here. All human error would be rejected by the system.
  6. Permit easy reversal of actions
    1. (Exception) No reversal of actions needed
  7. Support internal locus of control

    1. Since the game play and the game glossary are related to one another and if you get back to game glossary you’ll lose your current score, The game would ask whether you want to get back to the game glossary before finishing the game.
  8. Reduce short-term memory load
    1. All the return/home button always located at the bottom of the game

Game Play
In this game, you must match & direct the WBC to the correct bacteria
indicated in the game glossary.

In here, you can see that describe on the right which WBC eat which bacteria.
If your score hasn’t reach the limit set by the game, you’ll get.

In the game play, you’ll have to operate the WBC by clicking the WBC.
To release the WBC, you have to double click anywhere on the game surface.

You’ll need to watch those indicator on the right since it is the host status.
If your hearth rate and temperature exceed a certain amount, you’re health would decreased more significantly. This would happen if you fail to survive the game.

Thank You. (All the detail on how to play the game located on the tutorial)

Object that are created :

  1. All Buttons
  2. Health Bar
  3. Glossary Details
  4. Pulse (An amount of animation – Died)
  5. Lock

Object that are taken from the Internet :

  1. Bacteria – www.depositphotos.com
  2. White Blood Cells – www.shutterstock.com
  3. Human Circulatory System – findbiometrics.com
  4. Pulse (An amount of animation – Default) – hir.ma
  5. Thermometer – www.kisspng.com
  6.  Volume Off / On – www.flaticon.com

Exception                           :
* Even though there are section, the project is created together backing one and another.

Multimedia and Human Computer Interaction (Project’s Proposal)

Title                                       : Human Immunity System
Deadline                              : 29th October 2018
Team Members                :
Ivan Ezechial Suratno      2101693920         http://2101693920ivan.blog.binusian.org/
David Honasan                  2101693933         http://2101693933david.blog.binusian.org/
Frendy Bodhi Susanto    2101693883         http://2101693883frendy.blog.binusian.org/
Target Audience               : Middle School Student or lower.
Project Description          :
We’ll would like to create a mimic of human immunity system. The player would become the human immunity system such as white blood cell and human antibody system. As you know, that the enemy of the human body is a bacterium, viruses, and else. This will create a battle field that mimic what currently our body always do day by day.

Report Final Project : Database System (Offline Mobile Store)

Final project program (mart.) serve as a service to buy and sell mobile phone.

Here are the program,

The program run on a SQL server that has this specification table :

  1. CREATE TABLE `brand` (
    `id` int(11)  AUTO_INCREMENT,`name` varchar(20) NOT NULL, PRIMARY KEY (`id`))
  2. CREATE TABLE `os` (
    `id` int(11) AUTO_INCREMENT,`name` varchar(20) NOT NULL, PRIMARY KEY (`id`))
  3. CREATE TABLE `country` (
    `country_id` int(11) AUTO_INCREMENT,`country_name` varchar(50) NOT NULL, PRIMARY KEY (`country_id`))*
  4. CREATE TABLE `custdetail` (
    `username` varchar(50) NOT NULL,`password` varchar(50) NOT NULL,`fname` varchar(50) NOT NULL,`lName` varchar(50) NOT NULL,`email` varchar(100) NOT NULL,`phone` varchar(20) DEFAULT NULL,`birthday` date NOT NULL, PRIMARY KEY (`username`))
  5. CREATE TABLE `custaddress` (
    `id` int(11) AUTO_INCREMENT,`detail` text NOT NULL,`sub_district` varchar(50) DEFAULT NULL,`district` varchar(50) DEFAULT NULL,`province` varchar(50) DEFAULT NULL,`postal_code` int(11) NOT NULL,`country_id` int(11) DEFAULT NULL,`username` varchar(50) NOT NULL, PRIMARY KEY (`id`), FOREIGN KEY  (`username`) REFERENCES `custdetail`(`username`), FOREIGN KEY  (`country_id`) REFERENCES `country`(`country_id`))
  6. CREATE TABLE `store` (
    `name` varchar(50) NOT NULL,`username` varchar(50) NOT NULL,`address_id` int(11) NOT NULL, PRIMARY KEY (`name`), FOREIGN KEY  (`username`) REFERENCES `custdetail`(`username`))
  7. CREATE TABLE `item` (
    `id` int(11) AUTO_INCREMENT,`name` varchar(50) NOT NULL,`quantity` int(11) NOT NULL,`price` double NOT NULL,`brand_id` int(11) NOT NULL,`os_id` int(11) NOT NULL,`storage` double NOT NULL,`ram` double NOT NULL,`description` text NOT NULL,`imageloc` text NOT NULL,`store_name` varchar(50) NOT NULL, PRIMARY KEY (`id`), FOREIGN KEY  (`brand_id`) REFERENCES `brand`(`id`), FOREIGN KEY  (`os`) REFERENCES `os`(`id`), FOREIGN KEY  (`store_name`) REFERENCES `brand`(`id`), FOREIGN KEY  (`store_name`) REFERENCES `store`(`name`))
  8. CREATE TABLE `transaction` (
    `id` int(11) NOT NULL,`purchased` tinyint(1) NOT NULL,`username` varchar(50) NOT NULL,`address_id` int(11) DEFAULT NULL, PRIMARY KEY (`id`), FOREIGN KEY  (`username`) REFERENCES `custdetail`(`username`))
  9. CREATE TABLE `detailtrans` (
    `id` int(11) NOT NULL,`item_id` int(11) NOT NULL,`quantity` int(11) NOT NULL,`transaction_id` int(11) NOT NULL,`status` varchar(20) DEFAULT ‘On Process’, PRIMARY KEY (`id`), FOREIGN KEY  (`transaction_id`) REFERENCES `transaction`(`id`), FOREIGN KEY  (`item_id`) REFERENCES `item`(`id`))

That are represented in ERD diagram as below

*with pre-filled data. (195 Countries)


query :

  1.  SELECT item.id,item.name,item.imageloc,item.price FROM item,brand,os WHERE item.quantity > 0 AND item.brand_id = brand.id AND item.os_id = os.id AND item.name LIKE ‘%” + search + “%’  AND brand.name LIKE ‘%” + brand + “%’ AND os.name ORDER BY ” + orderBy + ” ASC/DSC  LIKE ‘%” + os + “%’ LIMIT ” + CStr(start_id) + “,8
  2. Calculate the amount max “for Limit”
    SELECT count(*) FROM item,brand,os WHERE item.quantity > 0 AND item.brand_id = brand.id AND item.os_id = os.id AND item.name LIKE ‘%” + Search + “%’ AND brand.name LIKE ‘%” + brand + “%’ AND os.name LIKE ‘%” + os + “%’
  3. Transaction (after login)
    1. SELECT * FROM transaction WHERE purchased = 0 AND username = ‘” + username + “‘
    2. INSERT INTO transaction(purchased,username) VALUES(0,'” + username + “‘)

This are the main of the program. Here is where you can interact with the program such as Register, Details, Buy, Create Store, Cart, Search, and Sort.

If you clicked on the views of phone, the details of the phone will pop up (even without log-in).

query :

  1. “SELECT * FROM item WHERE id = ” + CStr(id)
  2. “SELECT name FROM brand WHERE id = ” + CStr(id)
  3. “SELECT name FROM os WHERE id = ” + CStr(id)
  4. SELECT custaddress.detail FROM custaddress, store WHERE custaddress.id = store.address_id AND store.name = ‘” + storeName + “‘
  5. SELECT price *” + CStr(amtOfpur) + ” AS Totalprice FROM item WHERE id = ” + CStr(item_id)
  6. INSERT INTO detailtrans(item_id,quantity,transaction_id) VALUES(” + CStr(item_id) + “,” + CStr(qty) + “,” + CStr(trans_id) + “)

The Add to Cart will enable if it’s not your store or you have log-in. It will be display as below,

Before you can log you must register, here’s how through the log-in page.

query (after log-in press):

  1. “SELECT password FROM custDetail where username = ‘” + username + “‘”

After you click on register, this windows will pop up.

query (after submit button pressed):

  1. “Insert Into custDetail Values(‘” + username + “‘,'” + password + “‘,'” + fname + “‘,'” + lname + “‘,'” + email + “‘,'” + phone + “‘,'” + birthday + “‘)”

You need to fill in the form to create an account. Remember that the program is validating all your data before submission. Such as, password length should be more that 8 character. If you makes any mistakes there should be no worries because you can edit them later on (except you username) .

As an example of form filling,
Here are a new username call “test” with password “12345678” and the other details as show bellow.

After registration than you can log in,

Only by then, you can add item to the cart (if item bought quantity is more than 0 and below the max purchasable that was set by the seller) and purchased them. Here are shown result of a multiple purchased by “test” user.

query :

  1. SELECT transaction.id, item.store_name, detailtrans.id,item.id, item.name,item.price, detailtrans.quantity, item.price * detailtrans.quantity as price, detailtrans.status FROM detailtrans,item,transaction WHERE detailtrans.item_id = item.id AND transaction.id = detailtrans.transaction_id AND transaction.username = ‘” + username + “‘ AND transaction.purchased = 1 ORDER By detailtrans.status
  2. SELECT transaction.id, item.store_name, detailtrans.id,item.id, item.name,item.price, detailtrans.quantity, item.price * detailtrans.quantity as price, detailtrans.status FROM detailtrans,item,transaction WHERE detailtrans.item_id = item.id AND transaction.id = detailtrans.transaction_id AND transaction.id = ” + CStr(currTrans)  ORDER By detailtrans.status
  3. UPDATE item SET quantity = quantity –  + CStr(quantity)
  4. DELETE FROM detailtrans WHERE id =  + CStr(id)
  5. SELECT * FROM custaddress WHERE username = ‘ + username + ‘
  6. SELECT price *” + CStr(amtOfpur) + ” AS Totalprice FROM item WHERE id = ” + CStr(item_id)

Before you can click buy now, you need to add an address in the user settings.

Here is where you can add a multiple address, update any details and change your password.
For example,
Adding a address (as it is necessary for buying items)

As an example result,

It will be automatically updated to the multiple address section (as shown below).

Change Password
For example “12345678” to “87654321”

You can edit your address detail by clicking the address list and this view will pop up.

Continue with the purchase process. After you click buy now, the purchase will be send automatically to the seller and it will disappear from cart and move to the purchased history after selecting the address you want to send it through .

After that there are information that your purchased is being processed.

It will change the detail of the transaction status to On Process, but if the user say that it is already sent to the user. The user “test” can fulfilled it by themselves.

Then, it is up to the seller to decide whether to rejected or to sent it. For example,

Then, now how to create your store. This is where you can only create one store for one account only. This will require you to choose you store address in the create store section.

After this you will have a store dashboard, as you can see below.

In this dashboard, you can add, delete or update an item.
To add an item you need to click on the button.

Example of inserting,

To add the picture, you need to click on the picture column. Then, picture form will pop up.
*
*In this form you can only add a link type of data.
The result after add the picture.

Click the add item to add you to the selling list.

Now, how to access your sales? it is located at the all sales button. The sales dashboard will appear, as below.

Here you can edit the status to rejected, fulfilled, or sent (type in status column)
Fulfilled and rejected will be transfer to Past Sales. To make the sale fulfilled you need to change the status to sent which you can do by type it in the status column.

The if you or the user fulfilled the purchase it will be move to the past sales. Which looks like, as below.

That’s the detail of our team project. In here there are some query doesn’t given since the query are similar to those query.

Proposal Final Project: Database System

Title                                                   : Mobile Phone Store
Amount of Table                             : Approx. 8 – 10 Tables
Deadline                                           : 13th Week of Database System
Project Team                                   :

  1. Ivan Ezechial Suratno, 2101693920
    1. http://2101693920ivan.blog.binusian.org/
  2. David Honasan, 2101693933
    1. http://2101693933david.blog.binusian.org/

General Description                        : We’ll try to create offline system mobile phone store.

Description (SQL)                            : The system that are thought are Buyer and Seller (Admin) as the user login input. We will create a multiple seller and buyer that can do trading system. The description of the phone are detail in the linking such as the table mobile phone will have a subsidiaries table that containing the detail of each one specs (For instance, mobile phone will have a processor detail that are contain in the other table).The visual basic description will be created by David Honasan.

Section of Creation*                      :

  1. Ivan Ezechial Suratno : Database (MariaDB)
  2. David Honasan : Visual Basic (vb.net)

Exception                           :
* Even though there are section, the project is created together backing one and another.